コード例 #1
0
ファイル: undelete.php プロジェクト: nemein/openpsa
 private function _purge()
 {
     $purged_size = 0;
     if (!$this->_request_data['midcom_dba_classname']) {
         // No DBA class for the type, use plain Midgard undelete API
         foreach ($_POST['undelete'] as $guid) {
             $qb = new midgard_query_builder($this->type);
             $qb->add_constraint('guid', '=', $guid);
             $qb->include_deleted();
             $results = $qb->execute();
             foreach ($results as $object) {
                 if ($object->purge()) {
                     $purged_size += $object->metadata->size;
                 }
             }
         }
     } else {
         // Delegate purging to DBA
         $purged_size = midcom_baseclasses_core_dbobject::purge($_POST['undelete'], $this->type);
     }
     if ($purged_size) {
         midcom::get('uimessages')->add($this->_l10n->get('midgard.admin.asgard'), sprintf($this->_l10n->get('in total %s purged'), midcom_helper_misc::filesize_to_string($purged_size)), 'info');
     }
 }
コード例 #2
0
ファイル: fetch.php プロジェクト: nemein/openpsa
 /**
  * Cleans up old, removed items from feeds
  * @param Array $item Feed item as provided by MagpieRSS
  */
 function clean($items)
 {
     if ($this->_feed->keepremoved) {
         // This feed is set up so that we retain items removed from array
         return false;
     }
     // Create array of item GUIDs
     $item_guids = array();
     foreach ($items as $item) {
         $item_guids[] = $item['guid'];
     }
     // Find articles resulting from this feed
     $qb = midcom_db_article::new_query_builder();
     $feed_category = md5($this->_feed->url);
     $qb->add_constraint('extra1', 'LIKE', "%|feed:{$feed_category}|%");
     $local_items = $qb->execute_unchecked();
     $guid_property = $this->_guid_property;
     $purge_guids = array();
     foreach ($local_items as $item) {
         if (!in_array($item->{$guid_property}, $item_guids)) {
             // This item has been removed from the feed.
             if (midcom::get('componentloader')->is_installed('net.nemein.favourites') && midcom::get('componentloader')->load_graceful('net.nemein.favourites')) {
                 // If it has been favorited keep it
                 $qb = net_nemein_favourites_favourite_dba::new_query_builder();
                 $qb->add_constraint('objectGuid', '=', $item->guid);
                 if ($qb->count_unchecked() > 0) {
                     continue;
                     // Skip deleting this one
                 }
             }
             $purge_guids[] = $item->guid;
             $item->delete();
         }
     }
     midcom_baseclasses_core_dbobject::purge($purge_guids, 'midgard_article');
     return true;
 }