* @subpackage DemoTrain * @access public * @author Carl Leitner <*****@*****.**> * @copyright Copyright © 2007, 2008 IntraHealth International, Inc. * @since Demo-v2.a * @version Demo-v2.a */ $i2ce_site_user_access_init = null; require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'config.values.php'; $local_config = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'local' . DIRECTORY_SEPARATOR . 'config.values.php'; if (file_exists($local_config)) { require_once $local_config; } if (!isset($i2ce_site_i2ce_path) || !is_dir($i2ce_site_i2ce_path)) { echo "Please set the \$i2ce_site_i2ce_path in {$local_config}"; exit(55); } require_once $i2ce_site_i2ce_path . DIRECTORY_SEPARATOR . 'I2CE_config.inc.php'; @I2CE::initializeDSN($i2ce_site_dsn, $i2ce_site_user_access_init, $i2ce_site_module_config); unset($i2ce_site_user_access_init); unset($i2ce_site_dsn); unset($i2ce_site_i2ce_path); unset($i2ce_site_module_config); @($page = new I2CE_Wrangler()); @$page->wrangle(); # Local Variables: # mode: php # c-default-style: "bsd" # indent-tabs-mode: nil # c-basic-offset: 4 # End:
public function display($supress_output = false) { if (!array_key_exists('HTTP_HOST', $_SERVER)) { exit("No command line usage for this page"); } foreach (array('request', 'content') as $key) { if (!$this->get_exists($key)) { I2CE::raiseError("Invalid Stub request: {$key} is missing"); return false; } } $value = $this->get('content'); $req = array_pad(explode('?', $this->request('request')), 2, ''); list($req, $query_str) = $req; $get = array(); if ($query_str) { parse_str($query_str, $get); } $post = array(); if ($this->isPost()) { I2CE_Util::flattenVariables($this->post, $post, false); } if (count($this->request_remainder) > 0) { $attribute = $this->request_remainder[0]; } else { $attribute = 'id'; } if (strpos($value, ',')) { $values = explode(',', $value); $value = array(); foreach ($values as $val) { list($a, $v) = array_pad(explode('=', $val, 2), 2, ''); if (!$v) { $v = $a; $a = $attribute; } if (!array_key_exists($a, $value) || !is_array($value[$a])) { $value[$a] = array(); } $value[$a][] = $v; } } else { $value = array($attribute => array($value)); } $js = false; if ($this->get_exists('keep_javascripts')) { $js = $this->get('keep_javascripts'); } $wrangler = new I2CE_Wrangler(); $page = $wrangler->wrangle($req, false, $get, $post); if (!$page instanceof I2CE_Page) { $this->userMessage("Unable to find requested page", 'notice'); I2CE::raiseError("Unable to create page"); exit; } $page->setIsPost($this->isPost()); $page->display(true); foreach ($value as $a => &$vals) { if (!is_array($vals) || count($vals) == 0) { unset($vals[$a]); continue; } $vals = array_map('addslashes', $vals); $vals = "(@{$a}='" . implode("' or @{$a}='", $vals) . "')"; } if (count($value) == 0) { $this->userMessage("Nothing selected to return"); I2CE::raiseError("Nothing selected to return"); exit; } $qry = '//*[(' . implode(' or ', $value) . ")]"; $list = $page->getTemplate()->query($qry); $nodes = 0; if ($list instanceof DOMNodeList) { $nodes += $list->length; } $scriptNodeList = null; if ($js) { $js_ids = explode(',', $js); $qry = '/html/head//script[@id="' . implode('" or @id="', $js_ids) . '"]'; $scriptNodeList = $page->getTemplate()->query($qry); if ($scriptNodeList instanceof DOMNodeList) { $nodes += $scriptNodeList->length; } } if ($nodes == 0) { I2CE::raiseError("Requested page content not found: " . implode(' or ', $value) . " for request " . $this->module . '/' . $this->page . '/' . implode('/', $this->request_remainder)); exit; } $doc = new DOMDocument(); if ($scriptNodeList instanceof DOMNodeList) { for ($i = 0; $i < $scriptNodeList->length; $i++) { $scriptNode = $doc->importNode($scriptNodeList->item($i), true); $doc->appendChild($scriptNode); } } if ($list instanceof DOMNodeList) { for ($i = 0; $i < $list->length; $i++) { $doc->appendChild($doc->importNode($list->item($i), true)); } } echo $doc->saveHTML(); }