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 include, работает только часть css

 PHP.SU

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


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

> Описание: Решил вставлять меню через php include, не могу понять, почему не применяются все стили
Gukis
Отправлено: 01 Сентября, 2017 - 12:37:29
Post Id


Новичок


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


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




Всем привет.

С ростом количества страниц решил реализовать меню через php. Я только начинаю изучать php, но с меню вроде бы справился. Итак, вставляю его через include, а стили применяются не все.

Вот код меню
CODE (text):
скопировать код в буфер обмена
  1.  
  2.  
  3. <?php
  4.  
  5. function renderMenu($urls, $currentPage)
  6. {
  7.     echo "<ul>";
  8.     foreach ($urls as $menuItem)
  9.     {
  10.         print '<li' . (($currentPage === $menuItem['name']) ? ' class="current" ' : '') .
  11.             '><a href="' . $menuItem['url'] . '">' . $menuItem['name'] . '</a></li>';
  12.  
  13.         if (!empty($menuItem['children']) && is_array($menuItem['children']))
  14.         {
  15.             renderMenu($menuItem['children'], $currentPage);
  16.         }
  17.     }
  18.     echo "</ul>";
  19. }
  20. //define menuitems with 'children' items for submenu (you can nest them too thanks for the recursive calls)
  21. $urls = [
  22.  
  23.     [
  24.         'name' => 'Home',
  25.         'url'  => '/index'
  26.     ],
  27.     [
  28.         'name'     => 'Documents',
  29.         'url'      => '/document-translation',
  30.         'children' =>
  31.             [
  32.                 [
  33.                     'name' => 'Contract',
  34.                     'url'  => '/contract'
  35.                 ],
  36.             ]
  37.     ],
  38.     [
  39.         'name' => 'Interpretation',
  40.         'url'  => '/interpretation'
  41.     ],
  42.     [
  43.         'name' => 'Localization',
  44.         'url'  => '/localization'
  45.     ],
  46.     [
  47.         'name' => 'Contact Us',
  48.         'url'  => '/contact'
  49.     ]
  50. ];
  51. ?>
  52. <nav id="primary-menu" class="dark">
  53.     <?php
  54.     renderMenu($urls, $currentPage);
  55.     ?>
  56. </nav><!-- #primary-menu end -->


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

Ссылки на стили указаны в head, а inlcude с меню вставляется в body, если это имеет значение.
 
 Top
andrewkard
Отправлено: 01 Сентября, 2017 - 22:44:52
Post Id


Участник


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


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




Поставьте путь к стилям абсолютным путем от корня проекта
 
 Top
Vladimir Kheifets
Отправлено: 04 Сентября, 2017 - 09:39:52
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


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




Gukis пишет:
Всем привет.

С ростом количества страниц решил реализовать меню через php. Я только начинаю изучать php, но с меню вроде бы справился. Итак, вставляю его через include, а стили применяются не все.

Спойлер (Отобразить)


Добрый день! Советую Вам посмотреть HTML-сод в development tools браузера и сравнить, с тем который был сделан без РНР. В этом примере, в HTML-соде определён id="primary-menu" и class="dark". Затем там же проверить подключены ли стили
см. скриншот
Прикреплено изображение (Нажмите для увеличения)
Untitled-1.png

(Отредактировано автором: 04 Сентября, 2017 - 09:41:43)

 
 Top
Gukis
Отправлено: 04 Сентября, 2017 - 10:28:19
Post Id


Новичок


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


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




andrewkard пишет:
Поставьте путь к стилям абсолютным путем от корня проекта


Сделал все ссылки к стилям такими
<link rel="stylesheet" href="http://spbtranslations.com/css/bootstrap.css" type="text/css" />

Не помогло.

Ссылки на стили у меня в файле index.php, в инклюде с меню никаких ссылок нет. Может быть, в этом проблема?
(Добавление)
Все, извините за панику. Была ошибка в коде.

CODE (htmlphp):
скопировать код в буфер обмена
  1. print '<li' . (($currentPage === $menuItem['name']) ? ' class="current" ' : '') .
  2.            '><a href="' . $menuItem['url'] . '">' . $menuItem['name'] . '</a></li>';


Чтобы появлялось подменю, li закрыть нужно было в конце, а оно закрывалось сразу, то есть список формировался неправильно.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« HTML, Дизайн & CSS »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB