public function onBeforeRender() { parent::onBeforeRender(); $groupId = $this->vars["groupId"]; $cover = GHEADER_BOL_Service::getInstance()->findCoverByGroupId($groupId); if ($cover === null) { $this->setVisible(false); return; } $staticUrl = OW::getPluginManager()->getPlugin('gheader')->getStaticUrl(); OW::getDocument()->addStyleSheet($staticUrl . 'gheader.css'); $src = GHEADER_BOL_Service::getInstance()->getCoverUrl($cover); $this->assign('src', $src); $settings = $cover->getSettings(); $canvasHeight = $settings['canvas']['height']; $canvasWidth = $settings['canvas']['width']; $css = $settings['css']; if (!empty($settings['position']['top'])) { $css['top'] = $this->calcPercent($settings['position']['top'], $canvasHeight) . '%'; } if (!empty($settings['position']['left'])) { $css['left'] = $this->calcPercent($settings['position']['left'], $canvasWidth) . '%'; } $cssStr = ''; foreach ($css as $k => $v) { $cssStr .= $k . ': ' . $v . '; '; } $this->assign('imageCss', $cssStr); $this->assign("scale", $settings['canvas']['height'] / $settings['canvas']['width'] * 100); }
public function __construct($groupId) { parent::__construct(); $cover = GHEADER_BOL_Service::getInstance()->findCoverByGroupId($groupId); if (empty($cover)) { $this->assign('error', OW::getLanguage()->text('gheader', 'cover_not_found')); return; } $group = GROUPS_BOL_Service::getInstance()->findGroupById($cover->groupId); $src = GHEADER_BOL_Service::getInstance()->getCoverUrl($cover); $settings = $cover->getSettings(); $height = $settings['dimensions']['height']; $width = $settings['dimensions']['width']; $top = 0; if ($height < self::MIN_HEIGHT) { $top = (self::MIN_HEIGHT - $height) / 2; } $this->assign('src', $src); $this->assign('top', $top); $this->assign('dimensions', $settings['dimensions']); $userId = OW::getUser()->getId(); $cmtParams = new BASE_CommentsParams('gheader', GHEADER_CLASS_CommentsBridge::ENTITY_TYPE); $cmtParams->setEntityId($cover->id); $cmtParams->setAddComment(GHEADER_BOL_Service::getInstance()->isUserCanInteract($userId, $group->id)); $cmtParams->setOwnerId($group->userId); $cmtParams->setDisplayType(BASE_CommentsParams::DISPLAY_TYPE_TOP_FORM_WITH_PAGING); $photoCmts = new BASE_CMP_Comments($cmtParams); $this->addComponent('comments', $photoCmts); }
/** * Returns class instance * * @return GHEADER_BOL_Service */ public static function getInstance() { if (null === self::$classInstance) { self::$classInstance = new self(); } return self::$classInstance; }
public function removeCover($coverData) { $groupId = (int) $coverData['groupId']; $cover = $this->service->findCoverByGroupId($groupId, GHEADER_BOL_Cover::STATUS_ACTIVE); $this->service->deleteCover($cover); $message = OW::getLanguage()->text('gheader', 'cover_remove_success'); return array('message' => $message, 'src' => null, 'data' => array('position' => array('top' => 0, 'left' => 0))); }
public function __construct($groupId) { parent::__construct(); $cover = GHEADER_BOL_Service::getInstance()->findCoverByGroupId($groupId); if ($cover === null) { $this->setVisible(false); return; } $staticUrl = OW::getPluginManager()->getPlugin('gheader')->getStaticUrl(); OW::getDocument()->addStyleSheet($staticUrl . 'gheader.css'); $uniqId = uniqid('gheader-'); $this->assign('uniqId', $uniqId); $js = UTIL_JsGenerator::newInstance()->jQueryEvent('#' . $uniqId, 'click', 'OW.ajaxFloatBox("GHEADER_CMP_CoverView", [e.data.groupId], { layout: "empty", top: 50 }); return false;', array('e'), array('groupId' => $groupId)); OW::getDocument()->addOnloadScript($js); $src = GHEADER_BOL_Service::getInstance()->getCoverUrl($cover); $this->assign('src', $src); $settings = $cover->getSettings(); $canvasHeight = $settings['canvas']['height']; $canvasWidth = $settings['canvas']['width']; $imageHeight = $settings['dimensions']['height']; $imageWidth = $settings['dimensions']['width']; $itemCanvasHeight = $canvasHeight * self::ITEM_WIDTH / $canvasWidth; $tmp = $canvasWidth * $imageHeight / $imageWidth; $css = $settings['css']; if ($tmp >= $canvasHeight) { $itemHeight = $this->scale($imageWidth, $imageHeight, self::ITEM_WIDTH); $coverHeight = $this->scale($settings['dimensions']['width'], $settings['dimensions']['height'], $canvasWidth); $k = $coverHeight / $itemHeight; $css['top'] = $settings['position']['top'] / $k . 'px'; } else { $itemWidth = $this->scale($imageHeight, $imageWidth, $itemCanvasHeight); $coverWidth = $this->scale($imageHeight, $imageWidth, $canvasHeight); $k = $coverWidth / $itemWidth; $css['left'] = $settings['position']['left'] / $k . 'px'; } $cssStr = ''; foreach ($css as $k => $v) { $cssStr .= $k . ': ' . $v . '; '; } $this->assign('imageCss', $cssStr); $this->assign('height', $itemCanvasHeight); }
public function getCover() { $permissions = $this->getPemissions(); $cover = $permissions['view'] ? $this->service->findCoverByGroupId($this->groupId) : null; if ($cover === null) { return array('hasCover' => false, 'src' => null, 'data' => array(), 'css' => ''); } $data = $cover->getSettings(); $css = empty($data['css']) ? array() : $data['css']; if (!empty($data['position']['top'])) { $css['top'] = $data['position']['top'] . 'px;'; } if (!empty($data['position']['left'])) { $css['left'] = $data['position']['left'] . 'px;'; } $cssStr = ''; foreach ($css as $k => $v) { $cssStr .= $k . ': ' . $v . '; '; } return array('hasCover' => true, 'src' => $this->service->getCoverUrl($cover), 'data' => $data, 'css' => $cssStr); }
private function getBoxParmList($groupId) { $settings = GHEADER_BOL_Service::getInstance()->getConfigList($groupId); $settings['type'] = $settings['wrap_in_box'] ? '' : 'empty'; return $settings; }
public function onActionUpdate(OW_Event $event) { $params = $event->getParams(); $data = $event->getData(); if ($params['entityType'] != GHEADER_CLASS_CommentsBridge::ENTITY_TYPE) { return; } $cover = GHEADER_BOL_Service::getInstance()->findCoverById($params['entityId']); if ($cover === null) { return; } $data['params'] = empty($data['params']) ? array() : $data['params']; $group = GROUPS_BOL_Service::getInstance()->findGroupById($cover->groupId); $data['params']['visibility'] = $this->getVisibility($group); $data['params']['postOnUserFeed'] = $this->getPostOnUserFeed($group); $event->setData($data); }
private function triggerAction(OW_Event $event, $add) { $params = $event->getParams(); $data = $event->getData(); $coverId = $params['id']; $cover = GHEADER_BOL_Service::getInstance()->findCoverById($coverId); $group = GROUPS_BOL_Service::getInstance()->findGroupById($cover->groupId); if (empty($group)) { return; } $userId = $group->userId; $groupUrl = GROUPS_BOL_Service::getInstance()->getGroupUrl($group); $groupTitle = UTIL_String::truncate($group->title, 100, '...'); $groupImage = GROUPS_BOL_Service::getInstance()->getGroupImageUrl($group); $avatars = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($userId)); $avatar = $avatars[$userId]; $previewImage = array('src' => $groupImage, 'url' => $groupUrl); $notificationParams = array('pluginKey' => $this->plugin->getKey(), 'action' => self::ACTION_ADD, 'entityType' => self::TYPE_ADD, 'entityId' => $cover->groupId, 'userId' => null, 'time' => time()); $groupEmbed = '<a href="' . $groupUrl . '">' . $groupTitle . '</a>'; $notificationData = array('string' => array('key' => $add ? 'gheader+notifications_cover_add' : 'gheader+notifications_cover_change', 'vars' => array('user' => '<a href="' . $avatar['url'] . '">' . $avatar['title'] . '</a>', 'group' => $groupEmbed)), 'avatar' => $avatar, 'contentImage' => $previewImage, 'url' => $groupUrl); $userIds = GROUPS_BOL_Service::getInstance()->findGroupUserIdList($group->id); foreach ($userIds as $uid) { if ($uid == $userId) { continue; } $notificationParams['userId'] = $uid; $event = new OW_Event('notifications.add', $notificationParams, $notificationData); OW::getEventManager()->trigger($event); } }
public function onCoverAdd(OW_Event $event) { if (!$this->isActive()) { return; } $params = $event->getParams(); $coverPath = $params['path']; $groupId = $params['groupId']; $saveToPhoto = GHEADER_BOL_Service::getInstance()->getConfig($groupId, 'saveToPhoto'); if (!$saveToPhoto) { return; } $albumName = GHEADER_BOL_Service::getInstance()->getConfig($groupId, 'albumName'); $group = GROUPS_BOL_Service::getInstance()->findGroupById($groupId); if (empty($group)) { return; } $userId = $group->userId; $data = $event->getData(); if (!empty($data['photoId'])) { return; } $photoId = $this->addPhoto($userId, $albumName, $coverPath, null, null, false); if ($photoId === null) { return; } if ($data !== null) { $data['photoId'] = $photoId; } $event->setData($data); }