Ясно, спасибо за предельно точный ответ!
Извините, что утомил вас. Просто хотел понять для себя смысл тех проблем, о которых вы говорили.
Ещё раз благодарен! Поступлю, как вы указали. Действительно, ваш вариант кода более красивый и элегантный. У меня, увы, ещё мало знаний ((((
// Во внешнем файле задается $current_page = 'index', $current_page = 'contact', etc... $menu = [ 'index' => ['href'=> '/', 'title' => 'Home page'], 'about' => ['href'=> '/about.php', 'title' => 'About'], 'contacts' => ['href'=> '/contact.php', 'title' => 'Contacts'], // ... ]; <ul> <?php foreach($menu as $page => $item):?> <li class="<?=($current_page === $page) ? 'active' : '';?>"><a href="<?=$item['href'];?>"><?=$item['title'];?></a> <?php endforeach;?> </ul>
Скажите, пожалуйста, а если я в своём варианте буду вместо разных переменных использовать одну, проблем не будет? Вот правда, не могу понять вашу фразу насчёт проблем с сайтом в дальнейшем.
Вот, такой код:
<?php if($current_page == "index") { ?> <ul> <li class="active"><a href="/index.php">index</a></li> <li><a href="/about.php">about</a></li> <li><a href="/contacts.php">contacts</a></li> <li><a href="/formula.php">formula</a></li> <li><a href="/goods.php">goods</a></li> <li><a href="/love.php">love</a></li> <li><a href="/addition.php">addition</a></li> <li><a href="/end.php">end</a></li> </ul> <?php } elseif($current_page == "about") { ?> <ul> <li><a href="/index.php">index</a></li> <li class="active"><a href="/about.php">about</a></li> <li><a href="/contacts.php">contacts</a></li> <li><a href="/formula.php">formula</a></li> <li><a href="/goods.php">goods</a></li> <li><a href="/love.php">love</a></li> <li><a href="/addition.php">addition</a></li> <li><a href="/end.php">end</a></li> </ul> <?php } elseif($current_page == "contacts") { ?> <ul> <li><a href="/index.php">index</a></li> <li><a href="/about.php">about</a></li> <li class="active"><a href="/contacts.php">contacts</a></li> <li><a href="/formula.php">formula</a></li> <li><a href="/goods.php">goods</a></li> <li><a href="/love.php">love</a></li> <li><a href="/addition.php">addition</a></li> <li><a href="/end.php">end</a></li> </ul> ..... ..... <?php } ?>
В самом сайте, например, в страничке "index.php" или "about.php" я подключаю вышеизложенный файл "navigation.inc.php" таким вот образом:
В документе "index.php" : .... <?php $current_page = "index"; include "./included/menu.inc.php"; ?> В документе "about.php" : .... <?php $current_page = "about"; include "./included/menu.inc.php";
_SP_
Коллега, я всё понимаю, вы человек очень опытный, квалифицированный. Но почему в ваших сообщениях так много красивых и ярких эпитетов? Например:
Да, вы действительно дали ёмкий, полный ответ на вопросы из зала! В полном соответствии с вашим многолетним опытом и квалификацией. Спасибо вам великодушно!
Во внешнем файле идёт просто их проверка (переменных $a1, $a2... ), задаются они в обычных файлах (index.php, about.php, ect.)
Немного не понял последнюю фразу, почему зло? Глобальные переменные задаются именно во внутренних файлах сайта, не во внешнем. Проверяются они только во внешнем. Или я ошибаюсь?... Действительно, внешний файл содержит все глобальные переменные вместе, а инициализирую я их во внутренних документах...
Однако их там всего-то штук пять-шесть, ну пусть до десяти штук наберётся, на что они могут так фатально повлиять, что будут большие проблемы? Вот тут я не понял вашу мысль немного...
Такой вопрос, если у меня сайт-визитка на 30 страничек, странички сами на РНР, шаблон свой я разбил на отдельные части и подключаю их с помощью РНР-инклудов, это не сильно влияет на скорость работы сайта, как считаете?
Вы просто писали, что юзать каждый раз при визите на сайт РНР - это не есть хорошо! Что вы скажете по поводу моей ситуации? Базы данных на сайте у меня нет. Чисто для удобства использую PHP-Includes... Вот таким именно образом:
<?php include './includes/header.inc.php';?> .... <?php include './includes/navigation.inc.php';?> .... <?php include './includes/footer.inc.php';?>
Правда, файл "navigation.inc.php", там где у меня навигация по сайту, для подсветки активного пункта меню на сайте и с целью того, чтобы навигация оставалась в одном документе, я сделал вот такое простое решение:
Документ "navigation.inc.php" выглядит таким образом:
<?php if($a1 == "index") { ?> <ul> <li class="active"><a href="/index.php">index</a></li> <li><a href="/about.php">about</a></li> <li><a href="/contacts.php">contacts</a></li> <li><a href="/formula.php">formula</a></li> <li><a href="/goods.php">goods</a></li> <li><a href="/love.php">love</a></li> <li><a href="/addition.php">addition</a></li> <li><a href="/end.php">end</a></li> </ul> <?php } elseif($a2 == "about") { ?> <ul> <li><a href="/index.php">index</a></li> <li class="active"><a href="/about.php">about</a></li> <li><a href="/contacts.php">contacts</a></li> <li><a href="/formula.php">formula</a></li> <li><a href="/goods.php">goods</a></li> <li><a href="/love.php">love</a></li> <li><a href="/addition.php">addition</a></li> <li><a href="/end.php">end</a></li> </ul> <?php } elseif($a3 == "contacts") { ?> <ul> <li><a href="/index.php">index</a></li> <li><a href="/about.php">about</a></li> <li class="active"><a href="/contacts.php">contacts</a></li> <li><a href="/formula.php">formula</a></li> <li><a href="/goods.php">goods</a></li> <li><a href="/love.php">love</a></li> <li><a href="/addition.php">addition</a></li> <li><a href="/end.php">end</a></li> </ul> ..... ..... <?php } ?>
В документе "index.php" : .... <?php $a1 = "index"; include "./included/menu.inc.php"; ?> В документе "about.php" : .... <?php $a2 = "about"; include "./included/menu.inc.php"; ?>
Как считаете, я правильно в данном случае действую? Не будет ли у меня проблем в дальнейшем на сайте??
Спасибо за ответ. Просто человек упомянул об инклудах, мне вот и стало интересно, это именно РНР-Инклуды, или же какая-либо иная технология. А вот то, что шаблон веб-сайта нужно разбивать на отдельные части, это однозначно правильно, поскольку с колоссальным ростом страниц сайта управлять им будет нереально сложно (если вообще возможно). А так, к примеру, поменял дизайн футера - в отдельном файле, он тут-же изменился на всём сайте, сколько бы страниц на нём не было. Очень удобно, а на больших сайтах - просто жизненно важно.
Имеется ввиду, что лучшая CMS без баз данных - это использование именно PHP Includes, то есть включений РНР для разбиения шаблона на разные составные части. Правильно ли я понял эту мысль? Или подразумевалось что-либо ещё?
Например,
<?php include './includes/header.inc.php';?>....<?php include './includes/navigation.inc.php';?>....<?php include './includes/footer.inc.php';?>
богоносец
Немного не понял этот момент. То есть, уточню этот нюанс: у меня на всех зеркалах должен быть один и тот же файл robots.txt с одной и той-же директивой host, я правильно понимаю?
Детально распишу, если вы не против, правильно ли я понял ваши слова.
Вот, у меня есть некий файл robots.txt в корне моего веб-сайта:
User-agent: *Disallow:Host: www.my-site.comSitemap: http://www.my-site.com/sitemap.xml
Кстати говоря, правильно ли у меня составлена директива Host в данном случае, я не напутал ничего, может ещё протокол перед названием сайта прописать, как считаете? Идём далее, именно это файл robots.txt, именно с этой конкретной директивой, должен быть доступен по следующим адресам:
http://my-site.com/robots.txt (301 редирект на главное зеркало)
https://my-site.com/robots.txt (301 редирект на главное зеркало)
http://www.my-site.com/robots.txt (моё главное зеркало!)
https://www.my-site.com/robots.txt (301 редирект на главное зеркало)
Я правильно понимаю суть ваших слов?
А среди этих ресурсов есть такие случаи, когда один и то-же сайт висит в аккаунте Google Search Console вот в таком виде:
http://www.mysite.com
https://www.mysite.com
То есть, по факту один и то-же ресурс (веб-сайт), но в аккаунте он заведен под два ресурса, один на http и второй на https, соответственно.
Как к этому относится Гугл, нормально индексирует указанный сайт, и если индексирует, то по какому принципу - только главное зеркало (в таком случае у вас стоят редиректы на хостинге на конкретное главное зеркало?), например, на https ?
Я понимаю, что на одном аккаунте может быть много ресурсов, но тут идёт речь именно о дублировании одного и того-же сайта на два ресурса, только с разными протоколами. Как на практике такое происходит и что можно от этого ожидать в плане качества индексации Гуглом? Какой из сайтов Гугл будет индексировать, как он определяет где главное зеркало, а где не главное? По редиректам в файле .htaccess на сервере, или как-то ещё?... ---------- Добавлено 13.01.2018 в 00:17 ---------- Просто у меня сайт один, но под него заведено два ресурса на моём аккаунте, как вы понимаете один на http и второй на https. Да, я перенастроил редиректы в своём файле .htaccess на сервере, теперь что-бы не набрал пользователь в поисковой строке, он всегда попадёт именно на такой вариант сайта: http://www.mysite.com, то есть по обычному протоколу http.
Но в Google Search Console всё равно у меня светятся два ресурса, удалить второй я могу, но если его в любой момент добавить, то всё равно я вижу, что статистика по нему никуда не делась, то есть Гугл его по факту не удаляет полностью, а хранит в своём хранилище. И от того, что в Google Search Console я его "формально" удалю, от этого Гугл не удалить всю статистику о втором ресурсе (о том, который на https). Понимаете, в чём суть моего вопроса?
Именно потому я и спрашиваю, не было ли у вас такой ситуации, и если была, не отражалось ли это на индексации вашего сайта со стороны самого Гугла? ---------- Добавлено 13.01.2018 в 00:21 ----------
То есть, вы предлагаете просто удалить не нужный ресурс (тот, который сейчас у меня на протоколе https), и далее спокойно заниматься развитием своего основного ресурса на http? Правильно я понимаю вашу мысль? А о втором ресурсе просто забыть навсегда.
Но как Гугл воспринял мои манипуляции в 2017 году по переходу на https и затем обратно на http ?
Это было в течении недели-полторы.
Не попал ли я под фильтры Гугла в таком случае? Как считаете?.....
xVOVAx
То есть, это нормально, когда в панели вебмастеров Гугл висит два ресурса (два сайта) на http и на https ? При чём тут паранойя, я просто хочу понимать, нормально ли это и сталкивался ли кто-то с чем-то подобным? ---------- Добавлено 12.01.2018 в 22:42 ---------- То есть, почему когда я удаляю второй (не нужный уже) сайт из Google Search Console, а затем спустя день его добавляю, то там остаются старые данные (в том числе светится одна проиндексированная страница). Иными словами, Гугл не удаляет полностью второй сайт, а лишь, как-бы, скрывает его. Но не удаляет.
Таким образом, у меня по факту в панели вебмастеров сейчас уже навечно засели два сайта, и изменить это уже нет возможности. Вот я и хочу понять, нормально ли это и не будет ли проблем в будущем с индексацией именно старого моего сайта, того который на протоколе http. Как-то напряжно, когда в Google Search Console висит два сайта, при чём, второй мне вообще ни к чему! Но и удалить его я никак не могу!