Добрый день.
Нужна помощь зала, т.к. не являюсь программистом. Собственно сабж - хочу сделать плагин, чтоб Phoca gallery правильно отображалась в Joomap (плагина нет ни на сайте Джумап ни на сайте Фоки). Посмотрел по таблицам, взял плагин Datso gallery и адаптировал. И вот все было бы класс, если бы в меню был только один пункт с типом Phoca category. А у меня несколько таких пунктов. Таким образом плагин отрисовывает в карте сайта для каждого пункта меню все категории и подкатегории для Фоки, а не только соответствующие категории. Бардак вобщем посмотреть здесь можно
http://natalia-roman-design.com/ru/karta-saita. Переделать плагин с плагина для контента Джумапа сейчас не смогу, мало опыта. Привожу ниже код переделанного плагина. Может кто-то напишет пару строк, чтоб категории не дублировались.
<?php
defined( '_VALID_MOS' ) or die( 'Restricted access.' );
$tmp = new Joomap_PhocaGallery;
JoomapPlugins::addPlugin( $tmp );
class Joomap_PhocaGallery {
function isOfType( &$joomla, &$parent ) {
if( strpos($parent->link, 'option=com_phocagallery') ) {
return true;}
return false;
}
function &getTree( &$joomap, &$parent ) {
global $database;
$list = array();
$database->setQuery("select id, title, parent_id from #__phocagallery_categories order by ordering");
$categories = $database->loadObjectList();
foreach($categories as $category) {
$node = new stdclass;
$node->id = $parent_id->id;
$node->name = $category->title;
$node->link = $parent_id->link.'&Itemid='.$parent_id->id.'&func=viewcategory&catid='.$category->id;
$node->tree = array();
$node->pid = $category->parent_id;
$list[$category->id] = $node;
}
foreach( $list as $id => $category ) { // move children into their parent nodes
if( $category->pid > 0 && isset($list[$category->pid]) ) {
$list[ $category->pid ]->tree[] = &$list[$id];
}
}
foreach( $list as $id => $category ) { // remove children from top tree
if( $category->pid > 0 ) {
unset( $list[$id] );
}
}
return $list;
}
}
?>