Добрый день, имеется компонет easyblog Когда прикручиваю к главной странице сайта компонент easyblog (Шаблон главной страницы блога )то при переходе по ссылке на блог,он пытается открыть ее через главную,т.е. блог открывается с шапкой главной страницы. думаю проблема с router.php вот часть кода Код (PHP): <?php defined('_JEXEC') or die('Restricted access'); require_once( JPATH_ROOT . DS . 'components' . DS . 'com_easyblog' . DS . 'constants.php' ); require_once( EBLOG_HELPERS . DS . 'helper.php' ); require_once( EBLOG_HELPERS . DS . 'router.php' ); JTable::addIncludePath( EBLOG_TABLES ); function EasyBlogBuildRoute(&$query) { JFactory::getLanguage()->load( 'com_esyblog' , JPATH_ROOT ); $segments = array(); $config = EasyBlogHelper::getConfig(); if(isset($query['view']) && $query['view'] == 'entry' && isset($query['id']) ) { if( $config->get( 'main_sef' ) != 'simple' ) { $segments[] = EasyBlogSEFTranslation::_( $query['view'] ); } $segments[] = EasyBlogRouter::getBlogSefPermalink( $query['id'] ); unset($query['id']); unset($query['view']); } if(isset($query['view']) && $query['view'] == 'categories' && isset($query['id'])) { $segments[] = EasyBlogSEFTranslation::_( $query['view'] ); if(isset($query['layout'])) { $segments[] = EasyBlogSEFTranslation::_( $query['layout'] ); } $segments[] = EasyBlogRouter::getCategoryPermalink( $query['id'] ); unset($query['id']); unset($query['view']); unset($query['layout']); } if(isset($query['view']) && $query['view'] == 'tags' && isset($query['id']) && isset($query['layout']) ) { $segments[] = EasyBlogSEFTranslation::_( $query['view'] ); $segments[] = EasyBlogSEFTranslation::_( $query['layout'] ); $segments[] = EasyBlogRouter::getTagPermalink( $query['id'] ); unset($query['id']); unset($query['view']); unset($query['layout']); } } function EasyBlogParseRoute( $segments ) { JFactory::getLanguage()->load( 'com_esyblog' , JPATH_ROOT ); $vars = array(); $menu = JFactory::getApplication()->getMenu(); $item = $menu->getActive(); $config = EasyBlogHelper::getConfig(); //feed view if(isset($segments[1])) { if( $segments[1] == 'rss' || $segments[1] == 'atom' ) { $vars['view'] = $segments[0]; unset( $segments ); return $vars; } } // If user chooses to use the simple sef setup, we need to add the proper view if( $config->get( 'main_sef' ) == 'simple' && count( $segments ) == 1 ) { $files = JFolder::folders( JPATH_ROOT . DS . 'components' . DS . 'com_easyblog' . DS . 'views' ); $views = array(); foreach( $files as $file ) { $views[] = EasyBlogSEFTranslation::_( $file ); } if( !in_array( $segments[0] , $views ) ) { array_unshift( $segments , EasyBlogSEFTranslation::_( 'entry' ) ); } } if( isset($segments[0]) && $segments[0] == EasyBlogSEFTranslation::_( 'entry' ) ) { $count = count($segments); $entryId = ''; if( $config->get( 'main_sef_unicode' ) ) { // perform manual split on the string. $permalinkSegment = $segments[ ( $count - 1 ) ]; $permalinkArr = explode( ':', $permalinkSegment); $entryId = $permalinkArr[0]; } else { $table = EasyBlogHelper::getTable( 'Blog' , 'Table' ); $table->load( $segments[ ( $count - 1 ) ] , true ); $entryId = $table->id; } if( $entryId ) { $vars[ 'id' ] = $entryId; } $vars[ 'view' ] = 'entry'; } if( isset($segments[0]) && $segments[0] == EasyBlogSEFTranslation::_( 'categories' ) ) { $count = count($segments); if( $count > 1 ) { $categoryId = ''; if( $config->get( 'main_sef_unicode' ) ) { // perform manual split on the string. $permalinkSegment = $segments[ ( $count - 1 ) ]; $permalinkArr = explode( ':', $permalinkSegment); $categoryId = $permalinkArr[0]; } $segments = EasyBlogRouter::_encodeSegments($segments); if( empty( $categoryId ) ) { $table = EasyBlogHelper::getTable( 'ECategory' , 'Table' ); $table->load( $segments[ ( $count - 1 ) ] , true ); $categoryId = $table->id; } $vars[ 'id' ] = $categoryId; if($count > 2) { $vars['layout'] = 'listings'; } } $vars[ 'view' ] = 'categories'; } if( isset($segments[0]) && $segments[0] == EasyBlogSEFTranslation::_( 'dashboard' ) ) { $count = count($segments); if( $count > 1 ) { switch( EasyBlogSEFTranslation::_( $segments[1] ) ) { case EasyBlogSEFTranslation::_( 'write' ): $vars['layout'] = 'write'; break; case EasyBlogSEFTranslation::_( 'profile' ): $vars['layout'] = 'profile'; break; case EasyBlogSEFTranslation::_( 'drafts' ): $vars['layout'] = 'drafts'; break; case EasyBlogSEFTranslation::_( 'entries' ): $vars['layout'] = 'entries'; break; case EasyBlogSEFTranslation::_( 'comments' ): $vars['layout'] = 'comments'; break; case EasyBlogSEFTranslation::_( 'categories' ): $vars['layout'] = 'categories'; break; case EasyBlogSEFTranslation::_( 'category' ): $vars['layout'] = 'category'; break; case EasyBlogSEFTranslation::_( 'tags' ): $vars['layout'] = 'tags'; break; case EasyBlogSEFTranslation::_( 'review' ): $vars['layout'] = 'review'; break; case EasyBlogSEFTranslation::_( 'pending' ): $vars['layout'] = 'pending'; break; case EasyBlogSEFTranslation::_( 'teamblogs' ): $vars['layout'] = 'teamblogs'; break; } if( isset($segments[2]) ) { $vars['filter'] = $segments[2]; } } $vars[ 'view' ] = 'dashboard'; } $count = count($segments); if( $count == 1 ) { switch( EasyBlogSEFTranslation::_( $segments[0] ) ) { case EasyBlogSEFTranslation::_( 'latest' ): $vars['view'] = 'latest'; break; case EasyBlogSEFTranslation::_( 'featured' ): $vars['view'] = 'featured'; break; case EasyBlogSEFTranslation::_( 'images' ): $vars['view'] = 'images'; break; case EasyBlogSEFTranslation::_( 'login' ): $vars['view'] = 'login'; break; case EasyBlogSEFTranslation::_( 'myblog' ): $vars['view'] = 'myblog'; break; case EasyBlogSEFTranslation::_( 'ratings' ): $vars['view'] = 'ratings'; break; case EasyBlogSEFTranslation::_( 'subscription' ): $vars['view'] = 'subscription'; break; case EasyBlogSEFTranslation::_( 'trackback' ): $vars['view'] = 'trackback'; break; } } unset( $segments ); return $vars; } class EasyBlogSEFTranslation { public static function _( $val ) { $config = EasyBlogHelper::getConfig(); if( !$config->get( 'main_url_translation', 0) ) return $val; JFactory::getLanguage()->load( 'com_easyblog' , JPATH_ROOT ); $new = JText::_( 'COM_EASYBLOG_SEF_' . strtoupper( $val ) ); // If translation fails, we try to use the original value instead. if( stristr( $new , 'COM_EASYBLOG_SEF_' ) === false ) { return $new; } return $val; } } как сделать так чтобы при переходе по ссылке виды http://mysite.ru/index.php/entry/названия_блога добавлял http://mysite.ru/index.php/название_категории/entry/названия_блога. смотрел много примеров с router.php, но никак не могу приделать к этому router Спасибо за любую помощь.
А в чем конкретно проблема? Если в модуле, то причем здесь роутер? Если в ссылках, то причем здесь модуль? Если это два вопроса, то... нарушение Правил. А вообще, EasyBlog 3.5 имеет кучу настроек ссылок.
черт вот попал и не отмажешься =Р в общем попытаюсь объяснить есть у меня главная страничка,на ней висят несколько модулей,на которых указано что только на главной, и контент easyblog(последние блоги) . При переходе на любой блог через (контент easyblog(последние блоги) . ) открывается страница с модулями от главной страницы, joomla считает что открыта главная страница. вот надеюсь хоть немного прояснил ситуацию
Почитать про Itemid в Joomla - обязательно. Далее: - Доработать шаблон или - Поставить Advanced Module Manager и им настроить отображение модуля
я представляю что такое Itemid, и понимаю почему так получается что отображается модули, но не понимаю как можно изменить Itemid при переходе по блогу)за Modules Anywhere огромное спасибо, ща посмотрю и разберусь
так не его надо менять, надо модуль скрывать. Этим и занимается Advanced Module Manager (я там ошибся ) Возможно Itemid можно поменять, назначив категориям блога пункт меню. Т.е. у главной будет один Itemid, у категорий - другие. В EasyBlog 3+ даже параметр ввели, чтобы избежать такого поведения, - принудительный Itemid для всего блога.