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

Представляем вам хак кастомизация облака тегов от 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
  • Источник:

собрано 3050.00 рублей Поддержать автора

Войдите на сайт


Все собранные средства будут переданы автору этой статьи - DEN
Сумма перевода от 10.00 рублей
-11
408
0
1-08-2022, 08:23
Обсудить (0)
Похожие хаки
Комментарии
Минимальная длина комментария - 10 знаков, комментарии могут модерироваться!
Комментариев еще нет. Вы можете стать первым!
Помощь в публикации комментариев:
1.) Если вы хотите задать вопрос, тогда просто оставьте комментарий, не нужно вопрос добавлять в ответ.
2.) Если вы хотите ответить на комментарий, для этого есть кнопка "ответить" под нужным вам вопросом.
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Мы ценим вашу конфиденциальность
Мы используем файлы "cookie" на нашем веб-сайте, чтобы предоставить вам наиболее релевентный результат, помня ваши предпочтения и повторные посещения.
Нажимая "Принять" вы соглашаетесь на использование всех файлов "cookie".
Принять
Не принимаю
Показать цели
X

Платные услуги новостей