Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Не работает вывод через $tpl->set()

Не работает вывод через $tpl->set()


     21.12.2013    dle, модули    Все вопросы » Общие вопросы по PHP    6488

вопрос
Всем привет, нужно было сделать чтение файла из архива и вывод его на сайте через тег, но возникла проблема не знаю почему но не хочет выводить текст через $tpl->set('{book}',$text);

Вот так вот сделал чтение файла из архива и вывод его. Что интересно вывод через echo и print выводится делается без проблем. Хотелось бы чтобы разъяснили в чем может быть проблема. Заранее всем спасибо.


<?php
if (!defined('DATALIFEENGINE')) die("Go fuck yourself!");



require ENGINE_DIR . '/data/config.php';


    $newsid = intval($_REQUEST['id']);

    $row2 = $db->super_query("SELECT id, date, onserver, news_id FROM " . PREFIX . "_files WHERE news_id ='$newsid'");
        
    $book = $row2['onserver'];
    
    $file = ROOT_DIR.'/uploads/files/'.$book;
        if(file_exists($file)) $book_data = str_replace("\n" ,"<br/><br/>\n",file_get_contents($file));
        else $book_data = "указанная книги не найдена";


        
$za = new ZipArchive();

$zip = zip_open("$file");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {

        if (zip_entry_open($zip, $zip_entry, "r")) {
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            //echo "$buf\n";
            $def= nl2br($buf);
            
            $book_data= $def;
            $char_one_page=5000;//количество букв на страницу
            $lenstr=strlen($book_data);
            $page=ceil($lenstr/$char_one_page);
            $_GET['p']=($_GET['p'])?$_GET['p']:1;
            $text=substr($book_data,($_GET['p']*$char_one_page)-$char_one_page,$char_one_page);
            $tpl->set('{book}',$text);
            zip_entry_close($zip_entry);
        }
        

    }

    zip_close($zip);

}    

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


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

vitnet
PHP-developer

vitnet - 21 декабря 2013 18:36 -

$tpl->load_template( 'book.tpl' ); <-- Ваш шаблон
....................................
....................................
$tpl->set( '{book}', $text );
....................................
$tpl->compile( 'content' );
$tpl->clear();


http://pafnuty.name/statyi/144-make-a-modile.html

doktorpull
Юзер

doktorpull - 22 декабря 2013 07:59 -

У меня так и было сделано только он ничего не выводит .

vitnet
PHP-developer

vitnet - 22 декабря 2013 12:28 -

<?php

if( !defined( 'DATALIFEENGINE' ) ) {
    die( "Hacking attempt!" );
}

$newsid = intval($_REQUEST['id']);

$row2 = $db->super_query("SELECT id, date, onserver, news_id FROM " . PREFIX . "_files WHERE news_id ='$newsid'");
  
$book = $row2['onserver'];
    
$file = ROOT_DIR . '/uploads/files/' . $book;
if(file_exists($file)) $book_data = str_replace("\n" ,"<br/><br/>\n", file_get_contents($file));
else $book_data = "указанная книги не найдена";
  
$za = new ZipArchive();

$zip = zip_open("$file");

if ($zip) {
    while ($zip_entry = zip_read($zip)) {

        if (zip_entry_open($zip, $zip_entry, "r")) {
            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            $def = nl2br($buf); // echo "$buf\n";
            
            $book_data = $def;
            $char_one_page = 5000; //количество букв на страницу
            $lenstr = strlen($book_data);
            $page = ceil($lenstr/$char_one_page);
            $_GET['p'] = ($_GET['p']) ? $_GET['p'] : 1;
            $text = substr($book_data,($_GET['p']*$char_one_page)-$char_one_page,$char_one_page);
            zip_entry_close($zip_entry);
        }

    }
    zip_close($zip);
}

$text = "test"; // <-- использовал для проверки

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

$tpl->set('{book}', $text);
$tpl->compile('content');
$tpl->result['content'];
$tpl->clear();

?>

doktorpull
Юзер

doktorpull - 22 декабря 2013 14:23 -

Он же у тебя выводит вот только это что ты тут прописал.
на 41 строчке
$text = "test"; // <-- использовал для проверки 


а не информацию из файла. Не знаю у меня только через принт выводит. может я ни так делаю?=((

doktorpull
Юзер

doktorpull - 23 декабря 2013 11:01 -

Все разрешил сам задачу. Всем кто откликнулся спасибо.
Сделал вот так:



$text = ' '.$text.''; // вот таким вот образом вывел информацию.

dj-avtosh
PHP-developer

dj-avtosh - 24 декабря 2013 14:39 -

о боже...

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Alien Brickman
Юзер

Alien Brickman - 21 октября 2016 21:05 -

Ребят, помогите.
Не могу вывести тег, id пользователя, который просматривает полную новость.

Делаю так в show.full.php:
echo $member_id['user_id'];
$member_id['user_id'];
$tpl->load_template( 'fullstory.tpl' );
$tpl->set( '{User-ID}' , $member_id['user_id'] );
$tpl->compile( 'content' );
$tpl->clear();

Всё это поставил перед:
if( $allow_comments AND $news_found) {

echo выводит id нормально, а {User-ID} как просто текст.
Версия 10.5

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

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

наверх