Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> php код в smarty, передать выполненный код php в assign 
:(
    Опции темы
niaz
Дата 15.8.2008, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Уже давно не могу понять как рализовать 2 решения!

1) передавать в assign не переменню а код php чтобы он сначала выполнился передался шаблону для вывода:
(примерное такое)
Код

$smarty->assign("content", echo"test";);


1) передавать в assign не переменню а код php чтобы он выполнился в шаблоне:
(примерное такое)
Код

$smarty->assign("content", echo"test";);


Я знаю что можно добавить код php  в шаблон методом {php}{/php}. Но я же не могу воткнуть весь код сайта в шаблон.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 15.8.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



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

PM   Вверх
solenko
Дата 15.8.2008, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



1. Можете объяснить зачем вы используете smarty?
2. Можете привести реальный пример того, что вы спрашиваете?




--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
niaz
Дата 15.8.2008, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 15.8.2008,  08:38)
код надо сначала выполнить, получить его результат в переменную, и эту переменную передавать в смарти.
неужели это не является очевидным при просмотре любых примеров приложений, работающих со смарти?

Примеры приложений я не нашел.

Добавлено через 1 минуту и 45 секунд
Цитата(solenko @ 15.8.2008,  08:39)
1. Можете объяснить зачем вы используете smarty?
2. Можете привести реальный пример того, что вы спрашиваете?

1.) Смарти использую для шаблона своего портала. А вы что все делаете без шаблона? Можете привести пример?
2.) Пример я привел выше в первом посте.
PM MAIL ICQ   Вверх
solenko
Дата 15.8.2008, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



niaz, А зачем вам шаблон? Я не использую шаблонов, но суть не в этом.
А в первом примере вы привели двух сферических коней. Например
Код

$smarty->assign("content", echo"test";);

эквивалентно
Код

echo "test";


Это сообщение отредактировал(а) solenko - 15.8.2008, 09:47


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Anarki
Дата 15.8.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: нет
Всего: 11



Цитата(niaz @  15.8.2008,  11:19 Найти цитируемый пост)
1) передавать в assign не переменню а код php чтобы он сначала выполнился передался шаблону для вывода:
(примерное такое)
код PHP
1:
    
$smarty->assign("content", echo"test";);

Смысла в echo "test" тут нет, нужно в php скрипте подготавливать данные для вывода в шаблон
Код

$smarty->assign("content","test");



Цитата(niaz @  15.8.2008,  11:19 Найти цитируемый пост)
1) передавать в assign не переменню а код php чтобы он выполнился в шаблоне:
(примерное такое)
Выделить всёкод PHP
1:
    
$smarty->assign("content", echo"test";);


Я знаю что можно добавить код php  в шаблон методом {php}{/php}. Но я же не могу воткнуть весь код сайта в шаблон. 

Чтобы код выполнился в шаблоне только через {php}{/php},  а вообще зачем он там нужен не хватает что ли конструкций смарти?  smile 



--------------------
PM WWW   Вверх
Feldmarschall
Дата 15.8.2008, 11:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



niazhttp://www.smarty.net/manual/ru/
там есть примеры.

но суть я, по-моему, уже объяснил.

не 
Код

$smarty->assign("content", $r = mysql_query('SELECT * FROM имя_таблицы'); echo  mysql_num_rows($r););

а
Код

$r = mysql_query('SELECT * FROM имя_таблицы');
$num=mysql_num_rows($r);
$smarty->assign("content", $num);

это, надеюсь, не слишком сложно для понимания?

Это сообщение отредактировал(а) Feldmarschall - 15.8.2008, 11:21
PM   Вверх
niaz
Дата 15.8.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Нверное я неправильно выразился! Ну ладно попробую еще раз все обьяснить:
Вот сам код шаблона:
Код

<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<title>{$title}</title>
<META name="DESCRIPTION" content="{$description}">
<META name="KEYWORDS" content="{$keywords}">

<link href="/my.css" rel="stylesheet" type="text/css">

</head>

<body>
      {$content} 
</body>
</html>


А вот теперь сам код сценария smarty:

Код

<?php

require './Smarty/Smarty.class.php';

$smarty = new Smarty;

$smarty->compile_check = true;
$smarty->debugging = false;

$smarty->assign("title",'Мой сайт');

$smarty->assign("description",'сайт');

$smarty->assign("keywords",'познавательный сайт');

$smarty->config_load('site.conf','my');

$smarty->assign("glava",'раздел');

$smarty->assign("content", "мой php код");

$smarty->display('index.tpl');

?>


Мне охота выполнить в сценарии какой либо код либо функцию, чтобы результат вышел в шаблоне в блоке ($content). Код может быть любой: данные из базы, или отправка почты и .т .п. У меня есть страницы статистические, т.е. содержание не меняется, тогда я просто через:

Код

$smarty->assign("content", "html");


просто передаю весь html теги данных и все.

если я в шаблоне укажу {php}{/php} то ведь шаблон будет расти, и у страниц ведь разные коды. Точнее говоря я пишу портал: там есть обьявления, новости, фотки и все такое. А шаблон ведь один. Я же не могу весь код портала занести в {php}{/php} в шаблоне. Сами подумайте что тогда получиться. Пожалуйста обьясните по подробней.

Это сообщение отредактировал(а) niaz - 15.8.2008, 11:33
PM MAIL ICQ   Вверх
Feldmarschall
Дата 15.8.2008, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Ты не ответил на вопрос, зачем тебе смарти.
"он мне нужен для шаблона" - это не ответ.
судя по всему, ты не понимаешь, для чего нужны шаблоны. В этом случае тебе вообще не нужно ими пользоваться.
"шаблон" тебе нужен для того, чтобы не писать 10 раз <html xmlns="http://www.w3.org/1999/xhtml">?

ну так возьми свой "шаблон", пропиши в него все свои титлы и кейворды, и просто инклюдь в свой портал.
Код

include "shablon.html";

вот и все.


PM   Вверх
niaz
Дата 15.8.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 15.8.2008,  12:10)
Ты не ответил на вопрос, зачем тебе смарти.

Шаблон мне нужен чтобы дизайн страниц был одинаков. Прикинь если на сайте 200 страниц и в каждом прописан дизайн. А если захочешь поменять стиль одной буквы или таблицы, тогда ваще пипец. Вот и использую чтобы дизайн отделить от програмного кода пхп. Можно уже дизайн менять одним кликом если нужно. А ты сам как делаешь? Или ваще ничего сам не пробовал создавать?
PM MAIL ICQ   Вверх
niaz
Дата 18.8.2008, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



вы не поняли меня! Повторю вопрос снова!
Вот приведу пример синтаксиса Smarty:

Код

<?php

require './Smarty/Smarty.class.php';

$smarty = new Smarty;

$smarty->compile_check = true;
$smarty->debugging = false;

$smarty->config_load('my.conf','test');

$smarty->assign("title",'Мой сайт');

$smarty->assign("description",'Описание');

$smarty->assign("keywords",'ключи');


function test()
{
echo 'test';
}

$smarty->display('index.tpl');

?>


и приведу код шаблона.

Код

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>{$title}</title>
<META name="DESCRIPTION" content="{$description}">
<META name="KEYWORDS" content="{$keywords}">

<link href="/my.css" rel="stylesheet" type="text/css">


</head>

<body>

{$content}

</body>
</html>


мне охота чтобы функция test() выполнилась и результат отображался в шаблоне в переменной {$content}

Добавлено через 3 минуты и 48 секунд
Не уж то в Smarty нет простого решения. Как тогда пользуется весь мир? Вроде внимательно прочитал весь мануал!

Наверное есть один выход, написать свой шаблонизатор! Раньше так и делал. Не надо было переходить в Смарти.
PM MAIL ICQ   Вверх
solenko
Дата 18.8.2008, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Код

$smaty->assigne('content', test());
function test() {
  return 'test';
}


Код

ob_start();
test();
function test() {
  echo 'test';
}
$smaty->assigne('content', ob_get_contents());


Добавлено через 2 минуты и 10 секунд
Цитата(niaz @  18.8.2008,  08:14 Найти цитируемый пост)
Наверное есть один выход, написать свой шаблонизатор! Раньше так и делал. Не надо было переходить в Смарти.

Есть еще более верное решение -- написать свой php


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 18.8.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



solenko, очень, очень умное решение. Шаблоны и буфферинг только для этого и придуманы были. 
PM   Вверх
niaz
Дата 18.8.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



а как передать такой код? ob_get_contents() - ом не получается, почему то код выполняется 2 раза!
Код

if(isset($Submit))
{
send_mail();
}
else
{
form_mail();
}

function send_mail()
{
$to_email="[email protected]";
$subject=$_POST['subject'];
$msg=$_POST['msg'];
$email=$_POST['email'];

   if(eregi("^[a-zA-Z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$email))
   { 
             if(empty($subject))
             {
             echo '<div align="center">Введите ваше имя</div></br>';
             form_mail();
             }
             else 
             { 
                             if(empty($msg))
                             {
                             echo '<div align="center">Введите текст сообщения</div></br>';
                             }
                             else
                             { 
                                mail ($to_email,$subject,$msg,
                                "Content-type: text/html; charset=windows-1251\n". 
                                "From: $email\n".                                
                                "Reply-To: $emaip\n".
                                "Content-type: text/html; charset=windows-1251"
                                );
                                echo '<div align="center">Ваше письмо отправлено!</div></br>';
                                form_mail();
                             }
             }
             
   } 
   else
   {
   echo '<div align="center">E-mail неправильно введен или содержит недопустимые символы. Пожалуйста вернитесь и заполните все поля правильно</div></br>';
   form_mail();
   }

}

function form_mail()
{
echo'
<table width="97%" cellpadding="5" cellspacing="0">
          <tr>
            <td width="14%"></td>
            <td valign="top"><p align="left">Ваши вопросы.</p>
                <form name="form1" method="post" action="">
                  <table width="300">
                    <tr>
                      <td>Ваше имя: </td>
                    </tr>
                    <tr>
                      <td><input name="subject" type="text"></td>
                    </tr>
                    <tr>
                      <td>Ваш e-mail:</td>
                    </tr>
                    <tr>
                      <td><input type="text" name="email"></td>
                    </tr>
                    <tr>
                      <td>Текст письма: </td>
                    </tr>
                    <tr>
                      <td><textarea name="msg" cols="60" rows="10"></textarea></td>
                    </tr>
                    <tr>
                      <td height="5">&nbsp;</td>
                    </tr>
                    <tr>
                      <td><input type="submit" name="Submit" value="Отправить"></td>
                    </tr>
                  </table>
                </form><p align="justify">&nbsp;</p></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td valign="top">&nbsp;</td>
          </tr>

        </table>';
}



PM MAIL ICQ   Вверх
solenko
Дата 18.8.2008, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Feldmarschall, естественно для этого! А вы сомневались? А что, их можно еще для чего-то использовать?
Выше 10 упоминаний того, как сделать правильно. В моем последнем посте одно упоминание того как сделать правильно. Человек хочет  делать неправильно -- это его проблеммы.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Feldmarschall
Дата 18.8.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



solenko, вместо того, чтобы ставить человека костыли, да еще и вниз головой, надо ему объяснить, что он не понимает, что такое шаблон. Он не знает, что у страницы тоже бывает шаблон, так же, как у всего сайта. Он сделал шапку, назвал её шаблоном, и не хочет ничего больше слушать. Полагая, что знает больше всех. 
Так вот, ему надо объяснять, что в данном случае смарти ему нужен, как рыбке зонтик. Если он не использует его по назначению, для шаблонов страниц. Одного не послушал - может быть, к 10 прислушается.
А с твоим подходом - давай, рассказывай ему, как целиком готовый скрипт, со всеми его запусками, засунуть в шаблон сайта.

PM   Вверх
niaz
Дата 18.8.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



вы не поняли меня! у меня на сайте один шаблон страницы! приведу пример
вот он (просто скопировал без внутренних менюшек и прочемм) index.tpl:

Код

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{$title}</title>
<META name="DESCRIPTION" content="{$description}">
<META name="KEYWORDS" content="{$keywords}">
<link href="/my.css" rel="stylesheet" type="text/css">
</head>
<body>
      {$content} 
</body>
</html>


мне хочеться чтобы результат следующего кода был в {$content} . Ребята может я и php плохо знаю. Но очень надо пишу для себя крупный портал и пишу уже давно. Не хотелось бы все переписывать!
вот код сценария целиком:

Код

<?php

require './Smarty/Smarty.class.php';

$smarty = new Smarty;

$smarty->compile_check = true;
$smarty->debugging = false;

$smarty->assign("title",'');

$smarty->assign("description",'');

$smarty->assign("keywords",'');

$smarty->assign("den",'3 days');

$smarty->config_load('my.conf','zakaz');

$smarty->assign("glava",'');

/* отсюда начинается код */

if(isset($Submit))
{
send_mail();
}
else
{
form_mail();
}

function send_mail()
{
$to_email="[email protected]";
$subject=$_POST['subject'];
$msg=$_POST['msg'];
$email=$_POST['email'];

   if(eregi("^[a-zA-Z0-9\._-]+@[a-z0-9\._-]+\.[a-z]{2,4}\$",$email))
   { 
             if(empty($subject))
             {
             echo '<div align="center">Введите ваше имя</div></br>';
             form_mail();
             }
             else 
             { 
                             if(empty($msg))
                             {
                             echo '<div align="center">Введите текст сообщения</div></br>';
                             }
                             else
                             { 
                                mail ($to_email,$subject,$msg,
                                "Content-type: text/html; charset=windows-1251\n". 
                                "From: $email\n".                                
                                "Reply-To: $emaip\n".
                                "Content-type: text/html; charset=windows-1251"
                                );
                                echo '<div align="center">Ваше письмо отправлено!</div></br>';
                                form_mail();
                             }
             }
             
   } 
   else
   {
   echo '<div align="center">E-mail неправильно введен или содержит недопустимые символы. Пожалуйста вернитесь и заполните все поля правильно</div></br>';
   form_mail();
   }

}

function form_mail()
{
echo'
<table width="97%" cellpadding="5" cellspacing="0">
          <tr>
            <td width="14%"></td>
            <td valign="top"><p align="left">Ваши вопросы.</p>
                <form name="form1" method="post" action="">
                  <table width="300">
                    <tr>
                      <td>Ваше имя: </td>
                    </tr>
                    <tr>
                      <td><input name="subject" type="text"></td>
                    </tr>
                    <tr>
                      <td>Ваш e-mail:</td>
                    </tr>
                    <tr>
                      <td><input type="text" name="email"></td>
                    </tr>
                    <tr>
                      <td>Текст письма: </td>
                    </tr>
                    <tr>
                      <td><textarea name="msg" cols="60" rows="10"></textarea></td>
                    </tr>
                    <tr>
                      <td height="5">&nbsp;</td>
                    </tr>
                    <tr>
                      <td><input type="submit" name="Submit" value="Отправить"></td>
                    </tr>
                  </table>
                </form><p align="justify">&nbsp;</p></td>
          </tr>
          <tr>
            <td>&nbsp;</td>
            <td valign="top">&nbsp;</td>
          </tr>

        </table>';
}

/* здесь заканчивается код*/

$smarty->assign('content', '');


$smarty->display('index.tpl');

?>


это один из страниц

Добавлено через 48 секунд
Надеюсь теперь вы меня поймете, чего на самом деле я хочу.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 18.8.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



об этом и речь. его никто не понимает. его.
сам он вообще ничего не слышит, даже не читает. а вот его - такого гениального, и с уникальными проблемами - никто не понимает. жестокие бессердечные люди.
PM   Вверх
niaz
Дата 18.8.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Цитата(Feldmarschall @ 18.8.2008,  12:45)
об этом и речь. его никто не понимает. его.
сам он вообще ничего не слышит, даже не читает. а вот его - такого гениального, и с уникальными проблемами - никто не понимает. жестокие бессердечные люди.

Feldmarschall ты не прав. Я да признаю что не верно написал. Говорят "хочешь услышать умный ответ, задай умный вопрос". 
Вот с эти у меня проблемы, наверное я не могу спросить красиво. В последнем посте я уже полностью привел код. У меня ваще такое чувство что кроме меня нафиг никто не использует Smarty. Так мало примеров в инете и форумов нет (кроме английского на оф сайте).

Я все внимательно читаю и пробую. Я уже весь смарти разворотил. Может все решается какой то функцией самого php который мне не известен. Честно говоря уже голова кругом.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 18.8.2008, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Я тебе в третий раз повторяю - тебе не нужен шаблонизатор смарти.  Ты просто не понимаешь, зачем он нужен.
Этот ы его не используешь, а не "все".

Та "волшебная функция", о которой ты говоришь - это нарисовать шаблон страницы отправки емейла в смарти!
То есть, переделать весь твой "портал". Чего ты, разумеется, не хочешь.
В этом случае я предлагаю тебе самое простое решение - отказаться от смарти вообще.

PM   Вверх
solenko
Дата 18.8.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Feldmarschall, ну что ж, попробуй занятся просвятительной работой а не сказать "я ценю свое время", как обычно.
//ушел за попкорном

niaz, Я удивляюсь, почему так мало инфы по использованию персональных компьютеров для вспашки земли. Такое впечатление, что только я использую в качестве плуга системник.

http://www.smarty.net/manual/ru/language.f...ion.include.php
вы этот раздел документации читали? Не натолкнуло на мысль, что можно иметь более одного шаблона?


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
niaz
Дата 18.8.2008, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



solenko да я читал этот раздел! И честно говоря в данное время так и поступаю! Но тогда приходиться держать десятка файлов шаблона. А я хочу оставить шаблон только 1 и все.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 18.8.2008, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Не "приходится". Держать десяток файлов шаблона - это именно то, для чего были придуманы шаблонизаторы.
Если тебе не хочется - нет проблем - не используй шаблонизатор вовсе.
То, что тебе нужно, делается двумя инклюдами.
PM   Вверх
niaz
Дата 18.8.2008, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Feldmarschall ты прав! Я раньше инклудил и хотел попробовать раз все блоги и форумы хвалили этот шаблонизатор. Но оказалось полезного там нет, а все наоборот муторно раз никто им не пользуется. Придется все переписывать и переделывать, думаю за месяцев 4 закончу. Спасибо всем кто помагал и советовал. Но тему оставлю открытым, вдруг кто найдет решение и надумает поделиться.
PM MAIL ICQ   Вверх
Feldmarschall
Дата 18.8.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Полезное там есть. Ты просто не понимаешь, для чего нужен шаблонизатор. 
Он нужен для того, чтобы разделить логику приложения и отображения.
А ты думаешь, что он нужен для того, чтобы сделать шапку сайта в одном файле.
Со временем поймешь. Возможно.
PM   Вверх
niaz
Дата 21.8.2008, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Вот я и вернулся написать ответ. Почему то к сожалению либо модератор либо администратор удалил мои посты в другой теме. Раз никто из здешних профессионалов не смогли ответить, решил искать ответ сам. И знаете как советовал Фельдмаршал сам догадался.

Все очень просто, если хотите чтобы ваш php код обрабатывался в шаблоне то надо сделать следующее: весь php код вписываете в функцию в синтаксисе Smarty:

Код

function test() 
{
echo 'test';
}


а в шаблоне пишем следующее:
Код

{php}
test();
{/php}


и все. Фельдмаршал, теперь обращаюсь тебе, пожалуйста не сори постами мою тему.
PM MAIL ICQ   Вверх
skyboy
Дата 21.8.2008, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



niaz, насчет функции - это, надеюсь, шутка?
PM MAIL   Вверх
niaz
Дата 22.8.2008, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Цитата(skyboy @ 21.8.2008,  21:31)
niaz, насчет функции - это, надеюсь, шутка?

Почему шутка? В чем? А какое решение этой проблемы у тебя?
PM MAIL ICQ   Вверх
Feldmarschall
Дата 22.8.2008, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Этот топик интересен уже не в области технологии, а в области столкновения мировоззрений.
С одной стороны мы имеем мировоззрение "все можно понять, если стараться".
С другой - "я все знаю лучше всех".
Отсюда и разность подходов. 
С одной стороны - "попробуем так объяснить. попробуем эдак рассказать"
С другой - "Я! Задал! Вопрос! Как сделать, чтобы 2х2 было равно 5!!! Кто не может ответить - тот ничего не понимает"
Ну, и закономерный результат:
- все лохи, а я нашел правильный ответ: написать функцию function twobytwo () { return 5 }

Я думаю, в таких случаях надо менять методологию ответов.


PM   Вверх
niaz
Дата 22.8.2008, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Я не считаю никого лохом! У меня даже такой и мысли небыло. Теперь у меня есть мысля другая: "Никто не использует в своих проектах такой похвальный Smarty". И сразу отвечаю почему:

Потому что если бы кто то пользовался бы смарти он бы обязательно столкнулся бы моей проблемой! И думаю если кто то знал бы ответ то бы сразу помогли. А тут вместо помочь мне говорят зачем тебе смарти лошара, пользуйся инклудом.

Да чуть не забыл: Я нашел еще один вариант моего решения, надо вывести весь код в отдельный файл только вписать ее в {php}{/php} и подключить в синтаксис fetch ом. Но я свой следующий проект буду делать на инклудах! Это самое правильное решение!
PM MAIL ICQ   Вверх
Feldmarschall
Дата 22.8.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Цитата(niaz @  22.8.2008,  11:32 Найти цитируемый пост)
Теперь у меня есть мысля другая: "Никто не использует в своих проектах такой похвальный Smarty". И сразу отвечаю почему:
Потому что если бы кто то пользовался бы смарти он бы обязательно столкнулся бы моей проблемой! 

анекдот
PM   Вверх
niaz
Дата 22.8.2008, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Может быть!
PM MAIL ICQ   Вверх
Feldmarschall
Дата 22.8.2008, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



Эти твои "может быть" - пустые слова.
Ты сначала соглашаешься, что можешь быть неправ, а потом выдаешь перл еще похлеще.

Ты так и не понял, зачем нужны шаблонизаторы, и смарти в частности.
Не понимая, зачем нужны шаблонизаторы, ты берешься судить тыщи людей, которые шаблонизаторами пользуются.
У тебя даже не возникает мысли, что если тыщи что-то видят, а ты не видишь - что неправ можешь быть ты, а не они. Нет. единственный вывод, который ты делаешь - смарти фигня, никто не пользуется. Потому что все не понимаю того же, что и ты. Ну не смешно ли?
PM   Вверх
niaz
Дата 22.8.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 22.7.2006

Репутация: нет
Всего: нет



Раз не понимаю что ж не обьяснил зачем шаблонизатор? Раз ползовался значит видел выгоду! А эти тысяча людей которые пользуются, что то не один не помог, и ты в их числе. Вместо того помочь ты начал допрос устравивать и говорит зачем тебе смарти. Я ведь не спрашивал пользоватся мне смарти или нет! а спросил конкретно проблему!

Сам небось из языков только русский язык знаешь? А ПХП , перл и си первый раз слышишь!  smile 

Это сообщение отредактировал(а) niaz - 22.8.2008, 13:12
PM MAIL ICQ   Вверх
Feldmarschall
Дата 22.8.2008, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: нет
Всего: 32



фантастическое сочетание невежества и наглости
PM   Вверх
skyboy
Дата 22.8.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



Цитата(niaz @  22.8.2008,  12:11 Найти цитируемый пост)
Раз не понимаю что ж не обьяснил зачем шаблонизатор?

потому что не обязан.
Цитата(niaz @  22.8.2008,  10:32 Найти цитируемый пост)
Потому что если бы кто то пользовался бы смарти он бы обязательно столкнулся бы моей проблемой!

с такой проблемой люди не сталкиваются, потому что имеют такую структуру системы, при которой надобности в подобных фокусах попросту не возникает. о том, как должна выглядеть система тебе писали в самом начале. ты сказал, что для тебя количество файлов важнее логичности и структурированности. Вот и получил, что хотел.

M
skyboy
Вследствие перехода беседы в русло взаимных упреков(справедливых, несправедливых) тема закрыта.

PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Закрытая темаСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




[ Время генерации скрипта: 0.1535 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.