Обмен значениями переменных из SMARTY в PHP и наоборот

BAR23

Новичок
Обмен значениями переменных из SMARTY в PHP и наоборот

Привет всем. Осваиваю SMARTY. Я ещё с шаблонами не работал и не могу найти нормальную статтю работы PHP скрипта с шаблонами, и правильное их написания. Как говорит http://www.smarty.net/manual/ru/ использование конструкции {php}{/php} в шаблонах небажаное. Но как без них, я ещё не понял!!!

Вопрос состоит в наступному:
PHP:
{php}
		 $IP=$_SERVER['REMOTE_ADDR']; # IP адрес клієнта;
		 $result = mysql_query("SELECT * FROM status WHERE Ip='$IP'");
 if (mysql_num_rows($result)==1)
		 { #Звіряєм проміжок часу з константою TIME.
  		   $Row_status=mysql_fetch_array($result);
		   $DATA_today=date("Y:m:d");
		   $GregIDtoday=GregorianToJD(substr($DATA_today,5,2), substr($DATA_today,8,2), substr($DATA_today,0,4));
		   $GregID=GregorianToJD(substr($Row_status[1],5,2), substr($Row_status[1],8,2), substr($Row_status[1],0,4));
		   if  ($GregIDtoday!=$GregID) 
		      {  #удаляєм статус знаходження на сайті
			 	 $result = mysql_query("DELETE FROM status WHERE Ip='$IP' LIMIT 1");
				 if (mysql_error()!="") 
	  	       	   {echo "<div class='error'>Запис не видалено. Зверніться до адміністратора!</div>";
					}else {UNSET($account); }; #delete var $account
			  }else
			   {$Hours_today=date("H:i:s");
		   		$Hours_today=substr($Hours_today,0,2)*3600+substr($Hours_today,3,2)*60+substr($Hours_today,6,2);
		   		$Hours_ID=substr($Row_status[1],11,2)*3600+substr($Row_status[1],14,2)*60+substr($Row_status[1],17,2);
		   		if (($Hours_ID+$Time)>=$Hours_today)
		      	  {
				    $DATA=date("Y:m:d:H:i:s");
			    	$result=mysql_query("UPDATE status SET DatTime='$DATA' WHERE Ip='$IP' LIMIT 1");
     	        	if (mysql_error()!="") {echo "<div class='error'>Запис не відредаговано! Зверніться до адміністратора!</div>";}
					$account="account";
			  	  } else 
				    {
					  $result=mysql_query("DELETE FROM status WHERE Ip='$IP' LIMIT 1");
	     	          if (mysql_error()!="") {echo "<div class='error'>Запис не видалено! Зверніться до адміністратора!</div>";}
					}
			   }
		  }else 
		    if (mysql_num_rows($result)>0) 
			  { echo "<div class='error'>В Базі даних статусу помилка зверніться до адміністратора!!!</div>"; }  
{/php}
Написать ето!!! в правильной форме с помощю конструкций SMARTY.
Етот код находиться в шаблоне!!!
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
BAR23
Только ненадо орать.
То что ты написал это полная чушь в которой смарти и не пахнет
Перечитай мануал несколько раз на свежую голову.
Там все написано.
Просто и понятно.

-~{}~ 10.03.08 17:37:

даю ссылку.
http://www.smarty.net/manual/ru/installing.smarty.basic.php

-~{}~ 10.03.08 17:41:

переменных из SMARTY в PHP и наоборот
Вот с этого момента, пожалуйста, поподробнее
 

Фанат

oncle terrible
Команда форума
BAR23
тебе не надо ничего передавать из смарти в РНР. Вот и все.
 

BAR23

Новичок
Например, Для начала переменные. Ето в шаблоне все:

{assign var="canal1" value="12"}
{assign var="canal2" value="15"}

PHP:
{php}
   $result={$canal1}+{$canal2}; #ето неправильное написание. 
{/php}
Как в пхп вывести в броузер результат операции с переменными определённых в SMATY
 

Фанат

oncle terrible
Команда форума
Дружочек.
Ответь, пожалуйста, на один вопрос.
Зачем тебе Смарти?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
BAR23
Например для начала перечитай мануал.
ВДУМЧИВО.
Поскольку для такой операции как сложение {php} теги не нужны.
2. аблон предназначен __для вывода__ данных, а не для хитромудрых операций над этими данными.
3. Данные подготавливай в своем пхп-скрипте. А в темплейте выводи _готовые_ данные.
 

BAR23

Новичок
Поставилась задача написать сайт на PHP и использованием SMARTY. Прочитал мануал, начал писать с простого. Теперь не могу перекидывать переменные определённые через
{assign var="canal2" value="15"}
в переменные которые использую в скрипте.

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

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
BAR23
Скажи, пожалуйста, ты по моей ссылке ходил?
Вопросы возникли?

-~{}~ 10.03.08 18:17:

Пример 2-9
 

Фанат

oncle terrible
Команда форума
BAR23
Что значит "поставилась"?!
Взяла и сам поставилась? Ну так смахни, чтобы не мешала работать.
Если ты не понимаешь, что это такое и зачем надо, то не надо тратить свое и чужое время.
 

BAR23

Новичок
Mr_Max
Хорошо обясняєш
Поскольку для такой операции как сложение {php} теги не нужны.
2. аблон предназначен __для вывода__ данных, а не для хитромудрых операций над этими данными.
3. Данные подготавливай в своем пхп-скрипте. А в темплейте выводи _готовые_ данные.
Ходил, смотрел. я такое уже делал. С ети понятно. А вот далее. Я наче понял но остались некторые вопросы
Если я подготавливаю даные в скрипте ПХП, допустим запрос к базе и обработку. То мне надо их, даные(переменные на ПХП), вивести в броузер через шаблон.
Допустим простой шаблон:

{if $smarty.const.CONF_SHOP_BILD eq 1 and $adminbild ne 1}
<table class="adnh">
<tr>
<td class="profi arc mid vcent"><img src="design/user/{$smarty.const.TEMPLATE_GO}/images/bild.gif"
alt=""><br><br>{$smarty.const.STRING_BILD}<br>{$smarty.const.STRING_BILD_DES}</td>
</tr>
</table>
{/if}
Тут используется константа $smarty.const.CONF_SHOP_BILD. Если у меня переменная PHP $CONF_SHOP_BILD. Как мне её использовать в смарти.

-~{}~ 10.03.08 19:35:

Автор оригинала: *****
Если ты не понимаешь, что это такое и зачем надо, то не надо тратить свое и чужое время.
Я хочу, чтоб мне помогли понять, поетому я пишу на етом форуме. Если ещё комуто нужна будет помощь, с аналогичным вопросом, то он увидет етот пост и поймёт, может научится чемуто.
Я время ни у кого не отбираю! Я прошу помочь тех людей кто хочет помочь.
 

Фанат

oncle terrible
Команда форума
Mr_Max, поверь мне, толку не выйдет.
Впрочем, 99% программистов на пзп такие же - не понимают, что и зачем они делают.
Так что пусть. "применяет смарти". это же круто. не так круто, как ООП, но тоже можно собой погордиться.

-~{}~ 10.03.08 19:39:

BAR23
Я хочу, чтоб мне помогли понять,
Надо делать наоборот. Не как ты: "у меня есть такая цаца! объясните, зачем она мне нужна!".
А "я хочу, чтобы мои скрипты умели то-то и то-то. Подскажите средство, которое это делает"
 

TutanXamoN

Новичок
BAR23
Smarty есть шаблонизатор.
Шаблон ВЫВОДИТ значения переменных и сожержит МИНИМУМ логики и кода PHP.
PHP:
$smarty->assign('variable','13.53');
$smarty->display('index.tpl'); //берёт значение переменной и выводит.
//получать значение необходимо не в index.tpl, а в скрипте который его подключает
?>
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Если я подготавливаю даные в скрипте ПХП, допустим запрос к базе и обработку
Ты подготавливаешь не запрос на выборку, а _данные_, которые ты получишь

index.php
..............
..............
..............
$smarty->assign('mainData', $arrData);
$smarty->display('index.tpl');
где $arrData = массив полученых из БД срок твоей таблицы

index.tpl
{foreach item=_d from=$mainData}
<h1> Заголовок: {$_d.title}</h1>
<h3> Анонс: {$_d.anons}</h1>
......
и т.д.
{/foreach}

-~{}~ 10.03.08 19:04:

Ф.анат теплится слабая надежда )
 

Фанат

oncle terrible
Команда форума
Mr_Max
ты все красиво рассказывашь. как работать со смарти.
не сказал только - зачем.

впрочем, ответ на этот вопрос знают единицы =)
да и то - не для других, а для себя.
 
Сверху