Темизировать программно выведенный View

Главные вкладки

Аватар пользователя molp molp 21 апреля 2014 в 22:49

Задача: темизировать, программно выведенный на странице профиля блок View со списком материалов пользователя

1. Создаю блок View
2. Копирую в папку с темой файл user-profile.tpl.php
3. В файле user-profile.tpl.php выводу блок View:
<?php print views_embed_view('view_name''display_name'); ?>
4. Смотрю название шаблона view для темизации и копирую его в папку с темой с соответствующей заменой имени и переписываю разметку.
5. Делаю Rescan template files - файл выделился жирным, все ок.

Проблема: все поля выводятся вподряд, темизация не срабатывает.
Темизация не применяется только для Views выводимых программно.

Подскажите в чем тут загвоздка?

Комментарии

Аватар пользователя voviko voviko 21 апреля 2014 в 23:11

<?php print views_embed_view('view_name', 'display_name'); ?>\
наверно вы аргумент во вьюхе пропустили.
Аргумент uid
код <?php print views_embed_view('view_name', 'display_name', arg(1)); ?>

Аватар пользователя molp molp 21 апреля 2014 в 23:31

voviko wrote:
<?php print views_embed_view('view_name', 'display_name'); ?>\
наверно вы аргумент во вьюхе пропустили.
Аргумент uid
код <?php print views_embed_view('view_name', 'display_name', arg(1)); ?>

Я не очень понимаю что этот аргумент значит и думал что они не обязательны (другие View я темизировал так же и все было гладко), но в любом случае произошло чудо и вдруг все заработало (до этого я разумеется кэш сбрасывал). Но теперь выодятся следующие ошибки:

Uncaught exception thrown in session handler.

PDOException: in dblog_watchdog() (line 160 of Z:\home\site\www\modules\dblog\dblog.module).
Uncaught exception thrown in shutdown function.

PDOException: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away: DELETE FROM {semaphore} WHERE (value = :db_condition_placeholder_0) ; Array ( [:db_condition_placeholder_0] =&gt; 147221329953556d0a8e6c97.70076725 ) in lock_release_all() (line 269 of Z:\home\site\www\includes\lock.inc).

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 2006 MySQL server has gone away' in Z:\home\site\www\includes\database\database.inc:2168 Stack trace: #0 Z:\home\site\www\includes\database\database.inc(2168): PDOStatement->execute(Array) #1 Z:\home\site\www\includes\database\database.inc(680): DatabaseStatementBase->execute(Array, Array) #2 Z:\home\site\www\includes\database\database.inc(2347): DatabaseConnection->query('SELECT expire, ...', Array, Array) #3 Z:\home\site\www\includes\lock.inc(167): db_query('SELECT expire, ...', Array) #4 Z:\home\site\www\includes\lock.inc(146): lock_may_be_available('schema:runtime:...') #5 Z:\home\site\www\includes\bootstrap.inc(424): lock_acquire('schema:runtime:...') #6 Z:\home\site\www\includes\bootstrap.inc(446): DrupalCacheArray->set(Array) #7 [internal function]: DrupalCacheArray->__destruct() #8 {main} thrown in Z:\home\site\www\includes\database\database.inc on line 2168

В интернетах пишут что это ошибка сервака и исправляется увеличением памяти в my.ini. Пробовал увеличивать значения (локалхост Denwer) но опять же без результатов.

Мне понадобилось выводить так же и заголовок, который не выводится функцией views_embed_view, по этому пришлось сделать немного по другому:

<?php
$view 
views_get_view('view_name');
print 
'<h2>'.$view->get_title().'</h2>';
print 
'<div class="content">'.$view->preview('display_name').'</div>';
?>

Но с этим кодом опять же Views выводится, но без темизации - все поля идут подряд.

Аватар пользователя voviko voviko 21 апреля 2014 в 23:48

Эт аргумент означает, что надо выводить материалЫ с учётом автора, который берется из url,а темизацию делать надо в файле темизации.

Аватар пользователя drupby drupby 22 апреля 2014 в 0:11

"molp" wrote:
Подскажите в чем тут загвоздка?

видимо несостыковка дисплея и шаблона
к примеру шаблон views-view-grid--mygallery--block.tpl.php , а выводите print views_embed_view('mygallery', 'default', $arguments);