хотелось бы услышать критику или замечания по самопальной системе

texrdcom

Новичок
хотелось бы услышать критику или замечания по самопальной системе

Пишу систему для быстрой разрабтки сайтов,
с примением gettext. Плюс система построенная на ооп.
Для пробы напсал модуль для гостевой книги вот так выглядет шаблон который дает возможность вывести постранично сообщения с гостевой книги + ответы админа если есть:
PHP:
<?php
require('search_form_gustebok.php');
// Получаем объкты нужные
$gustebokM=GustebokM::modul();
$gustebokV=GustebokV::modul();
?>
<div align="center"><br>
  <a href="#newMessage"><?=_("Оставьте ваше сообщение:")?>
  </a><br>
</div>
<div align="center">
<br>
  <!-- Постраничные ссылки -->
<?php
$paginalMessage=$gustebokV->paginal_page();
echo $paginalMessage;
?>
  <br>
</div>
<table width="100%" height="0"  border="0" align="center" cellpadding="0" cellspacing="0">
<!-- Начало подстановки данных сообщений -->
<?php foreach ($gustebokM->message_array() as $k=>$v)
{ ?>
  <tr bgcolor="#DBE2E3">
    <td width="14%"><strong><?=_("Автор:");?></strong></td>
    <td width="86%" colspan="2">&nbsp;<?=$v['avtor'];?></td>
  </tr>
  <tr bgcolor="#DBE2E3">
    <td><strong><?=_("Дата:")?></strong></td>
    <td colspan="2">&nbsp;<?=$v['date_show'];?></td>
  </tr>
  <tr>
    <td colspan="3"><?=$v['message'];?></td>
  </tr>
  <tr>
    <td colspan="3"><div align="left"><!-- ответ админа полностью в другом шаблоне если ответа нет не чего не выводим --><?php require('answer_admin_gustebok.php');?></div></td>
  </tr>
  <tr>
    <td colspan="3"><hr align="center" width="100%" size="1"></td>
  </tr>
 <?php } ?> 
 <!-- Конец подстановки данных --> 
</table>
<div align="center">
<br>
<!-- Постраничние ссылки -->
<?php echo $paginalMessage;?>
  <br>
</div>
<div align="center"><strong><?=_("Новое сообщение:")?>
</strong></div>
<a name="newMessage"></a>
<!--Форма добавки нового сообщения -->
<?php
require('add_message_gustebok.php');
?>
Система автоматически подключает этот шаблон при переходе юзера по ссылке на гостую книгу и работа данно шаблонна подставляеться в главный шаблон сайта для примера
главный шаблон
PHP:
<html>
<!-- При переходе на гостевую здесь подставиться значения с шаблона выше -->
<?php echo $base['text']; ?>
</html>
Шаблонизатор - стороний не используеться используеться саморобная вещь - которая не заставляет изучать какойто язык еще кроме php :)
Вот и вопрос не будед ли дико для стронего пользователя использовать такую систему ? И вообще интересны замечания по подходу.
 

Юзер

Новичок
не будед ли дико для стронего пользователя использовать такую систему ?
смотря, что подразумевается под словами "сторонНего пользователя"?!

Ламера, например, в заблуждение введет и вот эта запись "<?php"
Верстальщик, знающий только HTML, заблудится в "<?php } ?>"
 

Alexandre

PHPПенсионер
код - одно сплошное замечание.
используй шаблонизацию, многие предпочитают смарти,
http://smarty.php.net/ но есть много других альтернатив.
 

texrdcom

Новичок
Alexandre
Ты считаеш теги смарти проще от php ? я так не считаю !
{
цикл
}
Точно также у смарти цикл есть цикл и ни куда не денешся.
Это и есть шаблонизация - ведь есть активнные шаблонны и пасивные !
Смарти это то же активные шаблоны да ?
с своим синтексом правильно
p/s
Приведенный код являеться шаюлоном!!!!!
в смарти мы передаем display('имя шаблона ', array)
точно также и у меня но данный шаблон на входе получет пустой масив и сам получет с модулей - классов нужные ему данные данные это не толкьо масивы а данные могут являться строкой которая содержит другой шаблон которые во время своей активации также обращаеться к разным модулям !
Опуская мелочи можно сказать что в любом шаблоне доступен обьект любого модуля! любой модули реализован через одночку, то есть если создает любой шалон обьект модуля то другие модули уже используют готовый обьект
Интрестно а пользователь который знает только html
поймет такой код:
PHP:
{foreach name=outer item=contact from=$contacts}
    <hr />
    {foreach key=key item=item from=$contact}
        {$key}: {$item}&lt;br&gt;
        {$key}: {$item}<br />
    {/foreach}
{/foreach}
 

kost

Новичок
texrdcom
> Интрестно а пользователь который знает только html поймет такой код

Будьте уверены: не поймет. Но! У пользователя, который знает только html есть возможность почитать доки про смарти на его родном языке, где все отлично обьяснено.
 

texrdcom

Новичок
kost
я НЕ говорю что смарти фигня нет!
Поверь про php можно прочитать тоже на любых языках :)
и ему не надо вникать полностью в php а прочитать что делает
<?php echo 'ВАся';?>
Но это все лирика, дизайнер делает дизайн а программер запихивает туда код как это будет сделанно не важно через смарти через теги php - особой разници не вижу!
Если верстальщик изучит доку по смарти - он не вольно будет читать про php посмотри в примерах смарти :) в доке.
 

kost

Новичок
Ну, вы безусловно правы. И в данном случае с php работать чисто теоретически точно так же просто как и с Smarty.

Аргументов вам противопоставлять не буду. Просто процитирую фразу одного моего знакомого.
Один мой знакомый
Мдааа... Чувство эстетики: оно либо есть, либо его нет.
 

texrdcom

Новичок
kost
Я считаюсь с мнением людей скажите как бы вам было удобно - как в идеале должен выглядеть шаблон гостевой сделать не проблема!
 

kost

Новичок
texrdcom
> как в идеале должен выглядеть шаблон гостевой

Понятия не имею. Если б знал уже давно написал бы. Но со смарти [ИМХО] было бы намного ближе к идеалу. И лично мне было бы гораздо легче читать этот код [и редактировать]. Вот.
 

crocodile2u

http://vbolshov.org.ru
texrdcom
Такое впечатление, что ты не очень-то знаком с системами шаблонизации. Если ты предпочитаешь использовать PHP как шаблонизатор, может, стоит посмотреть на Savant?

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

Плюс - классу GuestBookV или там GuestBookM не нужен метод, выводящий полосу постраничной прокрутки. Точно также, как не нужны методы, позволяющие, допустим, получить последние новости (ну, допустим, на странице гостевой есть небольшой уголок новостей).

Короче - попытка состряпать MVC, имхо, провалена.
 

texrdcom

Новичок
crocodile2u

не нужен метод, выводящий полосу постраничной прокрутки
Во первых он толька в виде во вторых а где он дожен быть ?
постраничные ссылки для перехода по сообщениям гостевой ?
в какой модуль ты бы его запихнул ?
В данной системе универсальный постраничный метод - отдельнный класс :)
С помощью его получаем как link bar так и масив для вывода сообщений относительно sql запросса - тебя смущает метод:
PHP:
$paginalMessage=$gustebokV->paginal_page();
Меня бы тоже смущал в таком виде но данный метод работает с выше упомянутым классаом а именно вызывает с его обьекта нужнные ему данные - это контейнер через который проще общаться с выше упомянутым классам.
Я понимаю что трудно судить по куску шаблона про систему,
прикинув все за и против я выложу полностью весь фреймворк на обсуждения но чтобы было более понятно опишу систему созданния модуля гостевой полностью - хотя все функции хорошо докуменированны в самом коде - если использовать редактор который потдерживает phpdocumentator то проблем вообще не должно возникать, да я понимаю система получилась не для домашних хозяек да я и не стримился ее такой сделать ибо что то очень унивирсальное обчно очень медленное :) да и не всегда выполняет то что заявленно!.
Не хочу критиковать но почитай на досуге в поплярных системах cms - комерчиских описания ну давайте для тренинга создадим модуль гостевой - обалдееш :)
И еще со смарти я знаком и данная система без всяких переделок может спокойно использовать шаблонны смарти :)
разници нет ни какой :)
 
Сверху