Новости Joomla

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

Xuga

  • Захожу иногда
  • 224
  • 122 / 0
  • Интернет-Маркетолог
Предлагаю начать разработку плагина для галереи 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 »
Рекламное агентство: Medianation
Skype: ibarchenkov

Группа по digital-маркетингу:
http://vk.com/dmarketing
*

beliyadm

  • Moderator
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Разработка плагина для Datso gallery
« Ответ #1 : 26.09.2009, 00:36:18 »
Плагина для чего? Для sh404SEF? Нафиг этого монстра, лучше нормальный роутер написать под стандартный SEF, больше ничего и не надо
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Xuga

  • Захожу иногда
  • 224
  • 122 / 0
  • Интернет-Маркетолог
beliyadm если Вы мможете предоставить материал по напиманию более легковесного продукта чем sh404SEF и аналагичного ему по функциональности, то я на вас молиться буду вот честно. потому что в нем косяков придостаточно.
Но тем не менее плагин написать стоит.
Рекламное агентство: Medianation
Skype: ibarchenkov

Группа по digital-маркетингу:
http://vk.com/dmarketing
*

beliyadm

  • Moderator
  • 9758
  • 1664 / 66
  • Севастополь, Россия
А что в нем такого, что лучше стандартного SEF + руки?
Транслит - есть плагин, избавиться от цифр ID - есть плагин, заголовки для страниц - стандартно.
Что еще для счастья надо при правильно написанном роутере для компонента?
Нет, я писать точно ничего не буду, максимум что нужно сделать - хак галереи по добавлению полей alias для формирования нормального урла
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Xuga

  • Захожу иногда
  • 224
  • 122 / 0
  • Интернет-Маркетолог
Ладно, тема не о руках а о разработке плагина. Давайте от нее не отклоняться.
P/S/ если дадите в одном месте ссылочки на все вышеперечисленное с описанием как с этим работать, то было бы восхитительно.
Рекламное агентство: Medianation
Skype: ibarchenkov

Группа по digital-маркетингу:
http://vk.com/dmarketing
*

beliyadm

  • Moderator
  • 9758
  • 1664 / 66
  • Севастополь, Россия
P/S/ если дадите в одном месте ссылочки на все вышеперечисленное с описанием как с этим работать, то было бы восхитительно.
1 - плагин HP Router для ликвидации ID из URL страниц
2 - плагин ukr_rus_allias для автоматической транслитерации заголовков стандартного контента (материалы\разделы\категории). При желании можно прикрутить к чему угодно либо врезать код функции руками
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

mumins

  • Осваиваюсь на форуме
  • 24
  • 5 / 0
Xuga: Есть новости?

MBR
m.
*

mumins

  • Осваиваюсь на форуме
  • 24
  • 5 / 0
 надо было поставить - вот и наваял.
За основу брал 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, 22:18:40 от mumins »
*

ekatkol

  • Новичок
  • 5
  • 1 / 0
Пользуйтесь плагином, пжлста

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


[вложение удалено Администратором]
*

mumins

  • Осваиваюсь на форуме
  • 24
  • 5 / 0
Ну например в
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

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #10 : 05.11.2009, 14: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

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #11 : 05.11.2009, 15:01:09 »
Пользуйтесь плагином, пжлста

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

А как устанавливать плагин?
*

Keno

  • Захожу иногда
  • 84
  • 41 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #12 : 05.11.2009, 15:45:50 »
А как устанавливать плагин?
Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
*

roma-sever

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #13 : 05.11.2009, 16:07:11 »
Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
Спасибо кл (во получилось!
*

quasy_hon

  • Новичок
  • 2
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #14 : 22.11.2009, 09: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

  • Новичок
  • 3
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #15 : 15.02.2010, 18:01:02 »
Где найти это строчку var $shRemoInsertCategoryId = false;
У меня в файле sh404sef.class.php нет такой строчки. Версия 1.5.6.398 Может кто подскажет что делать ?
*

scorpion1981

  • Захожу иногда
  • 105
  • 2 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #16 : 14.05.2010, 10:55:37 »
Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
пропишите весь путь к рабочей папке плз. а то в корне нет public_html
*

rj45

  • Захожу иногда
  • 88
  • 1 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #17 : 29.08.2010, 17:27:15 »
Пользуйтесь плагином, пжлста

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


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

rj45

  • Захожу иногда
  • 88
  • 1 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #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

  • Осваиваюсь на форуме
  • 24
  • 5 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #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

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #20 : 17.03.2011, 02: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

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #21 : 17.03.2011, 02: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

  • Осваиваюсь на форуме
  • 42
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #22 : 21.03.2011, 18: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

  • Осваиваюсь на форуме
  • 24
  • 5 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #23 : 22.03.2011, 00:41:30 »
А вы com_datsogallery.php поместили в  /administrator/components/com_sh404sef/language/plugins/ ?
Фаил можно забрать тут.
*

lolprivetkakdela

  • Новичок
  • 3
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #24 : 10.05.2011, 14:07:32 »
Подскажите ,пожалуйста,как сделать русские тайтлы, а то они подменяются как ссылки:
href: fotogalereya/prochee/yumor-3/kotenok
title: kotenok |yumor-3 |prochee |fotogalereya
а мне нужно: Котенок | Юмор-3 и тд
*

arelsi

  • Новичок
  • 2
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #25 : 06.02.2012, 18:36:49 »
Добрый день Вот поставил плагин  Но как настроить чтоб выдавало фильмы/бемен.html а не viwecategory/21/25.html Тесть вместо id название
Или я что то не так делаю Я поместил файл в указанную папку очистил ссылки но все по старому Помогите мальоха далёкому))
*

Zinturion

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Разработка плагина sh404SEF для Datso gallery
« Ответ #26 : 21.10.2012, 21:28:39 »
Народ такая проблема после установки sh404SEF в слайд шоу значки (закрыть, лево, право) не отображаются. (плагин установил, но не помогло, хотя без sh404SEF все нормально), как можно исправить данный недочет. заранее благодарю.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Интегратор Datso Gallery и SEF Servise Map

Автор Leshiy

Ответов: 0
Просмотров: 3155
Последний ответ 20.09.2009, 14:50:59
от Leshiy
Datso CB Plugin готов. Что скажет Андрей?

Автор PyKaB

Ответов: 8
Просмотров: 10815
Последний ответ 14.03.2008, 10:40:56
от deniz