Joomla 4. Компонент K2 и форк K2ForJ4 (18 янв 2024)

Если вас, как и меня, достало выслушивать (вычитывать) бесконечные обещания разработчика K2 опубликовать версию компонента K2 под Joomla 4 (без чего невозможно реализовать апгрейд from Joomla 3 to Joomla 4) - воспользуйтесь форком K2ForJ4. Который в данный момент установлен и без каких-либо проблем работает на этом веб-сайте.

Как создать новую позицию модуля в joomla

Больше
13 года 11 мес. назад - 11 года 8 мес. назад #1 от Aleksej
Очень нередко бывает так, что не хватает позиций для модулей, уже прописанных в том или ином шаблоне. В этом случае поступаем следующим образом -

1. В файле /templates/"ваш шаблон"/templateDetails.xml прописываем новую позицию (как обзовете - неважно):

<positions>
<position>TestPos</position>
<position>left</position>
<position>right</position>
<position>top</position>
<position>user1</position>
<position>user2</position>
<position>user3</position>
<position>user4</position>
<position>debug</position>
<position>syndicate</position>
<position>"новая позиция</position>
</positions>


2. Редактируем файл /templates/"Ваш шаблон"/index.php следующим образом; вставляем строчку

<jdoc:include type="modules" name="новая позиция" />

Куда именно? что же, поэкспериментируйте... ничего страшного не случится; всегда эту строчку сумеете убрать. Совет: попробуйте воткнуть ее поблизости от той, уже имеющейся позиции, которая наиболее близко находится к необходимой вам.

Небольшой пример

Предположими, нам хотелось бы вставить красивый слайдер в верхнюю часть сайта; но не на всю ширину экрана, а примерно вот так -



a) Редактируем index.php используемого шаблона - вставляем новую позицию модуля right_logo. В результате получаем следующее (показана верхняя часть файла):

<?php
defined( '_JEXEC' ) or die( 'Restricted access' );
JPlugin::loadLanguage( 'tpl_SG1' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
<head>
<jdoc:include type="head" />
<link rel="stylesheet" href="templates/system/css/system.css" type="text/css" />
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/template.css" type="text/css" />
<!--[if lte IE 6]>
<link rel="stylesheet" href="templates/<?php echo $this->template ?>/css/ie6.css" type="text/css" />
<![endif]-->

</head>
<body id="page_bg">
<div id="wrapper">
<div id="holder">
<div id="header">
<div id="search"><jdoc:include type="modules" name="user4" /></div>
<div class="logo">
<table cellspacing="0" cellpadding="0">
<tr>
<td>
<h1><a href="index.php"><?php echo $mainframe->getCfg('sitename') ;?></a></h1>
</td>
</tr>
</table>
</div>
<div id="right_logo"><jdoc:include type="modules" name="right_logo" /></div>
<div id="pillmenu"><jdoc:include type="modules" name="user3" /></div>
<div class="cpathway"><jdoc:include type="module" name="breadcrumbs" /></div>
<div class="clr"></div>
</div>


b) Редактируем template.css используемого шаблона; в самом его конце добавляем следующий код:
Code:
#right_logo { position: absolute; height: 252px; width: 531px; overflow: hidden; left: 440px; top: 40px; }

с) И последнее - не забываем прописать вновь созданную позицию модуля right_logo в templateDetails.xml.

Новая позиция создана, и теперь мы легко вставляем необходимый нам модуль... после чего имеем полное право любоваться делом рук своих. :)

Вышеописанную процедуру возможно несколько упростить, если воспользоваться Modules Anywhere (легко найдете в сети). Позволяет вставить любой модуль практически в любое место вашего сайта; после установки в редакторе материалов появляется соответствующая кнопка. Очень полезный инструмент; при помощи Modules Anywhere - без малейших проблем и не копаясь в файлах шаблона - сможете вставить любой модуль даже в текст.

Более подробно о Modules Anywhere .
Последнее редактирование: 11 года 8 мес. назад пользователем Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Dev banner 2
Больше
12 года 11 мес. назад #2 от Жора
А где находятся файлы шаблонов?

Я использую шаблон J-0013, он имеет в принципе достаточное количество позиций, но на сайте они отображаются некорректно, например модуль в позиции Right показывается слева от контента, и вообще справа ни один модуль не показывается.

Я так понимаю проблема в самом шаблоне, есть ли возможность исправления шаблона?

Спортивно аналитический сайт, прогнозы и ставки.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 11 мес. назад #3 от Aleksej

Жора пишет: А где находятся файлы шаблонов?

Файлы шаблонов находятся, само собой разумеется, в папке шаблонов... в /public_html/templates.
Думаю, нелишним тебе будет в контексте этого вопроса постараться освоить Firebug; расширение для Mozilla Firefox... или аналогичное - для какого-либо другого браузера. Оно служит именно этим целям - показывает, что где находится, и что и где нужно изменить, чтобы получить то-то и то-то.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 11 мес. назад - 12 года 11 мес. назад #4 от Жора
В шаблоне jm-0013 позиция Right на сайте отображается слева, вот код участка с модулем (так ведь?), что в нём изменить что бы позиция Right на сайте отображалась справа?
Code:
<?php if (stristr($item, 'right')) { ?> <div id="right" class="<?php echo $className; ?>"> <jdoc:include type="modules" name="right" style="djmodule"/>

Спортивно аналитический сайт, прогнозы и ставки.
Последнее редактирование: 12 года 11 мес. назад пользователем p.rishard.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
12 года 11 мес. назад #5 от ralf

Жора пишет: вот код участка с модулем (так ведь?)

Нет, не так.
Позиция модуля определяется стилями, css. Вот там и ищите.
Незаменимый инструмент для этого - firebug:

Firebug интегрируется в Firefox для того, чтобы принести изобилие средств разработки на кончики Ваших пальцев, в то время как Вы путешествуете по сети. Вы можете редактировать, выполнять отладку и просматривать CSS, HTML и JavaScript в режиме реального времени на любой странице в сети...


В firebug прекрасно видно, какой именно стиль, какой именно css отвечает за ту или иную позицию.

Кроме того, если считаете, что joomla-monster допустил ошибку в своем шаблоне - отчего не напишете разрабам? Это обычная практика. Отвечают они, как правило, оперативно, и всем будет польза...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Работает на Kunena форум