本文整理汇总了PHP中E::ModuleMresource方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleMresource方法的具体用法?PHP E::ModuleMresource怎么用?PHP E::ModuleMresource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleMresource方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: EventAdd
/**
* Страница создания письма
*/
protected function EventAdd()
{
$this->sMenuSubItemSelect = 'add';
E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('talk_menu_inbox_create'));
// * Получаем список друзей
$aUsersFriend = E::ModuleUser()->GetUsersFriend($this->oUserCurrent->getId());
if ($aUsersFriend['collection']) {
E::ModuleViewer()->Assign('aUsersFriend', $aUsersFriend['collection']);
}
// * Проверяем отправлена ли форма с данными
if (!F::isPost('submit_talk_add')) {
return false;
}
// * Проверка корректности полей формы
if (!$this->checkTalkFields()) {
return false;
}
// * Проверяем разрешено ли отправлять инбокс по времени
if (!E::ModuleACL()->CanSendTalkTime($this->oUserCurrent)) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('talk_time_limit'), E::ModuleLang()->Get('error'));
return false;
}
// * Отправляем письмо
if ($oTalk = E::ModuleTalk()->SendTalk(E::ModuleText()->Parser(strip_tags(F::GetRequestStr('talk_title'))), E::ModuleText()->Parser(F::GetRequestStr('talk_text')), $this->oUserCurrent, $this->aUsersId)) {
E::ModuleMresource()->CheckTargetTextForImages('talk', $oTalk->getId(), $oTalk->getText());
R::Location(R::GetPath('talk') . 'read/' . $oTalk->getId() . '/');
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'));
return R::Action('error');
}
}
示例2: GetOriginalHash
/**
* Returns hash of original local image
* If mresource isn't a local image then returns ordinary hash
*
* @return string
*/
public function GetOriginalHash()
{
$sPropKey = '-original-hash';
if (!$this->isProp($sPropKey)) {
$sHash = $this->GetHash();
if (($sPathUrl = $this->GetPathUrl()) && ($sOriginalUrl = $this->GetOriginalPathUrl())) {
if ($sOriginalUrl !== $sPathUrl) {
$sHash = E::ModuleMresource()->CalcUrlHash($sOriginalUrl);
}
}
$this->setProp($sPropKey, $sHash);
}
return $this->getProp($sPropKey);
}
示例3: GetMresourcesIdByUrl
/**
* @param string[] $aUrls
* @param int|null $nUserId
*
* @return array
*/
public function GetMresourcesIdByUrl($aUrls, $nUserId = null)
{
if (!is_array($aUrls)) {
$aUrls = array($aUrls);
} else {
$aUrls = array_unique($aUrls);
}
$aHash = array();
foreach ($aUrls as $sLink) {
$aHash[] = md5(E::ModuleMresource()->NormalizeUrl($sLink));
}
return $this->GetMresourcesIdByHashUrl($aHash, $nUserId);
}
示例4: smarty_function_img
/**
* Выводит изображение и прикрепляет его ко временному объекту
*
* @param $aParams
* @param Smarty $oSmarty
* @return string
*/
function smarty_function_img($aParams, &$oSmarty = NULL)
{
// Пропущен тип объекта
if (!isset($aParams['attr']['target-type'])) {
trigger_error("img: missing 'target-type' parameter", E_USER_WARNING);
return '';
}
// Пропущен идентификатор объекта
if (!isset($aParams['attr']['target-id'])) {
trigger_error("img: missing 'target-id' parameter", E_USER_WARNING);
return '';
}
// Получим тип объекта
$sTargetType = $aParams['attr']['target-type'];
unset($aParams['attr']['target-type']);
// Получим ид объекта
$iTargetId = intval($aParams['attr']['target-id']);
unset($aParams['attr']['target-id']);
// Получим ид объекта
$sCrop = isset($aParams['attr']['crop']) ? $aParams['attr']['crop'] : FALSE;
unset($aParams['attr']['crop']);
// Получим изображение по временному ключу, или создадим этот ключ
if (($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && E::IsUser()) {
// Продлим куку
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, $sTargetTmp, 'P1D', FALSE);
// Получим предыдущее изображение и если оно было, установим в качестве текущего
// Получим и удалим все ресурсы
$aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, $iTargetId, E::UserId());
if ($aMresourceRel) {
/** @var ModuleMresource_EntityMresource $oResource */
$oMresource = array_shift($aMresourceRel);
if ($oMresource) {
if ($sCrop) {
$aParams['attr']['src'] = E::ModuleUploader()->ResizeTargetImage($oMresource->GetUrl(), $sCrop);
} else {
$aParams['attr']['src'] = $oMresource->GetUrl();
}
$oSmarty->assign("bImageIsTemporary", TRUE);
}
}
} else {
// Куки нет, это значит, что пользователь первый раз создает этот тип
// и старой картинки просто нет
if ($iTargetId == '0') {
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, F::RandomStr(), 'P1D', FALSE);
} else {
E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP);
$sImage = E::ModuleUploader()->GetTargetImageUrl($sTargetType, $iTargetId, $sCrop);
if ($sImage) {
$aParams['attr']['src'] = $sImage;
$oSmarty->assign("bImageIsTemporary", TRUE);
}
}
}
// Формируем строку атрибутов изображения
$sAttr = '';
if (isset($aParams['attr']) && is_array($aParams['attr'])) {
foreach ($aParams['attr'] as $sAttrName => $sAttrValue) {
$sAttr .= ' ' . $sAttrName . '="' . $sAttrValue . '"';
}
}
// Сформируем тег изображения
$sImageTag = '<img ' . $sAttr . '/>';
return $sImageTag;
}
示例5: CallbackCheckLinks
/**
* Учет ссылок в тексте
*
* @param string $sTag
* @param array $aParams
* @param string $sContent
* @param string $sText
*
* @return string
*/
public function CallbackCheckLinks($sTag, $aParams, $sContent, $sText)
{
if (isset($this->aCheckTagLinks[$sTag])) {
if (isset($aParams[$this->aCheckTagLinks[$sTag]['link']])) {
$sLinkAttr = $this->aCheckTagLinks[$sTag]['link'];
$sLink = E::ModuleMresource()->NormalizeUrl($aParams[$sLinkAttr]);
$nType = $this->aCheckTagLinks[$sTag]['type'];
$this->aLinks[] = array('type' => $nType, 'link' => $sLink);
$sText = '<' . $sTag . ' ';
foreach ($aParams as $sKey => $sVal) {
if ($sKey == $sLinkAttr && $this->aCheckTagLinks[$sTag]['restoreFunc']) {
$sVal = call_user_func($this->aCheckTagLinks[$sTag]['restoreFunc'], $sLink);
}
$sText .= $sKey . '="' . $sVal . '" ';
}
if (is_null($sContent)) {
$sText .= '/>';
} else {
$sText .= '>' . $sContent . '</' . $sTag . '>';
}
}
}
return $sText;
}
示例6: EventSort
/**
* Меняет сортировку элементов фотосета
*/
public function EventSort()
{
// * Устанавливаем формат Ajax ответа
E::ModuleViewer()->SetResponseAjax('json');
// Проверяем, целевой объект и права на его редактирование
if (!($oTarget = E::ModuleUploader()->CheckAccessAndGetTarget($sTargetType = F::GetRequest('target', FALSE), $sTargetId = F::GetRequest('target_id', FALSE)))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return;
}
if (!($aOrder = F::GetRequest('order', FALSE))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return;
}
if (!is_array($aOrder)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return;
}
E::ModuleMresource()->UpdateSort(array_flip($aOrder), $sTargetType, $sTargetId);
E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('uploader_sort_changed'));
}
示例7: GetUserProfileStats
/**
* Returns stats of user publications and favourites
*
* @param int|object $xUser
*
* @return int[]
*/
public function GetUserProfileStats($xUser)
{
if (is_object($xUser)) {
$iUserId = $xUser->getId();
} else {
$iUserId = intval($xUser);
}
$iCountTopicFavourite = E::ModuleTopic()->GetCountTopicsFavouriteByUserId($iUserId);
$iCountCommentFavourite = E::ModuleComment()->GetCountCommentsFavouriteByUserId($iUserId);
$iCountTopics = E::ModuleTopic()->GetCountTopicsPersonalByUser($iUserId, 1);
$iCountComments = E::ModuleComment()->GetCountCommentsByUserId($iUserId, 'topic');
$iCountWallRecords = E::ModuleWall()->GetCountWall(array('wall_user_id' => $iUserId, 'pid' => null));
$iImageCount = E::ModuleMresource()->GetCountImagesByUserId($iUserId);
$iCountUserNotes = $this->GetCountUserNotesByUserId($iUserId);
$iCountUserFriends = $this->GetCountUsersFriend($iUserId);
$aUserPublicationStats = array('favourite_topics' => $iCountTopicFavourite, 'favourite_comments' => $iCountCommentFavourite, 'count_topics' => $iCountTopics, 'count_comments' => $iCountComments, 'count_usernotes' => $iCountUserNotes, 'count_wallrecords' => $iCountWallRecords, 'count_images' => $iImageCount, 'count_friends' => $iCountUserFriends);
$aUserPublicationStats['count_created'] = $aUserPublicationStats['count_topics'] + $aUserPublicationStats['count_comments'] + $aUserPublicationStats['count_images'];
if ($iUserId == E::UserId()) {
$aUserPublicationStats['count_created'] += $aUserPublicationStats['count_usernotes'];
}
$aUserPublicationStats['count_favourites'] = $aUserPublicationStats['favourite_topics'] + $aUserPublicationStats['favourite_comments'];
return $aUserPublicationStats;
}
示例8: SnippetPhotoset
/**
* Возвращает html-код фотосета
*
* @param $aData
* @return bool
*/
public function SnippetPhotoset($aData)
{
// Попытаемся определить откуда вызывается сниппет фотосета
// поскольку нужно точно определить целевой объект и его ид
// Редактируется топик.
// Получим его ид. и по нему поднимем необходимый фотосет
$aAdminMatches = array();
if (preg_match('~content\\/edit\\/(\\d+)\\/~', R::GetControllerPath(), $aMatches) || preg_match('~admin\\/content-pages\\/edit\\/(\\d+)\\/~', R::GetControllerPath(), $aAdminMatches)) {
// Найдем топик, из которого будем брать фотосет
$iTopicId = (int) isset($aData['params']['topic']) ? $aData['params']['topic'] : ($aAdminMatches ? FALSE : $aMatches[1]);
// Странно, но топик не нашли - завернём сниппет
if (!($oTopic = E::ModuleTopic()->GetTopicById($iTopicId))) {
return FALSE;
}
// Проверим, можно ли пользователю читать этот топик, а то вдруг
// он запросил картинки из топика закрытого блога - а так нельзя
if (!E::ModuleACL()->IsAllowShowBlog($oTopic->getBlog(), E::User())) {
return FALSE;
}
// Попытаемся найти фотосет
/** @var ModuleMresource_EntityMresource[] $aPhotos */
if (!(($aPhotos = E::ModuleMresource()->GetMresourcesRelByTarget('photoset', $oTopic->getId())) && is_array($aPhotos) && count($aPhotos) > 0)) {
return FALSE;
}
// Фотосет нашли, теперь из него нужно выбрать только те фото,
// которые выбрал пользователь в параметрах from и to
$iFrom = isset($aData['params']['from']) ? $aData['params']['from'] : 0;
$iFrom = (int) str_replace(array('last', 'first'), array(count($aPhotos), 0), $iFrom);
// Пользователи считают картинки с первой, а не с нулевой
if ($iFrom) {
$iFrom -= 1;
}
// Если указана длина, то правый предел игнорируем
if ($iCount = (int) isset($aData['params']['count']) ? $aData['params']['count'] : FALSE) {
$iTo = $iFrom + $iCount - 1;
} else {
$iTo = isset($aData['params']['to']) ? $aData['params']['to'] : count($aPhotos);
$iTo = (int) str_replace(array('last', 'first'), array(count($aPhotos), 0), $iTo);
if ($iTo) {
$iTo -= 1;
}
}
// Пользователь ошибочно указал диапазон. выдумывать ничего не будем,
// просто не выведем фотосет
if ($iTo - $iFrom < 0) {
return FALSE;
}
// Сбросим ключи набора фото, так лучше считать диапазон
$aPhotos = array_values($aPhotos);
foreach ($aPhotos as $k => $v) {
if ($k < $iFrom || $k > $iTo) {
unset($aPhotos[$k]);
}
}
if (!$aPhotos) {
return FALSE;
}
$sPosition = $iTopicId = (int) isset($aData['params']['position']) ? $aData['params']['position'] : 'center';
if (!in_array($sPosition, array('left', 'right'))) {
$sPosition = 'center';
}
// Получим html-код сниппета
$aVars = array('oTopic' => $oTopic, 'aPhotos' => $aPhotos, 'sPosition' => $sPosition, 'sPhotosetHash' => md5(serialize($aData['params'])));
$aData['result'] = trim(E::ModuleViewer()->Fetch('tpls/snippets/snippet.photoset.tpl', $aVars));
return $aData['result'];
}
return FALSE;
}
示例9: smarty_function_imgs
/**
* Выводит изображение и прикрепляет его ко временному объекту
*
* @param $aParams
* @param Smarty $oSmarty
* @return string
*/
function smarty_function_imgs($aParams, &$oSmarty = NULL)
{
// Пропущен тип объекта
if (!isset($aParams['target-type'])) {
trigger_error("img: missing 'target-type' parameter", E_USER_WARNING);
return '';
}
// Пропущен идентификатор объекта
if (!isset($aParams['target-id'])) {
trigger_error("img: missing 'target-id' parameter", E_USER_WARNING);
return '';
}
// Получим тип объекта
$sTargetType = $aParams['target-type'];
unset($aParams['target-type']);
// Получим ид объекта
$iTargetId = intval($aParams['target-id']);
unset($aParams['target-id']);
// Получим параметры обрезки объекта
$sCrop = isset($aParams['crop']) ? $aParams['crop'] : FALSE;
unset($aParams['crop']);
// Получим ид объекта
$sTemplate = isset($aParams['template']) ? $aParams['template'] : FALSE;
unset($aParams['template']);
// Получим изображение по временному ключу, или создадим этот ключ
$aParams['src'] = array();
if (($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && E::IsUser()) {
// Продлим куку
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, $sTargetTmp, 'P1D', FALSE);
} else {
// Куки нет, это значит, что пользователь первый раз создает этот тип
// и старой картинки просто нет
if ($iTargetId == '0') {
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, F::RandomStr(), 'P1D', FALSE);
} else {
E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP);
}
}
// Получим предыдущее изображение и если оно было, установим в качестве текущего
// Получим и удалим все ресурсы
$aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, $iTargetId, E::UserId());
if ($aMresourceRel && is_array($aMresourceRel)) {
/** @var ModuleMresource_EntityMresource $oResource */
foreach ($aMresourceRel as $oMresource) {
if ($sCrop) {
$aParams['src'][$oMresource->getMresourceId()] = array('url' => E::ModuleUploader()->ResizeTargetImage($oMresource->GetUrl(), $sCrop), 'cover' => $oMresource->IsCover());
} else {
$aParams['src'][$oMresource->getMresourceId()] = array('url' => $oMresource->GetUrl(), 'cover' => $oMresource->IsCover());
}
$oSmarty->assign("bHasImage", TRUE);
}
}
// Создадим массив картинок
$sItems = '';
if ($aParams['src']) {
foreach ($aParams['src'] as $sID => $aData) {
$sItems .= str_replace(array('ID', 'uploader_item_SRC', 'MARK_AS_PREVIEW'), array($sID, $aData['url'], $aData['cover'] ? E::ModuleLang()->Get('topic_photoset_is_preview') : E::ModuleLang()->Get('topic_photoset_mark_as_preview')), $sTemplate);
}
}
return $sItems;
}
示例10: EventShutdown
/**
* Выполняется при завершении работы экшена
*
*/
public function EventShutdown()
{
$iUserId = E::UserId();
// Get stats of various user publications topics, comments, images, etc. and stats of favourites
$aProfileStats = E::ModuleUser()->GetUserProfileStats($iUserId);
// Получим информацию об изображениях пользователя
/** @var ModuleMresource_EntityMresourceCategory[] $aUserImagesInfo */
$aUserImagesInfo = E::ModuleMresource()->GetAllImageCategoriesByUserId($iUserId);
E::ModuleViewer()->Assign('oUserProfile', E::User());
E::ModuleViewer()->Assign('aProfileStats', $aProfileStats);
E::ModuleViewer()->Assign('aUserImagesInfo', $aUserImagesInfo);
// Old style skin compatibility
E::ModuleViewer()->Assign('iCountTopicUser', $aProfileStats['count_topics']);
E::ModuleViewer()->Assign('iCountCommentUser', $aProfileStats['count_comments']);
E::ModuleViewer()->Assign('iCountTopicFavourite', $aProfileStats['favourite_topics']);
E::ModuleViewer()->Assign('iCountCommentFavourite', $aProfileStats['favourite_comments']);
E::ModuleViewer()->Assign('iCountNoteUser', $aProfileStats['count_usernotes']);
E::ModuleViewer()->Assign('iCountWallUser', $aProfileStats['count_wallrecords']);
E::ModuleViewer()->Assign('iPhotoCount', $aProfileStats['count_images']);
E::ModuleViewer()->Assign('iCountCreated', $aProfileStats['count_created']);
E::ModuleViewer()->Assign('iCountFavourite', $aProfileStats['count_favourites']);
E::ModuleViewer()->Assign('iCountFriendsUser', $aProfileStats['count_friends']);
// * Загружаем в шаблон необходимые переменные
E::ModuleViewer()->Assign('sMenuItemSelect', $this->sMenuItemSelect);
E::ModuleViewer()->Assign('sMenuSubItemSelect', $this->sMenuSubItemSelect);
E::ModuleHook()->Run('action_shutdown_settings');
}
示例11: getPhotosetPhotos
/**
* Возвращает фотографии из фотосета топика
*
* @param int|null $iFromId ID с которого начинать выборку
* @param int|null $iCount Количество
*
* @return ModuleTopic_EntityTopicPhoto[]
*/
public function getPhotosetPhotos($iFromId = null, $iCount = null)
{
$iPhotosCount = $this->getPhotosetCount();
if (!$iPhotosCount) {
return array();
}
$aPhotos = E::ModuleMresource()->GetMresourcesRelByTarget('photoset', $this->getId());
$aResult = array();
if ($aPhotos && ($iFromId || $iCount)) {
$iCntSet = -1;
// Сравнение должно идти по ид. ресурса, а не по ид.
// картинки
foreach ($aPhotos as $oPhoto) {
if ($oPhoto->getMresourceId() >= $iFromId) {
if (++$iCntSet >= $iCount) {
break;
}
$aResult[$oPhoto->getMresourceId()] = $oPhoto;
}
}
} else {
$aResult = $aPhotos;
}
return $aResult;
}
示例12: UpdateComment
/**
* Обновляет коммент
*
* @param ModuleComment_EntityComment $oComment Объект комментария
*
* @return bool
*/
public function UpdateComment(ModuleComment_EntityComment $oComment)
{
if ($this->oMapper->UpdateComment($oComment)) {
// Освежим хранилище картинок
E::ModuleMresource()->CheckTargetTextForImages($oComment->getTargetType() . '_comment', $oComment->getId(), $oComment->getText());
//чистим зависимые кеши
E::ModuleCache()->CleanByTags(array("comment_update", "comment_update_{$oComment->getTargetType()}_{$oComment->getTargetId()}"));
E::ModuleCache()->Delete("comment_{$oComment->getId()}");
return true;
}
return false;
}
示例13: buildMresource
public function buildMresource()
{
$oMresource = E::GetEntity('Mresource_MresourceRel');
$oMresource->SetLink(false);
$oMresource->SetType(ModuleMresource::TYPE_IMAGE | ModuleMresource::TYPE_PHOTO);
$oMresource->SetUrl(E::ModuleMresource()->NormalizeUrl($this->GetPath()));
return $oMresource;
}
示例14: EventShutdown
/**
* Обработка завершения работу экшена
*/
public function EventShutdown()
{
if (!E::User()) {
return;
}
$iCountTalkFavourite = E::ModuleTalk()->GetCountTalksFavouriteByUserId($this->oUserCurrent->getId());
E::ModuleViewer()->Assign('iCountTalkFavourite', $iCountTalkFavourite);
$iUserId = E::UserId();
// Get stats of various user publications topics, comments, images, etc. and stats of favourites
$aProfileStats = E::ModuleUser()->GetUserProfileStats($iUserId);
// Получим информацию об изображениях пользователя
/** @var ModuleMresource_EntityMresourceCategory[] $aUserImagesInfo */
$aUserImagesInfo = E::ModuleMresource()->GetAllImageCategoriesByUserId($iUserId);
E::ModuleViewer()->Assign('oUserProfile', E::User());
E::ModuleViewer()->Assign('aProfileStats', $aProfileStats);
E::ModuleViewer()->Assign('aUserImagesInfo', $aUserImagesInfo);
// Old style skin compatibility
E::ModuleViewer()->Assign('iCountTopicUser', $aProfileStats['count_topics']);
E::ModuleViewer()->Assign('iCountCommentUser', $aProfileStats['count_comments']);
E::ModuleViewer()->Assign('iCountTopicFavourite', $aProfileStats['favourite_topics']);
E::ModuleViewer()->Assign('iCountCommentFavourite', $aProfileStats['favourite_comments']);
E::ModuleViewer()->Assign('iCountNoteUser', $aProfileStats['count_usernotes']);
E::ModuleViewer()->Assign('iCountWallUser', $aProfileStats['count_wallrecords']);
E::ModuleViewer()->Assign('iPhotoCount', $aProfileStats['count_images']);
E::ModuleViewer()->Assign('iCountCreated', $aProfileStats['count_created']);
E::ModuleViewer()->Assign('iCountFavourite', $aProfileStats['count_favourites']);
E::ModuleViewer()->Assign('iCountFriendsUser', $aProfileStats['count_friends']);
E::ModuleViewer()->Assign('sMenuSubItemSelect', $this->sMenuSubItemSelect);
E::ModuleViewer()->Assign('sMenuSubItemSelect', $this->sMenuSubItemSelect);
// * Передаем константы состояний участников разговора
E::ModuleViewer()->Assign('TALK_USER_ACTIVE', ModuleTalk::TALK_USER_ACTIVE);
E::ModuleViewer()->Assign('TALK_USER_DELETE_BY_SELF', ModuleTalk::TALK_USER_DELETE_BY_SELF);
E::ModuleViewer()->Assign('TALK_USER_DELETE_BY_AUTHOR', ModuleTalk::TALK_USER_DELETE_BY_AUTHOR);
}
示例15: getPhotosetMainPhoto
/**
* Returns main photo in photoset
*
* @return ModuleTopic_EntityTopicPhoto|null
*/
public function getPhotosetMainPhoto($bFirst = FALSE)
{
// Топика ещё нет, вернём дефолтное значение (null)
if (!$this->getId()) {
return NULL;
}
$aResult = E::ModuleMresource()->GetMresourcesByFilter(array('target_type' => 'photoset', 'target_id' => $this->getId(), 'type' => ModuleMresource::TYPE_PHOTO_PRIMARY), 1, 1);
if ($aResult && ($oMresource = array_shift($aResult['collection']))) {
/** @var ModuleMresource_EntityMresource $oMresource */
return $oMresource;
}
return NULL;
}