Exemple #1
0
 /**
  * create Article instance from data supplied in $articleData
  *
  * @param array $articleData
  * @return Article
  */
 private static function createInstance(array $articleData)
 {
     $article = new self();
     // set identification
     $article->alias = $articleData['Alias'];
     $article->id = $articleData['articlesID'];
     // set category
     $article->category = ArticleCategory::getInstance($articleData['articlecategoriesID']);
     /*
      * set admin information (cast type explicitly to ensure lookup by adminID)
      * exceptions with invalid user ids are caught and ignored
      */
     if ($articleData['createdBy']) {
         try {
             $article->createdBy = User::getInstance((int) $articleData['createdBy']);
         } catch (\InvalidArgumentException $e) {
         } catch (UserException $e) {
         }
     }
     if ($articleData['updatedBy']) {
         try {
             $article->updatedBy = User::getInstance((int) $articleData['updatedBy']);
         } catch (\InvalidArgumentException $e) {
         } catch (UserException $e) {
         }
     }
     if ($articleData['publishedBy']) {
         try {
             $article->publishedBy = User::getInstance((int) $articleData['publishedBy']);
         } catch (\InvalidArgumentException $e) {
         } catch (UserException $e) {
         }
     }
     // set date information
     if (!empty($articleData['Display_from'])) {
         $article->displayFrom = new \DateTime($articleData['Display_from']);
     }
     if (!empty($articleData['Display_until'])) {
         $article->displayUntil = new \DateTime($articleData['Display_until']);
     }
     if (!empty($articleData['Article_Date'])) {
         $article->articleDate = new \DateTime($articleData['Article_Date']);
     }
     if (!empty($articleData['firstCreated'])) {
         $article->firstCreated = new \DateTime($articleData['firstCreated']);
     }
     if (!empty($articleData['lastUpdated'])) {
         $article->lastUpdated = new \DateTime($articleData['lastUpdated']);
     }
     // flags and sort
     $article->published = $articleData['published'];
     $article->customFlags = $articleData['customFlags'];
     $article->customSort = $articleData['customSort'];
     // set various text fields
     $article->setHeadline($articleData['Headline']);
     $article->setData($articleData);
     // backup values to check whether record was changed
     $article->previouslySavedValues = new \stdClass();
     $article->previouslySavedValues->headline = $article->headline;
     $article->previouslySavedValues->category = $article->category;
     $article->previouslySavedValues->data = $article->data;
     $article->previouslySavedValues->displayFrom = $article->displayFrom;
     $article->previouslySavedValues->displayUntil = $article->displayUntil;
     $article->previouslySavedValues->articleDate = $article->articleDate;
     $article->previouslySavedValues->published = $article->published;
     $article->previouslySavedValues->customFlags = $article->customFlags;
     $article->previouslySavedValues->customSort = $article->customSort;
     return $article;
 }
Exemple #2
0
 /**
  * get user instance which last updated database entry of metafile
  * the updater can be changed
  *
  * @return NULL|\vxPHP\User\User
  */
 public function getUpdatedBy()
 {
     if (is_null($this->updatedBy)) {
         // no user was stored with instance
         if (empty($this->data['updatedBy'])) {
             return NULL;
         } else {
             $this->createdBy = User::getInstance($this->data['updatedBy']);
         }
     }
     return $this->updatedBy;
 }
Exemple #3
0
    /**
     * get list of users belonging to given admingroup
     *
     * @param string $admingroup_alias
     * @param callback $callBackSort
     * @throws UserException
     *
     * @return array [User]
     */
    public static function getUsersBelongingToGroup($admingroup_alias, $callBackSort = NULL)
    {
        $users = array();
        $rows = Application::getInstance()->getDb()->doPreparedQuery('
			SELECT
				adminID
			FROM
				admin a
				INNER JOIN admingroups ag ON a.admingroupsID = ag.admingroupsID
			WHERE
				UPPER(ag.alias) = ?
			', array(strtoupper($admingroup_alias)));
        foreach ($rows as $r) {
            $users[] = User::getInstance($r['adminID']);
        }
        if (is_null($callBackSort)) {
            return $users;
        } else {
            if (is_callable($callBackSort)) {
                usort($users, $callBackSort);
                return $users;
            } else {
                if (is_callable("UserAbstract::{$callBackSort}")) {
                    usort($users, "UserAbstract::{$callBackSort}");
                    return $users;
                } else {
                    throw new UserException("'{$callBackSort}' is not callable.", UserException::SORT_CALLBACK_NOT_CALLABLE);
                }
            }
        }
    }