/**
  * Creates a new DeletedFileList object.
  */
 public function __construct()
 {
     parent::__construct();
     // categories
     $accessibleCategoryIDs = FilebaseCategory::getAccessibleCategoryIDs();
     if (!empty($accessibleCategoryIDs)) {
         $this->getConditionBuilder()->add('entry.entryID IN (SELECT entryID FROM filebase' . WCF_N . '_entry_to_category WHERE categoryID IN (?))', array($accessibleCategoryIDs));
     } else {
         $this->getConditionBuilder()->add('1=0');
     }
     $this->getConditionBuilder()->add('entry.isDeleted = ?', array(1));
 }
 /**
  * Creates a new WatchedEntryList object.
  */
 public function __construct()
 {
     parent::__construct();
     $categoryIDs = FilebaseCategory::getAccessibleCategoryIDs();
     if (empty($categoryIDs)) {
         $this->getConditionBuilder()->add('1=0');
     } else {
         $objectTypeID = UserObjectWatchHandler::getInstance()->getObjectTypeID('de.incendium.filebase.entry');
         // add conditions
         $this->sqlConditionJoins = "LEFT JOIN filebase" . WCF_N . "_entry entry ON (entry.entryID = user_object_watch.objectID)";
         $this->getConditionBuilder()->add('user_object_watch.objectTypeID = ?', array($objectTypeID));
         $this->getConditionBuilder()->add('user_object_watch.userID = ?', array(WCF::getUser()->userID));
         $this->getConditionBuilder()->add('entry.entryID IN (SELECT entryID FROM filebase' . WCF_N . '_entry_to_category WHERE categoryID IN (?))', array($categoryIDs));
         $this->getConditionBuilder()->add('entry.isDeleted = 0 AND entry.isDisabled = 0');
     }
 }
 /**
  * Creates a new AccessibleFileList object.
  */
 public function __construct()
 {
     parent::__construct();
     if ($this->applyCategoryFilter) {
         $accessibleCategoryIDs = FilebaseCategory::getAccessibleCategoryIDs();
         if (!empty($accessibleCategoryIDs)) {
             $this->getConditionBuilder()->add('entry.entryID IN (SELECT entryID FROM filebase' . WCF_N . '_entry_to_category WHERE categoryID IN (?))', array($accessibleCategoryIDs));
         } else {
             $this->getConditionBuilder()->add('1=0');
         }
     }
     if (!WCF::getSession()->getPermission('mod.filebase.canModerateEntry')) {
         $this->getConditionBuilder()->add('entry.isDisabled = 0');
     }
     if (!WCF::getSession()->getPermission('mod.filebase.canViewDeletedEntry')) {
         $this->getConditionBuilder()->add('entry.isDeleted = 0');
     }
     // apply language filter
     if (LanguageFactory::getInstance()->multilingualismEnabled() && count(WCF::getUser()->getLanguageIDs())) {
         $this->getConditionBuilder()->add('(entry.languageID IN (?) OR entry.languageID IS NULL)', array(WCF::getUser()->getLanguageIDs()));
     }
 }