![]() |
|
|
Модули, Хаки, Примочки для DLE Тут собираются темы с модулями, хаками и разными примочками для движка DataLife Engine |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |||
Грамотный форумчанин
![]() ![]()
|
![]() Всем привет!
Вот нашел на просторах Internet-а, такой хак который в fullstory.tpl добавляет ссылки prev-link и next-link (хак был немного не доработан, но его помогли доработать и усовершенствовать -=MaD_DoG=- и SaD) Вот сам хак и его описание: Данный хак позволяет добавлять ссылки на следующую и предыдущую новости в просмотре полной новости для той же категории что и новость. Это дополнительно поможет в перелинковке внутренних страниц. Возможности: - Отображает ссылки на следующую и предыдущую новости в той же категории что и просматриваемая новость. - В случае отсутствия новости, ссылка не отображается. - Ссылки выводятся относительно даты просматриваемой новости. - Простая установка (1 минута). - Минимальная правка кода движка. 1. В файле engine/inc/options.php найти: Код:
showRow( $lang['opt_sys_wdq'], $lang['opt_sys_wdsd'], makeDropDown( array ("1" => $lang['opt_sys_yes'], "0" => $lang['opt_sys_no'] ), "save_con[allow_quick_wysiwyg]", "{$config['allow_quick_wysiwyg']}" ) ); Код:
showRow( $lang['opt_sys_link'], $lang['opt_sys_link_pn'], makeDropDown( array ("1" => "Да", "0" => "Нет" ), "save_con[prevnext_allow]", "{$config['prevnext_allow']}" ) ); найти: Код:
'wysiwyg_language' => "ru", Код:
// Ссылки в полной новости на предыдущую и следующую новость opt_sys_link => "Показывать предыдущую и следующую новость?", opt_sys_link_pn => "Если 'Да', то в полной новости будет показыватся ссылка на предыдущую и следующую новость, если 'Нет', то ссылки не будут показыватся", найти: Код:
if( $config['related_news'] ) { Код:
if( $config['related_news'] AND $view_template != "print" AND strpos( $tpl->copy_template, "{related-news}" ) !== false) { Нажми для просмотра
Код:
if( $config['prevnext_allow'] == "1" ) { if( $config['allow_cache'] != "yes" ) { $config['allow_cache'] = "yes"; $revert_cache = true; } else $revert_cache = false; $prev_link = dle_cache( "prevlink", $row['id'] ); $next_link = dle_cache( "nextlink", $row['id'] ); // Prev Link if( $prev_link === FALSE ) { $prevlink = $db->super_query( "SELECT id, date, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE date > FROM_UNIXTIME({$row['date']}) AND category = '{$row['category']}' AND approve = '1' ORDER BY date ASC LIMIT 0,1" ); if ( $prevlink ) { $prevlink['date'] = strtotime( $prevlink['date'] ); $prevlink['category'] = intval( $prevlink['category'] ); if( strlen( $prevlink['title'] ) > 75 ) $prevlink['title'] = substr( $prevlink['title'], 0, 75 ) . " ..."; if( $config['allow_alt_url'] == "yes" ) { if( $prevlink['flag'] and $config['seo_type'] ) { if( $prevlink['category'] and $config['seo_type'] == 2 ) { $prev_link = $config['http_home_url'] . get_url( $prevlink['category'] ) . "/" . $prevlink['id'] . "-" . $prevlink['alt_name'] . ".html"; } else { $prev_link = $config['http_home_url'] . $prevlink['id'] . "-" . $prevlink['alt_name'] . ".html"; } } else { $prev_link = $config['http_home_url'] . date( 'Y/m/d/', $prevlink['date'] ) . $prevlink['alt_name'] . ".html"; } } else { $prev_link = $config['http_home_url'] . "index.php?newsid=" . $prevlink['id']; } } else { $prev_link = ""; } if( $prev_link ) { $prev_link = "<a href=". $prev_link .">" . stripslashes( $prevlink['title'] ) . "</a>"; } $db->free(); create_cache( "prevlink", $prev_link, $row['id'] ); } // Next Link if( $next_link === FALSE ) { $nextlink = $db->super_query( "SELECT id, date, title, category, alt_name, flag FROM " . PREFIX . "_post WHERE date < FROM_UNIXTIME({$row['date']}) AND category = '{$row['category']}' AND approve = '1' ORDER BY date DESC LIMIT 0,1" ); if( $nextlink ) { $nextlink['date'] = strtotime( $nextlink['date'] ); $nextlink['category'] = intval( $nextlink['category'] ); if( strlen( $nextlink['title'] ) > 75 ) $nextlink['title'] = substr( $nextlink['title'], 0, 75 ) . " ..."; if( $config['allow_alt_url'] == "yes" ) { if( $nextlink['flag'] and $config['seo_type'] ) { if( $nextlink['category'] and $config['seo_type'] == 2 ) { $next_link = $config['http_home_url'] . get_url( $nextlink['category'] ) . "/" . $nextlink['id'] . "-" . $nextlink['alt_name'] . ".html"; } else { $next_link = $config['http_home_url'] . $nextlink['id'] . "-" . $nextlink['alt_name'] . ".html"; } } else { $next_link = $config['http_home_url'] . date( 'Y/m/d/', $nextlink['date'] ) . $nextlink['alt_name'] . ".html"; } } else { $next_link = $config['http_home_url'] . "index.php?newsid=" . $nextlink['id']; } } else { $next_link = ""; } if( $next_link ) { $next_link = "<a href=" . $next_link . ">" . stripslashes( $nextlink['title'] ) . "</a>"; } $db->free(); create_cache( "nextlink", $next_link, $row['id'] ); } if( $revert_cache ) $config['allow_cache'] = "no"; } else $next_link = $prev_link = ''; // Back and Next Link Template $tpl->set( '{prev-link}', $prev_link ); $tpl->set( '{next-link}', $next_link ); 4. В шаблоне fullstory.tpl в том месте, где надо отображать ссылки вставить: Код:
{prev-link} - предыдущая новость {next-link} - следующая новость 6. Если у Вас нету в БД в таблице dle_post такой ячейки flag, то надо сделать такой запрос в Вашу Базу Данных Код:
ALTER TABLE `dle_post` ADD `flag` VARCHAR (3) NOT NULL такую строку: Код:
$prev_link = "<a href=". $prev_link .">" . stripslashes( $prevlink['title'] ) . "</a>"; Код:
$prev_link = "<a class='myLinkprev' href='". $prev_link ."'>" . stripslashes( $prevlink['title'] ) . "</a>"; Код:
$next_link = "<a href=" . $next_link . ">" . stripslashes( $nextlink['title'] ) . "</a>"; Код:
$next_link = "<a class='myLinknext' href='". $next_link ."'>" . stripslashes( $nextlink['title'] ) . "</a>"; Код:
.myLinkprev { background:url(../images/left_st.png) no-repeat left center; DISPLAY: inline-block; MARGIN: 0px 6px 6px 0px; WIDTH: 142px; HEIGHT: 150px; outline: none; text-indent:-666px; overflow:hidden; } .myLinknext { background:url(../images/right_st.png) no-repeat left center; DISPLAY: inline-block; MARGIN: 0px 6px 6px 0px; WIDTH: 142px; HEIGHT: 150px; outline: none; text-indent:-666px; overflow:hidden; } .sageata:hover { BACKGROUND-COLOR: #e5e5e5 } ![]() ![]() Ну свои конечно же никто не запрещает нарисовать) После того как Вы сделали изменения в fullstory.tpl, должно получится примерно так: Код:
{prev-link}{full-story}{next-link} у меня к примеру тег {full-story} в "моем" шаблоне был заключен в такой блок: Код:
<div class="short5"> <div id="news-id-169" style="display:inline;"> {full-story} </div> </div> Код:
<TABLE width="100%"> <TBODY> <TR> <TD class=sageata width=64> <SPAN onmouseover=this.style.opacity=1;this.filters.alpha.opacity=100 style="FILTER: alpha(opacity=20); opacity: 0.7" onmouseout=this.style.opacity=0.7;this.filters.alpha.opacity=20> {prev-link} </SPAN> </TD> <TD> <CENTER> <div class="short5"> <div id="news-id-169" style="display:inline;"> {full-story} </div> </div> </CENTER> </TD> <TD class=sageata width=64> <SPAN onmouseover=this.style.opacity=1;this.filters.alpha.opacity=100 style="FILTER: alpha(opacity=20); opacity: 0.7" onmouseout=this.style.opacity=0.7;this.filters.alpha.opacity=20> {next-link} </SPAN> </TD> </TR> </TBODY> </TABLE> |
|||
Последний раз редактировалось Serberg; 16.09.2012 в 12:19.. |
||||
![]() |
![]() |
#6 | |||
Грамотный форумчанин
![]() ![]()
|
![]() Насколько я понял, то Вас интересует почему, на сайтах ссылки имеют разный вид:
1. 148-новость 2. 2013_03_24_новость если это все что Вас не устраивает, то вся причина в виде ЧПУ, смените вид ЧПУ и все будет ок) p.s.в Админке Настройка системы => Включить ЧПУ: ДА/НЕТ и ниже Тип ЧПУ:Тип 2 где Тип 2, ссылки на полную новость будут иметь вид http://site.ru/категория/подкатегория/id-имя новости.html Надеюсь я Вас правильно понял. Удачи!) |
|||
![]() |
![]() |
#7 | |||
Пользователь
![]() ![]()
|
![]() jakal, Доброй ночи. Но у меня именно так и включено, но обоих сайтах совершенно одинаковые настройки в админках, один в один. И включено именно ЧПУ тип 2.
Из-за того что в первом случае в базе не пришлось создавать таблицу а во втором пришлось, не думаю что это повлияло, это ведь от движка идёт а не от базы... Но в чём дело совсем не понимаю, а Яша уже очень часто выдаёт страницы именно по датам, видимо те ссылки хорошо индексирует да и они с хорошим анкором получаются, ну почти с хорошим) |
|||
![]() |
![]() |
Метки |
fullstory, image, next-link, prev-link, title |
Опции темы | Поиск в этой теме |
|
|