API16

JUpdaterCollection/findUpdate

From Joomla! Documentation

< API16:JUpdaterCollection

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]