Мы в твиттере Мы в телеграме!

Провеббер » DataLife Engine » DLE хаки » topnews из определенной категории 4

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

topnews из определенной категории 4

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно topnews из определенной категории 4.



Для чего нужен хак:
Вывод рейтинговых новостей с описанием и картинкой.
Возможность вывода topnews из определённых категорий.

Изменения:
Переработана функция создания, тумбов.

Изменения нужно сделать в двух файлах:
В index.php перед:
$config['http_home_url'] = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );


Добавляем:
if ( stristr( $tpl->copy_template, "{topnews" ) ) {

        $tpl->copy_template = preg_replace( "#\\{topnews category=['\"](.+?)['\"]\\}#ies", "topnews_print('\\1')", $tpl->copy_template );

    }


В файле engine/modules/functions.php перед:
function langdate($format, $stamp) {


Добавляем функцию:
function topnews_print ($custom_category){ 

global $db;

$custom_category = $db->safesql(str_replace(',', '|', $custom_category));


if(!defined('DATALIFEENGINE'))

{

die("Hacking attempt!");

}

function get_img_basic($text){

preg_match('|<img(.*) src="([^"]*)"[^>]*>|is', $text, $out);

return $out[2];

}


$w = 64; // Ширина Картинки

$h = 64; // Высота Картинки

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

if (!$topnews) {


$this_month = date ('Y-m-d', time()-(3600*24*27));


$db->query("SELECT id, title, short_story, date, alt_name FROM " . PREFIX . "_post WHERE approve='1' AND category regexp '[[:<:]]($custom_category)[[:>:]]' AND date >= '$this_month'AND date < '$this_month' + INTERVAL 1 MONTH ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,5");


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


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


if (strlen($row['title']) > 55)

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

else

$title = $row['title'];




$not_resized_image = get_img_basic($row['short_story']);

$resized_image = ROOT_DIR.'/uploads/topnews/'.basename($not_resized_image);

if (!file_exists( $resized_image )) { cropImage($w, $h, $not_resized_image, $resized_image);}

$img_t= str_replace('thumbs/','',$not_resized_image);


$images = '<img src="'.$config['http_home_url'].'/uploads/topnews/'.basename($not_resized_image).'" border="0" alt="'.$title.'">';

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


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

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

else

$link = "<a {$go_page}href= \"". "/" .date('Y/m/d/', $row['date']).$row['alt_name'].".html\">".stripslashes($title)."</a>";





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



$row['short_story'] = preg_replace("/\[attachment=[[:digit:]]*\]/si","",stripslashes($row['short_story']));

$row['short_story'] = preg_replace("/<!--*-->/si","",$row['short_story']);

$row['short_story'] = strip_tags($row['short_story']);

if( strlen( $row['short_story'] ) > 106 ) $row['short_story'] = substr( $row['short_story'], 0,106 ) . " ... <a {$go_page}href= \"". "/" .date('Y/m/d/', $row['date']).$row['alt_name'].".html\" style=\"font-size:12px\">Читать далее »</a>";

$topnews .= '<table width="98%" border="0" style="border-bottom: 1px dotted #E1E1E1;">

<td width="1" height=1" align="center" valign="top">'.$images.'</td>

<td width="98%" valign="top" style="padding-left: 1px; padding-bottom: 1px; font-size:13px">

'.stripslashes($row['short_story']).'</td>

</tr>

</table>';

}


$db->free();

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

}



return $topnews;

}


function cropImage($nw, $nh, $source, $dest)

{

$size = getimagesize($source);

$w = $size[0];

$h = $size[1];


$stypeArr = explode( '.', $source );

$stype = strtolower( end($stypeArr) );


switch($stype)

{

case 'gif':

$simg = imagecreatefromgif($source);

break;

case 'jpeg':

$simg = imagecreatefromjpeg($source);

break;

case 'jpg':

$simg = imagecreatefromjpeg($source);

break;

case 'png':

$simg = imagecreatefrompng($source);

break;

}


$dimg = imagecreatetruecolor($nw, $nh);


$wm = $w/$nw;

$hm = $h/$nh;


$h_height = $nh/2;

$w_height = $nw/2;


if($w> $h)

{

$adjusted_width = $w / $hm;

$half_width = $adjusted_width / 2;

$int_width = $half_width - $w_height;


imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);

}

elseif( ($w <$h) || ($w == $h) )

{

$adjusted_height = $h / $wm;

$half_height = $adjusted_height / 2;

$int_height = $half_height - $h_height;


imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);

}

else

{

imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);

}


imagejpeg($dimg,$dest,85);

}


Создаём на сервере папку uploads/topnews/ и ставим на нее права 777
в папке uploads/topnews/ создаем файл .htaccess со следующим содержанием:
RewriteEngine Off

<FilesMatch ".*">
Order allow,deny
Deny from all
</FilesMatch>

<FilesMatch ".(gif|jpg|png|jpeg|bmp)$|^$">
Order deny,allow
Allow from all
</FilesMatch>

ErrorDocument 403 http://site.ru/uploads/topnews/blank.gif

ErrorDocument 404 http://site.ru/uploads/topnews/blank.gif


Ну и соответсвенно создаем blank.gif под свои требования - эта картинка нужна на тот случай, если самой картинки в новости нет.

Популярные новости выводим тегом:
{topnews category="ID категории"}

Пример:
{topnews category="1,2,3"}


Проверено на версии 8.3

Автор: zuluman
Сайт автора: _http://donbass.name/


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


0
Просмотры: 9 840 :: Комментарии (14) :: :: Нужна помощь? Задайте вопрос на форуме ::
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1smartfan

  • 20 мая 2010 02:16
  • Регистрация: 4.01.2010
  • Был(а) онлайн: 8.04.2011
  • Комментариев: 31
  • 0
Эх, если бы ещё к этому делу вывод названия категории...

#2nartuk

  • 20 мая 2010 02:42
  • Регистрация: 7.05.2010
  • Был(а) онлайн: 22.10.2014
  • Комментариев: 220
  • 0
smartfan,
Там где "Добавляем функцию" почитай и попробуй вставь куда нужно
{link-category}


Если получиться - отпишешь.

Также полезно будет:

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

#3Imperiuz

  • 20 мая 2010 08:19
  • Регистрация: 5.05.2010
  • Был(а) онлайн: 8.10.2014
  • Комментариев: 48
  • 0
То же самое бы для последних новостей )

#4smartfan

  • 20 мая 2010 10:35
  • Регистрация: 4.01.2010
  • Был(а) онлайн: 8.04.2011
  • Комментариев: 31
  • 0
Цитата: nartuk
smartfan,
Там где "Добавляем функцию" почитай и попробуй вставь куда нужно
{link-category}

Эм, там в функции не обрабатываются имена категорий.

Цитата: Imperiuz
То же самое бы для последних новостей )

В пункте "добавляем функцию" вместо этого:
$db->query("SELECT id, title, short_story, date, alt_name FROM " . PREFIX . "_post WHERE approve='1' AND category regexp '[[:<:]]($custom_category)[[:>:]]' AND date >= '$this_month'AND date < '$this_month' + INTERVAL 1 MONTH ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,5");


Вставляешь это:
$db->query("SELECT id, title, short_story, date, alt_name FROM " . PREFIX . "_post WHERE approve='1' AND category regexp '[[:<:]]($custom_category)[[:>:]]' AND date >= '$this_month'AND date < '$this_month' + INTERVAL 1 MONTH ORDER BY date DESC LIMIT 0,5");

#5nartuk

  • 20 мая 2010 11:05
  • Регистрация: 7.05.2010
  • Был(а) онлайн: 22.10.2014
  • Комментариев: 220
  • 0
smartfan,
Значит малины не будет.

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

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

#6Serhio

  • 20 мая 2010 13:17
  • Регистрация: 24.02.2010
  • Был(а) онлайн: 28.09.2021
  • Комментариев: 3
  • 0
Картинок нет :( Может быть проблема, что картинки не залиты на сайт?
Так оно и есть. Может автор переделает под внешние ссылки картинок?

#7kovinev

  • 8 октября 2010 12:15
  • Регистрация: 6.02.2010
  • Был(а) онлайн: 14.10.2010
  • Комментариев: 15
  • 0
А возможно переделать данный модуль так, чтобы отображался ТОП новостей, которые прочитали за сегодня?

#8P.a.v.e.l.

  • 29 ноября 2010 21:16
  • Регистрация: 5.05.2010
  • Был(а) онлайн: 2.03.2014
  • Комментариев: 6
  • 0
ай, как по мне, так не очень((

#9Grius

  • 7 декабря 2010 21:53
  • Регистрация: 15.09.2010
  • Был(а) онлайн: 14.04.2020
  • Комментариев: 26
  • 0
chok ребята а что за ботва такая,ставил в локалке все картинке пахали,залил на хостинг и заместо картинок черный квадрат малевича делается???

#10Voxel

  • 6 апреля 2011 13:12
  • Регистрация: 12.01.2011
  • Был(а) онлайн: 16.01.2013
  • Комментариев: 2
  • 0
а как сделать чтоб отображались места в топе, цифрами 1,2,3,4...

#11zluka

  • 8 июня 2011 05:26
  • Регистрация: 7.06.2011
  • Был(а) онлайн: 13.04.2012
  • Комментариев: 14
  • 0
как картинку из доп поля брать? (((

#12russur

  • 16 октября 2011 21:50
  • Регистрация: 16.10.2011
  • Был(а) онлайн: 29.10.2013
  • Комментариев: 2
  • 0
Как сделать чтобы название новости было справа от картинки а не над ней? :(

#13russur

  • 17 октября 2011 12:33
  • Регистрация: 16.10.2011
  • Был(а) онлайн: 29.10.2013
  • Комментариев: 2
  • 0
Для тех у кого не отображаются картинки на DLE 9.4

Хак не работает с WYSIWYG -редактором.
В настройках системы "Включить WYSIWYG редактор при редактировании статических страниц:" Поставьте "нет" и перезалейте картинки.

Жаль. что такая орава копипастеров перенесла статью к себе и не один не удосужился проверить корректную работу

#14sem18

  • 21 октября 2012 11:49
  • Регистрация: 7.06.2012
  • Был(а) онлайн: 27.01.2013
  • Комментариев: 7
  • 0
А есть возможность вывода на странице нескольких блоков с topnews, но с разных категорий? У меня почему если указать {topnews category="1,"} и {topnews category="2"}, то выдается ошибка. А если сделать так {topnews category="1,"} и {topnews}, то все работает!

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Ноябрь 2024 (9)
Октябрь 2024 (169)
Сентябрь 2024 (13)
Август 2024 (60)
Июль 2024 (12)
Июнь 2024 (30)

Последние комментарии: