Вы не авторизованы.
подскажите пожалуйста как сделать так чтоб было не
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']).'/';
как правильно отредактировать ?
Неактивен
ну что, никто не знает ?
Неактивен
$request .= (isset($get['category_slug'])?$get['category_slug']:$get['categoryID']).'/';
Неактивен
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'
а так что бы работало вообще без этого помоему сделать нельзя
Неактивен
Вообще-то, кроме правки class.furl.php нужно править .htacess
Неактивен
А вообще-то нихрена такого подобного.
Неактивен
апну тему, мне по аналогии актуально убрать из адреса /auxpage_23/ чтобы адрес был просто /23/
в class.furl.php упоминание об auxpage не нашел да и вообще в папке published/SC/html/scripts/classes/ про ауксы ничего нету![]()
Или это только в .htaccess можно исправить? Наверняка еще где то в скриптах...
Где?
Неактивен
замените содержимое файла
/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)
Неактивен
не работает код
Неактивен
а можно ли переименовать category/ и product/ в другие названия?
Неактивен
Более актуальный код для удаление 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}";
}
}
?>Неактивен
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)
Неактивен
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}"; } } ?>
Спасибо!
Неактивен
www.po.kiev.ua спасибо!
Неактивен
Спасибо, помогло.
а подскажите, пожалуйста вдогонку по теме - как правильно настроить переадресацию в htaccess, чтобы старые ссылки вида "site.ru/auxpage_about" тоже работали и отправляли на "site.ru/about"
RedirectPermanent /auxpage_about http://site.ru/about/
не работает ![]()
Неактивен
realstem написал:
Спасибо, помогло.
а подскажите, пожалуйста вдогонку по теме - как правильно настроить переадресацию в htaccess, чтобы старые ссылки вида "site.ru/auxpage_about" тоже работали и отправляли на "site.ru/about"
RedirectPermanent /auxpage_about http://site.ru/about/
не работает
Странное у вас представление о том, как работает редирект.
Чем приведенные выше ссылки на инструкции как это сделать не устраивают?
Или просто читать лень?
Неактивен
www.po.kiev.ua написал:
Чем приведенные выше ссылки на инструкции как это сделать не устраивают?
Или просто читать лень?
нет-нет, вышеприведённые все я прочитал, всё получилось и работает без приставки auxpage_. но на чужих дружественных сайтах возможно остались ссылки на старые информационные страницы вида auxpage_text вот их работоспособность тоже сохранить бы.
Неактивен
realstem написал:
www.po.kiev.ua написал:
Чем приведенные выше ссылки на инструкции как это сделать не устраивают?
Или просто читать лень?нет-нет, вышеприведённые все я прочитал, всё получилось и работает без приставки auxpage_. но на чужих дружественных сайтах возможно остались ссылки на старые информационные страницы вида auxpage_text вот их работоспособность тоже сохранить бы.
Как-то так:
RewriteRule ^auxpage_(.*) /$1 [NC,R=301,L]
но, т.к. эти урл обрабатываются движком, на 100% гарантировать не могу.
Неактивен
www.po.kiev.ua написал:
Как-то так:
Код:
RewriteRule ^auxpage_(.*) /$1 [NC,R=301,L]но, т.к. эти урл обрабатываются движком, на 100% гарантировать не могу.
сработало! спасибо большое ![]()
Неактивен
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}"; } } ?>
А чем этот код актуальнее в чем разница?
Неактивен
Еще для корректного формирования 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_
Неактивен
хм..какието ещё манипуляции нужно делать? Что то не помоло....
Неактивен
Подскажите - как сделать ссылки вида:
/категория/подкатегория/товар
точнее к примеру:
если есть двери/межкомнатные двери/ дверь 1234 , то ссылка была вида:
dveri/meghkomnatnye-dveri/dver-1234
?
Отредактировано valeriy (2012-10-16 04:50)
Неактивен
убрал по данной инструкции 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)
Неактивен
что бы заменить 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'
а так что бы работало вообще без этого помоему сделать нельзя
Не работает, кеш чистил, непомогает.
Кто сталкивался, помогите пожалуйста.
Неактивен