Главная страница » Модули » Правильные заголовки в DataLife Engine (ниже 8.2 версии)

Правильные заголовки в DataLife Engine (ниже 8.2 версии)

Раздел: Модули | Обзоров: 4810 | Отзывов: 12

Перед выполнением указанных ниже действий, обязательно сделайте резервную копию редактируемого файла. Это на случай, если Вы сделаете что-то не так.

Нам потребуются программы

1. Notepad++ - бесплатный редактор с подсветкой синтаксиса
2. FileZilla или любой из бесплатных FTP менеджеров

Приступим к редактированию

Перейдите на FTP сервер, откройте каталог с вашим сайтом и найдите каталог engine, после этого переходите в него и открываете для редактирования файл engine.php именно он содержит систему вывода заголовков в DataLife Engine. После открытия, опуститесь практически к самым нижним строчкам в файле (у меня 635 строка).

if ($nam_e) {
    $metatags['title'] = $nam_e . ' » ' . $metatags['title'];
    $rss_title = $metatags['title'];
}


Этот участок отвечает за вывод названия категорий, но не скажу, что правильно он их выводит. Для чего к названию категории, добавлять название сайта!? Давайте исправим этот момент. Удаляйте полностью вышеприведенный код и пишем вместо него следующий:

if($nam_e)
{
    // убираем лишнее упоминание о сайте в заголовке категории
    $metatags['title'] = $nam_e;
    $rss_title = $metatags['title'];
}


Как бы все понятно, можно сохранить и проверить. Теперь у вас выводится название категории без дублей заголовка сайта. Как бы это нам и нужно было, но я для своего сайта сделал другой вариант. Он конечно не подойдет для всех сайтов, но для многих будет полезно. У меня на зоне категории используют названия игр, например Warcraft III, и в этой категории находится еще две подкатегории: Карты и Программы. Раньше мне приходилось писать в названиях подкатегорий следующее Карты Warcraft III, но криво смотрелось при составлении новости (выбор категории), да и в самой новости выводилось следующее:

Категория: WarCraft III » Карты WarCraft III
Категория: WarCraft III » Программы WarCraft III


Не очень красиво, правда? Куча упоминаний об игре, тут я подумал, а что, если выводить после названия подкатегории название основной категории. У меня получился следующий код:

if($nam_e)
{
    // получаем название категории, в которой находится наша подкатегория
    $root_cat = stripslashes($cat_info[$cat_info[$category_id]['parentid']]['name']);

    // убираем лишнее упоминание о сайте в заголовке категории
    $metatags['title'] = $nam_e . ' ' . $root_cat;
    $rss_title = $metatags['title'];
}


Как бы все легко и понятно, это мне позволило называть категории коротко и лаконично, а уже заголовок "собирался на ходу" из названия подкатегории и основной категории:

<title>Карты WarCraft III</title>
<title>Программы WarCraft III</title>


Теперь же новости описание категории выглядело более красиво и самое главное - правильно:

Категория: WarCraft III » Карты
Категория: WarCraft III » Программы


Конечно, с выходом новой версии движка 8.2 - это не особо актуально, так как в ней используется собственный заголовок для категорий, но не у всех же будет возможность установить ее. С выводом заголовков для DataLife Engine разобрались и можем приступать к заголовкам новостей, ведь там такая же гадость. Переместитесь немного ниже по коду, а точнее сразу после того, что мы написали выше, есть такое:

if ($titl_e) $metatags['title'] = $titl_e . ' &raquo; ' . $config['home_title'];


Продолжайте заниматься вандализмом, удаляйте его. Давайте напишем вместо него новый код:

if($titl_e)
{
    // убираем лишнее упоминание о сайте в заголовке новости
    $metatags['title'] = $titl_e;
}


Вот и все, после этого у вас будет "чистый" заголовок новости. Правда этот пункт не особо важный для DataLife Engine после 8-й версии, так как именно в в ней была добавлена система добавления собственного заголовка. Но этой функцией мало пользуются пользователи, некоторые не умею (кстати многие не умеют работать с DLE, а ведь документация на русском языке) и движок автоматически генерирует комбинацию из названий: новости + сайта (вот как на seomax'е).

Если остались вопросы, то пишите в комментариях. Отвечу и помогу чем смогу. :)


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.


Комментарий добавил: Vointorf (21 сентября 2009 12:33)
Очень интересно !!! Привет а не поскажешь как вставить в титл к новости название раздела ??? Сам пробовал нечего не получаеться если можно напиши об этом для 8.2 - заранее спасибо !!!


    

Комментарий добавил: PROGRAMMATOR (25 сентября 2009 03:58)
if($titl_e)
{
    $root_cat = stripslashes($cat_info[$cat_info[$category_id]['parentid']]['name']);

    // убираем лишнее упоминание о сайте в заголовке новости
    $metatags['title'] = $titl_e .'  '. $root_cat;
}


Где-то так.

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Vointorf (28 сентября 2009 22:39)
жаль что то не выходит :(( А так прикольная статья !!!
Если получится напиши подробнее для 8.2 ....


    

Комментарий добавил: Vointorf (19 октября 2009 22:17)
Нечего не выходит по поводу имени категории в титл к новости... Можешь сделать для 8.2 -??? :((((((((


    

Комментарий добавил: PROGRAMMATOR (30 октября 2009 00:42)
Прошу прощения, был занят. Посмотрите как у меня отображается заголовок, делается это так:

if($titl_e){
    $cat = stripslashes($cat_info[$category_id]['name']);
    $metatags['title'] = $titl_e.' - '.$cat.' - www.seomax.info';
}

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: Vointorf (1 ноября 2009 22:18)
О да прикольно получилось - прикольные улучшения - посмотрю что выйдет :)) Спасибо вам за информацию - взял много улучшений у вас.. Будем ждать обновления...


    

Комментарий добавил: gmyz (22 ноября 2009 00:23)
Здравствуй, а помоги реализовать постраничную навигацию в полной новости. там вывод страниц такой:
Предыдущая страница | Страница 2 из 11 | Следующая страница

как реализовать что бы вообще все страницы выводились, т.е.
1 2 3 4 5 6 7 8 9 и т.д.

в DLE 8.2 в файле show.full.php после 170 строки.код не вмещается(


    

Комментарий добавил: PROGRAMMATOR (22 ноября 2009 08:26)
Хоть вопрос не по-теме, я помогу. В show.full.php найти:

if( $news_page < $anzahl_seiten ) {
    $pages = $news_page + 1;
    
    if( $config['allow_alt_url'] == "yes" ) {
        $nextpage = " | <a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . ".html\">" . $lang['news_next'] . "</a>";
    } else {
        $nextpage = " | <a href=\"$PHP_SELF?newsid=" . $row['id'] . "&amp;news_page=" . $pages . "\">" . $lang['news_next'] . "</a>";
    }
}

if( $news_page > 1 ) {
    $pages = $news_page - 1;
    
    if( $config['allow_alt_url'] == "yes" ) {
        $prevpage = "<a href=\"" . $short_link . "page," . $pages . "," . $row['alt_name'] . ".html\">" . $lang['news_prev'] . "</a> | ";
    } else {
        $prevpage = "<a href=\"$PHP_SELF?newsid=" . $row['id'] . "&amp;news_page=" . $pages . "\">" . $lang['news_prev'] . "</a> | ";
    }
}

$tpl->set( '{pages}', $prevpage . $lang['news_site'] . " " . $news_page . $lang['news_iz'] . $anzahl_seiten . $nextpage );


и заменить следующим кодом:


for ($j = 1; $j <= $anzahl_seiten; $j++)
{
    if ($news_page < $anzahl_seiten)
    {
        $news_page + 1;
    }
    else
    {
        $news_page - 1;
    }
    
    if ($j != $news_page)
    {
        if ($config['allow_alt_url'] == "yes")
        {
            $pages .= "<a href=\"".$short_link."page,".$j.",".$row['alt_name'].".html\">$j</a>";
        }
        else
        {
            $pages .= "<a href=\"$PHP_SELF?newsid=".$row['id']."&news_page=$j\">$j</a>";
        }
    }
    else
    {
        $pages .= "<span><b>$j</b></span>";
    }
}

$tpl->set('{pages}', $pages);

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: gmyz (22 ноября 2009 13:49)
Знаю что не по теме, но больше негде было. За реализацию ОГРОМНЕЙШЕЕ СПАСИБО winked


    

Комментарий добавил: PROGRAMMATOR (22 ноября 2009 21:29)
Не за что, пользуйтесь на здоровье. fellow

--------------------
Мой блокнот: www.seomax.info

    

Комментарий добавил: blesset (3 января 2010 01:47)
по теме сложился вопрос=) а если есть поля которые были добавлены на добавление новости (не дополнительные), как можно добавить одно из них в заголовок (title)?


    

Комментарий добавил: PROGRAMMATOR (9 января 2010 15:20)
Для того, что бы отвечать точно, нужно хоть представлять что вы сделали и как вы это сделали. В любом случае нужно изменить запрос на просмотр полной новости, добавив выборку из вашего дополнительной колонки и добавить полученную инфу в заголовок. smile

--------------------
Мой блокнот: www.seomax.info