Во-первых какой смысл в таком действии? Уменьшение ради чего? Ну ладно...
У меня идея такая. Это только наброски:
В файле index.php найти:
$module_name=isset($_GET['module']) ? $_GET['module'] : $Mainclass->Url->ParseToValue('module');
Добавить перед:
$origurl=$Mainclass->Url->string;
Найти:
$Mainclass->Db->FQuery('SELECT `id`,`services`,`name`,`title`,`path`,`multiservice`,`file`,`is_class`,`resources`,`image`,`user_gr</span>oups`,`blocks`,`editor` FROM {"0"} WHERE `name`={"1"} AND `active`=1 LIMIT 1',array('modules','s_'.$module_name),__file__,__line__);
if($Mainclass->Db->Num_rows()==0)
MainPage($module_name);
Заменить на:
$Mainclass->Db->FQuery('SELECT `id`,`services`,`name`,`title`,`path`,`multiservice`,`file`,`is_class`,`resources`,`image`,`user_groups`,`blocks`,`editor` FROM {"0"} WHERE `name`={"1"} AND `active`=1 LIMIT 1',array('modules','s_'.$module_name),__file__,__line__);
if($Mainclass->Db->Num_rows()==0)
{
$Mainclass->Url->string=$origurl;
$Mainclass->Db->Query('SELECT `id`,`services`,`name`,`title`,`path`,`multiservice`,`file`,`is_class`,`resources`,`image`,`user_gr</span>oups`,`blocks`,`editor` FROM `f_modules` WHERE `name`=\'news\' AND `active`=1 LIMIT 1',__file__,__line__);
if($Mainclass->Db->Num_rows()==0)
MainPage($module_name);
}
Найти:
$Mainclass->Url->SetPrefix($Mainclass->vars['multilang'] ? array('lang'=>$Mainclass->get_lang,'module'=>$Mainclass->module['name']) : array('module'=>$Mainclass->module['name']));
Заменить на:
$nm=$Mainclass->module['name']=='news' ? '' : $Mainclass->module['name'];
$Mainclass->Url->SetPrefix($Mainclass->vars['multilang'] ? array('lang'=>$Mainclass->get_lang,'module'=>$nm) : array('module'=>$nm));
Дальше сами...