Example #1
0
 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();
 }
Example #2
0
 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, "...");
 }
Example #3
0
 /**
  * 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;
 }
Example #4
0
 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))))));
 }
Example #5
0
/**
 * 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>';
}
Example #6
0
 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);
 }
Example #7
0
 /**
  * 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);
 }
Example #8
0
 /**
  * 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) : '';
 }
Example #9
0
 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);
         }
     }
 }
Example #10
0
 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);
 }
Example #11
0
 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);
 }
Example #12
0
 /**
  * @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);
 }
Example #13
0
 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);
 }
Example #14
0
 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;
 }
Example #15
0
 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;
 }
Example #16
0
 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);
 }
Example #17
0
 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;
 }
Example #18
0
 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;");
 }
Example #20
0
 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);
 }
Example #21
0
 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']))))));
 }
Example #22
0
 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;
 }
Example #23
0
 /**
  * @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;
 }
Example #24
0
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'));
    }
}
Example #25
0
 /**
  * @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;
 }
Example #26
0
 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));
 }
Example #27
0
 /**
  * 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));
 }
Example #28
0
 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');
     }
 }
Example #29
0
 /**
  * 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();
 }
Example #30
-1
 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');
 }