Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопросы по Smarty

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dropoff
Отправлено: 26 Декабря, 2010 - 15:58:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Привет всем.
Надеюсь на помощь в моей проблеме.

Для своего сайта-портфолио решил попробовать написать маленький скрипт который будет выводит несколько типов данных
1 - лист портфолио
2 - лист новостей
3 - страницы

Так как постоянно приходится работать с шаблонизатором Smarty, решил и его прикрутить, чтобы жизнь медом не казалась))

Структура така

control - админка
engine - конфиги, smarty, функции и т.д...
theme - файлы шаблона
tmp - кэш и т.д...
index.php

шаблонизатор подключил, написал простенький вывод новостей, передал его в шаблоне - все нормально работает.
Но теперь столкнулся с тем, что нужно все выводить через index.php

Новости сейчас выводятся через файл news.php
PHP:
скопировать код в буфер обмена
  1. if (isset($_GET['n_id'])) {
  2.  
  3.         $query_news = mysql_query("SELECT * FROM ".T_NEWS.", ".T_NEWS_CAT." WHERE n_id = ".$_GET['n_id']."");
  4.         $news = mysql_fetch_array($query_news);
  5.  
  6.         $smarty->assign('ID',   $news['n_id']);
  7.         $smarty->assign('URL',  $news['n_url']);
  8.         $smarty->assign('TITLE',$news['n_title']);
  9.         $smarty->assign('TEXT', $news['n_text']);
  10.         $smarty->assign('DATE', $news['n_date']);
  11.  
  12.         $smarty->display($S_THEME.'news_single.tpl');
  13.  
  14. } else {
  15.  
  16.         $query_news = mysql_query("SELECT * FROM ".T_NEWS.", ".T_NEWS_CAT." ORDER BY n_date LIMIT 10");
  17.  
  18.         $content = array();
  19.  
  20.         if (mysql_num_rows($query_news) > 0) {
  21.                 while($news = mysql_fetch_array($query_news)) {
  22.                         $content[] = array (
  23.                                 'ID'    =>      $news['n_id'],
  24.                                 'URL'   =>      $news['n_url'],
  25.                                 'TITLE' =>      $news['n_title'],
  26.                                 'TEXT'  =>      $news['n_text_short'],
  27.                                 'DATE'  =>      $news['n_date']
  28.                         );
  29.  
  30.                 }
  31.         }
  32.  
  33.         $smarty->assign('content',$content);
  34.         $smarty->display($S_THEME.'news.tpl');
  35.  
  36. }


Проблема в том, что не могу понять как сделать следующее
В папке theme создать файл index.tpl.
Вывод news.php повесить на какой-то тег, например, {$NEWS} и передать его в index.tpl
Т.е. чтобы в index.tpl уже построить HTML каркас и расставить все по своим местам.

Если где-то в коде есть ошибки, то простите, я новичок)

Заранее спасибо.
 
 Top
grefon
Отправлено: 26 Декабря, 2010 - 22:59:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




На сколько я понял Вам нужно не выводить содержимое news на экран, а загнать его в переменную, чтобы потом передать в другой шаблон. Если да то это можно сделать так:
PHP:
скопировать код в буфер обмена
  1. $news = $smarty->fetch($S_THEME.'news_single.tpl');

Это пишем в файле news.php. А в index php уже передаем $news в переменную:
PHP:
скопировать код в буфер обмена
  1. $smarty->assign('NEWS',$news);
  2. $smarty->display($S_THEME.'index.tpl');


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
dropoff
Отправлено: 27 Декабря, 2010 - 00:25:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 310
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Спасибо!
Именно то, что нужно было.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB