Помощь Изменение тип ссылки на новость в модуле lastnews v 2.1

Тема в разделе "DLE", создана пользователем NoNaMe_909, 2 фев 2009.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. NoNaMe_909

    NoNaMe_909 Постоялец

    Регистр.:
    10 мар 2008
    Сообщения:
    130
    Симпатии:
    2
    Использую модуль lastnews v 2.1

    Сейчас скрипт выводит адрес новости по следующему типу: "Тип 3 - ссылки на полную новость будут иметь вид http://site.ru/2008/04/02/имя новости.html, этот тип несет повышенную нагрузку на сервер" .... А нужно, чтобы выводился адрес по типу: "Тип 2 - ссылки на полную новость будут иметь вид http://site.ru/категория/подкатегория/id-имя новости.html"


    Код:
    <?php
    /*
    =====================================================
     Модуль для DataLife Engine - by BDSoft
    -----------------------------------------------------
     email: bdsoft@mail.com  site: www.myws.ru
    -----------------------------------------------------
     Copyright (c) 2007 bdsoft
    =====================================================
     Данный код защищен авторскими правами
    =====================================================
     Файл: lastnews.php
    -----------------------------------------------------
     Назначение: Последние новости v 2.1
    =====================================================
    */
    if(!defined('DATALIFEENGINE'))
    {
      die("Hacking attempt!");
    }
    /*===========================================
                      НАСТРОЙКИ
    =============================================*/
    $lastnewsconf['news'] = 200; // Длина новости
    $lastnewsconf['link'] = 30; // Обрезание титла новостей
    $lastnewsconf['limit'] = 3; // Количество новостей
    $lastnewsconf['hide_html'] = true;// Уберать все теги из текста новости (true - да, false - нет)
    $lastnewsconf['only_hide_main'] = false;// Показывать только новости не опубликованые на главной (true - да, false - нет)
    $lastnewsconf['category'] = '2'; // Показывать категории, перечислите ID категорий через запятую без пробелов. Если нужно показвать все оставте поле пустым
    
    $lastnews = dle_cache("lastnews", $config['skin']);
    
    if (!$lastnews) {
    //include(ENGINE_DIR.'/inc/parse.class.php');
    //$parse = new ParseFilter(Array(), Array());
    
    if ($lastnewsconf['only_hide_main'])
       $ln_allow_main = 'and allow_main=0';
    else
       $ln_allow_main = '';
    
    if ($lastnewsconf['category'])
       $ln_category = 'and category = '. str_replace(',',' or ', $lastnewsconf['category']);
    else
       $ln_category = '';
       
    $tpl->load_template('lastnews.tpl');
            $db->query("SELECT id, title, short_story , date, alt_name FROM ". PREFIX . "_post WHERE approve='1' $ln_allow_main $ln_category ORDER BY date DESC LIMIT 0,{$lastnewsconf['limit']}");
    
            while($row = $db->get_row()){
    
            $row['date'] = strtotime($row['date']);
    
            if (strlen($row['title']) > $lastnewsconf['link'])
            $title = substr ($row['title'], 0, $lastnewsconf['link'])." ..";
            else
            $title = $row['title'];
    
            //$row['short_story'] =  preg_replace("/\[attachment=[[:digit:]]*\]/si","",stripslashes($parse->BB_Parse($parse->process($row['short_story']))));
            $row['short_story'] =  preg_replace("/\[attachment=[[:digit:]]*\]/si","",stripslashes($row['short_story']));
            $row['short_story'] =  preg_replace("/<!--*-->/si","",$row['short_story']);
    	if($lastnewsconf['hide_html'])$row['short_story'] = strip_tags($row['short_story']);
    
    
    	if (strlen($row['short_story']) > $lastnewsconf['news'])
            $short_story = substr ($row['short_story'], 0, $lastnewsconf['news'])." ...";
            else
            $short_story = $row['short_story'];
            
    	$go_page = ($config['ajax']) ? "onclick=\"DlePage('newsid=".$row['id']."'); return false;\" " : "";
    
            if ($config['allow_alt_url'] == "yes")
            $tpl->set_block("'\[full-link\](.*?)\[/full-link\]'si", "<a {$go_page}href=\"".$config['http_home_url'].date('Y/m/d/', $row['date']).$row['alt_name'].".html\">\\1</a>");
    	else 
            $tpl->set_block("'\[full-link\](.*?)\[/full-link\]'si", "<a {$go_page}href=\"$PHP_SELF?newsid=".$row['id']."\">\\1</a>");
    
    
            $tpl->set('{title}', stripslashes($title));
    	$tpl->set('{short_news}', $short_story);
    	$tpl->set('{date}', langdate($config['timestamp_active'], $row['date']));
    	$tpl->compile('lastnews');
    
    		}
    $lastnews = $tpl->result['lastnews'];
    }
    
    ?>

    Как я понял, это меняется здесь:
    Код:
    <a {$go_page}href=\"".$config['http_home_url'].date('Y/m/d/', $row['date']).$row['alt_name'].".html\">\\1</a>");

    Как это можно реализовать ?
     
  2. sergeysnl

    sergeysnl Читатель

    Заблокирован
    Регистр.:
    10 фев 2008
    Сообщения:
    331
    Симпатии:
    100
    идешь в админку - настройка системы - ЧПУ и выбираешь вид ЧПУ один из трех который надо
     
    NoNaMe_909 нравится это.
  3. NoNaMe_909

    NoNaMe_909 Постоялец

    Регистр.:
    10 мар 2008
    Сообщения:
    130
    Симпатии:
    2
    В этом способе есть одна проблемка - если всё переключить на этот тип, то адрес поменяется на всех других статьях, а они уже в идексе...

    Нужно, чтобы этот тип генерировался только в "последних новостях" ...

    я пытался изменить его так:
    Код:
    $full_link = $config['http_home_url'].get_url($row['category'])."/".$row['id']."-".$row['alt_name'].".html";

    не помогло ...
     
  4. jred

    jred

    Регистр.:
    16 сен 2008
    Сообщения:
    383
    Симпатии:
    39
    а как он тебе будет определят ькогда последние новости? генерация ссылки происходит в режиме реального времени, когда открывается страница.

    А если делать такое только для новых новостей, то надо в ПХП прописывать, чтобы после такой-то даты генерация была ТИП2...
     
    NoNaMe_909 нравится это.
  5. NoNaMe_909

    NoNaMe_909 Постоялец

    Регистр.:
    10 мар 2008
    Сообщения:
    130
    Симпатии:
    2
    сори, я не правильно выразился, я имел ввиду, нужно, что бы ссылка не в поледних новостях так генерировалась, а в блоке "последние новости" ...

    разве не этот кусок кода отвечает за вывод типа ссылки?
    Код:
    <a {$go_page}href=\"".$config['http_home_url'].date('Y/m/d/', $row['date']).$row['alt_name'].".html\">\\1</a>");
    Или тут уже ничего не поделаешь ?
     
Статус темы:
Закрыта.