/** * 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; }
/** * 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'); }
/** * 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); }
/** * 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'); }
/** * __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)); } }
/** * 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' => '/')); }
/** * 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'); }
/** * 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'); }
/** * __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))); }
/** * runBefore * * Run before action * * @return null */ public function runBefore() { \View::addLanguageItem('registerController'); }
/** * runBefore * * Run before action * * @return null */ public function runBefore() { \View::addLanguageItem('documentationMainController'); \common\BreadCrumbs::appendItem(new \common\BreadCrumbsItem('/documentation', \View::$language->documentation_main_title)); }
/** * runBefore * * Run before action * * @return null */ public function runBefore() { \View::addLanguageItem('forumMainController'); \common\BreadCrumbs::appendItem(new \common\BreadCrumbsItem('/forum', \View::$language->forum_main_title)); }
/** * 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'); }