Перейти к публикации

Блок "самое популярное" показывает 1 новость


Рекомендованные сообщения

Раньше все было нормально, в блоке "самое популярное" показывались 5 тем, но сейчас, почему-то показывается только одна, и далеко не самая популярная (а только последняя). В чем может быть причина?

сайт

Ссылка на сообщение
Поделиться на других сайтах

Редко обновляете на сайте новости, вот оно и показывает одну последнюю новость за этот месяц :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Walk, можно сделать, что бы популярность новостей была по просмотрам, а для этого:

Откройте engine\modules\topnews.php и найдите:

$this_month = date( 'Y-m-d H:i:s', $_TIME );


$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );
Замените на:
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );

В конце строки цифра 10, это количество выводимых новостей.

Ссылка на сообщение
Поделиться на других сайтах

n0lik

Сделал, кеш почистил, но пока все так же. Или надо подождать?

Ссылка на сообщение
Поделиться на других сайтах

хм... вроде заменил, а скачал topnews еще раз - он старый, сейчас попробую изменить еще раз...

мде, теперь сайт не открывается вообще :huh:

Fatal error: Call to undefined function dle_strlen() in /home/vkontak1/public_html/engine/modules/topnews.php on line 60

Заработало... хм, что было непонятно.

n0lik

спасибо, работает.

Что-то сайт стал тормозить жутко после изменений...

Изменено пользователем Walk
Ссылка на сообщение
Поделиться на других сайтах

Дело явно не в этом файле, так как я всегда (после каждого обновления) на своём сайте делаю подобное исправление и никаких проблем.

celsoft, а можно узнать, подобное исправление делает какую нибудь нагрузку на сайт? то есть больше чем по дефолту.

Ссылка на сообщение
Поделиться на других сайтах

Сейчас все нормально, видимо у хостинга были какие-то проблемы.

Ссылка на сообщение
Поделиться на других сайтах

celsoft, а можно узнать, подобное исправление делает какую нибудь нагрузку на сайт? то есть больше чем по дефолту.

нет, не делает

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

Walk, можно сделать, что бы популярность новостей была по просмотрам, а для этого:

Откройте engine\modules\topnews.php и найдите:...

Замените на:...

Спасибо Walk!

Только вот этот список в первую очередь(!) сортируется по кол-ву комментариев, а уже потом по кол-ву просмотров.

А можно всё же чтобы новости сортировались только(!) по кол-ву просмотров за всё время сущ. сайта?

Изменено пользователем Goddanus
Ссылка на сообщение
Поделиться на других сайтах

А можно всё же чтобы новости сортировались только(!) по кол-ву просмотров за всё время сущ. сайта?

$db->query("SELECT id, title, date, alt_name, category, flag FROM ".PREFIX."_post WHERE approve='1' ORDER BY news_read DESC, date DESC LIMIT 0,10");

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

а как можно докрутить, что бы показывалось количество комментариев?

Вставить как модуль, либо в профиль зеров:

$sql = "SELECT SQL_NO_CACHE COUNT(*) AS count ".PREFIX."_post WHERE approve='1'";

$r = $db->super_query($sql);

$cnt = $r['count'];

echo "Комментариев на сайте: $cnt.";

unset($sql,$r,$cnt);
Если в конец запроса добавить что-то типа:
WHERE autor='Администратор'

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

Ссылка на сообщение
Поделиться на других сайтах

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

нужно как-то добавить подсчет строк в базе. не получается у меня (( ошибка идет

Изменено пользователем Seona
Ссылка на сообщение
Поделиться на других сайтах

подскажите пжалста ))

Есть запрос

$this_month = date( 'Y-m-d H:i:s', $_TIME );


$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' ORDER BY comm_num DESC LIMIT 0,15" );

Как сделать, что бы подсчитывалось количество этих комментариев? Что бы было

Новость 1 - 15

Новость 2 - 10

Новость 3 - 1

Механизм обработки же количества идет. Как вытащить эту цифру?

Ссылка на сообщение
Поделиться на других сайтах

да он стандартный. Поменяла только в запросе на что выводить )


-----------------------------------------------------

 Назначение: вывод рейтинговых статей

=====================================================

*/


if( ! defined( 'DATALIFEENGINE' ) ) {

	die( "Hacking attempt!" );

}


$topnews = dle_cache( "topnews", $config['skin'] );


if( ! $topnews ) {


	$this_month = date( 'Y-m-d H:i:s', $_TIME );


	$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,15" );


	while ( $row = $db->get_row() ) {


		$row['date'] = strtotime( $row['date'] );

		$row['category'] = intval( $row['category'] );


		if( $config['allow_alt_url'] == "yes" ) {


			if( $row['flag'] and $config['seo_type'] ) {


				if( $row['category'] and $config['seo_type'] == 2 ) {


					$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";


				} else {


					$full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";


				}


			} else {


				$full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";

			}


		} else {


			$full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];


		}


		if( strlen( $row['title'] ) > 55 ) $title = substr( $row['title'], 0, 55 ) . " ...";

		else $title = $row['title'];


		$go_page = ($config['ajax']) ? "onclick=\"DlePage('newsid=" . $row['id'] . "'); return false;\" " : "";

		if( $config['allow_comments_wysiwyg'] == "yes" ) $go_page = '';


		$link = "<a {$go_page}href=\"" . $full_link . "\">" . stripslashes( $title ) . "</a>";


		$topnews .= "&raquo; " . $link . "<br />";

	}


	$db->free();

	create_cache( "topnews", $topnews, $config['skin'] );

}

?>


спасибо, за реакцию ))

Ссылка на сообщение
Поделиться на других сайтах

не проверял, но должно работать.

if( ! defined( 'DATALIFEENGINE' ) ) {

        die( "Hacking attempt!" );

}


$topnews = dle_cache( "topnews", $config['skin'] );


if( ! $topnews ) {


        $this_month = date( 'Y-m-d H:i:s', $_TIME );


        $db->query( "SELECT id, title, date, alt_name, category, flag, comm_num FROM " . PREFIX . "_post WHERE approve='1' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,15" );


        while ( $row = $db->get_row() ) {


                $row['date'] = strtotime( $row['date'] );

                $row['category'] = intval( $row['category'] );


                if( $config['allow_alt_url'] == "yes" ) {


                        if( $row['flag'] and $config['seo_type'] ) {


                                if( $row['category'] and $config['seo_type'] == 2 ) {


                                        $full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";


                                } else {


                                        $full_link = $config['http_home_url'] . $row['id'] . "-" . $row['alt_name'] . ".html";


                                }


                        } else {


                                $full_link = $config['http_home_url'] . date( 'Y/m/d/', $row['date'] ) . $row['alt_name'] . ".html";

                        }


                } else {


                        $full_link = $config['http_home_url'] . "index.php?newsid=" . $row['id'];


                }


                if( strlen( $row['title'] ) > 55 ) $title = substr( $row['title'], 0, 55 ) . " ...";

                else $title = $row['title'];


                $go_page = ($config['ajax']) ? "onclick=\"DlePage('newsid=" . $row['id'] . "'); return false;\" " : "";

                if( $config['allow_comments_wysiwyg'] == "yes" ) $go_page = '';


                $link = "<a {$go_page}href=\"" . $full_link . "\">" . stripslashes( $title ) . " - (".$row['comm_num'].")</a>";


                $topnews .= "&raquo; " . $link . "<br />";

        }


        $db->free();

        create_cache( "topnews", $topnews, $config['skin'] );

}

Ссылка на сообщение
Поделиться на других сайтах

в файле engine/modules/topnews.php

найдите строку

$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 1 MONTH AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );

	
замените ее на
$db->query( "SELECT id, title, date, alt_name, category, flag FROM " . PREFIX . "_post WHERE approve='1' AND date >= '$this_month' - INTERVAL 7 DAY AND date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,10" );

	

Будет выводить за семь дней. Я правда не уверен, впервые такое делаю....

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...