вопрос
Решил сделать на сайте раздел аналогичный разделу "Все новости пользователя", но только чтобы он выводил те новости рейтинг которых больше определенного значения. Для этого в файле engine/engine.php сделал следующие действия:
1 Найти и добавить ниже
2 Найти и добавить выше
3 Добавил в файл .htaccess
Все работает. Ну почти все. Раздел allpopular есть и в нем выводятся те статьи пользователя которые удовлетворяют условию рейтинга. Но почему то: title у созданной страницы не отображается и не совсем корректно работает навигация по страницам, а именно: Если число новостей на страницу заданное в админ панеле равно например 2, а количество новостей удовлетворяющим условиям выборки равно например 5. То на первые 2 страницы можно перейти, а на третью нет ( подозреваю это происходит из за того что новость для показа на третьей странице остается одна, а в настройках кол-во новостей на странице стоит 2 Если новостей в выборке получается например 6 то мы спокойно попадаем на все 3 страницы.) В разделе сайта DLE из коробки, который я брал за пример, например allnews все работает корректно. Но вот почему так происходит? Где я что забыл? Всю голову уже себе сломал. Дайте пожалуйста наводку хотя бы в чем может быть тут дело?
1 Найти и добавить ниже
elseif ($do == 'lastnews') $nam_e = $lang['last_news'];
elseif ($do == 'allpopular') $nam_e = "Все новости пользователя ". $user." в топе";
2 Найти и добавить выше
elseif ($subaction == 'allnews') {
elseif ($subaction == 'allpopular') {
if ($cstart) {
$cstart = $cstart - 1;
$cstart = $cstart * $config['news_number'];
}
$url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news-popular";
$user_query = "subaction=allpopular&user=" . urlencode ( $user );
if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?subaction=allpopular&user=" . urlencode ( $user );
if ($view_template == "rss") {
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, e.allow_rss_turbo, e.allow_rss_dzen FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}p.autor = '{$user}' AND p.approve=1 AND e.allow_rss=1" . $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
} else {
if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews'];
if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews'];
$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}p.autor = '$user' AND p.approve=1 AND e.rating>250 " . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON ( p.id = e.news_id ) {$cat_join_count}WHERE {$stop_list}autor = '$user' AND approve=1 AND e.rating>250 ";
}
}
3 Добавил в файл .htaccess
RewriteRule ^user/([^/]*)/news-popular(/?)+$ index.php?subaction=allpopular&user=$1 [L]
RewriteRule ^user/([^/]*)/news-popular/page/([0-9]+)(/?)+$ index.php?subaction=allpopular&user=$1&cstart=$2 [L]
Все работает. Ну почти все. Раздел allpopular есть и в нем выводятся те статьи пользователя которые удовлетворяют условию рейтинга. Но почему то: title у созданной страницы не отображается и не совсем корректно работает навигация по страницам, а именно: Если число новостей на страницу заданное в админ панеле равно например 2, а количество новостей удовлетворяющим условиям выборки равно например 5. То на первые 2 страницы можно перейти, а на третью нет ( подозреваю это происходит из за того что новость для показа на третьей странице остается одна, а в настройках кол-во новостей на странице стоит 2 Если новостей в выборке получается например 6 то мы спокойно попадаем на все 3 страницы.) В разделе сайта DLE из коробки, который я брал за пример, например allnews все работает корректно. Но вот почему так происходит? Где я что забыл? Всю голову уже себе сломал. Дайте пожалуйста наводку хотя бы в чем может быть тут дело?
В данном вопросе помог разобраться TeraMoune