Плагин для автоматической вставки ключевых слов

Не давно в кодинге на xtetis попался сниппет заполняющий ключевые слова в пакетном режиме.
Идея отличная, автору респект.
Вот только пакетом мне не нужно, а хотелось бы при сохранении документа получить слова автоматом.
Переделал в плагин .
Суть идеи такова: набиваем ключевые слова для всего сайта в соответcтвующем разделе.
Далее создаём страничку , наполняем её содержимым и сохраняем.
Ключевые слова добавляются если они есть не только в content, но и в других полях документа.
Поменял поиск вхождения слова c strpos на stripos ну и критерий поиска.
К сожалению динамические страницы по прежнему заполняем ручками.
Нужно будет как нибудь позже переделать на события OnParseDocument, OnWebPagePrerender.
Итак, создаём плагин addkeyword, указываем событие OnDocFormSave

  1.  
  2.  
  3. global $id, $content, $pagetitle, $longtitle, $description, $introtext, $menutitle;
  4.  
  5. $text = ' '.$pagetitle.' '.$content.' '.$longtitle.' '.$description.' '.$introtext.' '.$menutitle;
  6. $text = strtolower($text);
  7.  
  8.  
  9. $sql = 'SELECT * FROM `modx_site_keywords`';
  10. $keyquery = $modx->dbQuery($sql);
  11. while ($qkey = mysql_fetch_array($keyquery))
  12. {
  13. $id_key = $qkey['id'];
  14. $keyword = $qkey['keyword'];
  15. if (stripos($text,$keyword) === false){
  16.  
  17. }
  18. else
  19. {
  20. $sql = 'SELECT count(`content_id`) FROM `modx_keyword_xref` WHERE `content_id` = '.$id.' and `keyword_id` = '.$id_key;
  21. $query_count = $modx->dbQuery($sql);
  22. $q_count = mysql_fetch_array($query_count);
  23. $count_key = $q_count['count(`content_id`)'];
  24. if ($count_key == 0)
  25. {
  26. $sql = 'INSERT INTO `modx_keyword_xref` (`content_id`, `keyword_id`) VALUES ('.$id.', '.$id_key.');';
  27. $modx->dbQuery($sql);
  28. }
  29. }
  30. }
  31.  

Последнее изменение документа: 17 Май 2010
Gomer
Posts: 1
Comment
Ошибка
Reply #1 on : Чтв Февраль 04, 2010, 13:50:54
версия: MODx 1.0.2

почемуто не видит $id, вставляет пустоту в запрос что приводит к краху.

Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.