当前位置: 首页>>代码示例>>PHP>>正文


PHP classXML::fetchElementsFromRecord方法代码示例

本文整理汇总了PHP中classXML::fetchElementsFromRecord方法的典型用法代码示例。如果您正苦于以下问题:PHP classXML::fetchElementsFromRecord方法的具体用法?PHP classXML::fetchElementsFromRecord怎么用?PHP classXML::fetchElementsFromRecord使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在classXML的用法示例。


在下文中一共展示了classXML::fetchElementsFromRecord方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: _importTemplates

 /**
  * Run SQL files
  * 
  * @access	public
  * @param	int
  */
 public function _importTemplates()
 {
     $templates = array();
     $this->DB->build(array('select' => '*', 'from' => 'ccs_template_blocks'));
     $outer = $this->DB->execute();
     while ($r = $this->DB->fetch($outer)) {
         if (!preg_match("/_(\\d+)\$/", $r['tpb_name'])) {
             $templates[$r['tpb_name']] = $r;
         }
     }
     $content = file_get_contents(IPSLib::getAppDir('ccs') . '/xml/block_templates.xml');
     require_once IPS_KERNEL_PATH . 'classXML.php';
     $xml = new classXML(IPS_DOC_CHAR_SET);
     $xml->loadXML($content);
     foreach ($xml->fetchElements('template') as $template) {
         $_template = $xml->fetchElementsFromRecord($template);
         if ($_template['tpb_name']) {
             unset($_template['tpb_id']);
             if (array_key_exists($_template['tpb_name'], $templates)) {
                 $this->DB->update("ccs_template_blocks", $_template, "tpb_id={$templates[$_template['tpb_name']]['tpb_id']}");
             } else {
                 $this->DB->insert("ccs_template_blocks", $_template);
             }
         }
     }
 }
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:32,代码来源:version_upgrade.php

示例2: _importSite

 /**
  * Now we get to import the default site.  Fun!
  *
  * @access	protected
  * @return	void
  */
 protected function _importSite()
 {
     $content = file_get_contents(IPS_ROOT_PATH . 'applications_addon/ips/ccs/xml/demosite.xml');
     require_once IPS_KERNEL_PATH . 'classXML.php';
     $xml = new classXML(IPS_DOC_CHAR_SET);
     $xml->loadXML($content);
     foreach ($xml->fetchElements('block') as $block) {
         $_block = $xml->fetchElementsFromRecord($block);
         $this->DB->insert("ccs_blocks", $_block);
     }
     foreach ($xml->fetchElements('container') as $container) {
         $_container = $xml->fetchElementsFromRecord($container);
         $this->DB->insert("ccs_containers", $_container);
     }
     foreach ($xml->fetchElements('folder') as $folder) {
         $_folder = $xml->fetchElementsFromRecord($folder);
         $this->DB->insert("ccs_folders", $_folder);
     }
     foreach ($xml->fetchElements('template') as $template) {
         $_template = $xml->fetchElementsFromRecord($template);
         $this->DB->insert("ccs_page_templates", $_template);
     }
     foreach ($xml->fetchElements('page') as $page) {
         $_page = $xml->fetchElementsFromRecord($page);
         $this->DB->insert("ccs_pages", $_page);
     }
     foreach ($xml->fetchElements('tblock') as $tblock) {
         $_tblock = $xml->fetchElementsFromRecord($tblock);
         $this->DB->insert("ccs_template_blocks", $_tblock);
     }
     foreach ($xml->fetchElements('cache') as $cache) {
         $_cache = $xml->fetchElementsFromRecord($cache);
         $this->DB->insert("ccs_template_cache", $_cache);
     }
 }
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:41,代码来源:ccs_mysql_inserts.php

示例3: _restoreXmlSkin

 /**
  * Execute selected method
  *
  * @param	object		Registry object
  * @return	@e void
  */
 public function _restoreXmlSkin()
 {
     require_once IPS_KERNEL_PATH . 'classXML.php';
     /*noLibHook*/
     $xml = new classXML(IPSSetUp::charSet);
     /* Skin Set Data */
     $xml->load(IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml');
     foreach ($xml->fetchElements('set') as $xmlelement) {
         $data = $xml->fetchElementsFromRecord($xmlelement);
         if ($data['set_key'] == 'xmlskin') {
             $data['set_order'] = intval($data['set_order']);
             unset($data['set_id']);
             $this->DB->delete('skin_collections', "set_key='xmlskin'");
             $this->DB->insert('skin_collections', $data);
         }
     }
     $this->registry->output->addMessage("XML стиль восстановлен");
     $this->request['workact'] = '';
 }
开发者ID:Advanture,项目名称:Online-RolePlay,代码行数:25,代码来源:version_upgrade.php

示例4: finish

 /**
  * Finish up conversion stuff
  * 
  * @return	@e void
  */
 public function finish()
 {
     $options = IPSSetUp::getSavedData('custom_options');
     $skipPms = $options['core'][30001]['skipPms'];
     $output = array();
     /* Emoticons */
     if (file_exists(DOC_IPS_ROOT_PATH . 'style_emoticons/default')) {
         try {
             foreach (new DirectoryIterator(DOC_IPS_ROOT_PATH . 'style_emoticons/default') as $file) {
                 if (!$file->isDot()) {
                     $_name = $file->getFileName();
                     /* Annoyingly, isDot doesn't match .svn, etc */
                     if (substr($_name, 0, 1) == '.') {
                         continue;
                     }
                     if (@copy(DOC_IPS_ROOT_PATH . 'style_emoticons/default/' . $_name, IPS_PUBLIC_PATH . 'style_emoticons/default/' . $_name)) {
                         $output[] = "Смайлики: скопирован {$_name}...";
                     } else {
                         $output[] = "Не удалось скопировать {$_name} - после обновления перенесите его самостоятельно";
                     }
                 }
             }
         } catch (Exception $e) {
         }
     }
     /* LOG IN METHODS */
     $this->DB->build(array('select' => '*', 'from' => 'login_methods'));
     $this->DB->execute();
     while ($row = $this->DB->fetch()) {
         $loginMethods[$row['login_folder_name']] = $row;
     }
     $count = 6;
     $recount = array('internal' => 1, 'ipconverge' => 2, 'ldap' => 3, 'external' => 4);
     /* Fetch XML */
     require_once IPS_KERNEL_PATH . 'classXML.php';
     /*noLibHook*/
     $xml = new classXML(IPSSetUp::charSet);
     $xml->load(IPS_ROOT_PATH . 'setup/xml/loginauth.xml');
     foreach ($xml->fetchElements('login_methods') as $xmlelement) {
         $data = $xml->fetchElementsFromRecord($xmlelement);
         $data['login_order'] = isset($recount[$data['login_folder_name']]) ? $recount[$data['login_folder_name']] : ++$count;
         unset($data['login_id']);
         if (!$loginMethods[$data['login_folder_name']]) {
             $this->DB->insert('login_methods', $data);
         } else {
             $this->DB->update('login_methods', array('login_order' => $data['login_order']), 'login_folder_name=\'' . $data['login_folder_name'] . '\'');
         }
     }
     /* Reset member languages and skins */
     $this->DB->update('members', array('language' => IPSLib::getDefaultLanguage(), 'skin' => 0));
     /* Empty caches */
     $this->DB->delete('cache_store', "cs_key='forum_cache'");
     $this->DB->delete('cache_store', "cs_key='skin_id_cache'");
     /* Empty other tables */
     $this->DB->delete('skin_cache');
     $this->DB->delete('skin_templates_cache');
     /* Reset admin permissions */
     $this->DB->update('admin_permission_rows', array('row_perm_cache' => ''));
     /* Drop Tables */
     $this->DB->dropTable('contacts');
     $this->DB->dropTable('skin_macro');
     $this->DB->dropTable('skin_template_links');
     $this->DB->dropTable('skin_templates_old');
     $this->DB->dropTable('skin_sets');
     $this->DB->dropTable('languages');
     $this->DB->dropTable('topics_read');
     $this->DB->dropTable('topic_markers');
     $this->DB->dropTable('acp_help');
     $this->DB->dropTable('members_converge');
     $this->DB->dropTable('member_extra');
     $this->DB->dropTable('custom_bbcode_old');
     $this->DB->dropTable('admin_sessions');
     $this->DB->dropTable('components');
     $this->DB->dropTable('admin_permission_keys');
     $this->DB->dropTable('conf_settings');
     $this->DB->dropTable('conf_settings_titles');
     $this->DB->dropTable('reg_antispam');
     if (!$skipPms) {
         $this->DB->dropTable('message_text');
         $this->DB->dropTable('message_topics_old');
     }
     $message = (is_array($output) and count($output)) ? implode("<br />", $output) . '<br />' : '';
     $this->registry->output->addMessage($message . "очистка SQL завершена...");
     /* Last function, so unset workact */
     $this->request['workact'] = '';
 }
开发者ID:Advanture,项目名称:Online-RolePlay,代码行数:91,代码来源:version_upgrade.php

示例5: doMediaImport

 /**
  * Abstracted import routine for installer
  *
  * @access	public
  * @param	string		XML file content
  * @return	void
  */
 public function doMediaImport($content)
 {
     //-----------------------------------------
     // Get xml mah-do-dah
     //-----------------------------------------
     require_once IPS_KERNEL_PATH . 'classXML.php';
     $xml = new classXML(IPS_DOC_CHAR_SET);
     $xml->loadXML($content);
     //-----------------------------------------
     // Get current custom bbcodes
     //-----------------------------------------
     $tags = array();
     $this->DB->build(array('select' => '*', 'from' => 'bbcode_mediatag'));
     $this->DB->execute();
     while ($r = $this->DB->fetch()) {
         $tags[$r['mediatag_name']] = $r['mediatag_id'];
     }
     //-----------------------------------------
     // pArse
     //-----------------------------------------
     foreach ($xml->fetchElements('mediatag') as $mediatag) {
         $entry = $xml->fetchElementsFromRecord($mediatag);
         $name = $entry['mediatag_name'];
         $match = $entry['mediatag_match'];
         $replace = $entry['mediatag_replace'];
         $array = array('mediatag_name' => $name, 'mediatag_match' => $match, 'mediatag_replace' => $replace);
         if ($tags[$name]) {
             $this->DB->update('bbcode_mediatag', $array, "mediatag_id=" . $tags[$name]);
             continue;
         }
         if ($name) {
             $this->DB->insert('bbcode_mediatag', $array);
         }
     }
     $this->recacheMediaTag();
 }
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:43,代码来源:media.php

示例6: fetchXmlAppModules

 /**
  * Fetch Apps XML Modules File
  *
  * @access	public
  * @param	string		Application Directory
  * @param	string		Charset (post install)
  * @return	array 		..of data
  */
 public static function fetchXmlAppModules($app, $charset = '')
 {
     //-----------------------------------------
     // No modules?
     //-----------------------------------------
     if (!is_file(IPSLib::getAppDir($app) . '/xml/' . $app . '_modules.xml')) {
         return array();
     }
     /* INIT */
     $modules = array();
     try {
         require_once IPS_KERNEL_PATH . 'classXML.php';
         /*noLibHook*/
         $xml = new classXML($charset ? $charset : IPSSetUp::charSet);
         $xml->load(IPSLib::getAppDir($app) . '/xml/' . $app . '_modules.xml');
         /* Fetch info */
         foreach ($xml->fetchElements('module') as $xmlelement) {
             $data = $xml->fetchElementsFromRecord($xmlelement);
             if ($data['sys_module_id']) {
                 unset($data['sys_module_id']);
             }
             /* Remove fields removed from 3.1.3+ to avoid driver errors */
             unset($data['sys_module_parent']);
             unset($data['sys_module_tables']);
             unset($data['sys_module_hooks']);
             $modules[$data['sys_module_key'] . intval($data['sys_module_admin'])] = $data;
         }
         return $modules;
     } catch (Exception $error) {
         return FALSE;
     }
 }
开发者ID:ConnorChristie,项目名称:GrabViews,代码行数:40,代码来源:setup.php

示例7: _loginInstall

 /**
  * Install a login method
  *
  * @return	@e void		[Outputs to screen]
  */
 protected function _loginInstall()
 {
     //-----------------------------------------
     // Get xml class
     //-----------------------------------------
     require_once IPS_KERNEL_PATH . 'classXML.php';
     /*noLibHook*/
     $xml = new classXML(IPS_DOC_CHAR_SET);
     $login_id = basename(ipsRegistry::$request['login_folder']);
     //-----------------------------------------
     // Now get the XML data
     //-----------------------------------------
     $dh = opendir(IPS_PATH_CUSTOM_LOGIN);
     if ($dh !== false) {
         while (false !== ($file = readdir($dh))) {
             if (is_dir(IPS_PATH_CUSTOM_LOGIN . '/' . $file) and $file == $login_id) {
                 if (is_file(IPS_PATH_CUSTOM_LOGIN . '/' . $file . '/loginauth_install.xml')) {
                     $file_content = file_get_contents(IPS_PATH_CUSTOM_LOGIN . '/' . $file . '/loginauth_install.xml');
                     $xml->loadXML($file_content);
                     foreach ($xml->fetchElements('row') as $record) {
                         $data = $xml->fetchElementsFromRecord($record);
                     }
                 } else {
                     closedir($dh);
                     ipsRegistry::getClass('output')->global_message = $this->lang->words['l_installer404'];
                     $this->_loginList();
                     return;
                 }
                 $dir_methods[$file] = $data;
                 break;
             }
         }
         closedir($dh);
     }
     if (!is_array($dir_methods) or !count($dir_methods)) {
         ipsRegistry::getClass('output')->global_message = $this->lang->words['l_installer404'];
         $this->_loginList();
         return;
     }
     //-----------------------------------------
     // Now verify it isn't installed
     //-----------------------------------------
     $login = $this->DB->buildAndFetch(array('select' => 'login_id', 'from' => 'login_methods', 'where' => "login_folder_name='" . $login_id . "'"));
     if ($login['login_id']) {
         ipsRegistry::getClass('output')->global_message = $this->lang->words['l_already'];
         $this->_loginList();
         return;
     }
     //-----------------------------------------
     // Get the highest order and insert method
     //-----------------------------------------
     $max = $this->DB->buildAndFetch(array('select' => 'MAX(login_order) as highest_order', 'from' => 'login_methods'));
     $dir_methods[$login_id]['login_order'] = $max['highest_order'] + 1;
     $this->DB->insert('login_methods', $dir_methods[$login_id]);
     //-----------------------------------------
     // Recache
     //-----------------------------------------
     $this->loginsRecache();
     ipsRegistry::getClass('output')->redirect($this->settings['base_url'] . $this->form_code . "", $this->lang->words['l_yesinstalled']);
 }
开发者ID:ConnorChristie,项目名称:GrabViews,代码行数:65,代码来源:login.php

示例8: rebuildMobileSkinUserAgentsFromSetDataXml

 /**
  * Rebuilds the mobile user agents from the skin set data
  */
 public function rebuildMobileSkinUserAgentsFromSetDataXml()
 {
     /* Init */
     $mobileSkinSet = $this->fetchSkinData($this->fetchSetIdByKey('mobile', true), true);
     $xmlData = array();
     /* Grab xml */
     require_once IPS_KERNEL_PATH . 'classXML.php';
     /*noLibHook*/
     $xml = new classXML('UTF-8');
     /* Skin Set Data */
     $xml->load(IPS_ROOT_PATH . 'setup/xml/skins/setsData.xml');
     foreach ($xml->fetchElements('set') as $xmlelement) {
         $data = $xml->fetchElementsFromRecord($xmlelement);
         if ($data['set_key'] == 'mobile') {
             $xmlData = $data;
             break;
         }
     }
     /* Update */
     if ($xmlData['set_key'] && IPSLib::isSerialized($xmlData['set_locked_uagent']) && IPSLib::isSerialized($mobileSkinSet['set_locked_uagent'])) {
         $new = unserialize($xmlData['set_locked_uagent']);
         $old = unserialize($mobileSkinSet['set_locked_uagent']);
         /* Merge them */
         foreach ($new['groups'] as $group) {
             if (!in_array($group, $old['groups'])) {
                 $old['groups'][] = $group;
             }
         }
         foreach ($new['uagents'] as $agent => $version) {
             if (!in_array($agent, $new['uagents'])) {
                 $old['uagents'][$agent] = $version;
             }
         }
     }
     if (is_array($old) && count($old)) {
         $this->DB->update('skin_collections', array('set_locked_uagent' => serialize($old)), "set_key='mobile'");
     }
 }
开发者ID:ConnorChristie,项目名称:GrabViews,代码行数:41,代码来源:skinFunctions.php

示例9: doExecute

 /**
  * Execute selected method
  *
  * @access	public
  * @param	object		Registry object
  * @return	@e void
  */
 public function doExecute(ipsRegistry $registry)
 {
     /* INIT */
     $filesOK = NULL;
     $extensions = get_loaded_extensions();
     $extensionsOK = TRUE;
     $extensionData = array();
     /* Test Extensions */
     $INSTALLDATA = array();
     include IPS_ROOT_PATH . 'setup/xml/requiredextensions.php';
     /*noLibHook*/
     if (is_array($INSTALLDATA) && count($INSTALLDATA)) {
         foreach ($INSTALLDATA as $data) {
             if (!in_array($data['testfor'], $extensions)) {
                 //-----------------------------------------
                 // Added 'nohault' key which will show a
                 // warning but not prohibit installation
                 //-----------------------------------------
                 if ($data['nohault']) {
                     $data['_ok'] = 1;
                     // Anything but true or false
                     $extensionsOK = 1;
                     // Anything but true or false
                 } else {
                     $extensionsOK = FALSE;
                 }
             } else {
                 $data['_ok'] = TRUE;
             }
             $extensionData[] = $data;
         }
     }
     /* Check for conf_global.dist.php */
     if (is_file(DOC_IPS_ROOT_PATH . 'conf_global.dist.php') and !is_file(DOC_IPS_ROOT_PATH . 'conf_global.php')) {
         if (!@rename(DOC_IPS_ROOT_PATH . 'conf_global.dist.php', DOC_IPS_ROOT_PATH . 'conf_global.php')) {
             $filesOK = FALSE;
             $this->registry->output->addError("<strong>You MUST rename the file 'conf_global.<b style='color:red'>dist.php</b>' TO 'conf_global.<b style='color:red'>php</b>' before continuing.</strong>\r\r\n\t\t\t\t\t\t\t  \t\t\t\t\t\t This file can be found in the 'root' directory on your IP.Board install.");
         }
     }
     /* All extensions loaded OK? */
     if ($extensionsOK == TRUE and $filesOK === NULL) {
         $filesOK = FALSE;
         /* Fetch core writeable files */
         require_once IPS_KERNEL_PATH . 'classXML.php';
         /*noLibHook*/
         $xml = new classXML(IPSSetUp::charSet);
         try {
             $xml->load(IPS_ROOT_PATH . 'setup/xml/writeablefiles.xml');
             foreach ($xml->fetchElements('file') as $xmlelement) {
                 $data = $xml->fetchElementsFromRecord($xmlelement);
                 if ($data['path']) {
                     $_path = DOC_IPS_ROOT_PATH . $data['path'];
                     if (!file_exists($_path)) {
                         if ($data['dir']) {
                             if (!@mkdir($_path, IPS_FOLDER_PERMISSION, TRUE)) {
                                 $this->registry->output->addError('Directory does not exist: "' . $data['path'] . '", please create it via FTP');
                             }
                         } else {
                             $this->registry->output->addError('File does not exist: "' . $data['path'] . '", please create it via FTP');
                         }
                     }
                     if (!is_writeable($_path)) {
                         if (!@chmod($_path, is_dir($_path) ? IPS_FOLDER_PERMISSION : IPS_FILE_PERMISSION)) {
                             if (is_dir($_path)) {
                                 $this->registry->output->addError('Can not write to directory: "' . $data['path'] . '", please CHMOD to 777');
                             } else {
                                 $this->registry->output->addError('Can not write to file: "' . $data['path'] . '", please CHMOD to 777');
                             }
                         }
                     }
                 }
             }
             if (!count($this->registry->output->fetchErrors())) {
                 $filesOK = TRUE;
             }
         } catch (Exception $error) {
             $filesOK = FALSE;
             $this->registry->output->addError("Cannot locate: " . IPS_ROOT_PATH . 'setup/xml/writeablefiles.xml');
         }
     }
     /* Hide buttons? */
     if ($filesOK !== TRUE or $extensionsOK != TRUE) {
         $this->registry->output->setNextAction('');
         $this->registry->output->setHideButton(TRUE);
     }
     /* Simply return the requirements page */
     $this->registry->output->setTitle("Requirements");
     $this->registry->output->addContent($this->registry->output->template()->page_requirements($filesOK, $extensionsOK, $extensionData));
     $this->registry->output->sendOutput();
 }
开发者ID:ConnorChristie,项目名称:GrabViews,代码行数:97,代码来源:index.php

示例10: applicationRemove

 /**
  * Remove an application
  *
  * @return	@e void		[Outputs to screen]
  */
 public function applicationRemove()
 {
     //--------------------------------------------
     // INIT
     //--------------------------------------------
     $app_id = intval($this->request['app_id']);
     //-----------------------------------------
     // Got an application?
     //-----------------------------------------
     $application = $this->DB->buildAndFetch(array('select' => '*', 'from' => 'core_applications', 'where' => 'app_id=' . $app_id));
     if (!$application['app_id']) {
         $this->registry->output->global_message = $this->lang->words['a_noid'];
         $this->applicationsOverview();
         return;
     }
     //-----------------------------------------
     // Protected?
     //-----------------------------------------
     if (!IN_DEV and $application['app_protected']) {
         $this->registry->output->global_message = $this->lang->words['a_protectapp'];
         $this->applicationsOverview();
         return;
     }
     //-----------------------------------------
     // Remove Settings
     //-----------------------------------------
     $this->DB->build(array('select' => '*', 'from' => 'core_sys_settings_titles', 'where' => "conf_title_app='{$application['app_directory']}'"));
     $this->DB->execute();
     $conf_title_id = array();
     while ($r = $this->DB->fetch()) {
         $conf_title_id[] = $r['conf_title_id'];
     }
     if (count($conf_title_id)) {
         $this->DB->delete('core_sys_conf_settings', 'conf_group IN(' . implode(',', $conf_title_id) . ')');
     }
     $this->DB->delete('core_sys_settings_titles', "conf_title_app='{$application['app_directory']}'");
     $settingsFile = IPSLib::getAppDir($application['app_directory']) . '/xml/' . $application['app_directory'] . '_settings.xml';
     if (is_file($settingsFile)) {
         require_once IPS_KERNEL_PATH . 'classXML.php';
         /*noLibHook*/
         $xml = new classXML(IPS_DOC_CHAR_SET);
         $xml->load($settingsFile);
         $keys = array();
         foreach ($xml->fetchElements('setting') as $setting) {
             $entry = $xml->fetchElementsFromRecord($setting);
             if ($entry['conf_is_title']) {
                 continue;
             }
             $keys[] = "'{$entry['conf_key']}'";
         }
         if (!empty($keys)) {
             $this->DB->delete('core_sys_conf_settings', 'conf_key IN(' . implode(',', $keys) . ')');
         }
     }
     //-----------------------------------------
     // Remove Application Caches
     //-----------------------------------------
     $_file = IPSLib::getAppDir($application['app_directory']) . '/extensions/coreVariables.php';
     if (is_file($_file)) {
         $CACHE = array();
         require $_file;
         /*noLibHook*/
         if (is_array($CACHE) and count($CACHE)) {
             foreach ($CACHE as $key => $data) {
                 $this->DB->delete('cache_store', "cs_key='{$key}'");
             }
         }
     }
     //-----------------------------------------
     // Remove tables
     //-----------------------------------------
     $_file = IPSLib::getAppDir($application['app_directory']) . '/setup/versions/install/sql/' . $application['app_directory'] . '_' . ipsRegistry::dbFunctions()->getDriverType() . '_tables.php';
     if (is_file($_file)) {
         $TABLE = array();
         require $_file;
         /*noLibHook*/
         foreach ($TABLE as $q) {
             //-----------------------------------------
             // Capture create tables first
             //-----------------------------------------
             preg_match("/CREATE TABLE (\\S+)(\\s)?\\(/", $q, $match);
             if ($match[1]) {
                 $_table = preg_replace('#^' . ipsRegistry::dbFunctions()->getPrefix() . "(\\S+)#", "\\1", $match[1]);
                 $this->DB->dropTable($_table);
             } else {
                 //-----------------------------------------
                 // Then capture alter tables
                 //-----------------------------------------
                 preg_match("/ALTER TABLE (\\S+)\\sADD\\s(\\S+)\\s/i", $q, $match);
                 if ($match[1] and $match[2]) {
                     $_table = preg_replace('#^' . ipsRegistry::dbFunctions()->getPrefix() . "(\\S+)#", "\\1", $match[1]);
                     $_field = $match[2];
                     /* check for field */
                     if ($this->DB->checkForField($_field, $_table)) {
                         $this->DB->dropField($_table, $_field);
//.........这里部分代码省略.........
开发者ID:ConnorChristie,项目名称:GrabViews-Live,代码行数:101,代码来源:applications.php

示例11: importTemplateAppXML

 /**
  * Import a single app
  *
  * @access	public
  * @param	string		App
  * @param	string		Skin key to import
  * @param	int			Set ID
  * @param	boolean		Set the edited / added flags to 0 (from install, upgrade)
  * @return	mixed		bool, or array of info
  */
 public function importTemplateAppXML($app, $skinKey, $setID = 0, $ignoreAddedEditedFlag = false)
 {
     //-----------------------------------------
     // INIT
     //-----------------------------------------
     $templateGroups = array();
     $templates = array();
     $fileXML = IPSLib::getAppDir($app) . '/xml/' . $app . '_' . $skinKey . '_templates.xml';
     $infoXML = IPSLib::getAppDir($app) . '/xml/information.xml';
     $return = array('updateCount' => 0, 'insertCount' => 0, 'updateBits' => array(), 'insertBits' => array());
     if (!file_exists($fileXML)) {
         return $return;
     }
     if (!$setID and $skinKey != 'root') {
         /* Figure out correct set ID based on key */
         $skinSetData = $this->DB->buildAndFetch(array('select' => '*', 'from' => 'skin_collections', 'where' => "set_key='" . $skinKey . "'"));
         $setID = $skinSetData['set_id'];
     }
     /* Set ignore flag correctly */
     if (!empty($skinKey) and in_array($skinKey, array('root', 'lofi', 'xmlskin'))) {
         $ignoreAddedEditedFlag = true;
     }
     //-----------------------------------------
     // XML
     //-----------------------------------------
     require_once IPS_KERNEL_PATH . 'classXML.php';
     $xml = new classXML(IPS_DOC_CHAR_SET);
     //-----------------------------------------
     // Get information file
     //-----------------------------------------
     $xml->load($infoXML);
     foreach ($xml->fetchElements('template') as $template) {
         $name = $xml->fetchItem($template);
         $match = $xml->fetchAttribute($template, 'match');
         if ($name) {
             $templateGroups[$name] = $match;
         }
     }
     if (!is_array($templateGroups) or !count($templateGroups)) {
         $this->_addMessage("Nothing to export for " . $app);
         return FALSE;
     }
     //-----------------------------------------
     // Fetch templates
     //-----------------------------------------
     $_templates = $this->fetchTemplates($setID, 'allNoContent');
     $_MASTER = $this->fetchTemplates(0, 'allNoContent');
     //-----------------------------------------
     // Loop through...
     //-----------------------------------------
     foreach ($_templates as $group => $data) {
         $_okToGo = FALSE;
         foreach ($templateGroups as $name => $match) {
             if ($match == 'contains') {
                 if (stristr($group, $name)) {
                     $_okToGo = TRUE;
                     break;
                 }
             } else {
                 if ($group == $name) {
                     $_okToGo = TRUE;
                 }
             }
         }
         if ($_okToGo === TRUE) {
             foreach ($data as $name => $templateData) {
                 $templates[$group][$name] = $templateData;
             }
         }
     }
     //-----------------------------------------
     // Wipe the master skins
     //-----------------------------------------
     if ($setID == 0) {
         $this->DB->delete('skin_templates', "template_set_id=0 AND template_group IN ('" . implode("','", array_keys($templates)) . "') AND template_user_added=0 AND template_added_to=0");
         /* Now wipe the array so we enforce creation */
         unset($templates);
     }
     //-----------------------------------------
     // Now grab the actual XML files
     //-----------------------------------------
     $xml->load($fileXML);
     foreach ($xml->fetchElements('template') as $templatexml) {
         $data = $xml->fetchElementsFromRecord($templatexml);
         /* Figure out if this is added by a user or not */
         if ($ignoreAddedEditedFlag === TRUE) {
             $isAdded = 0;
             $isEdited = 0;
         } else {
             $isAdded = (is_array($_MASTER[$data['template_group']][strtolower($data['template_name'])]) and !$_MASTER[$data['template_group']][strtolower($data['template_name'])]['template_user_added']) ? 0 : 1;
//.........这里部分代码省略.........
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:101,代码来源:skinImportExport.php

示例12: imprtFromXML


//.........这里部分代码省略.........
         $content = '';
         foreach ($xmlarchive->asArray() as $k => $f) {
             if ($k == 'language_entries.xml') {
                 $content = $f['content'];
                 break;
             }
         }
         //-----------------------------------------
         // No content from de-archiving, must not
         // be archive, but rather raw XML file
         //-----------------------------------------
         if ($content == '' and strpos($uploadedContent, "<languageexport") !== false) {
             $content = $uploadedContent;
         }
     }
     //-----------------------------------------
     // Make sure we have content
     //-----------------------------------------
     if (!$content) {
         $this->registry->output->global_message = $this->lang->words['l_badfile'];
         $this->languagesList();
         return;
     }
     //-----------------------------------------
     // Get xml class
     //-----------------------------------------
     require_once IPS_KERNEL_PATH . 'classXML.php';
     $xml = new classXML(IPS_DOC_CHAR_SET);
     $xml->loadXML($content);
     //-----------------------------------------
     // Is this full language pack?...
     //-----------------------------------------
     foreach ($xml->fetchElements('langinfo') as $lang_data) {
         $lang_info = $xml->fetchElementsFromRecord($lang_data);
         $lang_data = array('lang_short' => $lang_info['lang_short'], 'lang_title' => $lang_info['lang_title']);
     }
     $lang_ids = array();
     $insertId = 0;
     //-----------------------------------------
     // Do we have language pack info?
     //-----------------------------------------
     if ($lang_data['lang_short']) {
         //-----------------------------------------
         // Does this pack already exist
         //-----------------------------------------
         $update_lang = $this->DB->buildAndFetch(array('select' => 'lang_id', 'from' => 'core_sys_lang', 'where' => "lang_short='{$lang_data['lang_short']}'"));
         //-----------------------------------------
         // If doesn't exist, then create new pack
         //-----------------------------------------
         if (!$update_lang['lang_id']) {
             $this->DB->insert('core_sys_lang', $lang_data);
             $insertId = $this->DB->getInsertId();
             if (@mkdir(IPS_CACHE_PATH . '/cache/lang_cache/' . $insertId)) {
                 @file_put_contents(IPS_CACHE_PATH . 'cache/lang_cache/' . $insertId . '/index.html', '');
                 @chmod(IPS_CACHE_PATH . '/cache/lang_cache/' . $insertId, 0777);
             }
             //-----------------------------------------
             // Copy over language bits from default lang
             //-----------------------------------------
             $default = $this->DB->buildAndFetch(array('select' => 'lang_id', 'from' => 'core_sys_lang', 'where' => "lang_default=1"));
             $this->DB->build(array('select' => 'word_app,word_pack,word_key,word_default', 'from' => 'core_sys_lang_words', 'where' => "lang_id={$default['lang_id']}"));
             $q = $this->DB->execute();
             while ($r = $this->DB->fetch($q)) {
                 $r['lang_id'] = $insertId;
                 $this->DB->insert('core_sys_lang_words', $r);
             }
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:67,代码来源:manage_languages.php

示例13: _importBlock

 /**
  * Import skin templates for a plugin block
  *
  * @access	protected
  * @return	void
  */
 protected function _importBlock()
 {
     //-----------------------------------------
     // Developer reimporting templates?
     //-----------------------------------------
     if ($this->request['dev']) {
         $templates = array();
         $this->DB->build(array('select' => '*', 'from' => 'ccs_template_blocks'));
         $outer = $this->DB->execute();
         while ($r = $this->DB->fetch($outer)) {
             if (!preg_match("/_(\\d+)\$/", $r['tpb_name'])) {
                 $templates[$r['tpb_name']] = $r;
             }
         }
         $content = file_get_contents(IPSLib::getAppDir('ccs') . '/xml/block_templates.xml');
         require_once IPS_KERNEL_PATH . 'classXML.php';
         $xml = new classXML(IPS_DOC_CHAR_SET);
         $xml->loadXML($content);
         foreach ($xml->fetchElements('template') as $template) {
             $_template = $xml->fetchElementsFromRecord($template);
             if ($_template['tpb_name']) {
                 unset($_template['tpb_id']);
                 if (array_key_exists($_template['tpb_name'], $templates)) {
                     $this->DB->update("ccs_template_blocks", $_template, "tpb_id={$templates[$_template['tpb_name']]['tpb_id']}");
                 } else {
                     $this->DB->insert("ccs_template_blocks", $_template);
                 }
             }
         }
         $this->registry->output->global_message = $this->lang->words['block_import_devgood'];
         $this->registry->output->silentRedirectWithMessage($this->settings['base_url'] . '&module=blocks&section=blocks');
     }
     $content = $this->registry->getClass('adminFunctions')->importXml();
     //-----------------------------------------
     // Get xml class
     //-----------------------------------------
     require_once IPS_KERNEL_PATH . 'classXML.php';
     $xml = new classXML(IPS_DOC_CHAR_SET);
     $xml->loadXML($content);
     //-----------------------------------------
     // First, found out if this is just a plugin
     //-----------------------------------------
     $_fullBlock = false;
     $_block = array();
     $_blockId = 0;
     foreach ($xml->fetchElements('block') as $block) {
         $_block = $xml->fetchElementsFromRecord($block);
     }
     if (count($_block)) {
         $_fullBlock = true;
     }
     //-----------------------------------------
     // If full block, insert block first to get id
     //-----------------------------------------
     if ($_fullBlock) {
         unset($_block['block_id']);
         unset($_block['block_cache_last']);
         unset($_block['block_position']);
         unset($_block['block_category']);
         $check = $this->DB->buildAndFetch(array('select' => 'block_id', 'from' => 'ccs_blocks', 'where' => "block_key='{$_block['block_key']}'"));
         //-----------------------------------------
         // Instead of updating, just change key to prevent
         // overwriting someone's configured block
         //-----------------------------------------
         if ($check['block_id']) {
             $_block['block_key'] = $_block['block_key'] . md5(uniqid(microtime()));
         }
         $this->DB->insert('ccs_blocks', $_block);
         $_blockId = $this->DB->getInsertId();
     }
     //-----------------------------------------
     // Do the template regardless
     //-----------------------------------------
     $tpbId = 0;
     foreach ($xml->fetchElements('template') as $template) {
         $entry = $xml->fetchElementsFromRecord($template);
         if (!$entry['tpb_name']) {
             continue;
         }
         $templatebit = array('tpb_name' => $entry['tpb_name'], 'tpb_params' => $entry['tpb_params'], 'tpb_content' => $entry['tpb_content']);
         //-----------------------------------------
         // Fix name if full block
         //-----------------------------------------
         if ($_fullBlock) {
             $templatebit['tpb_name'] = preg_replace("/^(.+?)_(\\d+)\$/", "\\1_{$_blockId}", $templatebit['tpb_name']);
         }
         $check = $this->DB->buildAndFetch(array('select' => 'tpb_id', 'from' => 'ccs_template_blocks', 'where' => "tpb_name='{$entry['tpb_name']}'"));
         if ($check['tpb_id']) {
             $this->DB->update('ccs_template_blocks', $templatebit, 'tpb_id=' . $check['tpb_id']);
             $tpbId = $check['tpb_id'];
         } else {
             $this->DB->insert('ccs_template_blocks', $templatebit);
             $tpbId = $this->DB->getInsertId();
         }
//.........这里部分代码省略.........
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:101,代码来源:blocks.php

示例14: createSession

 /**
  * Create new session
  *
  * @access	public
  * @param	string		Diff session title
  * @param	string		Compare HTML
  * @param	boolean		Ignore new bits
  * @return	int			New session ID
  */
 public function createSession($title, $content, $ignoreBits = FALSE)
 {
     //-----------------------------------------
     // INIT
     //-----------------------------------------
     $templateBits = array();
     //-----------------------------------------
     // Get number for missing template bits
     //-----------------------------------------
     $_bits = $this->DB->buildAndFetch(array('select' => 'COUNT(*) as count', 'from' => 'skin_templates', 'where' => 'template_set_id=0'));
     //-----------------------------------------
     // Create session
     //-----------------------------------------
     $this->DB->allow_sub_select = 1;
     $this->DB->insert('template_diff_session', array('diff_session_togo' => intval($_bits['count']), 'diff_session_done' => 0, 'diff_session_title' => $title, 'diff_session_updated' => time(), 'diff_session_ignore_missing' => $ignoreBits === TRUE ? 1 : 0));
     $diffSesssionID = $this->DB->getInsertId();
     //-----------------------------------------
     // XML
     //-----------------------------------------
     require_once IPS_KERNEL_PATH . 'classXML.php';
     $xml = new classXML(IPS_DOC_CHAR_SET);
     //-----------------------------------------
     // Check to see if its an archive...
     //-----------------------------------------
     if (strstr($content, "<xmlarchive")) {
         /* It's an archive... */
         require IPS_KERNEL_PATH . 'classXMLArchive.php';
         $xmlArchive = new classXMLArchive(IPS_KERNEL_PATH);
         $xmlArchive->readXML($content);
         /* We just want the templates.. */
         foreach ($xmlArchive->asArray() as $path => $fileData) {
             if ($fileData['path'] == 'templates') {
                 $xml->loadXML($fileData['content']);
                 foreach ($xml->fetchElements('template') as $xmlelement) {
                     $data = $xml->fetchElementsFromRecord($xmlelement);
                     if (is_array($data)) {
                         $templateBits[] = $data;
                     }
                 }
             }
         }
     } else {
         $xml->loadXML($content);
         foreach ($xml->fetchElements('template') as $xmlelement) {
             $data = $xml->fetchElementsFromRecord($xmlelement);
             if (is_array($data)) {
                 $templateBits[] = $data;
             }
         }
     }
     //-----------------------------------------
     // Got anything?
     //-----------------------------------------
     if (!count($templateBits)) {
         return FALSE;
     }
     //-----------------------------------------
     // Build session data
     //-----------------------------------------
     foreach ($templateBits as $bit) {
         $diffKey = $diffSesssionID . ':' . $bit['template_group'] . ':' . $bit['template_name'];
         if (!$seen[$diffKey]) {
             $this->DB->allow_sub_select = 1;
             $this->DB->insert('templates_diff_import', array('diff_key' => $diffKey, 'diff_func_group' => $bit['template_group'], 'diff_func_data' => $bit['template_data'], 'diff_func_name' => $bit['template_name'], 'diff_func_content' => $bit['template_content'], 'diff_session_id' => $diffSesssionID));
             $seen[$diffKey] = 1;
         }
     }
     return $diffSesssionID;
 }
开发者ID:dalandis,项目名称:Visualization-of-Cell-Phone-Locations,代码行数:78,代码来源:skinDifferences.php

示例15: badwordsImport

 /**
  * Import badwords from an xml file
  *
  * @return	@e void
  */
 public function badwordsImport()
 {
     /* Get Badwords XML */
     try {
         $content = $this->registry->adminFunctions->importXml('ipb_badwords.xml');
     } catch (Exception $e) {
         $this->registry->output->showError($e->getMessage());
     }
     /* Check for content */
     if (!$content) {
         $this->registry->output->global_message = $this->lang->words['bwl_upload_failed'];
         $this->badwordsOvervew();
         return;
     }
     //-----------------------------------------
     // Get xml class
     //-----------------------------------------
     require_once IPS_KERNEL_PATH . 'classXML.php';
     /*noLibHook*/
     $xml = new classXML(IPS_DOC_CHAR_SET);
     $xml->loadXML($content);
     if (!count($xml->fetchElements('badword'))) {
         $this->registry->output->global_message = $this->lang->words['bwl_upload_wrong'];
         $this->badwordsOvervew();
         return;
     }
     /* Get a list of current badwords */
     $words = array();
     $this->DB->build(array('select' => '*', 'from' => 'badwords', 'order' => 'type'));
     $this->DB->execute();
     while ($r = $this->DB->fetch()) {
         $words[$r['type']] = 1;
     }
     /* Loop through the xml document and insert new bad words */
     foreach ($xml->fetchElements('badword') as $badword) {
         $entry = $xml->fetchElementsFromRecord($badword);
         /* Get the filter settings */
         $type = $entry['type'];
         $swop = $entry['swop'];
         $m_exact = $entry['m_exact'];
         /* Skip if it's already in the db */
         if ($words[$type]) {
             continue;
         }
         /* Add to the db */
         if ($type) {
             $this->DB->insert('badwords', array('type' => $type, 'swop' => $swop, 'm_exact' => $m_exact));
         }
     }
     /* Rebuild cache and bounce */
     $this->badwordsRebuildCache();
     $this->registry->output->global_message = $this->lang->words['bwl_upload_good'];
     $this->badwordsOvervew();
 }
开发者ID:ConnorChristie,项目名称:GrabViews,代码行数:59,代码来源:badwords.php


注:本文中的classXML::fetchElementsFromRecord方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。