|
From: Jon O. <jon...@us...> - 2005-08-20 18:19:28
|
Update of /cvsroot/mxbb/core/modules/mx_textblocks/admin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21797/modules/mx_textblocks/admin Added Files: mx_module_defs.php Log Message: Major commit Adding new adminCP, blockCP and many new oo components Finally finalizing latest months hard work :-) --- NEW FILE: mx_module_defs.php --- <?php /** ------------------------------------------------------------------------ * subject : mx-portal, CMS & portal * begin : june, 2002 * copyright : (C) 2002-2005 MX-System * email : jon...@ho... * project site : www.mx-system.com * * description : * ------------------------------------------------------------------------- * * $Id: mx_module_defs.php,v 1.1 2005/08/20 18:19:13 jonohlsson Exp $ */ /** * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ /********************************************************************************\ | Class: mx_blockcp_parameter | The mx_blockcp_parameter object provides extra module block parameters, added to the standard core parameters. | | Usage examples: | \********************************************************************************/ // // The following flags are class specific options // //define('MX_ALL_DATA' , -1); // Flag - write all data class mx_blockcp_parameter { // ------------------------------ // Private Methods // // // =================================================== // define module specific block parameters // =================================================== function get_parameters($type_row = '') { global $lang; if (empty($type_row)) { $type_row = array(); } $type_row['phpBBTextBlock'] = !empty($lang['ParType_phpBBTextBlock']) ? $lang['ParType_phpBBTextBlock'] : "phpBB TextBlock"; $type_row['CustomizedTextBlock'] = !empty($lang['ParType_CustomizedTextBlock']) ? $lang['ParType_CustomizedTextBlock'] : "Customized TextBlock"; $type_row['WysiwygTextBlock'] = !empty($lang['ParType_WysiwygTextBlock']) ? $lang['ParType_WysiwygTextBlock'] : "Wysiwyg TextBlock"; return $type_row; } // =================================================== // Submit custom parameter field and data // =================================================== function submit_custom_pars( $parameter_data, $block_id ) { global $HTTP_POST_VARS, $db, $board_config, $html_entities_match, $html_entities_replace; $parameter_value = $HTTP_POST_VARS[$parameter_data['parameter_name']]; $parameter_opt = ''; switch ( $parameter_data['parameter_type'] ) { case 'phpBBTextBlock': $bbcode_on = $board_config['allow_bbcode'] ? true : false; $html_on = $board_config['allow_html'] ? true : false; $smilies_on = $board_config['allow_smilies'] ? true : false; if( $bbcode_on ) { $bbcode_uid = make_bbcode_uid(); } break; case 'CustomizedTextBlock': $bbcode_on = $parameter_opt['allow_bbcode'] ? true : false; $html_on = $parameter_opt['allow_html'] ? true : false; $smilies_on = $parameter_opt['allow_smilies'] ? true : false; $board_config['allow_html_tags'] = $parameter_opt['allow_html_tags']; if( $bbcode_on ) { $bbcode_uid = make_bbcode_uid(); } break; case 'WysiwygTextBlock': $bbcode_on = false; $html_on = true; $smilies_on = false; $html_entities_match = array(); $html_entities_replace = array(); $bbcode_uid = 0; break; } $parameter_value = prepare_message(trim($parameter_value), $html_on, $bbcode_on, $smilies_on, $bbcode_uid); $parameter_opt = $bbcode_uid; return array('parameter_value' => $parameter_value, 'parameter_opt' => $parameter_opt); } // =================================================== // Display cuztom parameter field and data in the Block Control Panel // =================================================== function display_custom_edit( $parameter_data, $block_id ) { global $template, $mx_blockcp, $mx_root_path, $theme, $lang; switch ( $parameter_data['parameter_type'] ) { case 'phpBBTextBlock': $this->display_edit_phpBBTextBlock( $block_id, $parameter_data['parameter_id'], $parameter_data ); break; case 'CustomizedTextBlock': $this->display_edit_CustomizedTextBlock( $block_id, $parameter_data['parameter_id'], $parameter_data ); break; case 'WysiwygTextBlock': $this->display_edit_WysiwygTextBlock( $block_id, $parameter_data['parameter_id'], $parameter_data ); break; } } function display_edit_phpBBTextBlock( $block_id, $parameter_id, $parameter_data ) { global $template, $board_config, $db, $theme, $lang, $images, $mx_blockcp, $mx_root_path, $HTTP_POST_VARS; $parameter_value = isset($HTTP_POST_VARS['preview']) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS[$parameter_data['parameter_name']]))) : $parameter_data['parameter_value']; $bbcode_on = $board_config['allow_bbcode'] ? true : false; $html_on = $board_config['allow_html'] ? true : false; $smilies_on = $board_config['allow_smilies'] ? true : false; $bbcode_uid = $parameter_data['parameter_opt']; if ( isset($HTTP_POST_VARS['preview']) ) { $this->preview($parameter_value, $html_on, $bbcode_on, $smilies_on); $template->assign_block_vars('preview', array()); } else { $parameter_value = $this->decode($parameter_value, $bbcode_uid); } // // HTML, BBCode & Smilies toggle selection // $html_status = ( $html_on ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF']; $bbcode_status = ( $bbcode_on ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF']; $smilies_status = ( $smilies_on ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF']; $template->set_filenames(array( 'parameter' => $mx_root_path . $mx_blockcp->module_root_path . 'templates/'. $theme['template_name'] . '/admin/mx_blockcp_parameter.tpl') ); if( $bbcode_on) { $template->assign_block_vars('switch_bbcodes', array()); } if( $smilies_on) { mx_generate_smilies('inline', PAGE_INDEX); $template->assign_block_vars('switch_smilies', array()); } $template->assign_vars(array( // BBcodes 'L_BBCODE_B_HELP' => $lang['bbcode_b_help'], 'L_BBCODE_I_HELP' => $lang['bbcode_i_help'], 'L_BBCODE_U_HELP' => $lang['bbcode_u_help'], 'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'], 'L_BBCODE_C_HELP' => $lang['bbcode_c_help'], 'L_BBCODE_L_HELP' => $lang['bbcode_l_help'], 'L_BBCODE_O_HELP' => $lang['bbcode_o_help'], 'L_BBCODE_P_HELP' => $lang['bbcode_p_help'], 'L_BBCODE_W_HELP' => $lang['bbcode_w_help'], 'L_BBCODE_A_HELP' => $lang['bbcode_a_help'], 'L_BBCODE_S_HELP' => $lang['bbcode_s_help'], 'L_BBCODE_F_HELP' => $lang['bbcode_f_help'], 'L_EMPTY_MESSAGE' => $lang['Empty_message'], 'L_FONT_COLOR' => $lang['Font_color'], 'L_COLOR_DEFAULT' => $lang['color_default'], 'L_COLOR_DARK_RED' => $lang['color_dark_red'], 'L_COLOR_RED' => $lang['color_red'], 'L_COLOR_ORANGE' => $lang['color_orange'], 'L_COLOR_BROWN' => $lang['color_brown'], 'L_COLOR_YELLOW' => $lang['color_yellow'], 'L_COLOR_GREEN' => $lang['color_green'], 'L_COLOR_OLIVE' => $lang['color_olive'], 'L_COLOR_CYAN' => $lang['color_cyan'], 'L_COLOR_BLUE' => $lang['color_blue'], 'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'], 'L_COLOR_INDIGO' => $lang['color_indigo'], 'L_COLOR_VIOLET' => $lang['color_violet'], 'L_COLOR_WHITE' => $lang['color_white'], 'L_COLOR_BLACK' => $lang['color_black'], 'L_FONT_SIZE' => $lang['Font_size'], 'L_FONT_TINY' => $lang['font_tiny'], 'L_FONT_SMALL' => $lang['font_small'], 'L_FONT_NORMAL' => $lang['font_normal'], 'L_FONT_LARGE' => $lang['font_large'], 'L_FONT_HUGE' => $lang['font_huge'], 'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'], 'L_STYLES_TIP' => $lang['Styles_tip'], 'HTML_STATUS' => $html_status, 'BBCODE_STATUS' => $bbcode_status, 'SMILIES_STATUS' => $smilies_status, 'L_PREVIEW' => $lang['Preview'], // To sync script and textarea select field 'SELECT_NAME' => $parameter_data['parameter_name'], )); $template->assign_block_vars('textblock', array( 'PARAMETER_TITLE' => ( !empty($lang[$parameter_data['parameter_name']]) ) ? $lang[$parameter_data['parameter_name']] : $parameter_data['parameter_name'], 'PARAMETER_TYPE' => ( !empty($lang["ParType_".$parameter_data['parameter_type']]) ) ? $lang["ParType_".$parameter_data['parameter_type']] : '', 'PARAMETER_TYPE_EXPLAIN' => ( !empty($lang["ParType_".$parameter_data['parameter_type'] . "_info"]) ) ? '<br />' . $lang["ParType_".$parameter_data['parameter_type'] . "_info"] : '', 'TEXT' => $parameter_value )); $template->pparse('parameter'); } function display_edit_CustomizedTextBlock( $block_id, $parameter_id, $parameter_data ) { global $template, $board_config, $db, $theme, $lang, $images, $mx_blockcp, $mx_root_path, $HTTP_POST_VARS; $parameter_value = isset($HTTP_POST_VARS['preview']) ? htmlspecialchars(trim(stripslashes($HTTP_POST_VARS[$parameter_data['parameter_name']]))) : $parameter_data['parameter_value']; // Extract customized textblock settings $bbcode_on = true? true : false; $html_on = true? true : false; $smilies_on = true? true : false; $board_config['allow_html_tags'] = ''; $bbcode_uid = $parameter_data['parameter_opt']; if ( isset($HTTP_POST_VARS['preview']) ) { $this->preview($parameter_value, $html_on, $bbcode_on, $smilies_on); $template->assign_block_vars('preview', array()); } else { $parameter_value = $this->decode($parameter_value, $bbcode_uid); } // // HTML, BBCode & Smilies toggle selection // $html_status = ( $html_on ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF']; $bbcode_status = ( $bbcode_on ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF']; $smilies_status = ( $smilies_on ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF']; $template->set_filenames(array( 'parameter' => $mx_root_path . $mx_blockcp->module_root_path . 'templates/'. $theme['template_name'] . '/admin/mx_blockcp_parameter.tpl') ); if( $bbcode_on) { $template->assign_block_vars('switch_bbcodes', array()); } if( $smilies_on) { mx_generate_smilies('inline', PAGE_INDEX); $template->assign_block_vars('switch_smilies', array()); } $template->assign_vars(array( // BBcodes 'L_BBCODE_B_HELP' => $lang['bbcode_b_help'], 'L_BBCODE_I_HELP' => $lang['bbcode_i_help'], 'L_BBCODE_U_HELP' => $lang['bbcode_u_help'], 'L_BBCODE_Q_HELP' => $lang['bbcode_q_help'], 'L_BBCODE_C_HELP' => $lang['bbcode_c_help'], 'L_BBCODE_L_HELP' => $lang['bbcode_l_help'], 'L_BBCODE_O_HELP' => $lang['bbcode_o_help'], 'L_BBCODE_P_HELP' => $lang['bbcode_p_help'], 'L_BBCODE_W_HELP' => $lang['bbcode_w_help'], 'L_BBCODE_A_HELP' => $lang['bbcode_a_help'], 'L_BBCODE_S_HELP' => $lang['bbcode_s_help'], 'L_BBCODE_F_HELP' => $lang['bbcode_f_help'], 'L_EMPTY_MESSAGE' => $lang['Empty_message'], 'L_FONT_COLOR' => $lang['Font_color'], 'L_COLOR_DEFAULT' => $lang['color_default'], 'L_COLOR_DARK_RED' => $lang['color_dark_red'], 'L_COLOR_RED' => $lang['color_red'], 'L_COLOR_ORANGE' => $lang['color_orange'], 'L_COLOR_BROWN' => $lang['color_brown'], 'L_COLOR_YELLOW' => $lang['color_yellow'], 'L_COLOR_GREEN' => $lang['color_green'], 'L_COLOR_OLIVE' => $lang['color_olive'], 'L_COLOR_CYAN' => $lang['color_cyan'], 'L_COLOR_BLUE' => $lang['color_blue'], 'L_COLOR_DARK_BLUE' => $lang['color_dark_blue'], 'L_COLOR_INDIGO' => $lang['color_indigo'], 'L_COLOR_VIOLET' => $lang['color_violet'], 'L_COLOR_WHITE' => $lang['color_white'], 'L_COLOR_BLACK' => $lang['color_black'], 'L_FONT_SIZE' => $lang['Font_size'], 'L_FONT_TINY' => $lang['font_tiny'], 'L_FONT_SMALL' => $lang['font_small'], 'L_FONT_NORMAL' => $lang['font_normal'], 'L_FONT_LARGE' => $lang['font_large'], 'L_FONT_HUGE' => $lang['font_huge'], 'L_BBCODE_CLOSE_TAGS' => $lang['Close_Tags'], 'L_STYLES_TIP' => $lang['Styles_tip'], 'L_PREVIEW' => $lang['Preview'], 'HTML_STATUS' => $html_status, 'BBCODE_STATUS' => $bbcode_status, 'SMILIES_STATUS' => $smilies_status, // To sync script and textarea select field 'SELECT_NAME' => $parameter_data['parameter_name'], )); $template->assign_block_vars('textblock', array( 'PARAMETER_TITLE' => ( !empty($lang[$parameter_data['parameter_name']]) ) ? $lang[$parameter_data['parameter_name']] : $parameter_data['parameter_name'], 'PARAMETER_TYPE' => ( !empty($lang["ParType_".$parameter_data['parameter_type']]) ) ? $lang["ParType_".$parameter_data['parameter_type']] : '', 'PARAMETER_TYPE_EXPLAIN' => ( !empty($lang["ParType_".$parameter_data['parameter_type'] . "_info"]) ) ? '<br />' . $lang["ParType_".$parameter_data['parameter_type'] . "_info"] : '', 'TEXT' => $parameter_value )); $template->pparse('parameter'); } function display_edit_WysiwygTextBlock( $block_id, $parameter_id, $parameter_data ) { global $template, $board_config, $db, $theme, $mx_root_path, $lang, $mx_blockcp, $mx_root_path, $HTTP_POST_VARS; $parameter_value = $parameter_data['parameter_value']; // // HTML, BBCode & Smilies toggle selection // $html_status = ( true ) ? $lang['HTML_is_ON'] : $lang['HTML_is_OFF']; $bbcode_status = ( false ) ? $lang['BBCode_is_ON'] : $lang['BBCode_is_OFF']; $smilies_status = ( false ) ? $lang['Smilies_are_ON'] : $lang['Smilies_are_OFF']; $template->set_filenames(array( 'parameter' => $mx_root_path . $mx_blockcp->module_root_path . 'templates/'. $theme['template_name'] . '/admin/mx_blockcp_parameter.tpl') ); // // This switch is for enabling the wysiwyg html editor addon "tiny mce". to disable this feature // either remove this section or delete the modules/tinymce folder // if ( file_exists( $mx_root_path . 'modules/tinymce/jscripts/tiny_mce/blank.htm' ) ) { $template->assign_block_vars( "tinyMCE", array( 'PATH' => $mx_root_path )); } $parameter_field = '<textarea rows="30" cols="150" wrap="virtual" name="' . $parameter_id . '" class="post">' . $parameter_value . '</textarea>'; $template->assign_vars(array( 'HTML_STATUS' => $html_status, 'BBCODE_STATUS' => $bbcode_status, 'SMILIES_STATUS' => $smilies_status, 'L_PREVIEW' => $lang['Preview'], // To sync script and textarea select field 'SELECT_NAME' => $parameter_data['parameter_name'], )); $template->assign_block_vars('textblock', array( 'PARAMETER_TITLE' => ( !empty($lang[$parameter_data['parameter_name']]) ) ? $lang[$parameter_data['parameter_name']] : $parameter_data['parameter_name'], 'PARAMETER_TYPE' => ( !empty($lang["ParType_".$parameter_data['parameter_type']]) ) ? $lang["ParType_".$parameter_data['parameter_type']] : '', 'PARAMETER_TYPE_EXPLAIN' => ( !empty($lang["ParType_".$parameter_data['parameter_type'] . "_info"]) ) ? '<br />' . $lang["ParType_".$parameter_data['parameter_type'] . "_info"] : '', 'TEXT' => $parameter_data['parameter_value'] )); $template->pparse('parameter'); } function decode($text = '', $bbcode_uid = '') { if( $bbcode_uid != '' ) { $text = preg_replace('/\:(([a-z0-9]:)?)' . $bbcode_uid . '/s', '', $text); } $text = str_replace('<', '<', $text); $text = str_replace('>', '>', $text); $text = str_replace('<br />', "\n", $text); return $text; } // =================================================== // Preview Textblock // =================================================== function preview($text, $html_on, $bbcode_on, $smilies_on) { global $board_config, $template, $lang; $preview_text = $text; $orig_word = array(); $replacement_word = array(); obtain_word_list($orig_word, $replacement_word); $bbcode_uid = ( $bbcode_on ) ? make_bbcode_uid() : ''; $preview_text = stripslashes(prepare_message(addslashes(unprepare_message($preview_text)), $html_on, $bbcode_on, $smilies_on, $bbcode_uid)); if( $bbcode_on ) { $preview_text = bbencode_second_pass($preview_text, $bbcode_uid); } if( count($orig_word) ) { $preview_text = preg_replace($orig_word, $replacement_word, $preview_text); } if( $smilies_on ) { $preview_text = mx_smilies_pass($preview_text); } $preview_text = make_clickable($preview_text); $preview_text = str_replace("\n", '<br />', $preview_text); $template->assign_vars(array( 'TEXT' => $preview_text )); return $preview_text; } } ?> |