Гуру, Ваше мнение... Разделение логики и дизайна

OkyHb

Guest
Гуру, Ваше мнение... Разделение логики и дизайна

Уважаемые гуру, вот наклепал что-то с просонья:

PHP:
class page
{
  var $file="";
  var $result;
  
  function page()
  {
    $this->file = "/tmpl/page.html";
  }
 
  function show_by_date($date)
  {
    $this->result=@mysql_query("select * from table");
  }

  function show_grid()
  {
    $template = tmpl_open($this->file);
    while($row=mysql_fetch_array($this->result))
    {
      tmpl_set($template, "ID", "$row['id'];
      // и так далее
    }
    print tmpl_parse($template);
  }

}
собственно сам темплейт...

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

Как на Ваш взгляд такое решение... или мне лечиться пойти...
 

Фанат

oncle terrible
Команда форума
А кто-то - не посоветует.
Чужой будет понятен только если свой попробовал сделать.

Окунь, в общем, как-то я особого смысла в указанных функциях не вижу, если честно.

вот в этом, например
var $file="";
function page()
{
$this->file = "/tmpl/page.html";
}

или в этом
function show_by_date($date)
{
$this->result=@mysql_query("select * from table");
}
- какое-то разительное несоответствие названия функции содержанию. Не вижу я в ней ни show ни by date
 

OkyHb

Guest
Вобщем обьяснил я плохо по-моему.

Решил сделать что-то nипа элемента управления (жалкое подобие ascx) :)

Приведенный выше класс - это собственно логика шаблона, для показа новостей например. Отсюда и один из методов - show_by_date() - селект записи за указанную дату. Можно еще много чего добавить, например по show_by_id или show_by_keyword, etc.

Использую готовый энджин - php-templates.

Ну а на странице, где нужно показать эти новости:
PHP:
$news = new Page();
$news->show_by_date(date("Y-m-d"));
$news->show_grid()
Ну а название функции конечно правильнее было бы сделать select_by_date :)
 

Фанат

oncle terrible
Команда форума
все равно, извини, но как раз логики я не вижу.

сильно подозреваю, что
tmpl_open - это синоним file, а tmpl_set - str_replace
с этим
var $file="";
function page()
{
$this->file = "/tmpl/page.html";
}
ты тоже ничего не объяснил.

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

OkyHb

Guest
Че-то я внатуре замудрил с этими классами... Сделаю все просто.
 
Сверху