Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Стол заказов » Похожие новости внутри { full-story }

Похожие новости внутри { full-story }


 OKyJIucT    28.09.2012    стол заказов    Стол заказов    4024    4 комментария

ТЗ примерно следующее.
1. Внедрить похожие новости внутрь самой статьи
2. Количество похожих новостей зависит от количества абзацев
3. Одна похожая новость выводится после каждого второго абзаца + после последнего абзаца

В целом должно получиться примерно так, как здесь _http://ivona.bigmir.net/cooking/toowners/340243-Kvashenaja-kapusta--Vkusno-i-polezno (Читай также:...)

Во сколько мне обойдется такое удовольствие, если вообще за него кто-то возьмется? Спасибо

4 комментария

OKyJIucT
Юзер

OKyJIucT - 29 сентября 2012 14:07 -

В общем, покопался полчасика и сделал все сам) правда не на автомате, приходится после нужных абзацев вставлять небольшой тег))
Сделал следующим образом, может кому пригодится в будущем:

1. В файле relatednews.tpl в конец добавил <br> в качестве разделителя (для чего, станет ясно позже)
2. В файле show.full.php после
$tpl->set( '{related-news}', $buffer );

добавил

$buffer = explode ("<br>", $buffer);
$rel1 = $buffer[0];
$rel2 = $buffer[1];
$rel3 = $buffer[2];
$rel4 = $buffer[3];
$rel5 = $buffer[4];

3. В файле index.php который в корне сайта, перед
$tpl->compile ( 'main' );

добавил

$tpl->set( '{rel1}', $rel1);
$tpl->set( '{rel2}', $rel2);
$tpl->set( '{rel3}', $rel3);
$tpl->set( '{rel4}', $rel4);
$tpl->set( '{rel5}', $rel5);

4. Теперь в новости, в нужном месте вставляю теги {rel1}, {rel2} и так далее, и на их место вставляется похожая новость.

Прошу не пинать за ошибки и не использование очевидных решений, в PHP я знаю крайне мало, но мой метод работает:)

OKyJIucT
Юзер

OKyJIucT - 29 сентября 2012 14:11 -

Кстати, это

$buffer = explode ("<br>", $buffer);
$rel1 = $buffer[0];
$rel2 = $buffer[1];
$rel3 = $buffer[2];
$rel4 = $buffer[3];
$rel5 = $buffer[4];

можно заменить на
list($rel1,$rel2,$rel3,$rel4,$rel5) = explode ("<br>", $buffer);


Более экономичный вариант:)

Sander
PHP-developer

Sander - 29 сентября 2012 15:09 -

$buffer = explode ("<br>", $buffer);

foreach($buffer as $i => $b) $tpl->set( '{rel{$i}}', $b);

В шабе {rel0}, {rel1} ... {rel4}

Однако вопрос не в том, чтобы выводить каждую похожую новость отдельно.
1. Внедрить похожие новости внутрь самой статьи

Не в шаблон, а в текст новости...

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

OKyJIucT
Юзер

OKyJIucT - 29 сентября 2012 15:52 -

Пробовал ваш вариант, почему то не завелся

По разному пробовал, не вышло :( Может в переменной $buffer не массив находится?


А в целом все то, что я написал, работает как надо, например


В историческом плане для обозначения «всего пространства» использовались различные слова, включая эквиваленты и варианты из различных языков, такие как «небесная сфера», «космос», «мир».
{rel1}
Использовался также термин «макрокосмос», хотя он предназначен для определения систем большого масштаба, включая их подсистемы и части. Аналогично, слово «микрокосмос» используется для обозначения систем малого масштаба.
{rel2}


Вот это пишу в процессе добавления новости, и на месте тегов появляются похожие статьи. Если не выносить тег {rel1} в index.php то в новости отображается только тег, а не его содержимое :) По крайней мере с моим опытом я решений других не нашел. Спасибо за помощь!

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх