Xuga
Давно я тут
  
Репутация: +114/-0
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
Пол: 
Сообщений: 8893
Севастополь==Россия
|
 |
« Ответ #1 : 26.09.2009, 00:36:18 » |
|
Плагина для чего? Для sh404SEF? Нафиг этого монстра, лучше нормальный роутер написать под стандартный SEF, больше ничего и не надо
|
|
|
|
|
Записан
|
|
|
|
Xuga
Давно я тут
  
Репутация: +114/-0
Offline
Пол: 
Сообщений: 311
Over World Art
|
 |
« Ответ #2 : 26.09.2009, 09:45:45 » |
|
beliyadm если Вы мможете предоставить материал по напиманию более легковесного продукта чем sh404SEF и аналагичного ему по функциональности, то я на вас молиться буду вот честно. потому что в нем косяков придостаточно. Но тем не менее плагин написать стоит.
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1438/-61
Offline
Пол: 
Сообщений: 8893
Севастополь==Россия
|
 |
« Ответ #3 : 26.09.2009, 10:08:15 » |
|
А что в нем такого, что лучше стандартного SEF + руки? Транслит - есть плагин, избавиться от цифр ID - есть плагин, заголовки для страниц - стандартно. Что еще для счастья надо при правильно написанном роутере для компонента? Нет, я писать точно ничего не буду, максимум что нужно сделать - хак галереи по добавлению полей alias для формирования нормального урла
|
|
|
|
|
Записан
|
|
|
|
Xuga
Давно я тут
  
Репутация: +114/-0
Offline
Пол: 
Сообщений: 311
Over World Art
|
 |
« Ответ #4 : 26.09.2009, 10:31:55 » |
|
Ладно, тема не о руках а о разработке плагина. Давайте от нее не отклоняться. P/S/ если дадите в одном месте ссылочки на все вышеперечисленное с описанием как с этим работать, то было бы восхитительно.
|
|
|
|
|
Записан
|
|
|
|
beliyadm
Moderator
   
Репутация: +1438/-61
Offline
Пол: 
Сообщений: 8893
Севастополь==Россия
|
 |
« Ответ #5 : 26.09.2009, 10:39:37 » |
|
P/S/ если дадите в одном месте ссылочки на все вышеперечисленное с описанием как с этим работать, то было бы восхитительно.
1 - плагин HP Router для ликвидации ID из URL страниц 2 - плагин ukr_rus_allias для автоматической транслитерации заголовков стандартного контента (материалы\разделы\категории). При желании можно прикрутить к чему угодно либо врезать код функции руками
|
|
|
|
|
Записан
|
|
|
|
mumins
Захожу иногда

Репутация: +3/-0
Offline
Сообщений: 23
|
 |
« Ответ #6 : 12.10.2009, 01:19:34 » |
|
Xuga: Есть новости?
MBR m.
|
|
|
|
|
Записан
|
|
|
|
mumins
Захожу иногда

Репутация: +3/-0
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
Сообщений: 9
|
 |
« Ответ #8 : 25.10.2009, 22:47:55 » |
|
Пользуйтесь плагином, пжлста У меня работает http://www.odevaemsa.ru
|
|
|
|
|
Записан
|
|
|
|
mumins
Захожу иногда

Репутация: +3/-0
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
Сообщений: 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
Сообщений: 50
|
 |
« Ответ #11 : 05.11.2009, 16:01:09 » |
|
А как устанавливать плагин?
|
|
|
|
|
Записан
|
|
|
|
Keno
Осваиваюсь на форуме
 
Репутация: +39/-0
Offline
Пол: 
Сообщений: 103
|
 |
« Ответ #12 : 05.11.2009, 16:45:50 » |
|
А как устанавливать плагин?
Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
|
|
|
|
|
Записан
|
|
|
|
roma-sever
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 50
|
 |
« Ответ #13 : 05.11.2009, 17:07:11 » |
|
Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
Спасибо кл (во получилось!
|
|
|
|
|
Записан
|
|
|
|
quasy_hon
Новичок
Репутация: +0/-0
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
Сообщений: 11
|
 |
« Ответ #15 : 15.02.2010, 19:01:02 » |
|
Где найти это строчку var $shRemoInsertCategoryId = false; У меня в файле sh404sef.class.php нет такой строчки. Версия 1.5.6.398 Может кто подскажет что делать ?
|
|
|
|
|
Записан
|
|
|
|
scorpion1981
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 26
|
 |
« Ответ #16 : 14.05.2010, 10:55:37 » |
|
Просто закиньте данный php файл (плагин) в каталог /public_html/components/com_sh404sef/sef_ext
пропишите весь путь к рабочей папке плз. а то в корне нет public_html
|
|
|
|
|
Записан
|
|
|
|
rj45
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Сообщений: 88
|
 |
« Ответ #17 : 29.08.2010, 17:27:15 » |
|
Все работает, только подскажите как можно убрать из урл ?catid=2
|
|
|
|
|
Записан
|
|
|
|
rj45
Осваиваюсь на форуме
 
Репутация: +1/-0
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
Сообщений: 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
Сообщений: 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
Сообщений: 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
Сообщений: 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
Сообщений: 23
|
 |
« Ответ #23 : 22.03.2011, 01:41:30 » |
|
А вы com_datsogallery.php поместили в /administrator/components/com_sh404sef/language/plugins/ ? Фаил можно забрать тут.
|
|
|
|
|
Записан
|
|
|
|
lolprivetkakdela
Новичок
Репутация: +0/-0
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
Сообщений: 2
|
 |
« Ответ #25 : 06.02.2012, 18:36:49 » |
|
Добрый день Вот поставил плагин Но как настроить чтоб выдавало фильмы/бемен.html а не viwecategory/21/25.html Тесть вместо id название Или я что то не так делаю Я поместил файл в указанную папку очистил ссылки но все по старому Помогите мальоха далёкому))
|
|
|
|
|
Записан
|
|
|
|
|