lunkwell Posted June 6, 2009 Share Posted June 6, 2009 I've just installed iosc on my cre loaded site. This has UltimateSEO installed. I am able to go to /mobile/ however no products are listed. However on my test server iosc works with ultimateseo turned off. On the live site I've commented out function redirect() and added function redirect() { Header("Location: http://www.<mysite>.com/mobile/"); exit(); } Still no joy. Any ideas Quote Link to comment Share on other sites More sharing options...
Guest Posted June 10, 2009 Share Posted June 10, 2009 This is a great contribution...however, I'm having a slight issue. Here's the steps I'm taking... 1) First category level...clicking works and takes me to subcategories. 2) I click on a subcategory and I'm taken to a page that says "This site is running TeamViewer." The URL in my browser shows http://localhost/osc/mobile/index.php?cPath=xx (xx varies depending on the cat). This contrib is installed in www.domain.com/mobile. No changes were necessary. Everything else seems to work so far. Thanks! Quote Link to comment Share on other sites More sharing options...
tedbooks Posted June 15, 2009 Share Posted June 15, 2009 Hello, I've the version 1.2 already installed and working fine for me as well. Just to get the checkout continue after confirmation order checkout, Could you please just indicate what code to add and change to get the payment done via paypal express and standard? Thanks very much for your help. Regards. did you get your add to cart issue resolved and what was the problem if i may ask Quote Link to comment Share on other sites More sharing options...
regne Posted June 16, 2009 Share Posted June 16, 2009 (edited) Hi, I try to create a products _new page. so i do that : <?php require_once('includes/application_top.php'); $listing_sql = "select p.products_id, pd.products_name, p.manufacturers_id, p.products_price, p.products_image, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd," . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "'"; $listing_sql .= " order by p.products_date_added DESC"; $PCSITE = DIR_MAIN_HTTP_CATALOG . FILENAME_DEFAULT . '?' . tep_get_all_get_params(); require(DIR_MOBILE_INCLUDES . 'header.php'); require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT); $headerTitle->write('Nouveautés'); require(DIR_MOBILE_MODULES . 'products.php'); require(DIR_MOBILE_INCLUDES . 'footer.php'); ?> everything look fine but when i clik on "show more products" in the bottom of my page nothing happend... someone can help me ? thanks Edited June 16, 2009 by regne Quote Link to comment Share on other sites More sharing options...
Guest Posted June 22, 2009 Share Posted June 22, 2009 I am getting the following error index.php, search.php, about.php.l languages.php error_reporting(E_ALL & E_NOTICE ); ini_set('display_errors','1'); Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/home/tfs/public_html/xxx/mobile/includes/application_top.php:3) in /usr/home/tfs/public_html/xxx/includes/functions/sessions.php on line 102 account.php: error_reporting(E_ALL & E_NOTICE ); ini_set('display_errors','1'); Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/home/tfs/public_html/xxx/mobile/includes/application_top.php:3) in /usr/home/tfs/public_html/xxx/includes/functions/sessions.php on line 102 Warning: Cannot modify header information - headers already sent by (output started at /usr/home/tfs/public_html/xxx/mobile/includes/application_top.php:3) in /usr/home/tfs/public_html/xxx/includes/functions/general.php on line 33 In additon, the index.php is blank Any help would be greatly appreciated. Quote Link to comment Share on other sites More sharing options...
Guest Posted June 23, 2009 Share Posted June 23, 2009 Magically, the problem I had yesterday is gone and with a few tweaks it's working very well. My questino is... The redirect works fine once a customer gets into the catalog portion of the site, however I have an index.htm at the root level of the site. How do I get the redirect to work from the root level outside of the catalog? Quote Link to comment Share on other sites More sharing options...
underwater Posted June 29, 2009 Share Posted June 29, 2009 Why the hell am I getting the normal Site when I access the site with my iPhone?? www.iSuit.de It looks like the normal Site, even though the /mobile/ is in the URL.. Also When I view iSuit.de on my iPhone, the language is english instead of german... Does anybody know why??? Quote Link to comment Share on other sites More sharing options...
sexshop365 Posted July 1, 2009 Share Posted July 1, 2009 Blank page problem - Fix The reason why some of you are getting a blank home page is probably down to a PHP 4 - 5 issue. This contribution contains the PHP function domxml which is no longer supported in PHP5. So for those of you hosting on a PHP5 server do the following. Download this code and save it and upload to your includes directory. For example call it domxml-php4-to-php5.php <?php /* Requires PHP5, uses built-in DOM extension. To be used in PHP4 scripts using DOMXML extension: allows PHP4/DOMXML scripts to run on PHP5/DOM. (Optional: requires PHP5/XSL extension for domxml_xslt functions, PHP>=5.1 for XPath evaluation functions, and PHP>=5.1/libxml for DOMXML error reports) Version 1.21.1a, 2009-03-13, [url="http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/"]http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/[/url] ------------------------------------------------------------------ Written by Alexandre Alapetite, [url="http://alexandre.alapetite.fr/cv/"]http://alexandre.alapetite.fr/cv/[/url] Copyright 2004-2009, GNU Lesser General Public License, [url="http://www.gnu.org/licenses/lgpl.html"]http://www.gnu.org/licenses/lgpl.html[/url] This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/lgpl.html> == Rights and obligations == - Attribution: You must give the original author credit. - Share Alike: If you alter or transform this library, you may distribute the resulting library only under the same license GNU/LGPL. - In case of jurisdiction dispute, the French law is authoritative. - Any of these conditions can be waived if you get permission from Alexandre Alapetite. - Not required, but please send to Alexandre Alapetite the modifications you make, in order to improve this file for the benefit of everybody. If you want to distribute this code, please do it as a link to: [url="http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/"]http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/[/url] */ define('DOMXML_LOAD_PARSING',0); define('DOMXML_LOAD_VALIDATING',1); define('DOMXML_LOAD_RECOVERING',2); define('DOMXML_LOAD_SUBSTITUTE_ENTITIES',4); //define('DOMXML_LOAD_COMPLETE_ATTRS',8); define('DOMXML_LOAD_DONT_KEEP_BLANKS',16); function domxml_new_doc($version) {return new php4DOMDocument();} function domxml_new_xmldoc($version) {return new php4DOMDocument();} function domxml_open_file($filename,$mode=DOMXML_LOAD_PARSING,&$error=null) { $dom=new php4DOMDocument($mode); $errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION'); if ($errorMode) libxml_use_internal_errors(true); if (!$dom->myDOMNode->load($filename)) $dom=null; if ($errorMode) { $error=array_map('_error_report',libxml_get_errors()); libxml_clear_errors(); } return $dom; } function domxml_open_mem($str,$mode=DOMXML_LOAD_PARSING,&$error=null) { $dom=new php4DOMDocument($mode); $errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION'); if ($errorMode) libxml_use_internal_errors(true); if (!$dom->myDOMNode->loadXML($str)) $dom=null; if ($errorMode) { $error=array_map('_error_report',libxml_get_errors()); libxml_clear_errors(); } return $dom; } function html_doc($html_doc,$from_file=false) { $dom=new php4DOMDocument(); if ($from_file) $result=$dom->myDOMNode->loadHTMLFile($html_doc); else $result=$dom->myDOMNode->loadHTML($html_doc); return $result ? $dom : null; } function html_doc_file($filename) {return html_doc($filename,true);} function xmldoc($str) {return domxml_open_mem($str);} function xmldocfile($filename) {return domxml_open_file($filename);} function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->xpath_eval($eval_str,$contextnode);} function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);} function xpath_register_ns($xpath_context,$prefix,$namespaceURI) {return $xpath_context->myDOMXPath->registerNamespace($prefix,$namespaceURI);} function _entityDecode($text) {return html_entity_decode(strtr($text,array('''=>'\'')),ENT_QUOTES,'UTF-8');} function _error_report($error) {return array('errormessage'=>$error->message,'nodename'=>'','line'=>$error->line,'col'=>$error->column)+($error->file==''?array():array('directory'=>dirname($error->file),'file'=>basename($error->file)));} class php4DOMAttr extends php4DOMNode { function __get($name) { if ($name==='name') return $this->myDOMNode->name; else return parent::__get($name); } function name() {return $this->myDOMNode->name;} function set_content($text) {} //function set_value($content) {return $this->myDOMNode->value=htmlspecialchars($content,ENT_QUOTES);} function specified() {return $this->myDOMNode->specified;} function value() {return $this->myDOMNode->value;} } class php4DOMDocument extends php4DOMNode { function php4DOMDocument($mode=DOMXML_LOAD_PARSING) { $this->myDOMNode=new DOMDocument(); $this->myOwnerDocument=$this; if ($mode & DOMXML_LOAD_VALIDATING) $this->myDOMNode->validateOnParse=true; if ($mode & DOMXML_LOAD_RECOVERING) $this->myDOMNode->recover=true; if ($mode & DOMXML_LOAD_SUBSTITUTE_ENTITIES) $this->myDOMNode->substituteEntities=true; if ($mode & DOMXML_LOAD_DONT_KEEP_BLANKS) $this->myDOMNode->preserveWhiteSpace=false; } function add_root($name) { if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild); return new php4DOMElement($this->myDOMNode->appendChild($this->myDOMNode->createElement($name)),$this->myOwnerDocument); } function create_attribute($name,$value) { $myAttr=$this->myDOMNode->createAttribute($name); $myAttr->value=htmlspecialchars($value,ENT_QUOTES); return new php4DOMAttr($myAttr,$this); } function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);} function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);} function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);} function create_element_ns($uri,$name,$prefix=null) { if ($prefix==null) $prefix=$this->myDOMNode->lookupPrefix($uri); if (($prefix==null)&&(($this->myDOMNode->documentElement==null)||(!$this->myDOMNode->documentElement->isDefaultNamespace($uri)))) $prefix='a'.sprintf('%u',crc32($uri)); return new php4DOMElement($this->myDOMNode->createElementNS($uri,$prefix==null ? $name : $prefix.':'.$name),$this); } function create_entity_reference($content) {return new php4DOMNode($this->myDOMNode->createEntityReference($content),$this);} //By Walter Ebert 2007-01-22 function create_processing_instruction($target,$data=''){return new php4DomProcessingInstruction($this->myDOMNode->createProcessingInstruction($target,$data),$this);} function create_text_node($content) {return new php4DOMText($this->myDOMNode->createTextNode($content),$this);} function document_element() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);} function dump_file($filename,$compressionmode=false,$format=false) { $format0=$this->myDOMNode->formatOutput; $this->myDOMNode->formatOutput=$format; $res=$this->myDOMNode->save($filename); $this->myDOMNode->formatOutput=$format0; return $res; } function dump_mem($format=false,$encoding=false) { $format0=$this->myDOMNode->formatOutput; $this->myDOMNode->formatOutput=$format; $encoding0=$this->myDOMNode->encoding; if ($encoding) $this->myDOMNode->encoding=$encoding; $dump=$this->myDOMNode->saveXML(); $this->myDOMNode->formatOutput=$format0; if ($encoding) $this->myDOMNode->encoding= $encoding0=='' ? 'UTF-8' : $encoding0; //UTF-8 is XML default encoding return $dump; } function free() { if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild); $this->myDOMNode=null; $this->myOwnerDocument=null; } function get_element_by_id($id) {return parent::_newDOMElement($this->myDOMNode->getElementById($id),$this);} function get_elements_by_tagname($name) { $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); $nodeSet=array(); $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this); return $nodeSet; } function html_dump_mem() {return $this->myDOMNode->saveHTML();} function root() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);} function xinclude() {return $this->myDOMNode->xinclude();} function xpath_new_context() {return new php4DOMXPath($this);} } class php4DOMElement extends php4DOMNode { function add_namespace($uri,$prefix) { if ($this->myDOMNode->hasAttributeNS('http://www.w3.org/2000/xmlns/',$prefix)) return false; else { $this->myDOMNode->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$prefix,$uri); //By Daniel Walker 2006-09-08 return true; } } function get_attribute($name) {return $this->myDOMNode->getAttribute($name);} function get_attribute_node($name) {return parent::_newDOMElement($this->myDOMNode->getAttributeNode($name),$this->myOwnerDocument);} function get_elements_by_tagname($name) { $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); $nodeSet=array(); $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument); return $nodeSet; } function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);} function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);} function set_attribute($name,$value) { //return $this->myDOMNode->setAttribute($name,$value); //Does not return a DomAttr $myAttr=$this->myDOMNode->ownerDocument->createAttribute($name); $myAttr->value=htmlspecialchars($value,ENT_QUOTES); //Entity problem reported by AL-DesignWorks 2007-09-07 $this->myDOMNode->setAttributeNode($myAttr); return new php4DOMAttr($myAttr,$this->myOwnerDocument); } /*function set_attribute_node($attr) { $this->myDOMNode->setAttributeNode($this->_importNode($attr)); return $attr; }*/ function set_name($name) { if ($this->myDOMNode->prefix=='') $newNode=$this->myDOMNode->ownerDocument->createElement($name); else $newNode=$this->myDOMNode->ownerDocument->createElementNS($this->myDOMNode->namespaceURI,$this->myDOMNode->prefix.':'.$name); $myDOMNodeList=$this->myDOMNode->attributes; $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) if ($node->namespaceURI=='') $newNode->setAttribute($node->name,$node->value); else $newNode->setAttributeNS($node->namespaceURI,$node->nodeName,$node->value); $myDOMNodeList=$this->myDOMNode->childNodes; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item(0)) $newNode->appendChild($node); $this->myDOMNode->parentNode->replaceChild($newNode,$this->myDOMNode); $this->myDOMNode=$newNode; return true; } function tagname() {return $this->tagname;} } class php4DOMNode { public $myDOMNode; public $myOwnerDocument; function php4DOMNode($aDomNode,$aOwnerDocument) { $this->myDOMNode=$aDomNode; $this->myOwnerDocument=$aOwnerDocument; } function __get($name) { switch ($name) { case 'type': return $this->myDOMNode->nodeType; case 'tagname': return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->tagName; //Avoid namespace prefix for DOMElement case 'content': return $this->myDOMNode->textContent; case 'value': return $this->myDOMNode->value; default: $myErrors=debug_backtrace(); trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE); return false; } } function add_child($newnode) {return append_child($newnode);} function add_namespace($uri,$prefix) {return false;} function append_child($newnode) {return self::_newDOMElement($this->myDOMNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);} function append_sibling($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);} function attributes() { $myDOMNodeList=$this->myDOMNode->attributes; if (!(isset($myDOMNodeList)&&$this->myDOMNode->hasAttributes())) return null; $nodeSet=array(); $i=0; while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument); return $nodeSet; } function child_nodes() { $myDOMNodeList=$this->myDOMNode->childNodes; $nodeSet=array(); $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=self::_newDOMElement($node,$this->myOwnerDocument); return $nodeSet; } function children() {return $this->child_nodes();} function clone_node($deep=false) {return self::_newDOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);} //dump_node($node) should only be called on php4DOMDocument function dump_node($node=null) {return $node==null ? $this->myOwnerDocument->myDOMNode->saveXML($this->myDOMNode) : $this->myOwnerDocument->myDOMNode->saveXML($node->myDOMNode);} function first_child() {return self::_newDOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);} function get_content() {return $this->myDOMNode->textContent;} function has_attributes() {return $this->myDOMNode->hasAttributes();} function has_child_nodes() {return $this->myDOMNode->hasChildNodes();} function insert_before($newnode,$refnode) {return self::_newDOMElement($this->myDOMNode->insertBefore($this->_importNode($newnode),$refnode==null?null:$refnode->myDOMNode),$this->myOwnerDocument);} function is_blank_node() {return ($this->myDOMNode->nodeType===XML_TEXT_NODE)&&preg_match('%^\s*$%',$this->myDOMNode->nodeValue);} function last_child() {return self::_newDOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);} function new_child($name,$content) { $mySubNode=$this->myDOMNode->ownerDocument->createElement($name); $mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($content))); $this->myDOMNode->appendChild($mySubNode); return new php4DOMElement($mySubNode,$this->myOwnerDocument); } function next_sibling() {return self::_newDOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);} function node_name() {return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->nodeName;} //Avoid namespace prefix for DOMElement function node_type() {return $this->myDOMNode->nodeType;} function node_value() {return $this->myDOMNode->nodeValue;} function owner_document() {return $this->myOwnerDocument;} function parent_node() {return self::_newDOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);} function prefix() {return $this->myDOMNode->prefix;} function previous_sibling() {return self::_newDOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);} function remove_child($oldchild) {return self::_newDOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);} function replace_child($newnode,$oldnode) {return self::_newDOMElement($this->myDOMNode->replaceChild($this->_importNode($newnode),$oldnode->myDOMNode),$this->myOwnerDocument);} function replace_node($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->replaceChild($this->_importNode($newnode),$this->myDOMNode),$this->myOwnerDocument);} function set_content($text) {return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($text)));} //Entity problem reported by AL-DesignWorks 2007-09-07 //function set_name($name) {return $this->myOwnerDocument->renameNode($this->myDOMNode,$this->myDOMNode->namespaceURI,$name);} function set_namespace($uri,$prefix=null) {//Contributions by Daniel Walker 2006-09-08 $nsprefix=$this->myDOMNode->lookupPrefix($uri); if ($nsprefix==null) { $nsprefix= $prefix==null ? $nsprefix='a'.sprintf('%u',crc32($uri)) : $prefix; if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) { if (($prefix!=null)&&$this->myDOMNode->ownerElement->hasAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)&& ($this->myDOMNode->ownerElement->getAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)!=$uri)) {//Remove namespace $parent=$this->myDOMNode->ownerElement; $parent->removeAttributeNode($this->myDOMNode); $parent->setAttribute($this->myDOMNode->localName,$this->myDOMNode->nodeValue); $this->myDOMNode=$parent->getAttributeNode($this->myDOMNode->localName); return; } $this->myDOMNode->ownerElement->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$nsprefix,$uri); } } if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) { $parent=$this->myDOMNode->ownerElement; $parent->removeAttributeNode($this->myDOMNode); $parent->setAttributeNS($uri,$nsprefix.':'.$this->myDOMNode->localName,$this->myDOMNode->nodeValue); $this->myDOMNode=$parent->getAttributeNodeNS($uri,$this->myDOMNode->localName); } elseif ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) { $NewNode=$this->myDOMNode->ownerDocument->createElementNS($uri,$nsprefix.':'.$this->myDOMNode->localName); foreach ($this->myDOMNode->attributes as $n) $NewNode->appendChild($n->cloneNode(true)); foreach ($this->myDOMNode->childNodes as $n) $NewNode->appendChild($n->cloneNode(true)); $xpath=new DOMXPath($this->myDOMNode->ownerDocument); $myDOMNodeList=$xpath->query('namespace::*[name()!="xml"]',$this->myDOMNode); //Add old namespaces foreach ($myDOMNodeList as $n) $NewNode->setAttributeNS('http://www.w3.org/2000/xmlns/',$n->nodeName,$n->nodeValue); $this->myDOMNode->parentNode->replaceChild($NewNode,$this->myDOMNode); $this->myDOMNode=$NewNode; } } function unlink_node() { if ($this->myDOMNode->parentNode!=null) { if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) $this->myDOMNode->parentNode->removeAttributeNode($this->myDOMNode); else $this->myDOMNode->parentNode->removeChild($this->myDOMNode); } } protected function _importNode($newnode) {return $this->myOwnerDocument===$newnode->myOwnerDocument ? $newnode->myDOMNode : $this->myOwnerDocument->myDOMNode->importNode($newnode->myDOMNode,true);} //To import DOMNode from another DOMDocument static function _newDOMElement($aDOMNode,$aOwnerDocument) {//Check the PHP5 DOMNode before creating a new associated PHP4 DOMNode wrapper if ($aDOMNode==null) return null; switch ($aDOMNode->nodeType) { case XML_ELEMENT_NODE: return new php4DOMElement($aDOMNode,$aOwnerDocument); case XML_TEXT_NODE: return new php4DOMText($aDOMNode,$aOwnerDocument); case XML_ATTRIBUTE_NODE: return new php4DOMAttr($aDOMNode,$aOwnerDocument); case XML_PI_NODE: return new php4DomProcessingInstruction($aDOMNode,$aOwnerDocument); default: return new php4DOMNode($aDOMNode,$aOwnerDocument); } } } class php4DomProcessingInstruction extends php4DOMNode { function data() {return $this->myDOMNode->data;} function target() {return $this->myDOMNode->target;} } class php4DOMText extends php4DOMNode { function __get($name) { if ($name==='tagname') return '#text'; else return parent::__get($name); } function tagname() {return '#text';} function set_content($text) {$this->myDOMNode->nodeValue=$text; return true;} } if (!defined('XPATH_NODESET')) { define('XPATH_UNDEFINED',0); define('XPATH_NODESET',1); define('XPATH_BOOLEAN',2); define('XPATH_NUMBER',3); define('XPATH_STRING',4); /*define('XPATH_POINT',5); define('XPATH_RANGE',6); define('XPATH_LOCATIONSET',7); define('XPATH_USERS',8); define('XPATH_XSLT_TREE',9);*/ } class php4DOMNodelist { private $myDOMNodelist; public $nodeset; public $type=XPATH_UNDEFINED; public $value; function php4DOMNodelist($aDOMNodelist,$aOwnerDocument) { if (!isset($aDOMNodelist)) return; elseif (is_object($aDOMNodelist)||is_array($aDOMNodelist)) { if ($aDOMNodelist->length>0) { $this->myDOMNodelist=$aDOMNodelist; $this->nodeset=array(); $this->type=XPATH_NODESET; $i=0; while ($node=$this->myDOMNodelist->item($i++)) $this->nodeset[]=php4DOMNode::_newDOMElement($node,$aOwnerDocument); } } elseif (is_int($aDOMNodelist)||is_float($aDOMNodelist)) { $this->type=XPATH_NUMBER; $this->value=$aDOMNodelist; } elseif (is_bool($aDOMNodelist)) { $this->type=XPATH_BOOLEAN; $this->value=$aDOMNodelist; } elseif (is_string($aDOMNodelist)) { $this->type=XPATH_STRING; $this->value=$aDOMNodelist; } } } class php4DOMXPath { public $myDOMXPath; private $myOwnerDocument; function php4DOMXPath($dom_document) { //TODO: If $dom_document is a DomElement, make that default $contextnode and modify XPath. Ex: '/test' $this->myOwnerDocument=$dom_document->myOwnerDocument; $this->myDOMXPath=new DOMXPath($this->myOwnerDocument->myDOMNode); } function xpath_eval($eval_str,$contextnode=null) { if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str); else $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str); $xp=new php4DOMNodelist($xp,$this->myOwnerDocument); return ($xp->type===XPATH_UNDEFINED) ? false : $xp; } function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);} } if (extension_loaded('xsl')) {//See also: [url="http://alexandre.alapetite.fr/doc-alex/xslt-php4-php5/"]http://alexandre.alapetite.fr/doc-alex/xslt-php4-php5/[/url] function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));} function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);} function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));} class php4DomXsltStylesheet { private $myxsltProcessor; function php4DomXsltStylesheet($dom_document) { $this->myxsltProcessor=new xsltProcessor(); $this->myxsltProcessor->importStyleSheet($dom_document); } function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false) { foreach ($xslt_parameters as $param=>$value) $this->myxsltProcessor->setParameter('',$param,$value); $myphp4DOMDocument=new php4DOMDocument(); $myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode); return $myphp4DOMDocument; } function result_dump_file($dom_document,$filename) { $html=$dom_document->myDOMNode->saveHTML(); file_put_contents($filename,$html); return $html; } function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();} } } ?> Once you have done this add the following code to your index.php page require(DIR_MOBILE_INCLUDES . 'domxml-php4-to-php5.php'); Hope this help. Quote Link to comment Share on other sites More sharing options...
smic717394 Posted July 1, 2009 Share Posted July 1, 2009 I managed to install it in a CRELoaded, and it works, but i get few errors: 1. when I'm in the shopping chart I get this error line just on top of the table with the products: Fatal error: Call to undefined function: checkout_initialization_method() in /var/www/vhosts/cexy.co.uk/httpdocs/mobile/shopping_cart.php on line 160 2.On the top bar, I get BOX_HEADING_LANGUAGES, where should I define this? 3.When I click About buton on top I get BOX_INFORMATION_CONDITIONS, BOX_INFORMATION_SHIPPING, BOX_INFORMATION_PRIVACY, BOX_INFORMATION_CONTACT and when I click any of the "ERROR" 4. When I brouse the store under the description I get BOX_HEADING_REVIEWS, again where do i define this. 5. If I click account button on the top and click My Orders I get "1054 - Unknown column 's.public_flag' in 'where clause' select count(*) as total from orders o, orders_total ot, orders_status s where o.customers_id = '12' and o.orders_id = ot.orders_id and ot.class = 'ot_total' and o.orders_status = s.orders_status_id and s.language_id = '1' and s.public_flag = '1' [TEP STOP] " 5. If I click account button on the top one of the option is: BOX_HEADING_NOTIFICATIONS 6. If I click Checkout, on the shipping page under the continue I have BOX_HEADING_SHOPPING_CART Quote Link to comment Share on other sites More sharing options...
smic717394 Posted July 2, 2009 Share Posted July 2, 2009 I managed to install it in a CRELoaded, and it works, but i get few errors: 1. when I'm in the shopping chart I get this error line just on top of the table with the products: Fatal error: Call to undefined function: checkout_initialization_method() in /var/www/vhosts/cexy.co.uk/httpdocs/mobile/shopping_cart.php on line 160 2.On the top bar, I get BOX_HEADING_LANGUAGES, where should I define this? 3.When I click About buton on top I get BOX_INFORMATION_CONDITIONS, BOX_INFORMATION_SHIPPING, BOX_INFORMATION_PRIVACY, BOX_INFORMATION_CONTACT and when I click any of the "ERROR" 4. When I brouse the store under the description I get BOX_HEADING_REVIEWS, again where do i define this. 5. If I click account button on the top and click My Orders I get "1054 - Unknown column 's.public_flag' in 'where clause' select count(*) as total from orders o, orders_total ot, orders_status s where o.customers_id = '12' and o.orders_id = ot.orders_id and ot.class = 'ot_total' and o.orders_status = s.orders_status_id and s.language_id = '1' and s.public_flag = '1' [TEP STOP] " 5. If I click account button on the top one of the option is: BOX_HEADING_NOTIFICATIONS 6. If I click Checkout, on the shipping page under the continue I have BOX_HEADING_SHOPPING_CART I managed to fix all some of the problem but what i have left is: 1. when I'm in the shopping chart I get this error line just on top of the table with the products: Fatal error: Call to undefined function: checkout_initialization_method() in /var/www/vhosts/cexy.co.uk/httpdocs/mobile/shopping_cart.php on line 160 2.When I click About buton on top I get BOX_INFORMATION_CONDITIONS, BOX_INFORMATION_SHIPPING, BOX_INFORMATION_PRIVACY, BOX_INFORMATION_CONTACT and when I click any of the "ERROR" 3. If I click account button on the top and click My Orders I get "1054 - Unknown column 's.public_flag' in 'where clause' select count(*) as total from orders o, orders_total ot, orders_status s where o.customers_id = '12' and o.orders_id = ot.orders_id and ot.class = 'ot_total' and o.orders_status = s.orders_status_id and s.language_id = '1' and s.public_flag = '1' [TEP STOP] " Quote Link to comment Share on other sites More sharing options...
smic717394 Posted July 2, 2009 Share Posted July 2, 2009 I managed to fix all some of the problem but what i have left is: 1. when I'm in the shopping chart I get this error line just on top of the table with the products: Fatal error: Call to undefined function: checkout_initialization_method() in /var/www/vhosts/cexy.co.uk/httpdocs/mobile/shopping_cart.php on line 160 2.When I click About button on top I get BOX_INFORMATION_CONDITIONS, BOX_INFORMATION_SHIPPING, BOX_INFORMATION_PRIVACY, BOX_INFORMATION_CONTACT and when I click any of the "ERROR" 3. If I click account button on the top and click My Orders I get "1054 - Unknown column 's.public_flag' in 'where clause' select count(*) as total from orders o, orders_total ot, orders_status s where o.customers_id = '12' and o.orders_id = ot.orders_id and ot.class = 'ot_total' and o.orders_status = s.orders_status_id and s.language_id = '1' and s.public_flag = '1' [TEP STOP] " OK, fixed most of the problems, just 2 left.. 1. Fatal error: Call to undefined function: checkout_initialization_method() in /var/www/vhosts/cexy.co.uk/httpdocs/mobile/shopping_cart.php on line 160 Where do i have to define this function pleaseeeeeeeee? 2. For whatever reason netbanx is not working, if i choose netbanx and click confirm it gets redirected to netbanx page with a netbanx error 504 something that cannot handle the request. I tried from the main page ans its working fine. Quote Link to comment Share on other sites More sharing options...
smic717394 Posted July 3, 2009 Share Posted July 3, 2009 Hi, I think there is a problem with this contribution, I test it on my iphone and its appears to be working fine, but when you navigate to a category which have more than one page of products, it start loading and just before finishing the last product on the page, safari just crashes, it closes and it goes back to the iphone menu, I tried to stop from loading before it finishes to load all the page and if I click the "Show more Results" button for a second just on top of "Show more Results" it displays "Undefined" and again the browser closes and the iphone returns to its start page. I also tried it on the PC on Firefox, everything works fine, except again if you go to a category that have allot of products, and click the "Show more Results" before the page has finished loading all the products again like on the iphone it shows "undefined", then bellow it shows more products but the currency symbol for the prices is nor £ any more is � Also if you check the error console in firefox while loading the products page there are allot of errors. In IE7, works fine except again the products page. Again for categories that have allot of products, it shows the first page and if you click the "Show more results" link nothing happened. Also in the status bar shows and error "Line:42, Char:3, Error: Unknown Runtime Error, Code:0, URL:http://www....../mobile/products.php?cPatch=6&osCsid=xxxxxxx" Otherwise for categories with just one page of products, everything works beautifully on all browsers. Quote Link to comment Share on other sites More sharing options...
PiLLaO Posted July 3, 2009 Share Posted July 3, 2009 Blank page problem - Fix The reason why some of you are getting a blank home page is probably down to a PHP 4 - 5 issue. This contribution contains the PHP function domxml which is no longer supported in PHP5. So for those of you hosting on a PHP5 server do the following. Download this code and save it and upload to your includes directory. For example call it domxml-php4-to-php5.php <?php /* Requires PHP5, uses built-in DOM extension. To be used in PHP4 scripts using DOMXML extension: allows PHP4/DOMXML scripts to run on PHP5/DOM. (Optional: requires PHP5/XSL extension for domxml_xslt functions, PHP>=5.1 for XPath evaluation functions, and PHP>=5.1/libxml for DOMXML error reports) Version 1.21.1a, 2009-03-13, [url="http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/"]http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/[/url] ------------------------------------------------------------------ Written by Alexandre Alapetite, [url="http://alexandre.alapetite.fr/cv/"]http://alexandre.alapetite.fr/cv/[/url] Copyright 2004-2009, GNU Lesser General Public License, [url="http://www.gnu.org/licenses/lgpl.html"]http://www.gnu.org/licenses/lgpl.html[/url] This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 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 Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <http://www.gnu.org/licenses/lgpl.html> == Rights and obligations == - Attribution: You must give the original author credit. - Share Alike: If you alter or transform this library, you may distribute the resulting library only under the same license GNU/LGPL. - In case of jurisdiction dispute, the French law is authoritative. - Any of these conditions can be waived if you get permission from Alexandre Alapetite. - Not required, but please send to Alexandre Alapetite the modifications you make, in order to improve this file for the benefit of everybody. If you want to distribute this code, please do it as a link to: [url="http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/"]http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/[/url] */ define('DOMXML_LOAD_PARSING',0); define('DOMXML_LOAD_VALIDATING',1); define('DOMXML_LOAD_RECOVERING',2); define('DOMXML_LOAD_SUBSTITUTE_ENTITIES',4); //define('DOMXML_LOAD_COMPLETE_ATTRS',8); define('DOMXML_LOAD_DONT_KEEP_BLANKS',16); function domxml_new_doc($version) {return new php4DOMDocument();} function domxml_new_xmldoc($version) {return new php4DOMDocument();} function domxml_open_file($filename,$mode=DOMXML_LOAD_PARSING,&$error=null) { $dom=new php4DOMDocument($mode); $errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION'); if ($errorMode) libxml_use_internal_errors(true); if (!$dom->myDOMNode->load($filename)) $dom=null; if ($errorMode) { $error=array_map('_error_report',libxml_get_errors()); libxml_clear_errors(); } return $dom; } function domxml_open_mem($str,$mode=DOMXML_LOAD_PARSING,&$error=null) { $dom=new php4DOMDocument($mode); $errorMode=(func_num_args()>2)&&defined('LIBXML_VERSION'); if ($errorMode) libxml_use_internal_errors(true); if (!$dom->myDOMNode->loadXML($str)) $dom=null; if ($errorMode) { $error=array_map('_error_report',libxml_get_errors()); libxml_clear_errors(); } return $dom; } function html_doc($html_doc,$from_file=false) { $dom=new php4DOMDocument(); if ($from_file) $result=$dom->myDOMNode->loadHTMLFile($html_doc); else $result=$dom->myDOMNode->loadHTML($html_doc); return $result ? $dom : null; } function html_doc_file($filename) {return html_doc($filename,true);} function xmldoc($str) {return domxml_open_mem($str);} function xmldocfile($filename) {return domxml_open_file($filename);} function xpath_eval($xpath_context,$eval_str,$contextnode=null) {return $xpath_context->xpath_eval($eval_str,$contextnode);} function xpath_new_context($dom_document) {return new php4DOMXPath($dom_document);} function xpath_register_ns($xpath_context,$prefix,$namespaceURI) {return $xpath_context->myDOMXPath->registerNamespace($prefix,$namespaceURI);} function _entityDecode($text) {return html_entity_decode(strtr($text,array('''=>'\'')),ENT_QUOTES,'UTF-8');} function _error_report($error) {return array('errormessage'=>$error->message,'nodename'=>'','line'=>$error->line,'col'=>$error->column)+($error->file==''?array():array('directory'=>dirname($error->file),'file'=>basename($error->file)));} class php4DOMAttr extends php4DOMNode { function __get($name) { if ($name==='name') return $this->myDOMNode->name; else return parent::__get($name); } function name() {return $this->myDOMNode->name;} function set_content($text) {} //function set_value($content) {return $this->myDOMNode->value=htmlspecialchars($content,ENT_QUOTES);} function specified() {return $this->myDOMNode->specified;} function value() {return $this->myDOMNode->value;} } class php4DOMDocument extends php4DOMNode { function php4DOMDocument($mode=DOMXML_LOAD_PARSING) { $this->myDOMNode=new DOMDocument(); $this->myOwnerDocument=$this; if ($mode & DOMXML_LOAD_VALIDATING) $this->myDOMNode->validateOnParse=true; if ($mode & DOMXML_LOAD_RECOVERING) $this->myDOMNode->recover=true; if ($mode & DOMXML_LOAD_SUBSTITUTE_ENTITIES) $this->myDOMNode->substituteEntities=true; if ($mode & DOMXML_LOAD_DONT_KEEP_BLANKS) $this->myDOMNode->preserveWhiteSpace=false; } function add_root($name) { if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild); return new php4DOMElement($this->myDOMNode->appendChild($this->myDOMNode->createElement($name)),$this->myOwnerDocument); } function create_attribute($name,$value) { $myAttr=$this->myDOMNode->createAttribute($name); $myAttr->value=htmlspecialchars($value,ENT_QUOTES); return new php4DOMAttr($myAttr,$this); } function create_cdata_section($content) {return new php4DOMNode($this->myDOMNode->createCDATASection($content),$this);} function create_comment($data) {return new php4DOMNode($this->myDOMNode->createComment($data),$this);} function create_element($name) {return new php4DOMElement($this->myDOMNode->createElement($name),$this);} function create_element_ns($uri,$name,$prefix=null) { if ($prefix==null) $prefix=$this->myDOMNode->lookupPrefix($uri); if (($prefix==null)&&(($this->myDOMNode->documentElement==null)||(!$this->myDOMNode->documentElement->isDefaultNamespace($uri)))) $prefix='a'.sprintf('%u',crc32($uri)); return new php4DOMElement($this->myDOMNode->createElementNS($uri,$prefix==null ? $name : $prefix.':'.$name),$this); } function create_entity_reference($content) {return new php4DOMNode($this->myDOMNode->createEntityReference($content),$this);} //By Walter Ebert 2007-01-22 function create_processing_instruction($target,$data=''){return new php4DomProcessingInstruction($this->myDOMNode->createProcessingInstruction($target,$data),$this);} function create_text_node($content) {return new php4DOMText($this->myDOMNode->createTextNode($content),$this);} function document_element() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);} function dump_file($filename,$compressionmode=false,$format=false) { $format0=$this->myDOMNode->formatOutput; $this->myDOMNode->formatOutput=$format; $res=$this->myDOMNode->save($filename); $this->myDOMNode->formatOutput=$format0; return $res; } function dump_mem($format=false,$encoding=false) { $format0=$this->myDOMNode->formatOutput; $this->myDOMNode->formatOutput=$format; $encoding0=$this->myDOMNode->encoding; if ($encoding) $this->myDOMNode->encoding=$encoding; $dump=$this->myDOMNode->saveXML(); $this->myDOMNode->formatOutput=$format0; if ($encoding) $this->myDOMNode->encoding= $encoding0=='' ? 'UTF-8' : $encoding0; //UTF-8 is XML default encoding return $dump; } function free() { if ($this->myDOMNode->hasChildNodes()) $this->myDOMNode->removeChild($this->myDOMNode->firstChild); $this->myDOMNode=null; $this->myOwnerDocument=null; } function get_element_by_id($id) {return parent::_newDOMElement($this->myDOMNode->getElementById($id),$this);} function get_elements_by_tagname($name) { $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); $nodeSet=array(); $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this); return $nodeSet; } function html_dump_mem() {return $this->myDOMNode->saveHTML();} function root() {return parent::_newDOMElement($this->myDOMNode->documentElement,$this);} function xinclude() {return $this->myDOMNode->xinclude();} function xpath_new_context() {return new php4DOMXPath($this);} } class php4DOMElement extends php4DOMNode { function add_namespace($uri,$prefix) { if ($this->myDOMNode->hasAttributeNS('http://www.w3.org/2000/xmlns/',$prefix)) return false; else { $this->myDOMNode->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$prefix,$uri); //By Daniel Walker 2006-09-08 return true; } } function get_attribute($name) {return $this->myDOMNode->getAttribute($name);} function get_attribute_node($name) {return parent::_newDOMElement($this->myDOMNode->getAttributeNode($name),$this->myOwnerDocument);} function get_elements_by_tagname($name) { $myDOMNodeList=$this->myDOMNode->getElementsByTagName($name); $nodeSet=array(); $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMElement($node,$this->myOwnerDocument); return $nodeSet; } function has_attribute($name) {return $this->myDOMNode->hasAttribute($name);} function remove_attribute($name) {return $this->myDOMNode->removeAttribute($name);} function set_attribute($name,$value) { //return $this->myDOMNode->setAttribute($name,$value); //Does not return a DomAttr $myAttr=$this->myDOMNode->ownerDocument->createAttribute($name); $myAttr->value=htmlspecialchars($value,ENT_QUOTES); //Entity problem reported by AL-DesignWorks 2007-09-07 $this->myDOMNode->setAttributeNode($myAttr); return new php4DOMAttr($myAttr,$this->myOwnerDocument); } /*function set_attribute_node($attr) { $this->myDOMNode->setAttributeNode($this->_importNode($attr)); return $attr; }*/ function set_name($name) { if ($this->myDOMNode->prefix=='') $newNode=$this->myDOMNode->ownerDocument->createElement($name); else $newNode=$this->myDOMNode->ownerDocument->createElementNS($this->myDOMNode->namespaceURI,$this->myDOMNode->prefix.':'.$name); $myDOMNodeList=$this->myDOMNode->attributes; $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) if ($node->namespaceURI=='') $newNode->setAttribute($node->name,$node->value); else $newNode->setAttributeNS($node->namespaceURI,$node->nodeName,$node->value); $myDOMNodeList=$this->myDOMNode->childNodes; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item(0)) $newNode->appendChild($node); $this->myDOMNode->parentNode->replaceChild($newNode,$this->myDOMNode); $this->myDOMNode=$newNode; return true; } function tagname() {return $this->tagname;} } class php4DOMNode { public $myDOMNode; public $myOwnerDocument; function php4DOMNode($aDomNode,$aOwnerDocument) { $this->myDOMNode=$aDomNode; $this->myOwnerDocument=$aOwnerDocument; } function __get($name) { switch ($name) { case 'type': return $this->myDOMNode->nodeType; case 'tagname': return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->tagName; //Avoid namespace prefix for DOMElement case 'content': return $this->myDOMNode->textContent; case 'value': return $this->myDOMNode->value; default: $myErrors=debug_backtrace(); trigger_error('Undefined property: '.get_class($this).'::$'.$name.' ['.$myErrors[0]['file'].':'.$myErrors[0]['line'].']',E_USER_NOTICE); return false; } } function add_child($newnode) {return append_child($newnode);} function add_namespace($uri,$prefix) {return false;} function append_child($newnode) {return self::_newDOMElement($this->myDOMNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);} function append_sibling($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);} function attributes() { $myDOMNodeList=$this->myDOMNode->attributes; if (!(isset($myDOMNodeList)&&$this->myDOMNode->hasAttributes())) return null; $nodeSet=array(); $i=0; while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=new php4DOMAttr($node,$this->myOwnerDocument); return $nodeSet; } function child_nodes() { $myDOMNodeList=$this->myDOMNode->childNodes; $nodeSet=array(); $i=0; if (isset($myDOMNodeList)) while ($node=$myDOMNodeList->item($i++)) $nodeSet[]=self::_newDOMElement($node,$this->myOwnerDocument); return $nodeSet; } function children() {return $this->child_nodes();} function clone_node($deep=false) {return self::_newDOMElement($this->myDOMNode->cloneNode($deep),$this->myOwnerDocument);} //dump_node($node) should only be called on php4DOMDocument function dump_node($node=null) {return $node==null ? $this->myOwnerDocument->myDOMNode->saveXML($this->myDOMNode) : $this->myOwnerDocument->myDOMNode->saveXML($node->myDOMNode);} function first_child() {return self::_newDOMElement($this->myDOMNode->firstChild,$this->myOwnerDocument);} function get_content() {return $this->myDOMNode->textContent;} function has_attributes() {return $this->myDOMNode->hasAttributes();} function has_child_nodes() {return $this->myDOMNode->hasChildNodes();} function insert_before($newnode,$refnode) {return self::_newDOMElement($this->myDOMNode->insertBefore($this->_importNode($newnode),$refnode==null?null:$refnode->myDOMNode),$this->myOwnerDocument);} function is_blank_node() {return ($this->myDOMNode->nodeType===XML_TEXT_NODE)&&preg_match('%^\s*$%',$this->myDOMNode->nodeValue);} function last_child() {return self::_newDOMElement($this->myDOMNode->lastChild,$this->myOwnerDocument);} function new_child($name,$content) { $mySubNode=$this->myDOMNode->ownerDocument->createElement($name); $mySubNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($content))); $this->myDOMNode->appendChild($mySubNode); return new php4DOMElement($mySubNode,$this->myOwnerDocument); } function next_sibling() {return self::_newDOMElement($this->myDOMNode->nextSibling,$this->myOwnerDocument);} function node_name() {return ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) ? $this->myDOMNode->localName : $this->myDOMNode->nodeName;} //Avoid namespace prefix for DOMElement function node_type() {return $this->myDOMNode->nodeType;} function node_value() {return $this->myDOMNode->nodeValue;} function owner_document() {return $this->myOwnerDocument;} function parent_node() {return self::_newDOMElement($this->myDOMNode->parentNode,$this->myOwnerDocument);} function prefix() {return $this->myDOMNode->prefix;} function previous_sibling() {return self::_newDOMElement($this->myDOMNode->previousSibling,$this->myOwnerDocument);} function remove_child($oldchild) {return self::_newDOMElement($this->myDOMNode->removeChild($oldchild->myDOMNode),$this->myOwnerDocument);} function replace_child($newnode,$oldnode) {return self::_newDOMElement($this->myDOMNode->replaceChild($this->_importNode($newnode),$oldnode->myDOMNode),$this->myOwnerDocument);} function replace_node($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->replaceChild($this->_importNode($newnode),$this->myDOMNode),$this->myOwnerDocument);} function set_content($text) {return $this->myDOMNode->appendChild($this->myDOMNode->ownerDocument->createTextNode(_entityDecode($text)));} //Entity problem reported by AL-DesignWorks 2007-09-07 //function set_name($name) {return $this->myOwnerDocument->renameNode($this->myDOMNode,$this->myDOMNode->namespaceURI,$name);} function set_namespace($uri,$prefix=null) {//Contributions by Daniel Walker 2006-09-08 $nsprefix=$this->myDOMNode->lookupPrefix($uri); if ($nsprefix==null) { $nsprefix= $prefix==null ? $nsprefix='a'.sprintf('%u',crc32($uri)) : $prefix; if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) { if (($prefix!=null)&&$this->myDOMNode->ownerElement->hasAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)&& ($this->myDOMNode->ownerElement->getAttributeNS('http://www.w3.org/2000/xmlns/',$nsprefix)!=$uri)) {//Remove namespace $parent=$this->myDOMNode->ownerElement; $parent->removeAttributeNode($this->myDOMNode); $parent->setAttribute($this->myDOMNode->localName,$this->myDOMNode->nodeValue); $this->myDOMNode=$parent->getAttributeNode($this->myDOMNode->localName); return; } $this->myDOMNode->ownerElement->setAttributeNS('http://www.w3.org/2000/xmlns/','xmlns:'.$nsprefix,$uri); } } if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) { $parent=$this->myDOMNode->ownerElement; $parent->removeAttributeNode($this->myDOMNode); $parent->setAttributeNS($uri,$nsprefix.':'.$this->myDOMNode->localName,$this->myDOMNode->nodeValue); $this->myDOMNode=$parent->getAttributeNodeNS($uri,$this->myDOMNode->localName); } elseif ($this->myDOMNode->nodeType===XML_ELEMENT_NODE) { $NewNode=$this->myDOMNode->ownerDocument->createElementNS($uri,$nsprefix.':'.$this->myDOMNode->localName); foreach ($this->myDOMNode->attributes as $n) $NewNode->appendChild($n->cloneNode(true)); foreach ($this->myDOMNode->childNodes as $n) $NewNode->appendChild($n->cloneNode(true)); $xpath=new DOMXPath($this->myDOMNode->ownerDocument); $myDOMNodeList=$xpath->query('namespace::*[name()!="xml"]',$this->myDOMNode); //Add old namespaces foreach ($myDOMNodeList as $n) $NewNode->setAttributeNS('http://www.w3.org/2000/xmlns/',$n->nodeName,$n->nodeValue); $this->myDOMNode->parentNode->replaceChild($NewNode,$this->myDOMNode); $this->myDOMNode=$NewNode; } } function unlink_node() { if ($this->myDOMNode->parentNode!=null) { if ($this->myDOMNode->nodeType===XML_ATTRIBUTE_NODE) $this->myDOMNode->parentNode->removeAttributeNode($this->myDOMNode); else $this->myDOMNode->parentNode->removeChild($this->myDOMNode); } } protected function _importNode($newnode) {return $this->myOwnerDocument===$newnode->myOwnerDocument ? $newnode->myDOMNode : $this->myOwnerDocument->myDOMNode->importNode($newnode->myDOMNode,true);} //To import DOMNode from another DOMDocument static function _newDOMElement($aDOMNode,$aOwnerDocument) {//Check the PHP5 DOMNode before creating a new associated PHP4 DOMNode wrapper if ($aDOMNode==null) return null; switch ($aDOMNode->nodeType) { case XML_ELEMENT_NODE: return new php4DOMElement($aDOMNode,$aOwnerDocument); case XML_TEXT_NODE: return new php4DOMText($aDOMNode,$aOwnerDocument); case XML_ATTRIBUTE_NODE: return new php4DOMAttr($aDOMNode,$aOwnerDocument); case XML_PI_NODE: return new php4DomProcessingInstruction($aDOMNode,$aOwnerDocument); default: return new php4DOMNode($aDOMNode,$aOwnerDocument); } } } class php4DomProcessingInstruction extends php4DOMNode { function data() {return $this->myDOMNode->data;} function target() {return $this->myDOMNode->target;} } class php4DOMText extends php4DOMNode { function __get($name) { if ($name==='tagname') return '#text'; else return parent::__get($name); } function tagname() {return '#text';} function set_content($text) {$this->myDOMNode->nodeValue=$text; return true;} } if (!defined('XPATH_NODESET')) { define('XPATH_UNDEFINED',0); define('XPATH_NODESET',1); define('XPATH_BOOLEAN',2); define('XPATH_NUMBER',3); define('XPATH_STRING',4); /*define('XPATH_POINT',5); define('XPATH_RANGE',6); define('XPATH_LOCATIONSET',7); define('XPATH_USERS',8); define('XPATH_XSLT_TREE',9);*/ } class php4DOMNodelist { private $myDOMNodelist; public $nodeset; public $type=XPATH_UNDEFINED; public $value; function php4DOMNodelist($aDOMNodelist,$aOwnerDocument) { if (!isset($aDOMNodelist)) return; elseif (is_object($aDOMNodelist)||is_array($aDOMNodelist)) { if ($aDOMNodelist->length>0) { $this->myDOMNodelist=$aDOMNodelist; $this->nodeset=array(); $this->type=XPATH_NODESET; $i=0; while ($node=$this->myDOMNodelist->item($i++)) $this->nodeset[]=php4DOMNode::_newDOMElement($node,$aOwnerDocument); } } elseif (is_int($aDOMNodelist)||is_float($aDOMNodelist)) { $this->type=XPATH_NUMBER; $this->value=$aDOMNodelist; } elseif (is_bool($aDOMNodelist)) { $this->type=XPATH_BOOLEAN; $this->value=$aDOMNodelist; } elseif (is_string($aDOMNodelist)) { $this->type=XPATH_STRING; $this->value=$aDOMNodelist; } } } class php4DOMXPath { public $myDOMXPath; private $myOwnerDocument; function php4DOMXPath($dom_document) { //TODO: If $dom_document is a DomElement, make that default $contextnode and modify XPath. Ex: '/test' $this->myOwnerDocument=$dom_document->myOwnerDocument; $this->myDOMXPath=new DOMXPath($this->myOwnerDocument->myDOMNode); } function xpath_eval($eval_str,$contextnode=null) { if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str); else $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str); $xp=new php4DOMNodelist($xp,$this->myOwnerDocument); return ($xp->type===XPATH_UNDEFINED) ? false : $xp; } function xpath_register_ns($prefix,$namespaceURI) {return $this->myDOMXPath->registerNamespace($prefix,$namespaceURI);} } if (extension_loaded('xsl')) {//See also: [url="http://alexandre.alapetite.fr/doc-alex/xslt-php4-php5/"]http://alexandre.alapetite.fr/doc-alex/xslt-php4-php5/[/url] function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));} function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);} function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));} class php4DomXsltStylesheet { private $myxsltProcessor; function php4DomXsltStylesheet($dom_document) { $this->myxsltProcessor=new xsltProcessor(); $this->myxsltProcessor->importStyleSheet($dom_document); } function process($dom_document,$xslt_parameters=array(),$param_is_xpath=false) { foreach ($xslt_parameters as $param=>$value) $this->myxsltProcessor->setParameter('',$param,$value); $myphp4DOMDocument=new php4DOMDocument(); $myphp4DOMDocument->myDOMNode=$this->myxsltProcessor->transformToDoc($dom_document->myDOMNode); return $myphp4DOMDocument; } function result_dump_file($dom_document,$filename) { $html=$dom_document->myDOMNode->saveHTML(); file_put_contents($filename,$html); return $html; } function result_dump_mem($dom_document) {return $dom_document->myDOMNode->saveHTML();} } } ?> Once you have done this add the following code to your index.php page require(DIR_MOBILE_INCLUDES . 'domxml-php4-to-php5.php'); Hope this help. YES!!!! it works!!! I have a little problem with some words, usually show good, like these words Nutrición Deportiva Cosmética Natural But... Alimentación ...show Alimentaci???? any idea? Thanks!! Quote Link to comment Share on other sites More sharing options...
smic717394 Posted July 16, 2009 Share Posted July 16, 2009 There is no help in this forum, nice contribution but kinda abandoned, nobody else notice that it doesn't actually WORKS? Did anybody actually bothered to test it in an iphone, if no navigate to your page from an iphone and go to a category that has more than one page of products, the page will crash and close, is this how you want your customers to leave the store? Quote Link to comment Share on other sites More sharing options...
bumbarash Posted August 5, 2009 Author Share Posted August 5, 2009 This is Release v2.0(beta) of iOSC - mobile version of OSCommerce for iPhone. Previous version of iOSC had to many compatibility problems because mobile files where located in separate subdirectory. This is different approach and all mobile files are located on the same catalog. Please , give it a try and let me know about any issues. Quote Link to comment Share on other sites More sharing options...
PiLLaO Posted August 5, 2009 Share Posted August 5, 2009 (edited) catalog/mobile/mobile_index.php doesn't exist. it will go to catalog/mobile_index.php?? running catalog/mobile_index.php show blank page with up menu Edit for blank page using "domxml-php4-to-php5.php" comment previusly for another partner in this forum solve the problem :) Bye!! Edited August 5, 2009 by PiLLaO Quote Link to comment Share on other sites More sharing options...
jholdersatx Posted August 6, 2009 Share Posted August 6, 2009 I've successfully gotten the code to work, now that I know it is presently running on top of the RC2, rather than milestone 2.2, that was important to know. The last things that I can't get to work, and am working on presently are: - mobile_index.php only shows the header, but nothing in the body, no category links present at all. - mobile_advanced_search_result.php link at the bottom does not function to "view more products". However if I can't get this to solve, I'll just set the sql query to be a lot higher to compensate, 100 should be sufficient, but if this also is a problem, then I'll set it up to 400. Quote Link to comment Share on other sites More sharing options...
PiLLaO Posted August 6, 2009 Share Posted August 6, 2009 I've successfully gotten the code to work, now that I know it is presently running on top of the RC2, rather than milestone 2.2, that was important to know. The last things that I can't get to work, and am working on presently are: - mobile_index.php only shows the header, but nothing in the body, no category links present at all. - mobile_advanced_search_result.php link at the bottom does not function to "view more products". However if I can't get this to solve, I'll just set the sql query to be a lot higher to compensate, 100 should be sufficient, but if this also is a problem, then I'll set it up to 400. To solve mobile_index.php problem, use this: http://www.oscommerce.com/forums/index.php?s=&...t&p=1415893 Bye! Quote Link to comment Share on other sites More sharing options...
jholdersatx Posted August 6, 2009 Share Posted August 6, 2009 Aye, well that was a simple solve. Still no luck with the ajax parsing of the "show more results" yet. Also, fyi: there's a hiccup in the code in mobile_products.php for the "PC SITE" link. Just omit: "DIR_MAIN_HTTP_CATALOG . " from line 28. Quote Link to comment Share on other sites More sharing options...
bumbarash Posted August 6, 2009 Author Share Posted August 6, 2009 PiLLaO, jholdersatx Thank you. Changes in v2.0c This is Release v2.0c(beta) of iOSC - mobile version of OSCommerce for iPhone. More errors in AJAX part resolved. Ajax i disable by default right now. To initialize AJAX go to catalog/mobile/includes/configure.php and replace last line with define ('AJAX_ENABLED', false); Bad link in PC Site button corrected. http://addons.oscommerce.com/info/6529 Quote Link to comment Share on other sites More sharing options...
PiLLaO Posted August 6, 2009 Share Posted August 6, 2009 In header, index y account go to "pc site", index.php, editing configure.php uncomment //define ('FILENAME_DEFAULT', 'mobile_index.php'); account, it will be changing in header.php <?php echo tep_mobile_link(FILENAME_ACCOUNT);?>'"> to <?php echo tep_mobile_link(FILENAME_MOBILE_ACCOUNT);?>'"> ??? When I click on a category, it's redirect to "pc site" Bye!! Quote Link to comment Share on other sites More sharing options...
jholdersatx Posted August 6, 2009 Share Posted August 6, 2009 The redirection might be intentional, seeing as currently, he's trying to run it in tandem with an existing shopping cart RC2. With the redirection in place for WAP broswers, or whichever. Meaning that, if you were on the mobile site on a pc, you would get taken to the pc version of the store, rather than if you were on the mobile site on a mobile phone, it would do the reverse. Quote Link to comment Share on other sites More sharing options...
bumbarash Posted August 7, 2009 Author Share Posted August 7, 2009 By default for WAP browsers I'm trying to redirect every page to mobile version (if exists) Logic is in mobile/includes/classes/mobile_redirect.php If you want to suppress redirect you call any page with $_GET['redirectCancelled'] == 'true' Quote Link to comment Share on other sites More sharing options...
jholdersatx Posted August 7, 2009 Share Posted August 7, 2009 There's some kind of glitch that I encountered though that I can't reproduce, when running on my pocket pc smartphone, on opera mini, I clicked on "pc store" as a link, and now it's just "stuck" in pc mode, it won't allow me to automatically re-enter wap mode, so much so that I'm just going to flush my changes and restart the whole installation. Quote Link to comment Share on other sites More sharing options...
jholdersatx Posted August 7, 2009 Share Posted August 7, 2009 mobile_about.php isn't referencing the proper variable, they're going to "FILENAME_CONDITIONS" but should be going to "FILENAME_MOBILE_CONDITIONS" Also header.php is linking to FILENAME_ACCOUNT instead of FILENAME_MOBILE_ACCOUNT, or the other way around, for uniformity's sake. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.