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

related-news - как заставить работать вне полной новости?


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

Версия 8.3

сайт тут

Правда, этот вопрос про локальную версию.

При выводе этого тега в шаблон main.tpl он не работает. Как сделать, чтобы он работал вне полной новости.

Делаю для этого тега отдельный блок, заключаю его в aviable=showfull но все равно выводится только тег related-news, а не похожие новости.

Я так понял надо в файлах двига что-то править. Шаблоном тут не ограничишься. Никто не знает как это сделать?

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

Естественно, что только в полной новости будет показываться. Это связано с тем, что {related-news} формируется в файле /engine/modules/show.full.php, строки 423-485.

Чтобы показывало к примеру в краткой новости, то нужно, чтобы тогда в соответсвующем файле /engine/modules/show.short.php тоже формировалось значение для {related-news}.

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

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

ну да, это я уже понял. Но мне нужно не в show.short.php вынести, а на так, чтобы в блоках на main можно было прописывать. Как код править-то?

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

Как сделать, чтобы он работал вне полной новости

Каким образом он будет выводить "похожие новости" вне новости от которой и идет выборка похожих новостей?

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

Общий файл там engine/engine.php, но если блоки на главной, то с чем там текст подобной новости будет сравниваться? :)

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

Чтобы показывало к примеру в краткой новости, то нужно, чтобы тогда в соответсвующем файле /engine/modules/show.short.php тоже формировалось значение для {related-news}.

с текущей структурой движка это невозможно. Нужно добавлять поля в базу данных и заполнять таблицу не при просмотре, а при добавлении\редактировании новости.

Общий файл там engine/engine.php, но если блоки на главной, то с чем там текст подобной новости будет сравниваться?

возможно автор просто хочет при просмотре полной новости выводить эти теги не в шаблоне новости, а в главном шаблоне. Это легко реализуемо (с точки зрения структуры движка), но не в двух строках дело, нужно обращаться к профи, чтобы модуль писали.

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

Каким образом он будет выводить "похожие новости" вне новости от которой и идет выборка похожих новостей?

не, он имел в виду, что тэг related-news не работает в других шаблонах, кроме как в fullstory

к примеру, если выводится полная новость, а в шаблоне маин.тпл где то показывается {related-news}, то все равно выведет сам тэг, а не его содержимое

т.е. этот код в шаблоне маин.тпл не будет работать

[aviable=showfull]

{related-news}

[/aviable]

возможно автор просто хочет при просмотре полной новости выводить эти теги не в шаблоне новости, а в главном шаблоне

именно ;)

а почему не ввести в файле show.full.php дополнительную переменную, например

после строчки

$tpl->set( '{related-news}', $buffer );

вставить:

$global_related = $buffer;

в файле индекс.пхп

после

$tpl->load_template ( 'main.tpl' );

вставить:

$tpl->set ( '{related-news}', $global_related );

теоретически должно работать, пусть ТС проверит

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

возможно автор просто хочет при просмотре полной новости выводить эти теги не в шаблоне новости, а в главном шаблоне. Это легко реализуемо (с точки зрения структуры движка), но не в двух строках дело, нужно обращаться к профи, чтобы модуль писали.

совершенно верно. К примеру открывается полная новость, а список похожих новостей не внизу новости, над комментами, а в блоке, который находится в совершенно другом месте, а код этого блока прописан в main.tpl.

Каким образом он будет выводить "похожие новости" вне новости от которой и идет выборка похожих новостей?

потому то я заключу его в тег aviable=showfull. В другом месте он просто не будет высвечиваться да и работать не будет. Т.е. если просматриваться будет просто главная страница, то что бы этот тег там не творил не чудил, его не будет видно, а при просмотре полной он "откроется" и покажет то, что должен показывать.

теоретически должно работать, пусть ТС проверит

Спасибо за идею. Сейчас проверю.

Проще шаблон переделать

и как это реализовать?

теоретически должно работать, пусть ТС проверит

заработало! Спасибище огроменное!

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

в файле индекс.пхп

после

$tpl->load_template ( 'main.tpl' );

вставить:

$tpl->set ( '{related-news}', $global_related );

теоретически должно работать, пусть ТС проверит

как-то оно коряво))) Кстати, её ещё обнулить где-то надо, иначе это небезопасно.

Что-то типа $global_related = ""; в engine.php вставить вначале.

Это легко реализуемо (с точки зрения структуры движка), но не в двух строках дело, нужно обращаться к профи, чтобы модуль писали.

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

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

main.tpl:

<table>

	<tr>

		<td>Левая колонка</td>

		<td>Контент, а при просмотре полной новости - шаблон fullstory.tpl</td>

		[not-aviable=showfull]<td>Правая колонка</td>[/not-aviable]

	</tr>

</table>
fullstory.tpl
<table>

	<tr>

		<td>Полная новость</td>

		<td>Правая колонка</td>

	</tr>

</table>

Короче говоря, при просмотре полной новости вырезаем правую колонку из main.tpl, а в шаблон fullstory.tpl добавляем новую правую колонку и в ней можно использовать теги из полной новости.

Конечно не в main.tpl, но удобней.

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

в какое место? Точнее можно?

найди в начале engine.php

if (! defined ( 'DATALIFEENGINE' )) {

die ( "Hacking attempt!" );

}

и сразу после него вставь обнуление переменной $global_related = "";

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

как-то оно коряво)))

да, ладно) вполне юзабильно)

МASTER,

твой вариант подойдет далеко не для любого шаблона

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

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

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

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

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

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

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

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

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

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