Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Стили (CSS) » Шаблоны полных и кратких новостей в отдельных папках

Шаблоны полных и кратких новостей в отдельных папках


     14.09.2012    шаблон    Стили (CSS), MySQL    3270

вопрос
Здравствуйте.
В DLE 9.7 появилась такая прекрасная фишечка, как инклуд .tpl файлов из других папок.
Но вот для полного счастья не хватает этой возможности и при указании шаблона полной или краткой новости для категории.

Проще говоря, при создании или редактирования категории, если указать свой .tpl для новостей, но перед ним прописать что-то типа dir/fullstory-cat2, то на выходе получим ошибку, что невозможно подгрузить dir-fullstory-cat2.tpl. Тупо съедаются слеши. Может кто подсобит, подскажет, какие внести изменения. Знаю, что необходимо грызть файл inc/categories.php, но на этом и остановился.

Заранее благодарю ;)

Ответил: Sander


Открыть файл engine/inc/categories.php
Найти код (2 шт):
    $short_tpl = totranslit( stripslashes( trim( $_POST['short_tpl'] ) ) );
    $full_tpl = totranslit( stripslashes( trim( $_POST['full_tpl'] ) ) );


Заменить на:
    $short_tpl = str_replace("-00-","/",totranslit( stripslashes( str_replace("/","-00-", trim( $_POST['short_tpl'] ) ) ) ) );
    $full_tpl = str_replace("-00-","/",totranslit( stripslashes( str_replace("/","-00-", trim( $_POST['full_tpl'] ) ) ) ) );


Способ слегка колхозный, но работает.

PS. От благодарности на чай не откажусь :)
Z753504041409
R300061514559

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

ПафНутиЙ
Админ

ПафНутиЙ - 14 сентября 2012 09:55 -

Попробуйте открыть engine/classes/template.class.php
найти:
        if( $tpl_name == '' || ! file_exists( $this->dir . "/" . $tpl_name ) ) {
            die( "Невозможно загрузить шаблон: " . str_replace(ROOT_DIR, '', $this->dir)."/".$tpl_name );
            return false;
        }

        $this->template = file_get_contents( $this->dir . "/" . $tpl_name );

заменить на:
        /**/        
        $url = @parse_url ( $tpl_name );

        $file_path = dirname ($this->clear_url_dir($url['path']));
        $tpl_name = pathinfo($url['path']);
        $tpl_name = totranslit($tpl_name['basename']);

        if ($file_path AND $file_path != ".") $tpl_name = $file_path."/".$tpl_name;

        if( $tpl_name == '' || ! file_exists( $this->dir . "/" . $tpl_name ) ) {
            return "Невозможно загрузить шаблон: " . $tpl_name;
            return false;
        }
        $this->template = file_get_contents( $this->dir . "/" . $tpl_name );
        /**/

Каков вопрос - таков и ответ. Просто помните об этом.

Sander
PHP-developer

Sander - 14 сентября 2012 11:22 -

Не, дело в inc/category.php
Там парсер сьедает слеш.

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

Telegram: @sandev
Skype: Sander8804

F1ST
Юзер

F1ST - 14 сентября 2012 15:43 -

Никто не подсобит?
Sander, за сколько готовы были бы взяться?

chepic
Юзер

chepic - 15 апреля 2015 12:25 -

Вы нашли решение данной проблемы??? У меня DLE 9.3 и не могу обновить!

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

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

наверх