Здравствуйте.
На страницу пользователя добавил те материалы, которые он добавлял на сайт. Через views.
Проблема в том, что теперь информация о юзере находится ПОД списком материалов.
Пробовал менять регион для блока - не помогает (только если совсем вниз, но это не то).
Может, как то программно сместить вверх? Через css не знаю как сделать. Помогите.
Комментарии
информация о пользователе выводится в в регионе content, файле page.tpl.php вывод этого региона
<?php print render($page['content']); ?>
Что вы можете сделать
Используя интерфейс мышки вы можете вывести блок views ниже вывода содержимого на странице блоков
и задать соответствующие ширины и смещения в css
Или создать файл page--user.tpl.php
скопировать в него содержимое из page.tpl.php, удалить лишнее, дописать своё, к примеру свой регион
<div class="user-block">
<?php print render($page['user_block']); ?>
</div>
<?php endif; ?>
И в файл .info своей темы добавить этот регион, чтобы его подхватил друпал
regions[user_block] = User block
Вывести в этом регионе ваш блок.
Потом так же с помощью css навести порядок
Но учтите, что по такому шаблону у вас станут работать страницы входа, регистрации и восстановления паролей.
И еще один вариант, используя интерфейс мышки и модуль panels набрать страницу пользователя как захочется.
Вот это плохо! А блок не прописывается в код? Мне нравится идея создать отдельный шаблон для страницы юзера.
поразителен уровень советчиков...
user-profile.tpl.php
и в нем, прописываете нужную вам логику.
если нужен views, views_embed_view
user-profile.tpl.php > и это будет отображаться везде, где выводится информация о пользователе: ноды, комментарии ...
да ладно
прям в комменте, подхватывается user-profile.tpl.php...
https://api.drupal.org/api/drupal/modules%21user%21user-profile.tpl.php/...
Не ругайтесь.
Я попробую и то, и другое )
Так мне в каком файле код писать? user-profile.tpl.php или page.tpl.php?
отвечу вопросом на на вопрос. если вам нужно колесо поменять, вы будете кузов красить?
page.tpl.php это вывод ВСЕХ данных страниц включенные в body.
user-profile.tpl.php, это вывод данных юзера, на странице /user
Понял ) Аналогии у вас забавные, но толковые!
А теперь такой вопрос - как программно вставить блок? Я php не знаю. Потому и не знаю, что писать...
В файле user-profile.tpl.php вот такая конструкция:
<?php
<div class="profile"<?php print $attributes; ?>>
<?php print render($user_profile); ?>
</div>
?>
Как понимаю, после
<?php print render($user_profile); ?>
нужно вставить код блока с материалами.http://xandeadx.ru/blog/drupal/133
Тоже эту статью нашел! По ней пробую делать.
Чтобы я ни прописывал в файл user-profile.tpl.php на странице изменений не вижу!
Кстати, как написано в статье «Где $module_name это имя модуля, в котором определён блок, а $block_delta — номер блока. Эти параметры можно посмотреть в адресной строке при настройке блока (скриншот).»
У меня в адресной строке бред какой то написан «views/39d0a80ff24d69e8e68d56762d1fe3cb/configure?destination=user/1»)
Я смотрел имя блока через инспектора и views.
Кстати говоря да, у меня тоже страница не меняется.
Вставляю код в виде
<?php
$block = module_invoke('views', 'block_view', 'view_block_users_materials');
echo render($block['content']);
?>
ии все, никакого результата!
Тут еще видео нашел, попробую по нему сделать.
В общем, намаялся с этим ) Добавил регион.
А что мешало просто переместить блок с вьюшкой после основного контента в управлении блоками?
Мешало то, что эти материалы растягивались на всю ширину страницы, а не по размеру контента ) Можно, конечно, было через css сделать, но подгонять это все было бы геморроем! Особенно, Если бы стили менялись.
А так добавил регион, который используется лишь на одной странице и все ) Думаю, это проще.
Такой вопрос - регионы тормозят сайт?