Как сделать позицию для модуля в шаблоне Joomla

Опубликовано: 2019-11-18
Блог: Разное
Редактировалось: 5 раз — последний 14 октября 2014
Просмотров: 1060
Настроение: хорошее
Играет: телевизор слушаю
+5
: 7
Напишу как в программе artisteer сделать новую позицию для модуля, в шаблоне конечно много и так позиций, но вот поместить баннер в header например нет возможности.
я использовал этот блог:
Скрытый текст виден только зарегистрированным пользователям

Сначала делаем все как описано в блоге, то есть вставляем в нужное нам место в header любой рисунок, главное чтобы он был размером с нужный нам модуль, например если готовим место под модуль баннеров то просто вставляем картинку с нужным размером баннера. Далее как описано опять же в блоге делаем так чтобы вставленная картинка появилась на шаблоне (повторятся не буду все описано в блоге про картинки). А дальше непосредственно делаем позицию для модуля. Открываем файл шаблона index.php и в открывающий и закрывающий класс с картинкой вставляем вывод позиции для модуля <?php echo $view->position('position-36', 'elnostyle'); ?> так:

""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

Здесь elnostyle значит без стиля еще можно поставить elarticle (стиль для модулей артикль), elblock (стиль для модуля как у блоков)
Дальше в стилях .CSS убираем картинку, ту что вставляли шаблон:

""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

То есть удаляем строку background-image: url('../images/header-object.png');
Теперь открываем файл templateDetails.xml и вставляем информацию о новой позиции так:

""
Изображение уменьшено. Щелкните, чтобы увидеть оригинал.

Позицию указываем ту что указали в файле index.php. Все новая позиция для баннера готова. Теперь выбираем модуль баннеров в админке и настраиваем его, что бы он отображался в новой позиции 36. Так же можно вставить и модуль слайдера и любой другой. Я привел как сделать для Joomla 1.7, но в Joomla 1.5 все то же самое.

PS: На данный момент статья морально устарела, описанный метод для Artisteer до версии 4.0.
Начиная с версии 4.1 для вставки любых позиций в шапку сайта используется стандартная функция Artisteer CONTROL-ID
(ред. 10.09.2013 г.)
Комментарии (26)
garin #
: +1
Буду пробовать, поставил плюс.
zinovevgeny #
: 0
я сделал так... позиция модуля создалась корректно... но не выводится там модуль слайдера! в других позициях выводится, а в этой не выводится... не знаю как быть. подскажете?
Джумланин #
: 0
позиция модуля создалась корректно...
Как определили? В предпросмотре шаблона эту позицию видно?
может быть надо в стили ( там где убрали background-image: url('../images/header-object.png'); добавить z-index: 10; (можно даже 100), это выведет позицию на верх, если она находится например под изображением.
Но это если в том случае если в предпросмотре страницы действительно видно позицию.
zinovevgeny #
: 0
сейчас попробую ... а то, что позиция модуля создалась корректно, я сделал вывод, что она видна, когда просматривал позиции модулей (имя сайта/?tp=1). Если можно, поподробнее про z-index... куда его прописать... на месте этой строчки?: background-image: url('../images/header-object.png') -(я её удалил)
Джумланин #
: 0
Да вместо этой строки...
zinovevgeny #
: 0
эффекта никакого.
Скрытый текст виден только зарегистрированным пользователям
вот здесь пробую... может посмотрите?
Джумланин #
: 0
По виду все правильно сделано, но в эту позицию у Вас ничего не выведено, она пустая.
Попробуйте создать модуль HTML (custom) в нем вставьте ту картинку по размерам которой делали позицию, и выведите этот модуль в этой позиции.
Тогда точно будет понятно работает у Вас позиция или просто сам слайдер что то глючит.
Вообще я много раз подобное делал, и подводных камней там нет, если все по описанию делали.
zinovevgeny #
: 0
сделал всё как вы сказали... но ничего не поменялось не выводится в этой позиции ни один модуль
skaz #
: 0
zinovevgeny
Попробуйте создать модуль HTML (custom)

Или просто любой работающий модуль выведите в этой позиции.
skaz #
: 0
zinovevgeny в личку написал...
Кстати какая джумла?
skaz #
: 0
В письме отправил, Вы там немного неправильно сделали, в статье все верно.
garin #
: 0
А как теперь в версии 4.0 делать позицию, там же картинки сразу вставляются и они в стилях в одном месте все задаются?
samson #
: 0
В чем проблема? Картинки, картинками, а место под позицию делается так же, как описано в этих двух статьях.
Verov #
: 0
А могу я в ново-созданной позиции размещать несколько модулей один под другим?! Или если я хочу сделать 3 модуля мне нужно сделать 3 новых позиции?!
samson #
: 0
Если размер позиции позволяет то можно и три сразу, наверное (а почему нет?). Возможно тогда высоту ( height ) не надо будет указывать, что бы он вниз тянулся, или еще верней поставить min-height (минимальную высоту)
Если хотите один под другим модули то оставьте display: block; (показывать блоком), а если надо, что бы они в линию были то display: inline; (показывать в линию), но если в линию то надо не высоту резиновую, а ширину с запасом.
Navigator #
: 0
У вас помощи можно попросить? Артистир 4, там немного по другому все. Я пытаюсь вставить позицию модуля, вместо блока в шапке. в xml прописал, css понятен, да вроде и в index.php все прописываю(тут не уверен) Короче выдает ошибку

Warning: call_user_func() [function.call-user-func]: First argument is expected to be a valid callback in /home/cp449582/public_html/templates/romanov/html/modules.php on line 36

Это пишет не в позиции будущего модуля, а просто...,короче по порядку!


samson #
: 0
Даже не знаю, что сказать, все уже вроде по несколько раз разбирали...
Если здесь, что то не понятно может это поможет:
Скрытый текст виден только зарегистрированным пользователям


Да и эту статью и комменты в том числе прочитайте еще раз.
На скринах, что выложили толком ничего не видно...

И еще, ошибку которую выдает, а без Ваших изменений ошибки нет?
Просто говорю же на скринах кода не видно. И они ни о чем.
Navigator #
: 0
Со скринами вижу, просто думал, что они разворачиваются) Нет, без изменений нет, все в порядке. Да вроде делал это на 3й версии, тут просто немного не пойму, я здесь пытаюсь сделать модуль в позиции текстового блока, не картинки, хотя вроде какая разница.. Но почему то не встает. Не судите строго, артистир для того и покупал, что делать что то уже нужно, а пхп только в процессе обучения. Это индекс, кусок с текстовым блоком, тут вопрос - куда вставлять?
<body>
<div id="art-main">
<div id="art-header-bg" class="clearfix">
</div>
<div class="art-sheet clearfix">
<header class="art-header clearfix">
<div class="art-shapes">
<div class="art-textblock art-object219235474" data-left="49.26%">
<div class="art-object219235474-text"></div>

</div><div class="art-textblock art-object385000437" data-left="99.72%">
<div class="art-object385000437-text"></div>
</div>
Это CSS кусок по текстовому блоку

.art-object219235474

{

position: absolute;

top: 155px;

left: 49.26%;

margin-left: -242px !important;

-webkit-transform: rotate(0deg);

-moz-transform: rotate(0deg);

-o-transform: rotate(0deg);

-ms-transform: rotate(0deg);

transform: rotate(0deg);

overflow: hidden;

z-index: 3;

width: 492px;

height: 41px;

}



.art-object219235474-text

{

font-size: 30px;

font-family: Verdana, Geneva, Arial, Helvetica, Sans-Serif;

text-align: left;

vertical-align: middle;

color: #E7F3FD !important;

display: table-cell;

outline-style: none;

padding: 0px 0px !important;

word-wrap: break-word;

height: 41px;

width: 492px;

}
samson #
: 0
Ну может так как то:
Код PHP:
  1.  
  2. <div class="art-object219235474-text"><?php echo $view->position('position-36', 'elnostyle'); ?></div>
  3.  
Только сам вывод конечно поправить какие у Вас позиции. Да и еще может ошибка быть вот это <?php echo $view->position('position-36', 'elnostyle'); ?> возьмите из другого места в Вашем шаблоне и отредактируйте для своей позиции. А то конкретно этот пример неизвестно для какой версии Джумлы. Надо именно Ваш.

Ну а CSS для этого модуля поправить можно так, очистить все что для форматирования текста оставить только ширину и высоту.

Код PHP:
  1.  
  2. .art-object219235474-text
  3.  
  4. {
  5.  
  6. height: 41px;
  7.  
  8. width: 492px;
  9. z-index: 10;
  10.  
  11. }
  12.  
Ну примерно так, да еще может понадобится поставить z-index: 10; или 100 (вынести модуль на поверхность.
Navigator #
: 0
Так, пляски с бубном увенчались успехом, позиции встали, но это что? Warning: call_user_func() [function.call-user-func]: First argument is expected to be a valid callback in /home/cp449582/public_html/templates/romanov/html/modules.php on line 36 Так и есть, хотя теперь это все четко и ровно, не выбегая за пределы))))
Navigator #
: 0
Код PHP:
  1.  
$params->set('moduleclass_sfx', $classes);

call_user_func($styles[$style], $module, $params, $attribs);

}
вот 36 строка, что то не хватает для вывода....
samson #
: 0
Возможно... когда делали позицию <?php echo $view->position('position-36', 'elnostyle'); ?> стоит elnostyle, то есть используется префикс EL а у Вас смотрю вроде art- то есть надо art-nostyle (или может даже просто nostyle, будет). и потом перезапустите Денвер.
Navigator #
: 0
Действительно art- спасибо большое!!!!
catalog116 #
: 0
Спасибо большое. Всё получилось,
Скрытый текст виден только зарегистрированным пользователям
- вверху справа. Ваш сайт в закладки
Malysh #
: 0
Отличная статья. А ведь все просто smile И благодаря этой статье и статье про резиновую шапку можно сделать целую кучу позиций в шапке smile Там можно разместить не только Баннеры и Картинки и Собственный HTML (например для Лого), но и кучу других модулей. Большое спасибо за статью :)
ПС: Нечаянно заминусовал статью sad Промахнулся на стрелочке. Если можно и возможно, сделайте так что бы можно было изменить свою оценку :)
skaz #
: 0
Нечаянно заминусовал статью sad Промахнулся на стрелочке.
Всякое бывает... Не переживайте... Поправим потом.

Случайное из блогов

samson
Так как многих давно интересовало как сделать суффиксы модулей для Джумла в Artisteer 4.1-4.2 то выкладываю...
7 - +11
artnikov
Доброго всем здоровья! С наступившим ВАС и с наступающими... При переводе файлов админки WP, я как-то...
4 - +13
skaz
Решил написать эту статью в связи с тем, что некоторые пользователи программы пасуют перед редактированием...
8 - +6
artnikov
Доброго всем здоровья! что единственное самое главное, а остальное, как нибудь получится. После...
13 - +6
samson
Доля покупок и оказания услуг в интернете все увеличивается. Нам все больше приходится платить он лайн....
3 - +8