コード例 #1
0
ファイル: func.php プロジェクト: kzotoff/JuliaCMS
 /**
  * AJAX!
  *
  */
 function AJAXHandler()
 {
     $input_filter = array('id' => array('filter' => FILTER_VALIDATE_REGEXP, 'options' => array('regexp' => '~^-?[0-9]+$~ui')), 'action' => array('filter' => FILTER_VALIDATE_REGEXP, 'options' => array('regexp' => '~^[a-zA-Z0-9\\_\\-]+$~ui')));
     $_INPUT = get_filtered_input($input_filter, array(FILTER_GET_BY_LIST));
     // default responce
     $response = 'unknown function';
     switch ($_INPUT['action']) {
         // add/edit dialog
         case 'edit_elem':
             if (!user_allowed_to('manage news')) {
                 terminate('Forbidden', '', 403);
             }
             // what to edit
             if ($_INPUT['id'] == '') {
                 return 'bad ID';
             }
             module_init('menu');
             // get element description
             $q = CMS::$DB->query("select id, caption, link, page, streams, summary from `{$this->CONFIG['table']}` where id={$_INPUT['id']}");
             $row = $q->fetch(PDO::FETCH_ASSOC);
             $row['id'] = $_INPUT['id'];
             $xml = array_to_xml($row, array('news-edit-data'));
             // add pages list
             $xml->documentElement->appendChild($xml->importNode(aliasCatchersAsXML(array('root' => 'page-list'))->documentElement, true));
             return XSLTransform($xml->saveXML($xml->documentElement), __DIR__ . '/edit.xsl');
             break;
     }
     return $response;
 }
コード例 #2
0
ファイル: func.php プロジェクト: kzotoff/JuliaCMS
 /**
  *
  */
 function AJAXHandler()
 {
     $input_filter = array('id' => array('filter' => FILTER_VALIDATE_REGEXP, 'options' => array('regexp' => '~^-?[0-9]+$~ui')), 'alias' => array('filter' => FILTER_VALIDATE_REGEXP, 'options' => array('regexp' => REGEXP_ALIAS)), 'action' => array('filter' => FILTER_VALIDATE_REGEXP, 'options' => array('regexp' => '~^[a-zA-Z0-9\\_\\-]+$~ui')));
     $_INPUT = get_filtered_input($input_filter);
     switch ($_INPUT['action']) {
         // edit item form
         case 'edit_elem':
             // some pre-checks
             if (!user_allowed_to('manage menu')) {
                 terminate('Forbidden', '', 403);
             }
             $element_id = $_INPUT['id'];
             $insert_mode = $element_id < 0;
             if ($element_id == '') {
                 return 'bad ID';
             }
             // ok, get XML and transform it
             // array will be almost empty if we are creating new element, this 2 values are just nesessary
             if ($insert_mode) {
                 $row = array('id' => $element_id, 'parent_id' => 0);
             } else {
                 $item_data = CMS::$DB->query("select id, caption, parent_id, page, link, alias, text, picture, style_content, style_item, class_item, hidden, title, meta from `{$this->CONFIG['table_menu']}` where id={$element_id}");
                 $row = $item_data->fetch(PDO::FETCH_ASSOC);
             }
             // entire record now converted to XML and will XSL-transformed
             $xml = array_to_xml($row, array('menu-edit-data'));
             $xml->documentElement->appendChild($xml->importNode(aliasCatchersAsXML(array('root' => 'page-list'))->documentElement, true));
             // get menu id - either from existing row (when editing) or from input (when adding)
             $xml->documentElement->appendChild($xml->importNode($this->generateElemListAsXML($row['parent_id'], array($element_id))->documentElement, true));
             return XSLTransform($xml->saveXML($xml->documentElement), __DIR__ . '/edit.xsl');
             break;
     }
     return 'unknown function';
 }