<?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='\
Дайджесты нужны! Я, по крайней мере, всегда ждал их с нетерпением.
Одному человеку сделать такую подборку довольно сложно. Мое мнение — дайджесты должны делать модераторы разделов, а объединять для выпуска —Арчибальд . Либо должен быть человек, который будет финансово в этом заинтересован…
PS: И не обязательно делать их ежемесячными, можно по мере накопления материала. Не журнал ведь:)
Спасибо тебеАрчибальд !
за твой труд !
(1) должны, должен….тут никто уже никому не должен
Очевидное затухание сайта скрашивается энтузиастами, которым интересно !
Хвала Арчибальду.
(3) … и … ? … ДАВАЙ продолжение .. ДАёШЬ продолжение … вот ..
… продли полЁт мысли … ! 134346 — ждут оного …
…
(4) Уже 134348 😎
134361…
(0)
«Все хорошее когда-то заканчивается» — Баба Яга против!(с)
(скандирую вслед за Шёпотом): Даёшь дайджесты в массы….
P.S. предложение: выделить Дайджесты в строке меню сайта. ИМХО, такие обзоры помогают ориентироваться в море инфы на сайте, но могут остаться незамеченными, особенно вновь появившимся на ИС.
… всегДА и везде требуется критерий Истины … иначе слепые водят слепых (типа Дом-2) … вот …
(6) Меню Сообщество-Экспертиза публикаций
… хм … виноват … текст в (7) читать так:
… всегДА и везде требуется критерий Истины … иначе слепые водят слепых и появляется УУ … вот …
… вот …
присоединяюсь к предыдущим ораторам 🙂 НУЖНО и даже очень.
и спасибо тебе большое человеческое за ТРУД.
Извини, дорогой, но у меня кроме плюсика за публикацию — нечем больше тебя порадовать и поддержать. 🙁
А дело ты делал нужное и ИС очень полезное. Понимаю… было трудно. А вот в (1) здравая мысль — модераторы разделов (веток, направлений — да как угодно назовите) помощники главному Джедаю, т.е Дайджестмейкеру. Но. Опять грядет административная реорганизация — назначение модераторов по отдельным направлениям (Интересно, когда Доржи все будет успевать делать…). Но идея мне понравилась — дайджесты надо продолжать однозначно. Как там Шепот говорит — …вот…
(11) Спасибо на добром слове. Конечно, одному неподъемно, да и качество страдает.
Просто выдалась свободная зима — я по осени готовил себе преемника методом «брось в воду». А с начала года у начальства завелись бредовые идеи, мне оригинальный проект заказали — так он и висит пока, — теперь вот затеяли УУ. Времени-то и не остается…
(12) А может это, пусть преемник продолжит;-)
Спасибоо, конечно, нужны 🙂
Даёшь! Очень полезно! Спасибо!
(13) Он вообще ни разу не одноэсник 😀
Дайджесты, несомненно, нужны.
Нужно их как-то выделить на главном меню сайта.
Нда, жаль…. рад был видеть здесь Арчи и его Дайджесты… для меня это стало одной из составляющих ИС…. Спасибо, Арчи, ты для многих пример.
Походу скоро родится новый профильный ресурс по 1С:
Территория 1С -> hare.ru -> proclub -> ИС -> ????
(походу я стар…. я СуперСтар! 🙂
(18) Ну, я-то никуда не делся 😀
Спасибо, Арчи…
А о чем собственно идет речь? Что это за дайжесты?
(21) А по ссылке сходить нельзя?
Все. Вот и все.
Собирай сундуки.
Ты осел. И я осел.
И вообще мы дураки.
Что уж там. Где уж нам,
Вахлакам, медведям.
К дедушкам, к бабушкам
Мы уедем…
Все. Пойду в колхоз.
Счетоводом пока…
100 овец плюс 200 коз —
Тоже математика…
© Ю.Ким
а колхоз об этом знает?
(24) Приглашали 🙁
жаль поспешил ты с августовским дайджестом. я свою разработку 28.07 выложил, а мог бы тоже попасть… на пару дней не успел к последнему выпуску….. 🙁
(26) А ты в июльском присутствуешьhttp://infostart.ru/community/groups/148/blog/1127/
😀
🙂 не заметил