/** * Funktion zum generieren von einem RSS 2.0 feed */ function generateRSS($ype = "html") { //Einf�gen des Basiswertes include_once "lib/XPath/XPath.class.php"; include_once "ext/blog/blog.class.php"; $xml = new XPath(); $xml->importFromString($this->prepareXML()); //Konfiguration einf�gen foreach ($this->config['rss'] as $key => $value) { if (!empty($value)) { $data = "\n<{$key}>{$value}</{$key}>\n"; $xml->appendChild("/rss[1]/channel[1]", $data); } } //So nun die letzten 10 Eintr�ge aus dem Blog einf�gen $blog = new weblog($this->blog); $entryArray = $blog->getLastXEntries(10); foreach ($entryArray as $entry) { $item = "\n<item>\n <title>" . $entry['attributes']['title'] . "</title>\n <link>http://www.grundprinzip.de/blog/single/" . $entry['number'] . ".html</link>\n <author>" . $entry['attributes']['mail'] . "</author>\n <category>" . $entry['attributes']['category'] . "</category>\n <description>" . $entry['teaser'] . "</description>\n </item>\n"; $xml->appendChild("/rss[1]/channel[1]", $item); } return $xml->exportAsXml(); }
/** * generates the category menu from the menu data * of directory.xml */ function menuFromXml($xmlData, $catdir) { $html = ""; $subdir = substr($catdir, strlen("content/")); $xmlParser = new XPath(); $xmlParser->importFromString($xmlData); $i = 1; while ($xmlParser->match("/menu[1]/item[{$i}]")) { $html .= "<span class=\"menu\">\n"; if ($xmlParser->match("/menu[1]/item[{$i}]/file[1]")) { $filename = $xmlParser->getData("/menu[1]/item[{$i}]/file[1]"); $title = getTitle($catdir . "/" . $filename); $link = $subdir . "/" . $filename; $html .= "<a href=\"index.php?p={$link}\">{$title}</a>\n"; } elseif ($xmlParser->match("/menu[1]/item[{$i}]/raw_data[1]")) { $data = $xmlParser->exportAsXml("/menu[1]/item[{$i}]/raw_data[1]"); $data = stripTag("raw_data", $data); $html .= $data; } $html .= "</span>\n"; $i++; } return $html; }
if (empty($content)) { return ""; } else { global $webpath; $textdir = direction(); $t = new Template(APP_ROOT . '/templates/' . TEMPLATE_SET); $t->set_file(array('box' => 'box.tpl')); $t->set_var('title', $title); $t->set_var('content', $content); $t->set_var('webpath', $webpath); $t->set_var('text_dir', $textdir['direction']); return $t->parse('out', 'box'); } } // Fire off the XPath class require_once APP_ROOT . '/includes/XPath.class.php'; $XPath = new XPath(); $XPath->importFromString($xml); $tpl->set_var('hardware', makebox($text['hardware'], html_hardware())); if ($error->ErrorsExist() && isset($showerrors) && $showerrors) { $tpl->set_var('errors', makebox("ERRORS", $error->ErrorsAsHTML())); } // parse our the template $tpl->pfp('out', 'form'); // finally our print our footer // if (PHPGROUPWARE == 1) { // $phpgw->common->phpgw_footer(); // } else { //require_once(APP_ROOT . '/includes/system_footer.php'); // } }
function Get2($institutionCode, $collectionCode, $catalogNumber) { if ($collectionCode != '') { $institution = $institutionCode . "-" . $collectionCode; } else { $institution = $institutionCode; } $url = $this->buildDIGIRQuery($institution, $catalogNumber); //echo $url; curl_setopt($this->ch, CURLOPT_URL, $url); $this->Call(); storeInCache($institution, $catalogNumber, $this->result, 'xml'); $xml = $this->result; //echo $xml; $data = ''; $ok = false; if (preg_match('/<\\?xml version/', $xml)) { // we have XML $xml = preg_replace("/<response xmlns='http:\\/\\/digir.net\\/schema\\/protocol\\/2003\\/1.0'/", '<response', $xml); // We got XML, but did we get a hit? $record_count = 0; if (PHP_VERSION >= 5.0) { $dom = new DOMDocument(); $dom->loadXML($xml); $xpath = new DOMXPath($dom); $xpath_query = "//diagnostic[@code='RECORD_COUNT']"; $nodeCollection = $xpath->query($xpath_query); foreach ($nodeCollection as $node) { $record_count = $node->firstChild->nodeValue; } } else { $xpath = new XPath(); $xpath->importFromString($xml); $xpath_query = "//diagnostic[@code='RECORD_COUNT']"; $nodeCollection = $xpath->match($xpath_query); foreach ($nodeCollection as $node) { $record_count = $xpath->getData($node); } } //echo "Record count=$record_count\n"; if ($record_count != 0) { //echo $xml; $xml = str_replace('"', '\\"', $xml); //echo $xml; $xp = new XsltProcessor(); $xsl = new DomDocument(); $xsl->load('xsl/digir2JSON.xsl'); $xp->importStylesheet($xsl); $xml_doc = new DOMDocument(); $xml_doc->loadXML($xml); $json = $xp->transformToXML($xml_doc); //echo $json; $json = str_replace("{,", "{", $json); $json = str_replace("\n", "", $json); $data = json_decode($json); //print_r($data); //echo $data->status, "\n"; // Clean weird KU stuff where they have lat=long=0 if (isset($data->record[0]->latitude) && isset($data->record[0]->longitude)) { if ($data->record[0]->latitude == 0 && $data->record[0]->longitude == 0) { unset($data->record[0]->latitude); unset($data->record[0]->longitude); } } //print_r($data); if (isset($data->status)) { if ($data->status == 'ok') { $ok = true; } } } else { $data->status = 'no record found'; } } else { $data->status = 'no XML returned'; } return $data; }
/** * Functions / Methods */ function xml_read($xmlSource, $from_file = TRUE) { global $xpath; $xpath = NULL; $xmlOptions = array(XML_OPTION_CASE_FOLDING => FALSE, XML_OPTION_SKIP_WHITE => TRUE); $xpath = new XPath(FALSE, $xmlOptions); //$xpath->bDebugXmlParse = TRUE; if ($from_file) { if (file_exists($xmlSource) && is_readable($xmlSource)) { if (!$xpath->importFromFile($xmlSource)) { die('xml_read(): XPath error > ' . $xpath->getLastError()); } } else { die('xml_read(): Can\'t find or open: ' . realpath($xmlSource)); } } else { if (!empty($xmlSource)) { if (!$xpath->importFromString($xmlSource)) { die('xml_read(): XPath error > ' . $xpath->getLastError()); } } else { die('xml_read(): Given source is empty in line.'); } } return true; }
// The sampe source: $q = '?'; $xmlSource = <<<EOD <{$q}Process_Instruction test="© All right reserved" {$q}> <AAA foo="bar"> ,,1,, ..1.. <![CDATA[ bla bla newLine blo blo ]]> <BBB foo="bar"> ..2.. </BBB>..3..<CC/> ..4..</AAA> EOD; // The sample code: $xmlOptions = array(XML_OPTION_CASE_FOLDING => TRUE, XML_OPTION_SKIP_WHITE => TRUE); $xPath = new XPath(FALSE, $xmlOptions); //$xPath->bDebugXmlParse = TRUE; if (!$xPath->importFromString($xmlSource)) { echo $xPath->getLastError(); exit; } _title("Following was imported:"); echo $xPath->exportAsHtml(); _title("Get some content"); echo "Last text part in <AAA>: '" . $xPath->wholeText('/AAA[1]', -1) . "'<br>\n"; echo "All the text in <AAA>: '" . $xPath->wholeText('/AAA[1]') . "'<br>\n"; echo "The attibute value in <BBB> using getAttributes('/AAA[1]/BBB[1]', 'FOO'): '" . $xPath->getAttributes('/AAA[1]', 'FOO') . "'<br>\n"; echo "The attibute value in <BBB> using getData('/AAA[1]/@FOO'): '" . $xPath->getData('/AAA[1]/@FOO') . "'<br>\n"; _title("Append some additional XML below /AAA/BBB:"); $xPath->appendChild('/AAA[1]/BBB[1]', '<CCC> Step 1. Append new node </CCC>', $afterText = FALSE); $xPath->appendChild('/AAA[1]/BBB[1]', '<CCC> Step 2. Append new node </CCC>', $afterText = TRUE); $xPath->appendChild('/AAA[1]/BBB[1]', '<CCC> Step 3. Append new node </CCC>', $afterText = TRUE); echo $xPath->exportAsHtml();
function sysinfo_generarinfo() { // phpSysInfo - A PHP System Information Script // http://phpsysinfo.sourceforge.net/ // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // $Id: index.php 2 2004-08-20 14:21:01Z root $ // our version number global $sysinfo; global $XPath; global $text; $VERSION = "2.3-cvs"; define('APP_ROOT', dirname(__FILE__)); set_magic_quotes_runtime(0); if (!file_exists(APP_ROOT . '/config.php')) { echo '<center><b>Error: config.php does not exist.</b></center>'; exit; } require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/config.php'; // get the config file if (!extension_loaded('xml')) { echo '<center><b>Error: phpsysinfo requires xml module.</b></center>'; exit; } // reassign HTTP variables (incase register_globals is off) if (!empty($HTTP_GET_VARS)) { while (list($name, $value) = each($HTTP_GET_VARS)) { ${$name} = $value; } } if (!empty($HTTP_POST_VARS)) { while (list($name, $value) = each($HTTP_POST_VARS)) { ${$name} = $value; } } // Check to see if where running inside of phpGroupWare if (isset($sessionid) && $sessionid && $kp3 && $domain) { define('PHPGROUPWARE', 1); $phpgw_info['flags'] = array('currentapp' => 'phpsysinfo-dev'); include '../header.inc.php'; } else { define('PHPGROUPWARE', 0); } if (!isset($template)) { $template = $_COOKIE['template']; } if (!isset($template)) { $template = 'classic'; } // check to see if we have a random template first if ($template == 'random') { $dir = opendir('templates/'); while (($file = readdir($dir)) != false) { if ($file != 'CVS' && $file != '.' && $file != '..') { $buf[] = $file; } } $template = $buf[array_rand($buf, 1)]; $random = true; } if ($template != 'xml') { $template = basename(APP_ROOT . '/templates/' . $template); // figure out if we got a template passed in the url if (!file_exists(APP_ROOT . "/templates/{$template}")) { // default template we should use if we don't get a argument. $template = 'classic'; } } define('TEMPLATE_SET', $template); // get our current language // default to english, but this is negotiable. if (!isset($lng)) { $lng = $_COOKIE['lng']; } if (!isset($lng)) { $lng = 'es'; } $lng = basename(APP_ROOT . '/includes/lang/' . $lng . '.php', '.php'); if (!file_exists(APP_ROOT . '/includes/lang/' . $lng . '.php')) { // see if the browser knows the right languange. if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $plng = split(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (count($plng) > 0) { while (list($k, $v) = each($plng)) { $k = split(';', $v, 1); $k = split('-', $k[0]); if (file_exists(APP_ROOT . '/includes/lang/' . $k[0] . '.php')) { $lng = $k[0]; break; } } } } } require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/lang/' . $lng . '.php'; // get our language include // Figure out which OS where running on, and detect support if (file_exists(APP_ROOT . '/includes/os/class.' . PHP_OS . '.inc.php')) { require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/os/class.' . PHP_OS . '.inc.php'; $sysinfo = new sysinfo(); } else { echo '<center><b>Error: ' . PHP_OS . ' is not currently supported</b></center>'; exit; } if (!empty($sensor_program)) { if (file_exists(APP_ROOT . '/includes/mb/class.' . $sensor_program . '.inc.php')) { require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/mb/class.' . $sensor_program . '.inc.php'; $mbinfo = new mbinfo(); } else { echo '<center><b>Error: ' . $sensor_program . ' is not currently supported</b></center>'; exit; } } require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/common_functions.php'; // Set of common functions used through out the app require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/xml/vitals.php'; require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/xml/network.php'; require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/xml/hardware.php'; require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/xml/memory.php'; require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/xml/filesystems.php'; require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/xml/mbinfo.php'; $xml = "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n"; $xml .= "<!DOCTYPE phpsysinfo SYSTEM \"" . _CFG_INTERFACE_DIRMODULES . "mod_sysinfo/phpsysinfo.dtd\">\n\n"; $xml .= created_by(); $xml .= "<phpsysinfo>\n"; $xml .= " <Generation version=\"{$VERSION}\" timestamp=\"" . time() . "\"/>\n"; $xml .= xml_vitals(); $xml .= xml_network(); $xml .= xml_hardware(); $xml .= xml_memory(); $xml .= xml_filesystems(); if (!empty($sensor_program)) { $xml .= xml_mbtemp(); $xml .= xml_mbfans(); $xml .= xml_mbvoltage(); } $xml .= "</phpsysinfo>"; if ($template == 'xml') { // just printout the XML and exit Header("Content-Type: text/xml\n\n"); print $xml; } else { // If they have GD complied into PHP, find out the height of the image to make this cleaner if (function_exists('getimagesize') && $template != 'xml') { $image_prop = getimagesize(APP_ROOT . '/templates/' . TEMPLATE_SET . '/images/bar_middle.gif'); define('BAR_HEIGHT', $image_prop[1]); unset($image_prop); } else { // Until they complie GD into PHP, this could look ugly define('BAR_HEIGHT', 16); } // Store the current template name in a cookie, set expire date to one month later // Store 'random' if we want a random template if ($random) { setcookie("template", 'random', time() + 60 * 60 * 24 * 30); } else { setcookie("template", $template, time() + 60 * 60 * 24 * 30); } // Store the current language selection in a cookie setcookie("lng", $lng, time() + 60 * 60 * 24 * 30); if (PHPGROUPWARE != 1) { require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/class.Template.inc.php'; // template library } // fire up the template engine $tpl = new Template(dirname(__FILE__) . '/templates/' . TEMPLATE_SET); $tpl->set_file(array('form' => 'form.tpl')); // print out a box of information function makebox($title, $content, $percent) { $t = new Template(dirname(__FILE__) . '/templates/' . TEMPLATE_SET); $t->set_file(array('box' => 'box.tpl')); $t->set_var('title', $title); $t->set_var('content', $content); if (empty($content)) { return ''; } else { return $t->parse('out', 'box'); } } // Fire off the XPath class require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/XPath.class.php'; $XPath = new XPath(); $XPath->importFromString($xml); // let the page begin. require _CFG_INTERFACE_DIRMODULES . 'mod_sysinfo/includes/system_header.php'; $tpl->set_var('title', $text['title'] . ': ' . $XPath->getData('/phpsysinfo/Vitals/Hostname') . ' (' . $XPath->getData('/phpsysinfo/Vitals/IPAddr') . ')'); $tpl->set_var('vitals', makebox($text['vitals'], html_vitals(), '100%')); $tpl->set_var('network', makebox($text['netusage'], html_network(), '100%')); $tpl->set_var('hardware', makebox($text['hardware'], html_hardware(), '100%')); $tpl->set_var('memory', makebox($text['memusage'], html_memory(), '100%')); $tpl->set_var('filesystems', makebox($text['fs'], html_filesystems(), '100%')); if (!empty($sensor_program)) { $tpl->set_var('mbtemp', makebox($text['temperature'], html_mbtemp(), '100%')); $tpl->set_var('mbfans', makebox($text['fans'], html_mbfans(), '100%')); $tpl->set_var('mbvoltage', makebox($text['voltage'], html_mbvoltage(), '100%')); } else { $tpl->set_var('mbtemp', ''); $tpl->set_var('mbfans', ''); $tpl->set_var('mbvoltage', ''); } // parse our the template return $tpl->pparse('out', 'form'); // finally our print our footer /* if (PHPGROUPWARE == 1) { $phpgw->common->phpgw_footer(); } else { require(_CFG_INTERFACE_DIRMODULES.'mod_sysinfo/includes/system_footer.php'); } */ } }