javer 0 Опубликовано: 28 сентября 2012 Рассказать Опубликовано: 28 сентября 2012 Dle 9.6. Нужно сделать 2 модуля похожих новостей в полной новости. Например, чтобы один был {related-news}, а второй {related-newsx}. на {related-news} выводились все похожие новости на {related-newsx} выводились похожие новости из 23 категории. Раньше на DLE 8.3 это было легко реализовать в файле show.full.php, а сейчас не так уж легко (изменилась структура файла show.full.php) Подскажите, пожалуйста, как это сделать, дайте код. Ссылка на сообщение Поделиться на других сайтах
javer 0 Опубликовано: 28 сентября 2012 Рассказать Опубликовано: 28 сентября 2012 (изменено) Автор Что сделано в файле: show.full.php: if( $config['related_newsx'] AND $view_template != "print" AND strpos( $tpl->copy_template, "{related-newsx}" ) !== false) { if ( $allow_full_cache ) $bufferx = dle_cache( "relatedx", $row['id'].$config['skin'], true ); else $bufferx = false; if( $bufferx === FALSE ) { if ( $row['related_ids'] ) { $db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE id IN({$row['related_ids']}) ORDER BY id DESC"); $first_show = false; } else { $first_show = true; $related_ids = array(); if( strlen( $row['full_story'] ) < strlen( $row['short_story'] ) ) $body = $row['short_story']; else $body = $row['full_story']; $body = $db->safesql( strip_tags( stripslashes( $metatags['title'] . " " . $body ) ) ); $config['related_number'] = 2; $allowed_cats = array(); foreach ($user_group as $value) { if ($value['allow_cats'] != "all" AND !$value['allow_short'] ) $allowed_cats[] = $db->safesql($value['allow_cats']); } if (count($allowed_cats)) { $allowed_cats = implode(",", $allowed_cats); $allowed_cats = explode(",", $allowed_cats); $allowed_cats = array_unique($allowed_cats); sort($allowed_cats); if ($config['allow_multi_category']) { $allowed_cats = "category regexp '[[:<:]](" . implode ( '|', $allowed_cats ) . ")[[:>:]]' AND "; } else { $allowed_cats = "category IN ('" . implode ( "','", $allowed_cats ) . "') AND "; } } else $allowed_cats=""; // $db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] ); $db->query( "SELECT id, title, date, category, short_story, xfields, alt_name, flag FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve='1' AND category regexp '[[:<:]](23)[[:>:]]'" . $where_date . " LIMIT " . $config['related_number'] ); } $tpl2 = new dle_template(); $tpl2->dir = TEMPLATE_DIR; $tpl2->load_template( 'relatednews.tpl' ); if( strpos( $tpl2->copy_template, "[xfvalue_" ) !== false OR strpos( $tpl2->copy_template, "[xfgiven_" ) !== false ) { $xfound = true; } else $xfound = false; while ( $relatedx = $db->get_row() ) { if ( $first_show ) $related_ids[] = $relatedx['id']; $relatedx['date'] = strtotime( $relatedx['date'] ); if( ! $relatedx['category'] ) { $my_cat = "---"; $my_cat_link = "---"; } else { $my_cat = array (); $my_cat_link = array (); $rel_cat_list = explode( ',', $relatedx['category'] ); if( count( $rel_cat_list ) == 1 ) { $my_cat[] = $cat_info[$rel_cat_list[0]]['name']; $my_cat_link = get_categories( $rel_cat_list[0] ); } else { foreach ( $rel_cat_list as $element ) { if( $element ) { $my_cat[] = $cat_info[$element]['name']; if( $config['allow_alt_url'] == "yes" ) $my_cat_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>"; else $my_cat_link[] = "<a href=\"$PHP_SELF?do=cat&category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>"; } } $my_cat_link = implode( ', ', $my_cat_link ); } $my_cat = implode( ', ', $my_cat ); } $relatedx['category'] = intval( $relatedx['category'] ); if( dle_strlen( $relatedx['title'], $config['charset'] ) > 75 ) $relatedx['title'] = dle_substr( $relatedx['title'], 0, 75, $config['charset'] ) . " ..."; if( $config['allow_alt_url'] == "yes" ) { if( $config['seo_type'] == 1 OR $config['seo_type'] == 2 ) { if( $relatedx['category'] and $config['seo_type'] == 2 ) { $full_link = $config['http_home_url'] . get_url( $relatedx['category'] ) . "/" . $relatedx['id'] . "-" . $relatedx['alt_name'] . ".html"; } else { $full_link = $config['http_home_url'] . $relatedx['id'] . "-" . $relatedx['alt_name'] . ".html"; } } else { $full_link = $config['http_home_url'] . date( 'Y/m/d/', $relatedx['date'] ) . $relatedx['alt_name'] . ".html"; } } else { $full_link = $config['http_home_url'] . "index.php?newsid=" . $relatedx['id']; } // ************************* // START MODERN RELATED NEWS // ************************* $xfields = xfieldsdataload( $relatedx['xfields'] ); $pictitle = stripslashes( $relatedx['title'] ); $pic = $xfields['img']; // <----------------------------------------- ТУТ ЗАМЕНИТЬ НА ИМЯ СВОЕГО ПОЛЯ if ($pic=='') $pic = 'http://vmiruspeha.ru/templates/Jordan/images/nothumb.gif'; $relatedx['short_story'] = preg_replace("/\[attachment=[[:digit:]]*\]/si","",stripslashes($relatedx['short_story'])); $relatedx['short_story'] = preg_replace("/<!--*-->/si","",$relatedx['short_story']); if( strlen( $relatedx['short_story'] ) > 300 ) $relatedx['short_story'] = substr( $relatedx['short_story'], 0, 300 ) . " ... <a href=\"$full_link\"><b>Начать просмотр</b></a>"; $bufferx .= '<div style="float:left; width:50%;"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="news"> <tr> <td width="100" height="290" align="left" valign="middle"><img src="'.$pic.'"width="140"></td> <td width="91%" valign="top" align="left" style="padding-left: 0px; padding-bottom: 7px;"><h4><a href="'.$full_link.'">'.stripslashes( $relatedx['title']).'</a></h4>'.stripslashes($relatedx['short_story']).'</td> </tr> </table></div>'; // ************************* // END MODERN RELATED NEWS // ************************* $db->free(); if ( $first_show ) { if ( count($related_ids) ) { $related_ids = implode(",",$related_ids); $db->query( "UPDATE " . PREFIX . "_post_extras SET related_ids='{$related_ids}' WHERE news_id='{$row['id']}'" ); } } if ( $allow_full_cache ) create_cache( "relatedx", $bufferx, $row['id'].$config['skin'], true ); } if ( $bufferx ) { $tpl->set( '[related-news]', "" ); $tpl->set( '[/related-news]', "" ); } else $tpl->set_block( "'\\[related-news\\](.*?)\\[/related-news\\]'si", "" ); $tpl->set( '{related-newsx}', $bufferx ); unset($bufferx); } } Не работает. Помогите отредактировать кусок кода. Изменено 28 сентября 2012 пользователем javer Ссылка на сообщение Поделиться на других сайтах
javer 0 Опубликовано: 28 сентября 2012 Рассказать Опубликовано: 28 сентября 2012 Автор Тему можно закрыть Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения