Как после сохранения заменить текст/дескрипшн (сделать sql запрос)?

  • 2 Ответов
  • 293 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

Karyuudo

  • ****
  • 368
  • + 0 -
Нужно, чтобы автоматически заполнялся дескрипш (мета), по шаблону: тайтл+рецепт с фото.

я не знаю как работает Joomla, может быть есть и другой вариант, но я знаю, что можно сделать например следующий запрос в phpmyadmin:

Код
UPDATE bd_content
SET metadesc = concat(title, ' - рецепт с фото')
WHERE metadesc = ''

теперь вопрос - как сделать, чтобы этот запрос выполнялся автоматически после сохранения материала?

так же в тексте есть слова, которые так же после сохранения надо автоматически заменить на другие.
тоже делаю это запросом sql.

как это все сделать? или может есть плагины?

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

*

Aleks.Denezh

  • *******
  • 2780
  • + 375 -
Варианты:
1. Написать контент плагин который будет сохранять
2. Переопределишь шаблон вывода и в нем добавить к тайтлу нужный текст типа так:
Код: php
$doc = JFactory::getDocument();
$doc->setTitle($doc->getTitle(). ' - рецепт с фото');
Мой  блог по разработке на Joomla CMS!
Хотите отблагодарить материально? Мой WMR: R861060179016

*

Karyuudo

  • ****
  • 368
  • + 0 -
Варианты:
1. Написать контент плагин который будет сохранять
2. Переопределишь шаблон вывода и в нем добавить к тайтлу нужный текст типа так:
Код: php
$doc = JFactory::getDocument();
$doc->setTitle($doc->getTitle(). ' - рецепт с фото');
спасибо за ответ.
я правда ожидал, что достаточно будет добавить несколько строк кода в каком-то уже готовом плагине сохранения материала.
придется значит изучать как делать плагины, так как для решения задачи по замене текста - это надо в базу (заменить слово фото1, на путь к фото1, который формируется на основе алиаса) для отображения картинки.

А может всеже вместо создания плагина можно подредактировать какой=-нибудь?
вот например нашел в plugins\editors\codemirror
Код
public function onSave($id)
{
return sprintf('document.getElementById(%1$s).value = Joomla.editors.instances[%1$s].getValue();', json_encode((string) $id));
}
типа тут дописать этот запрос.. или еще куда-нибудь его..

Кстати вопрос как оптимальнее в плане нагрузки на сайт формирование дескрипшена -
заносить его в базу или выводить через шаблон как пункте 2?
или без разницы особой?
« Последнее редактирование: 09.09.2015, 17:09:17 от Karyuudo »