Beispiel #1
0
 /**
  * appendItem
  *
  * Append new breadcrumbs stack item
  *
  * @param  BreadCrumbsItem Breadcrumbs stack item
  * @return null
  */
 public static function appendItem(BreadCrumbsItem $item)
 {
     if (!self::getStackSize()) {
         \View::addLanguageItem('BreadCrumbs');
         self::$_items[] = new BreadCrumbsItem('/', \View::$language->breadcrumbs_home_name);
     }
     self::$_items[] = $item;
 }
Beispiel #2
0
 /**
  * indexAction
  *
  * Index action of sign in controller user module
  *
  * @return null
  */
 public function indexAction()
 {
     // add language
     \View::addLanguageItem('signInController');
     // append breadcrumbs
     \common\BreadCrumbs::appendItem(new \common\BreadCrumbsItem(null, \View::$language->sign_in_title));
     // assign data into view
     \View::assign('title', \View::$language->sign_in_title);
     // set output layout
     \View::setLayout('user-sign-in.phtml');
 }
Beispiel #3
0
 /**
  * indexAction
  *
  * Index action of to post jumping controller forum module
  *
  * @return null
  */
 public function indexAction()
 {
     \View::addLanguageItem('forumToPostController');
     // validate request params
     $gtpForm = new forms\GetToPost();
     $gtpForm->validate();
     // invalid request params
     if (!$gtpForm->isValid()) {
         throw new \SystemErrorException(array('title' => \View::$language->forum_to_post_error, 'description' => \View::$language->forum_to_post_request_invalid));
     }
     // redirect to target post url
     $postID = $gtpForm->getData()->id;
     $postUrl = helpers\ToPostHelper::getLinkByPostId($postID);
     \Request::redirect($postUrl);
 }
Beispiel #4
0
 /**
  * indexAction
  *
  * Index action of tracker controller forum module
  *
  * @return null
  */
 public function indexAction()
 {
     \View::addLanguageItem('forumTrackerController');
     // validate request params
     $gtfFilter = new \modules\forum\forms\GetTrackerFilter();
     $gtfFilter->validate();
     // invalid request params
     if (!$gtfFilter->isValid()) {
         throw new \SystemErrorException(array('title' => \View::$language->forum_tracker_error, 'description' => \View::$language->forum_tracker_request_invalid));
     }
     // get request data
     $gtfData = $gtfFilter->getData();
     // get limit settings
     $gtfData->limit = \App::getConfig('forum')->topics_per_page;
     // TODO topics per page from member custom settings
     // calculate offset
     $gtfData->offset = ($gtfData->page - 1) * $gtfData->limit;
     // get tracker topics by filter type
     $topics = helpers\TrackerTopicsHelper::getTopics($gtfData->by, $gtfData->offset, $gtfData->limit);
     if ($gtfData->page > 1 && !$topics) {
         throw new \MemberErrorException(array('code' => 404, 'title' => \View::$language->forum_tracker_error, 'description' => \View::$language->forum_tracker_page_not_found));
     }
     // normalize tracker filter url
     $trackerUrl = '/forum/tracker';
     $filterUrl = $trackerUrl;
     if ($gtfData->by != 'last') {
         $filterUrl = '/forum/tracker?by=' . $gtfData->by;
     }
     // get posts pagination
     $pagination = array();
     $allTopicsCnt = helpers\TrackerTopicsHelper::getAllTopicsCount();
     if ($allTopicsCnt > $gtfData->limit) {
         $pagination = \common\PaginationHelper::getItems($filterUrl, $gtfData->page, $gtfData->limit, $allTopicsCnt);
     }
     // normalize tracker filter title
     $filterTitle = 'forum_tracker_by_' . $gtfData->by . '_title';
     $filterTitle = \View::$language->{$filterTitle};
     // append breadcrumbs
     \common\BreadCrumbs::appendItems(array(new \common\BreadCrumbsItem($trackerUrl, \View::$language->forum_tracker_breadcrumbs_name), new \common\BreadCrumbsItem(null, $filterTitle)));
     // assign data into view
     $filters = helpers\TrackerFilterLinksHelper::getLinks($gtfData->by);
     \View::assign(array('title' => $filterTitle, 'filters' => $filters, 'topics' => $topics, 'pagination' => $pagination));
     // set output layout
     \View::setLayout('forum-tracker.phtml');
 }
Beispiel #5
0
 /**
  * __construct
  *
  * User sign in form class constructor.
  * Definition of validation rules
  *
  * @return null
  */
 public function __construct()
 {
     parent::__construct();
     \View::addLanguageItem('SignInForm');
     $this->_rules = array('login' => array(array('negation', 'IsString', \View::$language->sign_in_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->sign_in_form_login_is_empty)), 'password' => array(array('negation', 'IsString', \View::$language->sign_in_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->sign_in_form_password_is_empty)));
     // increment sign in tries number
     if (\Storage::isExists('sign-in-tries')) {
         $signInTries = \Storage::read('sign-in-tries') + 1;
     } else {
         $signInTries = 1;
     }
     \Storage::write('sign-in-tries', $signInTries);
     // protection code appendix
     if ($signInTries >= 3) {
         // TODO maybe get number of tries from config?
         $this->_rules['protection_code'] = array(array('negation', 'IsString', \View::$language->sign_in_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->sign_in_form_protection_code_is_empty));
     }
 }
Beispiel #6
0
 /**
  * trySignIn
  *
  * Try sign in process
  *
  * @param  StdClass $signInData Member sign in data
  * @return null
  */
 public static function trySignIn(\StdClass $signInData)
 {
     \View::addLanguageItem('SignInHelper');
     $memberData = \DBI::getConnection('master')->sendQuery('SELECT cookie, password, status
             FROM members
             WHERE email = :email OR login = :login', array(':email' => $signInData->login, ':login' => $signInData->login))->fetch(\PDO::FETCH_OBJ);
     // member data not found
     if (!$memberData) {
         throw new \MemberErrorException(array('title' => \View::$language->sign_in_helper_error, 'description' => \View::$language->sign_in_helper_login_or_password_invalid));
     }
     // compare password
     $hasSamePassword = \common\CryptHelper::verifyHash($signInData->password, $memberData->password);
     if (!$hasSamePassword) {
         throw new \MemberErrorException(array('title' => \View::$language->sign_in_helper_error, 'description' => \View::$language->sign_in_helper_login_or_password_invalid));
     }
     // sign in success
     $cnf = \App::getConfig('main')->system;
     $exp = time() + $cnf->cookie_expires_time;
     setcookie($cnf->cookie_name, $memberData->cookie, $exp, '/');
     throw new \MemberSuccessException(array('title' => \View::$language->sign_in_helper_success, 'description' => \View::$language->sign_in_helper_success_description, 'redirection' => '/'));
 }
Beispiel #7
0
 /**
  * indexAction
  *
  * Index action of topic controller forum module
  *
  * @return null
  */
 public function indexAction()
 {
     \View::addLanguageItem('forumTopicController');
     // validate request params
     $gtForm = new forms\GetTopic();
     $gtForm->validate();
     // invalid request params
     if (!$gtForm->isValid()) {
         throw new \SystemErrorException(array('title' => \View::$language->forum_topic_error, 'description' => \View::$language->forum_topic_request_invalid));
     }
     // get request data
     $gtData = $gtForm->getData();
     // get limit settings
     $gtData->limit = \App::getConfig('forum')->posts_per_page;
     // TODO posts per page from member custom settings
     // calculate offset
     $gtData->offset = ($gtData->page - 1) * $gtData->limit;
     // get topic
     $topic = helpers\TopicHelper::getTopicById($gtData->id);
     if (!$topic) {
         throw new \MemberErrorException(array('code' => 404, 'title' => \View::$language->forum_topic_error, 'description' => \View::$language->forum_topic_topic_not_found));
     }
     // get topic posts
     $posts = helpers\TopicPostsHelper::getPostsByTopicId($gtData->id, $gtData->offset, $gtData->limit);
     if (!$posts) {
         $description = $gtData->page == 1 ? \View::$language->forum_topic_first_post_not_found : \View::$language->forum_topic_page_not_found;
         throw new \SystemErrorException(array('title' => \View::$language->forum_topic_error, 'description' => $description));
     }
     // get posts pagination
     $pagination = array();
     if ($topic->posts_count > $gtData->limit) {
         $pagination = \common\PaginationHelper::getItems('/forum/topic?id=' . $topic->id, $gtData->page, $gtData->limit, $topic->posts_count);
     }
     // append breadcrumbs
     \common\BreadCrumbs::appendItems(array(new \common\BreadCrumbsItem('/forum/forum?id=' . $topic->forum_id, $topic->forum_title), new \common\BreadCrumbsItem('/forum/sub-forum?id=' . $topic->subforum_id, $topic->subforum_title), new \common\BreadCrumbsItem(null, $topic->topic_title)));
     // assign data into view
     \View::assign(array('title' => $topic->topic_title, 'topic' => $topic, 'posts' => $posts, 'postsCountOffset' => $gtData->offset + 1, 'pagination' => $pagination));
     // set output layout
     \View::setLayout('forum-topic.phtml');
 }
 /**
  * indexAction
  *
  * Index action of subforum controller forum module
  *
  * @return null
  */
 public function indexAction()
 {
     \View::addLanguageItem('forumSubForumController');
     // validate request params
     $gsfForm = new forms\GetSubForum();
     $gsfForm->validate();
     // invalid request params
     if (!$gsfForm->isValid()) {
         throw new \SystemErrorException(array('title' => \View::$language->forum_sub_forum_error, 'description' => \View::$language->forum_sub_forum_request_invalid));
     }
     // get request data
     $gsfData = $gsfForm->getData();
     // get limit settings
     $gsfData->limit = \App::getConfig('forum')->topics_per_page;
     // TODO topics per page from member custom settings
     // calculate offset
     $gsfData->offset = ($gsfData->page - 1) * $gsfData->limit;
     // get subforum
     $subForum = helpers\SubForumHelper::getSubForumById($gsfData->id);
     if (!$subForum) {
         throw new \MemberErrorException(array('code' => 404, 'title' => \View::$language->forum_sub_forum_error, 'description' => \View::$language->forum_sub_forum_sub_forum_not_found));
     }
     // get subforum topics
     $topics = helpers\SubForumTopicsHelper::getTopics($gsfData->id, $gsfData->offset, $gsfData->limit);
     if ($gsfData->page > 1 && !$topics) {
         throw new \SystemErrorException(array('title' => \View::$language->forum_sub_forum_error, 'description' => \View::$language->forum_sub_forum_page_not_found));
     }
     // get posts pagination
     $pagination = array();
     if ($subForum->topics_count > $gsfData->limit) {
         $pagination = \common\PaginationHelper::getItems('/forum/sub-forum?id=' . $subForum->id, $gsfData->page, $gsfData->limit, $subForum->topics_count);
     }
     // append breadcrumbs
     \common\BreadCrumbs::appendItems(array(new \common\BreadCrumbsItem('/forum/forum?id=' . $subForum->forum_id, $subForum->forum_title), new \common\BreadCrumbsItem(null, $subForum->title)));
     // assign data into view
     \View::assign(array('title' => $subForum->title, 'subForum' => $subForum, 'topics' => $topics, 'pagination' => $pagination));
     // set output layout
     \View::setLayout('forum-sub-forum.phtml');
 }
Beispiel #9
0
 /**
  * indexAction
  *
  * Index action of forum controller forum module
  *
  * @return null
  */
 public function indexAction()
 {
     \View::addLanguageItem('forumForumController');
     // validate request params
     $gfForm = new forms\GetForum();
     $gfForm->validate();
     // invalid request params
     if (!$gfForm->isValid()) {
         throw new \SystemErrorException(array('title' => \View::$language->forum_forum_error, 'description' => \View::$language->forum_forum_request_invalid));
     }
     // get forum tree
     $forum = helpers\ForumsTreeHelper::getTree($gfForm->getData()->id);
     if (!$forum) {
         throw new \MemberErrorException(array('code' => 404, 'title' => \View::$language->forum_forum_error, 'description' => \View::$language->forum_forum_forum_not_found));
     }
     // append breadcrumbs
     \common\BreadCrumbs::appendItem(new \common\BreadCrumbsItem(null, $forum[0]->title));
     // assign data into view
     \View::assign(array('title' => $forum[0]->title, 'forum' => $forum[0]));
     // set output layout
     \View::setLayout('forum-forum.phtml');
 }
Beispiel #10
0
 /**
  * __construct
  *
  * User registration form class constructor.
  * Definition of validation rules
  *
  * @return null
  */
 public function __construct()
 {
     parent::__construct();
     \View::addLanguageItem('RegisterForm');
     $this->_rules = array('email' => array(array('negation', 'IsString', \View::$language->register_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->register_form_email_is_empty), array('negation', 'Email', \View::$language->register_form_email_invalid)), 'login' => array(array('negation', 'IsString', \View::$language->register_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->register_form_login_is_empty)), 'password' => array(array('negation', 'IsString', \View::$language->register_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->register_form_password_is_empty)), 'confirm_password' => array(array('negation', 'IsString', \View::$language->register_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->register_form_password_confirm_is_empty)), 'protection_code' => array(array('negation', 'IsString', \View::$language->register_form_data_invalid), array('filter', 'ToString'), array('filter', 'Trim'), array('assertion', 'IsEmpty', \View::$language->register_form_protection_code_is_empty)));
 }
Beispiel #11
0
 /**
  * runBefore
  *
  * Run before action
  *
  * @return null
  */
 public function runBefore()
 {
     \View::addLanguageItem('registerController');
 }
Beispiel #12
0
 /**
  * runBefore
  *
  * Run before action
  *
  * @return null
  */
 public function runBefore()
 {
     \View::addLanguageItem('documentationMainController');
     \common\BreadCrumbs::appendItem(new \common\BreadCrumbsItem('/documentation', \View::$language->documentation_main_title));
 }
Beispiel #13
0
 /**
  * runBefore
  *
  * Run before action
  *
  * @return null
  */
 public function runBefore()
 {
     \View::addLanguageItem('forumMainController');
     \common\BreadCrumbs::appendItem(new \common\BreadCrumbsItem('/forum', \View::$language->forum_main_title));
 }
Beispiel #14
0
 /**
  * indexAction
  *
  * Index action (home page) of main controller main module
  *
  * @return null
  */
 public function indexAction()
 {
     \View::addLanguageItem('mainMainController');
     \View::assign('title', \View::$language->main_main_title);
     \View::setLayout('main.phtml');
 }