Выбрать картинки из текста и вставить в отдельное поле
Составить регулярное выражение на sql
Проблема в том, что в той cms для новостей не было отдельного поля для изображения и я вставлял изображение прямо в текст. В общем кто разбирается в sql нужно регулярное выражение для поиска изображения в тексте или хотя бы ссылку где можно про это почитать, так как те примеры регулярок которые я нашёл простейшие…
Ничего страшного.не было отдельного поля для изображения и я вставлял изображение прямо в текст.
Несмотря на то, что ссылка на изображение в тексте, сами файлы всё равно лежат в upload.
Всё нормально, не надо ничего делать.
-------------------------------------------------------------
Или Вы хотите, чтобы первая картинка из поля content вставлялась в поле image?
Или Вы хотите, чтобы первая картинка из поля content вставлялась в поле image?
Да именно так. Так думаю будет правильно. Т. к. иначе проблемы при выводе в виджитах получаются.
а сделайте ссылочку на компонентс помощью компонента "Импорт данных"
Обговорим алгоритм.Да именно так. Так думаю будет правильно. Т. к. иначе проблемы при выводе в виджитах получаются.
Если поле image заполнено — не трогаем. Если не заполнено — ищем первую картинку в тексте и вставляем её?
а сделайте ссылочку на компонентс помощью компонента "Импорт данных"
instantcms.ru/addons/dumper.html
Если поле image заполнено — не трогаем. Если не заполнено — ищем первую картинку в тексте и вставляем её?
это идеальный вариант!
Это будет одноразовое действие или это придется делать при каждом добавлении контента? Или раз в день, например?
vpugachev,
Это будет одноразовое действие или это придется делать при каждом добавлении контента? Или раз в день, например?
Один раз, только что бы старые страницы привести к единообразию, когда изображение хранится в отдельном поле.
Вот такую штуку сделал:
/users/files/download7437.html
Как пользоваться:
Обязательно сделать бэкап базы!!!
Установить из админки, открыть в редакторе файл \system\controllers\content\hooks\cron_img.php
<?php class onContentCronImg extends cmsAction { public function run(){ /* Имя типа контента */ $ctype = 'posts'; /* Имя поля картинки */ $image = 'picture'; $content = $this->model->getContentItems($ctype); foreach($content as $key => $value){ $picture = $this->model->arrayToYaml(array('normal' => $matches[1][0], 'small' => $matches[1][0]), 3); /* Если не нужно удалять картинки из текста - закомментируйте или удалите две строки ниже */ } } } } }
После чего зайдите Панель управления — Настройки — Планировщик. И стартаните вручную задание "Перенос картинок".