Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - D1g174LM4n14c

Страницы: 1 ... 8 9 [10]
136
PHP / class Template. Зацените.
« : 18 Апреля 2003, 18:59:49 »
Но почему же?
То что я написал работает как надо. Относительно быстро.
Да и код получается довольно выразительный.

toplevel.tpl




{TL_TITLE}


{HEADER}

{LEFT}

{CONTENT}

{RIGHT}

{FOOTER}




script.php

<?php
require \'inc/class.template.php\';

$tpl = new Template;
$tpl->define(array(\'TOPLEVEL\' => \'toplevel\',
                   \'HEADER\' => \'header\',
                   \'LEFT\' => \'left\',
                   \'CONTENT\' => \'content\',
                   \'RIGHT\' => \'right\',
                   \'FOOTER\' => \'footer\'));

$tpl->assign(\'TL_TITLE\', \'Заголовок страницы\');

   $tpl->parse(\'MT_HEADER\', \'HEADER\');
   $tpl->parse(\'MT_LEFT\', \'LEFT\');
   $tpl->parse(\'MT_CONTENT\', \'CONTENT\');
   $tpl->parse(\'MT_RIGHT\', \'RIGHT\');
   $tpl->parse(\'MT_FOOTER\', \'FOOTER\');
$tpl->parse(\'TOPLEVEL\', \'TOPLEVEL\');

$tpl->output(\'TOPLEVEL\');
?>

137
PHP / Опять я с этими слешами...
« : 18 Апреля 2003, 18:00:19 »
я не понимаю, зачем вообще implode() использовать для двух строк?
весь вышеприведенный код можно было переписать намного проще:

// $list=$_SERVER[\'PHP_SELF\'];
// $host=$HTTP_SERVER_VARS[\'HTTP_HOST\'];
// $longname=array("$host","$list");
// $longfilename=implode(\'/\',$longname);
// echo $longfilename;

echo  $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'PHP_SELF\'];
ENJOY!

138
PHP / class Template. Зацените.
« : 18 Апреля 2003, 17:50:53 »
Тема шаблонов в PHP поднимается часто...
Каждый раз кто-то предлагает свои классы, половина из которых сразу обливаются грязью и забываются.
Все же я не посмотрел на это. Зря наверно :)

Читал тут про FastTemplate и решил написать свой класс, похожий на FT. Зацените пожалуйста: что нравиться, что не нравиться, что нужно поменять...

Скажу честно, весь нижеприведенный код я писал 10-15 минут максимум... Не реализовал динамические блоки как в ФастТемплейте, но это неважно... надо будет - сделаю...

В общем, вот сам код:

<?php
class Template
{
   var 
$path = \'templates\';
   
   var $tpls = array();
   var $vars = array();
   
   var $rl = \'{\'; // variable limiters
   var $ll = \'}\'; //
   
   var $ext = \'.tpl\';
   
   ////////////////////////////////////////////////////////////////////////////////
   
   function Template($path = 0)
   {
      $this->path = ($path === 0 ? $this->path : $path);
   }
   
   function define($tpl, $filename = 0)
   {
      if (is_array($tpl))
      {
         foreach ($tpl as $key => $val)
            $this->tpls[$key] = $val;
      }
      else $this->tpls[$tpl] = $filename;
   }
   
   function assign($var, $value = 0)
   {
      if (is_array($var))
      {
         foreach ($var as $key => $val)
            $this->vars[$key] = $val;
      }
      else $this->vars[$var] = $value;
   }
   
   function parse($var, $tpl)
   {
      $tpl = file_get_contents($this->path.\'/\'.$this->tpls[$tpl].$this->ext);
      
      foreach ($this->vars as $key => $val)
         $tpl = str_replace($this->rl.$key.$this->ll, $val, $tpl);
      
      $this->vars[$var] = $tpl;
   }
   
   function output($tpl)
   {
      echo $this->vars[$tpl];
   }
}
?>

гы. Какой-то он примитивный получился - но пашет как надо.

139
PHP / Проблема с system и т.д
« : 18 Апреля 2003, 16:13:35 »
думаю тут имелось ввиду error_reporting(E_ALL). то есть, как обычно + E_NOTICE

140
PHP / Опять я с этими слешами...
« : 18 Апреля 2003, 16:10:18 »
$list уже содержит слэш вначале. будьте внимательнее!
Кстати, интересный кусок кода..
Почему для инициализации $list используеться $_SERVER
а для $host - $HTTP_SERVER_VARS
правильнее было бы записать так

$host = $_SERVER[\'HTTP_HOST\'];

141
у меня 2 :) (см. выше).

Цитировать
Макс:
    $_prev = "<";
    $_next = ">";
    $_last = ">>";
    $_first = "<<";


так было бы правильнее ;)

    $_prev = "<";
    $_next = ">";
    $_last = ">>";
    $_first = "<<";

142
PHP / Ищу книгу PHP....
« : 18 Апреля 2003, 12:52:25 »
Неплохая книга от Wrox Press - "Профессиональное PHP программирование".
Д. Кастаньетто
Х. Рават
С. Шуман
К. Сколло
Д. Велиаф

На русском языке выпущена издательством "Символ". Санкт-петербург, 2001.

Книга - рулезная! И есть примеры интернет-магазина...

143
p.s. Код в прошлом посте - просто неоптимизированный пример. Не пугайтесь, коллеги :)

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

1, 2, 3, 4, 5, 6, 7...

Какие вам известны алгоритмы составления такого навигационного механизма и какие вы считаете лучшими?

К примеру, я использую следующий алгоритм:

// $cpages - кол-во страниц
// $curr_page - номер текущей страницы

for ($i 1$i <= $cpages$i++)
   
$pages[$i] = ($i == $curr_page) ? \'<b>\'.$i.\'</b>\' : \'<a href=\'.$_SERVER[\'PHP_SELF\'].\'?page=\'.$i.\'>\'.$i.\'</a>\';

echo \'Страницы: \'.join(\', \', $pages);

Страницы: 1 ... 8 9 [10]