API16

JUpdaterCollection/findUpdate

From Joomla! Documentation

< API16:JUpdaterCollection
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

The "API16" namespace is an archived namespace. This page contains information for a Joomla! version which is no longer supported. It exists only as a historical reference, it will not be improved and its content may be incomplete and/or contain broken links.

Syntax[edit]

findUpdate($options)
Parameter Name Default Value Description
$options

Defined in[edit]

libraries/joomla/updater/adapters/collection.php

Importing[edit]

jimport( 'joomla.updater.adapters.collection' );

Source Body[edit]

public function findUpdate($options)
{
        $url = $options['location'];
        $this->_update_site_id = $options['update_site_id'];
        if(substr($url, -4) != '.xml') {
                if(substr($url, -1) != '/') {
                        $url .= '/';
                }
                $url .= 'update.xml';
        }

        $this->base = new stdClass();
        $this->update_sites = Array();
        $this->updates = Array();
        $dbo =& $this->parent->getDBO();

        if (!($fp = @fopen($url, "r"))) {
                // TODO: Add a 'mark bad' setting here somehow
                JError::raiseWarning('101', JText::_('Update') .'::'. JText::_('Collection') .': '. JText::_('Could not open').' '. $url);
                return false;
        }

        $this->xml_parser = xml_parser_create('');
        xml_set_object($this->xml_parser, $this);
        xml_set_element_handler($this->xml_parser, '_startElement', '_endElement');
        //xml_set_character_data_handler($this->xml_parser, '_characterData');

        while ($data = fread($fp, 8192)) {
                if (!xml_parse($this->xml_parser, $data, feof($fp))) {
                        die(sprintf("XML error: %s at line %d",
                                                xml_error_string(xml_get_error_code($this->xml_parser)),
                                                xml_get_current_line_number($this->xml_parser)));
                }
        }
        // TODO: Decrement the bad counter if non-zero
        return Array('update_sites'=>$this->update_sites,'updates'=>$this->updates);
}



Examples[edit]

Code Examples[edit]