Перейти к содержимому

Сервис обмена электронных валют

Партнерская программа Kredov

Шаблонизатор PHP

#41 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71
0

Отправлено 07 Ноябрь 2009 - 22:30

а зачем заголовки в дизайне передавать?
  • 0

#42 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 08 Ноябрь 2009 - 12:19

sc2r2bey,
всё зависит от вашего понимания как должен функционировать ваш скрипт. Я обычно максимум что передаю из <head>...</head>, так это только:
1) title(заголовок) страницы
2) имя основного css-файла, которое можно менять через конфиг, а вообще это приводит к одношаблонности.

А meta-теги я могу сформировать и изначально прям в шаблоне.
  • 0

#43 gaaarfild

gaaarfild
    Topic Starter
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 08 Ноябрь 2009 - 14:35

Заголовки-то вы как-раз передаете не в дизайне. Если вы имеете ввиду заголовки HTML - то их можете передавать в любое время в теге <head></head>, А если же вы передаете заголовки PHP, такие как header(), То их просто необходимо отправлять серверу до вывода информации. Тоесть интерпретатор PHP сначала обрабатывает заголовки, а потом выводит информацию. Если по логике скрипта вы захотите вывести заголовки после вывода на экран какой либо информации(любой, даже не помещенной в теги <?php ?>), тогда вам интерпретатор выдаст ошибку, потому что он уже не сможет отправлять заголовки.
  • 0

#44 Adva

Adva
  • Пользователь
  • 2 сообщений
  • Репутация: 0

Отправлено 08 Ноябрь 2009 - 14:53

$parse_left = array(
"skin" => SKIN,
"hello" => "Привет, мир!",
);
$left = parseTpl(DIR . "templates/" . SKIN . "/left.html", $parse_left);

$parse_index = array(
"skin" => SKIN,
"title" => "Заголовок",
"content" => "Контент",
"year" => $year,
"left_block" => $left
);
$html = parseTpl(DIR . "templates/" . SKIN . "/header.html", $parse_index);


это правильно? я подключаю к базовому файлу шаблонов шаблон левой колонки

я сейчас сохранил хтмл код одного своего сайта, он весит 481 КБ. Т.е. в итоге в переменной $html будет вот такой вот длинный текст, разве нет ограничения на длинну значения переменной?
  • 0

#45 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 08 Ноябрь 2009 - 21:28

Adva,

это правильно? я подключаю к базовому файлу шаблонов шаблон левой колонки

Это вы всё правильно говорите. Только тут не надо забывать что вы строго привязаны к последовательности включения. То есть вы сначала сформировали левую колонку, а затем передали её в базовый файл(header.html)

По поводу второго вопроса, ответ на странице http://www.php.net/m...ypes.string.php

Note: It is no problem for a string to become very large. PHP imposes no boundary on the size of a string; the only limit is the available memory of the computer on which PHP is running.

Где говорится, что PHP не накладывает на переменную ограничения, ограничением выступает лимит памяти компьютера.
P.s.: Честно для меня эти слова кажутся странными, так как памятью управляет ОС, она не выдаёт процессу интерпретатора столь больших возможностей. Это же безграничная свобода занимаемой памяти... Странно... В книгах читал обратное.
  • 0

#46 Adva

Adva
  • Пользователь
  • 2 сообщений
  • Репутация: 0

Отправлено 08 Ноябрь 2009 - 21:34

Только тут не надо забывать что вы строго привязаны к последовательности включения. То есть вы сначала сформировали левую колонку, а затем передали её в базовый файл(header.html)

я ошибся немного, там не header.html, а index.html
примерно такого содержания

<html>
<head>
<title><%title%></title>
</head>
<body>
<div id="box">
<div id="header">
шапка сайта
</div> <!-- /header -->

<div id="left_box">
<%left_block%>
</div> <!-- /left_box -->

<div id="center_box">
<%content%>
</div> <!-- /center_box -->

<div id="footer">
подвал сайта
</div> <!-- /footer -->
</div> <!-- /box -->
</body>
</html>


спасибо за ответ, теперь я кажедся разобрался :)
  • 0

#47 gaaarfild

gaaarfild
    Topic Starter
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 10 Ноябрь 2009 - 15:01

Кстати, ZiToss.
Еже один вопрос возник по данному шаблонизатору.
Если не отключать warnings, то показывает предупреждение

Warning: Invalid argument supplied for foreach() in ....

Как можно было бы решить данную проблему?
  • 0

#48 gaaarfild

gaaarfild
    Topic Starter
  • Пользователь
  • 596 сообщений
  • Репутация: 0

Отправлено 10 Ноябрь 2009 - 15:13

И еще вопрос. Как задать запрос по маске.
Например

if($i=="привет") { echo $i; }

Как сделать так, чтобы он выводил все варианты которые содержат привет?
Например:
привет123
приветпока
непривет
123привет123

  • 0

#49 Евгений

Евгений
  • Пользователь
  • 481 сообщений
  • Репутация: 0

Отправлено 10 Ноябрь 2009 - 17:21

Warning: Invalid argument supplied for foreach() in ....

Как можно было бы решить данную проблему?

переменная которая обрабатывается foreach должна быть массивом.
можешь поставить условие

if (count($blabla)>0) {
foreach()
}

но я сильно не разбирался, щас ZiTosS придет все расскажет)
  • 0

#50 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 11 Ноябрь 2009 - 12:09

gaaarfild,

Еже один вопрос возник по данному шаблонизатору.
Если не отключать warnings, то показывает предупреждение

Warning: Invalid argument supplied for foreach() in ....

Как можно было бы решить данную проблему?


Чтобы подобного не возникало, надо в функции шаблонизатора дописать проверку пришедшего массива, то что он не пуст, тогда его уже можно отдавать в foreach()

И еще вопрос. Как задать запрос по маске.
Например

if($i=="привет") { echo $i; }

Как сделать так, чтобы он выводил все варианты которые содержат привет?
Например:
привет123
приветпока
непривет
123привет123


Тут всё зависит от того, как ты хранишь варианты. Удобно было бы обработать массив. Написать функцию которая бы обращалась к каждому элементу массива и проверяла входит ли построка в строку, если да, то оставляем, нет убираем. Так формируется новый массив который мы потом можем обработать.

Функция проверки вхождения подстроки в строку strtr()
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru