function i18n_gallery_save($gallery, $oldname) { if ($oldname) { if (!copy(GSDATAPATH . I18N_GALLERY_DIR . $oldname . '.xml', GSBACKUPSPATH . I18N_GALLERY_DIR . $oldname . '.xml')) { return false; } } $data = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><gallery></gallery>'); foreach ($gallery as $key => $value) { if ($key != 'items' && $key != 'item') { $data->addChild($key)->addCData(stripslashes($value)); } } foreach ($gallery['items'] as $item) { $node = $data->addChild('item'); foreach ($item as $key => $value) { $node->addChild($key)->addCData(stripslashes($value)); } list($width, $height) = @getimagesize(GSDATAUPLOADPATH . $item['filename']); $node->addChild('width', $width); $node->addChild('height', $height); $ss = @stat(GSDATAUPLOADPATH . $item['filename']); $node->addChild('size', $ss['size']); } if (!XMLsave($data, GSDATAPATH . I18N_GALLERY_DIR . $gallery['name'] . '.xml')) { return false; } if ($oldname && $oldname != $gallery['name']) { unlink(GSDATAPATH . I18N_GALLERY_DIR . $oldname . '.xml'); } return true; }
function items_customfields_save_them() { if (!copy(GSDATAOTHERPATH . IM_CUSTOMFIELDS_FILE, GSBACKUPSPATH . 'other/' . IM_CUSTOMFIELDS_FILE)) { return false; } $data = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><channel></channel>'); for ($i = 0; isset($_POST['cf_' . $i . '_key']); $i++) { if ($_POST['cf_' . $i . '_key']) { $item = $data->addChild('item'); $item->addChild('desc')->addCData(htmlspecialchars(stripslashes($_POST['cf_' . $i . '_key']), ENT_QUOTES)); $item->addChild('label')->addCData(htmlspecialchars(stripslashes($_POST['cf_' . $i . '_label']), ENT_QUOTES)); $item->addChild('type')->addCData(htmlspecialchars(stripslashes($_POST['cf_' . $i . '_type']), ENT_QUOTES)); if ($_POST['cf_' . $i . '_value']) { $item->addChild('value')->addCData(htmlspecialchars(stripslashes($_POST['cf_' . $i . '_value']), ENT_QUOTES)); } if ($_POST['cf_' . $i . '_options']) { $options = preg_split("/\r?\n/", rtrim(stripslashes($_POST['cf_' . $i . '_options']))); foreach ($options as $option) { $item->addChild('option')->addCData(htmlspecialchars($option, ENT_QUOTES)); } } } } XMLsave($data, GSDATAOTHERPATH . IM_CUSTOMFIELDS_FILE); return true; }
private static function saveSettings() { $data = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><settings></settings>'); foreach (self::$settings as $key => $value) { if ($value != null) { $data->addChild($key)->addCData((string) $value); } } XMLsave($data, GSDATAOTHERPATH . I18N_SETTINGS_FILE); }
public static function generateSitemapWithoutPing() { global $SITEURL; $filenames = getFiles(GSDATAPAGESPATH); if (count($filenames)) { foreach ($filenames as $file) { if (isFile($file, GSDATAPAGESPATH, 'xml')) { $data = getXML(GSDATAPAGESPATH . $file); if ($data->url != '404' && $data->private != 'Y') { $pagesArray[] = array('url' => (string) $data->url, 'parent' => (string) $data->parent, 'date' => (string) $data->pubDate, 'menuStatus' => (string) $data->menuStatus); } } } } $pagesSorted = subval_sort($pagesArray, 'menuStatus'); $languages = return_i18n_available_languages(); $deflang = return_i18n_default_language(); $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><urlset></urlset>'); $xml->addAttribute('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd', 'http://www.w3.org/2001/XMLSchema-instance'); $xml->addAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); if (count($pagesSorted)) { foreach ($pagesSorted as $page) { // set <loc> if (count($languages) > 1) { $pos = strrpos($page['url'], '_'); if ($pos !== false) { $pageLoc = find_i18n_url(substr($page['url'], 0, $pos), $page['parent'], substr($page['url'], $pos + 1)); } else { $pageLoc = find_i18n_url($page['url'], $page['parent'], $deflang); } } else { $pageLoc = find_i18n_url($page['url'], $page['parent']); } // set <lastmod> $pageLastMod = makeIso8601TimeStamp(date("Y-m-d H:i:s", strtotime($page['date']))); // set <changefreq> $pageChangeFreq = 'weekly'; // set <priority> $pagePriority = $page['menuStatus'] == 'Y' ? '1.0' : '0.5'; //add to sitemap $url_item = $xml->addChild('url'); $url_item->addChild('loc', htmlspecialchars($pageLoc)); $url_item->addChild('lastmod', $pageLastMod); $url_item->addChild('changefreq', $pageChangeFreq); $url_item->addChild('priority', $pagePriority); } } //create xml file $file = GSROOTPATH . 'sitemap.xml'; XMLsave($xml, $file); }
function i18n_gallery_settings_save($settings) { if (file_exists(GSDATAOTHERPATH . 'i18n_gallery_settings.xml')) { if (!copy(GSDATAOTHERPATH . 'i18n_gallery_settings.xml', GSBACKUPSPATH . 'i18n_gallery_settings.xml')) { return false; } } $data = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><settings></settings>'); foreach ($settings as $key => $value) { $data->addChild($key)->addCData(stripslashes($value)); } if (!XMLsave($data, GSDATAOTHERPATH . 'i18n_gallery_settings.xml')) { return false; } return true; }
function bm_cache_to_xml($books) { $xml = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><channel></channel>'); foreach ($books as $book) { $item = $xml->addChild('item'); $elem = $item->addChild('slug'); $elem->addCData($book['slug']); $elem = $item->addChild('title'); $elem->addCData($book['title']); $elem = $item->addChild('date'); $elem->addCData($book['date']); $elem = $item->addChild('tags'); $elem->addCData($book['tags']); $elem = $item->addChild('private'); $elem->addCData($book['private']); } return @XMLsave($xml, BMBOOKCACHE); }
function nm_cache_to_xml($posts) { $xml = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><channel></channel>'); foreach ($posts as $post) { $item = $xml->addChild('item'); $elem = $item->addChild('slug'); $elem->addCData($post['slug']); $elem = $item->addChild('title'); $elem->addCData($post['title']); $elem = $item->addChild('date'); $elem->addCData($post['date']); $elem = $item->addChild('tags'); $elem->addCData($post['tags']); $elem = $item->addChild('private'); $elem->addCData($post['private']); $elem = $item->addChild('image'); $elem->addCData($post['image']); if (!empty($post['author'])) { $elem = $item->addChild('author'); $elem->addCData($post['author']); } } return @XMLsave($xml, NMPOSTCACHE); }
} # backup old GSWEBSITEFILE (website.xml) file $bakpath = GSBACKUPSPATH . getRelPath(GSDATAOTHERPATH, GSDATAPATH); // backups/other/ createBak($file, $path, $bakpath); # udpate GSWEBSITEFILE (website.xml) file with new theme $xml = new SimpleXMLExtended('<item></item>'); $note = $xml->addChild('SITENAME'); $note->addCData($SITENAME); $note = $xml->addChild('SITEURL'); $note->addCData($SITEURL); $note = $xml->addChild('TEMPLATE'); $note->addCData($newTemplate); $xml->addChild('PRETTYURLS', $PRETTYURLS); $xml->addChild('PERMALINK', $PERMALINK); XMLsave($xml, $path . $file); $success = i18n_r('THEME_CHANGED'); $TEMPLATE = $newTemplate; // set new global } # get available themes (only look for folders) $themes_handle = opendir(GSTHEMESPATH) or die("Unable to open " . GSTHEMESPATH); while ($file = readdir($themes_handle)) { $curpath = GSTHEMESPATH . $file; if (is_dir($curpath) && $file != "." && $file != "..") { $sel = ""; if (file_exists($curpath . '/' . GSTEMPLATEFILE)) { if ($TEMPLATE == $file) { $sel = "selected"; } $theme_options .= '<option ' . $sel . ' value="' . $file . '" >' . $file . '</option>';
$newfile = GSDATAPAGESPATH . $_GET['id'] . "-" . $count . ".xml"; if (file_exists($newfile)) { while (file_exists($newfile)) { $count++; $newfile = GSDATAPAGESPATH . $_GET['id'] . "-" . $count . ".xml"; } } $newurl = $_GET['id'] . '-' . $count; # do the copy $status = copy($path . $_GET['id'] . '.xml', $path . $newurl . '.xml'); if ($status) { $newxml = getXML($path . $newurl . '.xml'); $newxml->url = $newurl; $newxml->title = $newxml->title . ' [' . i18n_r('COPY') . ']'; $newxml->pubDate = date('r'); $status = XMLsave($newxml, $path . $newurl . '.xml'); if ($status) { create_pagesxml('true'); header('Location: pages.php?upd=clone-success&id=' . $newurl); } else { $error = sprintf(i18n_r('CLONE_ERROR'), $_GET['id']); header('Location: pages.php?error=' . $error); } } else { $error = sprintf(i18n_r('CLONE_ERROR'), $_GET['id']); header('Location: pages.php?error=' . $error); } } getPagesXmlValues(); $count = 0; foreach ($pagesArray as $page) {
$pagePriority = '1.0'; } else { $pagePriority = '0.5'; } //add to sitemap $url_item = $xml->addChild('url'); $url_item->addChild('loc', $pageLoc); $url_item->addChild('lastmod', $pageLastMod); $url_item->addChild('changefreq', $pageChangeFreq); $url_item->addChild('priority', $pagePriority); exec_action('sitemap-additem'); } //create xml file $file = $relative . 'sitemap.xml'; exec_action('save-sitemap'); XMLsave($xml, $file); } } // Variables for website $spath = $relative . 'data/other/'; $sfile = "website.xml"; $data = getXML($spath . $sfile); $SITEURL = $data->SITEURL; if (!defined('GSDONOTPING')) { if (file_exists($relative . 'sitemap.xml')) { if (200 === ($status = pingGoogleSitemaps($SITEURL . 'sitemap.xml'))) { $response = $i18n['SITEMAP_CREATED']; header('location: theme.php?success=' . $response); exit; } else { $response = $i18n['SITEMAP_ERRORPING'];
function i18n_navigation_structure_save(&$pages) { $stack = array(); for ($i = 0; isset($_POST['page_' . $i . '_url']); $i++) { $url = $_POST['page_' . $i . '_url']; if (isset($pages[$url])) { $level = (int) $_POST['page_' . $i . '_level']; if ($level > count($stack)) { $level = count($stack); } $parent = $level <= 0 ? '' : $stack[$level - 1]; $menuOrder = count($stack) <= $level ? 0 : $pages[$stack[$level]]['menuOrder'] + 1; $menu = htmlentities($_POST['page_' . $i . '_menu'], ENT_QUOTES, 'UTF-8'); $menuStatus = $_POST['page_' . $i . '_menuStatus']; $private = $_POST['page_' . $i . '_private']; if ($menu == $pages[$url]['title']) { $menu = ''; } if ($parent != $pages[$url]['parent'] || $menuOrder != $pages[$url]['menuOrder'] || $menu != $pages[$url]['menu'] || $menuStatus != $pages[$url]['menuStatus'] || $private != $pages[$url]['private']) { // update pages array $pages[$url]['parent'] = $parent; $pages[$url]['menuOrder'] = $menuOrder; $pages[$url]['menu'] = $menu; $pages[$url]['menuStatus'] = $menuStatus; $pages[$url]['private'] = $private; // backup page file if (!copy(GSDATAPAGESPATH . $url . '.xml', GSBACKUPSPATH . 'i18n_navigation/' . $url . '.xml')) { return false; } // update page file $data = getXML(GSDATAPAGESPATH . $url . '.xml'); $xml = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><item></item>'); $xml->addChild('pubDate', (string) $data->pubDate); if (@$data->creDate) { $xml->addChild('creDate', (string) $data->creDate); } foreach ($data->children() as $child) { $name = $child->getName(); if ($name != 'parent' && $name != 'menuOrder' && $name != 'menu' && $name != 'menuStatus' && $name != 'private' && $name != 'pubDate' && $name != 'creDate') { $xml->addChild($name)->addCData((string) $child); } } $xml->addChild('parent')->addCData((string) $parent); $xml->addChild('menuOrder')->addCData((string) $menuOrder); $xml->addChild('menu')->addCData((string) $menu); $xml->addChild('menuStatus')->addCData((string) $menuStatus); $xml->addChild('private')->addCData((string) $private); XMLsave($xml, GSDATAPAGESPATH . $url . '.xml'); } // variants if (count($pages[$url]['variants']) > 0) { foreach ($pages[$url]['variants'] as $lang => &$variant) { if (isset($_POST['page_' . $i . '_menu' . $lang])) { $menu = htmlentities($_POST['page_' . $i . '_menu' . $lang], ENT_QUOTES, 'UTF-8'); if ($menu == $variant['title']) { $menu = ''; } if ($menu != $variant['menu'] || $private != $variant['private']) { $variant['menu'] = $menu; // backup variant file if (!copy(GSDATAPAGESPATH . $variant['url'] . '.xml', GSBACKUPSPATH . 'i18n_navigation/' . $variant['url'] . '.xml')) { return false; } // update variant file $data = getXML(GSDATAPAGESPATH . $variant['url'] . '.xml'); $xml = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><item></item>'); $xml->addChild('pubDate', (string) $data->pubDate); if (@$data->creDate) { $xml->addChild('creDate', (string) $data->creDate); } foreach ($data->children() as $child) { $name = $child->getName(); if ($name != 'menu' && $name != 'menuStatus' && $name != 'private' && $name != 'pubDate' && $name != 'creDate') { $xml->addChild($name)->addCData((string) $child); } } $xml->addChild('menu')->addCData((string) $menu); $xml->addChild('menuStatus')->addCData((string) $menuStatus); $xml->addChild('private')->addCData((string) $private); XMLsave($xml, GSDATAPAGESPATH . $variant['url'] . '.xml'); } } } } while (count($stack) > $level) { array_pop($stack); } array_push($stack, $url); } } exec_action('menu-aftersave'); return true; }
function nm_save_post() { # create a backup if necessary if (isset($_POST['current-slug'])) { $file = $_POST['current-slug'] . '.xml'; if (dirname(realpath(NMPOSTPATH . $file)) != realpath(NMPOSTPATH)) { die(''); } // path traversal @nm_rename_file(NMPOSTPATH . $file, NMBACKUPPATH . $file); } # empty titles are not allowed if (empty($_POST['post-title']) || trim($_POST['post-title']) == '') { $_POST['post-title'] = '[No Title]'; } # set initial slug and filename if (!empty($_POST['post-slug'])) { $slug = nm_create_slug($_POST['post-slug']); } else { $slug = nm_create_slug($_POST['post-title']); if ($slug == '') { $slug = 'post'; } } $file = NMPOSTPATH . $slug . '.xml'; # do not overwrite other posts if (file_exists($file)) { $count = 1; $file = NMPOSTPATH . $slug . '-' . $count . '.xml'; while (file_exists($file)) { $file = NMPOSTPATH . $slug . '-' . ++$count . '.xml'; } $slug = basename($file, '.xml'); } # create undo target if there's a backup available if (isset($_POST['current-slug'])) { $backup = $slug . ':' . $_POST['current-slug']; } # collect $_POST data $title = safe_slash_html($_POST['post-title']); $timestamp = strtotime($_POST['post-date'] . ' ' . $_POST['post-time']); $date = $timestamp ? date('r', $timestamp) : date('r'); $tags = nm_lowercase_tags(trim(preg_replace(array('/\\s+/', '/\\s*,\\s*/', '/,+/'), array(' ', ',', ','), safe_slash_html(trim($_POST['post-tags']))), ',')); $private = isset($_POST['post-private']) ? 'Y' : ''; $image = safe_slash_html($_POST['post-image']); $content = safe_slash_html($_POST['post-content']); if (defined('NMSAVEAUTHOR') && NMSAVEAUTHOR) { if (isset($_POST['author'])) { $author = safe_slash_html($_POST['author']); } else { global $USR; $author = $USR ? $USR : ''; } } # create xml object $xml = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><item></item>'); $obj = $xml->addChild('title'); $obj->addCData($title); $obj = $xml->addChild('date'); $obj->addCData($date); $obj = $xml->addChild('tags'); $obj->addCData($tags); $obj = $xml->addChild('private'); $obj->addCData($private); $obj = $xml->addChild('image'); $obj->addCData($image); $obj = $xml->addChild('content'); $obj->addCData($content); if (isset($author)) { $obj = $xml->addChild('author'); $obj->addCData($author); } # write data to file if (@XMLsave($xml, $file) && nm_update_cache()) { nm_generate_sitemap(); nm_display_message(i18n_r('news_manager/SUCCESS_SAVE'), false, @$backup); } else { nm_display_message(i18n_r('news_manager/ERROR_SAVE'), true); } }
/** * Creates Sitemap * * Creates sitemap.xml in the site's root. * Pending: read the content path (xml's) */ function generate_sitemap() { // Variable settings global $SITEURL; $path = GSDATAPAGESPATH; $count = "0"; $filenames = getFiles($path); if (count($filenames) != 0) { foreach ($filenames as $file) { if (isFile($file, $path, 'xml')) { $data = getXML($path . $file); if ($data->url != '404') { $status = $data->menuStatus; $pagesArray[$count]['url'] = $data->url; $pagesArray[$count]['parent'] = $data->parent; $pagesArray[$count]['date'] = $data->pubDate; $pagesArray[$count]['private'] = $data->private; $pagesArray[$count]['menuStatus'] = $data->menuStatus; $count++; } } } } $pagesSorted = subval_sort($pagesArray, 'menuStatus'); if (count($pagesSorted) != 0) { $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><urlset></urlset>'); $xml->addAttribute('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd', 'http://www.w3.org/2001/XMLSchema-instance'); $xml->addAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); foreach ($pagesSorted as $page) { if ($page['private'] != 'Y') { // set <loc> $pageLoc = find_url($page['url'], $page['parent']); // set <lastmod> $tmpDate = date("Y-m-d H:i:s", strtotime($page['date'])); $pageLastMod = makeIso8601TimeStamp($tmpDate); // set <changefreq> $pageChangeFreq = 'weekly'; // set <priority> if ($page['menuStatus'] == 'Y') { $pagePriority = '1.0'; } else { $pagePriority = '0.5'; } //add to sitemap $url_item = $xml->addChild('url'); $url_item->addChild('loc', $pageLoc); $url_item->addChild('lastmod', $pageLastMod); $url_item->addChild('changefreq', $pageChangeFreq); $url_item->addChild('priority', $pagePriority); exec_action('sitemap-additem'); } } //create xml file $file = GSROOTPATH . 'sitemap.xml'; exec_action('save-sitemap'); XMLsave($xml, $file); } if (!defined('GSDONOTPING')) { if (file_exists(GSROOTPATH . 'sitemap.xml')) { if (200 === ($status = pingGoogleSitemaps($SITEURL . 'sitemap.xml'))) { #sitemap successfully created & pinged return true; } else { error_log(i18n_r('SITEMAP_ERRORPING')); return i18n_r('SITEMAP_ERRORPING'); } } else { error_log(i18n_r('SITEMAP_ERROR')); return i18n_r('SITEMAP_ERROR'); } } else { #sitemap successfully created - did not ping return true; } }
$note->addCData($menuStatus); $note = $xml->addChild('template'); $note->addCData($template); $note = $xml->addChild('parent'); $note->addCData($parent); $note = $xml->addChild('content'); $note->addCData($content); $note = $xml->addChild('private'); $note->addCData($private); $note = $xml->addChild('author'); $note->addCData($author); exec_action('changedata-save'); if (isset($_POST['autosave']) && $_POST['autosave'] == 'true' && $autoSaveDraft == true) { $status = XMLsave($xml, GSAUTOSAVEPATH . $url); } else { $status = XMLsave($xml, $file); } //ending actions exec_action('changedata-aftersave'); generate_sitemap(); // redirect user back to edit page if (isset($_POST['autosave']) && $_POST['autosave'] == 'true') { echo $status ? 'OK' : 'ERROR'; } else { if (!$status) { redirect("edit.php?id=" . $url . "&upd=edit-error&type=edit"); } if ($_POST['redirectto'] != '') { $redirect_url = $_POST['redirectto']; } else { $redirect_url = 'edit.php';
/** * create_pluginsxml * * If the plugins.xml file does not exists, read in each plugin * and add it to the file. * read_pluginsxml() is called again to repopulate $live_plugins * * @since 2.04 * @uses $live_plugins * */ function create_pluginsxml() { global $live_plugins; if (file_exists(GSPLUGINPATH)) { $pluginfiles = getFiles(GSPLUGINPATH); } $xml = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><channel></channel>'); foreach ($pluginfiles as $fi) { $pathExt = pathinfo($fi, PATHINFO_EXTENSION); $pathName = pathinfo_filename($fi); $count = 0; if ($pathExt == "php") { $components = $xml->addChild('item'); $c_note = $components->addChild('plugin'); $c_note->addCData($fi); $c_note = $components->addChild('enabled'); if (isset($live_plugins[(string) $fi])) { $c_note->addCData($live_plugins[(string) $fi]); } else { $c_note->addCData('true'); } } } XMLsave($xml, GSDATAOTHERPATH . "plugins.xml"); read_pluginsxml(); }
/** * Creates Blog Posts Cache File * * @return bool */ public function createPostsCache() { $posts = $this->listPosts(true, true); if ($posts === false) { $posts = array(); } $count = 0; $xml = new SimpleXMLExtended('<?xml version="1.0"?><item></item>'); if (!count($posts) < 1) { foreach ($posts as $post) { $data = getXML($post['filename']); $new_post = $xml->addChild("post"); foreach ($data as $key => $value) { $post_parent = $new_post->addChild($key); $post_parent->addCData($value); } } $save_cache = XMLsave($xml, BLOGCACHEFILE); } }
public function page_save() { if ($this->auth()) { $id = (string) $this->xml->data->slug; $thisfile = GSDATAPAGESPATH . $id . '.xml'; if (file_exists($thisfile)) { $page = getXML($thisfile); $page->content = safe_slash_html($this->xml->data->content); $page->title = safe_slash_html($this->xml->data->title); $page->pubDate = date('r'); $bakfile = GSBACKUPSPATH . "pages/" . $id . ".bak.xml"; copy($thisfile, $bakfile); $status = XMLsave($page, $thisfile); if ($status) { touch($thisfile); $wrapper = array('status' => 'success', 'message' => 'page_save ok', 'response' => $page); } else { $wrapper = array('status' => 'error', 'message' => 'There was an error saving your page'); } return json_encode($wrapper); } else { $error = array('status' => 'error', 'message' => sprintf(i18n_r('API_ERR_NOPAGE'), $id)); return json_encode($error); } } }
/** * Creates Sitemap * * Creates GSSITEMAPFILE (sitemap.xml) in the site's root. */ function generate_sitemap() { if (getDef('GSNOSITEMAP', true)) { return; } global $pagesArray; // Variable settings $SITEURL = getSiteURL(true); $path = GSDATAPAGESPATH; getPagesXmlValues(false); $pagesSorted = subval_sort($pagesArray, 'menuStatus'); if (count($pagesSorted) > 0) { $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><urlset></urlset>'); $xml->addAttribute('xsi:schemaLocation', 'http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd', 'http://www.w3.org/2001/XMLSchema-instance'); $xml->addAttribute('xmlns', 'http://www.sitemaps.org/schemas/sitemap/0.9'); foreach ($pagesSorted as $page) { if ($page['url'] != '404') { if ($page['private'] != 'Y') { // set <loc> $pageLoc = find_url($page['url'], $page['parent'], 'full'); // set <lastmod> $tmpDate = date("Y-m-d H:i:s", strtotime($page['pubDate'])); $pageLastMod = makeIso8601TimeStamp($tmpDate); // set <changefreq> $pageChangeFreq = 'weekly'; // set <priority> if ($page['menuStatus'] == 'Y') { $pagePriority = '1.0'; } else { $pagePriority = '0.5'; } //add to sitemap $url_item = $xml->addChild('url'); $url_item->addChild('loc', $pageLoc); $url_item->addChild('lastmod', $pageLastMod); $url_item->addChild('changefreq', $pageChangeFreq); $url_item->addChild('priority', $pagePriority); } } } //create xml file $file = GSROOTPATH . GSSITEMAPFILE; $xml = exec_filter('sitemap', $xml); // @filter sitemap (obj) filter the sitemap $xml obj $status = XMLsave($xml, $file); exec_action('sitemap-aftersave'); // @hook sitemap-aftersave after a sitemap data file was saved #sitemap successfully created return $status; } else { return true; } }
$langs .= '</select><br />'; } else { $langs = '<b>' . i18n_r('LANGUAGE') . '</b>: <code style="color:red;">' . i18n_r('NONE') . '</code> '; } # salt value generation $api_file = GSDATAOTHERPATH . GSAUTHFILE; if (!file_exists($api_file)) { if (getDef('GSUSECUSTOMSALT')) { $saltval = sha1(GSUSECUSTOMSALT); } else { $saltval = generate_salt(); } $xml = new SimpleXMLExtended('<item></item>'); $note = $xml->addChild('apikey'); $note->addCData($saltval); if (!XMLsave($xml, $api_file)) { $kill = i18n_r('CHMOD_ERROR'); } } # get salt value $data = getXML($api_file); $APIKEY = $data->apikey; if (empty($APIKEY)) { $kill = i18n_r('CHMOD_ERROR'); } $pagetitle = $site_full_name . ' · ' . i18n_r('INSTALLATION'); get_template('header'); ?> <h1><?php echo $site_full_name;
function bm_save_book() { # create a backup if necessary if (isset($_POST['current-slug'])) { $file = $_POST['current-slug'] . '.xml'; @rename(BMBOOKPATH . $file, BMBACKUPPATH . $file); } # empty titles are not allowed if (empty($_POST['book-title'])) { $_POST['book-title'] = '[No Title]'; } # set initial slug and filename if (!empty($_POST['book-slug'])) { $slug = bm_create_slug($_POST['book-slug']); } else { $slug = bm_create_slug($_POST['book-title']); } $file = BMBOOKPATH . "{$slug}.xml"; # do not overwrite other books if (file_exists($file)) { $count = 1; $file = BMBOOKPATH . "{$slug}-{$count}.xml"; while (file_exists($file)) { $file = BMBOOKPATH . "{$slug}-" . ++$count . '.xml'; } $slug = basename($file, '.xml'); } # create undo target if there's a backup available if (isset($_POST['current-slug'])) { $backup = $slug . ':' . $_POST['current-slug']; } # collect $_POST data $title = safe_slash_html($_POST['book-title']); $timestamp = strtotime($_POST['book-date'] . ' ' . $_POST['book-time']); $date = $timestamp ? date('r', $timestamp) : date('r'); $tags = str_replace(array(' ', ',,'), array('', ','), safe_slash_html($_POST['book-tags'])); $private = isset($_POST['book-private']) ? 'Y' : ''; $content = safe_slash_html($_POST['book-content']); # create xml object $xml = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><item></item>'); $obj = $xml->addChild('title'); $obj->addCData($title); $obj = $xml->addChild('date'); $obj->addCData($date); $obj = $xml->addChild('tags'); $obj->addCData($tags); $obj = $xml->addChild('private'); $obj->addCData($private); $obj = $xml->addChild('content'); $obj->addCData($content); # write data to file if (@XMLsave($xml, $file) && bm_update_cache()) { bm_display_message(i18n_r('books_manager/SUCCESS_SAVE'), false, @$backup); } else { bm_display_message(i18n_r('books_manager/SUCCESS_SAVE'), false, @$backup); } }
$xmls->addChild('PRETTYURLS', ''); $xmls->addChild('PERMALINK', ''); $xmls->addChild('SITEUSR', $USR); $xmls->addChild('SITEABOUT', ''); if (!XMLsave($xmls, GSDATAOTHERPATH . $file)) { $kill = i18n_r('CHMOD_ERROR'); } # create default index.xml page $init = GSDATAPAGESPATH . 'index.xml'; $temp = GSADMININCPATH . 'tmp/tmp-index.xml'; if (!file_exists($init)) { copy_file($temp, $init); $xml = getXML($init); $xml->pubDate = date('r'); # update date XMLsave($xml, $init); } # create default 404.xml page $init = GSDATAOTHERPATH . '404.xml'; $temp = GSADMININCPATH . 'tmp/tmp-404.xml'; if (!file_exists($init)) { copy($temp, $init); } # create default 404.xml page $init = GSDATAOTHERPATH . '403.xml'; $temp = GSADMININCPATH . 'tmp/tmp-403.xml'; if (!file_exists($init)) { copy($temp, $init); } # create default components.xml page if not exist $init = GSDATAOTHERPATH . 'components.xml';
createBak(GSWEBSITEFILE, GSDATAOTHERPATH, $bakpath); $xmls = new SimpleXMLExtended('<item></item>'); $note = $xmls->addChild('SITENAME'); $note->addCData($SITENAME); $note = $xmls->addChild('SITEURL'); $note->addCData($SITEURL); $note = $xmls->addChild('TEMPLATE'); $note->addCData($TEMPLATE); $xmls->addChild('PRETTYURLS', $PRETTYURLS); $xmls->addChild('PERMALINK', $PERMALINK); $xmls->addChild('EMAIL', $SITEEMAIL); $xmls->addChild('TIMEZONE', $TIMEZONE); $xmls->addChild('LANG', $LANG); $xmls->addChild('SITEUSR', $SITEUSR); exec_action('settings-website'); if (!XMLsave($xmls, GSDATAOTHERPATH . GSWEBSITEFILE)) { $error = i18n_r('CHMOD_ERROR'); } # see new language file immediately include GSLANGPATH . $LANG . '.php'; if (!$error) { $success = i18n_r('ER_SETTINGS_UPD') . '. <a href="settings.php?undo&nonce=' . get_nonce("undo") . '">' . i18n_r('UNDO') . '</a>'; generate_sitemap(); } } # are any of the control panel checkboxes checked? if ($PRETTYURLS != '') { $prettychck = 'checked'; } # get all available language files if ($LANG == '') {
public function save() { return XMLsave($this->_xml, $this->_xmlfile); }
if (!file_exists(GSDATAOTHERPATH . '_legacy_website.xml')) { $status = rename(GSDATAOTHERPATH . 'website.xml', GSDATAOTHERPATH . '_legacy_website.xml'); if (!$status) { $error .= msgError('Unable to rename website.xml to _legacy_website.xml'); } else { $message .= msgOK('Renamed website.xml to _legacy_website.xml'); } } #creating new website file $xml = new SimpleXMLElement('<item></item>'); $xml->addChild('SITENAME', $SITENAME); $xml->addChild('SITEURL', $SITEURL); $xml->addChild('TEMPLATE', $TEMPLATE); $xml->addChild('PRETTYURLS', $PRETTYURLS); $xml->addChild('PERMALINK', $PERMALINK); $status = XMLsave($xml, GSDATAOTHERPATH . GSWEBSITEFILE); if (!$status) { $error .= msgError('Unable to update ' . GSWEBSITEFILE . ' file!'); } else { $message .= msgOK('Created updated ' . GSWEBSITEFILE . ' file'); } # rename old user.xml if (!file_exists(GSDATAOTHERPATH . '_legacy_user.xml')) { $status = rename(GSDATAOTHERPATH . 'user.xml', GSDATAOTHERPATH . '_legacy_user.xml'); if (!$status) { $error .= msgError('Unable to rename user.xml to _legacy_user.xml'); } else { $message .= msgOK('Renamed user.xml to _legacy_user.xml'); } } # rename old cp_settings.xml
/** * save a page draft to xml * * @since 3.4 * @param obj $xml simplexmlobj of page * @param bool $backup backup before overwriting * @return bool success */ function saveDraftXml($xml, $backup = true) { $url = $xml->url; if (!isset($url) || trim($url) == '') { die('empty slug'); } // @todo need some kind of assert here // backup before overwriting if ($backup && file_exists(GSDATADRAFTSPATH . $url . ".xml")) { backup_draft($url); } return XMLsave($xml, GSDATADRAFTSPATH . $url . ".xml"); }
if (!file_exists(GSDATAOTHERPATH . '_legacy_website.xml')) { $status = rename(GSDATAOTHERPATH . 'website.xml', GSDATAOTHERPATH . '_legacy_website.xml'); if (!$status) { $error .= 'Unable to rename website.xml to _legacy_website.xml<br />'; } else { $message .= '<li>Renamed website.xml to _legacy_website.xml</li>'; } } #creating new website file $xml = new SimpleXMLElement('<item></item>'); $xml->addChild('SITENAME', $SITENAME); $xml->addChild('SITEURL', $SITEURL); $xml->addChild('TEMPLATE', $TEMPLATE); $xml->addChild('PRETTYURLS', $PRETTYURLS); $xml->addChild('PERMALINK', $PERMALINK); $status = XMLsave($xml, GSDATAOTHERPATH . 'website.xml'); if (!$status) { $error .= 'Unable to update website.xml file!<br />'; } else { $message .= '<li>Created updated website.xml file</li>'; } # rename old user.xml if (!file_exists(GSDATAOTHERPATH . '_legacy_user.xml')) { $status = rename(GSDATAOTHERPATH . 'user.xml', GSDATAOTHERPATH . '_legacy_user.xml'); if (!$status) { $error .= 'Unable to rename user.xml to _legacy_user.xml<br />'; } else { $message .= '<li>Renamed user.xml to _legacy_user.xml</li>'; } } # rename old cp_settings.xml
$data = $xml; if (!empty($error) || empty($password)) { break; } # create user xml file backup_datafile(GSUSERSPATH . $file); // remove pass word reset $resetfile = GSUSERSPATH . getPWDresetName(_id($userid), 'xml'); if (file_exists($resetfile)) { delete_file($resetfile); } exec_action('settings-user'); // @hook settings-user LEGACY pre-save of a users settings exec_action('profile-save'); // @hook profiel-user pre-save of a users settings if (!XMLsave($xml, GSUSERSPATH . $file)) { $error = i18n_r('CHMOD_ERROR'); break; } # see new language file immediately if (!empty($lang)) { include GSLANGPATH . $lang . '.php'; } if ($editing) { $success = sprintf(i18n_r('ER_YOUR_CHANGES'), $userid) . '. <a href="profile.php?undo&nonce=' . get_nonce("undo") . '&userid=' . $userid . '">' . i18n_r('UNDO') . '</a>'; } else { if ($adding) { $success = sprintf(i18n_r('ER_YOUR_CHANGES'), $userid) . '. <a href="profile.php?undo&new&nonce=' . get_nonce("undo") . '&userid=' . $userid . '">' . i18n_r('UNDO') . '</a>'; } } if ($adding) {
die("CSRF detected!"); } } # get passed value from form $TEMPLATE = var_out($_POST['template']); if (!path_is_safe(GSTHEMESPATH . $TEMPLATE, GSTHEMESPATH)) { die; } # backup old website.xml file $bakpath = GSBACKUPSPATH . 'other/'; createBak($file, $path, $bakpath); // # udpate website.xml file with new theme $xml = getXML($path . $file); $xml->TEMPLATE = null; $xml->TEMPLATE->addCData($TEMPLATE); $status = XMLsave($xml, $path . $file); $success = i18n_r('THEME_CHANGED'); } # get available themes (only look for folders) $themes_handle = opendir(GSTHEMESPATH) or die("Unable to open " . GSTHEMESPATH); while ($file = readdir($themes_handle)) { $curpath = GSTHEMESPATH . $file; if (is_dir($curpath) && $file != "." && $file != "..") { $sel = ""; if (file_exists($curpath . '/template.php')) { if ($TEMPLATE == $file) { $sel = "selected"; } $theme_options .= '<option ' . $sel . ' value="' . $file . '" >' . $file . '</option>'; } }
$kill = i18n_r('CHMOD_ERROR'); } # create password change trigger file $flagfile = GSUSERSPATH . _id($USR) . ".xml.reset"; copy(GSUSERSPATH . $file, $flagfile); # create new website.xml file $file = 'website.xml'; $xmls = new SimpleXMLExtended('<item></item>'); $note = $xmls->addChild('SITENAME'); $note->addCData($SITENAME); $note = $xmls->addChild('SITEURL'); $note->addCData($SITEURL); $xmls->addChild('TEMPLATE', 'Innovation'); $xmls->addChild('PRETTYURLS', ''); $xmls->addChild('PERMALINK', ''); if (!XMLsave($xmls, GSDATAOTHERPATH . $file)) { $kill = i18n_r('CHMOD_ERROR'); } # create default index.xml page $init = GSDATAPAGESPATH . 'index.xml'; $temp = GSADMININCPATH . 'tmp/tmp-index.xml'; if (!file_exists($init)) { copy($temp, $init); } # create default components.xml page $init = GSDATAOTHERPATH . 'components.xml'; $temp = GSADMININCPATH . 'tmp/tmp-components.xml'; if (!file_exists($init)) { copy($temp, $init); } # create default 404.xml page
public static function getPages() { if (self::$pages) { return self::$pages; } $cachefile = GSDATAOTHERPATH . I18N_CACHE_FILE; if (!I18N_USE_CACHE || !file_exists($cachefile)) { // read pages into associative array self::$pages = array(); $dir_handle = @opendir(GSDATAPAGESPATH) or die("Unable to open pages directory"); while ($filename = readdir($dir_handle)) { if (strrpos($filename, '.xml') === strlen($filename) - 4 && !is_dir(GSDATAPAGESPATH . $filename)) { $data = getXML(GSDATAPAGESPATH . $filename); if (strpos($filename, '_') !== false) { $pos = strpos($data->url, '_'); $url = substr($data->url, 0, $pos); $lang = substr($data->url, $pos + 1); if (!isset(self::$pages[$url])) { self::$pages[$url] = array('url' => $url); } $menu = (string) $data->menu ? (string) $data->menu : (string) $data->title; $title = (string) $data->title ? (string) $data->title : (string) $data->menu; if ($menu) { self::$pages[$url]['menu_' . $lang] = stripslashes($menu); } if ($title) { self::$pages[$url]['title_' . $lang] = stripslashes($title); } if (isset($data->link) && (string) $data->link) { self::$pages[$url]['link_' . $lang] = (string) $data->link; } } else { $url = (string) $data->url; if (!isset(self::$pages[$url])) { self::$pages[$url] = array('url' => $url); } self::$pages[$url]['menuStatus'] = (string) $data->menuStatus; self::$pages[$url]['menuOrder'] = (int) $data->menuOrder; self::$pages[$url]['menu'] = stripslashes($data->menu); self::$pages[$url]['title'] = stripslashes($data->title); self::$pages[$url]['parent'] = (string) $data->parent; self::$pages[$url]['private'] = (string) $data->private; self::$pages[$url]['tags'] = (string) stripslashes($data->meta); if (isset($data->link) && (string) $data->link) { self::$pages[$url]['link'] = (string) $data->link; } } } } // sort pages $urlsToDelete = array(); $sortedpages = array(); foreach (self::$pages as $url => $page) { if (isset($page['parent']) && $page['private'] != 'Y') { $sortedpages[] = array('url' => $url, 'parent' => $page['parent'], 'sort' => sprintf("%s%03s%s", $page['parent'], $page['menuOrder'], $url)); } else { $urlsToDelete[] = $url; } } $sortedpages = subval_sort($sortedpages, 'sort'); if (count($urlsToDelete) > 0) { foreach ($urlsToDelete as $url) { unset(self::$pages[$url]); } } // save cache file if (I18N_USE_CACHE) { $data = @new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><pages></pages>'); foreach ($sortedpages as $sortedpage) { $url = $sortedpage['url']; $page = self::$pages[$url]; $pagedata = $data->addChild('page'); foreach ($page as $key => $value) { $propdata = $pagedata->addChild($key); $propdata->addCData($value); } } XMLsave($data, $cachefile); } } else { $sortedpages = array(); $data = getXML($cachefile); foreach ($data->page as $pagedata) { $url = '' . $pagedata->url; self::$pages[$url] = array(); foreach ($pagedata as $propdata) { self::$pages[$url][$propdata->getName()] = (string) $propdata; } $sortedpages[] = array('url' => $url, 'parent' => self::$pages[$url]['parent']); } } // fill children self::$pages[null] = array(); foreach ($sortedpages as $sortedpage) { $parent = $sortedpage['parent']; if (isset(self::$pages[$parent])) { if (!isset(self::$pages[$parent]['children'])) { self::$pages[$parent]['children'] = array(); } self::$pages[$parent]['children'][] = $sortedpage['url']; } } return self::$pages; }