Предлагаю начать разработку плагина для галереи Datso ее многие используют ведь. я вот тут начал.
В файле
administrator/components/com_sh404sef/sh404sef.class.php
После
var $shRemoInsertCategoryId = false;
Вставляем:
/* Datso */
var $shInsertDatsoName = true;
var $shDatsoInsertItemId = false;
/* integer, if 0, no categories will be inserted in URL for a product
if 1, only 'last' category will be inserted in URL
if 2, all nested categories will be inserted in URL */
var $shDatsoInsertCategories = 2;
/* boolean, if true, category id will be prepended to category name */
var $shDatsoInsertCategoryId = false;
var $shDatsoAuthorId = false;
Языковой файл должен лежать по адресу \administrator\components\com_sh404sef\language\plugins
<?php
if (!defined('_JEXEC')) die('Direct Access to this location is not allowed.');
// english
$sh_LANG['en']['_SH404SEF_DATSO_HOME'] = 'Home';
?>
файл для \components\com_sh404sef\sef_ext
<?php
/**
* Datso SEF extension for Joomla!
*
* @copyright 2009 Xuga, добавляемся :)
* @license GNU General Public License
* @package sh404SEF
*/
defined( '_JEXEC' ) or die( 'Direct Access to this location is not allowed.' );
// ------------------ standard plugin initialize function - don't change ---------------------------
global $sh_LANG, $sefConfig;
$shLangName = '';
$shLangIso = '';
$title = array();
$shItemidString = '';
$dosef = shInitializePlugin($lang, $shLangName, $shLangIso, $option);
if ($dosef == false) return;
// ------------------ standard plugin initialize function - don't change ---------------------------
// ------------------ load language file - adjust as needed ----------------------------------------
$shLangIso = shLoadPluginLanguage( 'com_datso', $shLangIso, '_SH404SEF_DATSO_HOME');
// ------------------ load language file - adjust as needed ----------------------------------------
if(!function_exists('getDatsoCatTitle')) {
function getDatsoCatTitle($id, $option, $shLangName) {
global $sefConfig;
$categories = array();
if(empty($sefConfig->shDatsoInsertCategories))
$id = 0;
while ($id > 0) {
$database =& JFactory::getDBO();
$database->setQuery('SELECT id, name, parent FROM #__datsogallery_catg WHERE id ='.$id);
if (!shTranslateUrl($option, $shLangName))
$rows = $database->loadRow(false);
else
$rows = $database->loadRow();
$name = ($sefConfig->shDatsoInsertCategoryId ? $id.$sefConfig->replacement : '').$rows[1];
array_unshift($categories, $name);
$id = $rows[2];
if($sefConfig->shDatsoInsertCategories == '1')
break;
}
return $categories;
}
}
if(!function_exists('getDatsoItemTitle')) {
function getDatsoItemTitle($id, $option, $shLangName) {
global $sefConfig;
$database =& JFactory::getDBO();
$query = 'SELECT id, imgtitle, catid FROM #__datsogallery WHERE i.id = '.$id;
$database->setQuery ( $query );
if (!shTranslateUrl($option, $shLangName))
$rows = $database->loadRow(false);
else
$rows = $database->loadRow();
$category = getDatsoCatTitle($rows[2], $option, $shLangName);
$name = ($sefConfig->shDatsoInsertItemId ? $id.$sefConfig->replacement : '').$rows[1];
array_push($category, $name);
return $category;
}
}
if (empty($Itemid) && $sefConfig->shInsertGlobalItemidIfNone && !empty($shCurrentItemid)) {
$string .= '&Itemid='.$shCurrentItemid;
$Itemid = $shCurrentItemid;
shAddToGETVarsList('Itemid', $Itemid);
}
$view = isset($view)? $view : null;
$Itemid = isset($Itemid)? $Itemid : null;
$limit = isset($limit)? $limit : null;
$limitstart = isset($limitstart)? $limitstart : null;
// insert component name from menu
$shDatsoName = shGetComponentPrefix($option);
$shDatsoName = empty($shDatsoName)? getMenuTitle($option, null, $Itemid, null, $shLangName )
: $shDatsoName;
$shDatsoName = (empty($shDatsoName) || $shDatsoName == '/')? 'Datso':$shDatsoName; // V 1.2.4.t
if ($sefConfig->shInsertDatsoName && !empty($shDatsoName))
$title[] = $shDatsoName;
switch($view){
case 'category':
if(isset($category_id))
$title = array_merge($title, getDatsoCatTitle($category_id, $option, $shLangName));
else if($layout=='category'){
$title = null;
$title[] = $shDatsoName;
}
if(isset($alpha_char))
$title[] = JText::_('INDEX');
$title[] = $alpha_char;
break;
case 'item':
if(isset($item_id))
$title = array_merge($title, getDatsoItemTitle($item_id, $option, $shLangName));
if($layout == 'item')
$title[] = '';
break;
}
if(isset($page))
$title[] = $page;
shRemoveFromGETVarsList('page');
shRemoveFromGETVarsList('view');
shRemoveFromGETVarsList('category_id');
shRemoveFromGETVarsList('item_id');
shRemoveFromGETVarsList('alpha_char');
shRemoveFromGETVarsList('layout');
shRemoveFromGETVarsList('option');
shRemoveFromGETVarsList('lang');
if (!empty($Itemid))
shRemoveFromGETVarsList('Itemid');
if (!empty($limit))
shRemoveFromGETVarsList('limit');
if (isset($limitstart))
shRemoveFromGETVarsList('limitstart');
// ------------------ standard plugin finalize function - don't change ---------------------------
if ($dosef){
$string = shFinalizePlugin( $string, $title, $shAppendString, $shItemidString,
(isset($limit)? @$limit : null), (isset($limitstart)? @$limitstart : null),
(isset($shLangName)? @$shLangName : null));
}
// ------------------ standard plugin finalize function - don't change ---------------------------
?>
Давайте коллективно думать и смотреть как это заставить работать....