예제 #1
0
 /**
  * Parse configuration
  * @param  config
  * @param  design
  * @return $pConf
  **/
 function parseConfigDesign($config, $design = false)
 {
     $col1_config = '';
     $col2_config = '';
     $col3_config = '';
     $col1_clearing = '';
     $col2_clearing = '';
     $col3_clearing = '';
     $pConf['addhead'] = '';
     $pConf['addscript'] = array();
     $pConf['addstylesheet'] = array();
     $pConf['layout_1col'] = '';
     $pConf['layout_2col_1'] = '';
     $pConf['layout_2col_2'] = '';
     $pConf['layout_3col'] = '';
     $pConf['custom_xml'] = '';
     $pConf['debug'] = '';
     $pConf['design'] = '';
     $pConf['html_file'] = '';
     $plugins = array();
     $ownVars = array();
     foreach ($config as $conf) {
         if (isset($conf['layout_1col'])) {
             $pConf['layout_1col'] = $conf['layout_1col'] ? $conf['layout_1col'] : '1col_3';
             continue;
         }
         if (isset($conf['layout_2col_1'])) {
             $pConf['layout_2col_1'] = $conf['layout_2col_1'] ? $conf['layout_2col_1'] : '2col_13';
             continue;
         }
         if (isset($conf['layout_2col_2'])) {
             $pConf['layout_2col_2'] = $conf['layout_2col_2'] ? $conf['layout_2col_2'] : '2col_23';
             continue;
         }
         if (isset($conf['layout_3col'])) {
             $pConf['layout_3col'] = $conf['layout_3col'] ? $conf['layout_3col'] : '3col_123';
             continue;
         }
         if (isset($conf['debug'])) {
             $pConf['debug'] = $conf['debug'];
             continue;
         }
         if (isset($conf['design'])) {
             $pConf['design'] = $conf['design'];
             continue;
         }
         if (isset($conf['html_file'])) {
             $pConf['html_file'] = $conf['html_file'];
             continue;
         }
         if (isset($conf['addhead'])) {
             $pConf['addhead'] = $conf['addhead'];
             continue;
         }
         if (isset($conf['custom']['xmlconfig'])) {
             $pConf['custom_xml'] = $conf['custom']['xmlconfig'];
             continue;
         }
         if (isset($conf['addstylesheet'])) {
             foreach ($conf['addstylesheet'] as $file => $attribs) {
                 $pConf['addstylesheet'][$file]['type'] = isset($attribs['type']) ? $attribs['type'] : '';
                 $pConf['addstylesheet'][$file]['media'] = isset($attribs['media']) ? $attribs['media'] : '';
                 $pConf['addstylesheet'][$file]['browser'] = isset($attribs['browser']) ? $attribs['browser'] : '';
                 $pConf['addstylesheet'][$file]['source'] = isset($attribs['source']) ? $attribs['source'] : '';
             }
             continue;
         }
         if (isset($conf['addscript'])) {
             foreach ($conf['addscript'] as $file => $attribs) {
                 $pConf['addscript'][$file]['type'] = isset($attribs['type']) ? $attribs['type'] : '';
                 $pConf['addscript'][$file]['browser'] = isset($attribs['browser']) ? $attribs['browser'] : '';
                 $pConf['addscript'][$file]['source'] = isset($attribs['source']) ? $attribs['source'] : '';
             }
             continue;
         }
         if (isset($conf['col1_content'])) {
             foreach ($conf['col1_content'] as $pos => $col1) {
                 if ($pos == '__clear') {
                     $col1_clearing[] = $col1[0];
                 } else {
                     $col1_config .= JYAML::getContentConfig('col1', $pos, $this->positions, $col1);
                 }
             }
             continue;
         }
         if (isset($conf['col2_content'])) {
             foreach ($conf['col2_content'] as $pos => $col2) {
                 if ($pos == '__clear') {
                     $col2_clearing[] = $col2[0];
                 } else {
                     $col2_config .= JYAML::getContentConfig('col2', $pos, $this->positions, $col2);
                 }
             }
             continue;
         }
         if (isset($conf['col3_content'])) {
             foreach ($conf['col3_content'] as $pos => $col3) {
                 if ($pos == '__clear') {
                     $col3_clearing[] = $col3[0];
                 } else {
                     $col3_config .= JYAML::getContentConfig('col3', $pos, $this->positions, $col3);
                 }
             }
             continue;
         }
         if (isset($conf['plugins'])) {
             foreach ($conf['plugins'] as $plugin => $params) {
                 $plugins[$plugin]['paramString'] = '';
                 foreach ($params as $name => $data) {
                     $plugins[$plugin]['params'][$name] = $data;
                     $plugins[$plugin]['paramString'] .= $name . "=" . $data . "\n";
                 }
             }
             continue;
         }
         /* save own vars */
         $ownKey = key($conf);
         $ownVars[$ownKey] = $conf[$ownKey];
     }
     // Entities for viewing
     $pConf['addhead'] = htmlentities($pConf['addhead']);
     $pConf['col1_config'] = $col1_config ? $col1_config : '';
     $pConf['col2_config'] = $col2_config ? $col2_config : '';
     $pConf['col3_config'] = $col3_config ? $col3_config : '';
     $pConf['col1_clearing'] = JYAML::getPosClear('col1', $col1_clearing);
     $pConf['col2_clearing'] = JYAML::getPosClear('col2', $col2_clearing);
     $pConf['col3_clearing'] = JYAML::getPosClear('col3', $col3_clearing);
     $pConf['plugins'] = $plugins;
     $pConf['ownVars'] = $ownVars;
     return $pConf;
 }