Шаблоны для DLE » Хаки » Кастомизация облака тегов от Sander

Купить VIP новость Поднять новость Выделить новость
Кастомизация облака тегов от Sander

Кастомизация облака тегов от Sander для dle

Представляем вам хак кастомизация облака тегов от Sander для dle 10.х с помощью которого вы сможете сделать довольно симпатичные ссылки в облаке тегов однако я столкнулся с несколькими проблемами по части настройки самого шаблона также не забывайте смотреть наши другие хаки для dle. В частности речь пойдет о полном отсутствии самой возможности настроить свой шаблон. Еще и эти так сказать обязательные "запятые" тоже не к месту, а чтобы что-то нужно изменить или убрать - необходимо было только вносить изменения в сами php файлы. Вот решением данных проблем мы сейчас и займемся. И в качестве бонуса дам вам код html и стили тегов как на скриншоте.

Установка:


1. Открыть engine/modules/show.full.php и найти:

$tpl->set( '{tags}', implode( ", ", $tags ) );



Добавить ниже:

if(preg_match("#{tags=['\"]([^'\"]*)['\"]}#i",$tpl->copy_template,$sep)) $tpl->set($sep[0],implode($sep[1],$tags));



2. Теперь в шаблоне fullstory.tpl можно выводить теги тегом:

{tags=""}



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

{tags} 
{tags=", "}



3. Открыть engine/modules/tagscloud.php и найти:


} else $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag";



Добавить ниже:

$tagsort = 'tag';
		if(preg_match("#\\[list([^\]]*)\\](.+?)\\[/list\\]#is",$tpl->copy_template,$tpl_list)){
			$limit = false;
			$sep = '';
			if(preg_match("#limit=['\"](\d+)['\"]#i",$tpl_list[1],$lm)){
				$lm = intval($lm[1]);
				if($lm>0){
					$limit = true;
					$sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC LIMIT 0,$lm";
				}
			}
			if(preg_match("#sep=['\"]([^'\"]*)['\"]#i",$tpl_list[1],$sp)) $sep = $sp[1];
			if(preg_match("#sort=['\"](count|tag)['\"]#i",$tpl_list[1],$tgsr)) $tagsort = $tgsr[1];
		}
		if(!$limit) $sql_select = "SELECT tag, COUNT(*) AS count FROM " . PREFIX . "_tags GROUP BY tag ORDER BY count DESC";



Найти:

usort ($list, "compare_tags");



Добавить выше:

if($tagsort=='tag')



Найти:

  if ($config['allow_alt_url'] )
					$tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";
				else
					$tags[] = "<a href=\"$PHP_SELF?do=tags&amp;tag=".urlencode($value['tag'])."\" class=\"{$value['size']}\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";



Заменить на:

                if($tpl_list[2]){
                    if ($config['allow_alt_url'] ) $link = $config['http_home_url']."tags/".urlencode($value['tag'])."/";
                    else $link = $PHP_SELF."?do=tags&amp;tag=".urlencode($value['tag']);
                    $temp = $tpl_list[2];
                    $temp = str_ireplace("{link}",$link,$temp);
                    $temp = str_ireplace("{tag}",$value['tag'],$temp);
                    $temp = str_ireplace("{count}",$value['count'],$temp);
                    $tags[] = $temp;
                }else{
                    if ($config['allow_alt_url'] )
                        $tags[] = "<a href=\"".$config['http_home_url']."tags/".urlencode($value['tag'])."/\" class=\"{$value['size']}\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";
                    else
                        $tags[] = "<a href=\"$PHP_SELF?do=tags&amp;tag=".urlencode($value['tag'])."\" class=\"{$value['size']}\" title=\"".$lang['tags_count']." ".$value['count']."\">".$value['tag']."</a>";
                }


Найти:

$tags = implode(", ", $tags);



Добавить выше:

if($tpl_list[0]) $tpl->copy_template = str_replace($tpl_list[0],implode($sep,$tags),$tpl->copy_template);



Теперь в шаблоне tagscloud.tpl можно вместо просто тега использовать конструкцию:

[list limit="100" sep="" sort="count"]<a href="{link}"><span class="tagname">{tag}</span><span class="tagcount">{count}</span></a>



где

limit - количество тегов

sep - в кавычках указывается разделитель между тегами, можно не указывать

sort - tag или count, соответственно сортировка по имени тега или по количеству


Все вышеперечисленные параметры не являются обязательными. Можно писать просто:

[list]<a href="{link}">{tag} ({count})</a>



{link} - адрес страницы тега

{tag} - имя тега

{count} - количество новостей с тегом


Все!

Версия DLE: 10.x
Кодировка: utf-8, win-1251
Категория: Хаки
Автор: Sander
Источник:

0
Полезность
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Установка
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
0
Настройка
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
Итоговая оценка: 0.0 из 10 (голосов: 0 / История оценок)

-11
Автор: DEN
1-08-2022, 08:23 16 0
Реклама

Нет комментариев



Добавление комментария

Помощь в публикации комментариев:
1.) Если вы хотите задать вопрос, тогда просто оставьте комментарий, не нужно вопрос добавлять в ответ.
2.) Если вы хотите ответить на комментарий, для этого есть кнопка "ответить" под нужным вам вопросом.
    • Смайлы и люди
      Животные и природа
      Еда и напитки
      Активность
      Путешествия и места
      Предметы
      Символы
      Флаги
Мы ценим вашу конфиденциальность
Мы используем файлы "cookie" на нашем веб-сайте, чтобы предоставить вам наиболее релевентный результат, помня ваши предпочтения и повторные посещения.
Нажимая "Принять" вы соглашаетесь на использование всех файлов "cookie".
Принять
Не принимаю
Показать цели