示例#1
0
 private function initialize_site_structure()
 {
     $nodes = array();
     foreach ($this->components as $component) {
         $nodes[$component] = midcom_helper_misc::find_node_by_component($component);
     }
     if (empty($nodes)) {
         return;
     }
     foreach ($nodes as $component => $node) {
         $parts = explode('.', $component);
         $last = array_pop($parts);
         $node_guid = 'false';
         $node_full_url = 'false';
         $node_relative_url = 'false';
         if (is_array($node)) {
             $node_guid = "'" . $node[MIDCOM_NAV_OBJECT]->guid . "'";
             $node_full_url = "'" . $node[MIDCOM_NAV_FULLURL] . "'";
             $node_relative_url = "'" . $node[MIDCOM_NAV_RELATIVEURL] . "'";
         }
         $this->set_config_value($last . '_guid', $node_guid);
         $this->set_config_value($last . '_full_url', $node_full_url);
         $this->set_config_value($last . '_relative_url', $node_relative_url);
     }
     midcom::get('auth')->request_sudo('org.openpsa.core');
     $this->snippet->update();
     midcom::get('auth')->drop_sudo();
     midcom::get('uimessages')->add($this->_l10n->get('org.openpsa.core'), $this->_l10n->get('site structure cache created'), 'info');
 }
示例#2
0
文件: edit.php 项目: nemein/openpsa
 private function _save_configuration()
 {
     $sg_snippetdir = new midcom_db_snippetdir();
     $sg_snippetdir->get_by_path($GLOBALS['midcom_config']['midcom_sgconfig_basedir']);
     if ($sg_snippetdir->id == false) {
         $sd = new midcom_db_snippetdir();
         $sd->up = 0;
         $sd->name = $GLOBALS['midcom_config']['midcom_sgconfig_basedir'];
         if (!$sd->create()) {
             throw new midcom_error("Failed to create {$GLOBALS['midcom_config']['midcom_sgconfig_basedir']}" . midcom_connection::get_error_string());
         }
         $sg_snippetdir = new midcom_db_snippetdir($sd->guid);
         unset($sd);
     }
     $lib_snippetdir = new midcom_db_snippetdir();
     $lib_snippetdir->get_by_path($GLOBALS['midcom_config']['midcom_sgconfig_basedir'] . "/" . $this->_component_name);
     if ($lib_snippetdir->id == false) {
         $sd = new midcom_db_snippetdir();
         $sd->up = $sg_snippetdir->id;
         $sd->name = $this->_component_name;
         if (!$sd->create()) {
             throw new midcom_error("Failed to create {$this->_component_name}" . midcom_connection::get_error_string());
         }
         $lib_snippetdir = new midcom_db_snippetdir($sd->guid);
         unset($sd);
     }
     $snippet = new midcom_db_snippet();
     $snippet->get_by_path($GLOBALS['midcom_config']['midcom_sgconfig_basedir'] . "/" . $this->_component_name . "/config");
     if ($snippet->id == false) {
         $sn = new midcom_db_snippet();
         $sn->up = $lib_snippetdir->id;
         $sn->name = "config";
         if (!$sn->create()) {
             throw new midcom_error("Failed to create config snippet" . midcom_connection::get_error_string());
         }
         $snippet = new midcom_db_snippet($sn->id);
     }
     $snippet->code = $this->_get_config($this->_controller);
     if ($snippet->code == '' || !$snippet->code) {
         throw new midcom_error("code-init content generation failed.");
     }
     return $snippet->update();
 }
示例#3
0
 /**
  * Save configuration values to a topic as "serialized" array
  *
  * @return boolean
  */
 private function _save_snippet($config)
 {
     $sg_snippetdir = new midcom_db_snippetdir();
     $sg_snippetdir->get_by_path($GLOBALS['midcom_config']['midcom_sgconfig_basedir']);
     if (!$sg_snippetdir->guid) {
         // Create SG config snippetdir
         $sd = new midcom_db_snippetdir();
         $sd->up = 0;
         $sd->name = $GLOBALS['midcom_config']['midcom_sgconfig_basedir'];
         // remove leading slash from name
         $sd->name = preg_replace("/^\\//", "", $sd->name);
         if (!$sd->create()) {
             throw new midcom_error("Failed to create snippetdir {$GLOBALS['midcom_config']['midcom_sgconfig_basedir']}: " . midcom_connection::get_error_string());
         }
         $sg_snippetdir = new midcom_db_snippetdir($sd->guid);
     }
     $lib_snippetdir = new midcom_db_snippetdir();
     $lib_snippetdir->get_by_path("{$GLOBALS['midcom_config']['midcom_sgconfig_basedir']}/{$this->_request_data['name']}");
     if (!$lib_snippetdir->guid) {
         $sd = new midcom_db_snippetdir();
         $sd->up = $sg_snippetdir->id;
         $sd->name = $this->_request_data['name'];
         if (!$sd->create()) {
             throw new midcom_error("Failed to create snippetdir {$GLOBALS['midcom_config']['midcom_sgconfig_basedir']}/{$data['name']}: " . midcom_connection::get_error_string());
         }
         $lib_snippetdir = new midcom_db_snippetdir($sd->guid);
     }
     $snippet = new midcom_db_snippet();
     $snippet->get_by_path("{$GLOBALS['midcom_config']['midcom_sgconfig_basedir']}/{$this->_request_data['name']}/config");
     if ($snippet->id == false) {
         $sn = new midcom_db_snippet();
         $sn->up = $lib_snippetdir->id;
         $sn->name = 'config';
         $sn->code = $config;
         return $sn->create();
     }
     $snippet->code = $config;
     return $snippet->update();
 }