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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс для создания templates, разработка 
:(
    Опции темы
Cepera
Дата 25.1.2003, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



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

нечто вроде классов, используемых на пхпББ форумах...

Есть ли желающие, если наберем хотя бы 3х, то за дело можно будет взяться smile.gif


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 26.1.2003, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



я - желающий


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 26.1.2003, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



ок, завтра кое-что уже тогда положу... саму мыслю smile.gif


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Kefir
Дата 26.1.2003, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

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



Я бы тоже не отказался поучавствовать. Только сразу говорю опыту у меня о-о-о-очень мало... confused.gif
PM MAIL WWW Skype   Вверх
Wowa
Дата 26.1.2003, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



Я тоже участвую smile.gif Правда, мой ПХП еще не особо хороший smile.gif
PM WWW   Вверх
Cepera
Дата 27.1.2003, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Код

// Наименование класса
class Templates {

// Внутреннее имя класса
var $classname = 'Templates';

// Переменная для хранения загружаемого темплейта
var $TemplatesData = array();

// Основная диреткория темплейтов
var $maindir = '.';
// Установим в ту же диреторию, где лежит и сам файл с классом.

// Конструктор класса
function Templates($maindir = './')
{ $this->SetMaindir($maindir); }

// Деструктор класса
function TemplatesDestroy()
{ $this->TemplatesData = array(); }

// Установка начальной, основной директории темплейта
function SetMaindir($dir) {
 if (!is_dir($dir)) return false;
 $this->maindir = $dir;
 return true;
}
}


Таким образом мы создали сам класс и заложили внутрь инициализирующие параметры...
Следующим шагом надо создать функцию парсер (для самого темплейта)
Есть идеи (как ввести необходимые параметры в обычный хмтль)?


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 27.1.2003, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



В принципе, все уже есть для инфы... для этого ввели массив $TemplatesData, подгружать в него все можем... а как насчет вывода?


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 27.1.2003, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



разметка html шаблона - мои предложения:
1) html комментарии (<!-- -->),
если будет какая-то ошибка (т.е. не будет подставленно нужное значение), то для пользователя это останется незаметным (скорее всего).
Код
<html>
<head>
<title><!--@title--></title>
<!--@metas-->
</head>
<body bgcolor="<!--@background-->">
итд...

2) имена переменных, которые надо заменить на их значения, предшествуемые какими-то спец.символами
Код
<html>
<head>
<title>!@title@!</title>
!@metas@!
</head>
<body bgcolor="!@background@!">
итд...



--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
MuToGeN
Дата 27.1.2003, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



по скорости будет одинаково (если замену делать через substr_replace)


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 27.1.2003, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



все через собачек вводить?.. хм...
я думал все что начинается на бакс ($) кроме последовательностей \$, чтобы не возникало проблем с обдумыванием... чтобы синтаксис как стандартный был...


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 27.1.2003, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



с html комментариями тоже идея не очень была, SSI навеяло... если все имена переменных расставить нормально, то в крайнем случае они будут заменены пустой строкой, а по тем переменным, которые не будут заменены на значения, искать ошибки.

с баксом привычнее, полностью согласен.

еще надо что-то сообразить для циклов (к примеру, вывод постингов в этом форуме - когда пишешь шаблон, неизвестно ведь, сколько их будет)


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
MuToGeN
Дата 27.1.2003, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



что-то типа
Код

<tr><td colspan='2'>$subj, $subjPostDate</td></tr>
<!--loop name=postingsOutput begin-->
<tr>
<td>$author<br><img src='$avatar'></td>
<td>$date<br>$text</td>
</tr>
<!--loop name=postingsOutput end-->
<tr><td colspan='2'>Quick reply:</td></tr>
...
...



--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 27.1.2003, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Цитата
еще надо что-то сообразить для циклов (к примеру, вывод постингов в этом форуме - когда пишешь шаблон, неизвестно ведь, сколько их будет)

что-то не понял идею, ну-ка объясни?


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 27.1.2003, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



Цитата
что-то не понял идею, ну-ка объясни?
простейший пример - гостевая книга. если писать для нее шаблон, то надо точно знать, сколько будет записей:
Код

$author[0], $date[0]:<br>$text[0]<hr>
$author[1], $date[1]:<br>$text[1]<hr>
$author[2], $date[2]:<br>$text[2]<hr>
$author[3], $date[3]:<br>$text[3]<hr>
$author[4], $date[4]:<br>$text[4]<hr>
кстати, массивы тоже надо будет учесть...
в этом варианте будут 5 записей. будет меньше - будут отображены пустые записи, больше - будут отображены первые 5...
Код

<!--loop name=gbRecords start-->
$author, $date:<br>$text<hr>
<!--loop name=gbRecords end-->

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


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
MuToGeN
Дата 27.1.2003, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



другая аналогия, с той же гостевой книгой:
Код
$r=mysql_query("SELECT * FROM guestbook;");
$row=mysql_fetch_array($r);
echo "$row[author], $row[date]:<br>$row[text]<hr>\n";
$row=mysql_fetch_array($r);
echo "$row[author], $row[date]:<br>$row[text]<hr>\n";
$row=mysql_fetch_array($r);
echo "$row[author], $row[date]:<br>$row[text]<hr>\n";
$row=mysql_fetch_array($r);
echo "$row[author], $row[date]:<br>$row[text]<hr>\n";
$row=mysql_fetch_array($r);
echo "$row[author], $row[date]:<br>$row[text]<hr>\n";
и второй вариант:
Код
$r=mysql_query("SELECT * FROM guestbook;");
while($row=mysql_fetch_array($r))
 echo "$row[author], $row[date]:<br>$row[text]<hr>\n";
думаю, комментарии не требуются


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 27.1.2003, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



хм... так не продумал... мда зерно есть... но вот реализация ввода массива не совсем ясна


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 27.1.2003, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



допустим, для всех данных, выводимых в цикле - один массив, и хранится это в таком виде:
Код
$loop["loopName"]["varName"][0]="aaa";
$loop["loopName"]["varName"][1]="sss";
$loop["loopName"]["varName"][2]="ddd";
$loop["loopName"]["varName"][3]="fff";
если что, вывод для циклов я без проблем сделаю


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
MuToGeN
Дата 27.1.2003, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



еще такая идея... может, никому не нужный наворот, а может и пригодится: сбацать что-то для вывода данных в иерархическом виде (если и делать это, то делать только при помощи XML)


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
MuToGeN
Дата 27.1.2003, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



хотя лучше сделать
Цитата
$loop["loopName"][0]["varName"]="aaa";
$loop["loopName"][1]["varName"]="sss";
$loop["loopName"][2]["varName"]="ddd";
$loop["loopName"][3]["varName"]="fff";
тогда можно будет писать в этот массив непосредственно результаты mysql_fetch_array()


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 27.1.2003, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



MuToGeN
Цитата
бацать что-то для вывода данных в иерархическом виде

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


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 27.1.2003, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



да и насчет разворота вывода массива, опять же это можно заранее делать в самом скрипте, если возникает необходимость


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 27.1.2003, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



тогда с чего предлагаешь начать? в принципе все остальное там можно сделать максимум за час (по крайней мере в том виде, в каком я себе представляю задачу)

но вот без циклов там уж точно никак не обойтись (если писать универсальную вещь, а не для конкретной задачи, где оно не требуется)


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 27.1.2003, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



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

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


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
votason
  Дата 28.1.2003, 05:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ребята а почему бы не начать с обсуждения всех плохих и хороших сторон подобных разработок ? Ведь подобные класс уже давно существуют и народ их пользует тоже довольно давно. Зачем изобретать колесо если можно и нужно взять уроки предков за основу и уже делать что то более улутшенное?
  Вверх
MuToGeN
Дата 28.1.2003, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



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


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 28.1.2003, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



votason , MuToGeN прав, мы хотим сделать нечто универсальное... и идея (принадлежащая MuToGeNу) о вводе массивов -- я нигде не видел подобного


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 28.1.2003, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



поговорили немного... и вот что у меня родилось...
Цитата
таг <INCLUDE> для файла темплейта...
Позволит устанавливать неоюходимые хидеры/футеры прямо внутри темплейта...

Пример использования:
Код
<body>
<INCLUDE FILENAME="templates/header.html">
text text text text text
<INCLUDE FILENAME="templates/footer.html">
</body>




--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 28.1.2003, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Цитата
таг <LOOP>, что позволит вставлять циклы внутрь темплейта

Пример использования:
Код
text text text text text
<LOOP NAME="loop_1">
<Код для повторения 1>
</LOOP NAME="loop_1">
text text text text text
<LOOP NAME="loop_2">
<Код для повторения 2>
</LOOP NAME="loop_2">
text text text text text




--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 28.1.2003, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



и, наконец, имхо самое важное
Цитата
таг <IF>
Думаю, обяснять особо и не надо... позволит отображать или игнорировать какие-то элементы темплейта
Код
text text text text text
<IF NAME="if_1">
Отображается текст блока "if_1"
</IF NAME="if_1">
text text text text text
<IF NAME="if_2">
Отображается текст блока "if_2"
</IF NAME="if_2">
text text text text text




--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 28.1.2003, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



таким образом у пользователя не будет заморочек с тагами в принципе... smile.gif


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 29.1.2003, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



да, так удобнее и привычнее, особенно с закрытием тэга <LOOP>


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Wowa
Дата 29.1.2003, 04:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
Group Icon


Профиль
Группа: Админ
Сообщений: 15017
Регистрация: 14.9.2000
Где: Винград

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



А как сделать, чтобы отображался этот код ?

<IF NAME="if_1">
Отображается текст блока "if_1"
</IF NAME="if_1">

Я так понимаю, сейчас мы придумываем что напихать в шаблон, а потом будем парсить?
PM WWW   Вверх
Cepera
Дата 29.1.2003, 04:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



имхо тоже smile.gif


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 04:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



долго думал... и понял, что с одни идентификатором переменную ввести не получится... ты был прав, надо вводить какие-то ограничители... хм... можно и @, как ты предлагал... а можно и использовать стандартный вариант -- { & }... imho так проще опять же.... опять же , если захочешь вывести емаил - проблем не будет


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 04:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Цитата
Я так понимаю, сейчас мы придумываем что напихать в шаблон, а потом будем парсить?

естественно, а какой смысл браться за проект не зная, что там надо , а что нет?


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 04:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Цитата
А как сделать, чтобы отображался этот код ?

<IF NAME="if_1">
Отображается текст блока "if_1"
</IF NAME="if_1">



хм... что ж... попробую вопроизвести сразу:
Код

$start = strpos(strtolower($template_file), '<if name="'.strtolower($var_name).'">') + strlen('<if name="'.strtolower($var_name).'">');
$end = strpos(strtolower($template_file), '</if name="'.strtolower($var_name).'">');



ну, а между ними уже можно и вставлять smile.gif


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 29.1.2003, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



Цитата
с одни идентификатором переменную ввести не получится...
да, @ - применяется для емаилов, $ - применяется как знак грина smile.gif... в принципе для реплейса пофиг, что это будет, а для того кто будет писать шаблоны, это может оказаться очень существенно.

насчет тэга <INCLUDE> - может лучше сделать не <INCLUDE FILENAME=...>, а <INCLUDE SRC=...>, всеж привычнее...

мысль насчет "архитектуры" (если это слово вообще применимо в данном случае):
1) нужен класс, который будет парсить кусок темплейта без <if> и <loop>, только подставляя переменные, которые будет брать либо с глобального уровня, либо из своего заранее созданного массива с именами и значениями переменных (так же пока никаких загрузок темплейтов из фаилов, просто строка - кусок темплейта, которая задается вне этого класса)
2) от него создать класс-потомок, который будет загружать весь темплейт из фаила, выдавать функциям первого класса по частям в зависимости от <if> и <loop>, если не loop, то все переменные берутся с глобального уровня, если loop, то парсить одну и ту же строку несколько раз, только давать разные значения из массива.

хотя... если будет <loop> внутри <loop>, то намечается какой-то запутанный рекурсивный алгоритм


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 29.1.2003, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Цитата
насчет тэга <INCLUDE> - может лучше сделать не <INCLUDE FILENAME=...>, а <INCLUDE SRC=...>, всеж привычнее...

не вопрос, согласен


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



уф... а вот насчет класса с классом потомком, имхо какая-то ненужная и долгая возня...

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


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 29.1.2003, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



согласен. тогда все это в одном классе


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
MuToGeN
Дата 29.1.2003, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



насчет рекурсивного вызова...
такая ситуация:
Код
<if name="if1">
 <loop name="loop1">
   <if name="if2">
   </if anme="if2">
   <if name="if3">
   </if name="if3">
 </loop name="loop1">
 <if name="if4">
 </if name="if4">
</if name="if1">
выресовывается иерархическая структура. тоже надо учесть....
у меня есть кой-какие мысли по этому поводу, только они еще окончательно не сформировались. как обдумаю, выложу свои соображения


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 29.1.2003, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



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


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



хотя может разницы-то и нет?


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



ведь все равно все обрабатывается построчно


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 29.1.2003, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



действительно... а я уж начал голову ломать над этим


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 29.1.2003, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Цитата
действительно... а я уж начал голову ломать над этим
wink.gif вот поэтому все хорошо обдумывать сообща smile.gif



--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Код
function include_file($file_id, $filename) {
if (file_exists($filename)) {
 $include = fread($fp = fopen($filename, 'r'), filesize($filename));
 fclose($fp);
}
else $include = '[Ошибка: Файл "'.$filename.'" не найден, либо не имеется прав на чтение.]';
$tag = substr($this->files[$file_id], strpos(strtolower($this->files[$file_id]), '<include src="'.$filename.'">'), strlen('<include src="'.$filename.'">'));
$this->files[$file_id] = str_replace($tag, $include, $this->files[$file_id]);
}

функция (внутриклассовая) для добавления доп.файлов smile.gif


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 29.1.2003, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



функция будет работать в распарсинном файле при наличии тага <include src="file.html">


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 30.1.2003, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Код
function parse($file_id) {
$file_ids = explode(',', $file_id);
for (reset($file_ids); $file_id = trim(current($file_ids)); next($file_ids)) {
 while (is_long($pos = strpos(strtolower($this->files[$file_id]), '<include src="'))) {
  $pos += 19;
  $endpos = strpos($this->files[$file_id], '">', $pos);
  $filename = substr($this->files[$file_id], $pos, $endpos-$pos);
  $this->include_file($file_id, $filename);
 }
 if (isset($this->var_names[$file_id]) AND count($this->var_names[$file_id]) > 0) {
  for ($i = 0; $i<count($this->var_names[$file_id]); $i++) {
   $temp_var = $this->var_names[$file_id][$i];
   if (is_long(strpos($this->files[$file_id], $this->start.$temp_var.$this->end))) {
    global $$temp_var;
    $this->files[$file_id] = str_replace($this->start.$temp_var.$this->end, $$temp_var, $this->files[$file_id]);
   }
   elseif (is_long(strpos($this->files[$file_id], $this->start.$temp_var.'()'.$this->end))) {
    global $$temp_var;
    $arguments = array();
    for ($i = 0; $i<count($$temp_var); $i++) $arguments[] = ${$temp_var}[$i];
    if (count($arguments)>0) $arguments = '"'.implode('", "', $arguments).'"';
    else $arguments = '';
    eval('$output = '.$temp_var.'('.$arguments.');');
    $this->files[$file_id] = str_replace($this->start.$temp_var.'()'.$this->end, $output, $this->files[$file_id]);
   }
  }
 }
}
}


собственно сама функция распарсивования хтмля, с учетом тага инклуд


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Sardar
  Дата 31.1.2003, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



А зачем нужна вся эта беда с шаблонами confused.gif ?
Разборка шаблона будет занимать время и к тому же может глючить. Гораздо проще вставлять чистый php код, благо он это позволяет.
Мне еще далеко до высоких материй...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Cepera
Дата 1.2.2003, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



а ты представь структуру из 10, 20, 100 тысяч страниц...


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 2.2.2003, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



следующая часть кода
функция обнаружения и парсинга ИФа
Код
function parse_if($file_id, $array_name) {
$var_names = explode(',', $array_name);
for ($i = 0; $i<count($var_names); $i++){
 $if_code = '';
 $start_pos = strpos(strtolower($this->files[$file_id]), '<if name="'.strtolower($var_names[$i]).'">') + strlen('<if name="'.strtolower($var_names[$i]).'">');
 $end_pos = strpos(strtolower($this->files[$file_id]), '</if name="'.strtolower($var_names[$i]).'">');
 $if_code = substr($this->files[$file_id], $start_pos, $end_pos-$start_pos);
 $start_tag = substr($this->files[$file_id], strpos(strtolower($this->files[$file_id]), '<if name="'.strtolower($var_names[$i]).'">'),strlen('<if name="'.strtolower($var_names[$i]).'">'));
 $end_tag = substr($this->files[$file_id], strpos(strtolower($this->files[$file_id]), '</if name="'.strtolower($var_names[$i]).'">'),strlen('</if name="'.strtolower($var_names[$i]).'">'));
 $new_code = '';
 if ($if_code != '') {
  global ${$var_names[$i]};
  if (@${$var_names[$i]}) $new_code = $if_code;
  $this->files[$file_id] = str_replace($start_tag.$if_code.$end_tag, $new_code, $this->files[$file_id]);
 }
}
}



--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 2.2.2003, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



Пока наибольшие проблемы с циклом, идеи есть?


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 3.2.2003, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



что-то приуныли, уважаемые...


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 3.2.2003, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



вот вам еще добавка smile.gif smile.gif


функция возвращения полученного файла
Код
function return_file($file_id){
$ret = '';
if (is_long(strpos($file_id, ',')) == TRUE) {
 $file_id = explode(',', $file_id);
 for (reset($file_id); $current = current($file_id); next($file_id)) $ret .= $this->files[trim($current)];
}
else $ret .= $this->files[$file_id];
return $ret;
}



функция парсинга и немедленной распечатки полученного файла
Код
function pprint($file_id, $replacements = ''){
$this->register($file_id, $replacements);
$this->parse($file_id);
$this->print_file($file_id);
}



--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 3.2.2003, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



и еще...


функция парсинга и немендленного возвращения полученного контента
Код
function pget($file_id, $replacements = ''){
$this->register($file_id, $replacements);
$this->parse($file_id);
return $this->return_file($file_id);
}



--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 3.2.2003, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



больше нужных функций в голову пока не идет...
если есть у кого-либо какие-либо соображения будет очень приятно выслушать


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 3.2.2003, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



функция загрузки, парсинга и немедленноговозвращения полученного результата
Код
function pget_file($filename, $replacements = '') {
for ($file_id=1; isset($this->files[$file_id]); $file_id++);
$this->load_file($file_id, $filename);
return $this->pget($file_id, $replacements);
}



функция загрузки темплейта... с другой идеей
Код
function load_file($file_id, $filename) {
$this->files[$file_id] = fread($fp = fopen($filename, 'r'), filesize($filename));
fclose($fp);
}



--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Cepera
Дата 3.2.2003, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



и вот проблема еще в голову пришла, надо же регистрировать вариаблы...


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
MuToGeN
Дата 4.2.2003, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



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


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Cepera
Дата 4.2.2003, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


PHPexp
****


Профиль
Группа: Экс. модератор
Сообщений: 2146
Регистрация: 25.3.2002
Где: Russia, Samara

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



ждем-с ;)


--------------------
I know it is heavy for reading, but I know you will read it anyway...
PM MAIL WWW ICQ   Вверх
Mark.dll
Дата 3.4.2003, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 28.2.2003
Где: Эстония, Нарва

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



--------------------
"I wish I could change the world..."
PM MAIL WWW ICQ   Вверх
Master
Дата 19.5.2003, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1530
Регистрация: 13.5.2003
Где: Mother Russia

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



бррр. ничего не понимаю, как ушат ледяной воды.
Что вы делаете в общих чертах можно?
Я тоже подумаю.

И еще. Если вам не сложно документируйте код пожалуйста.


--------------------
Вавилон, Вавилон
Что ты построил, что разрушил?
Вавилон, Вавилон
Плавятся души дьявольским огнем.
PM WWW ICQ   Вверх
Sardar
Дата 20.5.2003, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

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



Народ, на дняx написал парсер обрабатывающий такие теги:
Код

<tpl: !function(param=param,param2=%link_to_var%, param3="strings and\n special letters")|modiffer|modiffer(with='param') param="to parser"#>
<tpl: var|upper#>
[</tpl: function#>

Т.е. существуют функции и переменные. Фунцкции могут быть с нормальным или парным тегом. Все функции могут быть модификаторами. Модификатор это по сути функция с парным тегом. Обработчику передается всжя инфа как была запущенна функция.
Обработчик это плугин с интерфейсом:
Код

array tagOpen($from_templ); /*Открылся тег, вызываетя как только мы нашли обработчика. $ret[0]= 1- не парный, -1 - парный.
bool tagExec(&$parser,&$from_templ,$context); //Полезная работа
void tagClose($from_templ); //Вызывается как только все модификаторы отработали и выxодим ис тега.
mixed findVar($name);
object findFunc($name);

Багов так много что просто пока не реально предоставить код. Если интересно могу выслать его на мыло.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
MuToGeN
Дата 24.7.2003, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


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

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



Из-за длительного отсутствия интереса публики к проэкту тема откреплена.


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
arial
Дата 24.7.2003, 13:05 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

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



Да и вообще, все пользуйте Smarty!


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
mr.DUDA
Дата 28.7.2003, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



to arial:

Точно ! Согласен !!!

Нафига писать самому то, что до тебя уже ОЧЕНЬ серьезно и качественно сделали.


--------------------
user posted image
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




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


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

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