Вроде сумасшедший вопрос здесь ...
У меня есть экран просмотра, который настроен как страница. Он отлично смотрится в теме A (рабочий стол), но ужасен в теме B (мобильный). Поэтому я сделал другую версию представления для темы B. Поскольку «сайты» для настольных компьютеров и мобильных устройств одинаковы только для разных тем, URL-адрес этой страницы будет одинаковым независимо от выбранной темы.
Итак, я бы хотел указать пользователю:
mysite / this_crazy_view
и пусть возвращаемая страница выбирает правильный вид в зависимости от темы, в которой она находится. Я знаю, что если бы я использовал блоки, я бы просто назначил соответствующие блоки для рассматриваемой страницы на основе темы за темой, но так как дисплеи используют отображение страницы, я не знаю, какой будет правильный подход.
Я бы предпочел не перестраивать представления в виде блоков, если смогу помочь (если это невозможно, так и будет ...), поэтому я надеялся, что есть какой-то способ условно загрузить представление через tpl. PHP-файл или что-то в этом роде ...
Код, который я использую в своем модуле (согласно рекомендации @Clive ниже):
<?php
function bandes_custom_hook_menu() {
$items['charley_test'] = array(
'title' => 'Title',
'access arguments' => array('access content'),
'page callback' => 'bandes_custom_set_page_view',
'type' => MENU_NORMAL_ITEM );
return $items;
}
function bandes_custom_set_page_view() {
global $theme_key;
$view_name = $theme_key == 'mobile_jquery' ? 'course_views_mobile' : 'course_views';
$display_id = 'page_5';
return views_embed_view($view_name, $display_id);
}
?>
Я очищал кеш несколько раз и пробовал разные пути в массиве $ items. Course_views и course_views_mobile определенно работают самостоятельно.
Мне также было интересно, могу ли я просто создать view-view - course-views - page-5.tpl.php, который почти ничего не содержит, кроме части views_embed_view (course_views_mobile, page_5)? (Только на одну из двух тем ...)
На самом деле я думаю, что ответ был проще, чем все вышеперечисленное. Перенаправление дало мне припадки, поэтому я удалил модуль, сбросил пути к тому, что использовал, и вместо этого попробовал подход шаблон / тема.
Это: views-view - course-views - page-5.tpl.php, используется только в мобильной теме, но ссылается на немобильное представление (вроде как у меня болит голова, но это работает)
<?php
//get the view
print "IM IN YR VUE, MESSING THNGZ UP!"; //yeah, I'm going to remove this part...
$view_name="course_views_mobile";
$display_id="page_5";
print views_embed_view($view_name, $display_id);
?>
Любая причина, которая не должна работать? (Или почему это действительно плохая идея?)