LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.05.2012, 02:58:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Разработка плагина sh404SEF для Datso gallery  (Прочитано 9222 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Xuga
Давно я тут
****

Репутация: +114/-0
Offline Offline

Пол: Мужской
Сообщений: 311


Over World Art


« : 25.09.2009, 23:24:02 »

Предлагаю начать разработку плагина для галереи 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 ---------------------------
?>

Давайте коллективно думать и смотреть как это заставить работать....
« Последнее редактирование: 26.09.2009, 09:44:29 от Xuga » Записан
beliyadm
Moderator
*****

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #1 : 26.09.2009, 00:36:18 »

Плагина для чего? Для sh404SEF? Нафиг этого монстра, лучше нормальный роутер написать под стандартный SEF, больше ничего и не надо
Записан
Xuga
Давно я тут
****

Репутация: +114/-0
Offline Offline

Пол: Мужской
Сообщений: 311


Over World Art


« Ответ #2 : 26.09.2009, 09:45:45 »

beliyadm если Вы мможете предоставить материал по напиманию более легковесного продукта чем sh404SEF и аналагичного ему по функциональности, то я на вас молиться буду вот честно. потому что в нем косяков придостаточно.
Но тем не менее плагин написать стоит.
Записан
beliyadm
Moderator
*****

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #3 : 26.09.2009, 10:08:15 »

А что в нем такого, что лучше стандартного SEF + руки?
Транслит - есть плагин, избавиться от цифр ID - есть плагин, заголовки для страниц - стандартно.
Что еще для счастья надо при правильно написанном роутере для компонента?
Нет, я писать точно ничего не буду, максимум что нужно сделать - хак галереи по добавлению полей alias для формирования нормального урла
Записан
Xuga
Давно я тут
****

Репутация: +114/-0
Offline Offline

Пол: Мужской
Сообщений: 311


Over World Art


« Ответ #4 : 26.09.2009, 10:31:55 »

Ладно, тема не о руках а о разработке плагина. Давайте от нее не отклоняться.
P/S/ если дадите в одном месте ссылочки на все вышеперечисленное с описанием как с этим работать, то было бы восхитительно.
Записан
beliyadm
Moderator
*****

Репутация: +1438/-61
Offline Offline

Пол: Мужской
Сообщений: 8893


Севастополь==Россия


« Ответ #5 : 26.09.2009, 10:39:37 »

P/S/ если дадите в одном месте ссылочки на все вышеперечисленное с описанием как с этим работать, то было бы восхитительно.
1 - плагин HP Router для ликвидации ID из URL страниц
2 - плагин ukr_rus_allias для автоматической транслитерации заголовков стандартного контента (материалы\разделы\категории). При желании можно прикрутить к чему угодно либо врезать код функции руками
Записан
mumins
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 23


« Ответ #6 : 12.10.2009, 01:19:34 »

Xuga: Есть новости?

MBR
m.
Записан
mumins
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 23


« Ответ #7 : 12.10.2009, 15:37:05 »

 надо было поставить - вот и наваял.
За основу брал sh404SEF for com_joomgallery

Неработает  вызов языка  - DG_MOST_VIEWED_PICTURE  и все то из язиковова фаила так и прописывается.
Смотрите где //mum - там комментарии.

Буду рад коментариям и исправлениям.

П.С.
извините за русский - не родной.

Код:
<?php
/**
 * sh404SEF support for com_datsogallery (DatsoGallery 1.5 native) component.
 * Author : mumins
 * contact : mumins@inbox.ru
 * based un joomgalley extension
 *
 * This is a sh404SEF native plugin file
 * copy this file in directory /component/com_sh404sef/sef_ext/
 */
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);
// ------------------  standard plugin initialize function - don't change ---------------------------

// ------------------  load language file - adjust as needed ----------------------------------------
$shLangIso = shLoadPluginLanguage( 'com_datsogallery', $shLangIso, '_SEF_SAMPLE_TEXT_STRING');
// ------------------  load language file - adjust as needed ----------------------------------------

//DatsoGallery functions
/**
 * Get category path
 *
 * @param integer current category id
 * @return catpath
 */
if( !function_exists( 'sh404plugin_catpath' ) ){
  function sh404plugin_catpath($catid) {
    $database = &JFactory::getDBO();
   
    $catnames = array();
    $tempstring="";
    //figure out the category name and add to path
    while ( $catid != 0 ) {
      $database->setQuery("SELECT cid,name,parent FROM #__datsogallery_catg WHERE cid=".$catid);
      $result = $database->loadObjectList();
      $category = $result[0];
//$name = ($sefConfig->shDatsoInsertCategoryId ? $id.$sefConfig->replacement : '').$rows[1];   // mum if uncoment show only last catalog
      //add category names to array to later read in reverse
      array_unshift($catnames, $category->name);
      $catid=$category->parent;
//$catid = $rows[2]; //mum if uncoment show only last catalog
//if($sefConfig->shDatsoInsertCategories == '1')   // mum if uncoment show only last catalog
//                break; //mum if uncoment show only last catalog
    }
    foreach ( $catnames as $catname ) {
      $tempstring .= $catname.'/';
    }
    return $tempstring;
  }
}

if( !function_exists( 'sh404plugin_getusername' ) ){
  function sh404plugin_getusername($userid){
    $database = &JFactory::getDBO();
   
    $database->setQuery("SELECT username from #__users WHERE id=".$userid);
    $result = $database->loadResult();
    return $result;
  }
}

// end of DatsoGallery functions

// 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


// start by inserting the menu element title in order
// 1. setting in sh404SEF Backend 'By component'
// 2. menutitle
// 3. Nothing
$task = isset($task)? @$task : null;
$Itemid = isset($Itemid)? @$Itemid : null;
$shDatsoName = shGetComponentPrefix($option);
$shDatsoName = empty($shDatsoName)?  getMenuTitle($option, $task, $Itemid, null, $shLangName) : $shDatsoName;



if (!empty($shDatsoName)) {
  $title[] = $shDatsoName;
}

$func = isset($func)? @$func : null;
shRemoveFromGETVarsList('func');

switch ($func) {
  case 'viewcategory':
    //Category View
    //get the category title from DB
    $catid = isset($catid)? @$catid : null;
    $title[]=sh404plugin_catpath($catid);
    shRemoveFromGETVarsList('catid');

    //Variables for frontend sort
    $orderby = isset($orderby)? @$orderby : null;
    $orderdir = isset($orderdir)? @$orderdir : null;
    $startpage = isset($startpage)? @$startpage : null;

    if ($orderby != null ) {
      $title[]= 'order='.$orderby;
      shRemoveFromGETVarsList('orderby');
    }
    if ($startpage != null ) {
      $title[]= 'start='.$startpage;
      shRemoveFromGETVarsList('startpage');
    }

    if ($orderdir != null ) {
      $title[]= 'dir='.$orderdir;
      shRemoveFromGETVarsList('orderdir');
    }
  break;

  case 'detail' :
    //detail view without watermark
    $imgid = isset($id)? @$id : null;

    //get the category for the picture from DB
    $database->setQuery("SELECT id,catid,imgtitle FROM #__datsogallery WHERE id=".$imgid);
    $result = $database->loadObjectList();

    $photo = $result[0];
    $catid = $photo->catid;

    //Categorypath
    $title[]= sh404plugin_catpath($catid, $database);
    //Picture title
// mum  $title[]= $photo->imgtitle.'-'.$imgid;
      $title[]= $photo->imgtitle; // mum without ID

    shRemoveFromGETVarsList('catid'); // mum remove ?catid=X at end of url
    shRemoveFromGETVarsList('detail');
    shRemoveFromGETVarsList('id');

  break;

  case 'special' :
    //Toplists and Search
    $sorting = isset($sorting)? @$sorting : null;

    if ( $sorting == 'find' ) {
      $sstring = isset($sstring)? @$sstring : null;
      $title[] = $sstring;
      shRemoveFromGETVarsList('sstring');
    } else {
      switch ( $sorting ) {
        case "lastcomment" :
          $title[] = JText::_('DG_LAST_COMMENTED_PICTURE');
          break;
        case "lastadd" :
          $title[] = JText::_('DG_LAST_ADDED_PICTURE');
          break;
        case "rating" :
          $title[] = JText::_('_DG_BEST_RATED_PICTURE');
          break;
        default:
          $title[] = JText::_('DG_MOST_VIEWED_PICTURE');
      }
    }
    shRemoveFromGETVarsList('sorting');
  break;

  // handle funcs that don't have parameters
  case 'savepic':
  case 'showupload':
  case 'uploadhandler':
  case 'send2friend':
  case 'userpanel':
    if ($func == 'userpanel') {
      $title[] = strtolower(JText::_('DG_USER_PANEL'));
    }
    else {
      $title[] = $func;
    }
  break;


  // passthrough some variables
  // variables: translated to standard Joomla core sef
  case 'editpic':
  case 'deletepic':
  case 'savenameshield':
  case 'deletenameshield':
  case 'votepic':
  case 'commentpic':
  case 'deletecomment':
    $dosef = false;  // these funcs do not require SEF URL
  break;
  case 'watermark':
    //detail view with watermark, no SEF conversion yet
    $dosef = false;  // these func do not require SEF URL
  break;
  case null:  //Defaultview no $func
    break;
  default:
    $dosef = false;
  break;
}

// ------------------  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 --------


?>
Пример:
http://lffb.midzenis.lv/fotogrammas/parejais/latcon-2009/damu-trio-542.html
« Последнее редактирование: 25.10.2009, 23:18:40 от mumins » Записан
ekatkol
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 9


« Ответ #8 : 25.10.2009, 22:47:55 »

Пользуйтесь плагином, пжлста

У меня работает http://www.odevaemsa.ru

* com_datsogallery.zip (2.44 Кб - загружено 263 раз.)
Записан
mumins
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 23


« Ответ #9 : 25.10.2009, 23:16:06 »

Ну например в
http://www.odevaemsa.ru/index.php/FOTOgalereya/Zvezdyi-BEZ-ODEZHDYI/foto-Patrisiya-Kaas-bez-odezhdyi-575.html?catid=16
А зачем catid=16 ??

http://www.odevaemsa.ru/index.php/FOTOgalereya/JGS_TOP-JGS_LAST_COMMENTED_PICTURE.html
GS_TOP-JGS_LAST_COMMENTED_PICTURE ?

Чем отличается от предведущего?
ничего не понимаю, но запах плохой.

MBR
m.
Записан
roma-sever
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 50



« Ответ #10 : 05.11.2009, 15:59:33 »

надо было поставить - вот и наваял.
За основу брал sh404SEF for com_joomgallery

Неработает  вызов языка  - DG_MOST_VIEWED_PICTURE  и все то из язиковова фаила так и прописывается.
Смотрите где //mum - там комментарии.

Буду рад коментариям и исправлениям.

П.С.
извините за русский - не родной.

Код:
<?php
/**
 * sh404SEF support for com_datsogallery (DatsoGallery 1.5 native) component.
 * Author : mumins
 * contact : mumins@inbox.ru
 * based un joomgalley extension
 *
 * This is a sh404SEF native plugin file
 * copy this file in directory /component/com_sh404sef/sef_ext/
 */
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);
// ------------------  standard plugin initialize function - don't change ---------------------------

// ------------------  load language file - adjust as needed ----------------------------------------
$shLangIso = shLoadPluginLanguage( 'com_datsogallery', $shLangIso, '_SEF_SAMPLE_TEXT_STRING');
// ------------------  load language file - adjust as needed ----------------------------------------

//DatsoGallery functions
/**
 * Get category path
 *
 * @param integer current category id
 * @return catpath
 */
if( !function_exists( 'sh404plugin_catpath' ) ){
  function sh404plugin_catpath($catid) {
    $database = &JFactory::getDBO();
   
    $catnames = array();
    $tempstring="";
    //figure out the category name and add to path
    while ( $catid != 0 ) {
      $database->setQuery("SELECT cid,name,parent FROM #__datsogallery_catg WHERE cid=".$catid);
      $result = $database->loadObjectList();
      $category = $result[0];
//$name = ($sefConfig->shDatsoInsertCategoryId ? $id.$sefConfig->replacement : '').$rows[1];   // mum if uncoment show only last catalog
      //add category names to array to later read in reverse
      array_unshift($catnames, $category->name);
      $catid=$category->parent;
//$catid = $rows[2]; //mum if uncoment show only last catalog
//if($sefConfig->shDatsoInsertCategories == '1')   // mum if uncoment show only last catalog
//                break; //mum if uncoment show only last catalog
    }
    foreach ( $catnames as $catname ) {
      $tempstring .= $catname.'/';
    }
    return $tempstring;
  }
}

if( !function_exists( 'sh404plugin_getusername' ) ){
  function sh404plugin_getusername($userid){
    $database = &JFactory::getDBO();
   
    $database->setQuery("SELECT username from #__users WHERE id=".$userid);
    $result = $database->loadResult();
    return $result;
  }
}

// end of DatsoGallery functions

// 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


// start by inserting the menu element title in order
// 1. setting in sh404SEF Backend 'By component'
// 2. menutitle
// 3. Nothing
$task = isset($task)? @$task : null;
$Itemid = isset($Itemid)? @$Itemid : null;
$shDatsoName = shGetComponentPrefix($option);
$shDatsoName = empty($shDatsoName)?  getMenuTitle($option, $task, $Itemid, null, $shLangName) : $shDatsoName;



if (!empty($shDatsoName)) {
  $title[] = $shDatsoName;
}

$func = isset($func)? @$func : null;
shRemoveFromGETVarsList('func');

switch ($func) {
  case 'viewcategory':
    //Category View
    //get the category title from DB
    $catid = isset($catid)? @$catid : null;
    $title[]=sh404plugin_catpath($catid);
    shRemoveFromGETVarsList('catid');

    //Variables for frontend sort
    $orderby = isset($orderby)? @$orderby : null;
    $orderdir = isset($orderdir)? @$orderdir : null;
    $startpage = isset($startpage)? @$startpage : null;

    if ($orderby != null ) {
      $title[]= 'order='.$orderby;
      shRemoveFromGETVarsList('orderby');
    }
    if ($startpage != null ) {
      $title[]= 'start='.$startpage;
      shRemoveFromGETVarsList('startpage');
    }

    if ($orderdir != null ) {
      $title[]= 'dir='.$orderdir;
      shRemoveFromGETVarsList('orderdir');
    }
  break;

  case 'detail' :
    //detail view without watermark
    $imgid = isset($id)? @$id : null;

    //get the category for the picture from DB
    $database->setQuery("SELECT id,catid,imgtitle FROM #__datsogallery WHERE id=".$imgid);
    $result = $database->loadObjectList();

    $photo = $result[0];
    $catid = $photo->catid;

    //Categorypath
    $title[]= sh404plugin_catpath($catid, $database);
    //Picture title
// mum  $title[]= $photo->imgtitle.'-'.$imgid;
      $title[]= $photo->imgtitle; // mum without ID

    shRemoveFromGETVarsList('catid'); // mum remove ?catid=X at end of url
    shRemoveFromGETVarsList('detail');
    shRemoveFromGETVarsList('id');

  break;

  case 'special' :
    //Toplists and Search
    $sorting = isset($sorting)? @$sorting : null;

    if ( $sorting == 'find' ) {
      $sstring = isset($sstring)? @$sstring : null;
      $title[] = $sstring;
      shRemoveFromGETVarsList('sstring');
    } else {
      switch ( $sorting ) {
        case "lastcomment" :
          $title[] = JText::_('DG_LAST_COMMENTED_PICTURE');
          break;
        case "lastadd" :
          $title[] = JText::_('DG_LAST_ADDED_PICTURE');
          break;
        case "rating" :
          $title[] = JText::_('_DG_BEST_RATED_PICTURE');
          break;
        default:
          $title[] = JText::_('DG_MOST_VIEWED_PICTURE');
      }
    }
    shRemoveFromGETVarsList('sorting');
  break;

  // handle funcs that don't have parameters
  case 'savepic':
  case 'showupload':
  case 'uploadhandler':
  case 'send2friend':
  case 'userpanel':
    if ($func == 'userpanel') {
      $title[] = strtolower(JText::_('DG_USER_PANEL'));
    }
    else {
      $title[] = $func;
    }
  break;


  // passthrough some variables
  // variables: translated to standard Joomla core sef
  case 'editpic':
  case 'deletepic':
  case 'savenameshield':
  case 'deletenameshield':
  case 'votepic':
  case 'commentpic':
  case 'deletecomment':
    $dosef = false;  // these funcs do not require SEF URL
  break;
  case 'watermark':
    //detail view with watermark, no SEF conversion yet
    $dosef = false;  // these func do not require SEF URL
  break;
  case null:  //Defaultview no $func
    break;
  default:
    $dosef = false;
  break;
}

// ------------------  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 --------


?>
Пример:
http://lffb.midzenis.lv/fotogrammas/parejais/latcon-2009/damu-trio-542.html
Что то не понял куда этот КОД девать?
Записан
roma-sever
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 50



« Ответ #11 : 05.11.2009, 16:01:09 »

Пользуйтесь плагином, пжлста

У меня работает http://www.odevaemsa.ru

А как устанавливать плагин?
Записан
Keno
Осваиваюсь на форуме
***

Репутация: +39/-0
Offline Offline

Пол: Мужской
Сообщений: 103



« Ответ #12 : 05.11.2009, 16:45:50 »

А как устанавливать плагин?
Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
Записан
roma-sever
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 50



« Ответ #13 : 05.11.2009, 17:07:11 »

Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
Спасибо кл (во получилось!
Записан
quasy_hon
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #14 : 22.11.2009, 10:01:07 »

Что то компонент не корректно работает (я про датсо). Заливаю его в 404, ссылки на картинки становятся красивыми (xmap показывает http://stroy.alpha-art.ru/galereya/stroitelstvo/gornyiy/gornyiy-73.html), но когда переходишь по ссылке, то выдает
-Галерея
-Главная>Строительство>Горный>Горный
-Строку поиска
Картинка и меню отсутствуют. В случайных картинках ссылки остаются в формате (http://stroy.alpha-art.ru/galereya/remont/torgovyiy-tsentr/tc-13-253.html?catid=4), при переходе по ним ситуация схожая с xmap'ом.
Лог ошибок выдает [error] PHP Fatal error:  Class 'JText' not found in /home/quasyhon/www/site2/public_html/components/com_sef/sef_ext/com_datsogallery.php on line 167
Если com_datsogallery.php удалить (ЦПУ ссылки не чистить), то красивые ссылки на каталоги фотографий остаются, а  сами фотографии исчезают, но галерея начинает работать.
Установил com_sh404SEF_1.3.9_build_357.joomla1.0.x на Joomla 1.0.15. хост - peterhost.ru, Datso 1.6.2 кажется.
Записан
gregUS
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 11


« Ответ #15 : 15.02.2010, 19:01:02 »

Где найти это строчку var $shRemoInsertCategoryId = false;
У меня в файле sh404sef.class.php нет такой строчки. Версия 1.5.6.398 Может кто подскажет что делать ?
Записан
scorpion1981
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 26


« Ответ #16 : 14.05.2010, 10:55:37 »

Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
пропишите весь путь к рабочей папке плз. а то в корне нет public_html
Записан
rj45
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 88


« Ответ #17 : 29.08.2010, 17:27:15 »

Пользуйтесь плагином, пжлста

У меня работает http://www.odevaemsa.ru


Все работает, только подскажите как можно убрать из урл ?catid=2
Записан
rj45
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 88


« Ответ #18 : 29.08.2010, 17:28:40 »

Код:
<?php
/**
 * sh404SEF support for com_datsogallery (DatsoGallery 1.5 native) component.
 * Author : mumins
 * contact : mumins@inbox.ru
 * based un joomgalley extension
 *
 * This is a sh404SEF native plugin file
 * copy this file in directory /component/com_sh404sef/sef_ext/
 */
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);
// ------------------  standard plugin initialize function - don't change ---------------------------

// ------------------  load language file - adjust as needed ----------------------------------------
$shLangIso = shLoadPluginLanguage( 'com_datsogallery', $shLangIso, '_SEF_SAMPLE_TEXT_STRING');
// ------------------  load language file - adjust as needed ----------------------------------------

//DatsoGallery functions
/**
 * Get category path
 *
 * @param integer current category id
 * @return catpath
 */
if( !function_exists( 'sh404plugin_catpath' ) ){
  function sh404plugin_catpath($catid) {
    $database = &JFactory::getDBO();
    
    $catnames = array();
    $tempstring="";
    //figure out the category name and add to path
    while ( $catid != 0 ) {
      $database->setQuery("SELECT cid,name,parent FROM #__datsogallery_catg WHERE cid=".$catid);
      $result = $database->loadObjectList();
      $category = $result[0];
//$name = ($sefConfig->shDatsoInsertCategoryId ? $id.$sefConfig->replacement : '').$rows[1];  // mum if uncoment show only last catalog
      //add category names to array to later read in reverse
      array_unshift($catnames, $category->name);
      $catid=$category->parent;
//$catid = $rows[2]; //mum if uncoment show only last catalog
//if($sefConfig->shDatsoInsertCategories == '1')  // mum if uncoment show only last catalog
//                break; //mum if uncoment show only last catalog
    }
    foreach ( $catnames as $catname ) {
      $tempstring .= $catname.'/';
    }
    return $tempstring;
  }
}

if( !function_exists( 'sh404plugin_getusername' ) ){
  function sh404plugin_getusername($userid){
    $database = &JFactory::getDBO();
    
    $database->setQuery("SELECT username from #__users WHERE id=".$userid);
    $result = $database->loadResult();
    return $result;
  }
}

// end of DatsoGallery functions

// 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


// start by inserting the menu element title in order
// 1. setting in sh404SEF Backend 'By component'
// 2. menutitle
// 3. Nothing
$task = isset($task)? @$task : null;
$Itemid = isset($Itemid)? @$Itemid : null;
$shDatsoName = shGetComponentPrefix($option);
$shDatsoName = empty($shDatsoName)?  getMenuTitle($option, $task, $Itemid, null, $shLangName) : $shDatsoName;



if (!empty($shDatsoName)) {
  $title[] = $shDatsoName;
}

$func = isset($func)? @$func : null;
shRemoveFromGETVarsList('func');

switch ($func) {
  case 'viewcategory':
    //Category View
    //get the category title from DB
    $catid = isset($catid)? @$catid : null;
    $title[]=sh404plugin_catpath($catid);
    shRemoveFromGETVarsList('catid');

    //Variables for frontend sort
    $orderby = isset($orderby)? @$orderby : null;
    $orderdir = isset($orderdir)? @$orderdir : null;
    $startpage = isset($startpage)? @$startpage : null;

    if ($orderby != null ) {
      $title[]= 'order='.$orderby;
      shRemoveFromGETVarsList('orderby');
    }
    if ($startpage != null ) {
      $title[]= 'start='.$startpage;
      shRemoveFromGETVarsList('startpage');
    }

    if ($orderdir != null ) {
      $title[]= 'dir='.$orderdir;
      shRemoveFromGETVarsList('orderdir');
    }
  break;

  case 'detail' :
    //detail view without watermark
    $imgid = isset($id)? @$id : null;

    //get the category for the picture from DB
    $database->setQuery("SELECT id,catid,imgtitle FROM #__datsogallery WHERE id=".$imgid);
    $result = $database->loadObjectList();

    $photo = $result[0];
    $catid = $photo->catid;

    //Categorypath
    $title[]= sh404plugin_catpath($catid, $database);
    //Picture title
// mum  $title[]= $photo->imgtitle.'-'.$imgid;
      $title[]= $photo->imgtitle; // mum without ID

    shRemoveFromGETVarsList('catid'); // mum remove ?catid=X at end of url
    shRemoveFromGETVarsList('detail');
    shRemoveFromGETVarsList('id');

  break;

  case 'special' :
    //Toplists and Search
    $sorting = isset($sorting)? @$sorting : null;

    if ( $sorting == 'find' ) {
      $sstring = isset($sstring)? @$sstring : null;
      $title[] = $sstring;
      shRemoveFromGETVarsList('sstring');
    } else {
      switch ( $sorting ) {
        case "lastcomment" :
          $title[] = JText::_('DG_LAST_COMMENTED_PICTURE');
          break;
        case "lastadd" :
          $title[] = JText::_('DG_LAST_ADDED_PICTURE');
          break;
        case "rating" :
          $title[] = JText::_('_DG_BEST_RATED_PICTURE');
          break;
        default:
          $title[] = JText::_('DG_MOST_VIEWED_PICTURE');
      }
    }
    shRemoveFromGETVarsList('sorting');
  break;

  // handle funcs that don't have parameters
  case 'savepic':
  case 'showupload':
  case 'uploadhandler':
  case 'send2friend':
  case 'userpanel':
    if ($func == 'userpanel') {
      $title[] = strtolower(JText::_('DG_USER_PANEL'));
    }
    else {
      $title[] = $func;
    }
  break;


  // passthrough some variables
  // variables: translated to standard Joomla core sef
  case 'editpic':
  case 'deletepic':
  case 'savenameshield':
  case 'deletenameshield':
  case 'votepic':
  case 'commentpic':
  case 'deletecomment':
    $dosef = false;  // these funcs do not require SEF URL
  break;
  case 'watermark':
    //detail view with watermark, no SEF conversion yet
    $dosef = false;  // these func do not require SEF URL
  break;
  case null:  //Defaultview no $func
    break;
  default:
    $dosef = false;
  break;
}

// ------------------  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 --------


?>
Пример:
http://lffb.midzenis.lv/fotogrammas/parejais/latcon-2009/damu-trio-542.html

А куда этот код надо вставить?
Записан
mumins
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 23


« Ответ #19 : 30.08.2010, 12:35:33 »

http://narod.ru/disk/24258460000/sh_404_datso.rar.html
Смотрим директории и тамже копируем (изходя из /).

Цитировать
Все работает, только подскажите как можно убрать из урл ?catid=2
line 147 shRemoveFromGETVarsList('catid');
не должно быть закоментировано.
В принцыпе всё.

MBR
m.
Записан
Havchik
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 37


« Ответ #20 : 17.03.2011, 03:10:52 »

http://narod.ru/disk/24258460000/sh_404_datso.rar.html
Смотрим директории и тамже копируем (изходя из /).
line 147 shRemoveFromGETVarsList('catid');
не должно быть закоментировано.
В принцыпе всё.

MBR
m.
Поставил ваш плагин. Работает, но:
ссылка получается вида /коттеджи-и-дома/дом-из-бруса-3-3/дом-из-бруса-3.html
Это дублирование. Вот к примеру, есть категория, коттеджи и дома, в ней лежат фотки, ссылки у них получаются:
коттеджи-и-дома/дом-из-бруса-1/дом-из-бруса.html
коттеджи-и-дома/дом-из-бруса-2-2/дом-из-бруса-2.html
коттеджи-и-дома/дом-из-бруса-3-3/дом-из-бруса-3.html
и тд...
Как бороться?
Записан
Havchik
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 37


« Ответ #21 : 17.03.2011, 03:39:06 »

Разобрался!
Строка 144 и 145
     $title[]= $photo->imgtitle.'-'.$imgid;
    $title[]= $photo->imgtitle; // mum without ID

..............
заменить на:
     $title[]= $photo->imgtitle.'-'.$imgid;
  //    $title[]= $photo->imgtitle; // mum without ID
Записан
LPkuban
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #22 : 21.03.2011, 19:08:03 »

http://narod.ru/disk/24258460000/sh_404_datso.rar.html
Смотрим директории и тамже копируем (изходя из /).
line 147 shRemoveFromGETVarsList('catid');
не должно быть закоментировано.
В принцыпе всё.

MBR
m.

Привет! Все работает, но только пишет:

        * sh404SEF - missing language file for plugin com_datsogallery.
        * sh404SEF - missing language file for plugin com_datsogallery.

Как побороть?

все фаилы закинул правильно
Записан
mumins
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 23


« Ответ #23 : 22.03.2011, 01:41:30 »

А вы com_datsogallery.php поместили в  /administrator/components/com_sh404sef/language/plugins/ ?
Фаил можно забрать тут.
Записан
lolprivetkakdela
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 3


« Ответ #24 : 10.05.2011, 14:07:32 »

Подскажите ,пожалуйста,как сделать русские тайтлы, а то они подменяются как ссылки:
href: fotogalereya/prochee/yumor-3/kotenok
title: kotenok |yumor-3 |prochee |fotogalereya
а мне нужно: Котенок | Юмор-3 и тд
Записан
arelsi
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #25 : 06.02.2012, 18:36:49 »

Добрый день Вот поставил плагин  Но как настроить чтоб выдавало фильмы/бемен.html а не viwecategory/21/25.html Тесть вместо id название
Или я что то не так делаю Я поместил файл в указанную папку очистил ссылки но все по старому Помогите мальоха далёкому))
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet