当前位置: 首页>>代码示例>>PHP>>正文


PHP func_array_simpleflip函数代码示例

本文整理汇总了PHP中func_array_simpleflip函数的典型用法代码示例。如果您正苦于以下问题:PHP func_array_simpleflip函数的具体用法?PHP func_array_simpleflip怎么用?PHP func_array_simpleflip使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了func_array_simpleflip函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: InitComponentsList

 /**
  * Инициализация начального списка необходимых для загрузки компонентов
  */
 public function InitComponentsList()
 {
     if ($aList = Config::Get('components') and is_array($aList)) {
         func_array_simpleflip($aList, array());
         $this->aComponentsList = array_merge_recursive($this->aComponentsList, $aList);
     }
 }
开发者ID:vgrish,项目名称:livestreet-framework,代码行数:10,代码来源:Component.class.php

示例2: GetBlogsAdditionalData

 /**
  * Получает дополнительные данные(объекты) для блогов по их ID
  *
  */
 public function GetBlogsAdditionalData($aBlogId, $aAllowData = array('vote', 'owner' => array(), 'relation_user'))
 {
     func_array_simpleflip($aAllowData);
     if (!is_array($aBlogId)) {
         $aBlogId = array($aBlogId);
     }
     /**
      * Получаем блоги
      */
     $aBlogs = $this->GetBlogsByArrayId($aBlogId);
     /**
      * Формируем ID дополнительных данных, которые нужно получить
      */
     $aUserId = array();
     foreach ($aBlogs as $oBlog) {
         if (isset($aAllowData['owner'])) {
             $aUserId[] = $oBlog->getOwnerId();
         }
     }
     /**
      * Получаем дополнительные данные
      */
     $aBlogUsers = array();
     $aBlogsVote = array();
     $aUsers = isset($aAllowData['owner']) && is_array($aAllowData['owner']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['owner']) : $this->User_GetUsersAdditionalData($aUserId);
     if (isset($aAllowData['relation_user']) and $this->oUserCurrent) {
         $aBlogUsers = $this->GetBlogUsersByArrayBlog($aBlogId, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['vote']) and $this->oUserCurrent) {
         $aBlogsVote = $this->Vote_GetVoteByArray($aBlogId, 'blog', $this->oUserCurrent->getId());
     }
     /**
      * Добавляем данные к результату - списку блогов
      */
     foreach ($aBlogs as $oBlog) {
         if (isset($aUsers[$oBlog->getOwnerId()])) {
             $oBlog->setOwner($aUsers[$oBlog->getOwnerId()]);
         } else {
             $oBlog->setOwner(null);
             // или $oBlog->setOwner(new ModuleUser_EntityUser());
         }
         if (isset($aBlogUsers[$oBlog->getId()])) {
             $oBlog->setUserIsJoin(true);
             $oBlog->setUserIsAdministrator($aBlogUsers[$oBlog->getId()]->getIsAdministrator());
             $oBlog->setUserIsModerator($aBlogUsers[$oBlog->getId()]->getIsModerator());
         } else {
             $oBlog->setUserIsJoin(false);
             $oBlog->setUserIsAdministrator(false);
             $oBlog->setUserIsModerator(false);
         }
         if (isset($aBlogsVote[$oBlog->getId()])) {
             $oBlog->setVote($aBlogsVote[$oBlog->getId()]);
         } else {
             $oBlog->setVote(null);
         }
     }
     return $aBlogs;
 }
开发者ID:lifecom,项目名称:test,代码行数:62,代码来源:Blog.class.php

示例3: GetUsersAdditionalData

 /**
  * Получает дополнительные данные(объекты) для юзеров по их ID
  *
  */
 public function GetUsersAdditionalData($aUserId, $aAllowData = array('vote', 'session', 'friend'))
 {
     func_array_simpleflip($aAllowData);
     if (!is_array($aUserId)) {
         $aUserId = array($aUserId);
     }
     /**
      * Получаем юзеров
      */
     $aUsers = $this->GetUsersByArrayId($aUserId);
     /**
      * Получаем дополнительные данные
      */
     $aSessions = array();
     $aFriends = array();
     $aVote = array();
     if (isset($aAllowData['session'])) {
         $aSessions = $this->GetSessionsByArrayId($aUserId);
     }
     if (isset($aAllowData['friend']) and $this->oUserCurrent) {
         $aFriends = $this->GetFriendsByArray($aUserId, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['vote']) and $this->oUserCurrent) {
         $aVote = $this->Vote_GetVoteByArray($aUserId, 'user', $this->oUserCurrent->getId());
     }
     /**
      * Добавляем данные к результату
      */
     foreach ($aUsers as $oUser) {
         if (isset($aSessions[$oUser->getId()])) {
             $oUser->setSession($aSessions[$oUser->getId()]);
         } else {
             $oUser->setSession(null);
             // или $oUser->setSession(new ModuleUser_EntitySession());
         }
         if ($aFriends && isset($aFriends[$oUser->getId()])) {
             $oUser->setUserFriend($aFriends[$oUser->getId()]);
         } else {
             $oUser->setUserFriend(null);
         }
         if (isset($aVote[$oUser->getId()])) {
             $oUser->setVote($aVote[$oUser->getId()]);
         } else {
             $oUser->setVote(null);
         }
     }
     return $aUsers;
 }
开发者ID:lifecom,项目名称:Huddlebuddle,代码行数:52,代码来源:User.class.php

示例4: GetQuestionAdditionalData

 public function GetQuestionAdditionalData($aQuestionId, $aAllowData = null, $aOrder = null)
 {
     if (is_null($aAllowData)) {
         $aAllowData = array('owner' => array());
     }
     func_array_simpleflip($aAllowData);
     if (!is_array($aQuestionId)) {
         $aQuestionId = array($aQuestionId);
     }
     $aQuestion = $this->GetQuestionByArrayId($aQuestionId, $aOrder);
     $aCategoryId = array();
     foreach ($aQuestion as $oQuestion) {
         $aCategoryId[] = $oQuestion->getCategoryId();
     }
     $aCategories = $this->PluginReceptiondesk_Category_GetCategoryAdditionalData($aCategoryId);
     foreach ($aQuestion as $oQuestion) {
         if (isset($aCategories[$oQuestion->getCategoryId()])) {
             $oQuestion->setCategory($aCategories[$oQuestion->getCategoryId()]);
         } else {
             $oQuestion->setCategory(null);
         }
     }
     return $aQuestion;
 }
开发者ID:olegverstka,项目名称:kprf.dev,代码行数:24,代码来源:Question.class.php

示例5: GetItemsByFilter

 /**
  * Получить список сущностей по фильтру
  *
  * @param array $aFilter Фильтр
  * @param string|null $sEntityFull Название класса сущности
  * @return array
  */
 public function GetItemsByFilter($aFilter = array(), $sEntityFull = null)
 {
     if (is_null($aFilter)) {
         $aFilter = array();
     }
     $sEntityFull = $this->_NormalizeEntityRootName($sEntityFull);
     $aFilter = $this->_applyScopes($sEntityFull, $aFilter);
     /**
      * Хук для возможности изменения фильтра
      */
     $this->RunBehaviorHook('module_orm_GetItemsByFilter_before', array('aFilter' => &$aFilter, 'sEntityFull' => $sEntityFull), true);
     // Если параметр #cache указан и пуст, значит игнорируем кэширование для запроса
     if (array_key_exists('#cache', $aFilter) && !$aFilter['#cache']) {
         $aEntities = $this->oMapperORM->GetItemsByFilter($aFilter, $sEntityFull);
     } else {
         $aFilterCache = $aFilter;
         unset($aFilterCache['#with']);
         $sCacheKey = $sEntityFull . '_items_by_filter_' . serialize($aFilterCache);
         $aCacheTags = array($sEntityFull . '_save', $sEntityFull . '_delete');
         $iCacheTime = 60 * 60 * 24;
         // скорее лучше хранить в свойстве сущности, для возможности выборочного переопределения
         // переопределяем из параметров
         if (isset($aFilter['#cache'][0])) {
             $sCacheKey = $aFilter['#cache'][0];
         }
         if (isset($aFilter['#cache'][1])) {
             $aCacheTags = $aFilter['#cache'][1];
         }
         if (isset($aFilter['#cache'][2])) {
             $iCacheTime = $aFilter['#cache'][2];
         }
         if (false === ($aEntities = $this->Cache_Get($sCacheKey))) {
             $aEntities = $this->oMapperORM->GetItemsByFilter($aFilter, $sEntityFull);
             $this->Cache_Set($aEntities, $sCacheKey, $aCacheTags, $iCacheTime);
         }
     }
     /**
      * Если необходимо подцепить связанные данные
      */
     if (count($aEntities) and isset($aFilter['#with'])) {
         if (!is_array($aFilter['#with'])) {
             $aFilter['#with'] = array($aFilter['#with']);
         }
         /**
          * Приводим значение к единой форме ассоциативного массива: array('user'=>array(), 'topic'=>array('blog_id'=>123) )
          */
         func_array_simpleflip($aFilter['#with'], array());
         /**
          * Формируем список примари ключей
          */
         $aEntityPrimaryKeys = array();
         foreach ($aEntities as $oEntity) {
             $aEntityPrimaryKeys[] = $oEntity->_getPrimaryKeyValue();
         }
         $oEntityEmpty = Engine::GetEntity($sEntityFull);
         $aRelations = $oEntityEmpty->_getRelations();
         foreach ($aFilter['#with'] as $sRelationName => $aRelationFilter) {
             if (!isset($aRelations[$sRelationName])) {
                 continue;
             }
             /**
              * Если нужна дополнительная обработка через коллбек
              * Параметр в обработчике должен приниматься по ссылке
              */
             if (isset($aRelationFilter['#callback-filter']) and $aRelationFilter['#callback-filter'] instanceof Closure) {
                 $callback = $aRelationFilter['#callback-filter'];
                 $callback($aEntities, $aRelationFilter);
             }
             /**
              * Если необходимо, то выставляем сразу нужное значение и не делаем никаких запросов
              */
             if (isset($aRelationFilter['#value-set'])) {
                 foreach ($aEntities as $oEntity) {
                     $oEntity->_setData(array($sRelationName => $aRelationFilter['#value-set']));
                 }
                 continue;
             }
             /**
              * Чистим фильтр от коллбека, иначе он может пройти дальше по цепочке вызовов
              */
             unset($aRelationFilter['#callback-filter']);
             $sRelType = $aRelations[$sRelationName]['type'];
             $sRelEntity = $this->Plugin_GetRootDelegater('entity', $aRelations[$sRelationName]['rel_entity']);
             // получаем корневую сущность, без учета наследников
             $sRelKey = $aRelations[$sRelationName]['rel_key'];
             if (!array_key_exists($sRelationName, $aRelations) or !in_array($sRelType, array(EntityORM::RELATION_TYPE_BELONGS_TO, EntityORM::RELATION_TYPE_HAS_ONE, EntityORM::RELATION_TYPE_HAS_MANY, EntityORM::RELATION_TYPE_MANY_TO_MANY))) {
                 throw new Exception("The entity <{$sEntityFull}> not have relation <{$sRelationName}>");
             }
             /**
              * Делаем общий запрос по всем ключам
              */
             $oRelEntityEmpty = Engine::GetEntity($sRelEntity);
             $sRelModuleName = Engine::GetModuleName($sRelEntity);
//.........这里部分代码省略.........
开发者ID:vgrish,项目名称:livestreet-framework,代码行数:101,代码来源:ModuleORM.class.php

示例6: GetTopicsAdditionalData

 /**
  * Получает дополнительные данные(объекты) для топиков по их ID
  *
  * @param array $aTopicId Список ID топиков
  * @param array|null $aAllowData Список типов дополнительных данных, которые нужно подключать к топикам
  * @return array
  */
 public function GetTopicsAdditionalData($aTopicId, $aAllowData = null)
 {
     if (is_null($aAllowData)) {
         $aAllowData = array('user' => array(), 'blog' => array('owner' => array(), 'relation_user'), 'vote', 'favourite', 'comment_new', 'properties');
     }
     func_array_simpleflip($aAllowData);
     if (!is_array($aTopicId)) {
         $aTopicId = array($aTopicId);
     }
     /**
      * Получаем "голые" топики
      */
     $aTopics = $this->GetTopicsByArrayId($aTopicId);
     /**
      * Формируем ID дополнительных данных, которые нужно получить
      */
     $aUserId = array();
     $aBlogId = array();
     foreach ($aTopics as $oTopic) {
         if (isset($aAllowData['user'])) {
             $aUserId[] = $oTopic->getUserId();
         }
         if (isset($aAllowData['blog'])) {
             $aBlogId = array_merge($aBlogId, $oTopic->getBlogIds());
         }
     }
     /**
      * Получаем дополнительные данные
      */
     $aTopicsVote = array();
     $aFavouriteTopics = array();
     $aTopicsRead = array();
     $aUsers = isset($aAllowData['user']) && is_array($aAllowData['user']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['user']) : $this->User_GetUsersAdditionalData($aUserId);
     $aBlogs = isset($aAllowData['blog']) && is_array($aAllowData['blog']) ? $this->Blog_GetBlogsAdditionalData($aBlogId, $aAllowData['blog']) : $this->Blog_GetBlogsAdditionalData($aBlogId);
     if (isset($aAllowData['vote']) and $this->oUserCurrent) {
         $aTopicsVote = $this->Vote_GetVoteByArray($aTopicId, 'topic', $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['favourite']) and $this->oUserCurrent) {
         $aFavouriteTopics = $this->GetFavouriteTopicsByArray($aTopicId, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['comment_new']) and $this->oUserCurrent) {
         $aTopicsRead = $this->GetTopicsReadByArray($aTopicId, $this->oUserCurrent->getId());
     }
     /**
      * Добавляем данные к результату - списку топиков
      */
     foreach ($aTopics as $oTopic) {
         if (isset($aUsers[$oTopic->getUserId()])) {
             $oTopic->setUser($aUsers[$oTopic->getUserId()]);
         } else {
             $oTopic->setUser(null);
             // или $oTopic->setUser(new ModuleUser_EntityUser());
         }
         $aBlogsTopic = array();
         foreach ($oTopic->getBlogIds() as $iBlogId) {
             if (isset($aBlogs[$iBlogId])) {
                 $aBlogsTopic[] = $aBlogs[$iBlogId];
             }
         }
         $oTopic->setBlogs($aBlogsTopic);
         if (isset($aTopicsVote[$oTopic->getId()])) {
             $oTopic->setVote($aTopicsVote[$oTopic->getId()]);
         } else {
             $oTopic->setVote(null);
         }
         if (isset($aFavouriteTopics[$oTopic->getId()])) {
             $oTopic->setFavourite($aFavouriteTopics[$oTopic->getId()]);
         } else {
             $oTopic->setFavourite(null);
         }
         if (isset($aTopicsRead[$oTopic->getId()])) {
             $oTopic->setCountCommentNew($oTopic->getCountComment() - $aTopicsRead[$oTopic->getId()]->getCommentCountLast());
             $oTopic->setDateRead($aTopicsRead[$oTopic->getId()]->getDateRead());
         } else {
             $oTopic->setCountCommentNew(0);
             $oTopic->setDateRead(date("Y-m-d H:i:s"));
         }
     }
     /**
      * Цепляем дополнительные поля
      */
     if (isset($aAllowData['properties'])) {
         $this->Property_RewriteGetItemsByFilter($aTopics, array('#properties' => true));
     }
     return $aTopics;
 }
开发者ID:pinguo-liguo,项目名称:livestreet,代码行数:93,代码来源:Topic.class.php

示例7: GetTopicsAdditionalData

 /**
  * Получает дополнительные данные(объекты) для топиков по их ID
  *
  * @param array $aTopicId	Список ID топиков
  * @param array|null $aAllowData Список типов дополнительных данных, которые нужно подключать к топикам
  * @return array
  */
 public function GetTopicsAdditionalData($aTopicId, $aAllowData = null)
 {
     if (is_null($aAllowData)) {
         $aAllowData = array('user' => array(), 'blog' => array('owner' => array(), 'relation_user'), 'vote', 'favourite', 'comment_new');
     }
     func_array_simpleflip($aAllowData);
     if (!is_array($aTopicId)) {
         $aTopicId = array($aTopicId);
     }
     /**
      * Получаем "голые" топики
      */
     $aTopics = $this->GetTopicsByArrayId($aTopicId);
     /**
      * Формируем ID дополнительных данных, которые нужно получить
      */
     $aUserId = array();
     $aBlogId = array();
     $aTopicIdQuestion = array();
     $aPhotoMainId = array();
     foreach ($aTopics as $oTopic) {
         if (isset($aAllowData['user'])) {
             $aUserId[] = $oTopic->getUserId();
         }
         if (isset($aAllowData['blog'])) {
             $aBlogId[] = $oTopic->getBlogId();
         }
         if ($oTopic->getType() == 'question') {
             $aTopicIdQuestion[] = $oTopic->getId();
         }
         if ($oTopic->getType() == 'photoset' and $oTopic->getPhotosetMainPhotoId()) {
             $aPhotoMainId[] = $oTopic->getPhotosetMainPhotoId();
         }
     }
     /**
      * Получаем дополнительные данные
      */
     $aTopicsVote = array();
     $aFavouriteTopics = array();
     $aTopicsQuestionVote = array();
     $aTopicsRead = array();
     $aUsers = isset($aAllowData['user']) && is_array($aAllowData['user']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['user']) : $this->User_GetUsersAdditionalData($aUserId);
     $aBlogs = isset($aAllowData['blog']) && is_array($aAllowData['blog']) ? $this->Blog_GetBlogsAdditionalData($aBlogId, $aAllowData['blog']) : $this->Blog_GetBlogsAdditionalData($aBlogId);
     if (isset($aAllowData['vote']) and $this->oUserCurrent) {
         $aTopicsVote = $this->Vote_GetVoteByArray($aTopicId, 'topic', $this->oUserCurrent->getId());
         $aTopicsQuestionVote = $this->GetTopicsQuestionVoteByArray($aTopicIdQuestion, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['favourite']) and $this->oUserCurrent) {
         $aFavouriteTopics = $this->GetFavouriteTopicsByArray($aTopicId, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['comment_new']) and $this->oUserCurrent) {
         $aTopicsRead = $this->GetTopicsReadByArray($aTopicId, $this->oUserCurrent->getId());
     }
     $aPhotosetMainPhotos = $this->GetTopicPhotosByArrayId($aPhotoMainId);
     /**
      * Добавляем данные к результату - списку топиков
      */
     foreach ($aTopics as $oTopic) {
         if (isset($aUsers[$oTopic->getUserId()])) {
             $oTopic->setUser($aUsers[$oTopic->getUserId()]);
         } else {
             $oTopic->setUser(null);
             // или $oTopic->setUser(new ModuleUser_EntityUser());
         }
         if (isset($aBlogs[$oTopic->getBlogId()])) {
             $oTopic->setBlog($aBlogs[$oTopic->getBlogId()]);
         } else {
             $oTopic->setBlog(null);
             // или $oTopic->setBlog(new ModuleBlog_EntityBlog());
         }
         if (isset($aTopicsVote[$oTopic->getId()])) {
             $oTopic->setVote($aTopicsVote[$oTopic->getId()]);
         } else {
             $oTopic->setVote(null);
         }
         if (isset($aFavouriteTopics[$oTopic->getId()])) {
             $oTopic->setFavourite($aFavouriteTopics[$oTopic->getId()]);
         } else {
             $oTopic->setFavourite(null);
         }
         if (isset($aTopicsQuestionVote[$oTopic->getId()])) {
             $oTopic->setUserQuestionIsVote(true);
         } else {
             $oTopic->setUserQuestionIsVote(false);
         }
         if (isset($aTopicsRead[$oTopic->getId()])) {
             $oTopic->setCountCommentNew($oTopic->getCountComment() - $aTopicsRead[$oTopic->getId()]->getCommentCountLast());
             $oTopic->setDateRead($aTopicsRead[$oTopic->getId()]->getDateRead());
         } else {
             $oTopic->setCountCommentNew(0);
             $oTopic->setDateRead(date("Y-m-d H:i:s"));
         }
         if (isset($aPhotosetMainPhotos[$oTopic->getPhotosetMainPhotoId()])) {
//.........这里部分代码省略.........
开发者ID:lunavod,项目名称:bunker_stable,代码行数:101,代码来源:Topic.class.php

示例8: GetCommentsAdditionalData

 /**
  * Получает дополнительные данные(объекты) для комментов по их ID
  *
  * @param array $aCommentId Список ID комментов
  * @param array|null $aAllowData Список типов дополнительных данных, которые нужно получить для комментариев
  * @return array
  */
 public function GetCommentsAdditionalData($aCommentId, $aAllowData = null)
 {
     if (is_null($aAllowData)) {
         $aAllowData = array('vote', 'target', 'favourite', 'user' => array());
     }
     func_array_simpleflip($aAllowData);
     if (!is_array($aCommentId)) {
         $aCommentId = array($aCommentId);
     }
     /**
      * Получаем комменты
      */
     $aComments = $this->GetCommentsByArrayId($aCommentId);
     /**
      * Формируем ID дополнительных данных, которые нужно получить
      */
     $aUserId = array();
     $aTargetId = array('topic' => array(), 'talk' => array());
     foreach ($aComments as $oComment) {
         if (isset($aAllowData['user'])) {
             $aUserId[] = $oComment->getUserId();
         }
         if (isset($aAllowData['target'])) {
             $aTargetId[$oComment->getTargetType()][] = $oComment->getTargetId();
         }
     }
     /**
      * Получаем дополнительные данные
      */
     $aUsers = isset($aAllowData['user']) && is_array($aAllowData['user']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['user']) : $this->User_GetUsersAdditionalData($aUserId);
     /**
      * В зависимости от типа target_type достаем данные
      */
     $aTargets = array();
     //$aTargets['topic']=isset($aAllowData['target']) && is_array($aAllowData['target']) ? $this->Topic_GetTopicsAdditionalData($aTargetId['topic'],$aAllowData['target']) : $this->Topic_GetTopicsAdditionalData($aTargetId['topic']);
     $aTargets['topic'] = $this->Topic_GetTopicsAdditionalData($aTargetId['topic'], array('blog' => array('owner' => array()), 'user' => array()));
     $aVote = array();
     if (isset($aAllowData['vote']) and $this->oUserCurrent) {
         $aVote = $this->Vote_GetVoteByArray($aCommentId, 'comment', $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['favourite']) and $this->oUserCurrent) {
         $aFavouriteComments = $this->Favourite_GetFavouritesByArray($aCommentId, 'comment', $this->oUserCurrent->getId());
     }
     /**
      * Добавляем данные к результату
      */
     foreach ($aComments as $oComment) {
         if (isset($aUsers[$oComment->getUserId()])) {
             $oComment->setUser($aUsers[$oComment->getUserId()]);
         } else {
             $oComment->setUser(null);
             // или $oComment->setUser(new ModuleUser_EntityUser());
         }
         if (isset($aTargets[$oComment->getTargetType()][$oComment->getTargetId()])) {
             $oComment->setTarget($aTargets[$oComment->getTargetType()][$oComment->getTargetId()]);
         } else {
             $oComment->setTarget(null);
         }
         if (isset($aVote[$oComment->getId()])) {
             $oComment->setVote($aVote[$oComment->getId()]);
         } else {
             $oComment->setVote(null);
         }
         if (isset($aFavouriteComments[$oComment->getId()])) {
             $oComment->setIsFavourite(true);
         } else {
             $oComment->setIsFavourite(false);
         }
     }
     return $aComments;
 }
开发者ID:cbrspc,项目名称:LIVESTREET-1-DISTRIB,代码行数:78,代码来源:Comment.class.php

示例9: GetTalksAdditionalData

 /**
  * Получает дополнительные данные(объекты) для разговоров по их ID
  *
  * @param array $aTalkId	Список ID сообщений
  * @param array|null $aAllowData	Список дополнительных типов подгружаемых в объект
  * @return array
  */
 public function GetTalksAdditionalData($aTalkId, $aAllowData = null)
 {
     if (is_null($aAllowData)) {
         $aAllowData = array('user', 'talk_user', 'favourite', 'comment_last');
     }
     func_array_simpleflip($aAllowData);
     if (!is_array($aTalkId)) {
         $aTalkId = array($aTalkId);
     }
     /**
      * Получаем "голые" разговоры
      */
     $aTalks = $this->GetTalksByArrayId($aTalkId);
     /**
      * Формируем ID дополнительных данных, которые нужно получить
      */
     if (isset($aAllowData['favourite']) and $this->oUserCurrent) {
         $aFavouriteTalks = $this->Favourite_GetFavouritesByArray($aTalkId, 'talk', $this->oUserCurrent->getId());
     }
     $aUserId = array();
     $aCommentLastId = array();
     foreach ($aTalks as $oTalk) {
         if (isset($aAllowData['user'])) {
             $aUserId[] = $oTalk->getUserId();
         }
         if (isset($aAllowData['comment_last']) and $oTalk->getCommentIdLast()) {
             $aCommentLastId[] = $oTalk->getCommentIdLast();
         }
     }
     /**
      * Получаем дополнительные данные
      */
     $aTalkUsers = array();
     $aCommentLast = array();
     $aUsers = isset($aAllowData['user']) && is_array($aAllowData['user']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['user']) : $this->User_GetUsersAdditionalData($aUserId);
     if (isset($aAllowData['talk_user']) and $this->oUserCurrent) {
         $aTalkUsers = $this->GetTalkUsersByArray($aTalkId, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['comment_last'])) {
         $aCommentLast = $this->Comment_GetCommentsAdditionalData($aCommentLastId, array());
     }
     /**
      * Добавляем данные к результату - списку разговоров
      */
     foreach ($aTalks as $oTalk) {
         if (isset($aUsers[$oTalk->getUserId()])) {
             $oTalk->setUser($aUsers[$oTalk->getUserId()]);
         } else {
             $oTalk->setUser(null);
             // или $oTalk->setUser(new ModuleUser_EntityUser());
         }
         if (isset($aTalkUsers[$oTalk->getId()])) {
             $oTalk->setTalkUser($aTalkUsers[$oTalk->getId()]);
         } else {
             $oTalk->setTalkUser(null);
         }
         if (isset($aFavouriteTalks[$oTalk->getId()])) {
             $oTalk->setIsFavourite(true);
         } else {
             $oTalk->setIsFavourite(false);
         }
         if ($oTalk->getCommentIdLast() and isset($aCommentLast[$oTalk->getCommentIdLast()])) {
             $oTalk->setCommentLast($aCommentLast[$oTalk->getCommentIdLast()]);
         } else {
             $oTalk->setCommentLast(null);
         }
     }
     return $aTalks;
 }
开发者ID:lunavod,项目名称:bunker_stable,代码行数:76,代码来源:Talk.class.php

示例10: GetWallAdditionalData

 /**
  * Получение записей по ID с дополнительные связаными данными
  *
  * @param $aWallId
  * @param array $aAllowData
  *
  * @return array
  */
 public function GetWallAdditionalData($aWallId, $aAllowData = array('user' => array(), 'reply'))
 {
     func_array_simpleflip($aAllowData);
     if (!is_array($aWallId)) {
         $aWallId = array($aWallId);
     }
     $aWalls = $this->GetWallsByArrayId($aWallId);
     /**
      * Формируем ID дополнительных данных, которые нужно получить
      */
     $aUserId = array();
     $aWallReplyId = array();
     foreach ($aWalls as $oWall) {
         if (isset($aAllowData['user'])) {
             $aUserId[] = $oWall->getUserId();
         }
         /**
          * Список последних записей хранится в строке через запятую
          */
         if (isset($aAllowData['reply']) and is_null($oWall->getPid()) and $oWall->getLastReply()) {
             $aReply = explode(',', trim($oWall->getLastReply()));
             $aWallReplyId = array_merge($aWallReplyId, $aReply);
         }
     }
     /**
      * Получаем дополнительные данные
      */
     $aUsers = isset($aAllowData['user']) && is_array($aAllowData['user']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['user']) : $this->User_GetUsersAdditionalData($aUserId);
     $aWallReply = array();
     if (isset($aAllowData['reply']) and count($aWallReplyId)) {
         $aWallReply = $this->GetWallAdditionalData($aWallReplyId, array('user' => array()));
     }
     /**
      * Добавляем данные к результату
      */
     foreach ($aWalls as $oWall) {
         if (isset($aUsers[$oWall->getUserId()])) {
             $oWall->setUser($aUsers[$oWall->getUserId()]);
         } else {
             $oWall->setUser(null);
             // или $oWall->setUser(new ModuleUser_EntityUser());
         }
         $aReply = array();
         if ($oWall->getLastReply()) {
             $aReplyId = explode(',', trim($oWall->getLastReply()));
             foreach ($aReplyId as $iReplyId) {
                 if (isset($aWallReply[$iReplyId])) {
                     $aReply[] = $aWallReply[$iReplyId];
                 }
             }
         }
         $oWall->setLastReplyWall($aReply);
     }
     return $aWalls;
 }
开发者ID:narush,项目名称:livestreet,代码行数:63,代码来源:Wall.class.php

示例11: GetPostsAdditionalData

 /**
  * Получает дополнительные данные(объекты) для постов
  *
  * @param	array $aPosts	Список топиков
  * @param	array|null $aAllowData Список дополнительных данных, которые нужно подключать к топикам
  * @return	array
  */
 public function GetPostsAdditionalData($aPosts, $aAllowData = null)
 {
     if (is_null($aAllowData)) {
         $aAllowData = array('vote');
     }
     if (is_string($aAllowData)) {
         $aAllowData = explode(',', $aAllowData);
     }
     func_array_simpleflip($aAllowData);
     $sOne = false;
     if (!is_array($aPosts)) {
         $sOne = $aPosts->getId();
         $aPosts = array($sOne => $aPosts);
     }
     $aPostId = array();
     $aUsersId = array();
     /**
      * Формируем ID дополнительных данных, которые нужно получить
      */
     foreach ($aPosts as $oPost) {
         $aPostId[] = $oPost->getId();
         $aUsersId[$oPost->getUserId()] = 1;
     }
     /**
      * Получаем дополнительные данные
      */
     $aVote = array();
     $aUsers = array();
     if (isset($aAllowData['vote']) && $this->oUserCurrent) {
         $aVote = $this->Vote_GetVoteByArray($aPostId, 'forum_post', $this->oUserCurrent->getId());
     }
     if ($aUsersId) {
         //добавь кеш
         $aUsers = $this->GetUserItemsByArrayUserId(array_keys($aUsersId));
     }
     /**
      * Добавляем данные к результату - списку топиков
      */
     foreach ($aPosts as $oPost) {
         if (isset($aVote[$oPost->getId()])) {
             $oPost->setVote($aVote[$oPost->getId()]);
         } else {
             $oPost->setVote(null);
         }
         if (isset($aUsers[$oPost->getUserId()])) {
             $oPost->setUserForum($aUsers[$oPost->getUserId()]);
         } else {
             $oPost->setUserForum(null);
         }
     }
     return $sOne ? $aPosts[$sOne] : $aPosts;
 }
开发者ID:Kreddik,项目名称:lsplugin-forum,代码行数:59,代码来源:Forum.class.php

示例12: GetImagesAdditionalData

 /**
  * Get images additional data
  *
  * @param array $aImagesId
  * @param array $aAllowData
  * @return array
  */
 public function GetImagesAdditionalData($aImagesId, $aAllowData = array('user' => array(), 'vote', 'favourite', 'comment_new'))
 {
     func_array_simpleflip($aAllowData);
     if (!is_array($aImagesId)) {
         $aImagesId = array($aImagesId);
     }
     $aImages = $this->GetImagesByArrayId($aImagesId);
     $aUserId = array();
     foreach ($aImages as $oImage) {
         /* @var $oImage PluginLsgallery_ModuleImage_EntityImage */
         if (isset($aAllowData['user'])) {
             $aUserId[] = $oImage->getUserId();
         }
     }
     $aUsers = isset($aAllowData['user']) && is_array($aAllowData['user']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['user']) : $this->User_GetUsersAdditionalData($aUserId);
     if (isset($aAllowData['favourite']) && $this->oUserCurrent) {
         $aFavouriteImages = $this->GetFavouriteImagesByArray($aImagesId, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['comment_new']) && $this->oUserCurrent) {
         $aImagesRead = $this->GetImagesReadByArray($aImagesId, $this->oUserCurrent->getId());
     }
     if (isset($aAllowData['vote']) && $this->oUserCurrent) {
         $aImagesVote = $this->Vote_GetVoteByArray($aImagesId, 'image', $this->oUserCurrent->getId());
     }
     foreach ($aImages as $oImage) {
         if (isset($aUsers[$oImage->getUserId()])) {
             $oImage->setUser($aUsers[$oImage->getUserId()]);
         } else {
             $oImage->setUser(null);
         }
         if (isset($aFavouriteImages[$oImage->getId()])) {
             $oImage->setIsFavourite(true);
         } else {
             $oImage->setIsFavourite(false);
         }
         if (isset($aImagesRead[$oImage->getId()])) {
             $oImage->setCountCommentNew($oImage->getCountComment() - $aImagesRead[$oImage->getId()]->getCommentCountLast());
             $oImage->setDateRead($aImagesRead[$oImage->getId()]->getDateRead());
         } else {
             $oImage->setCountCommentNew(0);
             $oImage->setDateRead(date("Y-m-d H:i:s"));
         }
         if (isset($aImagesVote[$oImage->getId()])) {
             $oImage->setVote($aImagesVote[$oImage->getId()]);
         } else {
             $oImage->setVote(null);
         }
     }
     return $aImages;
 }
开发者ID:webnitros,项目名称:ls-plugin_lsgallery,代码行数:57,代码来源:Image.class.php

示例13: GetAlbumsAdditionalData

 /**
  * Get albums additional data
  *
  * @todo Подтягивание картинок
  * @param array $aAlbumsId
  * @param array $aAllowData
  * @return array
  */
 public function GetAlbumsAdditionalData($aAlbumsId, $aAllowData = array('user' => array(), 'cover' => array()))
 {
     func_array_simpleflip($aAllowData);
     if (!is_array($aAlbumsId)) {
         $aAlbumsId = array($aAlbumsId);
     }
     $aAlbums = $this->GetAlbumsByArrayId($aAlbumsId);
     $aUserId = array();
     $aImageId = array();
     foreach ($aAlbums as $oAlbum) {
         /* @var $oAlbum PluginLsgallery_ModuleAlbum_EntityAlbum */
         if (isset($aAllowData['user'])) {
             $aUserId[] = $oAlbum->getUserId();
         }
         if (isset($aAllowData['cover'])) {
             $aImageId[] = $oAlbum->getCoverId();
         }
     }
     $aUsers = isset($aAllowData['user']) && is_array($aAllowData['user']) ? $this->User_GetUsersAdditionalData($aUserId, $aAllowData['user']) : $this->User_GetUsersAdditionalData($aUserId);
     $aImages = isset($aAllowData['cover']) && is_array($aAllowData['cover']) ? $this->PluginLsgallery_Image_GetImagesAdditionalData($aImageId, $aAllowData['cover']) : $this->PluginLsgallery_Image_GetImagesAdditionalData($aUserId);
     foreach ($aAlbums as $oAlbum) {
         if (isset($aUsers[$oAlbum->getUserId()])) {
             $oAlbum->setUser($aUsers[$oAlbum->getUserId()]);
         } else {
             $oAlbum->setUser(null);
         }
         if (isset($aImages[$oAlbum->getCoverId()])) {
             $oAlbum->setCover($aImages[$oAlbum->getCoverId()]);
         } else {
             $oAlbum->setCover(null);
         }
     }
     return $aAlbums;
 }
开发者ID:webnitros,项目名称:ls-plugin_lsgallery,代码行数:42,代码来源:Album.class.php


注:本文中的func_array_simpleflip函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。