Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Модули Как вывести статические страницы в зависимости от выбранного файла шаблона?

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


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

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

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

Спасибо!

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


Комментарии пользователей (11)

nowheremany
192

1659 | 1292

nowheremany - 13 апреля 2016 17:17 - Эксперт

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

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

serg91100
3

242 | 37

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

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

serg91100
3

242 | 37

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

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

serg91100
3

242 | 37

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
192

1659 | 1292

nowheremany - 14 апреля 2016 09:31 - Эксперт

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

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

serg91100
3

242 | 37

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

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

nowheremany
192

1659 | 1292

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
3

242 | 37

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

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

serg91100
3

242 | 37

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


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

nowheremany
192

1659 | 1292

nowheremany - 14 апреля 2016 10:34 - Эксперт

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

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

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

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

serg91100
3

242 | 37

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

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

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

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

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

 18.05.2014 vlady  Модули