Здравствуйте форумчане. Помогите начинающему web-мастеру, пожалуйста.
У меня стоит:
Joomla_2.5.7
PhocaGallery v3.2.2
sh404SEF v3.7.0
плагин sh404_plugin_com_phocagallery для sh404SEF
На сайте создано меню первого уровня photogallery а в ней вложение с названием самой фото галереи: peterburg Всё это выглядит так - меню: photogallery - peterburg
И получается
URL: http://сайт/photogallery/peterburg.htmlДля того чтобы сделать нормальные URL для детального просмотра фотографий установил плагин sh404_plugin_com_phocagallery. После этого у меня URL получается вот такого вида:
http://сайт/peterburg/piterburg/название фотографии.htmlКак я понимаю peterburg 1 это название меню а peterburg 2 это название категории в PhocaGallery. Такой дубляж в URL мне кажется не совсем правильным и хотелось бы все более человеко понятным, вот так:
http://сайт/photogallery/piterburg/название фотографии.html Что бы в URl отображался самый первый уровень меню а не второй.
Проблема как понимаю в самом плагине. Помогите пожалуцста разобраться что нужно поменять в скрипте, чтобы всё отображалось нормально. Может есть ещё какой способ? Или вдруг у кого есть плагин чтобы URL строился строго согласна меню сайта? Буду очень признателен.
Вот сам скрип плагина sh404_plugin_com_phocagallery:
<?php
/**
* sh404SEF support for com_phocagallery component.
* Author : Hi-Fi (Juho Saarinen)
* contact : juho.saarinen@gmail.com
*
* {shSourceVersionTag: Version x - 2007-09-20}
*
* This is a Xmap sh404SEF native plugin file
*
*/
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_XXXXX', $shLangIso, '_SEF_Phocagallery_TEXT_STRING');
// ------------------ load language file - adjust as needed ----------------------------------------
//Functions to get names
//--------HIFI:FUNCTION GALERY multiple category NAMEs -> $galleries
/*Function is based on com_rsgallery2.php's function shRSCategoryNames, which is based on com_docman.php's function dm_sef_get_category_array() which was (according to that file) based on
* Mark Fabrizio, Joomlicious, fabrizim@owlwatch.com, http://www.joomlicious.com
*/
if( !function_exists( 'shPhocaCategoryNames' ) ){
function shPhocaCategoryNames( $gallery_id ){
global $database;
$database=&JFactory::getDBO();
static $PhocaGalleryTree = null;
$q = "
SELECT id, title, parent_id
FROM #__phocagallery_categories";
$database->setQuery( $q );
$PhocaGalleryTree = $database->loadObjectList( 'id' );
$title=array();
do {
$Phocaname[] = $PhocaGalleryTree[ $gallery_id ]->title;
$gallery_id = $PhocaGalleryTree[ $gallery_id ]->parent_id;
} while($gallery_id != 0);
return array_reverse($Phocaname);
}
}
if (!function_exists( 'shPhocaimagenameFromId')) {
function shPhocaimagenameFromId($id){
global $database, $sefConfig;
$database=&JFactory::getDBO();
$PhocaGalleryImageTree = null;
$q = "
SELECT id, title
FROM #__phocagallery
WHERE id = " . $id;
$database->setQuery( $q );
$PhocaGalleryImageTree = $database->loadObjectList('id');
$PhocaName = $PhocaGalleryImageTree[$id]->name; // name
$PhocaTitle = $PhocaGalleryImageTree[$id]->title; // title
$title= $PhocaTitle;
return $title;
}
}
// remove common URL from GET vars list, so that they don't show up as query string in the URL
shRemoveFromGETVarsList('option');
shRemoveFromGETVarsList('lang');
if (!empty($Itemid))
shRemoveFromGETVarsList('Itemid');
/*if (!empty($limit))
shRemoveFromGETVarsList('limit');
if (isset($limitstart))
shRemoveFromGETVarsList('limitstart'); // limitstart can be zero*/
shRemoveFromGETVarsList('view');
shRemoveFromGETVarsList('id');
shRemoveFromGETVarsList('catid');
// start by inserting the menu element title (just an idea, this is not required at all)
$task = isset($task)? @$task : null;
$Itemid = isset($Itemid)? @$Itemid : null;
$shPhocagalleryName = shGetComponentPrefix($option);
$shPhocagalleryName = empty($shPhocagalleryName)?
getMenuTitle($option, $task, $Itemid, null, $shLangName) : $shPhocagalleryName;
$shPhocagalleryName = (empty($shPhocagalleryName) || $shPhocagalleryName == '/')? 'PhocagalleryCom':$shPhocagalleryName;
$title[] = $shPhocagalleryName;
$title[] = '/';
unset($vars['shPhocagalleryName']);
/*
// -------Category name(s)--------------------------- [gid is needed for this]
if (isset($gid) && ($gid != 0)) {
if ($rsInsertMultipleCategories) {
$title = array_merge($title, shRSCategoryNames($gid));
} else {
$title[] = shRSCategoryName($gid);
}
shRemoveFromGETVarsList('gid');
}
//-------Insert trailing / after Menuname or Categoryname when there is no image to avoid .html
if (empty($id)) {
$title[] = '/';
}
*/
switch ($view) {
case 'categories':
$title[] = '/';
break;
case 'category':
if(substr($id,-2)==='3A')
{
$id = intval(substr($id,0,-2));
}
$title = array_merge($title, shPhocaCategoryNames($id));
break;
case 'detail':
//there might be ':' in url, so it has to be removed
if(substr($id,-2)==='3A')
{
$id = intval(substr($id,0,-2));
}
$title = array_merge($title, shPhocaCategoryNames($catid));
$title[] = shPhocaimagenameFromId($id);
shRemoveFromGETVarsList('tmpl');
break;
}
//$dosef = false;
// ------------------ 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 ---------------------------
?>