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); } } }