public function generateCache($languageId) { $event = new BASE_CLASS_EventCollector('base.add_global_lang_keys'); OW::getEventManager()->trigger($event); $globalVars = call_user_func_array('array_merge', $event->getData()); $values = $this->keyDao->findAllWithValues($languageId); $result = array(); // fix begin // remove cache files from \ow_pluginfiles\base\lang_{1,2}.php and open site in debug mode $valuesReserv = $this->keyDao->findAllWithValues($languageId == 1 ? 2 : 1); foreach ($valuesReserv as $v) { $key = $v['prefix'] . '+' . $v['key']; $v['value'] = UTIL_String::replaceVars($v['value'], $globalVars); $result[$key] = $v['value']; } // fix end foreach ($values as $v) { $key = $v['prefix'] . '+' . $v['key']; $v['value'] = UTIL_String::replaceVars($v['value'], $globalVars); $result[$key] = $v['value']; } $cacheContent = "<?php\n\$language[{$languageId}] = " . var_export($result, true) . ";\n?>"; $filename = $this->languageCacheDir . 'lang_' . $languageId . '.php'; file_put_contents($filename, $cacheContent); @chmod($filename, 0666); $this->loadFromCahce(); }
protected function getAboutMeContent() { $settings = BOL_ComponentEntityService::getInstance()->findSettingList('profile-BASE_CMP_AboutMeWidget', $this->user->id, array('content')); if (empty($settings['content'])) { return null; } return $this->length === null ? $settings['content'] : UTIL_String::truncate($settings['content'], $this->length, "..."); }
/** * Generates and returns CSRF token * * @return string */ public static function generateToken() { $tokenList = self::getTokenList(); $token = base64_encode(time() . UTIL_String::getRandomString(32)); $tokenList[$token] = time(); self::saveTokenList($tokenList); return $token; }
public function __construct(BASE_CLASS_WidgetParameter $params) { parent::__construct(); $service = LinkService::getInstance(); $userId = $params->additionalParamList['entityId']; if ($userId != OW::getUser()->getId() && !OW::getUser()->isAuthorized('links', 'view')) { $this->setVisible(false); return; } /* Check privacy permissions */ $eventParams = array('action' => LinkService::PRIVACY_ACTION_VIEW_LINKS, 'ownerId' => $userId, 'viewerId' => OW::getUser()->getId()); try { OW::getEventManager()->getInstance()->call('privacy_check_permission', $eventParams); } catch (RedirectException $ex) { $this->setVisible(false); return; } /* */ if ($service->countUserLinks($userId) == 0 && !$params->customizeMode) { $this->setVisible(false); return; } $this->assign('displayname', BOL_UserService::getInstance()->getDisplayName($userId)); $this->assign('username', BOL_UserService::getInstance()->getUsername($userId)); $list = array(); $count = $params->customParamList['count']; $userLinkList = $service->findUserLinkList($userId, 0, $count); $idList = array(); foreach ($userLinkList as $item) { /* Check privacy permissions */ if ($item->userId != OW::getUser()->getId() && !OW::getUser()->isAuthorized('links')) { $eventParams = array('action' => LinkService::PRIVACY_ACTION_VIEW_LINKS, 'ownerId' => $item->userId, 'viewerId' => OW::getUser()->getId()); try { OW::getEventManager()->getInstance()->call('privacy_check_permission', $eventParams); } catch (RedirectException $ex) { continue; } } /* */ $list[] = $item; $idList[] = $item->id; } $commentInfo = array(); if (!empty($idList)) { $commentInfo = BOL_CommentService::getInstance()->findCommentCountForEntityList('link', $idList); $tb = array(); foreach ($list as $key => $item) { if (mb_strlen($item->getDescription()) > 100) { $item->setDescription(UTIL_String::truncate($item->getDescription(), 100, '...')); } $list[$key]->setDescription(strip_tags($item->getDescription())); $tb[$item->getId()] = array(array('label' => '<span class="ow_txt_value">' . $commentInfo[$item->getId()] . '</span> ' . OW::getLanguage()->text('links', 'comments'), 'href' => OW::getRouter()->urlForRoute('link', array('id' => $item->getId()))), array('label' => UTIL_DateTime::formatDate($item->getTimestamp()), 'class' => 'ow_ic_date')); } $this->assign('tb', $tb); } $this->assign('list', $list); $this->setSettingValue(self::SETTING_TOOLBAR, array(array('label' => OW::getLanguage()->text('base', 'view_all'), 'href' => OW::getRouter()->urlForRoute('links-user', array('user' => BOL_UserService::getInstance()->getUserName($userId)))))); }
/** * Smarty truncate modifier. * * @author Sergey Kambalin <*****@*****.**> * @package ow.ow_smarty.plugin * @since 1.0 */ function smarty_modifier_more($string, $length) { $truncated = UTIL_String::truncate($string, $length); if (strlen($string) - strlen($truncated) < 50) { return $string; } $uniqId = uniqid("more-"); $seeMoreEmbed = '<a href="javascript://" class="ow_small" onclick="$(\'#' . $uniqId . '\').attr(\'data-collapsed\', 0);" style="padding-left:4px;">' . OW::getLanguage()->text("base", "comments_see_more_label") . '</a>'; return '<span class="ow_more_text" data-collapsed="1" id="' . $uniqId . '">' . '<span data-text="full">' . $string . '</span>' . '<span data-text="truncated">' . $truncated . '...' . $seeMoreEmbed . '</span>' . '</span>'; }
public function onBeforeRender() { parent::onBeforeRender(); if (!empty($this->oembed['title'])) { $this->oembed['title'] = UTIL_String::truncate($this->oembed['title'], 23, '...'); } if (!empty($this->oembed['description'])) { $this->oembed['description'] = UTIL_String::truncate($this->oembed['description'], 40, '...'); } $this->assign('message', $this->message); $this->assign('data', $this->oembed); }
/** * Makes permanent redirect to provided URL or URI. * * @param string $redirectTo */ public function redirect($redirectTo = null) { // if empty redirect location -> current URI is used if ($redirectTo === null) { $redirectTo = OW::getRequest()->getRequestUri(); } // if URI is provided need to add site home URL if (!strstr($redirectTo, 'http://') && !strstr($redirectTo, 'https://')) { $redirectTo = OW::getRouter()->getBaseUrl() . UTIL_String::removeFirstAndLastSlashes($redirectTo); } UTIL_Url::redirect($redirectTo); }
/** * Removes site installation subfolder from request URI * * @param string $urlHome * @param string $requestUri * @return string */ public static function getRealRequestUri($urlHome, $requestUri) { $urlArray = parse_url($urlHome); $originalUri = UTIL_String::removeFirstAndLastSlashes($requestUri); $originalPath = UTIL_String::removeFirstAndLastSlashes($urlArray['path']); if ($originalPath === '') { return $originalUri; } $uri = mb_substr($originalUri, mb_strpos($originalUri, $originalPath) + mb_strlen($originalPath)); $uri = trim(UTIL_String::removeFirstAndLastSlashes($uri)); return $uri ? self::secureUri($uri) : ''; }
public function __construct(BASE_CLASS_WidgetParameter $params) { parent::__construct(); $service = PostService::getInstance(); $count = $params->customParamList['count']; $previewLength = $params->customParamList['previewLength']; $list = $service->findList(0, $count); if ((empty($list) || false && !OW::getUser()->isAuthorized('blogs', 'add') && !OW::getUser()->isAuthorized('blogs', 'view')) && !$params->customizeMode) { $this->setVisible(false); return; } $posts = array(); $userService = BOL_UserService::getInstance(); $postIdList = array(); foreach ($list as $dto) { /* @var $dto Post */ if (mb_strlen($dto->getTitle()) > 50) { $dto->setTitle(UTIL_String::splitWord(UTIL_String::truncate($dto->getTitle(), 50, '...'))); } $text = $service->processPostText($dto->getPost()); $posts[] = array('dto' => $dto, 'text' => UTIL_String::splitWord(UTIL_String::truncate($text, $previewLength)), 'truncated' => mb_strlen($text) > $previewLength, 'url' => OW::getRouter()->urlForRoute('user-post', array('id' => $dto->getId()))); $idList[] = $dto->getAuthorId(); $postIdList[] = $dto->id; } $commentInfo = array(); if (!empty($idList)) { $avatars = BOL_AvatarService::getInstance()->getDataForUserAvatars($idList, true, false); $this->assign('avatars', $avatars); $urls = BOL_UserService::getInstance()->getUserUrlsForList($idList); $commentInfo = BOL_CommentService::getInstance()->findCommentCountForEntityList('blog-post', $postIdList); $toolbars = array(); foreach ($list as $dto) { $toolbars[$dto->getId()] = array(array('class' => 'ow_icon_control ow_ic_user', 'href' => isset($urls[$dto->getAuthorId()]) ? $urls[$dto->getAuthorId()] : '#', 'label' => isset($avatars[$dto->getAuthorId()]['title']) ? $avatars[$dto->getAuthorId()]['title'] : ''), array('class' => 'ow_remark ow_ipc_date', 'label' => UTIL_DateTime::formatDate($dto->getTimestamp()))); } $this->assign('tbars', $toolbars); } $this->assign('commentInfo', $commentInfo); $this->assign('list', $posts); if ($service->countPosts() > 0) { $toolbar = array(); if (OW::getUser()->isAuthorized('blogs', 'add')) { $toolbar[] = array('label' => OW::getLanguage()->text('blogs', 'add_new'), 'href' => OW::getRouter()->urlForRoute('post-save-new')); } if (OW::getUser()->isAuthorized('blogs', 'view')) { $toolbar[] = array('label' => OW::getLanguage()->text('blogs', 'go_to_blog'), 'href' => Ow::getRouter()->urlForRoute('blogs')); } if (!empty($toolbar)) { $this->setSettingValue(self::SETTING_TOOLBAR, $toolbar); } } }
public function question($params) { $questionId = (int) $params['qid']; $question = $this->service->findQuestion($questionId); if (empty($question)) { throw new Redirect404Exception(); } $language = OW::getLanguage(); OW::getDocument()->setTitle($language->text('equestions', 'question_page_title')); OW::getDocument()->setDescription($language->text('equestions', 'question_page_description', array('question' => UTIL_String::truncate(strip_tags($question->text), 200)))); OW::getNavigation()->activateMenuItem(OW_Navigation::MAIN, 'equestions', 'main_menu_list'); $cmp = new EQUESTIONS_CMP_Question($questionId, null, null, array('focusToPost' => isset($_GET['f']))); $this->addComponent('question', $cmp); }
public function feedOnProjectAdd(OW_Event $e) { $params = $e->getParams(); if ($params['entityType'] != 'ocsfundraising_project') { return; } $service = OCSFUNDRAISING_BOL_Service::getInstance(); $project = $service->getGoalById($params['entityId']); if (!$project) { return; } $content = array("format" => "image_content", "vars" => array("image" => $project['dto']->image ? $service->generateImageUrl($project['dto']->image, false) : null, "thumbnail" => $project['dto']->image ? $service->generateImageUrl($project['dto']->image) : null, "title" => UTIL_String::truncate(strip_tags($project['dto']->name), 100, '...'), "description" => UTIL_String::truncate(strip_tags($project['dto']->description), 150, '...'), "url" => array("routeName" => "ocsfundraising.project", "vars" => array('id' => $project['dto']->id)), "iconClass" => "ow_ic_folder")); $data = array('time' => (int) $project['dto']->startStamp, 'ownerId' => $project['dto']->ownerId, 'string' => array('key' => 'ocsfundraising+feed_add_project_label'), 'content' => $content, 'view' => array('iconClass' => 'ow_ic_folder')); $e->setData($data); }
/** * @param OW_Route $route * @param callback $serviceCallback * @param string $dtoProperty */ public function __construct(OW_Route $route, $serviceCallback, $dtoProperty, $pathProperty, $entityType) { $this->route = $route; $objArr = (array) $route; $name = $objArr["OW_RouterouteName"]; $path = UTIL_String::removeFirstAndLastSlashes($objArr["OW_RouteroutePath"]); $da = $objArr["OW_RoutedispatchAttrs"]; $paramsOptions = $objArr["OW_RouterouteParamOptions"]; parent::__construct($name, $path, $da['controller'], $da['action'], $paramsOptions); $this->serviceCallback = $serviceCallback; $this->seoService = OASEO_BOL_Service::getInstance(); $this->entityType = $entityType; $this->dtoProperty = $dtoProperty; $this->pathProperty = $pathProperty; $this->pathArray = explode('/', $path); }
public function onBeforeRender() { parent::onBeforeRender(); $tplList = array(); foreach ($this->response['feed']['entry'] as $item) { $vid = $item['media$group']['yt$videoid']['$t']; $uploaded = strtotime($item['media$group']['yt$uploaded']['$t']); $duration = $item['media$group']['yt$duration']['seconds']; $description = UTIL_String::truncate(strip_tags($item['media$group']['media$description']['$t']), 130, ' ...'); $title = UTIL_String::truncate(strip_tags($item['media$group']['media$title']['$t']), 65, ' ...'); $thumb = $item['media$group']['media$thumbnail'][0]['url']; $image = $item['media$group']['media$thumbnail'][1]['url']; $oembed = array('thumbnail_url' => $image, 'type' => 'video', 'title' => $title, 'description' => $description, 'html' => '<iframe class="attp-yt-iframe" width="300" height="230" src="http://www.youtube.com/embed/' . $vid . '?autoplay=1" frameborder="0" allowfullscreen></iframe>'); $tplList[] = array('title' => $title, 'description' => $description, 'thumb' => $thumb, 'video' => $vid, 'duration' => round($duration / 60), 'uploaded' => $uploaded, 'date' => UTIL_DateTime::formatDate($uploaded), 'oembed' => json_encode($oembed)); } $this->assign('list', $tplList); }
public function text($prefix, $key, array $vars = null) { if (empty($prefix) || empty($key)) { return $prefix . '+' . $key; } $text = null; try { $text = BOL_LanguageService::getInstance()->getText(BOL_LanguageService::getInstance()->getCurrent()->getId(), $prefix, $key); } catch (Exception $e) { return $prefix . '+' . $key; } if ($text === null) { return $prefix . '+' . $key; } $text = UTIL_String::replaceVars($text, $vars); return $text; }
public function findUserVideos($userId, $start, $offset) { $clipDao = VIDEO_BOL_ClipDao::getInstance(); $example = new OW_Example(); $example->andFieldEqual('status', 'approved'); $example->andFieldEqual('userId', $userId); $example->setOrder('`addDatetime` DESC'); $example->setLimitClause($start, $offset); $list = $clipDao->findListByExample($example); $out = array(); foreach ($list as $video) { $id = $video->id; $videoThumb = VIDEO_BOL_ClipService::getInstance()->getClipThumbUrl($id); $out[$id] = array('id' => $id, 'embed' => $video->code, 'title' => UTIL_String::truncate($video->title, 65, ' ...'), 'description' => UTIL_String::truncate($video->description, 130, ' ...'), 'thumb' => $videoThumb == 'undefined' ? null : $videoThumb, 'date' => UTIL_DateTime::formatDate($video->addDatetime), 'permalink' => OW::getRouter()->urlForRoute('view_clip', array('id' => $id))); $out[$id]['oembed'] = json_encode(array('type' => 'video', 'thumbnail_url' => $out[$id]['thumb'], 'html' => $out[$id]['embed'], 'title' => $out[$id]['title'], 'description' => $out[$id]['description'])); } return $out; }
public function onInvite(OW_Event $event) { $params = $event->getParams(); $eventId = $params['eventId']; $eventDto = EVENT_BOL_EventService::getInstance()->findEvent($params['eventId']); $eventUrl = OW::getRouter()->urlForRoute('event.view', array('eventId' => $eventDto->id)); $eventTitle = UTIL_String::truncate($eventDto->title, 100, '...'); $userId = OW::getUser()->getId(); $userDto = OW::getUser()->getUserObject(); $userUrl = BOL_UserService::getInstance()->getUserUrlForUsername($userDto->username); $userDisplayName = BOL_UserService::getInstance()->getDisplayName($userId); $avatars = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($userId)); $avatar = $avatars[$userId]; $users = array($userId); $stringAssigns = array('event' => '<a href="' . $eventUrl . '">' . $eventTitle . '</a>'); $stringAssigns['user1'] = '<a href="' . $userUrl . '">' . $userDisplayName . '</a>'; $contentImage = null; if (!empty($eventDto->image)) { $eventSrc = EVENT_BOL_EventService::getInstance()->generateImageUrl($eventDto->image, true); $contentImage = array('src' => $eventSrc, 'url' => $eventUrl, 'title' => $eventTitle); } //$userCount = count($data['users']); // $userIds = array(); // for ( $i = 0; $i < $userCount; $i++ ) // { // $user = $data['users'][$i]; // $stringAssigns['user' . ($i+1)] = '<a href="' . $user['url'] . '">' . $user['name'] . '</a>'; // // if ( $i >= 2 ) // { // $userIds[] = $user['userId']; // } // } //$stringAssigns['otherUsers'] = '<a href="javascript://" onclick="OW.showUsers(' . json_encode($users) . ');">' . //OW::getLanguage()->text('event', 'invitation_join_string_other_users', array( 'count' => count($users) )) . '</a>'; // $languageKey = $userCount > 2 ? 'invitation_join_string_many' : 'invitation_join_string_' . $userCount; $languageKey = 'invitation_join_string_' . 1; $invitationEvent = new OW_Event('invitations.add', array('pluginKey' => 'event', 'entityType' => self::INVITATION_JOIN, 'entityId' => $eventDto->id, 'userId' => $params['userId'], 'time' => time(), 'action' => 'event-invitation'), array('string' => array('key' => 'event+' . $languageKey, 'vars' => $stringAssigns), 'users' => $users, 'avatar' => $avatar, 'contentImage' => $contentImage)); OW::getEventManager()->trigger($invitationEvent); }
public function text($prefix, $key, array $vars = null) { if (empty($prefix) || empty($key)) { return $prefix . '+' . $key; } $text = null; try { $text = BOL_LanguageService::getInstance()->getText(BOL_LanguageService::getInstance()->getCurrent()->getId(), $prefix, $key); } catch (Exception $e) { return $prefix . '+' . $key; } if ($text === null) { return $prefix . '+' . $key; } $event = new OW_Event("core.get_text", array("prefix" => $prefix, "key" => $key, "vars" => $vars)); $this->eventManager->trigger($event); if ($event->getData() !== null) { return $event->getData(); } $text = UTIL_String::replaceVars($text, $vars); return $text; }
public function onBeforeQuestionAdd(OW_Event $event) { $params = $event->getParams(); $data = $event->getData(); if (empty($params['settings']['context']['type']) || $params['settings']['context']['type'] != 'groups') { return; } if (!$this->isActive()) { return; } $context = $params['settings']['context']; $service = GROUPS_BOL_Service::getInstance(); $groupId = (int) $context['id']; $group = $service->findGroupById($groupId); $url = $service->getGroupUrl($group); $title = UTIL_String::truncate(strip_tags($group->title), 100, '...'); $context['label'] = $title; $context['url'] = $url; $data['settings']['context'] = $context; $data['privacy'] = 'groups'; $event->setData($data); }
public function prepareButton($params) { $appId = OW::getConfig()->getValue('contactimporter', 'facebook_app_id'); if (empty($appId)) { return; } $staticUrl = OW::getPluginManager()->getPlugin('contactimporter')->getStaticUrl(); $document = OW::getDocument(); $document->addScript($staticUrl . 'js/facebook.js'); $userId = OW::getUser()->getId(); $fbLibUrl = 'http://connect.facebook.net/en_US/all.js'; $code = UTIL_String::getRandomString(20); BOL_UserService::getInstance()->saveUserInvitation($userId, $code); $urlForInvite = OW::getRequest()->buildUrlQueryString(OW::getRouter()->urlForRoute('base_join'), array('code' => $code)); $js = UTIL_JsGenerator::newInstance(); $js->newObject(array('window', 'CONTACTIMPORTER_FaceBook'), 'CI_Facebook', array($fbLibUrl, $userId, $urlForInvite)); $fbParams = array('appId' => $appId, 'status' => true, 'cookie' => true, 'xfbml' => true); $js->callFunction(array('CONTACTIMPORTER_FaceBook', 'init'), array($fbParams)); $document->addOnloadScript((string) $js); OW::getLanguage()->addKeyForJs('contactimporter', 'facebook_inv_message_text'); OW::getLanguage()->addKeyForJs('contactimporter', 'facebook_after_invite_feedback'); return array('iconUrl' => $staticUrl . 'img/f.png', 'onclick' => "CONTACTIMPORTER_FaceBook.request(); return false;"); }
public function onInvite(OW_Event $event) { $params = $event->getParams(); $eventDto = EVENTX_BOL_EventService::getInstance()->findEvent($params['eventId']); $eventUrl = OW::getRouter()->urlForRoute('eventx.view', array('eventId' => $eventDto->id)); $eventTitle = UTIL_String::truncate($eventDto->title, 100, '...'); $userId = OW::getUser()->getId(); $userDto = OW::getUser()->getUserObject(); $userUrl = BOL_UserService::getInstance()->getUserUrlForUsername($userDto->username); $userDisplayName = BOL_UserService::getInstance()->getDisplayName($userId); $avatars = BOL_AvatarService::getInstance()->getDataForUserAvatars(array($userId)); $avatar = $avatars[$userId]; $users = array($userId); $stringAssigns = array('event' => '<a href="' . $eventUrl . '">' . $eventTitle . '</a>'); $stringAssigns['user1'] = '<a href="' . $userUrl . '">' . $userDisplayName . '</a>'; $contentImage = null; if (!empty($eventDto->image)) { $eventSrc = EVENTX_BOL_EventService::getInstance()->generateImageUrl($eventDto->image, true); $contentImage = array('src' => $eventSrc, 'url' => $eventUrl, 'title' => $eventTitle); } $languageKey = 'invitation_join_string_' . 1; $invitationEvent = new OW_Event('invitations.add', array('pluginKey' => 'eventx', 'entityType' => self::INVITATION_JOIN, 'entityId' => $eventDto->id, 'userId' => $params['userId'], 'time' => time(), 'action' => 'event-invitation'), array('string' => array('key' => 'eventx+' . $languageKey, 'vars' => $stringAssigns), 'users' => $users, 'avatar' => $avatar, 'contentImage' => $contentImage)); OW::getEventManager()->trigger($invitationEvent); }
public function send() { if (empty($_POST['emailList'])) { exit(json_encode(array('success' => false, 'message' => OW::getLanguage()->text('contactimporter', 'email_send_error_empty_email_list')))); } if (count($_POST['emailList']) > (int) OW::getConfig()->getValue('base', 'user_invites_limit')) { exit(json_encode(array('success' => false, 'message' => OW::getLanguage()->text('contactimporter', 'email_send_error_max_limit_message', array('limit' => (int) OW::getConfig()->getValue('base', 'user_invites_limit')))))); } $userId = OW::getUser()->getId(); $displayName = BOL_UserService::getInstance()->getDisplayName($userId); $vars = array('inviter' => $displayName, 'siteName' => OW::getConfig()->getValue('base', 'site_name'), 'customMessage' => empty($_POST['text']) ? null : trim($_POST['text'])); foreach ($_POST['emailList'] as $email) { $code = UTIL_String::generatePassword(20); BOL_UserService::getInstance()->saveUserInvitation($userId, $code); $vars['siteInviteURL'] = OW::getRequest()->buildUrlQueryString(OW::getRouter()->urlForRoute('base_join'), array('code' => $code)); $mail = OW::getMailer()->createMail(); $mail->setSubject(OW::getLanguage()->text('contactimporter', 'mail_email_invite_subject', $vars)); $mail->setHtmlContent(OW::getLanguage()->text('contactimporter', 'mail_email_invite_' . (empty($_POST['text']) ? '' : 'msg_') . 'html', $vars)); $mail->setTextContent(OW::getLanguage()->text('contactimporter', 'mail_email_invite_' . (empty($_POST['text']) ? '' : 'msg_') . 'txt', $vars)); $mail->addRecipientEmail($email); OW::getMailer()->addToQueue($mail); } exit(json_encode(array('success' => true, 'message' => OW::getLanguage()->text('contactimporter', 'email_send_success', array('count' => count($_POST['emailList'])))))); }
private function processDataInterface($item) { $data = $item['data']; foreach (array('string', 'conten') as $langProperty) { if (!empty($data[$langProperty]) && is_array($data[$langProperty])) { $key = explode('+', $data[$langProperty]['key']); $vars = empty($data[$langProperty]['vars']) ? array() : $data[$langProperty]['vars']; $data[$langProperty] = OW::getLanguage()->text($key[0], $key[1], $vars); } } if (!empty($data['contentImage'])) { $data['contentImage'] = is_string($data['contentImage']) ? array('src' => $data['contentImage']) : $data['contentImage']; } else { $data['contentImage'] = null; } $data['content'] = empty($data['content']) ? '' : UTIL_String::truncate($data['content'], 140, '...'); $data['string'] = empty($data['string']) ? '' : $data['string']; $data['avatar'] = empty($data['avatar']) ? null : $data['avatar']; $data['contentImage'] = empty($data['contentImage']) ? array() : $data['contentImage']; $data['toolbar'] = empty($data['toolbar']) ? array() : $data['toolbar']; $data['url'] = empty($data['url']) ? null : $data['url']; $data['time'] = $item['time']; return $data; }
/** * @param int $languageId * @param string $prefix * @param string $key * @param array $vars * @return string */ public function getText($languageId, $prefix, $key, $vars = array()) { $text = $this->getTextTemplate($languageId, $prefix, $key); if (!empty($vars) && is_array($vars)) { foreach ($vars as $key => &$value) { if (UTIL_Serialize::isSerializedObject($value)) { $object = UTIL_Serialize::unserialize($value); if (empty($object) || !$object instanceof BASE_CLASS_LanguageParams) { $value = ''; } $value = $object->fetch(); } } } $event = new OW_Event("core.get_text", array("prefix" => $prefix, "key" => $key, "vars" => $vars)); OW::getEventManager()->trigger($event); if ($event->getData() !== null) { return $event->getData(); } $text = UTIL_String::replaceVars($text, $vars); return $text; }
function sendVerificationMail($type, $params) { global $getConfig; global $getFeedback; //global $getRouter; global $language; global $getMailer; global $EmailVerifyService; $subject = $params['subject']; $template_html = $params['body_html']; $template_text = $params['body_text']; switch ($type) { case "user": $user = $params['user']; $email = $user->email; $userId = $user->id; break; case "site": $email = $getConfig->getValue('base', 'unverify_site_email'); $userId = 0; break; default: $getFeedback->error($language->text('base', 'email_verify_verify_mail_was_not_sent')); return; } $emailVerifiedData = $EmailVerifyService->findByEmailAndUserId($email, $userId, $type); if ($emailVerifiedData !== null) { $timeLimit = 60 * 60 * 24 * 3; // 3 days if (time() - (int) $emailVerifiedData->createStamp >= $timeLimit) { $emailVerifiedData = null; } } if ($emailVerifiedData === null) { $emailVerifiedData = new BOL_EmailVerify(); $emailVerifiedData->userId = $userId; $emailVerifiedData->email = trim($email); $emailVerifiedData->hash = randomNumber(); $emailVerifiedData->createStamp = time(); $emailVerifiedData->type = $type; $EmailVerifyService->batchReplace(array($emailVerifiedData)); } $vars = array('code' => $emailVerifiedData->hash); $language = $language; $subject = UTIL_String::replaceVars($subject, $vars); $template_html = UTIL_String::replaceVars($template_html, $vars); $template_text = UTIL_String::replaceVars($template_text, $vars); $mail = $getMailer->createMail(); $mail->addRecipientEmail($emailVerifiedData->email); $mail->setSubject($subject); $mail->setHtmlContent($template_html); $mail->setTextContent($template_text); $getMailer->send($mail); if (!isset($params['feedback']) || $params['feedback'] !== false) { $getFeedback->info($language->text('base', 'email_verify_verify_mail_was_sent')); } }
/** * @param integer $userId * @return BOL_UserResetPassword */ public function getNewResetPassword($userId) { $resetPassword = new BOL_UserResetPassword(); $resetPassword->setUserId($userId); $resetPassword->setExpirationTimeStamp(time() + self::PASSWORD_RESET_CODE_EXPIRATION_TIME); $resetPassword->setUpdateTimeStamp(time() + self::PASSWORD_RESET_CODE_UPDATE_TIME); $resetPassword->setCode(md5(UTIL_String::getRandomString(8, 5))); $this->resetPasswordDao->save($resetPassword); return $resetPassword; }
public function getThemeXmlInfo($name) { $filePath = OW_DIR_THEME . trim($name) . DS . self::MANIFEST_FILE; if (!file_exists($filePath)) { return; } return UTIL_String::xmlToArray(file_get_contents($filePath)); }
/** * Returns class name for provided file name and package pointer. * * @param string $fileName * @param string $packagePointer * @return string */ public function filenameToClass($fileName, $packagePointer = null) { $packagePointer = $packagePointer === null ? '' : strtoupper($packagePointer) . '_'; return $packagePointer . UTIL_String::delimiterToCaps('_' . substr($fileName, 0, -4)); }
public function batchInsertOrUpdateObjectList($tableName, $objects, $batchSize = 50) { if ($objects != null && is_array($objects)) { if (count($objects) > 0) { $columns = ''; $paramNames = array(); if (is_object($objects[0])) { $params = get_object_vars($objects[0]); $paramNames = array_keys($params); $columns = UTIL_String::arrayToDelimitedString($paramNames, ',', '`', '`'); } else { throw new InvalidArgumentException('Array of objects expected'); } $i = 0; $totalInsertsCount = 0; $objectsCount = count($objects); $batchSize = (int) $batchSize; $inserts = array(); foreach ($objects as $obj) { $values = '('; foreach ($paramNames as $property) { if ($obj->{$property} !== null) { $values .= '\'' . $this->escapeString($obj->{$property}) . '\','; } else { $values .= 'NULL,'; } } $values = mb_substr($values, 0, mb_strlen($values) - 1); $values .= ')'; $inserts[] = $values; $i++; $totalInsertsCount++; if ($i === $batchSize || $totalInsertsCount === $objectsCount) { $sql = "REPLACE INTO `{$tableName}` ({$columns}) VALUES" . implode(',', $inserts); $inserts = array(); $i = 0; $this->execute($sql)->closeCursor(); //$this->connection->query($sql)->closeCursor(); } } } } else { throw new InvalidArgumentException('Array expected'); } }
/** * Application init actions. */ public function init() { // router init - need to set current page uri and base url $router = OW::getRouter(); $router->setBaseUrl(OW_URL_HOME); $this->urlHostRedirect(); OW_Auth::getInstance()->setAuthenticator(new OW_SessionAuthenticator()); $this->userAutoLogin(); // setting default time zone date_default_timezone_set(OW::getConfig()->getValue('base', 'site_timezone')); // synchronize the db's time zone OW::getDbo()->setTimezone(); // OW::getRequestHandler()->setIndexPageAttributes('BASE_CTRL_ComponentPanel'); OW::getRequestHandler()->setStaticPageAttributes('BASE_MCTRL_BaseDocument', 'staticDocument'); $uri = OW::getRequest()->getRequestUri(); // before setting in router need to remove get params if (strstr($uri, '?')) { $uri = substr($uri, 0, strpos($uri, '?')); } $router->setUri($uri); $defaultRoute = new OW_DefaultRoute(); //$defaultRoute->setControllerNamePrefix('MCTRL'); $router->setDefaultRoute($defaultRoute); $navService = BOL_NavigationService::getInstance(); // // // try to find static document with current uri // $document = $navService->findStaticDocument($uri); // // if ( $document !== null ) // { // $this->documentKey = $document->getKey(); // } OW::getPluginManager()->initPlugins(); $event = new OW_Event(OW_EventManager::ON_PLUGINS_INIT); OW::getEventManager()->trigger($event); $beckend = OW::getEventManager()->call('base.cache_backend_init'); if ($beckend !== null) { OW::getCacheManager()->setCacheBackend($beckend); OW::getCacheManager()->setLifetime(3600); OW::getDbo()->setUseCashe(true); } $this->devActions(); OW::getThemeManager()->initDefaultTheme(true); // setting current theme $activeThemeName = OW::getEventManager()->call('base.get_active_theme_name'); $activeThemeName = $activeThemeName ? $activeThemeName : OW::getConfig()->getValue('base', 'selectedTheme'); if ($activeThemeName !== BOL_ThemeService::DEFAULT_THEME && OW::getThemeManager()->getThemeService()->themeExists($activeThemeName)) { OW_ThemeManager::getInstance()->setCurrentTheme(BOL_ThemeService::getInstance()->getThemeObjectByName(trim($activeThemeName), true)); } // adding static document routes $staticDocs = $navService->findAllMobileStaticDocuments(); $staticPageDispatchAttrs = OW::getRequestHandler()->getStaticPageAttributes(); /* @var $value BOL_Document */ foreach ($staticDocs as $value) { OW::getRouter()->addRoute(new OW_Route($value->getKey(), $value->getUri(), $staticPageDispatchAttrs['controller'], $staticPageDispatchAttrs['action'], array('documentKey' => array(OW_Route::PARAM_OPTION_HIDDEN_VAR => $value->getKey())))); // TODO refactor - hotfix for TOS page if (UTIL_String::removeFirstAndLastSlashes($value->getUri()) == 'terms-of-use') { OW::getRequestHandler()->addCatchAllRequestsExclude('base.members_only', $staticPageDispatchAttrs['controller'], $staticPageDispatchAttrs['action'], array('documentKey' => $value->getKey())); } } //adding index page route $item = BOL_NavigationService::getInstance()->findFirstLocal(OW::getUser()->isAuthenticated() ? BOL_NavigationService::VISIBLE_FOR_MEMBER : BOL_NavigationService::VISIBLE_FOR_GUEST, OW_Navigation::MOBILE_TOP); if ($item !== null) { if ($item->getRoutePath()) { $route = OW::getRouter()->getRoute($item->getRoutePath()); $ddispatchAttrs = $route->getDispatchAttrs(); } else { $ddispatchAttrs = OW::getRequestHandler()->getStaticPageAttributes(); } $router->addRoute(new OW_Route('base_default_index', '/', $ddispatchAttrs['controller'], $ddispatchAttrs['action'], array('documentKey' => array(OW_Route::PARAM_OPTION_HIDDEN_VAR => $item->getDocumentKey())))); $this->indexMenuItem = $item; OW::getEventManager()->bind(OW_EventManager::ON_AFTER_REQUEST_HANDLE, array($this, 'activateMenuItem')); } else { $router->addRoute(new OW_Route('base_default_index', '/', 'BASE_MCTRL_WidgetPanel', 'index')); } if (!OW::getRequest()->isAjax()) { OW::getResponse()->setDocument($this->newDocument()); OW::getDocument()->setMasterPage(new OW_MobileMasterPage()); OW::getResponse()->setHeader(OW_Response::HD_CNT_TYPE, OW::getDocument()->getMime() . '; charset=' . OW::getDocument()->getCharset()); } else { OW::getResponse()->setDocument(new OW_AjaxDocument()); } /* additional actions */ if (OW::getUser()->isAuthenticated()) { BOL_UserService::getInstance()->updateActivityStamp(OW::getUser()->getId(), $this->getContext()); } // adding global template vars $currentThemeImagesDir = OW::getThemeManager()->getCurrentTheme()->getStaticImagesUrl(); $viewRenderer = OW_ViewRenderer::getInstance(); $viewRenderer->assignVar('themeImagesUrl', $currentThemeImagesDir); $viewRenderer->assignVar('siteName', OW::getConfig()->getValue('base', 'site_name')); $viewRenderer->assignVar('siteTagline', OW::getConfig()->getValue('base', 'site_tagline')); $viewRenderer->assignVar('siteUrl', OW_URL_HOME); $viewRenderer->assignVar('isAuthenticated', OW::getUser()->isAuthenticated()); $viewRenderer->assignVar('bottomPoweredByLink', '<a href="http://www.oxwall.org/" target="_blank" title="Powered by Oxwall Community Software"><img src="' . $currentThemeImagesDir . 'powered-by-oxwall.png" alt="Oxwall Community Software" /></a>'); $viewRenderer->assignVar('adminDashboardIframeUrl', "http://static.oxwall.org/spotlight/?platform=oxwall&platform-version=" . OW::getConfig()->getValue('base', 'soft_version') . "&platform-build=" . OW::getConfig()->getValue('base', 'soft_build')); if (function_exists('ow_service_actions')) { call_user_func('ow_service_actions'); } $this->handleHttps(); }
public function display($dbReady) { $dispatchAttrs = OW::getRouter()->route(); $controllerClass = $dispatchAttrs['controller']; /* @var $controller INSTALL_ActionController */ $controller = new $controllerClass(); $controller->init($dispatchAttrs, $dbReady); $params = array(); if (!empty($dispatchAttrs['vars'])) { $params[] = $dispatchAttrs['vars']; } call_user_func_array(array($controller, $dispatchAttrs['action']), $params); $template = $controller->getTemplate(); if (empty($template)) { $controllerName = OW::getAutoloader()->classToFilename($controllerClass, false); $template = INSTALL_DIR_VIEW_CTRL . $controllerName . '_' . UTIL_String::capsToDelimiter($dispatchAttrs['action'], '_') . '.php'; $controller->setTemplate($template); } $content = $controller->render(); $viewRenderer = INSTALL::getViewRenderer(); $viewRenderer->assignVars(array('pageBody' => $content, 'pageTitle' => $controller->getPageTitle(), 'pageHeading' => $controller->getPageHeading(), 'pageSteps' => INSTALL::getStepIndicator()->render(), 'pageStylesheetUrl' => INSTALL_URL_VIEW . 'style.css')); echo $viewRenderer->render(INSTALL_DIR_VIEW . 'master_page.php'); }