Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Шаблонизатор

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
кемп
Отправлено: 27 Июня, 2010 - 13:29:03
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Скажите где в коде ошибка,если можно исправьте))

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. class content
  4. (
  5. var $vars = array();
  6. var $content;
  7.  
  8. function set($name, $val)
  9. (
  10. $this->vars[$name] = $val;
  11. )
  12.  
  13. function out_content{$tpl} (
  14. $this->content = file_get_content($tpl);
  15.  
  16. foreach($this->vars as $key => $val)
  17. (
  18. $this->content = str_repleace($key, $val, $this->content):
  19. )
  20. echo $this->content;
  21. )
  22.  
  23. )
  24.  
  25. $content = new content();
  26.  
  27. ?>
  28.  
 
 Top
kochan10
Отправлено: 27 Июня, 2010 - 13:40:34
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




1) Класс задаётся {} а не ()
2) Имя класса начинается с Заглавной буквы, и первой функции тоже. Желательно и всех остальных.
(Добавление)
3) Функции задаются
PHP:
скопировать код в буфер обмена
  1. function Name(args){
  2. //Тело функции
  3. }

(Отредактировано автором: 27 Июня, 2010 - 13:43:47)

 
 Top
кемп
Отправлено: 27 Июня, 2010 - 13:52:33
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Тоесть мне надо сделать так?

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2.  
  3. class content
  4. {
  5. var $vars = array();
  6. var $content;
  7.  
  8. function set($name, $val)
  9. {
  10. $this->vars[$name] = $val;
  11. }
  12.  
  13. function out_content{$tpl} {
  14. $this->content = file_get_content($tpl);
  15.  
  16. foreach($this->vars as $key => $val)
  17. {
  18. $this->content = str_repleace($key, $val, $this->content);
  19. }
  20. echo $this->content;
  21.  
  22. }
  23.  
  24. }
  25.  
  26. $content = new content();
  27.  
  28. ?>

(Добавление)
Все спасибо разобрася)
 
 Top
kochan10
Отправлено: 27 Июня, 2010 - 14:04:35
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Почти, только...
1) Название класса и функций начинай с большой буквы.
2) в 13 строчке вместо

нужно это:

3) в функциях лучше делать не echo, а return (20 строчка). Так можно вывести результат в любом месте написав

Так же благодаря этому можно результат выполнения функции взять в переменную

P.S. args - это аргументы, всякие разные.
 
 Top
кемп
Отправлено: 27 Июня, 2010 - 14:14:19
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Еще 1 вопросик) как прописать путь до шаблона что то я непонял /skins/shablon/main.tpl ???
 
 Top
kochan10
Отправлено: 27 Июня, 2010 - 14:19:33
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Скорее всего, да. или без первого слеша, сразу skins/shablon/main.tpl
 
 Top
кемп
Отправлено: 27 Июня, 2010 - 14:28:27
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




нет не получается возможно нужен файл конфин это я создал теперь надо както это все подключить??
 
 Top
kochan10
Отправлено: 27 Июня, 2010 - 15:26:51
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Ты свою CMS'ку пишешь?)))
(Добавление)
Для пути используй константы или специальные переменные, в которых сам путь будешь хранить.
 
 Top
20167
Отправлено: 27 Июня, 2010 - 16:59:34
Post Id


Новичок


Покинул форум
Сообщений всего: 57
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




kochan10 пишет:
Ты свою CMS'ку пишешь?)))


Ну почти Радость
 
 Top
кемп
Отправлено: 28 Июня, 2010 - 00:11:20
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Скажите как исправить это, когда я пишу site.ru/index.php все норм и шаблон отображается но если я пишу site.ru/mods.php пишет ошибку хотя код в в них одинаковый

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. include_once ('engine/moduls/shablon.php');
  4.  
  5. $content->set ('{title}', 'Yfpd');
  6.  
  7. $content->out_content('skins/shablon/main.tpl');
  8.  
  9. ?>
  10.  


Скажите что можно сделать??
 
 Top
alexspb
Отправлено: 28 Июня, 2010 - 00:19:20
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)





в PHP4 правильнее иначе создавать экземпляр класса - по ссылке:


кемп пишет:
хотя код в в них одинаковый

проверьте, но не глазами - а копипаст - может есть очепятка

(Отредактировано автором: 28 Июня, 2010 - 00:19:43)



-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
кемп
Отправлено: 28 Июня, 2010 - 00:22:18
Post Id


Новичок


Покинул форум
Сообщений всего: 14
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




да нет заменяю с индекса и все равно пишет ошибку

CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: file_get_contents(skins/shablon/mods.tpl) [function.file-get-contents]: failed to open stream: No such file or directory in Z:\home\test1.ru\www\engine\moduls\shablon.php on line 13

(Отредактировано автором: 28 Июня, 2010 - 00:23:47)

 
 Top
alexspb
Отправлено: 28 Июня, 2010 - 00:28:19
Post Id


Посетитель


Покинул форум
Сообщений всего: 260
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




вроде пишет, что в файле Z:\home\test1.ru\www\engine\moduls\shablon.php на строке 13 неверная ссылка на файл - т.е. с включенями файла надо проверять...


-----
Хостинг - неограниченно доменов на одну папку
Ajax - отличное введение
 
 Top
JustUserR
Отправлено: 28 Июня, 2010 - 14:39:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




кемп пишет:
Как прописать путь до шаблона что то я непонял /skins/shablon/main.tpl ???
Когда вы работаете с путями в PHP то подразумеваются именно пути файловой системы а не web-пространтсва - поэтому использование слеша в начале пути не будет указывать виртуальный путь внутри вашего виртуального хоста Можете использовать или относительный путь но в таком случае не забывайте проверять текущую рабочую папку - или абсолютный с указанием значение переменной окружения DOCUMENT_ROOT и в таком случае можно строить псевдо-виртуальные пути Они не являются точной аналогией виртуальный путей поскольку не учитывают возможные перенаправления и служебные MIME-типы в .htaccess и тд
kochan10 пишет:
Имя класса начинается с Заглавной буквы, и первой функции тоже. Желательно и всех остальных
Разве это требование является обязательным - это просто нотация взятая из языка Java и используемая в родственных ему языках типа JS или C#


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Joo
Отправлено: 28 Июня, 2010 - 14:49:19
Post Id



Гость


Покинул форум
Сообщений всего: 99
Дата рег-ции: Нояб. 2009  
Откуда: Казахстан


Помог: 1 раз(а)




JustUserR пишет:
Имя класса начинается с Заглавной буквы

Я например все функции обзываю (имена классов иногда называю с большой буквы, когда используются имена собственные Galley иначе с маленькой module) с маленькой буквы name, если два и более слов то первое с маленькой остальные с большой funcName

(Отредактировано автором: 28 Июня, 2010 - 14:51:01)



-----
"Им будет не просто, тем кто полагается на истину авторитета, вместо ​того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB