Забыли пароль?
Запросите новый здесь.

Автор темы: Zaxap
ID темы: 1428
Информация:
Тема содержит 31 сообщения, была просмотрена 21353 раз.  Имеются прикрепленные файлы.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Плагины
 Распечатать тему
Помогите исправить ошибки в Tags System Panel 1.5
Neo_Allex
ну, кустарно как-то так:

замени в этом коде
$text = explode( ", ", $text);
на
$text = explode(",", mb_strtolower(str_replace(array(", ", ", "), ",",trim($text))));
http://how-make.i...ticles.php - как это делают? Современные технологии изготовления вещей и изделий...
 
Web
Pisatel
Хорошо, попробую. Заодно узнаю, что эти функции делают:-)
 
Web
Pisatel
Neo_Allex, код, в общем, работает, но не так, как нужно: почему-то ссылками становится ВЕСЬ текст статьи, а не только теги. Теги, как и положено, работают... Вот весь код вместе:
Загрузить источник  GeSHi: PHP
  1. <?php
  2.  
  3.  
  4.  
  5. if (!defined("IN_FUSION")) { die("Access Denied"); }
  6.  
  7.  
  8.  
  9.  
  10.  
  11. $text = preg_replace('#\[tags\](.*?)\[/tags\]#si', '\1', $text);
  12.  
  13.  
  14.  
  15. $tags = array();
  16.  
  17. $text = explode(",", mb_strtolower(str_replace(array(", ", ",&nbsp;"), ",",trim($text))));
  18.  
  19.  
  20.  
  21. foreach ($text as $value) {
  22.  
  23. $tags[] = '<a title='.$locale['bb_tags'].' href=\''.INFUSIONS.'tags_system_panel/tags.php?taglist='.$value.'\'>'.$value.'</a>';
  24.  
  25. }
  26.  
  27.  
  28.  
  29. $text = implode( ", ", $tags);
  30.  
  31.  
  32.  
  33.  
  34. ?>
Добавлено за 0.032 секунд, используя GeSHi 1.0.8.10

Я уже всю голову сломал, но не осилил, почему этот бб захватывает весь текст...
 
Web
Neo_Allex
ну, попробуй так:

Скачать исходники  Код

$count = preg_match_all("#\[tag\](.*?)\[/tag\]#si", $text, $match, PREG_PATTERN_ORDER);

for ($i=0; $i<$count; $i++) {
   $listitems = explode(",", mb_strtolower(str_replace(array(", ", ",&nbsp;"), ",",trim($match[1][$i]))));
   $listtext = "";
   foreach($listitems as $item) {
      $item = trim($item);
      if(!empty($item)) {
         $listtext .= "<a title=".$locale['bb_tags']." href='".INFUSIONS."tags_system_panel/tags.php?taglist=".$item."'>".$item."</a>, ";
      }
   }

   $text = str_replace($match[0][$i], $listtext, $text);
}

unset($count);
unset($listitems);
unset($listtext);
unset($match);




только помни, ссылки для русских (...taglist=".$item."') тегов могут быть в ввиде taglist=%EA%EE%EB%E1%E0%F1%E0
но это уже другая история... (urldecode может не проканать, разве что извращения http://omsk777.ru/kodurl.html)

P.S. У тебя в коде стоит tags, а искомый вариант был tag. Посему, если менял для кнопки (кажись в html_buttons_include.php) на tags (чтобы было типа [tags]колбаса,колбасные иЗделия, мясные продукты[/stag]) - то также и тут меняй...
Изменил(а) Neo_Allex, 04.04.2013 20:11
http://how-make.i...ticles.php - как это делают? Современные технологии изготовления вещей и изделий...
 
Web
Pisatel
Благодарю, попробую! Я просто хотел сделать два бб: [ tag] и [ tags], html_buttons_include здесь не нужен:-)
 
Web
Neo_Allex
Я просто хотел сделать два бб: [ tag] и [ tags],
ну, так условия дополнительные надо писать, или бб-код отдельный...

или же, походу догадываюсь: один будет [ tag] - это как стандарт, на одно слово/строку
а [ tags] - это на несколько, через запятые - да?
http://how-make.i...ticles.php - как это делают? Современные технологии изготовления вещей и изделий...
 
Web
Pisatel
Да, все верно, две отдельных кнопочки:-) Кстати, твой вариант можно будет сделать через search по всему сайту...
 
Web
Neo_Allex
твой вариант можно будет сделать через search по всему сайту
немного не понял....
для search используется includes\search\search_поключаемый-файл_include.php - и там пишеться код для выборки из базы по запросу из поля на странице search'а
http://how-make.i...ticles.php - как это делают? Современные технологии изготовления вещей и изделий...
 
Web
Pisatel
Посмотри бб код search- реализация та же, только поиск по тегам сделать.
x1
 
Web
Neo_Allex
то тебе отдельный типа [teg_search] (или [tegs_search]) сделать нужно?
Тогда можно просто доделать, думаю догадываешся как: естественно заемнить нужное на tegs_search и в ссылку прописать наподобии бб-кода "search":

вот для сирча:
$text = preg_replace('#\[search\](.*?)([\r\n]*)\[/search\]#si', '<strong>'.$locale['bb_search_prefix'].' <a href=\''.BASEDIR.'search.php?stext=\1\2&amp;method=AND&amp;stype=all&forum_id=0&datelimit=0&fields=2&sort=datestamp&order=0&chars=50\' title=\'\1\2\'>\1\2</a></strong>', $text);

так и для тегсов [tegs]: ( в коде твоем - ну, который выше я написал, - я так понял он у тебя работает) - надо в ссылку добавить/заменить этот сирч, прописать типа такое:

$listtext .= "<a title=".$locale['bb_tags']." href='search.php?stext=$item&amp;method=AND&amp;stype=all&forum_id=0&datelimit=0&fields=2&sort=datestamp&order=0&chars=150'>".$item."</a>, ";

http://how-make.i...ticles.php - как это делают? Современные технологии изготовления вещей и изделий...
 
Web
Pisatel
Да, именно об этом я и говорю! Спасибо!
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,211)   Zaxap Zaxap (1,089)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)