![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| optik |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
собственно вопрос:
есть php и tpl-ка php генерирует переменные в цикле и поставляет их в шаблон в шаблоне они выводятся на экран допустим так:
var1 - это как бы счётчик от 1 до var2.(т.е. var2 - это верхняя граница цикла, реализованного в php) я хочу чтобы если var1<var2, то выводился бы этот код:
а если var1 станет = var2, т.е. цикл закончится, то писалось бы:
как в TPL-ке ввести это условие (типа if(var1<var2) {блаблабла} else {Это был последний абонент!} ? вставка php и JavaScript в tpl как я понял недопустима? |
||||||
|
|||||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
У тебя не совсем верное представление о "tpl-ках".
Это не какая-то однозначная технология. А всего лишь название файла. При том, что файл с таким расширением могут использовать сотни систем. Поэтому нельзя спросить, возможна ли вставка РНР в tpl - никто тебе не ответит, поскольку не знает, что конкретно имеется в виду. Можно предположить, что это файл шаблона для какой-либо системы шаблонизации на РНР. В этом случае нельзя сказать, что в шаблоне переменные выодятся на экран - шаблон не может ничего вывести. Выводит РНР скрипт, который читает шаблон и заменяет значения переменных. Теперь ближе к твоему вопросу. Тебе надо разобраться с системой, которая обрабатывает твои шаблоны. Если она позволяет обрабатывать блоки или логические конструкции, то воспользоваться её средствами для решения своей задачи. Если не позволяет, а только и может, что заменять переменные, то надо сменить её на другую. По поводу же вставки PHP и яваскрипта, то яваскрипт всегда может присутствовать в шаблоне, поскольку шаблон представляет из себя HTML код, а вставка яваскрипта в HTML - обычное дело. РНР же, скорее всего, вставлять нельзя, поскольку некому будет обрабатывать его инструкции. Другое дело, что сам шаблон может быть написан на РНР, и тогда можно будет пользоватьс его средствами для вывода нужной строчки. |
|||
|
||||
| zibox86 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 11.12.2007 Репутация: нет Всего: 1 |
Если я правельно понял, то можно сделать на if-х:
{if}{elseif}{else} |
|||
|
||||
| optik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
нет, так не получается.. {if}{elseif}{else} просто выводятся на экран... |
|||
|
||||
| zibox86 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 11.12.2007 Репутация: нет Всего: 1 |
Как это! А как ты пишешь!?
Приведи код! |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
zibox86, прости мне мое любопытство, но почему ты решил, что в его шаблонизаторе есть эта конструкция, и у неё именно такой синтаксис?
|
|||
|
||||
| zibox86 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 11.12.2007 Репутация: нет Всего: 1 |
Feldmarschall, Да я не решил я просто подазревою! Давай спросим!
optik, Что за шаблонизатор ты используешь? |
|||
|
||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Да я спрашивал уже. Не отвечает.
Не знает, наверное. |
|||
|
||||
| zibox86 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 11.12.2007 Репутация: нет Всего: 1 |
Feldmarschall, Я просто подозреваю что он не правельно написал условный блок!
|
|||
|
||||
| optik |
|
||||||||||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
да, я точно не разбираюсь в этой теме..
Smarty у меня точно не используется.. полагаю что используется самодельный шаблонизатор.. т.е. имеется файл template.php СМ В СЛЕД ПОСТЕ ну так вот и есть скажем php файл -обработчик где используются ф-ии из template,например:
а в TPL-ке :
Добавлено через 49 секунд template.php
Добавлено через 1 минуту и 32 секунды продолжение templata
Добавлено через 2 минуты и 34 секунды последняя часть темплейта
|
||||||||||
|
|||||||||||
| Feldmarschall |
|
|||
|
Новичок ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2641 Регистрация: 11.12.2007 Репутация: 22 Всего: 32 |
Маловато кода. Надо было сюда ещё исходный код РНР выложить.
|
|||
|
||||
| optik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
последняя часть темплейта
Добавлено через 16 секунд /****************************************************************************** * This function returns the finished version of the value of the variable named * by $varname. That is, the policy regarding unresolved variable names will be * applied to the variable $varname and the result returned. * * Returns: a finished string derived from the variable $varname. * * usage: get(string $varname) * * @param $varname a string containing the name of the variable to finish * @access public * @return void * @see set_unknowns * @see finish */ function get($varname) { return $this->finish($this->get_var($varname)); } /****************************************************************************** * When called with a relative pathname, this function will return the pathname * with $this->root prepended. Absolute pathnames are returned unchanged. * * Returns: a string containing an absolute pathname. * * usage: filename(string $filename) * * @param $filename a string containing a filename * @access private * @return string * @see set_root */ function filename($filename) { if ($this->debug & 4) { echo "<p><b>filename:</b> filename = $filename</p>\n"; } if (substr($filename, 0, 1) != "/") { $filename = $this->root."/".$filename; } if (!file_exists($filename)) { $this->halt("filename: file $filename does not exist."); } return $filename; } /****************************************************************************** * This function will construct a regexp for a given variable name with any * special chars quoted. * * Returns: a string containing an escaped variable name. * * usage: varname(string $varname) * * @param $varname a string containing a variable name * @access private * @return string */ function varname($varname) { return preg_quote("{".$varname."}"); } /****************************************************************************** * If a variable's value is undefined and the variable has a filename stored in * $this->file[$varname] then the backing file will be loaded and the file's * contents will be assigned as the variable's value. * * Note that the behaviour of this function changed slightly after the 7.2d * release. Where previously a variable was reloaded from file if the value * was empty, now this is not done. This allows a variable to be loaded then * set to "", and also prevents attempts to load empty variables. Files are * now only loaded if $this->varvals[$varname] is unset. * * Returns: true on success, false on error. * * usage: loadfile(string $varname) * * @param $varname a string containing the name of a variable to load * @access private * @return boolean * @see set_file */ function loadfile($varname) { if ($this->debug & 4) { echo "<p><b>loadfile:</b> varname = $varname</p>\n"; } if (!isset($this->file[$varname])) { // $varname does not reference a file so return if ($this->debug & 4) { echo "<p><b>loadfile:</b> varname $varname does not reference a file</p>\n"; } return true; } if (isset($this->varvals[$varname])) { // will only be unset if varname was created with set_file and has never been loaded // $varname has already been loaded so return if ($this->debug & 4) { echo "<p><b>loadfile:</b> varname $varname is already loaded</p>\n"; } return true; } $filename = $this->file[$varname]; /* use @file here to avoid leaking filesystem information if there is an error */ $str = implode("", @file($filename)); if (empty($str)) { $this->halt("loadfile: While loading $varname, $filename does not exist or is empty."); return false; } if ($this->debug & 4) { printf("<b>loadfile:</b> loaded $filename into $varname<br>\n"); } $this->set_var($varname, $str); return true; } /****************************************************************************** * This function is called whenever an error occurs and will handle the error * according to the policy defined in $this->halt_on_error. Additionally the * error message will be saved in $this->last_error. * * Returns: always returns false. * * usage: halt(string $msg) * * @param $msg a string containing an error message * @access private * @return void * @see $halt_on_error */ function halt($msg) { $this->last_error = $msg; if ($this->halt_on_error != "no") { $this->haltmsg($msg); } if ($this->halt_on_error == "yes") { die("<b>Halted.</b>"); } return false; } /****************************************************************************** * This function prints an error message. * It can be overridden by your subclass of Template. It will be called with an * error message to display. * * usage: haltmsg(string $msg) * * @param $msg a string containing the error message to display * @access public * @return void * @see halt */ function haltmsg($msg) { printf("<b>Template Error:</b> %s<br>\n", $msg); } } ?> Добавлено через 53 секунды ВОТ! теперь картина более менее ясна, да? |
|||
|
||||
| zibox86 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 164 Регистрация: 11.12.2007 Репутация: нет Всего: 1 |
Короче пробуй так:
Если не выйдет, то извени! |
|||
|
||||
| optik |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 13.11.2006 Репутация: нет Всего: нет |
нет-с, так не выходит
все эти if и else просто на вывод идут и на экран печатаются( |
|||
|
||||
| Serkys |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1061 Регистрация: 19.4.2004 Репутация: 4 Всего: 22 |
Используй Smarty, и тебе будет счастье
|
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |