protected function getCountries()
 {
     $xe = $this->web->get(sfConfig::get('app_source_countries'), null, array('Cache-Control' => 'no-cache'));
     $doc = new DOMDocument();
     // It's rare you'll have valid XHTML, suppress any errors- it'll do its best.
     @$doc->loadhtml($xe->getResponseText());
     $xpath = new DOMXPath($doc);
     foreach ($xpath->query('/html/body//form//select[@name="From"]')->item(0)->getElementsByTagName('option') as $option) {
         $currency = Doctrine::getTable('Currency')->findOneByCode($option->getAttribute('value'));
         $name = substr($option->textContent, 0, strpos($option->textContent, ','));
         if ($currency instanceof Currency && !empty($name)) {
             $country = Doctrine::getTable('Country')->findOneByName($name);
             if (!$country instanceof Country) {
                 $country = new Country();
                 $country->setName($name);
             }
             $country->Currencies[] = $currency;
             $country->save();
         }
     }
 }
Example #2
0
 /**
  *	Receive ping, check if local page is pingback-enabled, verify
  *	source contents, and return XML-RPC response
  *	@return string
  *	@param $func callback
  *	@param $path string
  **/
 function listen($func, $path = NULL)
 {
     $fw = \Base::instance();
     if (PHP_SAPI != 'cli') {
         header('X-Powered-By: ' . $fw->get('PACKAGE'));
         header('Content-Type: application/xml; ' . 'charset=' . ($charset = $fw->get('ENCODING')));
     }
     if (!$path) {
         $path = $fw->get('BASE');
     }
     $web = \Web::instance();
     $args = xmlrpc_decode_request($fw->get('BODY'), $method, $charset);
     $options = array('encoding' => $charset);
     if ($method == 'pingback.ping' && isset($args[0], $args[1])) {
         list($source, $permalink) = $args;
         $doc = new \DOMDocument('1.0', $fw->get('ENCODING'));
         // Check local page if pingback-enabled
         $parts = parse_url($permalink);
         if ((empty($parts['scheme']) || $parts['host'] == $fw->get('HOST')) && preg_match('/^' . preg_quote($path, '/') . '/' . ($fw->get('CASELESS') ? 'i' : ''), $parts['path']) && $this->enabled($permalink)) {
             // Check source
             $parts = parse_url($source);
             if ((empty($parts['scheme']) || $parts['host'] == $fw->get('HOST')) && ($req = $web->request($source)) && $doc->loadhtml($req['body'])) {
                 $links = $doc->getelementsbytagname('a');
                 foreach ($links as $link) {
                     if ($link->getattribute('href') == $permalink) {
                         call_user_func_array($func, array($source, $req['body']));
                         // Success
                         die(xmlrpc_encode_request(NULL, $source, $options));
                     }
                 }
                 // No link to local page
                 die(xmlrpc_encode_request(NULL, 0x11, $options));
             }
             // Source failure
             die(xmlrpc_encode_request(NULL, 0x10, $options));
         }
         // Doesn't exist (or not pingback-enabled)
         die(xmlrpc_encode_request(NULL, 0x21, $options));
     }
     // Access denied
     die(xmlrpc_encode_request(NULL, 0x31, $options));
 }
 public function LoadDomFromHTML($strHTML)
 {
     // $oDOM = new DOMDocument( '1.0', $this->strCharEncoding );
     $oDOM = new DOMDocument('1.0');
     // $oDOM->preserveWhiteSpace = false;
     // $oDOM->formatOutput = true;
     // $strHTML = '<div>' . $strHTML . '</div>';        // this prevents later when using saveXML() from inserting the comment <!-- xml version .... -->
     $oDOM->loadhtml($strHTML);
     return $oDOM;
 }
 public function LoadDomFromHTML($strHTML)
 {
     $oDOM = new DOMDocument('1.0');
     $oDOM->loadhtml($strHTML);
     return $oDOM;
 }
 /**
  * Changes the links (src/href) of HTML
  * @return: String 
  */
 public function changeLinks($contents, $root_path = JPATH_ROOT, $base_uri = '')
 {
     /** change js links	**/
     $regex = '/src=(["\'])(.*?)\\1/';
     $count = preg_match_all($regex, $contents, $match);
     if ($count > 0) {
         $changes = $match[2];
         foreach ($changes as $change) {
             //remove url file not exists
             $uri = new JURI($change);
             if ($_SERVER['HTTP_HOST'] != $uri->getHost() && $uri->getHost() != '') {
                 $headers = @get_headers($change, 1);
                 if ($headers[0] == 'HTTP/1.1 404 Not Found') {
                     $contents = str_replace('src="' . $change . '"', 'src=""', $contents);
                 }
             }
         }
     }
     /** change href reference **/
     $regex = '/href=(["\'])(.*?)\\1/';
     $count = preg_match_all($regex, $contents, $match);
     if ($count > 0) {
         $changes = $match[2];
         foreach ($changes as $change) {
             //remove url file not exists
             $uri = new JURI($change);
             if ($_SERVER['HTTP_HOST'] != $uri->getHost() && $uri->getHost() != '') {
                 $headers = @get_headers($change, 1);
                 if ($headers[0] == 'HTTP/1.1 404 Not Found') {
                     $contents = str_replace('href="' . $change . '"', 'href=""', $contents);
                 }
             }
         }
     }
     /** change href reference **/
     $regex = '/action=(["\'])(.*?)\\1/';
     $count = preg_match_all($regex, $contents, $match);
     if ($count > 0) {
         $changes = $match[2];
         foreach ($changes as $change) {
             //remove url file not exists
             $uri = new JURI($change);
             if ($_SERVER['HTTP_HOST'] != $uri->getHost() && $uri->getHost() != '') {
                 $headers = @get_headers($change, 1);
                 if ($headers[0] == 'HTTP/1.1 404 Not Found') {
                     $contents = str_replace('action="' . $change . '"', 'action=""', $contents);
                 }
             }
         }
     }
     /** change links **/
     $doc = new DOMDocument();
     if (@$doc->loadhtml($contents)) {
         $xpath = new DOMXpath($doc);
         $uri = JURI::getInstance();
         foreach ($xpath->query('//html//a') as $eInput) {
             $href = $eInput->getAttribute('href');
             $uri = new JURI($href);
             if (JString::trim($href) != '#' && JString::trim($href) != '' && ($_SERVER['HTTP_HOST'] == $uri->getHost() || $uri->getHost() == '')) {
                 $extend_url = JSN_RENDER_PAGE_URL . base64_encode($href);
                 $eInput->setAttribute('href', $extend_url);
             } else {
                 $eInput->setAttribute('href', 'javascript:;');
             }
         }
     }
     /** SAVE HTML after changed **/
     return $doc->saveHTML();
 }
Example #6
0
 /**
  * Get Current Menu Id.
  *
  * @return  integer
  */
 public function getCurrentItemid()
 {
     $doc = new DOMDocument();
     if (@$doc->loadhtml($this->_contents)) {
         $doc->preserveWhiteSpace = false;
         $component = $doc->getElementById('tableshow');
         if (is_object($component)) {
             return $component->getAttribute('itemid');
         }
     }
     return 0;
 }