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

Здравствуйте форумчане. Помогите начинающему 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 ---------------------------
  
?>
« Последнее редактирование: 11.01.2013, 15:07:07 от freemanpiter »

Или может у кого есть плагин чтобы URL строился строго согласна  меню сайта? ^-^
*

мираж

  • Захожу иногда
  • 368
  • 0 / 0
а где вы взяли этот плагин.  у меня лично просто http://сайт/fotogalereya это когда захожу в галерею
а если в категорию то вот http://сайт/category/9-dizajn-kvartir-remont-kvartir-interer-foto
куда то просто пропадает fotogalereya
*

мираж

  • Захожу иногда
  • 368
  • 0 / 0
вот как вернуть в url fotogalereya
*

lakshmi

  • Захожу иногда
  • 187
  • 5 / 0
вот как вернуть в url fotogalereya
Да можно но тока это долгий путь переименовывать все ссылки ;)
*

мираж

  • Захожу иногда
  • 368
  • 0 / 0
Да можно но тока это долгий путь переименовывать все ссылки ;)
а группой можно это сделать?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

sh404SEF + OSMap Free

Автор xlenivecx

Ответов: 5
Просмотров: 989
Последний ответ 14.12.2019, 22:34:33
от draff
Теги на страницах навигации sh404SEF

Автор alexey711

Ответов: 2
Просмотров: 832
Последний ответ 25.06.2019, 15:02:55
от alexey711
Как выключить отображение кода модуля на странице 404 работающей через sh404SEF?

Автор Dim

Ответов: 1
Просмотров: 1099
Последний ответ 05.11.2018, 22:56:47
от Dim
Убрать слэши sh404SEF

Автор romagromov

Ответов: 1
Просмотров: 1221
Последний ответ 16.06.2018, 12:03:05
от romagromov
Управление 404 ссылками в sh404SEF

Автор Afman

Ответов: 0
Просмотров: 1170
Последний ответ 09.06.2018, 20:15:30
от Afman