Новости Joomla

WT Set elements v.1.0.0: плагин поля для RadicalMart

WT Set elements v.1.0.0: плагин поля для RadicalMart

👩‍💻 WT Set elements v.1.0.0: плагин поля для RadicalMart.Плагин пользовательского поля компонента интернет-магазина для Joomla - RadicalMart (@radicalmart). Плагин позволяет создавать набор элементов, включающих заголовок, изображение и краткое описание и выбирать необходимые из них в товаре. Отображать наборы элементов можно в виде товара и в списке товаров (в своих макетах). От клиента поступил запрос на возможность добавления для товаров в RadicalMart списка повторяемых элементов. Это должен был быть редактируемый в одном месте список функций и режимов, которые могли относиться к разным товарам одной категории в разных сочетаниях. Во вкладке параметров "Отображение" вы можете выбрать отображать или нет элементы в категории товаров и/или карточке товара. Для каждого вида возможно выбрать собственный макет. Файлы макета находятся в /layouts/plugins/radicalmart_fields/wtsetelements. Вы можете использовать свои файлы макета в формате .php, разместив их в этой папке. Кроме того, файлы макетов можно переопределить стандартным способом Joomla, после чего они будут доступны по адресу: /templates/YOUR_TEMPLATE/html/layouts/plugins/radicalmart_fields/wtsetelements.Плагин предполагает самостоятельную разработку макетов вывода. Макеты "из коробки" следует рассматривать как образец для создания собственных.Плагин бесплатный. Протестирован на Joomla 5.3.3 и RadicalMart 2.2.4.Плагин разработан в соавторстве участниками нашего сообщества: Сергеем Сергевниным (@gresserg) и Сергеем Толкачёвым (@sergeytolkachyov).Страница расширенияGitHub расширения@joomlafeed#joomla #расширения #radicalmart

IWS.BY VK app widget - Виджет приложения ВКонтакте для Joomla

IWS.BY VK app widget - Виджет приложения ВКонтакте для Joomla

👩‍💻 IWS.BY VK app widget - Виджет приложения ВКонтакте для Joomla.Модуль «Виджет приложения ВКонтакте» для Joomla поможет добавить на сайт виджет с карточкой приложения или игры из социальной сети ВКонтакте.У вас возникла потребность отобразить информацию о ваших приложениях или играх на сайте с кнопкой перехода в социальную сеть, то этот модуль для Вас. Вам не придется хранить информацию о приложении у себя на сайте, все данные получаются через публичное API социальной сети ВКонтакте. Хранение информации на стороне ВКонтакте позволит Вам не нагружать базу данных сайта.В модуле имеется всего несколько опций и полей, которые максимально упрощают публикацию виджета. Первая опция позволяет подключить публичное API социальной сети ВКонтакте, необходимое для работы виджетов. Следующее поле потребует ввести идентификатор приложения или игры, присвоенный в социальной сети ВКонтакте. Следующая опция позволит выбрать вид отображаемой информации в виджете.Модуль имеет 3 варианта отображения:- карточка- участники- кнопкаПоддерживаемые версии Joomla: Joomla 3, Joomla 4, Joomla 5.Страница расширенияJoomla Extensions Directory#joomla #расширения #vk

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla

👩‍💻 SW JProjects v.2.5.0 - компонент каталога цифровых проектов на Joomla.Компонент - менеджер цифровых проектов для Joomla! CMS. Компонент обеспечивает создание каталога цифровых проектов и предоставляет возможность скачивания, в том числе с использованием лицензионных ключей.👩‍💻 v.2.5.0. Что нового?Схемы структур данных для серверов обновлений. Теперь с SW JProjects вы может создавать сервер обновлений не только для расширений Joomla, но и свои собственные. Например, вам нужно, чтобы структура данных сервера обновлений была другая и формат должен быть, например, не XML, а JSON. Формирование структуры данных для сервера обновлений расширений Joomla вынесено в отдельный плагин. Вы можете создать свой собственный плагин и реализовать в нём нужную вам структуру данных, добавив или наоборот исключив отображаемые данные. Сервер обновлений в компоненте по-прежнему отображает информацию о списке проектов и их версиях, о конкретном проекте и его changelog.Можно выбрать схему данных сервера обновлений глобально для всего компонента, выбрать другую схему данных для категории проектов, а так же выбрать схему в каждом проекте.

Разработчикам в качестве образца можно посмотреть плагин схемы данных для Joomla в составе компонента или же плагин-образец JSON-схемы на GitHub.
Группа плагинов swjprojects. Для нужд компонента создана группа плагинов swjprojects. В частности, в этой группе находится плагин структуры данных Joomla расширений для сервера обновлений.Изменение языковых констант. Изменены некоторые языковые константы в панели администратора. Если вы делали переопределение констант - переопределите их снова.👩‍💻 Joomla 6. Внесены изменения для корректной установки и работы компонента на Joomla 6. Компонент успешно протестирован на Joomla 6-beta2.Минимальная версия Joomla - 5. Подняты минимальные системные требования: Joomla 5.0.0 и PHP 8.1.
- Страница расширения👉 Плагин-образец кастомной JSON-схемы данных для сервера обновлений на GitHub.- GitHub расширения- Документация на GitHub- Joomla Extensions Directory#joomla #расширения

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

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
портировал шаблон в j1.5 из шаблона j1.0, но осталась конструкция, в которой подключается симпотная встроенная в шаблон менюшка suckerfish: никак мозга не хватает. Вот код из index.php шаблона j1.0:

Код
<?php
$menu_name = "mainmenu";

require($mosConfig_absolute_path."/templates/" . $mainframe->getTemplate(). "/suckerfish.php");
require($mosConfig_absolute_path."/templates/" . $mainframe->getTemplate(). "/setup.php");

?>

Вижу, что код явно j1.0 и 2-я строка по аналогии должна быть, но моих познаний, увы, не хватило...
« Последнее редактирование: 15.07.2011, 19:40:20 от Dorfman »
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
ЗЫ да и в самОй suckerfish ещё предстоит поковыряться...  :'( Вот код:

Код
<?php

//mosShowListMenu('mainmenu'); // currently hard-coded to mainmenu
ini_set('arg_separator.output','&amp;');

function mosShowListMenu($menutype) {
global $database, $my, $cur_template, $Itemid;
global $mosConfig_absolute_path, $mosConfig_live_site, $mosConfig_shownoauth;
    
$class_sfx = null;
error_reporting(E_ALL ^ E_NOTICE);
$hilightid = null;

$intUserType = 0;
if($my->gid){
switch ($my->usertype)
{
case 'Super Administrator':
$intUserType = 0;
break;
case 'Administrator':
$intUserType = 1;
break;
case 'Editor':
$intUserType = 2;
break;
case 'Registered':
$intUserType = 3;
break;
case 'Author':
$intUserType = 4;
break;
case 'Publisher':
$intUserType = 5;
break;
case 'Manager':
$intUserType = 6;
break;
}
}
else
{
$intUserType = 0;
}

if ($mosConfig_shownoauth) {
     $database->setQuery("SELECT m.*, count(p.parent) as cnt" .
"\nFROM #__menu AS m" .
"\nLEFT JOIN #__menu AS p ON p.parent = m.id" .
    "\nWHERE m.menutype='$menutype' AND m.published='1'" .
"\nGROUP BY m.id ORDER BY m.parent, m.ordering ");
      } else {
     $database->setQuery("SELECT m.*, sum(case when p.published=1 then 1 else 0 end) as cnt" .
"\nFROM #__menu AS m" .
"\nLEFT JOIN #__menu AS p ON p.parent = m.id" .
    "\nWHERE m.menutype='$menutype' AND m.published='1' AND m.access <= '$my->gid'" .
"\nGROUP BY m.id ORDER BY m.parent, m.ordering ");
   }

$rows = $database->loadObjectList( 'id' );
echo $database->getErrorMsg();

//work out if this should be highlighted
$sql = "SELECT m.* FROM #__menu AS m"
. "\nWHERE menutype='". $menutype ."' AND m.published='1'";
$database->setQuery( $sql );
$subrows = $database->loadObjectList( 'id' );
$maxrecurse = 5;
$parentid = $Itemid;

//this makes sure toplevel stays hilighted when submenu active
while ($maxrecurse-- > 0) {
$parentid = getParentRow($subrows, $parentid);
if (isset($parentid) && $parentid >= 0 && $subrows[$parentid]) {
$hilightid = $parentid;
} else {
break;
}
}
  //echo "<!--[if lte IE 7]>\n";
  include_once( "$mosConfig_absolute_path/templates/" . $cur_template . "/scripts/ie.js" );
  //echo "<![endif]-->\n";

$indents = array(
// block prefix / item prefix / item suffix / block suffix
array( "<ul>", "<li>" , "</li>", "</ul>" ),
);

    // establish the hierarchy of the menu
$children = array();

    // first pass - collect children
    foreach ($rows as $v ) {
$pt = $v->parent;
$list = @$children[$pt] ? $children[$pt] : array();
array_push( $list, $v );

        $children[$pt] = $list;

    }

    // second pass - collect 'open' menus
$open = array( $Itemid );
$count = 20; // maximum levels - to prevent runaway loop
$id = $Itemid;
while (--$count) {
if (isset($rows[$id]) && $rows[$id]->parent > 0) {
$id = $rows[$id]->parent;
$open[] = $id;
} else {
break;
}
}

$class_sfx = null;

    mosRecurseListMenu( 0, 0, $children, $open, $indents, $class_sfx, $hilightid );
}

function mosRecurseListMenu( $id, $level, &$children, $open, &$indents, $class_sfx, $highlight ) {
global $Itemid;
global $HTTP_SERVER_VARS, $mosConfig_live_site;

if (@$children[$id]) {
$n = min( $level, count( $indents )-1 );



        echo $indents[$n][0];

foreach ($children[$id] as $row) {


       switch ($row->type) {
           case 'separator':
           // do nothing
           $row->link = "seperator";

           break;
          
           case 'url':
           if ( eregi( 'index.php\?', $row->link ) ) {
         if ( !eregi( 'Itemid=', $row->link ) ) {
         $row->link .= '&Itemid='. $row->id;
         }
         }
           break;
          
           default:
           $row->link .= "&Itemid=$row->id";
          
           break;
           }

            $li =  "\n".$indents[$n][1] ;
            $current_itemid = trim( mosGetParam( $_REQUEST, 'Itemid', 0 ) );
            if ($row->link != "seperator" &&
$current_itemid == $row->id ||
             $row->id == $highlight ||
                (sefRelToAbs( substr($_SERVER['PHP_SELF'],0,-9). $row->link)) == $_SERVER['REQUEST_URI'] ||
                (sefRelToAbs( substr($_SERVER['PHP_SELF'],0,-9). $row->link)) == $HTTP_SERVER_VARS['REQUEST_URI']) {
$li = "<li class='active'>";
}
         echo $li;

            echo mosGetLink( $row, $level, $class_sfx );
mosRecurseListMenu( $row->id, $level+1, $children, $open, $indents, $class_sfx, "" );
            echo $indents[$n][2];

        }
echo "\n".$indents[$n][3];

}
}

function getParentRow($rows, $id) {
if (isset($rows[$id]) && $rows[$id]) {
if($rows[$id]->parent > 0) {
return $rows[$id]->parent;
}
}
return -1;
}

function mosGetLink( $mitem, $level, $class_sfx='' ) {
global $Itemid, $mosConfig_live_site;
$txt = '';

$mitem->link = str_replace( '&', '&amp;', $mitem->link );

if (strcasecmp(substr($mitem->link,0,4),"http")) {
$mitem->link = sefRelToAbs($mitem->link);
}

    switch ($mitem->browserNav) {
// cases are slightly different
case 1:
// open in a new window
    if ($mitem->cnt > 0) {
  if ($level == 0) {
                $txt = "<a class=\"topdaddy\" target=\"_window\"  href=\"$mitem->link\">$mitem->name</a>";
  } else {
                $txt = "<a class=\"daddy\" target=\"_window\"  href=\"$mitem->link\">$mitem->name</a>";
  }
} else {
  $txt = "<a href=\"$mitem->link\" target=\"_window\" >$mitem->name</a>\n";
}
break;

case 2:
// open in a popup window
    if ($mitem->cnt > 0) {
if ($level == 0) {
                $txt = "<a href=\"#\" class=\"topdaddy\" onClick=\"javascript: window.open('$mitem->link', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550');\" class=\"$menuclass\">$mitem->name</a>\n";
  } else {
                $txt = "<a href=\"#\" class=\"daddy\" onClick=\"javascript: window.open('$mitem->link', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550');\" class=\"$menuclass\">$mitem->name</a>\n";
  }
} else {
   $txt = "<a href=\"#\" onClick=\"javascript: window.open('$mitem->link', '', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=780,height=550');\" class=\"$menuclass\">$mitem->name</a>\n";
}

break;

case 3:
// don't link it
    if ($mitem->cnt > 0) {
  if ($level == 0) {
                $txt = "<a class=\"topdaddy\">$mitem->name</a>";
  } else {
                $txt = "<a class=\"daddy\">$mitem->name</a>";
  }
} else {
  $txt = "<a>$mitem->name</a>\n";
}

break;

default: // formerly case 2
// open in parent window
if (isset($mitem->cnt) && $mitem->cnt > 0) {
   if ($level == 0) {
                $txt = "<a class=\"topdaddy\" href=\"$mitem->link\">$mitem->name</a>";
  } else {
                $txt = "<a class=\"daddy\" href=\"$mitem->link\"> $mitem->name</a>";
  }
} else {
  $txt = "<a href=\"$mitem->link\">$mitem->name</a>";
}
        break;
}
    return $txt;
}
?>

Но главное сейчас её правильно подключить...
« Последнее редактирование: 15.07.2011, 19:40:43 от Dorfman »
*

Dorfman

  • Завсегдатай
  • 1202
  • 78 / 4
  • Почти влез...
Ну что, никто не может мне подсказать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Слетели URL и шаблон

Автор max888

Ответов: 2
Просмотров: 5813
Последний ответ 28.12.2020, 17:37:52
от draff
VirtueMart 1.9 шаблон письма

Автор m176

Ответов: 0
Просмотров: 3128
Последний ответ 23.10.2020, 12:38:35
от m176
Как вывести путь до шаблона с помощью API Joomla?

Автор elche

Ответов: 13
Просмотров: 15873
Последний ответ 11.09.2018, 23:48:50
от DK-Scorp
шаблон IT Newsy - By IceTheme проблема со списком.

Автор wolf34

Ответов: 4
Просмотров: 6067
Последний ответ 30.05.2017, 11:52:27
от darkghost
Стили шаблона

Автор karkan25

Ответов: 12
Просмотров: 4626
Последний ответ 21.05.2017, 16:40:32
от karkan25