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
Форумы портала PHP.SU :: Версия для печати :: Как лучше сделать?
Форумы портала PHP.SU » » Вопросы новичков » Как лучше сделать?

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

1. UNTRUSTED - 04 Апреля, 2012 - 16:37:23 - перейти к сообщению
Страница, там код 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

Какой способ лучше выбрать?
2. etoYA - 04 Апреля, 2012 - 16:39:50 - перейти к сообщению
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.  

(Добавление)
В коде могут быть ошибки, так как писал прямо тут.
3. UNTRUSTED - 04 Апреля, 2012 - 16:45:16 - перейти к сообщению
т.е. как первый пример? Один файл в котором по условиям подключаються остальные .tpl
Можете объяснить чем данный пример лучше?
4. etoYA - 04 Апреля, 2012 - 16:49:26 - перейти к сообщению
UNTRUSTED, как по мне он как минимум удобней.
UNTRUSTED пишет:
##В каждом файле инклудим header и footer

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

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

http://site[dot]ru/?page=news - это вызовит файл дата и подключит, допустим файл news, в котором будет выборка новости и.т.д
5. UNTRUSTED - 04 Апреля, 2012 - 16:56:00 - перейти к сообщению
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. ?>

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

Тут понимаете вопрос не в том, какой индекс... а:
1. подключать файлы (1,2,3,4).tpl
2. или переходить на них (1,2,3,4).php
!!!
8. etoYA - 04 Апреля, 2012 - 17:33:06 - перейти к сообщению
Как удобней, так и делайте. Но я уже сказал, switch/case будет удобней.
9. UNTRUSTED - 04 Апреля, 2012 - 17:45:09 - перейти к сообщению
etoYA пишет:
switch/case будет удобней.

Вообщем вы за первый вариант, но опять же, удобней..
Кроме удобней есть какие-то преимущества? Быстрей например?
10. etoYA - 04 Апреля, 2012 - 17:50:26 - перейти к сообщению
UNTRUSTED, оба будут быстрые
11. UNTRUSTED - 04 Апреля, 2012 - 18:05:27 - перейти к сообщению
ок...
Спасибо!

 

Powered by ExBB FM 1.0 RC1