<?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='\
Потрясающе, особенно если учесть, что это управляемое приложение.
Молодец!
Обработка HTML редактор для 8.1
❗ Обработка на этом сайте отсутствует, но есть здесь
Спасибо, порадовали. А то я tini mce прикручивал. Все хорошо, да только в веб-клиенте не все отрабатывало. А тут, по-идее, все должно быть красиво.
В веб-клиенте не работает. Фаерфокс не поддерживает ничего. ИЕ падает на «Метод объекта не обнаружен (queryCommandSupported)».
мне эта обработка очень была нужна. Огромное спасибо.
Обработка супер, только картинок нет
Спас, дружище.
Почти то, что я искал, немного допилил переход по ссылкам (в браузер по умолчанию или форму в 1С).
Ммммммм, как раз собирался писать свое под 8.2, а оно уже написано )))
PS: а чем TinyMCE не подходит?
Автору +
Начал рисовать свое потом случайно наткнулся на эту публикацию.
Спасибо, Вы сэкономили мое время на разработку подобного решения.
(4) CagoBHuK,
Для исправления ошибки в веб клиенте делаем следующее:
Модуль формы:
Добавляем процедуру (что бы заполнился ХТМЛ текст)
Показать
в Процедуре «ВыполнитьКоманду(Кнопка)»
определеяем переменную:
сохраняемся . проверяем.
Автору Спасибо!!!
2 часа копила монетки, т.к. срочно понадобилась такая обработка, скачала, а она для управляемого приложения, жаль…
(4) CagoBHuK,
Вам удалось добится работоспособности данной обработки в Вебе?
Я поправил код как Вы написали, но увы не работает,
Чем можете помочь?
CSS файл к этой обработке можно прикрутить ?
(12) mdy, дело было в феврале. Не могу вспомнить результата, по причине того что проект заглох и данный модуль не пригодился. Но в результатах тестирования мои изменения работали.
Нужно сделать нечно подобное под веб-клиент. Интересно было бы посмотреть на данное решение.
Спасибо огромное за труд. Обработка пригодилась.
Спасибо огромное!
Хорошая вещь, полезная! Скачал, плюсанул.
Вот просто интересно — почему не используется стандартный диалог выбора цвета?
По-моему, он выглядит эстетичнее. Вот только ползунков у него нет.
Но зато в нем есть возможность выбора цвета стиля.
Очень нужная обработка, намного легче текст править для Интернет-Магазина
подскажите как добавить табличку в редактор
на одну или 2 колонки
Спасибо.
Отличная обработка. давно искал.
спасибо автору.
Не, мне больше по душе исходный функционал от Душелова. Там режимов и кноппачек на панели побольше, да и в УФ отлично бегает. Не все тестил, правда, но для меня правка исходного html, например, очень симпатична, а здесь её нету. Автор, почему урезаны возможности Tiny?
(23) Yashazz, если вы не заметили, Tiny MCE в моей поделке вообще не используется — все сделано без нее.
(24) Не качал, поэтому и не заметил )) Откуда я знаю, может, вы просто дизайн поменяли, а js-вызовы эмулируете ) Ну тады пардон, тогда вопросов не имею, а вещица у вас вышла недурственная полюбому.
batyrkin, есть вопрос
При редактировании описания товара у нас они достаточно большие и возникла необходимость в полосе прокрутки во вертикали.
В режиме просмотра ее удалось добавить с помощью Документ.body.scroll = «yes»;
Но, она также нужна в режиме редактирования HTML.
Можно ли это сделать с помощью настроек?
Или, если понадобится доработка — какова стоимость?
Нету вставки картинок из буфера обмена. Так и не понятно — чем форматированный документ не устроил?
Сыровато. Но в целом спасибки.
Добавь себе еще кнопки отмены и повторения действия, раскрась строки таблицы выбора цвета, убери к еб*ням форму вставки ссылки (пусть отрабатывает форма отцов основателей), так же поступи с вставкой картинки. Множество доступных команд спроси у гейтса.
Я выдрал твои наработки к себе, но пришлось долго возиться (т.е. разбираться в механизме). outerHTML — позволяет у прогруженного документа спросить весь текст HTML, а не только body.
Атрибут body с именем ContentEditable нужно сбрасывать, чтоб потом все тараканы не лезли менять страничку.
Идея подсвечивания очень понравилась!!! странно, что ее нет в консолях запросов. Но я вырубил этот режим и просто текстовое поле вываливаю вместо поля html, чтобы можно было редактировать всю страницу, а не только часть.
Вот эта шняга queryCommandValue получает имя шрифта, его размер и имя стиля, чтоб не только кнопки помечать при нажатии мышкой. Жаль, что низя так же по движению курсора делать (я не сильно здесь тужился).
В общем вот так. Расти большой не будь лапшой! Удачи чувак!
Картинки вообще вставить нельзя?
и работы с таблицами нет ?
Элемент.Документ.body.scroll = «no»;
Чуваг, зачем??:) я думала, это 1с косячит, 2 часа гуглила причину, почему в полеhtmlдокумента не выводится скролл-бар…
и еще под новой платформой проблемы с модальными окнами
в остальном обработка супер!
(30) grayshadow, когда мне это надо было, была необходимость именно короткие HTML описания делать чтоб они на сайт вываливались из 1С, потому и Элемент.Документ.body.scroll = «no»;
Картинку можно «допилить» вставив команду
Показать
А вот с таблицами — беда, кто нибудь может подскажет как таблицы вставлять?
Приветствую
Так есть команды по вставке Таблиц?
Может есть справочник по всем командам которые можно прописать ?
А возможно править сам html с помощью этого редактора?
(33) Взял список команд отсюда
https://developer.mozilla.org/ru/docs/Web/API/Document/execCommand
Проверил по этому списку. Получилось следующее
backColor — Да
bold — Да
contentReadOnly — Нет
copy — Да
createLink — Да
cut — Да
decreaseFontSize — Нет
delete — Да
enableInlineTableEditing — Нет
enableObjectResizing — Нет
fontName — Да
fontSize — Да
foreColor — Да
formatBlock — Да
forwardDelete — Нет
heading — Нет
hiliteColor — Да
increaseFontSize — Нет
indent — Да
insertBrOnReturn — Нет
insertHorizontalRule — Да
insertHTML — Нет
insertImage — Да
insertOrderedList — Да
insertUnorderedList — Да
insertParagraph — Да
insertText — Нет
italic — Да
justifyCenter — Да
justifyFull — Да
justifyLeft — Да
justifyRight — Да
outdent — Да
paste — Да
redo — Да
removeFormat — Да
selectAll — Да
strikeThrough — Да
subscript — Да
superscript — Да
underline — Да
undo — Да
unlink — Да
unlinkuseCSS — Нет
styleWithCSS — Нет