Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Модули » Как вывести статические страницы в зависимости от выбранного файла шаблона?

Как вывести статические страницы в зависимости от выбранного файла шаблона?


     13.04.2016    Модули, Хаки    1470

вопрос
Приветствую. Есть более 2000 статических страниц.
Города
Метро
Районы

К каждому свой файл шаблона. Скажите, можно ли как-то вывести статические страницы в зависимости от выбранного файла шаблона списком - автоматом?

Спасибо!

Ответа пока нет


11 комментариев

nowheremany
Эксперт

nowheremany - 13 апреля 2016 17:17 -

В стандартном движке такой возможности нет. Я лично я считаю это непрофильным использованием ДЛЕ

Благодарность принимаю тут Связь

serg91100
Юзер

serg91100 - 13 апреля 2016 17:21 -

Я подневольный в этом случае. Шеф сказал сделать, и хоть убейся. А за сколько такое можно реализовать?

serg91100
Юзер

serg91100 - 14 апреля 2016 08:56 -

Никто помочь не может?

serg91100
Юзер

serg91100 - 14 апреля 2016 09:05 -

Вот собственно модуль.
Но он выводит все абсолютно
<?php
if( ! defined( 'DATALIFEENGINE')) {
DLE( "HACKING ATTEMP!" );
}
include ('engine/api/api.class.php');
$jtest = ($dle_api->load_table($table="dle_static",$fields="*",$where="id>1",$multirow="true",$start="0",$limit="0",$sort="id",$sort_order=""));

foreach ($jtest as $j_test) {
$id = $j_test['id'];
$name = $j_test['name'];
$descr = $j_test['descr'];
if ($id >2 & $id != 19) echo "<li><a href='/$name.html'>$descr</a></li>";

}

?>


Как его заставить работать по выбору шаблона?
Есть 3 файла
metro.tpl
gorod.tpl
raion.tpl


nowheremany
Эксперт

nowheremany - 14 апреля 2016 09:31 -

В таблице есть поле tpl. Фильтровать можете по нему Но нельзя никаким образом узнать текущий шаблон в котором юзается include

Благодарность принимаю тут Связь

serg91100
Юзер

serg91100 - 14 апреля 2016 09:40 -

А можно напрямую указать файл tpl в модуле?

nowheremany
Эксперт

nowheremany - 14 апреля 2016 09:58 -

Если я правильно понял

<?php
if( ! defined( 'DATALIFEENGINE')) {
DIE( "HACKING ATTEMP!" );// <<<<<<<
}

$t = (in_array($t,array('metro','gorod','raion'))?$t:'gorod');

include ('engine/api/api.class.php');
$jtest = ($dle_api->load_table("dle_static","*","id>1 and tpl='{$t}'","true","0",$limit="0",$sort="id",$sort_order=""));

foreach ($jtest as $j_test) {
$id = $j_test['id'];
$name = $j_test['name'];
$descr = $j_test['descr'];
if ($id >2 & $id != 19) echo "<li><a href='/$name.html'>$descr</a></li>";

}

?>


вставлять так
{include file="имяфайла.php?t=metro"}

Благодарность принимаю тут Связь

serg91100
Юзер

serg91100 - 14 апреля 2016 10:03 -

Именно! Вы гений! Единственное, как сортировку по названию в алфавитном порядке сделать? Впихнуть name в поле сорт?

serg91100
Юзер

serg91100 - 14 апреля 2016 10:29 -


Пардон, сделал. Но один материал почему то вылетел из общего списка (Дмитров)

nowheremany
Эксперт

nowheremany - 14 апреля 2016 10:34 -

Мне не понятно зачем вы сделали этот код
($id >2 & $id != 19)

скорее всего по этому

Да верно - для сортировки нужно вместо id поставить name

Благодарность принимаю тут Связь

serg91100
Юзер

serg91100 - 14 апреля 2016 10:38 -

Что знал, то использовал. В php совсем зеленый.
Удалил if ($id >2 & $id != 19) , но ничего не изменилось

UPD: Дурень! Пробел в начале названия стоял. Вот и косяк.
nowheremany, спасибо за помощь. Дайте Ваш киви, хоть копеечку скину за помощь

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

Похожие вопросы

 18.05.2014 vlady  Модули
наверх