Новости Joomla

Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5

👩‍💻 Плагин - «Конвертация таблиц в сетку Bootstrap 5» для Joomla 5.Работает везде, где работают плагины группы content. Проверено в материалах, модулях, в описаниях товаров JoomShopping.Плагин конвертирует любую таблицу в адаптивную блочную сетку Bootstrap 5.В админке, в редакторе создаете таблицу, размещает в её ячейках контент, а на сайте эта таблица выводиться как адаптивная сетка из блоков. На мобильных устройствах контент размещенный в таблице будет виден и ничто не вылезет за пределы сайта как раньше.Версия плагина: 1.0.0. Разработчик предупреждает, что плагин пока не корректно работает со сложными таблицами (где много объединенных ячеек или столбцов) - данная проблема будет решена в следующих версиях. В дальнейшем планируется также добавление настроек.Стоимость: 2 500р. Тем, кто даст обратную связь по работе плагина и развёрнутый комментарий, тот получит скидку в 50% на любое другое платное расширение разработчика или сможет сделать заказ на разработку по льготной цене.Разработчик - участник нашего сообщества Дмитрий (@kit2m2).ПодробнееСайт разработчика@joomlafeed#joomla #JoomShopping #расширения

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6

JoomShaper SP Page Builder 6: динамический контент, комментарии и Joomla 6.Анонсирован выход новой версии одного из самых распространённых конструкторов страниц на Joomla от студии JoomShaper.v.6.0.0. Что нового?Динамический контент. Добавлена ​​поддержка материалов Joomla в динамическом контенте.➕ Новые комментарии для Joomla. Введена встроенная система комментирования статей.➕ Плагин аватара пользователя. Включена поддержка изображений профиля через плагин SP Page Builder - Profile Image.🫥 Обновление: Добавлена ​​совместимость с моделями GPT-5.🫥 Обновление: добавлена ​​опция приоритета извлечения в надстройку «Изображение». 🫥 Обновление: улучшена скорость загрузки динамического контента.🫥 Обновление: включена поддержка вертикального видео в модулях «Видео» и «Модальные всплывающие окна».🛠 Исправление: исправлены ошибки, из-за которых дополнения к формам не работали на страницах динамических сведений.🛠 Исправление: устранены проблемы с разрывом макета и всплывающими окнами при разбиении на страницы динамической медиагалереи.🛠 Исправление: решена проблема с неработоспособностью списка ссылок на страницы в редакторе интерфейса.🛠 Исправление: Исправлены проблемы с маршрутизацией многоязычных страниц SEF.🛠 Исправление: устранена уязвимость критического обхода пути в Media Manager.Большое спасибо за ссылку участнику нашего сообщества Ринату Кажетову (@rkazhet)!Новость на сайте JoomShaper.@joomlafeed#joomla #расширения #шаблоны

0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 1898 Просмотров
*

Krec13

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Пытаюсь к CB прикрутить вывод zoo-материалов пользователя, чей профиль мы просматриваем.
Что сделано:
- в профиле создана страница
- создана кнопка перехода на эту страницу, отображающаяся только если это не ваш профиль
- обычным списком выводятся статьи и ссылки на них
Вот код:
Код: php
	
static function getZOOItem($profileID)
{
global $_CB_database;

$sql  = "SELECT
id
FROM
".$_CB_database->nameQuote('#__zoo_item')."
WHERE
".$_CB_database->nameQuote('created_by')." = ".$_CB_database->quote($profileID)."
AND
".$_CB_database->nameQuote('application_id')." = '1'
AND
".$_CB_database->nameQuote('type')." IN ('article','photo','video')
AND
".$_CB_database->nameQuote('state')." = '1'
ORDER BY
".$_CB_database->nameQuote('created')." DESC";

$query = $_CB_database->setQuery($sql);
$row  = $_CB_database->loadObjectList();
return $row;
}

function postsbyform($option,$uid){
global $_CB_framework, $ueConfig;
require_once (JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_zoo' . DS . 'config.php');
$zoo    = App::getInstance('zoo');
$row = HTML_comprofiler::getZOOItem($uid);
$html = "";
ob_start();
?>
<div class="myzooitems">
<ul class="items">

<?php foreach ($row as $data) : ?>
<li>
<?php
$item = $zoo->table->item->get($data->id);
$link = $zoo->route->item($item);
?>
<a href="<?php echo $link; ?>" title="<?php echo $item->name; ?>"><?php echo $item->name; ?><a>
</li>
<?php endforeach; ?>

</ul>
            </div>
<?php
$html = ob_get_contents();
ob_end_clean();
echo $html;
}
Много всего перерыл, но не понимаю, как вывести всё это как тизер, либо вывести позицию медиа каждой статьи/картинку статьи.
Надо сделать что-то типа этого:
Код: php
		<?php foreach ($this->items as $id => $item) : ?>
<li>

<?php $this->params = $item->getParams('site'); ?>
<?php $type = ($this->renderer->pathExists('item/'.$item->type))? $item->type : 'item'; ?>
<div class="preview hidden <?php echo $type; ?>">
<?php
$layout  = 'item.'.($type != 'item' ? $item->type . '.' : '');
echo $this->renderer->render($layout.'teaser', array('view' => $this, 'item' => $item));
?>
</div>

</li>
<?php endforeach; ?>
Но не понимаю, как заменить $this.
« Последнее редактирование: 12.02.2013, 12:07:00 от Krec13 »
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Krec13

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Я основывался на твоем плагине. А его можно сделать не вкладкой в профиле, а вывести на страницу?
---
Пытаюсь всё это дело вставить в comprofiler.html.php, но постоянная ругать на $this. И в новый класс поместил, всё равно одно и тоже.
Подскажи, пожалуйста, как это преобразовать без $this:
Код: php
$layout  = 'item.'.($type != 'item' ? $item->type . '.' : '');
echo $this->renderer->render($layout.'teaser', array('view' => $this, 'item' => $item));
Как выбрать определенный лэйаут и вывести как тизер?
« Последнее редактирование: 12.02.2013, 12:29:49 от Krec13 »
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Пытаюсь всё это дело вставить в comprofiler.html.php, но постоянная ругать на $this. И в новый класс поместил, всё равно одно и тоже.
Подскажи, пожалуйста, как это преобразовать без $this:
Код: php
$layout  = 'item.'.($type != 'item' ? $item->type . '.' : '');
echo $this->renderer->render($layout.'teaser', array('view' => $this, 'item' => $item));

Данный код скопирован из шаблона приложения ZOO, поэтому $this это экземпляр класса view. Сделайте get_class($this) и увидите, что класс $this в ZOO != CB.

Читайте основы php.

Код: php
<?php
/**
 * CB My ZOO Items - CommunityBuilder plugin displays a tab with the last user ZOO posts
 *
 * @version 2.5.0.0
 * @package ZOO plugin for CommunityBuilder
 * @author Attavus M.D. (webmaster@raslab.org)
 * @copyright (C) 2011 R.A.S.Lab (http://www.raslab.org)
 * @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
 *
 **/

// ensure this file is being included by a parent file
if ( ! ( defined( '_VALID_CB' ) || defined( '_JEXEC' ) || defined( '_VALID_MOS' ) ) ) { die( 'Direct Access to this location is not allowed.' ); }


class MyZOOItemsTab extends cbTabHandler {

private $zoo;

function MyZOOItemsTab() {
$this->cbTabHandler();
require_once (JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_zoo' . DS . 'config.php');
$this->zoo = App::getInstance('zoo');
}//function

/**
* Generates the HTML to display the user profile tab
* @param object tab reflecting the tab database entry
* @param object mosUser reflecting the user being displayed
* @param int 1 for front-end, 2 for back-end
* @returns mixed : either string HTML for tab content, or false if ErrorMSG generated
*/

function getDisplayTab($tab, $user, $ui)
{
$zooapps = trim($this->params->get('zooapp'), ',');

$def_limit = $this->params->get('count', 10);
$paging = $this->params->get('paging',1);

if ($tab->description != null) $return .= "<div class=\"tab_Description\">".$tab->description."</div>";

$pagingParams = $this->_getPaging(array(),array("_"));
if ($paging)
{
$total = $this->countZOOItem((int) $user->id, $zooapps);
if (!is_numeric($total)) $total = 0;

if (!isset($pagingParams["_limitstart"])) $pagingParams["_limitstart"] = "0";
if ($def_limit > $total) $pagingParams["_limitstart"] = "0";
}

$items = $this->getZOOItems ((int) $user->id, $pagingParams["_limitstart"], $def_limit, $zooapps);

$html = "";

ob_start();
?>

<div class="myzooitems">
<?php if (!empty($items)) : ?>
<ul class="items">
<?php foreach ($items as $item) : ?>
<li class="item">
<?php

$renderer = $this->zoo->renderer->create('item')->addPath(array($this->zoo->path->path('component.site:'), $item->getApplication()->getTemplate()->getPath()));

$path   = 'item';
$prefix = 'item.';
$type   = $item->getType()->id;
if ($renderer->pathExists($path.DIRECTORY_SEPARATOR.$type)) {
$path   .= DIRECTORY_SEPARATOR.$type;
$prefix .= $type.'.';
}

if (in_array('teaser', $renderer->getLayouts($path))) {
echo $renderer->render($prefix.'teaser', array('item' => $item));
} elseif (in_array('full', $renderer->getLayouts($path))) {
echo $renderer->render($prefix.'full', array('item' => $item));
} else {
echo '<a href="'.cbSef('index.php?option=com_zoo&task=item&item_id='. $item->id).'" >'.$item->name.'</a>';
}

?>
</li>
<?php endforeach; ?>

</ul>
<?php if ($paging && $total > $def_limit):?>
<!-- Start Pagination -->
<div style='width:95%;text-align:center;'><?php echo $this->_writePaging($pagingParams,"_",$def_limit,$total);?></div>
<!-- End Pagination -->
<?php endif; ?>
<?php else : ?>
<p class="no-items"><?php echo JText::_('PLG_MYZOOITEMS_NO_ITEMS'); ?></p>
<?php endif; ?>
</div>
<?php
$html = ob_get_contents();
ob_end_clean();
return $html;
}//function

function getZOOItems ($profileID, $limitstart, $limit, $zooapps) {
//init vars
$db    = $this->zoo->database;
// get dates
$date = $this->zoo->date->create();
$now  = $db->Quote($date->toMySQL());
$null = $db->Quote($db->getNullDate());

//if(!empty($zooapp)) {
// $conditions = " AND application_id = 1 ";
//} else {
// $conditions = "";
//}

if($this->params->get('display_expired', 1)) {
$expired = "";
} else {
$expired = ' AND (publish_up = '.$null.' OR publish_up <= '.$now.')'
.' AND (publish_down = '.$null.' OR publish_down >= '.$now.')';
}

$options = array(
'select' => '*',
'from' => ZOO_TABLE_ITEM,
'conditions' => 'created_by = '.$profileID." AND application_id = 1",
'order' => 'priority DESC',
'offset' => (int) ( $limitstart ? $limitstart : 0 ),
'limit' =>  (int) $limit);
// get items
$items = $this->zoo->table->item->all($options);
return $items;
}


function countZOOItem($profileID, $zooapp)
{
global $_CB_database;

//if(!empty($zooapp))
//{
// $condition = " AND application_id = 1";
//}
//else
//{
// $condition = "";
//}

$sql  = "SELECT count(*)
FROM ".$_CB_database->nameQuote('#__zoo_item')."
WHERE ".$_CB_database->nameQuote('created_by')." = ".$_CB_database->quote($profileID)
." AND application_id = 1";
$query = $_CB_database->setQuery($sql);
$count  = $_CB_database->loadResult();
if($_CB_database->getErrorNum()) {
JError::raiseError( 500, $_CB_database->stderr());
}

return $count;//$count->total;
}


function getExpiredCondition()
{
global $_CB_database;

$date = new JDate();
$now = $date->toFormat();

$condition = " AND ( " . " "
  . "( "
                      . $_CB_database->nameQuote('publish_up')." <= ".$_CB_database->quote($now). " AND "
  . $_CB_database->nameQuote('publish_down')." >= ".$_CB_database->quote($now). " "
  . ") OR "
  .$_CB_database->nameQuote('publish_down')." = ".$_CB_database->quote("0000-00-00 00:00:00"). " "
. " ) ";

return $condition;
}
}

Это версия плагина для вывода с помощью разметки, рабочий. Промежуточный вариант, в финале должен был войти в новую расширенную версию плагина, но пока не дошел до него.
« Последнее редактирование: 12.02.2013, 13:17:03 от MetaSpirit »
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Krec13

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Спасибо большое, что поделились))
Отдельно в CB через вкладки работает, но когда пытаюсь интегрировать в comprofiler.html.php, получаю ошибки:
Fatal error: Call to a member function getApplication()
Fatal error: Call to a member function all()
---
Мой косяк, подправил. Огромное спасибо)
« Последнее редактирование: 12.02.2013, 13:37:18 от Krec13 »
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Спасибо большое, что поделились))
не вижу ^-^

Код детально изучен?
Я предполагаю, что во-первых не добавлен конфиг - require_once (JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_zoo' . DS . 'config.php');
во-вторых    $zoo = App::getInstance('zoo');, а по тексту следует заменить $this->zoo на $zoo
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Krec13

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
Всё заменил, всё правильно расставил. Теперь всё, как надо.
не вижу ^-^
Хоть убей, не вижу, где + нажать.
*

MetaSpirit

  • Завсегдатай
  • 1370
  • 106 / 0
  • R.A.S.Lab[.org]
Всё заменил, всё правильно расставил. Теперь всё, как надо.Хоть убей, не вижу, где + нажать.
Нужно десяток сообщений, как минимум.
R.A.S.Lab[.org]: ZOOvirtue - корзина для ZOO, Яндекс.Карты для ZOO, ItemPanes - табы для ZOO, ZOOlendar - календарь для ZOO  и др.
Создание расширений для YOOtheme ZOO на заказ. Становитесь в очередь.
*

Krec13

  • Осваиваюсь на форуме
  • 20
  • 1 / 0
А-а, ща, это десятое)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с добавлением материалов в ZOO

Автор tvorec1988

Ответов: 1
Просмотров: 2774
Последний ответ 22.02.2021, 22:21:14
от draff
Вывод в ZOO description материалов по формуле "название+статическое описание"

Автор saschka

Ответов: 0
Просмотров: 3934
Последний ответ 24.04.2017, 14:41:48
от saschka
Вывод материалов одного пользователя

Автор 310

Ответов: 0
Просмотров: 1813
Последний ответ 27.03.2017, 17:53:20
от 310
Как вывести список материалов автора?

Автор zinkol

Ответов: 2
Просмотров: 1858
Последний ответ 04.07.2014, 16:30:00
от sergoguga
Кнопка "удалить" в подаче материалов

Автор steve4822

Ответов: 0
Просмотров: 1169
Последний ответ 31.03.2014, 06:12:07
от steve4822