public function execute(HTTPRequestCustom $request)
 {
     $id = $request->get_getint('id', 0);
     PersistenceContext::get_querier()->delete(DB_TABLE_SMILEYS, 'WHERE idsmiley = :id', array('id' => $id));
     ###### Régénération du cache des smileys #######
     SmileysCache::invalidate();
     AppContext::get_response()->redirect(AdminSmileysUrlBuilder::management());
 }
 private function build_table()
 {
     $table_model = new HTMLTableModel('table', array(new HTMLTableColumn($this->lang['smiley']), new HTMLTableColumn(LangLoader::get_message('code', 'main')), new HTMLTableColumn('')), new HTMLTableSortingRule(''), HTMLTableModel::NO_PAGINATION);
     $table = new HTMLTable($table_model);
     $table_model->set_caption($this->lang['smiley_management']);
     $results = array();
     foreach (SmileysCache::load()->get_smileys() as $code => $row) {
         $edit_link = new LinkHTMLElement(AdminSmileysUrlBuilder::edit($row['idsmiley']), '', array('title' => LangLoader::get_message('edit', 'common')), 'fa fa-edit');
         $delete_link = new LinkHTMLElement(AdminSmileysUrlBuilder::delete($row['idsmiley']), '', array('title' => LangLoader::get_message('delete', 'common'), 'data-confirmation' => 'delete-element'), 'fa fa-delete');
         $results[] = new HTMLTableRow(array(new HTMLTableRowCell(new ImgHTMLElement(Url::to_rel('/images/smileys/') . $row['url_smiley'], array('id' => 'smiley-' . $row['idsmiley'] . '-img', 'alt' => ''))), new HTMLTableRowCell($code), new HTMLTableRowCell($edit_link->display() . $delete_link->display())));
     }
     $table->set_rows(count($results), $results);
     $this->view->put('table', $table->display());
 }
Ejemplo n.º 3
0
 /**
  * @desc Unparse the smiley's code of the content of the parser.
  * Replace the HTML code by the smiley code (for instance :) or :|)
  */
 protected function unparse_smilies()
 {
     //Smilies
     $smileys_cache = SmileysCache::load()->get_smileys();
     if (!empty($smileys_cache)) {
         //Création du tableau de remplacement
         foreach ($smileys_cache as $code => $infos) {
             $smiley_img_url[] = '`<img src="([^"]+)?/images/smileys/' . preg_quote($infos['url_smiley']) . '(.*) />`sU';
             $smiley_code[] = $code;
         }
         $this->content = preg_replace($smiley_img_url, $smiley_code, $this->content);
         foreach ($smileys_cache as $code => $infos) {
             $smiley_img_url[] = '`<img class="smiley" title="' . preg_quote($code) . '"(.*) />`sU';
             $smiley_code[] = $code;
         }
         $this->content = preg_replace($smiley_img_url, $smiley_code, $this->content);
     }
 }
 public function get_menu_content()
 {
     //Create file template
     $tpl = new FileTemplate('shoutbox/ShoutboxModuleMiniMenu.tpl');
     //Assign the lang file to the tpl
     $tpl->add_lang(LangLoader::get('common', 'shoutbox'));
     $config = ShoutboxConfig::load();
     $forbidden_tags = array_flip($config->get_forbidden_formatting_tags());
     if ($config->is_shout_bbcode_enabled()) {
         $smileys_cache = SmileysCache::load();
         $smileys_per_line = 5;
         //Smileys par ligne.
         $smileys_displayed_number = 0;
         foreach ($smileys_cache->get_smileys() as $code_smile => $infos) {
             $smileys_displayed_number++;
             $tpl->assign_block_vars('smileys', array('C_END_LINE' => $smileys_displayed_number % $smileys_per_line == 0, 'URL' => TPL_PATH_TO_ROOT . '/images/smileys/' . $infos['url_smiley'], 'CODE' => addslashes($code_smile)));
         }
     }
     $tpl->put_all(array('C_MEMBER' => AppContext::get_current_user()->check_level(User::MEMBER_LEVEL), 'C_DISPLAY_FORM' => ShoutboxAuthorizationsService::check_authorizations()->write() && !AppContext::get_current_user()->is_readonly(), 'C_VALIDATE_ONKEYPRESS_ENTER' => $config->is_validation_onkeypress_enter_enabled(), 'C_DISPLAY_SHOUT_BBCODE' => ModulesManager::is_module_installed('BBCode') && $config->is_shout_bbcode_enabled(), 'C_BOLD_DISABLED' => isset($forbidden_tags['b']), 'C_ITALIC_DISABLED' => isset($forbidden_tags['i']), 'C_UNDERLINE_DISABLED' => isset($forbidden_tags['u']), 'C_STRIKE_DISABLED' => isset($forbidden_tags['s']), 'C_AUTOMATIC_REFRESH_ENABLED' => $config->is_automatic_refresh_enabled(), 'SHOUTBOX_PSEUDO' => AppContext::get_current_user()->get_display_name(), 'SHOUT_REFRESH_DELAY' => $config->get_refresh_delay(), 'L_ALERT_LINK_FLOOD' => sprintf(LangLoader::get_message('e_l_flood', 'errors'), $config->get_max_links_number_per_message()), 'SHOUTBOX_MESSAGES' => ShoutboxAjaxRefreshMessagesController::get_view()));
     return $tpl->render();
 }
Ejemplo n.º 5
0
 /**
  * @desc Display the editor
  * @return string Formated editor.
  */
 public function display()
 {
     global $LANG;
     $template = $this->get_template();
     $smileys_cache = SmileysCache::load();
     $bbcode_lang = LangLoader::get('common', 'BBCode');
     $template->put_all(array('PAGE_PATH' => $_SERVER['PHP_SELF'], 'C_EDITOR_NOT_ALREADY_INCLUDED' => !self::$editor_already_included, 'FIELD' => $this->identifier, 'FORBIDDEN_TAGS' => !empty($this->forbidden_tags) ? implode(',', $this->forbidden_tags) : '', 'C_UPLOAD_MANAGEMENT' => AppContext::get_current_user()->check_auth(FileUploadConfig::load()->get_authorization_enable_interface_files(), FileUploadConfig::AUTH_FILES_BIT), 'L_REQUIRE_TEXT' => $LANG['require_text'], 'L_BB_UPLOAD' => $bbcode_lang['bb_upload'], 'L_BB_SMILEYS' => $bbcode_lang['bb_smileys'], 'L_BB_BOLD' => $bbcode_lang['bb_bold'], 'L_BB_ITALIC' => $bbcode_lang['bb_italic'], 'L_BB_UNDERLINE' => $bbcode_lang['bb_underline'], 'L_BB_STRIKE' => $bbcode_lang['bb_strike'], 'L_BB_TITLE' => $bbcode_lang['bb_title'], 'L_BB_CONTAINER' => $bbcode_lang['bb_container'], 'L_BB_HTML' => $bbcode_lang['bb_html'], 'L_BB_STYLE' => $bbcode_lang['bb_style'], 'L_BB_URL' => $bbcode_lang['bb_link'], 'L_BB_IMAGE' => $bbcode_lang['bb_picture'], 'L_BB_LIGHTBOX' => $bbcode_lang['bb_lightbox'], 'L_BB_QUOTE' => $bbcode_lang['bb_quote'], 'L_BB_HIDE' => $bbcode_lang['bb_hide'], 'L_BB_COLOR' => $bbcode_lang['bb_color'], 'L_BB_SIZE' => $bbcode_lang['bb_size'], 'L_BB_FONT' => $bbcode_lang['bb_font'], 'L_BB_SMALL' => $bbcode_lang['bb_small'], 'L_BB_LARGE' => $bbcode_lang['bb_large'], 'L_BB_LEFT' => $bbcode_lang['bb_left'], 'L_BB_CENTER' => $bbcode_lang['bb_center'], 'L_BB_RIGHT' => $bbcode_lang['bb_right'], 'L_BB_JUSTIFY' => $bbcode_lang['bb_justify'], 'L_BB_FLOAT_LEFT' => $bbcode_lang['bb_float_left'], 'L_BB_FLOAT_RIGHT' => $bbcode_lang['bb_float_right'], 'L_BB_SUP' => $bbcode_lang['bb_sup'], 'L_BB_SUB' => $bbcode_lang['bb_sub'], 'L_BB_INDENT' => $bbcode_lang['bb_indent'], 'L_BB_LIST' => $bbcode_lang['bb_list'], 'L_BB_TABLE' => $bbcode_lang['bb_table'], 'L_BB_SWF' => $bbcode_lang['bb_swf'], 'L_BB_YOUTUBE' => $bbcode_lang['bb_youtube'], 'L_BB_FLASH' => $bbcode_lang['bb_swf'], 'L_BB_MOVIE' => $bbcode_lang['bb_movie'], 'L_BB_SOUND' => $bbcode_lang['bb_sound'], 'L_BB_CODE' => $bbcode_lang['bb_code'], 'L_BB_MATH' => $bbcode_lang['bb_math'], 'L_BB_ANCHOR' => $bbcode_lang['bb_anchor'], 'L_BB_HELP' => $bbcode_lang['bb_help'], 'L_BB_MORE' => $bbcode_lang['bb_more'], 'L_URL_PROMPT' => $bbcode_lang['bb_url_prompt'], 'L_ANCHOR_PROMPT' => $bbcode_lang['bb_anchor_prompt'], 'L_TITLE' => LangLoader::get_message('format_title', 'editor-common'), 'L_CONTAINER' => $bbcode_lang['bb_container'], 'L_BLOCK' => $bbcode_lang['bb_block'], 'L_FIELDSET' => $bbcode_lang['bb_fieldset'], 'L_STYLE' => $LANG['style'], 'L_QUESTION' => $LANG['question'], 'L_NOTICE' => $LANG['notice'], 'L_WARNING' => $LANG['warning'], 'L_ERROR' => LangLoader::get_message('error', 'status-messages-common'), 'L_SUCCESS' => $LANG['success'], 'L_SIZE' => LangLoader::get_message('format_size', 'editor-common'), 'L_FONT' => LangLoader::get_message('format_font', 'editor-common'), 'L_CODE' => $bbcode_lang['bb_code'], 'L_TEXT' => $bbcode_lang['bb_text'], 'L_SCRIPT' => $bbcode_lang['bb_script'], 'L_WEB' => $bbcode_lang['bb_web'], 'L_PROG' => $bbcode_lang['bb_prog'], 'L_TABLE_HEAD' => $bbcode_lang['head_table'], 'L_ADD_HEAD' => $bbcode_lang['head_add'], 'L_LINES' => $bbcode_lang['lines'], 'L_COLS' => $bbcode_lang['cols'], 'L_ORDERED_LIST' => $bbcode_lang['ordered_list'], 'L_INSERT_LIST' => $bbcode_lang['insert_list'], 'L_INSERT_TABLE' => $bbcode_lang['insert_table'], 'L_PHPBOOST_LANGUAGES' => $bbcode_lang['phpboost_languages']));
     foreach ($this->forbidden_tags as $forbidden_tag) {
         if ($forbidden_tag == 'fieldset') {
             $forbidden_tag = 'block';
         }
         $template->put_all(array('AUTH_' . strtoupper($forbidden_tag) => 'style="opacity:0.3;filter:alpha(opacity=30);cursor:default;"', 'DISABLED_' . strtoupper($forbidden_tag) => 'return false;'));
     }
     foreach ($smileys_cache->get_smileys() as $code_smile => $infos) {
         $template->assign_block_vars('smileys', array('URL' => TPL_PATH_TO_ROOT . '/images/smileys/' . $infos['url_smiley'], 'CODE' => addslashes($code_smile)));
     }
     $template->put_all(array('L_SMILEY' => $LANG['smiley']));
     if (!self::$editor_already_included) {
         self::$editor_already_included = true;
     }
     return $template->render();
 }
Ejemplo n.º 6
0
 /**
  * @desc Replaces the smiley's code by the corresponding HTML image tag
  */
 protected function parse_smilies()
 {
     $smileys_cache = SmileysCache::load()->get_smileys();
     if (!empty($smileys_cache)) {
         //Création du tableau de remplacement.
         foreach ($smileys_cache as $code => $infos) {
             $smiley_code[] = '`(?:(?![a-z0-9]))(?<!&[a-z]{4}|&[a-z]{5}|&[a-z]{6}|")(' . preg_quote($code) . ')(?:(?![a-z0-9]))`';
             $smiley_img_url[] = '<img src="/images/smileys/' . $infos['url_smiley'] . '" alt="' . addslashes($code) . '" class="smiley" />';
         }
         $this->content = preg_replace($smiley_code, $smiley_img_url, $this->content);
     }
 }
 private function save_smiley()
 {
     $code_smiley = $this->smiley_form->get_value('code_smiley');
     $url_smiley = $this->smiley_form->get_value('url_smiley')->get_raw_value();
     if (!empty($code_smiley) && !empty($url_smiley)) {
         if (!$this->smiley['idsmiley']) {
             $check_smiley = PersistenceContext::get_querier()->count(DB_TABLE_SMILEYS, 'WHERE code_smiley=:code_smiley', array('code_smiley' => $code_smiley));
             if (empty($check_smiley)) {
                 PersistenceContext::get_querier()->insert(DB_TABLE_SMILEYS, array('code_smiley' => $code_smiley, 'url_smiley' => $url_smiley));
                 ###### Régénération du cache des smileys #######
                 SmileysCache::invalidate();
                 $this->view->put('MSG', MessageHelper::display($this->lang['smiley_add_success'], MessageHelper::SUCCESS));
             } else {
                 $this->view->put('MSG', MessageHelper::display(LangLoader::get_message('element.already_exists', 'status-messages-common'), MessageHelper::ERROR));
             }
         } else {
             PersistenceContext::get_querier()->update(DB_TABLE_SMILEYS, array('url_smiley' => $url_smiley, 'code_smiley' => $code_smiley), 'WHERE idsmiley = :id', array('id' => $this->smiley['idsmiley']));
             ###### Régénération du cache des smileys #######
             SmileysCache::invalidate();
             AppContext::get_response()->redirect(AdminSmileysUrlBuilder::management());
         }
     }
 }
Ejemplo n.º 8
0
 /**
  * @desc Parses the smilies: it replaces their codes by the associated image.
  * For instance :) will become <img src="urlImage" alt=".." ... />
  */
 private function parse_smilies()
 {
     $this->content = preg_replace('`&lt;img(?: class="smiley")? title="([^"]+)" src="(.+)/images/smileys/([^"]+)" alt="" /&gt;`i', '<img src="/images/smileys/$3" title="$1" alt="$1" class="smiley" />', $this->content);
     $this->content = preg_replace('`&lt;img(?: class="smiley")? title="([^"]+)" src="(.+)/images/smileys/([^"]+)"(?: alt="([^"]+)")? /&gt;`i', '<img src="/images/smileys/$3" title="$1" alt="$1" class="smiley" />', $this->content);
     $this->content = preg_replace('`&lt;img class="smiley" src="(.+)/images/smileys/([^"]+)" alt="([^"]+)" /&gt;`i', '<img src="/images/smileys/$2" title="$3" alt="$3" class="smiley" />', $this->content);
     //Smilies
     $smileys_cache = SmileysCache::load()->get_smileys();
     if (!empty($smileys_cache)) {
         //Création du tableau de remplacement.
         foreach ($smileys_cache as $code => $infos) {
             $smiley_code[] = '`(?:(?![a-z0-9]))(?<!&[a-z]{4}|&[a-z]{5}|&[a-z]{6}|")(' . str_replace('\'', '\\\\\\\'', preg_quote($code)) . ')(?:(?![a-z0-9]))`';
             $smiley_img_url[] = '<img src="/images/smileys/' . $infos['url_smiley'] . '" alt="' . addslashes($code) . '" class="smiley" />';
         }
         $this->content = preg_replace($smiley_code, $smiley_img_url, $this->content);
     }
 }
Ejemplo n.º 9
0
 /**
  * @desc Display the editor
  * @return string Formated editor.
  */
 public function display()
 {
     $template = $this->get_template();
     $displayed_icons_number = 0;
     list($toolbar1, $toolbar2, $toolbar3) = array('', '', '');
     foreach ($this->array_tags as $tag => $tinymce_tag) {
         $tag = preg_replace('`[0-9]`', '', $tag);
         if (!in_array($tag, $this->forbidden_tags)) {
             $toolbar1 .= $tinymce_tag . ',';
             $displayed_icons_number++;
         }
     }
     foreach ($this->array_tags2 as $tag => $tinymce_tag) {
         $tag = preg_replace('`[0-9]`', '', $tag);
         if (!in_array($tag, $this->forbidden_tags)) {
             if ($displayed_icons_number < 18) {
                 $toolbar1 .= $tinymce_tag . ',';
             } else {
                 $toolbar2 .= $tinymce_tag . ',';
             }
             $displayed_icons_number++;
         }
     }
     foreach ($this->array_tags3 as $tag => $tinymce_tag) {
         $tag = preg_replace('`[0-9]`', '', $tag);
         if (!in_array($tag, $this->forbidden_tags)) {
             if ($tag != 'insertfile' || $tag == 'insertfile' && AppContext::get_current_user()->check_auth(FileUploadConfig::load()->get_authorization_enable_interface_files(), FileUploadConfig::AUTH_FILES_BIT)) {
                 if ($displayed_icons_number < 25) {
                     $toolbar1 .= $tinymce_tag . ',';
                 } else {
                     if ($displayed_icons_number < 35) {
                         $toolbar2 .= $tinymce_tag . ',';
                     } else {
                         $toolbar3 .= $tinymce_tag . ',';
                     }
                 }
                 $displayed_icons_number++;
             }
         }
     }
     $language = substr(AppContext::get_current_user()->get_locale(), 0, 2);
     switch ($language) {
         case 'fr':
             $language = 'fr_FR';
             break;
         case 'en':
             $language = 'en_GB';
             break;
         default:
             break;
     }
     $form_field_infos = explode('_', $this->identifier);
     $form_name = $form_field_infos[0];
     unset($form_field_infos[0]);
     $field_name = implode('_', $form_field_infos);
     $template->put_all(array('C_NOT_JS_INCLUDED' => self::$js_included, 'C_HTMLFORM' => !empty($form_name) && !empty($field_name), 'PAGE_PATH' => $_SERVER['PHP_SELF'], 'FIELD' => $this->identifier, 'FORM_NAME' => $form_name, 'FIELD_NAME' => $field_name, 'FORBIDDEN_TAGS' => implode(',', $this->forbidden_tags), 'L_REQUIRE_TEXT' => LangLoader::get_message('require_text', 'main'), 'C_TOOLBAR1' => !empty($toolbar1), 'C_TOOLBAR2' => !empty($toolbar2), 'C_TOOLBAR3' => !empty($toolbar3), 'TOOLBAR1' => preg_replace('`\\|(,\\|)+`', '|', trim($toolbar1, ',')), 'TOOLBAR2' => preg_replace('`\\|(,\\|)+`', '|', trim($toolbar2, ',')), 'TOOLBAR3' => preg_replace('`\\|(,\\|)+`', '|', trim($toolbar3, ',')), 'LANGUAGE' => $language));
     self::$js_included = true;
     //Chargement des smileys.
     $smileys = SmileysCache::load()->get_smileys();
     $smile_by_line = 9;
     $nbr_smile = count($smileys);
     $j = 1;
     foreach ($smileys as $code_smile => $infos) {
         $template->assign_block_vars('smiley', array('C_NEW_ROW' => is_int(($j - 1) / $smile_by_line), 'C_LAST_OF_THE_ROW' => is_int($j / $smile_by_line), 'C_END_ROW' => is_int($j / $smile_by_line) || $nbr_smile == $j, 'C_LAST_ROW' => $nbr_smile == $j, 'URL' => Url::to_rel('/images/smileys/' . $infos['url_smiley']), 'CODE' => addslashes($code_smile)));
         $j++;
     }
     return $template->render();
 }