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)

 PHP.SU

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


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

> Без описания
maragon
Отправлено: 24 Июля, 2012 - 01:07:06
Post Id



Посетитель


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


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




Итак, для своего сайтика нужно было написать функцию выбора шаблона.
Что это и как его едят:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $array_templates = array('default','test'); //Шаблоны которые существуют
  3.  
  4. # ВЫБОР ШАБЛОНА #
  5. $get_template = fmysql_real_string($_GET['template']);
  6. if(!empty($get_template)){ //ЕСЛИ URL ВВЕДЕН (template=из формы)
  7. if(array_search($get_template, $array_templates) === false){  echo "Выбран шаблон, который не существует"; }
  8. $template = $get_template;
  9. $dir = DIR_SYSTEM. DIR_PERF. DIR_TEMPLATES."".$template."/index.php";
  10. if(file_exists($dir)){ $_SESSION['template'] = $get_template; }
  11. }
  12. $session_template = ($_SESSION['template']);
  13. if(isset($session_template)){
  14. # СЕССИЯ СУЩЕСТВУЕТ #
  15. $template = $session_template;
  16. $dir = DIR_SYSTEM. DIR_PERF. DIR_TEMPLATES."".$template."/index.php";
  17. if(file_exists($dir)){ require($dir); }
  18. } else {
  19. # ВЫВОДИМ ШАБЛОН ПО ДЕФОЛТУ #
  20. $template = "default";
  21. $dir = DIR_SYSTEM. DIR_PERF. DIR_TEMPLATES."".$template."/index.php";
  22. if(file_exists($dir)){ require($dir); }
  23. }
  24. ?>

DIR_SYSTEM. DIR_PERF. DIR_TEMPLATES. - Расшифрую, примером этой записи может служит такое: C:/sait/www/

Чтобы выбрать шаблон есть прекрасная форма:

CODE (html):
скопировать код в буфер обмена
  1. <form action="" method="GET">
  2. <table>
  3. <tr>
  4. <td>
  5. <select name="template">
  6. <?PHP
  7. foreach($array_templates AS $key){
  8. echo "<option value='".$key."'>".$key."</option>";
  9. }
  10. ?>
  11. </select>
  12. </td>
  13. <td>
  14. <input type="submit" name="changetemp" value="<?PHP echo $lang[13]; ?>">
  15. </td>
  16. </tr>
  17. </table>
  18. </form>
  19. <?PHP
  20. if(isset($_POST['changetemp'])){
  21. $template = fmysql_real_string($_POST['temp']);
  22. $_SESSION['template'] = $template;
  23. Redirecthtml(0,"index.php");
  24. }
  25. ?>

Redirecthtml(0,"index.php"); - обычная функция редиректа (по типу header(); )
Какие +, какие - кто заметил? что есть плохо? а что тут хорошо?
Отпишитесь, братья умные Улыбка

(Отредактировано автором: 24 Июля, 2012 - 01:43:00)



-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
Green
Отправлено: 24 Июля, 2012 - 12:44:06
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Апр. 2012  
Откуда: Кисловодск


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




maragon пишет:
$get_template = fmysql_real_string($_GET['template']);

Notice... С помощью isset(), проверяйте, существует ли $_GET['template']...

maragon пишет:
if(array_search($get_template, $array_templates) === false)

Я бы тут использовал in_array().
(Добавление)
maragon пишет:
$session_template = ($_SESSION['template']);

Зачем тут скобки? Не понял
 
 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