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




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

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

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

<?php // Полная загрузка сервисных книжек, создан 2024-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 не будет опубликован. Обязательные поля помечены *