Пример #1
0
 /**
  * @desc This function required object Notation containing the module_name, id_in_module, user_id, note and notation_scale.
  * @param object $notation Notation
  */
 public static function display_active_image(Notation $notation)
 {
     $note_post = AppContext::get_request()->get_int('note', 0);
     $id_post = AppContext::get_request()->get_int('id', 0);
     if (!empty($note_post) && !empty($id_post)) {
         $notation->set_id_in_module($id_post);
         $notation->set_note($note_post);
         self::register_notation($notation);
     } else {
         $template = new FileTemplate('framework/content/notation/notation.tpl');
         $average_notes = $notation->get_average_notes();
         $int = intval($average_notes);
         $decimal = floatval('0.' . substr($average_notes, strpos($average_notes, '.') + 1));
         for ($i = 1; $i <= $notation->get_notation_scale(); $i++) {
             $star_full = false;
             $star_half = false;
             $star_empty = false;
             if ($int >= $i || $int + 1 == $i && $decimal >= 0.75) {
                 $star_full = true;
             } else {
                 if ($int + 1 == $i && $decimal > 0.25 && $decimal < 0.75) {
                     $star_half = true;
                 } else {
                     $star_empty = true;
                 }
             }
             $template->assign_block_vars('star', array('I' => $i, 'STAR_EMPTY' => $star_empty, 'STAR_HALF' => $star_half, 'STAR_FULL' => $star_full));
         }
         $count_notes = $notation->get_number_notes();
         $template->put_all(array('C_JS_NOT_ALREADY_INCLUDED' => !self::$js_already_included, 'C_NOTES' => $count_notes > 0 ? true : false, 'C_MORE_1_NOTES' => $count_notes > 1 ? true : false, 'CURRENT_URL' => REWRITED_SCRIPT, 'ID_IN_MODULE' => $notation->get_id_in_module(), 'NOTATION_SCALE' => $notation->get_notation_scale(), 'NUMBER_NOTES' => $count_notes, 'AVERAGE_NOTES' => $average_notes, 'ALREADY_NOTE' => $notation->user_already_noted(), 'L_NO_NOTE' => LangLoader::get_message('no_note', 'common'), 'L_AUTH_ERROR' => LangLoader::get_message('error.auth', 'status-messages-common'), 'L_ALREADY_NOTE' => self::$lang['already_vote'], 'L_NOTES' => LangLoader::get_message('notes', 'common'), 'L_NOTE' => LangLoader::get_message('note', 'common'), 'L_VALID_NOTE' => LangLoader::get_message('add_note', 'common')));
         self::$js_already_included = true;
         return $template->render();
     }
 }
 public function retrieve_value()
 {
     $request = AppContext::get_request();
     $config = ContactConfig::load();
     $fields = $config->get_fields();
     $recipients_field_id = $config->get_field_id_by_name('f_recipients');
     $recipients_field = new ContactField();
     $recipients_field->set_properties($fields[$recipients_field_id]);
     $recipients = $recipients_field->get_possible_values();
     $nb_recipients = count($recipients);
     $recipients_keys = array_keys($recipients);
     $values = array();
     for ($i = 0; $i <= $this->max_input; $i++) {
         $field_name = 'field_name_' . $this->get_html_id() . '_' . $i;
         if ($request->has_postparameter($field_name)) {
             $field_is_default = 'field_is_default_' . $this->get_html_id() . '_' . $i;
             $field_title = 'field_name_' . $this->get_html_id() . '_' . $i;
             $field_email = 'field_email_' . $this->get_html_id() . '_' . $i;
             $email = $i > 0 ? $request->get_poststring($field_email) : true;
             if ($request->get_poststring($field_title) && $email) {
                 $id = $i < $nb_recipients ? $recipients_keys[$i] : preg_replace('/\\s+/', '', $request->get_poststring($field_name));
                 $values[$id] = array('is_default' => $request->get_postint($field_is_default, 0), 'title' => addslashes($request->get_poststring($field_title)), 'email' => $request->get_poststring($field_email, ''));
             }
         }
     }
     $this->set_value($values);
 }
    private function build_form()
    {
        $mail_request = AppContext::get_request()->get_string('mail_newsletter', '');
        if (AppContext::get_current_user()->check_level(User::MEMBER_LEVEL) && empty($mail_request)) {
            $email = AppContext::get_current_user()->get_email();
        } else {
            $email = $mail_request;
        }
        $form = new HTMLForm(__CLASS__);
        $fieldset = new FormFieldsetHTML('unsubscribe.newsletter', $this->lang['unsubscribe.newsletter']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldMailEditor('mail', $this->lang['subscribe.mail'], $email, array('required' => true)));
        $fieldset->add_field(new FormFieldCheckbox('delete_all_streams', $this->lang['newsletter.delete_all_streams'], FormFieldCheckbox::UNCHECKED, array('events' => array('click' => '
		if (HTMLForms.getField("delete_all_streams").getValue()) {
			HTMLForms.getField("choice").disable();
		} else { 
			HTMLForms.getField("choice").enable();
		}'))));
        $newsletter_subscribe = AppContext::get_current_user()->check_level(User::MEMBER_LEVEL) ? NewsletterService::get_member_id_streams(AppContext::get_current_user()->get_id()) : array();
        $fieldset->add_field(new FormFieldMultipleCheckbox('choice', $this->lang['unsubscribe.newsletter_choice'], $newsletter_subscribe, $this->get_streams(), array('required' => true)));
        $this->submit_button = new FormButtonDefaultSubmit();
        $form->add_button($this->submit_button);
        $form->add_button(new FormButtonReset());
        $this->form = $form;
    }
 private function try_execute()
 {
     $this->load_env();
     $this->object_id = AppContext::get_request()->get_getint('menu_config_id');
     $menu_config = MenuConfigurationDAO::instance()->find_by_id($this->object_id);
     $this->view->put_all(array('NAME' => $menu_config->get_name(), 'MATCH_REGEX' => $menu_config->get_match_regex(), 'U_CONFIGURE' => MenuUrlBuilder::menu_configuration_configure($menu_config->get_id())->rel(), 'U_LIST' => MenuUrlBuilder::menu_configuration_list()->rel()));
 }
Пример #5
0
 public static function __static()
 {
     $config = SessionsConfig::load();
     self::$DATA_COOKIE_NAME = $config->get_cookie_name() . '_data';
     self::$AUTOCONNECT_COOKIE_NAME = $config->get_cookie_name() . '_autoconnect';
     self::$request = AppContext::get_request();
     self::$response = AppContext::get_response();
 }
Пример #6
0
 public static function get_last_comment_added($user_id)
 {
     if ($user_id !== '-1') {
         return self::$db_querier->get_column_value(DB_TABLE_COMMENTS, 'MAX(timestamp)', 'WHERE user_id=:user_id', array('user_id' => $user_id));
     } else {
         return self::$db_querier->get_column_value(DB_TABLE_COMMENTS, 'MAX(timestamp)', 'WHERE user_ip=:user_ip', array('user_ip' => AppContext::get_request()->get_ip_address()));
     }
 }
Пример #7
0
 function Add_msg($idtopic, $idcat, $contents, $title, $last_page, $last_page_rewrite, $new_topic = false)
 {
     global $LANG;
     ##### Insertion message #####
     $last_timestamp = time();
     $result = PersistenceContext::get_querier()->insert(PREFIX . 'forum_msg', array('idtopic' => $idtopic, 'user_id' => AppContext::get_current_user()->get_id(), 'contents' => FormatingHelper::strparse($contents), 'timestamp' => $last_timestamp, 'timestamp_edit' => 0, 'user_id_edit' => 0, 'user_ip' => AppContext::get_request()->get_ip_address()));
     $last_msg_id = $result->get_last_inserted_id();
     //Topic
     PersistenceContext::get_querier()->inject("UPDATE " . PREFIX . "forum_topics SET " . ($new_topic ? '' : 'nbr_msg = nbr_msg + 1, ') . "last_user_id = '" . AppContext::get_current_user()->get_id() . "', last_msg_id = '" . $last_msg_id . "', last_timestamp = '" . $last_timestamp . "' WHERE id = '" . $idtopic . "'");
     //On met à jour le last_topic_id dans la catégorie dans le lequel le message a été posté
     PersistenceContext::get_querier()->update(ForumSetup::$forum_cats_table, array('last_topic_id' => $idtopic), 'WHERE id = :id', array('id' => $idcat));
     //Mise à jour du nombre de messages du membre.
     PersistenceContext::get_querier()->inject("UPDATE " . DB_TABLE_MEMBER . " SET posted_msg = posted_msg + 1 WHERE user_id = '" . AppContext::get_current_user()->get_id() . "'");
     //On marque le topic comme lu.
     mark_topic_as_read($idtopic, $last_msg_id, $last_timestamp);
     ##### Gestion suivi du sujet mp/mail #####
     if (!$new_topic) {
         //Message précédent ce nouveau message.
         $previous_msg_id = 0;
         try {
             $previous_msg_id = PersistenceContext::get_querier()->get_column_value(PREFIX . "forum_msg", 'MAX(id)', 'WHERE idtopic = :idtopic AND id < :id', array('idtopic' => $idtopic, 'id' => $last_msg_id));
         } catch (RowNotFoundException $e) {
         }
         $title_subject = TextHelper::html_entity_decode($title);
         $title_subject_pm = $title_subject;
         if (AppContext::get_current_user()->get_id() > 0) {
             $pseudo = '';
             try {
                 $pseudo = PersistenceContext::get_querier()->get_column_value(DB_TABLE_MEMBER, 'display_name', 'WHERE user_id = :id', array('id' => AppContext::get_current_user()->get_id()));
             } catch (RowNotFoundException $e) {
             }
             $pseudo_pm = '<a href="' . UserUrlBuilder::profile(AppContext::get_current_user()->get_id())->rel() . '">' . $pseudo . '</a>';
         } else {
             $pseudo = $LANG['guest'];
             $pseudo_pm = $LANG['guest'];
         }
         $next_msg_link = '/forum/topic' . url('.php?id=' . $idtopic . $last_page, '-' . $idtopic . $last_page_rewrite . '.php') . ($previous_msg_id ? '#m' . $previous_msg_id : '');
         $preview_contents = substr($contents, 0, 300);
         //Récupération des membres suivant le sujet.
         $max_time = time() - SessionsConfig::load()->get_active_session_duration();
         $result = PersistenceContext::get_querier()->select("SELECT m.user_id, m.display_name, m.email, tr.pm, tr.mail, v.last_view_id\n\t\t\tFROM " . PREFIX . "forum_track tr\n\t\t\tLEFT JOIN " . DB_TABLE_MEMBER . " m ON m.user_id = tr.user_id\n\t\t\tLEFT JOIN " . PREFIX . "forum_view v ON v.idtopic = :idtopic AND v.user_id = tr.user_id\n\t\t\tWHERE tr.idtopic = :idtopic AND v.last_view_id IS NOT NULL AND m.user_id != :user_id", array('idtopic' => $idtopic, 'user_id' => AppContext::get_current_user()->get_id()));
         while ($row = $result->fetch()) {
             //Envoi un Mail à ceux dont le last_view_id est le message précedent.
             if ($row['last_view_id'] == $previous_msg_id && $row['mail'] == '1') {
                 AppContext::get_mail_service()->send_from_properties($row['email'], $LANG['forum_mail_title_new_post'], sprintf($LANG['forum_mail_new_post'], $row['display_name'], $title_subject, AppContext::get_current_user()->get_display_name(), $preview_contents, HOST . DIR . $next_msg_link, HOST . DIR . '/forum/action.php?ut=' . $idtopic . '&trt=1', 1));
             }
             //Envoi un MP à ceux dont le last_view_id est le message précedent.
             if ($row['last_view_id'] == $previous_msg_id && $row['pm'] == '1') {
                 $content = sprintf($LANG['forum_mail_new_post'], $row['display_name'], $title_subject_pm, AppContext::get_current_user()->get_display_name(), $preview_contents, '<a href="' . $next_msg_link . '">' . $next_msg_link . '</a>', '<a href="/forum/action.php?ut=' . $idtopic . '&trt=2">/forum/action.php?ut=' . $idtopic . '&trt=2</a>');
                 PrivateMsg::start_conversation($row['user_id'], $LANG['forum_mail_title_new_post'], nl2br($content), '-1', PrivateMsg::SYSTEM_PM);
             }
         }
         $result->dispose();
         forum_generate_feeds();
         //Regénération du flux rss.
     }
     return $last_msg_id;
 }
 /**
  * {@inheritdoc}
  */
 public function retrieve_value()
 {
     $request = AppContext::get_request();
     if ($request->has_parameter($this->get_html_id())) {
         $this->set_value($request->get_value($this->get_html_id()) == 'on');
     } else {
         $this->set_value(false);
     }
 }
Пример #9
0
 /**
  * @desc This function display the comments
  * @param class CommentsTopic $topic
  * @return Template is a template object
  */
 public static function display(CommentsTopic $topic)
 {
     $module_id = $topic->get_module_id();
     $id_in_module = $topic->get_id_in_module();
     $topic_identifier = $topic->get_topic_identifier();
     $authorizations = $topic->get_authorizations();
     if (!$authorizations->is_authorized_read()) {
         self::$template->put('KEEP_MESSAGE', MessageHelper::display(self::$comments_lang['comments.not-authorized.read'], MessageHelper::NOTICE));
     } else {
         $edit_comment_id = AppContext::get_request()->get_getint('edit_comment', 0);
         $delete_comment_id = AppContext::get_request()->get_getint('delete_comment', 0);
         try {
             $lock = AppContext::get_request()->get_getbool('lock');
             if ($authorizations->is_authorized_moderation()) {
                 if ($lock) {
                     if (!CommentsTopicDAO::topic_exists($module_id, $id_in_module, $topic_identifier)) {
                         CommentsTopicDAO::create_topic($module_id, $id_in_module, $topic_identifier, $topic->get_path());
                     }
                     CommentsManager::lock_topic($module_id, $id_in_module, $topic_identifier);
                 } else {
                     CommentsManager::unlock_topic($module_id, $id_in_module, $topic_identifier);
                 }
             }
             AppContext::get_response()->redirect($topic->get_path());
         } catch (UnexistingHTTPParameterException $e) {
         }
         if (!empty($delete_comment_id)) {
             self::verificate_authorized_edit_or_delete_comment($authorizations, $delete_comment_id);
             CommentsManager::delete_comment($delete_comment_id);
             AppContext::get_response()->redirect($topic->get_path());
         } elseif (!empty($edit_comment_id)) {
             self::verificate_authorized_edit_or_delete_comment($authorizations, $edit_comment_id);
             $edit_comment_form = EditCommentBuildForm::create($edit_comment_id, $topic->get_path());
             self::$template->put_all(array('C_DISPLAY_FORM' => true, 'COMMENT_FORM' => $edit_comment_form->display()));
         } else {
             if ($authorizations->is_authorized_post() && $authorizations->is_authorized_access_module()) {
                 $comments_topic_locked = CommentsManager::comment_topic_locked($module_id, $id_in_module, $topic_identifier);
                 $user_read_only = self::$user->get_delay_readonly();
                 if (!$authorizations->is_authorized_moderation() && $comments_topic_locked) {
                     self::$template->put('KEEP_MESSAGE', MessageHelper::display(self::$comments_lang['comment.locked'], MessageHelper::NOTICE));
                 } elseif (!empty($user_read_only) && $user_read_only > time()) {
                     self::$template->put('KEEP_MESSAGE', MessageHelper::display(self::$comments_lang['comments.user.read-only'], MessageHelper::NOTICE));
                 } else {
                     $add_comment_form = AddCommentBuildForm::create($topic);
                     self::$template->put_all(array('C_DISPLAY_FORM' => true, 'COMMENT_FORM' => $add_comment_form->display()));
                 }
             } else {
                 self::$template->put('KEEP_MESSAGE', MessageHelper::display(self::$comments_lang['comments.not-authorized.post'], MessageHelper::NOTICE));
             }
         }
         $number_comments_display = $topic->get_number_comments_display();
         $number_comments = self::$comments_cache->get_count_comments_by_module($module_id, $id_in_module, $topic_identifier);
         self::$template->put_all(array('COMMENTS_LIST' => self::display_comments($module_id, $id_in_module, $topic_identifier, $number_comments_display, $authorizations), 'MODULE_ID' => $module_id, 'ID_IN_MODULE' => $id_in_module, 'TOPIC_IDENTIFIER' => $topic_identifier, 'C_DISPLAY_VIEW_ALL_COMMENTS' => $number_comments > $number_comments_display, 'C_MODERATE' => $authorizations->is_authorized_moderation(), 'C_IS_LOCKED' => CommentsManager::comment_topic_locked($module_id, $id_in_module, $topic_identifier), 'U_LOCK' => CommentsUrlBuilder::lock_and_unlock($topic->get_path(), true)->rel(), 'U_UNLOCK' => CommentsUrlBuilder::lock_and_unlock($topic->get_path(), false)->rel()));
     }
     return self::$template;
 }
 private function do_call()
 {
     $controller = new $this->classname();
     if (!$controller instanceof Controller) {
         throw new NoSuchControllerException($this->classname);
     }
     $controller_to_execute = $controller->get_right_controller_regarding_authorizations();
     $response = $controller_to_execute->execute(AppContext::get_request());
     $response->send();
 }
Пример #11
0
 /**
  * {@inheritdoc}
  */
 public function retrieve_value()
 {
     parent::retrieve_value();
     $request = AppContext::get_request();
     $date = $this->get_value();
     $date->set_minutes($request->get_int($this->get_html_id() . '_minutes', 0));
     $date->set_hours($request->get_int($this->get_html_id() . '_hours', 0));
     // TODO Add a range constraint for the hours and minutes
     $this->set_value($date);
 }
Пример #12
0
 /**
  * @desc Cleans the output buffer and execute the given controller before exiting
  * @param Controller $controller the controller to execute
  */
 public static function redirect(Controller $controller)
 {
     AppContext::get_response()->clean_output();
     Environment::init_output_bufferization();
     $request = AppContext::get_request();
     $response = $controller->execute($request);
     $response->send();
     Environment::destroy();
     exit;
 }
 public function retrieve_value()
 {
     $request = AppContext::get_request();
     $values = array();
     for ($i = 0; $i < $this->max_input; $i++) {
         $id = 'field_' . $this->get_html_id() . '_' . $i;
         if ($request->has_postparameter($id)) {
             $values[] = $request->get_poststring($id);
         }
     }
     $this->set_value($values);
 }
Пример #14
0
 /**
  * @desc dispatch the current url argument to the first method matching
  * in the <code>UrlControllerMapper</code> list of the controller object
  * @throws NoUrlMatchException
  */
 public function dispatch()
 {
     $url = AppContext::get_request()->get_getstring('url', '');
     foreach ($this->url_controller_mappers as $url_controller_mapper) {
         if ($url_controller_mapper->match($url)) {
             $url_controller_mapper->call();
             Environment::destroy();
             return;
         }
     }
     throw new NoUrlMatchException($url);
     Environment::destroy();
 }
Пример #15
0
 public function is_valid()
 {
     if (!$this->is_available() || AppContext::get_current_user()->check_level(User::MEMBER_LEVEL)) {
         return true;
     }
     $answer = AppContext::get_request()->get_value($this->get_html_id(), '');
     $question_id = AppContext::get_request()->get_int($this->get_html_id() . '_question_id', 0);
     if (!empty($question_id)) {
         $question = new QuestionCaptchaQuestion();
         $question->set_properties(self::$questions[$question_id]);
         return in_array(trim(strtolower($answer)), $question->get_formated_answers());
     }
     return false;
 }
Пример #16
0
 /**
  * @desc Compute Stats of Site Referers
  */
 public static function compute_referer()
 {
     $referer = parse_url(AppContext::get_request()->get_url_referrer());
     if (!empty($referer)) {
         ########### Détection des mots clés ###########
         $is_search_engine = false;
         $search_engine = $query_param = '';
         if (!empty($referer['host'])) {
             $engines = array('dmoz' => 'q', 'aol' => 'q', 'ask' => 'q', 'google' => 'q', 'bing' => 'q', 'hotbot' => 'q', 'teoma' => 'q', 'exalead' => 'q', 'yahoo' => 'p', 'lycos' => 'query', 'kanoodle' => 'query', 'voila' => 'kw', 'baidu' => 'wd', 'yandex' => 'text');
             foreach ($engines as $engine => $param) {
                 if (strpos($referer['host'], $engine) !== false) {
                     $is_search_engine = true;
                     $search_engine = $engine;
                     $query_param = $param;
                     break;
                 }
             }
         }
         if ($is_search_engine) {
             $query = !empty($referer['query']) ? $referer['query'] . '&' : '';
             if (strpos($query, $query_param . '=') !== false) {
                 $pattern = '/' . $query_param . '=(.*?)&/si';
                 preg_match($pattern, $query, $matches);
                 $keyword = TextHelper::strprotect(utf8_decode(urldecode(strtolower($matches[1]))));
                 $check_search_engine = PersistenceContext::get_querier()->count(StatsSetup::$stats_referer_table, 'WHERE url = :url AND relative_url = :keyword', array('url' => $search_engine, 'keyword' => $keyword));
                 if (!empty($keyword)) {
                     if (!empty($check_search_engine)) {
                         PersistenceContext::get_querier()->inject("UPDATE " . StatsSetup::$stats_referer_table . " SET total_visit = total_visit + 1, today_visit = today_visit + 1, last_update = '" . time() . "' WHERE url = '" . $search_engine . "' AND relative_url = '" . $keyword . "'");
                     } else {
                         PersistenceContext::get_querier()->insert(StatsSetup::$stats_referer_table, array('url' => $search_engine, 'relative_url' => $keyword, 'total_visit' => 1, 'today_visit' => 1, 'yesterday_visit' => 0, 'nbr_day' => 1, 'last_update' => time(), 'type' => 1));
                     }
                 }
             }
         } elseif (!empty($referer['host'])) {
             $referer['scheme'] = !empty($referer['scheme']) ? $referer['scheme'] : 'http';
             ########### Détection du site de provenance ###########
             $url = addslashes($referer['scheme'] . '://' . $referer['host']);
             if (strpos($url, HOST) === false) {
                 $referer['path'] = !empty($referer['path']) ? $referer['path'] : '';
                 $relative_url = addslashes((substr($referer['path'], 0, 1) == '/' ? $referer['path'] : '/' . $referer['path']) . (!empty($referer['query']) ? '?' . $referer['query'] : '') . (!empty($referer['fragment']) ? '#' . $referer['fragment'] : ''));
                 $check_url = PersistenceContext::get_querier()->count(StatsSetup::$stats_referer_table, 'WHERE url = :url AND relative_url = :relative_url', array('url' => $url, 'relative_url' => $relative_url));
                 if (!empty($check_url)) {
                     PersistenceContext::get_querier()->inject("UPDATE " . StatsSetup::$stats_referer_table . " SET total_visit = total_visit + 1, today_visit = today_visit + 1, last_update = '" . time() . "' WHERE url = '" . $url . "' AND relative_url = '" . $relative_url . "'");
                 } else {
                     PersistenceContext::get_querier()->insert(StatsSetup::$stats_referer_table, array('url' => $url, 'relative_url' => $relative_url, 'total_visit' => 1, 'today_visit' => 1, 'yesterday_visit' => 0, 'nbr_day' => 1, 'last_update' => time(), 'type' => 0));
                 }
             }
         }
     }
 }
 private function init()
 {
     $this->current_user = AppContext::get_current_user();
     $request = AppContext::get_request();
     $id = $request->get_int('id', 0);
     $this->lang = LangLoader::get('common', 'bugtracker');
     try {
         $this->bug = BugtrackerService::get_bug('WHERE id=:id', array('id' => $id));
     } catch (RowNotFoundException $e) {
         $error_controller = new UserErrorController(LangLoader::get_message('error', 'status-messages-common'), $this->lang['error.e_unexist_bug']);
         DispatchManager::redirect($error_controller);
     }
     $this->view = new FileTemplate('bugtracker/BugtrackerDetailController.tpl');
     $this->view->add_lang($this->lang);
 }
Пример #18
0
 public static function add_comment($module_id, $id_in_module, $topic_identifier, $topic_path, $message, $pseudo = '')
 {
     if (!CommentsTopicDAO::topic_exists($module_id, $id_in_module, $topic_identifier)) {
         $id_topic = CommentsTopicDAO::create_topic($module_id, $id_in_module, $topic_identifier, $topic_path);
     } else {
         $id_topic = CommentsTopicDAO::get_id_topic_module($module_id, $id_in_module, $topic_identifier);
     }
     if (self::$user->check_level(User::MEMBER_LEVEL)) {
         $id_comment = CommentsDAO::add_comment($id_topic, $message, self::$user->get_id(), self::$user->get_display_name(), AppContext::get_request()->get_ip_address());
     } else {
         $id_comment = CommentsDAO::add_comment($id_topic, $message, self::$user->get_id(), $pseudo, AppContext::get_request()->get_ip_address());
     }
     CommentsTopicDAO::incremente_number_comments_topic($id_topic);
     self::regenerate_cache();
     return $id_comment;
 }
 public function retrieve_value()
 {
     $request = AppContext::get_request();
     $values = array();
     $field_is_default = 'field_is_default_' . $this->get_html_id();
     $default_field = $request->get_postint($field_is_default, 0);
     for ($i = 0; $i <= $this->max_input; $i++) {
         $field_name = 'field_name_' . $this->get_html_id() . '_' . $i;
         if ($request->has_postparameter($field_name)) {
             if ($request->get_poststring($field_name)) {
                 $values[preg_replace('/\\s+/', '', $request->get_poststring($field_name))] = array('is_default' => $default_field == $i, 'title' => addslashes($request->get_poststring($field_name)));
             }
         }
     }
     $this->set_value($values);
 }
 public static function register_404()
 {
     if (!empty($_SERVER['REQUEST_URI'])) {
         $requested_url = substr($_SERVER['REQUEST_URI'], 0, 255);
         $from_url = (string) substr(AppContext::get_request()->get_url_referrer(), 0, 255);
         $error_404 = null;
         $result = AdminError404DAO::instance()->find_by_criteria('WHERE requested_url=:requested_url AND from_url=:from_url', array('requested_url' => $requested_url, 'from_url' => $from_url));
         if ($result->get_rows_count() > 0 && $result->has_next()) {
             $error_404 = $result->fetch();
             $error_404->increment();
         } else {
             $error_404 = new AdminError404($requested_url, $from_url);
         }
         AdminError404DAO::instance()->save($error_404);
     }
 }
 public function retrieve_value()
 {
     $request = AppContext::get_request();
     if ($request->has_parameter($this->get_html_id())) {
         $selected_options = $request->get_array($this->get_html_id());
         $value = array();
         foreach ($this->get_options() as $option) {
             if (in_array($option->get_raw_value(), $selected_options)) {
                 $value[] = $option;
             }
         }
         $this->set_value($value);
     } else {
         $this->set_value(array());
     }
 }
 private function add_language_bar()
 {
     $lang = AppContext::get_request()->get_string('lang', self::UPDATE_DEFAULT_LANGUAGE);
     $lang_dir = new Folder(PATH_TO_ROOT . '/lang');
     $langs = array();
     foreach ($lang_dir->get_folders('`^[a-z_-]+$`i') as $folder) {
         $info_lang = load_ini_file(PATH_TO_ROOT . '/lang/', $folder->get_name());
         if (!empty($info_lang['name'])) {
             $langs[] = array('LANG' => $folder->get_name(), 'LANG_NAME' => $info_lang['name'], 'SELECTED' => $folder->get_name() == $lang ? 'selected="selected"' : '');
             if ($folder->get_name() == $lang) {
                 $this->full_view->put('LANG_IDENTIFIER', $info_lang['identifier']);
             }
         }
     }
     $this->full_view->put('lang', $langs);
 }
 private function get_event()
 {
     if ($this->event === null) {
         $id = AppContext::get_request()->get_getint('id', 0);
         if (!empty($id)) {
             try {
                 $this->event = CalendarService::get_event('WHERE id_event = :id', array('id' => $id));
             } catch (RowNotFoundException $e) {
                 $error_controller = PHPBoostErrors::unexisting_page();
                 DispatchManager::redirect($error_controller);
             }
         } else {
             $this->event = new CalendarEvent();
         }
     }
     return $this->event;
 }
 private function get_weblink()
 {
     if ($this->weblink === null) {
         $id = AppContext::get_request()->get_getint('id', 0);
         if (!empty($id)) {
             try {
                 $this->weblink = WebService::get_weblink('WHERE web.id = :id', array('id' => $id));
             } catch (RowNotFoundException $e) {
                 $error_controller = PHPBoostErrors::unexisting_page();
                 DispatchManager::redirect($error_controller);
             }
         } else {
             $this->weblink = new WebLink();
         }
     }
     return $this->weblink;
 }
 private function add_language_bar()
 {
     $lang = TextHelper::htmlspecialchars(AppContext::get_request()->get_string('lang', InstallController::DEFAULT_LOCALE));
     $lang = in_array($lang, InstallationServices::get_available_langs()) ? $lang : InstallController::DEFAULT_LOCALE;
     $lang_dir = new Folder(PATH_TO_ROOT . '/lang');
     $langs = array();
     foreach ($lang_dir->get_folders('`^[a-z_-]+$`i') as $folder) {
         $info_lang = load_ini_file(PATH_TO_ROOT . '/lang/', $folder->get_name());
         if (!empty($info_lang['name'])) {
             $langs[] = array('LANG' => $folder->get_name(), 'LANG_NAME' => $info_lang['name'], 'SELECTED' => $folder->get_name() == $lang ? 'selected="selected"' : '');
             if ($folder->get_name() == $lang) {
                 $this->full_view->put('LANG_IDENTIFIER', $info_lang['identifier']);
             }
         }
     }
     $this->full_view->put('lang', $langs);
 }
 public function get_menu_content()
 {
     global $LANG;
     $poll_config = PollConfig::load();
     $config_cookie_name = $poll_config->get_cookie_name();
     $polls = PollMiniMenuCache::load()->get_polls();
     //Chargement de la langue du module.
     load_module_lang('poll');
     $rand = array_rand($polls);
     $poll_mini = $polls[$rand];
     //Sondage aléatoire.
     $tpl = new FileTemplate('poll/poll_mini.tpl');
     #####################Résultats######################
     //Si le cookie existe, on redirige vers les resulats, sinon on prend en compte le vote (vérification par ip plus tard).
     $array_cookie = array();
     if (AppContext::get_request()->has_cookieparameter($config_cookie_name)) {
         $array_cookie = explode('/', AppContext::get_request()->get_cookie($config_cookie_name));
     }
     if (in_array($poll_mini['id'], $array_cookie)) {
         $tpl->put_all(array('L_VOTE' => $poll_mini['total'] > 1 ? $LANG['poll_vote_s'] : $LANG['poll_vote']));
         $tpl->assign_block_vars('result', array('QUESTION' => $poll_mini['question'], 'VOTES' => $poll_mini['total']));
         foreach ($poll_mini['votes'] as $answer => $width) {
             $tpl->assign_block_vars('result.answers', array('ANSWERS' => $answer, 'WIDTH' => NumberHelper::round($width, 0), 'PERCENT' => $width));
         }
     } else {
         #####################Questions######################
         $tpl->put_all(array('L_MINI_POLL' => $LANG['mini_poll'], 'L_VOTE' => $LANG['poll_vote'], 'L_POLL_RESULT' => $LANG['poll_result'], 'U_POLL_RESULT' => url('.php?id=' . $poll_mini['id'] . '&amp;r=1', '-' . $poll_mini['id'] . '-1.php')));
         $tpl->assign_block_vars('question', array('ID' => url('.php?id=' . $poll_mini['id'], '-' . $poll_mini['id'] . '.php'), 'QUESTION' => $poll_mini['question']));
         $z = 0;
         if ($poll_mini['type'] == '1') {
             if (is_array($poll_mini['votes'])) {
                 // FIXME should always be an array, needs to patch cache generation
                 foreach ($poll_mini['votes'] as $answer => $width) {
                     $tpl->assign_block_vars('question.radio', array('NAME' => $z, 'ANSWERS' => $answer));
                     $z++;
                 }
             }
         } elseif ($poll_mini['type'] == '0') {
             foreach ($poll_mini['votes'] as $answer => $width) {
                 $tpl->assign_block_vars('question.checkbox', array('NAME' => $z, 'ANSWERS' => $answer));
                 $z++;
             }
         }
     }
     return $tpl->render();
 }
 private function get_downloadfile()
 {
     if ($this->downloadfile === null) {
         $id = AppContext::get_request()->get_getint('id', 0);
         if (!empty($id)) {
             try {
                 $this->downloadfile = DownloadService::get_downloadfile('WHERE download.id = :id', array('id' => $id));
             } catch (RowNotFoundException $e) {
                 $error_controller = PHPBoostErrors::unexisting_page();
                 DispatchManager::redirect($error_controller);
             }
         } else {
             $this->downloadfile = new DownloadFile();
         }
     }
     return $this->downloadfile;
 }
 public function retrieve_value()
 {
     $request = AppContext::get_request();
     $values = array();
     for ($i = 1; $i <= $this->max_input; $i++) {
         $field_label_id = 'field_label_' . $this->get_html_id() . '_' . $i;
         if ($request->has_postparameter($field_label_id)) {
             $field_answers_id = 'field_answers_' . $this->get_html_id() . '_' . $i;
             $field_label = $request->get_poststring($field_label_id);
             $field_answers = $request->get_poststring($field_answers_id);
             if (!empty($field_label) && !empty($field_answers)) {
                 $values[$i] = array('label' => TextHelper::htmlspecialchars($field_label), 'answers' => TextHelper::htmlspecialchars($field_answers));
             }
         }
     }
     $this->set_value($values);
 }
Пример #29
0
 public function get_actions_tree_links()
 {
     $lang = LangLoader::get('common', 'gallery');
     $tree = new ModuleTreeLinks();
     $manage_categories_link = new AdminModuleLink(LangLoader::get_message('categories.manage', 'categories-common'), GalleryUrlBuilder::manage_categories());
     $manage_categories_link->add_sub_link(new AdminModuleLink(LangLoader::get_message('categories.manage', 'categories-common'), GalleryUrlBuilder::manage_categories()));
     $manage_categories_link->add_sub_link(new AdminModuleLink(LangLoader::get_message('category.add', 'categories-common'), GalleryUrlBuilder::add_category()));
     $tree->add_link($manage_categories_link);
     $manage_gallery_link = new AdminModuleLink($lang['gallery.manage'], GalleryUrlBuilder::manage());
     $manage_gallery_link->add_sub_link(new AdminModuleLink($lang['gallery.manage'], GalleryUrlBuilder::manage()));
     $manage_gallery_link->add_sub_link(new AdminModuleLink($lang['gallery.actions.add'], GalleryUrlBuilder::admin_add(AppContext::get_request()->get_getstring('id_category', 0))));
     $tree->add_link($manage_gallery_link);
     $tree->add_link(new AdminModuleLink(LangLoader::get_message('configuration', 'admin-common'), GalleryUrlBuilder::configuration()));
     if (!AppContext::get_current_user()->check_level(User::ADMIN_LEVEL)) {
         $tree->add_link(new ModuleLink($lang['gallery.actions.add'], GalleryUrlBuilder::add(AppContext::get_request()->get_getstring('id_category', 0)), GalleryAuthorizationsService::check_authorizations()->write()));
     }
     return $tree;
 }
Пример #30
0
 public function __construct($name, $value, $timestamp = null)
 {
     $this->name = $name;
     $this->value = stripslashes($value);
     if (AppContext::get_request()->get_is_https()) {
         $this->set_secure(true);
     }
     $site_path = GeneralConfig::load()->get_site_path();
     if (!empty($site_path)) {
         $this->path = $site_path;
     }
     if ($timestamp == null) {
         $this->expiration_date = time() + 3600 * 744;
         //1 month
     } else {
         $this->expiration_date = $timestamp;
     }
 }