Jump to content
Sign in to follow this  
y0r1c

Вывод краткой новости в несколько колонок

Recommended Posts

(хак предназначен для версии 4.2, будет работать начиная с версии 4.0 ... для боле ранних могу тоже подсказать, где и что нужно править, если напишете в личку)

давно вам обещал такое вот сделать, да все никак руки не доходили, изначально собирался делать модулем, но потом понял, что это можно сделать при помощи одного хака ;)

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

итак приступим:

открываем файл /engine/modules/show.short.php

ищем

	if (empty($row['alt_name'])) $row['alt_name'] = totranslit ($row['title']);

	$i++;
дописываем
	if ($i % 2 == 0){

		$line_break = '</tr><tr>';

	} else {

		$line_break = '';

	}
дальше ищем
		$news_find = array(

		 '{date}'				=> langdate($config['timestamp_active'], $row['date']),

		 '{comments-num}'		=> $row['comm_num'],

		 '{views}'				=> $row['news_read'],

		 '{category}'			=> $my_cat,

		 '{link-category}'		=> $my_cat_link,

		 '{category-icon}'		=> $cat_info[$row['category']]['icon'],

		 '{news-id}'			=> $row['id'],

		 '{php-self}'			=> $PHP_SELF,

		 '{PAGEBREAK}'			=> '',

		 '{rssdate}'			=> date("r", $row['date']),

		 '{rssauthor}'			=> $row['autor'],

			 );
заменяем на
		$news_find = array(

		 '{date}'				=> langdate($config['timestamp_active'], $row['date']),

		 '{comments-num}'		=> $row['comm_num'],

		 '{views}'				=> $row['news_read'],

		 '{category}'			=> $my_cat,

		 '{link-category}'		=> $my_cat_link,

		 '{category-icon}'		=> $cat_info[$row['category']]['icon'],

		 '{news-id}'			=> $row['id'],

		 '{php-self}'			=> $PHP_SELF,

		 '{PAGEBREAK}'			=> '',

		 '{rssdate}'			=> date("r", $row['date']),

		 '{rssauthor}'			=> $row['autor'],

		 '{line-break}'			=> $line_break,

			 );
еще ищем
	else $tpl->set_block("'\\[hide\\](.*?)\\[/hide\\]'si","<div class=\"quote\">".$lang['news_regus']."</div>");


		$tpl->compile('content');

		}
после этого и перед
	$tpl->clear();
добавляем
	$tpl->result['content'] = '<table><tr>'.$tpl->result['content'].'</tr></table>';
чтобы получилось
	else $tpl->set_block("'\\[hide\\](.*?)\\[/hide\\]'si","<div class=\"quote\">".$lang['news_regus']."</div>");


		$tpl->compile('content');

		}

	$tpl->result['content'] = '<table><tr>'.$tpl->result['content'].'</tr></table>';

	$tpl->clear();
теперь открываем файл shortstory.tpl в самое начало файла дописываем
<td valign="top">
а в самый конец файла дописываем
</td>

{line-break}
и вуаля, теперь короткие новости у вас выводятся в две колонки, чтобы изменить количество колонок достаточно тут
	if ($i % 2 == 0){

		$line_break = '</tr><tr>';

	} else {

		$line_break = '';

	}

заменить цифру 2 на любую другую, по количеству желаемых колонок

после этого вам возможо понадобится править ваш shortstory.tpl для более красивого вывода новостей :)

ЗЫ: отписываемся о возникших проблемах

Share this post


Link to post
Share on other sites
Guest Автоответчик

<#thank#>

Share this post


Link to post
Share on other sites

мне еще шаблоны редактить и редактить, а то слишком широкая страница получается..., но будет похоже как на netz.ru (это не реклама, просто пример)...

вывод будет вида

1 2			1 2 3

3 4   или	  4 5 6

5 6			7 8 9

и т.д.		 и т.д.

в зависимости от количества колонок

Edited by y0r1c

Share this post


Link to post
Share on other sites

Всё отлично работает. :D

Вот только если кто подскажет или хотя бы намекнёт, как сделать что бы колонки были одного размера (по ширине).

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

Просидел пару часов, перепробовал всё что знаю, не получается.

А так, всё отлично. Ещё раз спасибо.

Share this post


Link to post
Share on other sites

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

<td>

написать

<td width="250">

либо какую-нибудь другую ширину

Share this post


Link to post
Share on other sites

Скриншот или ссылку на сайт дайте посмотреть хоть... <_< Спасибо :)

Share this post


Link to post
Share on other sites

ждём скрина... а то не охота корячится просто так, чтоб потом всё менять обратно!!!

Share this post


Link to post
Share on other sites

Я пробовал ставить на localhost..... кривоват хак. Если блоки с новостями в строке имеют разную высоту, то блоки в колонках не идут один за другим...... а между ними образуется пробел, равный разнице между высотами блоков в строке.

Скрин смотрите тут

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

<td>

написать

<td width="250">

либо какую-нибудь другую ширину

Если поставить фиксированную ширину, то это означает настроить диз под конкретное разрешение.... а если разрешение будет больше или меньше, то это будет косяк...

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

Share this post


Link to post
Share on other sites

А у меня получается, что кадая новость в новой колонке, хотя прописано $i % 2 == 0). И {line-break} не отображается, а так и пишется в браузере.

Edited by Gray

Share this post


Link to post
Share on other sites

А точнее этот глюк у меня только на главной, в категориях всё ОК

Share this post


Link to post
Share on other sites

Короче тут такой вот глюк:

Если на главной вывожу с помощью content, то всё окей, а если с помощью custom, то каждая новость становится в отдельном столбце и страница растягивается вширь.

Share this post


Link to post
Share on other sites

Вот вам скрины то что получилось у меня на стандартном шабике...:

13sb.th.jpg 26ev.th.jpg

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

38ff.th.jpg

Share this post


Link to post
Share on other sites

она оказалась какраз там где надо, ведь первые две новости заключены в общий <tr>.. соответственно никакая друга не может туда влезть, для того, чтобы новости в столбиках располагались независимо, нужно четные новости записывать в 1-у переменную, а нечетные в другую, а потом их обьеденять ;)...

Share this post


Link to post
Share on other sites

Однако когда вся страница в дырках, причём в достаточьно большых, это не совсем красиво и удобно...

Share this post


Link to post
Share on other sites

Однако когда вся страница в дырках, причём в достаточьно большых, это не совсем красиво и удобно...

В принципе у меня неплохо получалось дома, на Денвере. Получались практически одинаковые колонки, при условии что картинка в краткой новости (точно не помню, 180 пикселей что ли) и новостей достаточно много. И в краткой новости примерно одинакого текста. Пробовал при 800 на 600, 1024 на 768. Жаль только скринов не сделал.

Точнее говоря делал, но посылать не стал. Новости были забиты вполне реальные и даже присутствовал логотип информ агенства. Не захотел что бы меня вычислили. Делал что бы показать что кое что умею.

Кстати, благодаря своему увлечению получил на днях работу в этом агенстве. :D .

Если бы в DLE была полноценная поддержка английского, т.е публиковать новости сразу на двух языках, приболтал бы купить DLE.

Share this post


Link to post
Share on other sites
Guest 2rbo

У меня версия 4.2 Я сделал всё как написано выше но при открытии страницы у меня на белом экране ошибка помогите что делать????????

Ошибка

"Parse error: parse error in x:\home\ddt\www\engine\modules\show.short.php on line 184 "

ПОМОГИТЕ :(

Share this post


Link to post
Share on other sites

2rbo, покажи свою 180-ую строку файла show.short.php ...

Share this post


Link to post
Share on other sites
Guest 2rbo

VIP77

Спасибо огромное я уже разобрался!

Исзвини конечно но не мог бы ты ответить на вопрос в этой теме

(просто мой сайт готов на 90% остался только этот вопрос)

Share this post


Link to post
Share on other sites

У меня не получается что-то. Вроде все сделал так, как было сказано выше, но колонки убей себя не разделаются.

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

Версия скрипта: DLE 4.2

Share this post


Link to post
Share on other sites

И у меня тоже не работает (

Может поделитесь готовым исходником измененных файлов? ПЛЗ

Share this post


Link to post
Share on other sites

У кого нибуdЬ это работает вооб6е? Может поможете советом - как и к чему ?

Share this post


Link to post
Share on other sites

Сам с собой разговариваю будто ) Куда делись знатокаи ?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...