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 include, работает только часть css
Форумы портала PHP.SU » Клиентская разработка » HTML, Дизайн & CSS » Меню через php include, работает только часть css

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

1. Gukis - 01 Сентября, 2017 - 12:37:29 - перейти к сообщению
Всем привет.

С ростом количества страниц решил реализовать меню через 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, если это имеет значение.
2. andrewkard - 01 Сентября, 2017 - 22:44:52 - перейти к сообщению
Поставьте путь к стилям абсолютным путем от корня проекта
3. Vladimir Kheifets - 04 Сентября, 2017 - 09:39:52 - перейти к сообщению
Gukis пишет:
Всем привет.

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

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


Добрый день! Советую Вам посмотреть HTML-сод в development tools браузера и сравнить, с тем который был сделан без РНР. В этом примере, в HTML-соде определён id="primary-menu" и class="dark". Затем там же проверить подключены ли стили
см. скриншот
4. Gukis - 04 Сентября, 2017 - 10:28:19 - перейти к сообщению
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 закрыть нужно было в конце, а оно закрывалось сразу, то есть список формировался неправильно.

 

Powered by ExBB FM 1.0 RC1