$cntrName = (!is_null(getUrlSegment(0))) ? 'main' : getUrlSegment(0); $actionName = (!is_null(getUrlSegment(1))) ? 'action_index' : 'action_'.getUrlSegment(1);
Это так и задумано? В переменные всегда будет попадать null, если в URL нет ни одного сегмента. Если есть, то попадут 'main' и 'action_index' соответственно.
Попробуйте знаки восклицания убрать перед is_null. Ещё приятнее, на мой взгляд, так:
$cntrName = getUrlSegment(0) ?? 'main'; $action = getUrlSegment(1) ?? 'index'; $actionName = "action_{$action}";
В шаблоне продукта, там же, откуда Вы эту микроразметку взяли, оборачиваете её в условие IF ($review_count). Если данная переменная (подразумевается, что в ней лежит целочисленное значение, количество отзывов) не равна нулю, то разметка внутри условия будет выведена.
<?php if ($review_count): ?> <meta itemprop="ratingValue" content="<?= $rating ?>"> <meta itemprop="worstRating" content="<?= $worst_rating ?>"> <meta itemprop="bestRating" content="<?= $best_rating ?>"> <meta itemprop="reviewCount" content="<?= $review_count ?>"> <?php endif; ?>
В $review_count что лежит?
Насколько я понял, рейтинг должен на чём-то основываться: либо просто на количестве голосов (ratingCount), либо на количестве отзывов (reviewCount).
Если рейтинг продукта у Вас основан на голосах, а не на отзывах, то нужно использовать itemprop="ratingCount" вместо itemprop="reviewCount". И, разумеется, значение не должно быть нулевым. Могу заблуждаться.
Если рейтинг у конкретного продукта вообще отсутствует, выводить микроразметку, опять же, как я понял, не надо.
<?php if ($rating && ($review_count || $rating_count)): ?> <meta itemprop="ratingValue" content="<?= $rating ?>"> <meta itemprop="worstRating" content="<?= $worst_rating ?>"> <meta itemprop="bestRating" content="<?= $best_rating ?>"> <?php if ($review_count): ?> <meta itemprop="reviewCount" content="<?= $review_count ?>"> <?php elseif ($rating_count): ?> <meta itemprop="ratingCount" content="<?= $rating_count ?>"> <?php endif; ?> <?php endif; ?>
Примерно так это выглядит с использованием библиотеки jQuery:
$.get( "www.site.ru/menu_top.html", function(result) { $("#menu").html(result);});
Где #menu — элемент с ID 'menu', внутрь которого будет вставлен результат запроса.
Если требуется вставлять большой и самодостаточный HTML, то лучше добавить в вышеуказанный код AJAX-запрос. В jQuery уже есть готовая функция для этого.
Макет будет запрошен с сервера по определённому URL, например, www.site.ru/menu_top.html. Полученную HTML-разметку можно будет вставить в любое место на странице. Этого Вы хотите?
Видимо, затем, чтобы уменьшить размер страницы :) Хоть это и капля в море.
Стили внутри комментариев будут использованы, если пользователь сидит с IE (любой версии), IE 6 или IE 7. Если последние две категории олдфагов вас не волнуют, то можно удалять.
ru.wikipedia.org/wiki/Условный_комментарий
Если это действительно всё, что Вам нужно, то менять движок не вижу особой необходимости. Вёрстку сменить на адаптивную — и вот Вам "оптимизированный под мобильные устройства" сайт безо всяких редиректов и проседаний.
С другой стороны, если проект сколько-нибудь серьёзный и планирует расти, то я бы сейчас позаботился и принял новую структуру сайта. С разделами, подразделами и безо всяких .php на конце.
Single-Page Application планируете?
Здесь дело в браузере, по-моему. В Chrome все главные страницы открываются без слешей. В IE наоборот.