示例#1
0
 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);
 }
示例#2
0
 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);
 }
示例#3
0
文件: service.php 项目: vazahat/dudex
 /**
  * Returns class instance
  *
  * @return GHEADER_BOL_Service
  */
 public static function getInstance()
 {
     if (null === self::$classInstance) {
         self::$classInstance = new self();
     }
     return self::$classInstance;
 }
示例#4
0
文件: header.php 项目: vazahat/dudex
 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)));
 }
示例#5
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);
 }
示例#6
0
文件: header.php 项目: vazahat/dudex
 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);
 }
示例#7
0
 private function getBoxParmList($groupId)
 {
     $settings = GHEADER_BOL_Service::getInstance()->getConfigList($groupId);
     $settings['type'] = $settings['wrap_in_box'] ? '' : 'empty';
     return $settings;
 }
示例#8
0
 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);
 }
示例#9
0
 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);
     }
 }
示例#10
0
 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);
 }