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'); }
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(); }
/** * 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(); }