Новая главная страница и новости




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2026-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

56 Comments

  1. mirco

    Гуууутт. Пошел тестировать.

    А Идея с такими блоками — разделами вообще супер, давно надо было.

    Просто я захожу- мне все понятно, а знакомая бухша зашла, посмотрела на главную, попыталась что-то поискать и сказала, что ереунда а не сайт. А теперь страничка ориентирована на правильное восприятие целевыми аудиториями. Думаю многим понравиться. Так что однозначно плюс за идею (хотя тебе,Доржи, он конечно и не нужен, но это как благодарность за работу).

    Reply ↓
  2. mirco

    Кстати, что заметил, я тут один такой маньяк (ну кроме тебя 😀 ), на ИС ночью сижу ?

    В прошлый раз, когда делали апгрейд публикации, я первый посмотрел и откоментировал. И теперь почему-то опять первый.

    Мистика 😀 😀

    Reply ↓
  3. CheBurator

    (2) это у вас просто мания величия.. это проходит… 😉

    Reply ↓
  4. mirco

    (3) Не надо чтобы это проходило, я сохранить хочу свою манию величия.

    Я кстати забыл про часовые пояса, у кого-то сейчас день.

    Reply ↓
  5. Шёпот теней

    … хорошая идЕя по поводу разграничения «прав и свобод» относительно рейтинга …

    и

    … жалко, что в последнее время обозначилась тенденция на «уплощения» рейтинга … на перевод его из оценки в рекомендацию …

    п.с. когда не за что бороться и нечем меряться проигрывают ВСЕ … рынок или СОобщество — везде нужна конкуренция — причЁм по правилам коорые не меняются (иначе пропадЁт уважение к правилам) …

    … ВОТтакоеЕСТЬмнение …

    Reply ↓
  6. CheBurator

    (4) «да что ты знаешь о величии, жалкая ничтожная личность?»

    😉

    Reply ↓
  7. mirco

    -Доктор, у меня мания величия!

    -Да что ты знаешь о мании величия, жалкая ничтожная личность! 😉

    Reply ↓
  8. gutentag

    Ура-а-а-а-а-а ❗

    Reply ↓
  9. СергейКа

    Рубрикатор прикольно, но не понятно к какой платформе относится разработка. Раньше было видно когда открываешь новые добавленные, а теперь нет 🙁

    Я имею ввиду на главной странице, конечно 🙂

    Reply ↓
  10. alexk-is

    Может бутылочку сменить, ну, скажем, на ёлочку?..

    По остальным моментам пока вопросов нет. Прикольно…

    Ах, да. Пришлось отключить Яндех.бар. ie8 с ним подвисает. Причем только на главной…

    Reply ↓
  11. support

    (9) Да, это следующий шаг. В будущем можно будет наложить отбор по платформе на все блоки и таким образом получить разделение по рубрикам только по интересующей платформе.

    Новые должны быть видны на главной, это второй блок сверху.

    (10) Чем шампанское не угодило? 🙂

    —-

    Большая нагрузка дала свое знать, пришлось главную существенно сократить, будем думать над оптимизацией.

    Reply ↓
  12. support

    (1) Спасибо! Вы не только первый, но чуть ли не единственный с позитивным настроением заходите на ИС и не скупитесь на положительные комментарии.

    Reply ↓
  13. Tatitutu

    Классно стало — настоящий подарок к Новому Году !

    можно совет (не по первой странице , а вообще)

    вчера воочию столкнулся

    был далеко от дома, другу посоветовал наш сайт

    он зарегистрировался и сразу же скачал — первую попавшуюся под руку разработку…пока качал (скорость инета желает быть лучшей) нашел реально то что ему нужно , хотел скачать , но естественно не смог…. и у него осталось очень негативное впечатление от сайта.

    так вот предложение —

    — как только зарегистрировался новый человек при первом заходе ему

    ОСНОВНЫЕ ПРАВИЛА сайта

    — как и сколько можно скачать

    — что такое личка

    — что такое профиль

    — что такое рейтинг и с чем его едят.

    А так с Новым Годом!

    Reply ↓
  14. support

    (13) В новом году будет внедрена новая система скачивания, так что проблема решиться сама собой, так как у нового человека будут бонусные скачивания.

    Reply ↓
  15. CheBurator

    (14) »’ это немного не то! в (13) правильно предложили — Инфостарт — портал довольно развесистый и сходу найти основы — не так и просто, поэтому — зашел первый раз: читай правила! и дальше только с кнюпом по кнопке — «согласен»

    Reply ↓
  16. Арчибальд

    Классно. Однако я бы первые две рубрики (Главные и Новае) поменял местами. Хотя, с другой стороны, пиар важен…

    Reply ↓
  17. support

    (16) Вот здесь http://infostart.ru/news/ можно для себя поменять.

    Reply ↓
  18. artbear

    (0) Форум мисты из внешних сервисов специально убран или просто забыли восстановить?

    ИМХО очень удобно было следить за новостями.

    ЗЫ RSS также можно, но это же нужно настраивать 🙂

    Reply ↓
  19. Abadonna

    (2)

    на ИС ночью сижу ?

    В это время (03:41:48 Москвы) путние люди в путних местах как раз на работу собираются 😉

    Reply ↓
  20. support

    (18) Специально. Раньше я поддерживал мисту, покупая у них баннер, но после того, как там задроты начали оскорблять ИС, то у меня пропало всякое уважение к этому ресурсу.

    Reply ↓
  21. larisab

    Красиво конечно, но так как выглядело вчера было лучше. И стало все мелко-мелко, глаза устают…

    Картинки можно сделать меньше, шрифт крупнее.

    Reply ↓
  22. support

    (22) не до конца понял, вчера было на главной, как на http://infostart.ru/news/

    где именно мелкий шрифт, можешь приложить скриншот.

    Reply ↓
  23. larisab

    На главной слева картинка просто огромная, под ней и в средней колонке — мелкий шрифт. Справа нормальный, более приемлемый.

    То, что вчера было на главной, а сегодня на новостях, было юзабельно. Во всяком случае, вчера глаза от нее не болели, а сегодня — болят, ищу способ на главную вообще не заходить…

    Скрин прилагаю. Опера 9.64

    Reply ↓
  24. support

    (24) Как раз большой размер шрифта справа — это неправильное отображение.

    Сейчас главная упрощена, так как не выдержала нагрузки. В будущем, после оптимизации, страница Новости и станет Главной страницей. Все настройки, которые вы себе сделаете сохранятся.

    Reply ↓
  25. larisab

    (25)

    Как раз большой размер шрифта справа — это неправильное отображение.

    Неправильное отображение у кого?

    Шрифт должен быть крупнее и одинаков по размеру на всей странице, тогда ее можно комфортно просматривать. Картинки (аватары разработок) можно сделать поменьше. Слева сейчас два фото очень уважаемых мною специалистов, но их лики и текст доминируют над остальной информацией. Невольно начинаешь задумываться, что тут главное, что второстепенное…

    Reply ↓
  26. PRoman

    Не могу найти поиск по публикациям 🙁

    Reply ↓
  27. support

    (27) в верхнем правом углу

    Reply ↓
  28. Лаура

    Думаю, что для посетителей было бы удобнее чтобы около названия публикаций на странице Новости в подразделах «Новое», «Бухучет и налогообложение», «Упр. учет и финансы» и т. п. публиковался значок, для какой 1С (7.7 али 8) эта обработка/публикация предназначена. Эти значки уже используются в форуме, и там очень удобно — глаз быстро находит то, что может пригодиться, и «отсеивает» ненужное.

    Reply ↓
  29. support

    (29) Да, это следующий шаг. В будущем можно будет наложить отбор по платформе на все блоки и таким образом получить разделение по рубрикам только по интересующей платформе.

    Reply ↓
  30. Арчибальд

    Выложил сегодня отчетец. Поскольку в нем десяток строк всего, пометил как «лайф». Из-за этого он в новости не попадает?

    Reply ↓
  31. support

    (31) Какой отчет? Куда не попала?

    Reply ↓
  32. softbear

    1. Деление по группам это хорошо. Но кроме вертикального деление новостей сделай горизонтальные деление (меню или вкладки как например на http://www.klerk.ru/)

    2. Надо использовать все пространство монитора а то очень много свободного места. на экране. (опять же пример http://www.klerk.ru/)

    Reply ↓
  33. mirco

    (12) Так ИС — единственный рукоязычный портал, тематика которого мне полностью интересна. Так что я руками и ногами за всестрононие развитие портала, и юзабилити и контента. А лишнее доброе слово мне не жалко. Лишь бы Вы для нас старались развивать ресурс 😀

    Немного офтопик: а нельзя ли, в текстовом редакторе используемом при создании публикации, сделать возможность вставки картинок не только с url, но и из своей галереи (той, которая в профиле).

    Reply ↓
  34. mirco

    (33) Я думал что за это отвечает галочка «Ширина сайта резиновая«.

    А сейчас понял, что она, кажется, не работает. 🙁

    Reply ↓
  35. igyo

    Выражаю огромную благодарность создателям ресурса. Молодцы! Развивайте и дальше!

    ЗЫ: Я совсем не пользуюсь семеркой, и мне «как бы» не интересно что там с ней и как. Можно ли как то сделать чтоб все касательно семерки у меня совсем не отображалось?

    Reply ↓
  36. Арчибальд

    (32) http://infostart.ru/public/63035/

    В рубрике «Новые» не появилась. Только в рубрике «Все».

    Reply ↓
  37. Шёпот теней

    … ВСё больше и БОльше посещает ощущение:

    ИС начинает напоминать «глянцевый» журнал … и толстый и красивый и изменчивый и броССкие названия — а почитать нечего …

    одна реклама, первые уроки и как «похудеть» … и никаких ИДЕАлов … один оппортунизм и политкорректность …

    … ВОТтакоеЕСТЬмнениеВОТ …

    Reply ↓
  38. Dr.ZIG

    Не нравится тенденция вводить ограничения. Многих такое может отпугнуть. В своё время забросил сайт олчитс из-за их ограничений для новичков на просмотр сообщений.

    Reply ↓
  39. mirco

    (38) Вы же «элита» ИС. Продолжайте вносить свою лепту и так, каждый по немногу, и будет что почитать.

    «и никаких ИДЕАлов» высоко-поэтично, да только нет их нигде 😀

    Reply ↓
  40. Valerich

    В целом очень неплохо, но не нашел где можно что и как настраивать. Хоть лучшее и враг хорошего, но хочется….

    Очень понравился новый рубрикатор!

    Reply ↓
  41. Ish_2

    (21)

    Раньше я поддерживал мисту, покупая у них баннер, но после того, как там задроты начали оскорблять ИС, то у меня пропало всякое уважение к этому ресурсу.

    По-человечески — очень хорошо понятно.

    Только задроты есть везде — есть они и на ИС .

    Поэтому тебя как владельца портала — понять трудно.

    И еще один момент. Новым очень удобным сервисом кастомизации главной страницы могут пользоваться только пользователи с рейтингом 30.

    Думаю ,зря .

    Знаю несколько совсем не последних программистов , которые для ИС ничего не пишут , но используют. Похвал ИС от них я никогда не слышал — в основном скепсис. Но ведь открывают регулярно.

    Так что vip — совсем не один такой оригинал.

    Вопрос, конечно, спорный . Но более перспективным мне кажется подход

    НЕ ОТТАЛКИВАНИЯ , а привлечения и удерживания такой публики. В данном случае за счет предоставления им такого же сервиса кастомизации.

    И второй момент : квалифицированному новичку ИС будет приятно иметь такой сервис — что это как не привлечение и удержание аудитории ?

    Reply ↓
  42. vip

    (42)

    Так что vip — совсем не один такой оригинал.

    Расшифруй, плиз.

    А то как всегда непонятно, оскорбил или похвалил.

    Reply ↓
  43. artbear

    (42) Да, расшифруй по (43)

    ЗЫ по задротам на ИС верно, буквально вчера с одним странным типом встретился 🙁

    Вот копия нашего обсуждения

    Когда чел увидел, что народ из-за его поведения начал голосовать минусами, то удалил разработку — хоть что-то правильное догадался сделать.

    Да и в других своих обработках хамил немало 🙁

    Reply ↓
  44. Арчибальд

    (44) Там собственно хамства-то немного было.

    Так, глупое самодовольство. Но в сумме накопилось на минус 😐

    Reply ↓
  45. Арчибальд
    На это сообщение ссылаются:

    Суперзачет 😎

    Reply ↓
  46. Ish_2

    (43) Подозрителным ты стал .

    Отвечаю : нет , не оскорбил. Подчеркнул лишь , что ,по-моему, людей квалифицированнных и скептически молчащих на ИС не так уж и мало. Отталкивать их по-моему неверно.

    Никакого другого смысла сообщение не содержит.

    Reply ↓
  47. vip

    (47) Про квалификацию это ты в точку 😀

    Скептически молчащих через монитор не увидишь.

    Я скептически отношусь не к сайту, а к горам мусора, которыми его заваливают. Жемчужное зерно из-под завалов достать уже практически невозможно.

    Даже вопросы по большей части задаются какие-то скучные.

    А очень редкие действительно интересные вещи быстро тонут в потоках мути.

    И никакая рубрикация уже не поможет.

    Ну и, мягко говоря, скептически отношусь к отдельным представителям местного сообщества, сгибающимися под грузом регалий.

    Кстати, где же пропал один из таких представителей?

    Неужели номинация «Вахтер сайта» была последней соломинкой?…

    Reply ↓
  48. artbear

    (48) Что за «вахтер»? я что-то пропустил?

    (45) Я писал, что он в других своих разработках хамил 🙂

    (46) Да, прикольно, мне также понравилось.

    Reply ↓
  49. artbear

    (48) Да, поэтому я все чаще начинаю минусовать те разработки, которые сразу плохо описаны и оформлены, комментируя свой минус для авторов.

    достал хлам.

    Reply ↓
  50. vip
  51. support

    (42) На ИС их нет, так как предложить им нечего, кроме «чесания» языком.

    Всех задротов с мисты буду баннить нещадно, при малейшем проявлении признаков. Основной признак — это написать в комментарии какую-нибудь чушь, типа «очередная лажа», а так же переход на личности и неуважение к другим участникам сообщества.

    Reply ↓
  52. support

    (52) И всех участников сообщества призываю пресекать любой перенос манеры общения с говномисты.

    Reply ↓
  53. tango

    Во, блин, достали чела конкретно 🙂

    Reply ↓
  54. support

    (54) Во-первых не «чела». Во-вторых, прошу выразить более конкретно вашу мысль.

    Reply ↓
  55. Ish_2

    (50) До сих пор я рассматривал «минус» — как нечто «из ряда вон». И нужно очень и очень постараться , чтобы его получить. Но поток «мусора» настолько велик , что возможно придется пересмотреть эту позицию.

    Получается удивительно простой вывод : чтобы бороться с мусором — надо его регулярно убирать.

    Reply ↓
  56. artbear

    (57) Таких полно. У меня недавно один похожий проявился, я писал выше.

    Да и до сих пор на обработках есть минусы от таких людей 🙁

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *