Exemple #1
0
    public static function findNewUpdateObject()
    {
        foreach (plugin::listPlugin() as $plugin) {
            $plugin_id = $plugin->getId();
            $update = self::byTypeAndLogicalId('plugin', $plugin_id);
            if (!is_object($update)) {
                $update = new update();
                $update->setLogicalId($plugin_id);
                $update->setType('plugin');
                $update->setLocalVersion(date('Y-m-d H:i:s'));
                $update->save();
            }
            $find = array();
            if (method_exists($plugin_id, 'listMarketObject')) {
                foreach ($plugin_id::listMarketObject() as $logical_id) {
                    $find[$logical_id] = true;
                    $update = self::byTypeAndLogicalId($plugin_id, $logical_id);
                    if (!is_object($update)) {
                        $update = new update();
                        $update->setLogicalId($logical_id);
                        $update->setType($plugin_id);
                        $update->setLocalVersion(date('Y-m-d H:i:s'));
                        $update->save();
                    }
                }
                foreach (self::byType($plugin_id) as $update) {
                    if (!isset($find[$update->getLogicalId()])) {
                        $update->remove();
                    }
                }
            } else {
                $values = array('type' => $plugin_id);
                $sql = 'DELETE FROM `update`
						WHERE type=:type';
                DB::Prepare($sql, $values, DB::FETCH_TYPE_ROW);
            }
        }
    }