Мы в твиттере Мы в телеграме!

Провеббер » DataLife Engine » DLE хаки » Хак для DLE "Алфавитный фильтр"

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

Хак для DLE "Алфавитный фильтр"

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Хак для DLE "Алфавитный фильтр".



Хак будет полезен в первую очередь тем, у кого тематический сайт-каталог.
Например, сайт только с клипами, сайт только с книгами Д.Донцовой :-), сайт только с рок-музыкой и т.д. Но в принципе, можно использовать на любом варезнике.

Вид, естественно можно изменить по Вашему усмотрению.

Возможности:
1) Фильтрация новостей по буквам латинского алфавита и цифрам. Фильтр по буквам кириллицы производится по фильтру «RUS»
2) Автоматическое добавление первой буквы/цифры названия при добавлении/редактировании новости в поле «Символьный код» (если буква кириллицы – добавляется RUS). При этом производится проверка на невозможность добавления спецсимволов, пробелов и т.д.

Хак тестировался на версиях 8.2 и 7.5

Рабочий пример можно посмотреть на 1024kbytes.com

Итак:
1) Создаем в блокноте файл с именем afilter.php
Копируем в него код

<?php
/*
=====================================================
Алфавитный фильтр
=====================================================
Данный код защищен авторскими правами ([email protected], ICQ#271522951)
=====================================================
Файл:  afiltr.php
----------------------------------------------------------
Назначение:  Создание алфавитного списка
=====================================================
*/
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}
$alphafilter = '<TABLE cellSpacing=0 cellPadding=0 width=100%><TR><td  align = "center">';
$alphafilter .= '<a href="http://'.$_SERVER['HTTP_HOST'].'/catalog/RUS/">RUS</a>&nbsp;&nbsp;&nbsp;';
for ($i = 97; $i <= 122; $i++)
{
$alphafilter .= '<a href="http://'.$_SERVER['HTTP_HOST'].'/catalog/'.chr($i).'/">'.chr($i).'</a>&nbsp;';
}
$alphafilter .= '&nbsp;&nbsp;&nbsp;';
for ($i = 0; $i <= 9; $i++)
{
$alphafilter .= '<a href="http://'.$_SERVER['HTTP_HOST'].'/catalog/'.$i.'/">'.$i.'</a>&nbsp;';
}
$alphafilter .= '</td></tr></TABLE>';

    $tpl->load_template('afilter.tpl');
    $tpl->set('{alphafilter}', $alphafilter);
    $tpl->compile('afilter');
    $tpl->set('{afilter}', $tpl->result['afilter']);
?>



2) Копируем только что созданый afilter.php в /engine/moduls

3) Открываем /engine/moduls/functions.php, находим строчку

?>


и ВЫШЕ ее вставляем код:

function GetSymbolKod($title){  
$res = '000';  
$title = strtolower(ltrim($title));  
if (preg_match("/[a-zA-Zа-яА-Я0-9]/", $title, $out_arr ))  
{
       if (preg_match("/[a-zA-Z0-9]/", $out_arr[0]))  $res = $out_arr[0];
       if (preg_match("/[а-яА-Я]/", $out_arr[0]))  $res = "RUS";  
}  
return $res;
}


4) Открываем /engine/inc/include/functions.inc.php (в ранних версиях может быть в /engine/inc/functions.inc.php)

?>



и ВЫШЕ вставляем код:

function GetSymbolKod($title){  
$res = '000';  
$title = strtolower(ltrim($title));  
if (preg_match("/[a-zA-Zа-яА-Я0-9]/", $title, $out_arr ))  
{
       if (preg_match("/[a-zA-Z0-9]/", $out_arr[0]))  $res = $out_arr[0];
       if (preg_match("/[а-яА-Я]/", $out_arr[0]))  $res = "RUS";  
}  
return $res;
}



5) (для версти 8.2)
Открываем /engine/moduls/addnews.php, находим ПЕРВОЕ вхождение:

if( $found ) {



и ВЫШЕ вставляем код:

/********* afilter ***********************/
$catalog_url = GetSymbolKod($title);
/********* !afilter **********************/



5) (для версии 7.5)
Открываем /engine/moduls/addnews.php, находим строку

$symbol = $title[0];



ВПЕРЕДИ (не выше, а именно спереди строки) нее ставим «//» (без кавычек), а НИЖЕ вставляем код:

$symbol = GetSymbolKod($title);



Далее находим часть строки:

symbol='ABC'



и ЗАМЕНЯЕМ на:

symbol='$symbol'



Опять находим часть строки:

'III'



и ЗАМЕНЯЕМ на:

'$symbol'




6) Открываем /engine/inc/addnews.php и находим строку:

$catalog_url =



ВПЕРЕДИ (не выше, а именно спереди строки) нее ставим «//» (без кавычек), а НИЖЕ вставляем код:


/********* afilter ***********************/
$catalog_url = GetSymbolKod($title);
/********* !afilter **********************/



7) Открываем /engine/inc/editnews.php и находим строку:

$catalog_url =



ВПЕРЕДИ (не выше, а именно спереди строки) нее ставим «//» (без кавычек), а НИЖЕ вставляем код:


/********* afilter ***********************/
$catalog_url = GetSymbolKod($title);
/********* !afilter **********************/




Хак имеет шаблон. Это для того, чтобы каждый мог сделать внешний вид фильтра по своему усмотрению. По умолчанию (то, что предложу я), подойдет большинству ибо простой и использует стиль спидбара (speedbar). Менять можно по своему усмотрению :-)
Итак, все просто:
8) В блокноте создаем файл afilter.tpl
В него копируем код:

<noindex>
<DIV class="afilter">{alphafilter}</DIV>
</noindex>


Кстати, тэг можно и убрать :-)

9) Копируем только что созданный файл в /templates/ваш_шаблон.

Как видно из шаблона, я использую стиль "afilter". Чтоб долго не думать, как шаблон сделать подходящим к общему стилю сайта, я взял и скопировал класс спидбара (speedbar) и назвал его afilter (хотя можно еще проще – в шаблоне указать класс speedbar – но это чревато последствиями…).
Делал это так.
10) Открываем файл /templates/ваш_шаблон/css/style.css и ишем строку с описанием стиля «.speedbar», «.speedbar a» и «.speedbar a:hover» . У меня это выглядит так:

.speedbar {
    color: #727272;
    font-size: 11px;
    font-family: tahoma;
    padding-left: 6px;
}
.speedbar a {
    color:  #0574D3;
    text-decoration:none;
}
.speedbar a:hover {
    text-decoration: underline;
    color:  #0574D3;
    }



Скопируйте этот код в самый конец файла, только замените название speedbar на afilter и добавьте

font-size: 11px;


к «.speedbar a» и «.speedbar a:hover» стилям.

Вот что у меня получилось:

.afilter {
    color: #727272;
    font-size: 11px;
    font-family: tahoma;
    padding-left: 6px;
}
.afilter a {
    color:  #0574D3;
    font-size: 11px;
    text-decoration:none;
}
.afilter a:hover {
    text-decoration: underline;
    color:  #0574D3;
    font-size: 11px;
    }    



11) Копируем только что отредактированный файл style.css обратно в /templates/ваш_шаблон/css/

Это мое видение шаблона :-). Повторяю – Вы же можете шаблон замутить, как надо именно Вам.

12) Предпоследний шаг.
Берем /templates/ваш_шаблон/main.tpl, находим строку {speedbar}. А тут как хотите – выше или ниже этой строки ставите тэг {afilter}. У меня на скриншоте – тэг выше {speedbar}.

13) И последнее - подключим наш хак к сайту:
Открываем файл index.php, находим строчку

require_once ROOT_DIR . '/engine/init.php';



и НИЖЕ вставляем код:

//***************** afilter *************************
require_once ROOT_DIR.'/engine/modules/afilter.php';
//***************** afilter *************************




14) И еще один важный момент.
Т.к. поле «Символьный код» в новости, значение которого участвует в фильтре , заполняется автоматически только при add/edit новости, то у всех предыдущих новостей поле будет пустым (или заполненный не так, как нам надо). Решения есть два:
1) пересохранить все новости (надо потратить много времени)
2) запустить скрипт, который автоматом все правильно исправит (времени не надо тратить. Кому этот вариант ближе - пишите на мыло, ICQ271522951, в личку)


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


+1
Просмотры: 9 646 :: Комментарии (10) :: :: Нужна помощь? Задайте вопрос на форуме ::
Теги: хаки, для dle
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1prouser

  • 22 сентября 2009 10:45
  • Регистрация: --
  • Был(а) онлайн: --
  • Комментариев: 0
  • 0
интересно спасибр

#25Nizza

  • 24 сентября 2009 03:24
  • Регистрация: 22.09.2009
  • Был(а) онлайн: 5.10.2024
  • Комментариев: 343
  • 0
подождём может кто выложит готовый доработаный вариант))

#3edikbirnt

  • 24 сентября 2009 16:13
  • Регистрация: --
  • Был(а) онлайн: --
  • Комментариев: 0
  • 0
Нужная и удобная вещь, спасибо.

#4starter80

  • 4 октября 2009 11:18
  • Регистрация: --
  • Был(а) онлайн: --
  • Комментариев: 0
  • 0
Большое спасибо.

#5mafia

  • 7 ноября 2009 20:19
  • Регистрация: --
  • Был(а) онлайн: --
  • Комментариев: 0
  • 0
danke admin fr Modul boss

#6narkoz21

  • 31 декабря 2009 09:24
  • Регистрация: 28.11.2009
  • Был(а) онлайн: 18.01.2017
  • Комментариев: 24
  • 0
блин удобная штука для тематичких сайтов

#7web-programmist

  • 31 мая 2010 20:53
  • Регистрация: 22.01.2010
  • Был(а) онлайн: 5.11.2020
  • Комментариев: 11
  • 0
на 8.0 пробывали? mad

#8barons93

  • 7 октября 2010 15:28
  • Регистрация: 2.01.2010
  • Был(а) онлайн: 19.06.2021
  • Комментариев: 68
  • 0
crazy такая приблуда на 9.0 будет работать? а то впадлу проверять...

--------------------

#9RA

  • 22 января 2011 23:03
  • Регистрация: 31.10.2009
  • Был(а) онлайн: 14.10.2013
  • Комментариев: 6
  • 0
на 9.0 работает

#10RA

  • 22 февраля 2011 12:10
  • Регистрация: 31.10.2009
  • Был(а) онлайн: 14.10.2013
  • Комментариев: 6
  • 0
на 9.2 тоже работает

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Ноябрь 2024 (9)
Октябрь 2024 (169)
Сентябрь 2024 (13)
Август 2024 (60)
Июль 2024 (12)
Июнь 2024 (30)

Последние комментарии: