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

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> php код в smarty, передать выполненный код php в assign 
:(
    Опции темы
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   Вверх
Страницы: (3) Все 1 [2] 3 
Закрытая темаСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Libraries | Следующая тема »


 




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


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

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