- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Коллеги, тут упоминались инклуды.
Вопрос несколько не по теме, но у меня проблема.
Делаю сайт на инклудах, точнее на РНР-инклудах. Как сделать таким образом, чтобы подсвечивалось активное меню на сайте, то есть меню, в котором сейчас находится посетитель, и при этом весь блок этого меню переместить в отдельный файл? Ведь в будущем сайт будет расти и нужно будет меню выносить во внешний файл, чтобы править в одном месте... Но КАК сделать при этом подсветку отдельного активного пункта меню на сайте?? Буду очень признателен за помощь в данном вопросе.
---------- Добавлено 10.10.2017 в 21:33 ----------
Добавлю свой вопрос.
Я планирую всё меню на сайте вынести в отдельный файл, используя РНР-инклуды.
Скажу сразу, сам язык РНР я пока знаю очень-очень поверхностно.
Как обеспечить при этом, чтобы активный пункт меню на сайте подсвечивался, и сам блок меню был в отдельном файле, который я и буду потом подключать ("инклудидь") к сайту? Вот вопрос...
roman1981, зачем так акцентрировать внимание на РНР-инклуды? Они тут ни причём. Дизайн сайта задаётся стилями и разметкой HTML.
Как обеспечить при этом, чтобы активный пункт меню на сайте подсвечивался, и сам блок меню был в отдельном файле, который я и буду потом подключать ("инклудидь") к сайту? Вот вопрос...
Для начала Вам надо понять - как Вы будете получать id документа (=страницы)?
Дальше просто - к каждой ссылке в меню пишите что-то типа:
if (id==page_id) echo "class='activ' ";
Для начала Вам надо понять - как Вы будете получать id документа (=страницы)?
Дальше просто - к каждой ссылке в меню пишите что-то типа:
if (id==page_id) echo "class='activ' ";
Коллега, спасибо большое, вашу мысль я понял.
Итак, после того как я сделаю адаптивный дизайн, соответственно, я разбиваю шаблон сайта на блоки, для удобства управления сайтом в отдалённом будущем (1000+ страниц), а именно: блоки header.php, footer.php, menu.php, и так далее. Если шапка и подвал сайта не меняются на всех 1000 страницах, то меню должно подсвечивать активный пункт, в котором сейчас находится посетитель сайта. Для решения этой задачи мне необходимо как-то идентифицировать из тысячи страниц сайта ту страницу, которая должна подсвечивать активный пункт меню. И, соответственно, конструкцией IF / ELSE выводить (в зависимости от указанного условия) активное меню именно на данную страницу сайта.
Мы приходим к тому, что главное - найти корректный способ получения ID активного документа (= страницы сайта).
Тут у меня пришло в голову следующее решение.
В самом начале каждой страницы сайта разместить РНР-код, в котором задать переменную и присвоить ей некоторое значение, к примеру что-то вроде такого:
<?php
$activeMenu = TRUE;
$passiveMenu = FALSE;
?>
И затем, используя условие, присваивать в том или ином случае активному пункту меню класс "active".
Я правильно мыслю, или же есть более корректный способ решить эту задачу?
---------- Добавлено 11.10.2017 в 07:08 ----------
roman1981, зачем так акцентрировать внимание на РНР-инклуды? Они тут ни причём. Дизайн сайта задаётся стилями и разметкой HTML.
Коллега, адаптивный дизайн сайта у меня уже готов. Это уже пройденный этап. Кстати говоря, у меня все стили корректно вынесены в отдельный внешний файл styles.css, в самом шаблоне стилей нет, об этом я заранее позаботился. Плюс, адаптивный дизайн я сделал с помощью точек остановки, их у меня три, под разные разрешения мониторов (соответственно, с помощью медиа-запросов в стилях, как и положено).
Сейчас я нахожусь на этапе решения уже прикладных, технических вопросов управления сайтом. Именно потому я акцентирую внимание на РНР-инклудах. Вот решаю задачу подсвечивания активного пункта меню, и чтобы при этом само меню сайта было вынесено в отдельный файл "menu.php" и управлялось в будущем из одного места, а не править его на всех 1000+ страницах сайта.
По подсветке примерно так, только ветвление нужно делать для каждого пункта. Блок else в принципе без надобности. Вот гляньте этот мой пост. Обычно такими идентификаторами снабжаются все страницы/корневые страницы всех разделов, т.е. нужно просто вычитывать данные запрошенной страницы, включая идентификатор, ну а если у вас сайт на файлах, что само по себе не очень, тогда, да, сначала определяете фактические данные для тек. страницы, а потом в шаблоне делаете проверки.
---------- Добавлено 11.10.2017 в 09:13 ----------
P.S. В принципе резать общий шаблон на шапку, подвал, меню и т.п. нет необходимости. Или вы осн. контент пихаете прямо в исполняемый файл между ними? :)
адаптивный дизайн сайта у меня уже готов. Это уже пройденный этап.
Сейчас я нахожусь на этапе решения уже прикладных, технических вопросов управления сайтом.
Вообще-то, все наоборот. Это адаптивный дизайн - прикладная задача.
А вот, если Вы создадите over 1000 страниц на кривой архитектуре - это будет боль)
SeVlad
Да, видимо, нужно было создать свой топик. Прошу прощения.
Просто начал читать эту ветку, в которой как раз рассматривали вопрос SSI (Server Side Includes), их применения, и так далее. Ну и задал вопрос, поскольку как раз в разрезе этих самых включений у меня и была проблема - не подсвечивалось меню на сайте. А так вы абсолютно правы, ещё раз прошу прощения, виноват.
miketomlin
Спасибо за ваш ответ и советы. Позвольте ещё раз для себя окончательно уточнить этот тонкий нюанс.
То есть, моё направление мыслей было правильным. Так как у меня страницы сайта разбиты на отдельные обычные файлы (что так и есть на самом деле), тогда я в самом начале каждой страницы создаю блок РНР-скрипта, и в нём прописываю (инициализирую) переменные для этой конкретной текущей страницы.
А уже потом в шаблоне (отдельном файле с меню, например "menu.php") я конструкцией IF / ELSE делаю проверки, и в зависимости от результата этих проверок (булев тип данных true / false) я добавляю в своё меню на сайте класс "active". Или же не добавляю. Где-то таким образом. Правильно я понимаю этот момент?
Да, видимо, нужно было создать свой топик. Прошу прощения.
Ну раз осознал - я вынес. Продолжайте тут ;)
ЗЫ. код на форум вставляй в ббкодах [code][/code].
roman1981, правильно. Лучше сделать пример и показать, чем уточнять на словах.
вот, кажись работает
переменную $site можно задать в каком-нить конфигурационном файле, чтобы она была доступна не только в menu.php
$site = 'http://'.$_SERVER['HTTP_HOST'];
$uri = $_SERVER['REQUEST_URI'];
$menu_links = array('/page_1' => 'Анкор_1', '/page_2' => 'Анкор_2', '/page_3' => 'Анкор_3');
foreach ($menu_links as $anchor){
$array = array_keys($menu_links, $anchor);
$link = array_shift($array);
if ($link == $uri) {
$other_links .= '<li class="active"><a href='.$site.$link.'">'.$anchor.'</a></li>'."\r\n";
} else {
$other_links .= '<li><a href="'.$site.$link.'">'.$anchor.'</a></li>'."\r\n";
}
}
echo $other_links;