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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: require(.tpl) или общий header.php
UNTRUSTED
Отправлено: 04 Апреля, 2012 - 16:37:23
Post Id


Частый гость


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


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




Страница, там код php общий для всех остальных, head общий и foot общий примерно так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. ### СПОСОБ 1
  2. //Тут HEADER
  3. <a href="1">
  4. <a href="2">
  5. <a href="3">
  6.  
  7. switch(true)
  8.   case(isset($_GET[1]){require(1.tpl);break;
  9.   case(isset($_GET[2]){require(2.tpl);break;
  10.   case(isset($_GET[3]){require(3.tpl);break;
  11.   case(isset($_GET[4]){require(4.tpl);break;
  12.   case(isset($_GET[5]){require(5.tpl);break;
  13.   default://Какой-то код
  14.  
  15. //Тут FOOTER
  16.  
  17. ### СПОСОБ 2
  18. #Файл header.php
  19. //Тут какой-нибудь код
  20. //Тут какой-нибудь код
  21. //Тут какой-нибудь код
  22. <a href="1.php">
  23. <a href="2.php">
  24. <a href="3.php">
  25. #Файл footer.php
  26. ##В каждом файле инклудим header и footer

Какой способ лучше выбрать?
 
 Top
etoYA
Отправлено: 04 Апреля, 2012 - 16:39:50
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




UNTRUSTED, в индексе размещаешь полную страницу, и в месте где "какой-то код"
подключаешь файл со свитч/кейс конструкцией. Я так делал
(Добавление)
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <body>
  3. <?PHP require_once('template/header.tpl)?>
  4. <div id="content"><?PHP require_once('data.php') ?></div>
  5. <?PHP require_once('template/footer.tpl)?>
  6. </body>
  7.  

data.php
PHP:
скопировать код в буфер обмена
  1.  
  2. $page = empty($_GET['page']) ? $page = index : $_GET['page'];
  3. switch($page){
  4.      case 'index' echo 'index'; break;
  5.      case 'news' echo 'news'; break;
  6.      default: '404 error';
  7. }
  8.  

(Добавление)
В коде могут быть ошибки, так как писал прямо тут.
 
 Top
UNTRUSTED
Отправлено: 04 Апреля, 2012 - 16:45:16
Post Id


Частый гость


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


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




т.е. как первый пример? Один файл в котором по условиям подключаються остальные .tpl
Можете объяснить чем данный пример лучше?
 
 Top
etoYA
Отправлено: 04 Апреля, 2012 - 16:49:26
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




UNTRUSTED, как по мне он как минимум удобней.
UNTRUSTED пишет:
##В каждом файле инклудим header и footer

Как ты себе это представляешь? В каждом файле ты будешь мешать логику с хтмл.

К примеру тебе нужно вывести новости. Для этого ты естественно перейдешь по ссылке

http://site[dot]ru/?page=news - это вызовит файл дата и подключит, допустим файл news, в котором будет выборка новости и.т.д
 
 Top
UNTRUSTED
Отправлено: 04 Апреля, 2012 - 16:56:00
Post Id


Частый гость


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


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




etoYA пишет:
<body>
<?PHP require_once('template/header.tpl)?>
<div id="content"><?PHP require_once('data.php') ?></div>
<?PHP require_once('template/footer.tpl)?>
</body>

Смысл делать три файла, их можно просто вписать в один, и в нем подключать уже, как я и говорил! Хорошо
Вы может меня не поняли?
Тогда сейчас точнее распишу!
(Добавление)
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. ...
  3. ...
  4. ...
  5. ?>
  6. <html>
  7.  <head>
  8.  </head>
  9.  <body>
  10. ...
  11. ...
  12. <a href="1">
  13. <a href="2">
  14. <a href="3">
  15. ...
  16. ...
  17.  
  18.  
  19. switch(true)
  20.   case(isset($_GET[1]){require(1.tpl);break;
  21.   case(isset($_GET[2]){require(2.tpl);break;
  22.   case(isset($_GET[3]){require(3.tpl);break;
  23.   case(isset($_GET[4]){require(4.tpl);break;
  24.   case(isset($_GET[5]){require(5.tpl);break;
  25.   default:...;break;
  26. ...
  27. ...
  28.  </body>
  29. </html>
  30.  

Тоже самое что у вас, только помещается в один файл а не в три!
А вот второй вариант
Файл header.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. ...
  3. ...
  4. ...
  5. ?>
  6. <html>
  7.  <head>
  8.  </head>
  9.  <body>
  10. ...
  11. ...
  12. <a href="1.php">
  13. <a href="2.php">
  14. <a href="3.php">
  15. ...
  16. ...

Файл footer.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. ...
  2. ...
  3.  </body>
  4. </html>

Остальные файлы(1.php,2.php...)
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. require_once(header.php)
  3. ?>
  4. ...
  5. ...
  6. ...
  7. <?php
  8. require_once(footer.php)
  9. ?>

Вот так понятней как инклудить???
 
 Top
etoYA
Отправлено: 04 Апреля, 2012 - 17:17:32
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Я уже говорил про логику и хтмл? Так вот повторюсь. Необязательно в 3
Можно и в 2. index.php и data.php Зато проще при изменении шаблона просто подключить файл с датой. А если у вас будет не 5 страниц, а 45? Представьте какой будет index.php?
 
 Top
UNTRUSTED
Отправлено: 04 Апреля, 2012 - 17:24:06
Post Id


Частый гость


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


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




etoYA пишет:
Представьте какой будет index.php?

Тут понимаете вопрос не в том, какой индекс... а:
1. подключать файлы (1,2,3,4).tpl
2. или переходить на них (1,2,3,4).php
!!!
 
 Top
etoYA
Отправлено: 04 Апреля, 2012 - 17:33:06
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




Как удобней, так и делайте. Но я уже сказал, switch/case будет удобней.
 
 Top
UNTRUSTED
Отправлено: 04 Апреля, 2012 - 17:45:09
Post Id


Частый гость


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


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




etoYA пишет:
switch/case будет удобней.

Вообщем вы за первый вариант, но опять же, удобней..
Кроме удобней есть какие-то преимущества? Быстрей например?
 
 Top
etoYA
Отправлено: 04 Апреля, 2012 - 17:50:26
Post Id



Участник


Покинул форум
Сообщений всего: 1859
Дата рег-ции: Июль 2011  
Откуда: Крым


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




UNTRUSTED, оба будут быстрые
 
 Top
UNTRUSTED
Отправлено: 04 Апреля, 2012 - 18:05:27
Post Id


Частый гость


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


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




ок...
Спасибо!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB