#1 2009-02-21 21:52

IceZzz
Пользователь

Помогите пожалуйста с ЧПУ ( как убрать category/ )

подскажите пожалуйста как сделать так чтоб было не
sait.net/category/stalnye-panelnye-radiatory-kermi
а вот так
sait.net/stalnye-panelnye-radiatory-kermi

то есть без category/

я так понял, что это в файле class.furl.php
~174 строчка

}elseif(isset($get['categoryID'])){
$request .= 'category/'.(isset($get['category_slug'])?$get['category_slug']:$get['categoryID']).'/';

как правильно отредактировать ?

Неактивен

 

#2 2009-02-22 21:04

IceZzz
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

ну что, никто не знает ?

Неактивен

 

#3 2009-02-24 01:10

Shaman
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

$request .= (isset($get['category_slug'])?$get['category_slug']:$get['categoryID']).'/';

Неактивен

 

#4 2009-03-05 13:23

semen
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

Shaman написал:

$request .= (isset($get['category_slug'])?$get['category_slug']:$get['categoryID']).'/';

так не работает

что бы заменить category на что-либо другое нужно в строке

Код:

                $request .= 'category/'.(isset($get['category_slug'])?$get['category_slug']:$get['categoryID']).'/';

заменить 'category/' например на 'group/'
и ещё вот здесь

Код:

                        case 'category':
                                $this->__path_settings['category_slug'] = str_replace('.html', '', array_shift($path_parts));
                                $this->__path_settings['category_search'] = false;
                                if(isset($path_parts[0]) && $path_parts[0] == 'search'){
                                    $this->__path_settings['category_search'] = true;
                                }
                                $this->__path_settings['update_sys_handler'] = 'category';
                                continue;

так же поменять 'category' на 'group'

а так что бы работало вообще без этого помоему сделать нельзя

Неактивен

 

#5 2009-03-19 06:26

Prosto-Chups
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

Вообще-то, кроме правки class.furl.php нужно править .htacess

Неактивен

 

#6 2009-03-23 09:24

Станислав
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

А вообще-то нихрена такого подобного.

Неактивен

 

#7 2009-09-03 17:09

Hunter
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

апну тему, мне по аналогии актуально убрать из адреса /auxpage_23/ чтобы адрес был просто /23/
в class.furl.php упоминание об auxpage не нашел да и вообще в папке published/SC/html/scripts/classes/ про ауксы ничего нетуsad
Или это только в .htaccess можно исправить? Наверняка еще где то в скриптах...
Где?

Неактивен

 

#8 2009-09-03 17:40

uses
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

замените содержимое файла
/published/SC/html/scripts/modules/auxpages/class.auxpages.php
на это:

Код:

<?php
function cptsettingview_auxpagegroup($params){

    $moduleInstance = &ModulesFabric::getModuleObjByKey('aux_pages');
    /*@var $moduleInstance AuxPages*/

    $pages = $moduleInstance->__getEnabledPages();
    $params['options'] = array();
    foreach ($pages as $page){
        $params['options'][$page['id']] = $page['name'];
    }
    
    if(is_string($params['value']))$params['value'] = explode(':', $params['value']);
    return cptsettingview_checkboxgroup($params);
}

function cptsettingserializer_auxpagegroup($params, $post){

    $Register = &Register::getInstance();
    
    if(!$Register->is_set('__AUXNAV_SERIALIZED') && is_array($post[$params['name']])){
        $post[$params['name']] = implode(':', $post[$params['name']]);
        $reg = 1;
        $Register->set('__AUXNAV_SERIALIZED', $reg);
    }
    return cptsettingserializer_checkboxgroup($params, $post);
}

class AuxAdministrationController extends ActionsController {
    
    function save_order(){
        
        $scan_result = scanArrayKeysForID($_POST, 'priority');
        $sql = '
            UPDATE ?#AUX_PAGES_TABLE SET aux_page_priority=? WHERE aux_page_ID=?
        ';
        
        foreach ($scan_result as $aux_id=>$scan_info){
            
            db_phquery($sql, $scan_info['priority'], $aux_id);
        }
        
        Message::raiseAjaxMessage(MSG_SUCCESS, '', 'order_saved');
        die;
    }
    
    function main(){
        
        $moduleEntry = &$this->__params['module'];
        /*@var $moduleEntry AuxPages*/

        global $smarty;
        set_query('safemode=','',true);
                
        if ( isset($_GET['delete']) ){
            
            safeMode(true);
            $moduleEntry->auxpgDeleteAuxPage( $_GET['delete'] );
            RedirectSQ('delete=');
        }
        
        if ( isset($_GET['add_new']) ){
            
            if ( isset($_POST['save']) ){
                $AuxDivision = new Division();
                $max_priority = db_phquery_fetch(DBRFETCH_FIRST, 'SELECT MAX(aux_page_priority) FROM ?#AUX_PAGES_TABLE')+1;
                if(!isset($_POST['aux_page_slug'])||trim($_POST['aux_page_slug'])==''){
                    $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
                    $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
                }else{
                    $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
                }
                $AuxID = $moduleEntry->auxpgAddAuxPage( $_POST, $_POST, $_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $max_priority,$_POST['aux_page_slug'] );
                $TitlePageID = DivisionModule::getDivisionIDByUnicKey('TitlePage');

                $moduleEntry->addAuxPageNameLocal($AuxID, $_POST);
                
                $AuxDivision->setName($moduleEntry->getAuxPageLocalID($AuxID));
                $AuxDivision->setEnabled(0);
                $AuxDivision->setParentID($TitlePageID);
                
                $AuxDivision->setUnicKey($_POST['aux_page_slug']);
                //$AuxDivision->setUnicKey('auxpage_'.$AuxID);//or set aux_slug
                $AuxDivision->save();
                $AuxDivision->addInterface($moduleEntry->getConfigID().'_auxpage_'.$AuxID);
                
                RedirectSQ('add_new=');
            }
            $smarty->assign( 'add_new', 1 );
        }elseif ( isset($_GET['edit']) ){
            if ( isset($_POST['save']) ){
                
                safeMode(true);
                if(!isset($_POST['aux_page_slug'])||strlen(trim($_POST['aux_page_slug']))==0){
                    $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
                    $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
                }else{
                    $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
                }
                $moduleEntry->auxpgUpdateAuxPage( $_GET['edit'], $_POST,     $_POST,$_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $_POST['aux_page_slug']);
                $moduleEntry->updateAuxPageNameLocal( $_GET['edit'], $_POST);
                RedirectSQ('edit=');
            }
            
            
            
            $aux_page = $moduleEntry->auxpgGetAuxPage( $_GET['edit'] );
                    
            $smarty->assign( 'aux_page', $aux_page );

            $smarty->assign( 'edit', 1 );
        }else{
            
            $aux_pages = $moduleEntry->auxpgGetAllPageAttributes();
            $smarty->assign( 'aux_pages', $aux_pages );
        }

        //set sub-department template
        $smarty->assign('admin_sub_dpt', 'conf_aux_pages.tpl.html');        
    }
}


class AuxPages extends ComponentModule {
    
    function getInterface(){
        
        $Args = func_get_args();
        $_InterfaceName = array_shift($Args);
        $Results = array();
        if(isset($this->Interfaces[$_InterfaceName])){
            
            $SubPatterns = array();
            if(preg_match('|auxpage_(\d+)|',$_InterfaceName, $SubPatterns)){
                
                global $smarty;
                $AuxInfo = $this->auxpgGetAuxPage($SubPatterns[1]);
                if(!$AuxInfo['aux_page_enabled'])RedirectSQ('?');
                $page_title = $AuxInfo["aux_page_name"]." ― ".CONF_SHOP_NAME;
                $meta_tags = "";
                if  ( $AuxInfo["meta_description"] != "" )
                    $meta_tags .= '<meta name="description" content="'.xHtmlSpecialChars($AuxInfo["meta_description"]).'">'."\n";
                if  ( $AuxInfo["meta_keywords"] != "" )
                    $meta_tags .= '<meta name="keywords" content="'.xHtmlSpecialChars($AuxInfo["meta_keywords"]).'">'."\n";
                    
                $smarty->assign("page_title",    $page_title );
                $smarty->assign("page_meta_tags", $meta_tags );
                $smarty->assign('aux_page', $AuxInfo['aux_page_text']);
                $smarty->assign('main_content_template', $this->getTemplatePath('frontend/aux_page.html'));
                return '';
            }
            $ParamsNum = count($Args);
            $EvalParams = array();
            
            for($_i = 0; $_i<$ParamsNum; $_i++){
                
                $EvalParams[] = '$Args['.$_i.']';
            }
            
            $this->__clearInterfaceStack();
            $this->__pushToStack('info', $this->Interfaces[$_InterfaceName]);
            $this->__pushToStack('call_params', $Args);
            
            eval('$Results = $this->'.$this->Interfaces[$_InterfaceName]['method'].'('.implode(',', $EvalParams).');');
        }
        return $Results;
    }
    
    function initInterfaces(){
        
        $this->Interfaces = array(
            'fauxpage'=> array(
                'name' => 'pgn_auxpages',
                'method' => 'methodFAuxPage',
            ),
            'bauxpage'=> array(
                'name' => 'pgn_auxpages_admin',
                'method' => 'methodBAuxPage',
            ),
        );
        
        $sql = '
            SELECT *, '.LanguagesManager::sql_prepareField('aux_page_name').' AS aux_page_name FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_name ASC
        ';
        $Result = $this->dbHandler->ph_query($sql);
        while ($_Row = $Result->fetchAssoc()) {
            
            $this->Interfaces['auxpage_'.$_Row['aux_page_ID']] = array(
                'name' => $_Row['aux_page_name'],
                'method' => 'auxpage_'.$_Row['aux_page_ID'],
            );
        }
        
        $this->__registerComponent('auxpages_navigation', 'cpt_lbl_auxpages_navigation', array(TPLID_GENERAL_LAYOUT), null, 
            array(
                'select_pages' => array('type' => 'select', 'params' => array('name' => 'select_pages', 'title' => '', 'options' => array('all' => 'cpt_lbl_selectaux_type_all', 'selected' => 'cpt_lbl_selectaux_type_selected'), 'onchange' => 'var objDiv = getLayer("cpt-layer-auxpages"); objDiv.style.display=select_getCurrValue(this)=="all"?"none":"";', 'default_value' => 'all')), 
                'auxpages' => array('type' => 'auxpagegroup', 'params' => array('name' => 'auxpages', 'title'=> 'cpt_lbl_selectauxpages','value'=> '', 'options'=> array(), 'before_load' => '<script type="text/javascript">var objDiv = getLayer("cpts-select_pages-select_pages");getLayer("cpt-layer-auxpages").style.display = select_getCurrValue(objDiv)=="all"?"none":"";</script>')),
                'view' => array('type' => 'radiogroup', 'params' => array('name' => 'view', 'title'=> 'cpt_lbl_view','value'=> 'vertical', 'options'=> array('vertical' => 'cpt_lbl_vertical', 'horizontal' => 'cpt_lbl_horizontal'))),
                ));
    }

    function __getEnabledPages(){
        
        $sql = 'SELECT '.LanguagesManager::sql_prepareField('aux_page_name').' AS name, `aux_page_ID` AS `id`, `aux_page_slug` FROM ?#AUX_PAGES_TABLE WHERE aux_page_enabled=1 ORDER BY `aux_page_priority` ASC';
//        return db_phquery_array($sql);
        $Register = &Register::getInstance();
        $DBHandler = &$Register->get(VAR_DBHANDLER);
        /* @var $DBHandler DataBase */
        
        $DBRes = $DBHandler->ph_query($sql);
        
        $pages = $DBRes->fetchArrayAssoc();
        
        return $pages;
    }
    
    function cpt_auxpages_navigation(){
        
        list($local_settings) = $this->__getFromStack('call_params');
        if(isset($local_settings['local_settings']))$local_settings = $local_settings['local_settings'];

        $pages = $this->__getEnabledPages();
        
        if(!count($pages))return ;
        
        $allowed_pages = explode(':', $local_settings['auxpages']);
        print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">';
        foreach ($pages as $page){
            if($local_settings['select_pages'] == 'selected' && !in_array($page['id'], $allowed_pages))continue;
            //print '<li><a href="'.xHtmlSetQuery('?ukey=auxpage_'.$page['id']).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
            print '<li><a href="'.xHtmlSetQuery('?ukey='.($page['aux_page_slug']?$page['aux_page_slug']:$page['id'])).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
        }
        print '</ul>';
    }
    
    function methodBAuxPage(){

        ActionsController::exec('AuxAdministrationController', array(ACTCTRL_POST, ACTCTRL_GET, ACTCTRL_AJAX, ACTCTRL_CUST), array('module' => &$this));
    }
    
    function methodFAuxPage(){

        global $smarty;
        $aux_page = $this->auxpgGetAuxPage( $_GET['show_aux_page'] );

        if ( $aux_page ){
            
            $smarty->assign('page_body', $aux_page['aux_page_text'] );
            $smarty->assign('show_aux_page', $_GET['show_aux_page'] );
            $smarty->assign('main_content_template', 'show_aux_page.tpl.html' );
        }
        else
        {
            $smarty->assign('main_content_template', 'page_not_found.tpl.html' );
        }
    }

    function auxpgGetAllPageAttributes(){
        
        $sql = '
            SELECT * FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_priority ASC
        ';
         $q = db_phquery($sql);
        $data = array();
        while( $row = db_fetch_row( $q ) ){
            
            LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
            $data[] = $row;
        }
        return $data;    
    }
    
    function auxpgGetAuxPage( $aux_page_ID ){
        
        $sql = '
            SELECT * FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
        ';
          $q = db_phquery($sql,$aux_page_ID);
        $row=db_fetch_row($q);
        LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
        if(!strlen($row['aux_page_slug'])){
            $row['aux_page_slug'] = $row['aux_page_ID'];
        }
        return $row;
    }
    
    function auxpgUpdateAuxPage( $aux_page_ID, $aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled,$aux_page_slug ){
        $fields='';
        $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name);
        foreach ($name_inj['fields'] as $field) $fields.=$field.'=?,';
        $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text);
        foreach ($text_inj['fields'] as $field) $fields.=$field.'=?,';
        $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords);
        foreach ($mkeywords_inj['fields'] as $field) $fields.=$field.'=?,';
        $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description);
        foreach ($mdescription_inj['fields'] as $field) $fields.=$field.'=?,';        
        $sql = 'UPDATE ?#AUX_PAGES_TABLE SET '.$fields.'`aux_page_enabled`=?, `aux_page_slug`=?    WHERE aux_page_ID=?';        
        db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_slug, $aux_page_ID);    
    
    }
    
    function auxpgAddAuxPage($aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled, $aux_page_priority,$aux_page_slug  ){
        
        $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name, true);
        $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text,true);
        $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords,true);
        $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description,true);
        $fields=$name_inj['fields_list'].','.$text_inj['fields_list'].',';
        $fields.=$mkeywords_inj['fields_list'].','.$mdescription_inj['fields_list'];
        $values_place=str_repeat('?,',
            count($name_inj['values'])+count($text_inj['values'])+
            count($mkeywords_inj['values'])+count($mdescription_inj['values']));
            
        $sql = "INSERT ?#AUX_PAGES_TABLE ( {$fields}, aux_page_enabled, aux_page_priority, aux_page_slug ) ";
        $sql.="VALUES({$values_place}?,?,?)";
                
        db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_priority,$aux_page_slug);        
        return db_insert_id();
    }
    
    function auxpgDeleteAuxPage( $aux_page_ID ){
        $DivIDs = DivisionModule::getDivisionIDsWithInterface($this->getConfigID().'_auxpage_'.$_GET['delete']);
        DivisionModule::disconnectInterfaces(array($this->getConfigID()=>array($_GET['delete'])));
        foreach ($DivIDs as $_ID){
            $Division = new Division($_ID);
            $Division->delete();
        }
        $sql = '
            DELETE FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
        ';
        db_phquery($sql, $aux_page_ID);
        
        $languages = LanguagesManager::getLanguages();
        foreach ($languages as $languageEntry){
            /*@var $languageEntry Language*/
            $languageEntry->deleteLocal($this->getAuxPageLocalID($aux_page_ID));
        }
    }
    
    function updateAuxPageNameLocal($aux_page_ID, $data){
        $divisionID = DivisionModule::getDivisionIDByName('pgn_ap_'.$aux_page_ID);
        if($divisionID){
            $AuxDivision = new Division();
            /* @var $AuxDivision Division */
            $AuxDivision->load($divisionID);
            $AuxDivision->setUnicKey((strlen($data['aux_page_slug'])?$data['aux_page_slug']:$aux_page_ID));
            $AuxDivision->save();
        }
        
        $languages = LanguagesManager::getLanguages();
        foreach ($languages as $languageEntry){
            /*@var $languageEntry Language*/
            $languageEntry->updateLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'');
        }
    }
    
    function addAuxPageNameLocal($aux_page_ID, $data){
        
        $languages = LanguagesManager::getLanguages();
        foreach ($languages as $languageEntry){
            /*@var $languageEntry Language*/
            $languageEntry->addLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'', LOCALTYPE_HIDDEN, 'lsgr_general');
        }
    }
    
    function getAuxPageLocalID($aux_page_ID){
        
        return "pgn_ap_{$aux_page_ID}";
    }
}
?>

и не забудьте пересохранить ваши страницы через админку

Отредактировано uses (2009-09-03 17:41)

Неактивен

 

#9 2010-11-18 13:47

cloudpilot
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

не работает код

Неактивен

 

#10 2010-11-22 17:23

MIkleMi
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

а можно ли переименовать category/  и  product/ в другие названия?

Неактивен

 

#11 2011-01-10 11:22

senty
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

Более актуальный код для удаление auxpage

Код:

<?php
 
  function cptsettingview_auxpagegroup($params){
 
 
 
 $moduleInstance = &ModulesFabric::getModuleObjByKey('aux_pages');
 
  /*@var $moduleInstance AuxPages*/
 
 
 
 $pages = $moduleInstance->__getEnabledPages();
 
  $params['options'] = array();
 
  foreach ($pages as $page){
 
  $params['options'][$page['id']] = $page['name'];
 
  }
 
 
 
  if(is_string($params['value']))$params['value'] = explode(':', $params['value']);
 
  return cptsettingview_checkboxgroup($params);
 
  }
 
 
 
function cptsettingserializer_auxpagegroup($params, $post){
 
 
 
 $Register = &Register::getInstance();
 
 
 
  if(!$Register->is_set('__AUXNAV_SERIALIZED') && is_array($post[$params['name']])){
 
  $post[$params['name']] = implode(':', $post[$params['name']]);
 
  $reg = 1;
 
  $Register->set('__AUXNAV_SERIALIZED', $reg);
 
  }
 
  return cptsettingserializer_checkboxgroup($params, $post);
 
  }
 
 
 
class AuxAdministrationController extends ActionsController {
 
 
 
  function save_order(){
 
 
 
  $scan_result = scanArrayKeysForID($_POST, 'priority');
 
  $sql = '
 
  UPDATE ?#AUX_PAGES_TABLE SET aux_page_priority=? WHERE aux_page_ID=?
 
  ';
 
 
 
  foreach ($scan_result as $aux_id=>$scan_info){
 
 
 
  db_phquery($sql, $scan_info['priority'], $aux_id);
 
  }
 
 
 
  Message::raiseAjaxMessage(MSG_SUCCESS, '', 'order_saved');
 
  die;
 
  }
 
 
 
  function main(){
 
 
 
  $moduleEntry = &$this->__params['module'];
 
  /*@var $moduleEntry AuxPages*/
 
 
 
 global $smarty;
 
  set_query('safemode=','',true);
 
 
 
  if ( isset($_GET['delete']) ){
 
 
 
  safeMode(true);
 
  $moduleEntry->auxpgDeleteAuxPage( $_GET['delete'] );
 
  RedirectSQ('delete=');
 
  }
 
 
 
  if ( isset($_GET['add_new']) ){
 
 
 
  if ( isset($_POST['save']) ){
 
  $AuxDivision = new Division();
 
  $max_priority = db_phquery_fetch(DBRFETCH_FIRST, 'SELECT MAX(aux_page_priority) FROM ?#AUX_PAGES_TABLE')+1;
 
  if(!isset($_POST['aux_page_slug'])||trim($_POST['aux_page_slug'])==''){
 
  $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
 
  }else{
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
 
  }
 
  $AuxID = $moduleEntry->auxpgAddAuxPage( $_POST, $_POST, $_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $max_priority,$_POST['aux_page_slug'] );
 
  $TitlePageID = DivisionModule::getDivisionIDByUnicKey('TitlePage');
 
 
 
 $moduleEntry->addAuxPageNameLocal($AuxID, $_POST);
 
 
 
  $AuxDivision->setName($moduleEntry->getAuxPageLocalID($AuxID));
 
  $AuxDivision->setEnabled(0);
 
  $AuxDivision->setParentID($TitlePageID);
 
 
 
  $AuxDivision->setUnicKey($_POST['aux_page_slug']);
 
  //$AuxDivision->setUnicKey('auxpage_'.$AuxID);//or set aux_slug
 
  $AuxDivision->save();
 
  $AuxDivision->addInterface($moduleEntry->getConfigID().'_auxpage_'.$AuxID);
 
 
 
  RedirectSQ('add_new=');
 
  }
 
  $smarty->assign( 'add_new', 1 );
 
  }elseif ( isset($_GET['edit']) ){
 
  if ( isset($_POST['save']) ){
 
 
 
  safeMode(true);
 
  if(!isset($_POST['aux_page_slug'])||strlen(trim($_POST['aux_page_slug']))==0){
 
  $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
 
  }else{
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
 
  }
 
  $moduleEntry->auxpgUpdateAuxPage( $_GET['edit'], $_POST,     $_POST,$_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $_POST['aux_page_slug']);
 
  $moduleEntry->updateAuxPageNameLocal( $_GET['edit'], $_POST);
 
  RedirectSQ('edit=');
 
  }
 
 
 
  $aux_page = $moduleEntry->auxpgGetAuxPage( $_GET['edit'] );
 
 
 
  $smarty->assign( 'aux_page', $aux_page );
 
 
 
 $smarty->assign( 'edit', 1 );
 
  }else{
 
 
 
  $aux_pages = $moduleEntry->auxpgGetAllPageAttributes();
 
  $smarty->assign( 'aux_pages', $aux_pages );
 
  }
 
 
 
 //set sub-department template
 
  $smarty->assign('admin_sub_dpt', 'conf_aux_pages.tpl.html');
 
  }
 
  }
 
 
 
class AuxPages extends ComponentModule {
 
 
 
  function getInterface(){
 
 
 
  $Args = func_get_args();
 
  $_InterfaceName = array_shift($Args);
 
  $Results = array();
 
  if(isset($this->Interfaces[$_InterfaceName])){
 
 
 
  $SubPatterns = array();
 
  if(preg_match('|auxpage_(\d+)|',$_InterfaceName, $SubPatterns)){
 
 
 
  global $smarty;
 
  $AuxInfo = $this->auxpgGetAuxPage($SubPatterns[1]);
 
  if(!$AuxInfo['aux_page_enabled'])RedirectSQ('?');
 
  $page_title = $AuxInfo["aux_page_name"]." | ".CONF_SHOP_NAME;
 
  $meta_tags = "";
 
  if  ( $AuxInfo["meta_description"] != "" )
 
  $meta_tags .= '<meta name="description" content="'.xHtmlSpecialChars($AuxInfo["meta_description"]).'">'."\n";
 
  if  ( $AuxInfo["meta_keywords"] != "" )
 
  $meta_tags .= '<meta name="keywords" content="'.xHtmlSpecialChars($AuxInfo["meta_keywords"]).'">'."\n";
 
 
 
  $smarty->assign("page_title",    $page_title );
 
  $smarty->assign("page_meta_tags", $meta_tags );
 
  $smarty->assign('aux_page', $AuxInfo['aux_page_text']);
 
  $smarty->assign('main_content_template', $this->getTemplatePath('frontend/aux_page.html'));
 
  return '';
 
  }
 
  $ParamsNum = count($Args);
 
  $EvalParams = array();
 
 
 
  for($_i = 0; $_i<$ParamsNum; $_i++){
 
 
 
  $EvalParams[] = '$Args['.$_i.']';
 
  }
 
 
 
  $this->__clearInterfaceStack();
 
  $this->__pushToStack('info', $this->Interfaces[$_InterfaceName]);
 
  $this->__pushToStack('call_params', $Args);
 
 
 
  eval('$Results = $this->'.$this->Interfaces[$_InterfaceName]['method'].'('.implode(',', $EvalParams).');');
 
  }
 
  return $Results;
 
  }
 
 
 
  function initInterfaces(){
 
 
 
  $this->Interfaces = array(
 
  'fauxpage'=> array(
 
  'name' => 'pgn_auxpages',
 
  'method' => 'methodFAuxPage',
 
  ),
 
  'bauxpage'=> array(
 
  'name' => 'pgn_auxpages_admin',
 
  'method' => 'methodBAuxPage',
 
  ),
 
  );
 
 
 
  $sql = '
 
  SELECT *, '.LanguagesManager::sql_prepareField('aux_page_name').' AS aux_page_name FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_name ASC
 
  ';
 
  $Result = $this->dbHandler->ph_query($sql);
 
  while ($_Row = $Result->fetchAssoc()) {
 
 
 
  $this->Interfaces['auxpage_'.$_Row['aux_page_ID']] = array(
 
  'name' => $_Row['aux_page_name'],
 
  'method' => 'auxpage_'.$_Row['aux_page_ID'],
 
  );
 
  }
 
 
 
  $this->__registerComponent('auxpages_navigation', 'cpt_lbl_auxpages_navigation', array(TPLID_GENERAL_LAYOUT), null,
 
  array(
 
  'select_pages' => array('type' => 'select', 'params' => array('name' => 'select_pages', 'title' => '', 'options' => array('all' => 'cpt_lbl_selectaux_type_all', 'selected' => 'cpt_lbl_selectaux_type_selected'), 'onchange' => 'var objDiv = getLayer("cpt-layer-auxpages"); objDiv.style.display=select_getCurrValue(this)=="all"?"none":"";', 'default_value' => 'all')),
 
  'auxpages' => array('type' => 'auxpagegroup', 'params' => array('name' => 'auxpages', 'title'=> 'cpt_lbl_selectauxpages','value'=> '', 'options'=> array(), 'before_load' => '<script type="text/javascript">var objDiv = getLayer("cpts-select_pages-select_pages");getLayer("cpt-layer-auxpages").style.display = select_getCurrValue(objDiv)=="all"?"none":"";</script>')),
 
  'view' => array('type' => 'radiogroup', 'params' => array('name' => 'view', 'title'=> 'cpt_lbl_view','value'=> 'vertical', 'options'=> array('vertical' => 'cpt_lbl_vertical', 'horizontal' => 'cpt_lbl_horizontal'))),
 
  ));
 
  }
 
 
 
 function __getEnabledPages(){
 
 
 
  $sql = 'SELECT '.LanguagesManager::sql_prepareField('aux_page_name').' AS name, `aux_page_ID` AS `id`, `aux_page_slug` FROM ?#AUX_PAGES_TABLE WHERE aux_page_enabled=1 ORDER BY `aux_page_priority` ASC';
 
  //        return db_phquery_array($sql);
 
  $Register = &Register::getInstance();
 
  $DBHandler = &$Register->get(VAR_DBHANDLER);
 
  /* @var $DBHandler DataBase */
 
 
 
  $DBRes = $DBHandler->ph_query($sql);
 
 
 
  $pages = $DBRes->fetchArrayAssoc();
 
 
 
  return $pages;
 
  }
 
 
 
  function cpt_auxpages_navigation(){
 
 
 
  list($local_settings) = $this->__getFromStack('call_params');
 
  if(isset($local_settings['local_settings']))$local_settings = $local_settings['local_settings'];
 
 
 
 $pages = $this->__getEnabledPages();
 
 
 
  if(!count($pages))return ;
 
 
 
  $allowed_pages = explode(':', $local_settings['auxpages']);
 
  print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">';
 
  foreach ($pages as $page){
 
  if($local_settings['select_pages'] == 'selected' && !in_array($page['id'], $allowed_pages))continue;
 
  //print '<li><a href="'.xHtmlSetQuery('?ukey=auxpage_'.$page['id']).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
 
  print '<li><a href="'.xHtmlSetQuery('?ukey='.($page['aux_page_slug']?$page['aux_page_slug']:$page['id'])).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
 
  }
 
  print '</ul>';
 
  }
 
 
 
  function methodBAuxPage(){
 
 
 
 ActionsController::exec('AuxAdministrationController', array(ACTCTRL_POST, ACTCTRL_GET, ACTCTRL_AJAX, ACTCTRL_CUST), array('module' => &$this));
 
  }
 
 
 
  function methodFAuxPage(){
 
 
 
 global $smarty;
 
  $aux_page = $this->auxpgGetAuxPage( $_GET['show_aux_page'] );
 
 
 
 if ( $aux_page ){
 
 
 
  $smarty->assign('page_body', $aux_page['aux_page_text'] );
 
  $smarty->assign('show_aux_page', $_GET['show_aux_page'] );
 
  $smarty->assign('main_content_template', 'show_aux_page.tpl.html' );
 
  }
 
  else
 
  {
 
  $smarty->assign('main_content_template', 'page_not_found.tpl.html' );
 
  }
 
  }
 
 
 
 function auxpgGetAllPageAttributes(){
 
 
 
  $sql = '
 
  SELECT * FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_priority ASC
 
  ';
 
  $q = db_phquery($sql);
 
  $data = array();
 
  while( $row = db_fetch_row( $q ) ){
 
 
 
  LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
 
  $data[] = $row;
 
  }
 
  return $data;
 
  }
 
 
 
  function auxpgGetAuxPage( $aux_page_ID ){
 
 
 
  $sql = '
 
  SELECT * FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
 
  ';
 
  $q = db_phquery($sql,$aux_page_ID);
 
  $row=db_fetch_row($q);
 
  LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
 
  if(!strlen($row['aux_page_slug'])){
 
  $row['aux_page_slug'] = $row['aux_page_ID'];
 
  }
 
  return $row;
 
  }
 
 
 
  function auxpgUpdateAuxPage( $aux_page_ID, $aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled,$aux_page_slug ){
 
  $fields='';
 
  $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name);
 
  foreach ($name_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text);
 
  foreach ($text_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords);
 
  foreach ($mkeywords_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description);
 
  foreach ($mdescription_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $sql = 'UPDATE ?#AUX_PAGES_TABLE SET '.$fields.'`aux_page_enabled`=?, `aux_page_slug`=?    WHERE aux_page_ID=?';
 
  db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_slug, $aux_page_ID); 
 
 
 
  }
 
 
 
  function auxpgAddAuxPage($aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled, $aux_page_priority,$aux_page_slug  ){
 
 
 
  $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name, true);
 
  $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text,true);
 
  $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords,true);
 
  $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description,true);
 
  $fields=$name_inj['fields_list'].','.$text_inj['fields_list'].',';
 
  $fields.=$mkeywords_inj['fields_list'].','.$mdescription_inj['fields_list'];
 
  $values_place=str_repeat('?,',
 
  count($name_inj['values'])+count($text_inj['values'])+
 
  count($mkeywords_inj['values'])+count($mdescription_inj['values']));
 
 
 
  $sql = "INSERT ?#AUX_PAGES_TABLE ( {$fields}, aux_page_enabled, aux_page_priority, aux_page_slug ) ";
 
  $sql.="VALUES({$values_place}?,?,?)";
 
 
 
  db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_priority,$aux_page_slug);
 
  return db_insert_id();
 
  }
 
 
 
  function auxpgDeleteAuxPage( $aux_page_ID ){
 
  $DivIDs = DivisionModule::getDivisionIDsWithInterface($this->getConfigID().'_auxpage_'.$_GET['delete']);
 
  DivisionModule::disconnectInterfaces(array($this->getConfigID()=>array($_GET['delete'])));
 
  foreach ($DivIDs as $_ID){
 
  $Division = new Division($_ID);
 
  $Division->delete();
 
  }
 
  $sql = '
 
  DELETE FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
 
  ';
 
  db_phquery($sql, $aux_page_ID);
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->deleteLocal($this->getAuxPageLocalID($aux_page_ID));
 
  }
 
  }
 
 
 
  function updateAuxPageNameLocal($aux_page_ID, $data){
 
  $divisionID = DivisionModule::getDivisionIDByName('pgn_ap_'.$aux_page_ID);
 
  if($divisionID){
 
  $AuxDivision = new Division();
 
  /* @var $AuxDivision Division */
 
  $AuxDivision->load($divisionID);
 
  $AuxDivision->setUnicKey((strlen($data['aux_page_slug'])?$data['aux_page_slug']:$aux_page_ID));
 
  $AuxDivision->save();
 
  }
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->updateLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'');
 
  }
 
  }
 
 
 
  function addAuxPageNameLocal($aux_page_ID, $data){
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->addLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'', LOCALTYPE_HIDDEN, 'lsgr_general');
 
  }
 
  }
 
 
 
  function getAuxPageLocalID($aux_page_ID){
 
 
 
  return "pgn_ap_{$aux_page_ID}";
 
  }
 
  }
 
  ?>

Неактивен

 

#12 2011-01-27 15:31

www.po.kiev.ua
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

Hunter написал:

мне по аналогии актуально убрать из адреса /auxpage_23/ чтобы адрес был просто /23/

Вот подробное описание как сделать http://easyweb.org.ua/shop-script/remove-auxpage_/
и http://easyweb.org.ua/shop-script/remov … /#more-326 .
Не проверял, на автор авторитетный.

Отредактировано www.po.kiev.ua (2011-01-27 16:24)

Неактивен

 

#13 2011-08-24 17:37

013
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

senty написал:

Более актуальный код для удаление auxpage

Код:

<?php
 
  function cptsettingview_auxpagegroup($params){
 
 
 
 $moduleInstance = &ModulesFabric::getModuleObjByKey('aux_pages');
 
  /*@var $moduleInstance AuxPages*/
 
 
 
 $pages = $moduleInstance->__getEnabledPages();
 
  $params['options'] = array();
 
  foreach ($pages as $page){
 
  $params['options'][$page['id']] = $page['name'];
 
  }
 
 
 
  if(is_string($params['value']))$params['value'] = explode(':', $params['value']);
 
  return cptsettingview_checkboxgroup($params);
 
  }
 
 
 
function cptsettingserializer_auxpagegroup($params, $post){
 
 
 
 $Register = &Register::getInstance();
 
 
 
  if(!$Register->is_set('__AUXNAV_SERIALIZED') && is_array($post[$params['name']])){
 
  $post[$params['name']] = implode(':', $post[$params['name']]);
 
  $reg = 1;
 
  $Register->set('__AUXNAV_SERIALIZED', $reg);
 
  }
 
  return cptsettingserializer_checkboxgroup($params, $post);
 
  }
 
 
 
class AuxAdministrationController extends ActionsController {
 
 
 
  function save_order(){
 
 
 
  $scan_result = scanArrayKeysForID($_POST, 'priority');
 
  $sql = '
 
  UPDATE ?#AUX_PAGES_TABLE SET aux_page_priority=? WHERE aux_page_ID=?
 
  ';
 
 
 
  foreach ($scan_result as $aux_id=>$scan_info){
 
 
 
  db_phquery($sql, $scan_info['priority'], $aux_id);
 
  }
 
 
 
  Message::raiseAjaxMessage(MSG_SUCCESS, '', 'order_saved');
 
  die;
 
  }
 
 
 
  function main(){
 
 
 
  $moduleEntry = &$this->__params['module'];
 
  /*@var $moduleEntry AuxPages*/
 
 
 
 global $smarty;
 
  set_query('safemode=','',true);
 
 
 
  if ( isset($_GET['delete']) ){
 
 
 
  safeMode(true);
 
  $moduleEntry->auxpgDeleteAuxPage( $_GET['delete'] );
 
  RedirectSQ('delete=');
 
  }
 
 
 
  if ( isset($_GET['add_new']) ){
 
 
 
  if ( isset($_POST['save']) ){
 
  $AuxDivision = new Division();
 
  $max_priority = db_phquery_fetch(DBRFETCH_FIRST, 'SELECT MAX(aux_page_priority) FROM ?#AUX_PAGES_TABLE')+1;
 
  if(!isset($_POST['aux_page_slug'])||trim($_POST['aux_page_slug'])==''){
 
  $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
 
  }else{
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
 
  }
 
  $AuxID = $moduleEntry->auxpgAddAuxPage( $_POST, $_POST, $_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $max_priority,$_POST['aux_page_slug'] );
 
  $TitlePageID = DivisionModule::getDivisionIDByUnicKey('TitlePage');
 
 
 
 $moduleEntry->addAuxPageNameLocal($AuxID, $_POST);
 
 
 
  $AuxDivision->setName($moduleEntry->getAuxPageLocalID($AuxID));
 
  $AuxDivision->setEnabled(0);
 
  $AuxDivision->setParentID($TitlePageID);
 
 
 
  $AuxDivision->setUnicKey($_POST['aux_page_slug']);
 
  //$AuxDivision->setUnicKey('auxpage_'.$AuxID);//or set aux_slug
 
  $AuxDivision->save();
 
  $AuxDivision->addInterface($moduleEntry->getConfigID().'_auxpage_'.$AuxID);
 
 
 
  RedirectSQ('add_new=');
 
  }
 
  $smarty->assign( 'add_new', 1 );
 
  }elseif ( isset($_GET['edit']) ){
 
  if ( isset($_POST['save']) ){
 
 
 
  safeMode(true);
 
  if(!isset($_POST['aux_page_slug'])||strlen(trim($_POST['aux_page_slug']))==0){
 
  $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
 
  }else{
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
 
  }
 
  $moduleEntry->auxpgUpdateAuxPage( $_GET['edit'], $_POST,     $_POST,$_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $_POST['aux_page_slug']);
 
  $moduleEntry->updateAuxPageNameLocal( $_GET['edit'], $_POST);
 
  RedirectSQ('edit=');
 
  }
 
 
 
  $aux_page = $moduleEntry->auxpgGetAuxPage( $_GET['edit'] );
 
 
 
  $smarty->assign( 'aux_page', $aux_page );
 
 
 
 $smarty->assign( 'edit', 1 );
 
  }else{
 
 
 
  $aux_pages = $moduleEntry->auxpgGetAllPageAttributes();
 
  $smarty->assign( 'aux_pages', $aux_pages );
 
  }
 
 
 
 //set sub-department template
 
  $smarty->assign('admin_sub_dpt', 'conf_aux_pages.tpl.html');
 
  }
 
  }
 
 
 
class AuxPages extends ComponentModule {
 
 
 
  function getInterface(){
 
 
 
  $Args = func_get_args();
 
  $_InterfaceName = array_shift($Args);
 
  $Results = array();
 
  if(isset($this->Interfaces[$_InterfaceName])){
 
 
 
  $SubPatterns = array();
 
  if(preg_match('|auxpage_(\d+)|',$_InterfaceName, $SubPatterns)){
 
 
 
  global $smarty;
 
  $AuxInfo = $this->auxpgGetAuxPage($SubPatterns[1]);
 
  if(!$AuxInfo['aux_page_enabled'])RedirectSQ('?');
 
  $page_title = $AuxInfo["aux_page_name"]." | ".CONF_SHOP_NAME;
 
  $meta_tags = "";
 
  if  ( $AuxInfo["meta_description"] != "" )
 
  $meta_tags .= '<meta name="description" content="'.xHtmlSpecialChars($AuxInfo["meta_description"]).'">'."\n";
 
  if  ( $AuxInfo["meta_keywords"] != "" )
 
  $meta_tags .= '<meta name="keywords" content="'.xHtmlSpecialChars($AuxInfo["meta_keywords"]).'">'."\n";
 
 
 
  $smarty->assign("page_title",    $page_title );
 
  $smarty->assign("page_meta_tags", $meta_tags );
 
  $smarty->assign('aux_page', $AuxInfo['aux_page_text']);
 
  $smarty->assign('main_content_template', $this->getTemplatePath('frontend/aux_page.html'));
 
  return '';
 
  }
 
  $ParamsNum = count($Args);
 
  $EvalParams = array();
 
 
 
  for($_i = 0; $_i<$ParamsNum; $_i++){
 
 
 
  $EvalParams[] = '$Args['.$_i.']';
 
  }
 
 
 
  $this->__clearInterfaceStack();
 
  $this->__pushToStack('info', $this->Interfaces[$_InterfaceName]);
 
  $this->__pushToStack('call_params', $Args);
 
 
 
  eval('$Results = $this->'.$this->Interfaces[$_InterfaceName]['method'].'('.implode(',', $EvalParams).');');
 
  }
 
  return $Results;
 
  }
 
 
 
  function initInterfaces(){
 
 
 
  $this->Interfaces = array(
 
  'fauxpage'=> array(
 
  'name' => 'pgn_auxpages',
 
  'method' => 'methodFAuxPage',
 
  ),
 
  'bauxpage'=> array(
 
  'name' => 'pgn_auxpages_admin',
 
  'method' => 'methodBAuxPage',
 
  ),
 
  );
 
 
 
  $sql = '
 
  SELECT *, '.LanguagesManager::sql_prepareField('aux_page_name').' AS aux_page_name FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_name ASC
 
  ';
 
  $Result = $this->dbHandler->ph_query($sql);
 
  while ($_Row = $Result->fetchAssoc()) {
 
 
 
  $this->Interfaces['auxpage_'.$_Row['aux_page_ID']] = array(
 
  'name' => $_Row['aux_page_name'],
 
  'method' => 'auxpage_'.$_Row['aux_page_ID'],
 
  );
 
  }
 
 
 
  $this->__registerComponent('auxpages_navigation', 'cpt_lbl_auxpages_navigation', array(TPLID_GENERAL_LAYOUT), null,
 
  array(
 
  'select_pages' => array('type' => 'select', 'params' => array('name' => 'select_pages', 'title' => '', 'options' => array('all' => 'cpt_lbl_selectaux_type_all', 'selected' => 'cpt_lbl_selectaux_type_selected'), 'onchange' => 'var objDiv = getLayer("cpt-layer-auxpages"); objDiv.style.display=select_getCurrValue(this)=="all"?"none":"";', 'default_value' => 'all')),
 
  'auxpages' => array('type' => 'auxpagegroup', 'params' => array('name' => 'auxpages', 'title'=> 'cpt_lbl_selectauxpages','value'=> '', 'options'=> array(), 'before_load' => '<script type="text/javascript">var objDiv = getLayer("cpts-select_pages-select_pages");getLayer("cpt-layer-auxpages").style.display = select_getCurrValue(objDiv)=="all"?"none":"";</script>')),
 
  'view' => array('type' => 'radiogroup', 'params' => array('name' => 'view', 'title'=> 'cpt_lbl_view','value'=> 'vertical', 'options'=> array('vertical' => 'cpt_lbl_vertical', 'horizontal' => 'cpt_lbl_horizontal'))),
 
  ));
 
  }
 
 
 
 function __getEnabledPages(){
 
 
 
  $sql = 'SELECT '.LanguagesManager::sql_prepareField('aux_page_name').' AS name, `aux_page_ID` AS `id`, `aux_page_slug` FROM ?#AUX_PAGES_TABLE WHERE aux_page_enabled=1 ORDER BY `aux_page_priority` ASC';
 
  //        return db_phquery_array($sql);
 
  $Register = &Register::getInstance();
 
  $DBHandler = &$Register->get(VAR_DBHANDLER);
 
  /* @var $DBHandler DataBase */
 
 
 
  $DBRes = $DBHandler->ph_query($sql);
 
 
 
  $pages = $DBRes->fetchArrayAssoc();
 
 
 
  return $pages;
 
  }
 
 
 
  function cpt_auxpages_navigation(){
 
 
 
  list($local_settings) = $this->__getFromStack('call_params');
 
  if(isset($local_settings['local_settings']))$local_settings = $local_settings['local_settings'];
 
 
 
 $pages = $this->__getEnabledPages();
 
 
 
  if(!count($pages))return ;
 
 
 
  $allowed_pages = explode(':', $local_settings['auxpages']);
 
  print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">';
 
  foreach ($pages as $page){
 
  if($local_settings['select_pages'] == 'selected' && !in_array($page['id'], $allowed_pages))continue;
 
  //print '<li><a href="'.xHtmlSetQuery('?ukey=auxpage_'.$page['id']).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
 
  print '<li><a href="'.xHtmlSetQuery('?ukey='.($page['aux_page_slug']?$page['aux_page_slug']:$page['id'])).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
 
  }
 
  print '</ul>';
 
  }
 
 
 
  function methodBAuxPage(){
 
 
 
 ActionsController::exec('AuxAdministrationController', array(ACTCTRL_POST, ACTCTRL_GET, ACTCTRL_AJAX, ACTCTRL_CUST), array('module' => &$this));
 
  }
 
 
 
  function methodFAuxPage(){
 
 
 
 global $smarty;
 
  $aux_page = $this->auxpgGetAuxPage( $_GET['show_aux_page'] );
 
 
 
 if ( $aux_page ){
 
 
 
  $smarty->assign('page_body', $aux_page['aux_page_text'] );
 
  $smarty->assign('show_aux_page', $_GET['show_aux_page'] );
 
  $smarty->assign('main_content_template', 'show_aux_page.tpl.html' );
 
  }
 
  else
 
  {
 
  $smarty->assign('main_content_template', 'page_not_found.tpl.html' );
 
  }
 
  }
 
 
 
 function auxpgGetAllPageAttributes(){
 
 
 
  $sql = '
 
  SELECT * FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_priority ASC
 
  ';
 
  $q = db_phquery($sql);
 
  $data = array();
 
  while( $row = db_fetch_row( $q ) ){
 
 
 
  LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
 
  $data[] = $row;
 
  }
 
  return $data;
 
  }
 
 
 
  function auxpgGetAuxPage( $aux_page_ID ){
 
 
 
  $sql = '
 
  SELECT * FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
 
  ';
 
  $q = db_phquery($sql,$aux_page_ID);
 
  $row=db_fetch_row($q);
 
  LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
 
  if(!strlen($row['aux_page_slug'])){
 
  $row['aux_page_slug'] = $row['aux_page_ID'];
 
  }
 
  return $row;
 
  }
 
 
 
  function auxpgUpdateAuxPage( $aux_page_ID, $aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled,$aux_page_slug ){
 
  $fields='';
 
  $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name);
 
  foreach ($name_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text);
 
  foreach ($text_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords);
 
  foreach ($mkeywords_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description);
 
  foreach ($mdescription_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $sql = 'UPDATE ?#AUX_PAGES_TABLE SET '.$fields.'`aux_page_enabled`=?, `aux_page_slug`=?    WHERE aux_page_ID=?';
 
  db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_slug, $aux_page_ID); 
 
 
 
  }
 
 
 
  function auxpgAddAuxPage($aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled, $aux_page_priority,$aux_page_slug  ){
 
 
 
  $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name, true);
 
  $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text,true);
 
  $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords,true);
 
  $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description,true);
 
  $fields=$name_inj['fields_list'].','.$text_inj['fields_list'].',';
 
  $fields.=$mkeywords_inj['fields_list'].','.$mdescription_inj['fields_list'];
 
  $values_place=str_repeat('?,',
 
  count($name_inj['values'])+count($text_inj['values'])+
 
  count($mkeywords_inj['values'])+count($mdescription_inj['values']));
 
 
 
  $sql = "INSERT ?#AUX_PAGES_TABLE ( {$fields}, aux_page_enabled, aux_page_priority, aux_page_slug ) ";
 
  $sql.="VALUES({$values_place}?,?,?)";
 
 
 
  db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_priority,$aux_page_slug);
 
  return db_insert_id();
 
  }
 
 
 
  function auxpgDeleteAuxPage( $aux_page_ID ){
 
  $DivIDs = DivisionModule::getDivisionIDsWithInterface($this->getConfigID().'_auxpage_'.$_GET['delete']);
 
  DivisionModule::disconnectInterfaces(array($this->getConfigID()=>array($_GET['delete'])));
 
  foreach ($DivIDs as $_ID){
 
  $Division = new Division($_ID);
 
  $Division->delete();
 
  }
 
  $sql = '
 
  DELETE FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
 
  ';
 
  db_phquery($sql, $aux_page_ID);
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->deleteLocal($this->getAuxPageLocalID($aux_page_ID));
 
  }
 
  }
 
 
 
  function updateAuxPageNameLocal($aux_page_ID, $data){
 
  $divisionID = DivisionModule::getDivisionIDByName('pgn_ap_'.$aux_page_ID);
 
  if($divisionID){
 
  $AuxDivision = new Division();
 
  /* @var $AuxDivision Division */
 
  $AuxDivision->load($divisionID);
 
  $AuxDivision->setUnicKey((strlen($data['aux_page_slug'])?$data['aux_page_slug']:$aux_page_ID));
 
  $AuxDivision->save();
 
  }
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->updateLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'');
 
  }
 
  }
 
 
 
  function addAuxPageNameLocal($aux_page_ID, $data){
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->addLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'', LOCALTYPE_HIDDEN, 'lsgr_general');
 
  }
 
  }
 
 
 
  function getAuxPageLocalID($aux_page_ID){
 
 
 
  return "pgn_ap_{$aux_page_ID}";
 
  }
 
  }
 
  ?>

Спасибо!

Неактивен

 

#14 2011-11-08 02:29

besoff
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

www.po.kiev.ua спасибо!

Неактивен

 

#15 2011-11-17 17:03

realstem
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

Спасибо, помогло.
а подскажите, пожалуйста вдогонку по теме - как правильно настроить переадресацию в htaccess, чтобы старые ссылки вида "site.ru/auxpage_about" тоже работали и отправляли на "site.ru/about"

RedirectPermanent /auxpage_about http://site.ru/about/
не работает sad

Неактивен

 

#16 2011-11-17 18:24

www.po.kiev.ua
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

realstem написал:

Спасибо, помогло.
а подскажите, пожалуйста вдогонку по теме - как правильно настроить переадресацию в htaccess, чтобы старые ссылки вида "site.ru/auxpage_about" тоже работали и отправляли на "site.ru/about"

RedirectPermanent /auxpage_about http://site.ru/about/
не работает sad

Странное у вас представление о том, как работает редирект.
Чем приведенные выше ссылки на инструкции как это сделать не устраивают?
Или просто читать лень?

Неактивен

 

#17 2011-11-17 22:25

realstem
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

www.po.kiev.ua написал:

Чем приведенные выше ссылки на инструкции как это сделать не устраивают?
Или просто читать лень?

нет-нет, вышеприведённые все я прочитал, всё получилось и работает без приставки auxpage_. но на чужих дружественных сайтах возможно остались ссылки на старые информационные страницы вида auxpage_text вот их работоспособность тоже сохранить бы.

Неактивен

 

#18 2011-11-18 00:44

www.po.kiev.ua
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

realstem написал:

www.po.kiev.ua написал:

Чем приведенные выше ссылки на инструкции как это сделать не устраивают?
Или просто читать лень?

нет-нет, вышеприведённые все я прочитал, всё получилось и работает без приставки auxpage_. но на чужих дружественных сайтах возможно остались ссылки на старые информационные страницы вида auxpage_text вот их работоспособность тоже сохранить бы.

Как-то так:

Код:

RewriteRule ^auxpage_(.*) /$1 [NC,R=301,L]

но, т.к. эти урл обрабатываются движком, на 100% гарантировать не могу.

Неактивен

 

#19 2011-11-18 13:32

realstem
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

www.po.kiev.ua написал:

Как-то так:

Код:

RewriteRule ^auxpage_(.*) /$1 [NC,R=301,L]

но, т.к. эти урл обрабатываются движком, на 100% гарантировать не могу.

сработало! спасибо большое smile

Неактивен

 

#20 2011-11-19 11:01

vicsk
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

senty написал:

Более актуальный код для удаление auxpage

Код:

<?php
 
  function cptsettingview_auxpagegroup($params){
 
 
 
 $moduleInstance = &ModulesFabric::getModuleObjByKey('aux_pages');
 
  /*@var $moduleInstance AuxPages*/
 
 
 
 $pages = $moduleInstance->__getEnabledPages();
 
  $params['options'] = array();
 
  foreach ($pages as $page){
 
  $params['options'][$page['id']] = $page['name'];
 
  }
 
 
 
  if(is_string($params['value']))$params['value'] = explode(':', $params['value']);
 
  return cptsettingview_checkboxgroup($params);
 
  }
 
 
 
function cptsettingserializer_auxpagegroup($params, $post){
 
 
 
 $Register = &Register::getInstance();
 
 
 
  if(!$Register->is_set('__AUXNAV_SERIALIZED') && is_array($post[$params['name']])){
 
  $post[$params['name']] = implode(':', $post[$params['name']]);
 
  $reg = 1;
 
  $Register->set('__AUXNAV_SERIALIZED', $reg);
 
  }
 
  return cptsettingserializer_checkboxgroup($params, $post);
 
  }
 
 
 
class AuxAdministrationController extends ActionsController {
 
 
 
  function save_order(){
 
 
 
  $scan_result = scanArrayKeysForID($_POST, 'priority');
 
  $sql = '
 
  UPDATE ?#AUX_PAGES_TABLE SET aux_page_priority=? WHERE aux_page_ID=?
 
  ';
 
 
 
  foreach ($scan_result as $aux_id=>$scan_info){
 
 
 
  db_phquery($sql, $scan_info['priority'], $aux_id);
 
  }
 
 
 
  Message::raiseAjaxMessage(MSG_SUCCESS, '', 'order_saved');
 
  die;
 
  }
 
 
 
  function main(){
 
 
 
  $moduleEntry = &$this->__params['module'];
 
  /*@var $moduleEntry AuxPages*/
 
 
 
 global $smarty;
 
  set_query('safemode=','',true);
 
 
 
  if ( isset($_GET['delete']) ){
 
 
 
  safeMode(true);
 
  $moduleEntry->auxpgDeleteAuxPage( $_GET['delete'] );
 
  RedirectSQ('delete=');
 
  }
 
 
 
  if ( isset($_GET['add_new']) ){
 
 
 
  if ( isset($_POST['save']) ){
 
  $AuxDivision = new Division();
 
  $max_priority = db_phquery_fetch(DBRFETCH_FIRST, 'SELECT MAX(aux_page_priority) FROM ?#AUX_PAGES_TABLE')+1;
 
  if(!isset($_POST['aux_page_slug'])||trim($_POST['aux_page_slug'])==''){
 
  $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
 
  }else{
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',AUX_PAGES_TABLE,'aux_page_slug');
 
  }
 
  $AuxID = $moduleEntry->auxpgAddAuxPage( $_POST, $_POST, $_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $max_priority,$_POST['aux_page_slug'] );
 
  $TitlePageID = DivisionModule::getDivisionIDByUnicKey('TitlePage');
 
 
 
 $moduleEntry->addAuxPageNameLocal($AuxID, $_POST);
 
 
 
  $AuxDivision->setName($moduleEntry->getAuxPageLocalID($AuxID));
 
  $AuxDivision->setEnabled(0);
 
  $AuxDivision->setParentID($TitlePageID);
 
 
 
  $AuxDivision->setUnicKey($_POST['aux_page_slug']);
 
  //$AuxDivision->setUnicKey('auxpage_'.$AuxID);//or set aux_slug
 
  $AuxDivision->save();
 
  $AuxDivision->addInterface($moduleEntry->getConfigID().'_auxpage_'.$AuxID);
 
 
 
  RedirectSQ('add_new=');
 
  }
 
  $smarty->assign( 'add_new', 1 );
 
  }elseif ( isset($_GET['edit']) ){
 
  if ( isset($_POST['save']) ){
 
 
 
  safeMode(true);
 
  if(!isset($_POST['aux_page_slug'])||strlen(trim($_POST['aux_page_slug']))==0){
 
  $_POST['aux_page_slug'] = LanguagesManager::ml_getFieldValue('aux_page_name',$_POST);
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
 
  }else{
 
  $_POST['aux_page_slug'] = make_clean_slug($_POST['aux_page_slug'],'',DIVISIONS_TBL,'xUnicKey','xName',$moduleEntry->getAuxPageLocalID($_GET['edit']));
 
  }
 
  $moduleEntry->auxpgUpdateAuxPage( $_GET['edit'], $_POST,     $_POST,$_POST, $_POST, isset($_POST['aux_page_enabled'])?1:0, $_POST['aux_page_slug']);
 
  $moduleEntry->updateAuxPageNameLocal( $_GET['edit'], $_POST);
 
  RedirectSQ('edit=');
 
  }
 
 
 
  $aux_page = $moduleEntry->auxpgGetAuxPage( $_GET['edit'] );
 
 
 
  $smarty->assign( 'aux_page', $aux_page );
 
 
 
 $smarty->assign( 'edit', 1 );
 
  }else{
 
 
 
  $aux_pages = $moduleEntry->auxpgGetAllPageAttributes();
 
  $smarty->assign( 'aux_pages', $aux_pages );
 
  }
 
 
 
 //set sub-department template
 
  $smarty->assign('admin_sub_dpt', 'conf_aux_pages.tpl.html');
 
  }
 
  }
 
 
 
class AuxPages extends ComponentModule {
 
 
 
  function getInterface(){
 
 
 
  $Args = func_get_args();
 
  $_InterfaceName = array_shift($Args);
 
  $Results = array();
 
  if(isset($this->Interfaces[$_InterfaceName])){
 
 
 
  $SubPatterns = array();
 
  if(preg_match('|auxpage_(\d+)|',$_InterfaceName, $SubPatterns)){
 
 
 
  global $smarty;
 
  $AuxInfo = $this->auxpgGetAuxPage($SubPatterns[1]);
 
  if(!$AuxInfo['aux_page_enabled'])RedirectSQ('?');
 
  $page_title = $AuxInfo["aux_page_name"]." | ".CONF_SHOP_NAME;
 
  $meta_tags = "";
 
  if  ( $AuxInfo["meta_description"] != "" )
 
  $meta_tags .= '<meta name="description" content="'.xHtmlSpecialChars($AuxInfo["meta_description"]).'">'."\n";
 
  if  ( $AuxInfo["meta_keywords"] != "" )
 
  $meta_tags .= '<meta name="keywords" content="'.xHtmlSpecialChars($AuxInfo["meta_keywords"]).'">'."\n";
 
 
 
  $smarty->assign("page_title",    $page_title );
 
  $smarty->assign("page_meta_tags", $meta_tags );
 
  $smarty->assign('aux_page', $AuxInfo['aux_page_text']);
 
  $smarty->assign('main_content_template', $this->getTemplatePath('frontend/aux_page.html'));
 
  return '';
 
  }
 
  $ParamsNum = count($Args);
 
  $EvalParams = array();
 
 
 
  for($_i = 0; $_i<$ParamsNum; $_i++){
 
 
 
  $EvalParams[] = '$Args['.$_i.']';
 
  }
 
 
 
  $this->__clearInterfaceStack();
 
  $this->__pushToStack('info', $this->Interfaces[$_InterfaceName]);
 
  $this->__pushToStack('call_params', $Args);
 
 
 
  eval('$Results = $this->'.$this->Interfaces[$_InterfaceName]['method'].'('.implode(',', $EvalParams).');');
 
  }
 
  return $Results;
 
  }
 
 
 
  function initInterfaces(){
 
 
 
  $this->Interfaces = array(
 
  'fauxpage'=> array(
 
  'name' => 'pgn_auxpages',
 
  'method' => 'methodFAuxPage',
 
  ),
 
  'bauxpage'=> array(
 
  'name' => 'pgn_auxpages_admin',
 
  'method' => 'methodBAuxPage',
 
  ),
 
  );
 
 
 
  $sql = '
 
  SELECT *, '.LanguagesManager::sql_prepareField('aux_page_name').' AS aux_page_name FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_name ASC
 
  ';
 
  $Result = $this->dbHandler->ph_query($sql);
 
  while ($_Row = $Result->fetchAssoc()) {
 
 
 
  $this->Interfaces['auxpage_'.$_Row['aux_page_ID']] = array(
 
  'name' => $_Row['aux_page_name'],
 
  'method' => 'auxpage_'.$_Row['aux_page_ID'],
 
  );
 
  }
 
 
 
  $this->__registerComponent('auxpages_navigation', 'cpt_lbl_auxpages_navigation', array(TPLID_GENERAL_LAYOUT), null,
 
  array(
 
  'select_pages' => array('type' => 'select', 'params' => array('name' => 'select_pages', 'title' => '', 'options' => array('all' => 'cpt_lbl_selectaux_type_all', 'selected' => 'cpt_lbl_selectaux_type_selected'), 'onchange' => 'var objDiv = getLayer("cpt-layer-auxpages"); objDiv.style.display=select_getCurrValue(this)=="all"?"none":"";', 'default_value' => 'all')),
 
  'auxpages' => array('type' => 'auxpagegroup', 'params' => array('name' => 'auxpages', 'title'=> 'cpt_lbl_selectauxpages','value'=> '', 'options'=> array(), 'before_load' => '<script type="text/javascript">var objDiv = getLayer("cpts-select_pages-select_pages");getLayer("cpt-layer-auxpages").style.display = select_getCurrValue(objDiv)=="all"?"none":"";</script>')),
 
  'view' => array('type' => 'radiogroup', 'params' => array('name' => 'view', 'title'=> 'cpt_lbl_view','value'=> 'vertical', 'options'=> array('vertical' => 'cpt_lbl_vertical', 'horizontal' => 'cpt_lbl_horizontal'))),
 
  ));
 
  }
 
 
 
 function __getEnabledPages(){
 
 
 
  $sql = 'SELECT '.LanguagesManager::sql_prepareField('aux_page_name').' AS name, `aux_page_ID` AS `id`, `aux_page_slug` FROM ?#AUX_PAGES_TABLE WHERE aux_page_enabled=1 ORDER BY `aux_page_priority` ASC';
 
  //        return db_phquery_array($sql);
 
  $Register = &Register::getInstance();
 
  $DBHandler = &$Register->get(VAR_DBHANDLER);
 
  /* @var $DBHandler DataBase */
 
 
 
  $DBRes = $DBHandler->ph_query($sql);
 
 
 
  $pages = $DBRes->fetchArrayAssoc();
 
 
 
  return $pages;
 
  }
 
 
 
  function cpt_auxpages_navigation(){
 
 
 
  list($local_settings) = $this->__getFromStack('call_params');
 
  if(isset($local_settings['local_settings']))$local_settings = $local_settings['local_settings'];
 
 
 
 $pages = $this->__getEnabledPages();
 
 
 
  if(!count($pages))return ;
 
 
 
  $allowed_pages = explode(':', $local_settings['auxpages']);
 
  print '<ul class="'.($local_settings['view'] == 'horizontal'?'horizontal':'vertical').'">';
 
  foreach ($pages as $page){
 
  if($local_settings['select_pages'] == 'selected' && !in_array($page['id'], $allowed_pages))continue;
 
  //print '<li><a href="'.xHtmlSetQuery('?ukey=auxpage_'.$page['id']).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
 
  print '<li><a href="'.xHtmlSetQuery('?ukey='.($page['aux_page_slug']?$page['aux_page_slug']:$page['id'])).'">'.xHtmlSpecialChars($page['name']).'</a></li>';
 
  }
 
  print '</ul>';
 
  }
 
 
 
  function methodBAuxPage(){
 
 
 
 ActionsController::exec('AuxAdministrationController', array(ACTCTRL_POST, ACTCTRL_GET, ACTCTRL_AJAX, ACTCTRL_CUST), array('module' => &$this));
 
  }
 
 
 
  function methodFAuxPage(){
 
 
 
 global $smarty;
 
  $aux_page = $this->auxpgGetAuxPage( $_GET['show_aux_page'] );
 
 
 
 if ( $aux_page ){
 
 
 
  $smarty->assign('page_body', $aux_page['aux_page_text'] );
 
  $smarty->assign('show_aux_page', $_GET['show_aux_page'] );
 
  $smarty->assign('main_content_template', 'show_aux_page.tpl.html' );
 
  }
 
  else
 
  {
 
  $smarty->assign('main_content_template', 'page_not_found.tpl.html' );
 
  }
 
  }
 
 
 
 function auxpgGetAllPageAttributes(){
 
 
 
  $sql = '
 
  SELECT * FROM ?#AUX_PAGES_TABLE ORDER BY aux_page_priority ASC
 
  ';
 
  $q = db_phquery($sql);
 
  $data = array();
 
  while( $row = db_fetch_row( $q ) ){
 
 
 
  LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
 
  $data[] = $row;
 
  }
 
  return $data;
 
  }
 
 
 
  function auxpgGetAuxPage( $aux_page_ID ){
 
 
 
  $sql = '
 
  SELECT * FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
 
  ';
 
  $q = db_phquery($sql,$aux_page_ID);
 
  $row=db_fetch_row($q);
 
  LanguagesManager::ml_fillFields(AUX_PAGES_TABLE, $row);
 
  if(!strlen($row['aux_page_slug'])){
 
  $row['aux_page_slug'] = $row['aux_page_ID'];
 
  }
 
  return $row;
 
  }
 
 
 
  function auxpgUpdateAuxPage( $aux_page_ID, $aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled,$aux_page_slug ){
 
  $fields='';
 
  $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name);
 
  foreach ($name_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text);
 
  foreach ($text_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords);
 
  foreach ($mkeywords_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description);
 
  foreach ($mdescription_inj['fields'] as $field) $fields.=$field.'=?,';
 
  $sql = 'UPDATE ?#AUX_PAGES_TABLE SET '.$fields.'`aux_page_enabled`=?, `aux_page_slug`=?    WHERE aux_page_ID=?';
 
  db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_slug, $aux_page_ID); 
 
 
 
  }
 
 
 
  function auxpgAddAuxPage($aux_page_name, $aux_page_text, $meta_keywords, $meta_description, $aux_page_enabled, $aux_page_priority,$aux_page_slug  ){
 
 
 
  $name_inj = LanguagesManager::sql_prepareFields('aux_page_name', $aux_page_name, true);
 
  $text_inj = LanguagesManager::sql_prepareFields('aux_page_text', $aux_page_text,true);
 
  $mkeywords_inj = LanguagesManager::sql_prepareFields('meta_keywords', $meta_keywords,true);
 
  $mdescription_inj = LanguagesManager::sql_prepareFields('meta_description', $meta_description,true);
 
  $fields=$name_inj['fields_list'].','.$text_inj['fields_list'].',';
 
  $fields.=$mkeywords_inj['fields_list'].','.$mdescription_inj['fields_list'];
 
  $values_place=str_repeat('?,',
 
  count($name_inj['values'])+count($text_inj['values'])+
 
  count($mkeywords_inj['values'])+count($mdescription_inj['values']));
 
 
 
  $sql = "INSERT ?#AUX_PAGES_TABLE ( {$fields}, aux_page_enabled, aux_page_priority, aux_page_slug ) ";
 
  $sql.="VALUES({$values_place}?,?,?)";
 
 
 
  db_phquery_array($sql,$name_inj['values'],$text_inj['values'],$mkeywords_inj['values'],$mdescription_inj['values'],$aux_page_enabled, $aux_page_priority,$aux_page_slug);
 
  return db_insert_id();
 
  }
 
 
 
  function auxpgDeleteAuxPage( $aux_page_ID ){
 
  $DivIDs = DivisionModule::getDivisionIDsWithInterface($this->getConfigID().'_auxpage_'.$_GET['delete']);
 
  DivisionModule::disconnectInterfaces(array($this->getConfigID()=>array($_GET['delete'])));
 
  foreach ($DivIDs as $_ID){
 
  $Division = new Division($_ID);
 
  $Division->delete();
 
  }
 
  $sql = '
 
  DELETE FROM ?#AUX_PAGES_TABLE WHERE aux_page_ID=?
 
  ';
 
  db_phquery($sql, $aux_page_ID);
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->deleteLocal($this->getAuxPageLocalID($aux_page_ID));
 
  }
 
  }
 
 
 
  function updateAuxPageNameLocal($aux_page_ID, $data){
 
  $divisionID = DivisionModule::getDivisionIDByName('pgn_ap_'.$aux_page_ID);
 
  if($divisionID){
 
  $AuxDivision = new Division();
 
  /* @var $AuxDivision Division */
 
  $AuxDivision->load($divisionID);
 
  $AuxDivision->setUnicKey((strlen($data['aux_page_slug'])?$data['aux_page_slug']:$aux_page_ID));
 
  $AuxDivision->save();
 
  }
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->updateLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'');
 
  }
 
  }
 
 
 
  function addAuxPageNameLocal($aux_page_ID, $data){
 
 
 
  $languages = LanguagesManager::getLanguages();
 
  foreach ($languages as $languageEntry){
 
  /*@var $languageEntry Language*/
 
  $languageEntry->addLocal($this->getAuxPageLocalID($aux_page_ID), isset($data['aux_page_name'.'_'.$languageEntry->iso2])?$data['aux_page_name'.'_'.$languageEntry->iso2]:'', LOCALTYPE_HIDDEN, 'lsgr_general');
 
  }
 
  }
 
 
 
  function getAuxPageLocalID($aux_page_ID){
 
 
 
  return "pgn_ap_{$aux_page_ID}";
 
  }
 
  }
 
  ?>

А чем этот код актуальнее в чем разница?

Неактивен

 

#21 2011-11-19 13:10

masbot
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

Еще для корректного формирования sitemap нужно в файле published/SC/html/scripts/modules/adminscreens/_methods/google_sitemap.php
В строке
$exportData->setRowHandler('global $___base_path;if(!$row[\'url\'])$row[\'url\'] = $row[\'url2\'];unset($row[\'url2\']);$row[\'url\'] = $_POST[\'base_url\'].str_replace($___base_path,\'\',set_query("?ukey=auxpage_{$row[\'url\']}".(MOD_REWRITE_SUPPORT?"&furl_enable=1":"")));return $row;');

удалить auxpage_

Неактивен

 

#22 2011-11-19 19:00

noob
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

хм..какието ещё манипуляции нужно делать? Что то не помоло....

Неактивен

 

#23 2012-10-16 04:46

valeriy
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

Подскажите - как сделать ссылки вида:
/категория/подкатегория/товар
точнее к примеру:
если есть двери/межкомнатные двери/ дверь 1234 , то ссылка была вида:
dveri/meghkomnatnye-dveri/dver-1234
?

Отредактировано valeriy (2012-10-16 04:50)

Неактивен

 

#24 2012-11-18 12:31

mosskva
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

убрал по данной инструкции auxpage. метод работает. Подскажите как убрать теперь этот auxpages из sitemap?  а то не правильно выводится путь к страницам - вот пример

Код:

<url>
<loc>http://мойсайт/auxpage_o-kompanii/</loc>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://мойсайт/auxpage_o-produkte/</loc>
<changefreq>daily</changefreq>
<priority>0.7</priority>
</url>

Отредактировано rat (2012-11-20 11:16)

Неактивен

 

#25 2013-06-20 22:31

pavlusha
Пользователь

Re: Помогите пожалуйста с ЧПУ ( как убрать category/ )

что бы заменить category на что-либо другое нужно в строке

Код:

                $request .= 'category/'.(isset($get['category_slug'])?$get['category_slug']:$get['categoryID']).'/';

заменить 'category/' например на 'group/'
и ещё вот здесь

Код:

                        case 'category':
                                $this->__path_settings['category_slug'] = str_replace('.html', '', array_shift($path_parts));
                                $this->__path_settings['category_search'] = false;
                                if(isset($path_parts[0]) && $path_parts[0] == 'search'){
                                    $this->__path_settings['category_search'] = true;
                                }
                                $this->__path_settings['update_sys_handler'] = 'category';
                                continue;

так же поменять 'category' на 'group'

а так что бы работало вообще без этого помоему сделать нельзя

Не работает, кеш чистил, непомогает.
Кто сталкивался, помогите пожалуйста.

Неактивен

 

Board footer

Powered by PunBB