<?php
// ------------------
// Text Editor
// ------------------
function sb_editor( $mode='entry' ) {
// The "Text Editor Interface"
//
// This is used on the "add.php", "preview_cgi.php", "add_static.php", "preview_static_cgi.php" pages. I'm planning on using it for static and comments pages also...
global $lang_string, $user_colors, $DL_config, $theme_vars;
// Include Supporting Java Script
require_once('scripts/sb_editor.php');
// Default Form Values
$default_subject = null; // Value for Subject input field
$default_content = null; // Value for Entry input field
$default_tb_ping = null; // Only when DL_trackback_enabled = true
$default_categories = null; // Field not required...
$default_relatedlink = null; // Field not required...
$default_time = time(); // Defaults to "now"
$default_y = null; // Only in "Edit" mode...
$default_m = null; // Only in "Edit" mode...
$default_entry = null; // Only in "Edit" mode...
$default_filename = null; // Only for Static Entries
if ( $mode == 'static' ) {
// ------------
// Add Static Mode
// ------------
if ( array_key_exists( 'entry', $_GET ) ) {
// -------------------
// Edit Existing Static Entry
// -------------------
$default_entry = $_GET[ 'entry' ];
// Read Saved Static Entry
if ( file_exists( CONTENT_DIR.'static/' . $default_entry . '.txt' ) ) {
$filename = CONTENT_DIR.'static/' . $default_entry . '.txt';
} elseif ( file_exists( CONTENT_DIR.'static/' . $default_entry . '.txt.gz' ) ) {
$filename = CONTENT_DIR.'static/' . $default_entry . '.txt.gz';
}
$DL_entry_data = static_entry_to_array( $filename );
// Store Data for Form Use
$default_subject = htmlDecode( $DL_entry_data[ 'SUBJECT' ] );
$default_content = $DL_entry_data[ 'CONTENT' ];
$default_filename = $default_entry;
$default_menu_visible = $DL_entry_data[ 'MENU_VISIBLE' ];
// Display Current Entry
$entry_content = get_static_entry_by_file( $default_entry );
echo( $entry_content );
} else if ( array_key_exists( 'DL_subject', $_POST ) == true ) {
// ----------------
// Preview Static Entry
// ----------------
// (These will only be set if previewing an existing entry that your are editing...)
$default_entry = array_key_exists( 'entry', $_POST ) ? $_POST[ 'entry' ] : $default_entry;
// Store Data for Form Use
$default_subject = sb_stripslashes( $_POST[ 'DL_subject' ] );
$default_content = sb_stripslashes( $_POST[ 'DL_text' ] );
$default_filename = sb_stripslashes( $_POST[ 'file_name' ] );
$default_menu_visible = true;
// Display Preview Entry
$entry_content = preview_static_entry( $default_subject, $default_content );
echo( $entry_content );
} else {
// -------------
// New Static Entry
// -------------
$default_filename = 'static' . date('ymd-His');
$default_menu_visible = true;
}
}
if ( $mode == 'entry' ) {
// ------------
// Add Entry Mode
// ------------
if ( array_key_exists( 'entry', $_GET ) == true && array_key_exists( 'y', $_GET ) == true && array_key_exists( 'm', $_GET ) == true ) {
// --------------
// Edit Existing Entry
// --------------
$default_y = $_GET[ 'y' ];
$default_m = $_GET[ 'm' ];
$default_entry = $_GET[ 'entry' ];
$entry = CONTENT_DIR.$_GET[ 'y' ].'/'.$_GET[ 'm' ].'/'.$_GET[ 'entry' ];
// Read Saved Entry
if ( file_exists( $entry . ".txt" ) ) {
$filename = $entry . ".txt";
} else if ( file_exists( $entry . ".txt.gz" ) ) {
$filename = $entry . ".txt.gz";
}
$DL_entry_data = DL_entry_to_array( $filename );
// Store Data for Form Use
$default_subject = htmlDecode( $DL_entry_data[ 'SUBJECT' ] );
$default_content = $DL_entry_data[ 'CONTENT' ];
$default_tb_ping = htmlDecode( $DL_entry_data[ 'TB_PING' ] );
if ( array_key_exists( "CATEGORIES", $DL_entry_data ) ) {
$default_categories = explode( ',', $DL_entry_data[ 'CATEGORIES' ] );
}
$default_relatedlink = htmlDecode( $DL_entry_data[ 'relatedlink'] );
// Split up Date Information
$temp_date = substr($_GET['entry'],-13,6);
$temp_time = substr($_GET['entry'],-6,6);
$dd = substr($temp_date,-2,2);
$mt = substr($temp_date,-4,2);
$yy = substr($temp_date,-6,2);
if ($yy >= 95) {
$yy = '19' . $yy;
} else {
$yy = '20' . $yy;
}
$hh = substr($temp_time,-6,2);
$mm = substr($temp_time,-4,2);
$ss = substr($temp_time,-2,2);
// Create Time
$default_time = mktime($hh, $mm, $ss, $mt, $dd, $yy );
// Display Current Entry
$entry_content = read_entry_from_file( $entry );
echo( $entry_content );
} else if ( array_key_exists( 'DL_subject', $_POST ) == true ) {
// -----------
// Preview Entry
// -----------
// (These will only be set if previewing an existing entry that your are editing...)
$default_y = array_key_exists( 'y', $_POST ) ? $_POST[ 'y' ] : $default_y;
$default_m = array_key_exists( 'm', $_POST ) ? $_POST[ 'm' ] : $default_m;
$default_entry = array_key_exists( 'entry', $_POST ) ? $_POST[ 'entry' ] : $default_entry;
// Store Data for Form Use
$default_subject = sb_stripslashes( $_POST[ 'DL_subject' ] );
$default_content = sb_stripslashes( $_POST[ 'DL_text' ] );
$default_tb_ping = array_key_exists( 'tb_ping', $_POST ) ? sb_stripslashes( $_POST[ 'tb_ping' ] ): $default_tb_ping;
$default_categories = array_key_exists( 'catlist', $_POST ) ? $_POST[ 'catlist' ]: $default_categories;
$default_relatedlink = array_key_exists( 'DL_relatedlink', $_POST ) ? sb_stripslashes( $_POST[ 'DL_relatedlink' ] ): $default_relatedlink;
// Create Time
$default_time = mktime($_POST['hour'], $_POST['minute'], $_POST['second'], $_POST['month'], $_POST['day'], $_POST['year'] ); // Required
// Display Preview Entry
$entry_content = preview_entry( $default_subject, $default_content, $default_tb_ping, $default_relatedlink, $default_time );
echo( $entry_content );
} else {
// --------
// New Entry
// --------
}
}
// --------------
// Misc. Form Values
// --------------
switch ( $mode ) {
case 'entry' :
$submit_page = 'add_cgi.php';
$preview_page = 'preview_cgi.php';
$validate_script = 'validate';
break;
case 'static' :
$submit_page = 'add_static_cgi.php';
$preview_page = 'preview_static_cgi.php';
$validate_script = 'validate_static';
break;
}
// --------
// Begin Form
// --------
?>
<form action='<?php echo( $submit_page ); ?>' method="post" name="editor" id="editor" onsubmit="return <?php echo( $validate_script ); ?>(this)">
<?php
// Hidden Fields
if ( $mode == 'entry' ) {
if ( isset($default_y) && isset($default_m) && isset($default_entry) ) {
echo( HTML_input( false, "y", $default_y, false, 'hidden' ) );
echo( HTML_input( false, "m", $default_m, false, 'hidden' ) );
echo( HTML_input( false, "entry", $default_entry, false, 'hidden' ) );
}
}
if ( $mode == 'static' ) {
if ( isset($default_entry) ) {
echo( HTML_input( false, "entry", $default_entry, false, 'hidden' ) );
}
}
// Subject Input
// HTML_input( $label=false, $id, $value=null, $add_returns=true, $type='text', $size=null, $maxlength=null, $onchange=null, $width=0, $disabled=false, $autocomplete=false );
echo( HTML_input( $lang_string[ 'label_subject' ], 'DL_subject', $default_subject, true, 'text', 0, null, null, $theme_vars[ 'max_image_width' ] ) );
// Date Selection Block
if ( $mode == 'entry' ) {
editor_date_select( $default_time );
}
// Style Tag Buttons
editor_style_buttons( $mode );
// Style Tag Dropdown
editor_style_dropdown();
// Emoticon Selection
emoticons_show();
// Image Selection Dropdown
editor_image_dropdown();
//File Selection Dropdown
editor_files_dropdown();
// Content Text Area
// Static File Name
if ( $mode == 'static' ) {
echo( '<input type="checkbox" id="check_visiblemenu" name="check_visiblemenu"' );
if ( $default_menu_visible == true ) { echo ( ' checked' ); }
echo( '> ' . $lang_string[ 'chk_visiblemenu' ] . '<p />' );
}
?>
<label for="DL_text"><?php echo( $lang_string[ 'label_entry' ] ); ?></label><br />
<textarea style="width: <?php echo( $theme_vars[ 'max_image_width' ] ); ?>px;" id="DL_text" name="DL_text" rows="20" cols="50" autocomplete="OFF" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"><?php echo( $default_content ); ?></textarea><p />
<?php
// Related Link Input
if ( $mode == 'entry' ) {
echo( HTML_input( $lang_string[ 'label_relatedlink' ], 'DL_relatedlink', $default_relatedlink, true, 'text', null, null, null, $theme_vars[ 'max_image_width' ] ) );
}
// Trackback Input
if ( $mode == 'entry' ) {
if ( $DL_config[ 'DL_trackback_enabled' ] ) {
$value = $default_tb_ping;
if ( $DL_config[ 'DL_trackback_auto_discovery' ] ) {
if ( $default_tb_ping ) {
$value = $default_tb_ping;
} else {
$value = $lang_string[ 'label_tb_autodiscovery' ];
}
}
echo( HTML_input( $lang_string[ 'label_tb_ping' ], 'tb_ping', $value, true, 'text', null, null, null, $theme_vars[ 'max_image_width' ] ) );
}
}
// Category Selection Box
if ( $mode == 'entry' ) {
category_selection_box( $default_categories );
}
// Static File Name
if ( $mode == 'static' ) {
editor_static_file( $default_filename );
}
?>
<input type="submit" name="preview" value="<?php echo( $lang_string[ 'btn_preview' ] ); ?>" onclick="this.form.action='<?php echo( $preview_page ); ?>';" />
<input type="submit" name="submit" value="<?php echo( $lang_string[ 'btn_post' ] ); ?>" onclick="this.form.action='<?php echo( $submit_page ); ?>';" /><p />
</form>
<?php
}
function editor_static_file( $filename ) {
// Static File Name
global $lang_string;
?>
<label for="file_name"><?php echo( $lang_string[ 'file_name' ] ); ?></label><br/>
<input type="text" name="file_name" autocomplete="OFF" size="40" value="<?php echo $filename; ?>"><br /><br />
<?php
}
function editor_style_buttons( $mode ) {
// Style Tag Buttons
global $lang_string;
echo( $lang_string[ 'label_insert' ] . '<br />' );
?>
<input type="button" class="bginput" value="<?php echo( $lang_string[ 'btn_bold' ] ); ?>" onclick="ins_styles(this.form.DL_text,'b','');" />
<input type="button" class="bginput" value="<?php echo( $lang_string[ 'btn_italic' ] ); ?>" onclick="ins_styles(this.form.DL_text,'i','');" />
<input type="button" class="bginput" value="Center" onclick="ins_styles(this.form.DL_text,'center','');" />
<input type="button" class="bginput" value="<?php echo( $lang_string[ 'btn_url' ] ); ?>" onclick="ins_url(this.form.DL_text);" />
<input type="button" class="bginput" value="<?php echo( $lang_string[ 'btn_image' ] ); ?>" onclick="ins_image_v2(this.form.DL_text);"/>
<?php
if ( $mode == 'entry' ) {
?>
<input type="button" class="bginput" value="<?php echo( $lang_string[ 'btn_readmore' ] ); ?>" onclick="insertAtCaret(this.form.DL_text,'[more]');"/>
<?php
}
}
function editor_style_dropdown() {
// Style Tag Dropdown
global $lang_string;
?><br />
<select name="style_dropdown" onchange="ins_style_dropdown(this.form.DL_text,this.form.style_dropdown.value);">
<option label="--" value="--">--</option>
<option label="[blockquote]xxx[/blockquote]" value="blockquote">[blockquote]xxx[/blockquote]</option>
<option label="[pre]xxx[/pre]" value="pre">[pre]xxx[/pre]</option>
<option label="[code]xxx[/code]" value="code"></option>
<option label="[strong]xxx[/strong]" value="strong">[strong]xxx[/strong]</option>
<option label="[b]xxx[/b]" value="b">[b]xxx[/b]</option>
<option label="[em]xxx[/em]" value="em">[em]xxx[/em]</option>
<option label="[i]xxx[/i]" value="i">[i]xxx[/i]</option>
<option label="[h?]xxx[/h?] (?=1-6)" value="h?">[h?]xxx[/h?] (?=1-6)</option>
<option label="" value="html"></option>
<option label="[del]xxx[/del]" value="del">[del]xxx[/del]</option>
<option label="[ins]xxx[/ins]" value="ins">[ins]xxx[/ins]</option>
<option label="[strike]xxx[/strike]" value="strike">[strike]xxx[/strike]</option>
</select>
<input type="button" class="bginput" value="ok" onclick="ins_style_dropdown(this.form.DL_text,this.form.style_dropdown.value);"/><p />
<?php
}
function editor_image_dropdown () {
// Image Selection Dropdown
global $lang_string, $theme_vars;
$str = image_dropdown();
if ( $str !== NULL ) {
echo( '<a href="javascript:openpopup(\'image_list.php\',' . $theme_vars[ 'popup_window' ][ 'width' ] . ',' . $theme_vars[ 'popup_window' ][ 'height' ] . ',true);">' . $lang_string[ 'view_images' ] . '</a><br />' . $str . '<p />' );
}
}
function image_dropdown () {
// Get a list of images in the image folder. Return HTML.
//
global $theme_vars;
// Changed this to only display Image files. This function
// is used in comment.php if the DL owner has img tag
// enabled for comments. (09/08/05 - alex)
$dir = IMAGES_DIR;
$contents = sb_folder_listing( $dir, array( '.jpg', '.jpeg', '.gif', '.png' ) );
$str = NULL;
if ($contents) {
if ( count( $contents ) > 0 ) {
$itemArray = array();
$item = array( 'label' => '--', 'value' => '--' );
array_push( $itemArray, $item );
for ( $i = 0; $i < count( $contents ); $i++ ) {
$str_url = $dir.$contents[$i];
$img_size = @getimagesize( $str_url );
if ( $img_size == false ) {
// Image is invalid...
} else {
$width = $img_size[0];
$height = $img_size[1];
$max_image_width = $theme_vars[ 'max_image_width' ];
/*
if ( $width > $max_image_width ) {
$height_resized = round( $height * ( $max_image_width / $width ) );
$width_resized = $max_image_width;
}
*/
$temp_label = $contents[$i].' - '.$width.' x '.$height;
$temp_value = '[img='.$dir.$contents[$i].' popup=false]';
$temp_string = $contents[$i];
$item = array( 'label' => $temp_label, 'value' => $temp_value, 'string' => $temp_string );
array_push( $itemArray, $item );
}
}
$str = HTML_dropdown( false, 'image_list', $itemArray, false, 'ins_image_dropdown(this.form.DL_text,this.form.image_list);' );
}
}
return ( $str );
}
//test down
function editor_files_dropdown () {
// File Selection Dropdown
global $lang_string, $theme_vars;
$str = files_dropdown();
if ( $str !== NULL ) {
echo( '<a href="javascript:openpopup(\'files_list.php\',' . $theme_vars[ 'popup_window' ][ 'width' ] . ',' . $theme_vars[ 'popup_window' ][ 'height' ] . ',true);">' . $lang_string[ 'view_files' ] . '</a><br />' . $str . '<p />' );
}
}
function files_dropdown () {
// Get a list of files in the files folder. Return HTML.
//
global $theme_vars;
// Changed this to only display the files. This function
// is used in comment.php if the DL owner has img tag
// enabled for comments. (03/30/2010 - DesignerLost)
$dir = FILES_DIR;
$contents = sb_folder_listing( $dir, array( ".pdf", ".doc", ".docx" ) );
$str = NULL;
if ($contents) {
if ( count( $contents ) > 0 ) {
$itemArray = array();
$item = array( 'label' => '--', 'value' => '--' );
array_push( $itemArray, $item );
for ( $i = 0; $i < count( $contents ); $i++ ) {
$str_url = $dir.$contents[$i];
$files_size = @getfilesize( $str_url );
if ( $files_size == false ) {
// file is invalid...
} else {
$temp_value = '[url='.$dir.$contents[$i].' new=true]';
$temp_string = $contents[$i];
$item = array( 'label' => $temp_label, 'value' => $temp_value, 'string' => $temp_string );
array_push( $itemArray, $item );
}
}
$str = HTML_dropdown( false, 'files_list', $itemArray, false, 'ins_files_dropdown(this.form.DL_text,this.form.files_list);' );
}
}
return ( $str );
}
// test up
function editor_date_select( $default_time ) {
// Date Selection Block
global $lang_string;
// Edit / Select Date
$default_time = isset( $default_time ) ? $default_time : time();
$e_day = date('d', $default_time);
$e_month = date('n', $default_time);
$e_year = date('Y', $default_time);
$e_hour = date('G', $default_time);
$e_minute = date('i', $default_time);
$e_second = date('s', $default_time);
// Day Drop Down
$itemArray = array();
for ( $i = 31; $i >= 1; $i-- ) {
$item = array( 'label' => $i, 'value' => $i );
if ( $i == $e_day ) {
$item['selected'] = true;
}
array_push( $itemArray, $item );
}
$dd_day = HTML_dropdown( $lang_string[ 'day' ], 'day', $itemArray, false );
// Month Drop Down
$itemArray = array();
for ( $i = 12; $i >= 1; $i-- ) {
$timestamp = mktime(0, 0, 0, $i, date('d'), date('Y'));
$item = array( 'label' => strftime('%B', $timestamp), 'value' => date('m', $timestamp) );
if ( $i == $e_month ) {
$item['selected'] = true;
}
array_push( $itemArray, $item );
}
$dd_month = HTML_dropdown( $lang_string[ 'month' ], 'month', $itemArray, false );
// Year Drop Down
$itemArray = array();
for ( $i = 1 ; $i >= -10; $i-- ) {
$timestamp = mktime(0, 0, 0, date('m'), date('d'), date('Y')+$i);
$item = array( 'label' => strftime('%Y', $timestamp), 'value' => date('Y', $timestamp) );
if ( date('Y', $timestamp) == $e_year ) {
$item['selected'] = true;
}
array_push( $itemArray, $item );
}
$dd_year = HTML_dropdown( $lang_string[ 'year' ], 'year', $itemArray, false );
echo($dd_day . ' ' . $dd_month . ' ' . $dd_year . '<p />');
// $timestamp = mktime(date('H'), date('i'), date('s'), date('m'), date('d'), date('Y'));
// Hour
$itemArray = array();
for ( $i = 24; $i >= 1; $i-- ) {
$timestamp = mktime($i, date('i'), date('s'), date('m'), date('d'), date('Y'));
if ( $i < 12) {
$item = array( 'label' => date('h \a\m / H', $timestamp), 'value' => date('H', $timestamp) );
} else {
$item = array( 'label' => date('h \p\m / H', $timestamp), 'value' => date('H', $timestamp) );
}
if ( $i == $e_hour ) {
$item['selected'] = true;
}
array_push( $itemArray, $item );
}
$dd_hour = HTML_dropdown( $lang_string[ 'hour' ], 'hour', $itemArray, false );
$dd_minute = '<label for="mm">'.$lang_string[ 'minute' ].'</label> <input name="minute" id="minute" type="text" value="'.$e_minute.'" size="2" maxlength="2" />';
$dd_second = '<label for="mm">'.$lang_string[ 'second' ].'</label> <input name="second" id="second" type="text" value="'.$e_second.'" size="2" maxlength="2" />';
echo($dd_hour . ' ' . $dd_minute . ' ' . $dd_second . '<p />');
}
function category_selection_box ( $selected_cat_array=array() ) {
// Returns categories HTML.
global $lang_string;
$str = NULL;
$catArray = get_category_array();
if ( count($catArray) > 0) {
$itemArray = array();
for ( $i = 0; $i < count( $catArray ); $i++ ) {
$id_number = $catArray[$i][0];
$name_str = $catArray[$i][1];
$space_count = $catArray[$i][2];
$label = '';
for ( $j = 0; $j < $space_count; $j++ ) {
$label .= ' ';
}
$label .= $name_str;
$selected = false;
for ( $j=0; $j < count( $selected_cat_array ); $j++) {
if ( $selected_cat_array[$j] == $id_number ) {
$selected = true;
break;
}
}
$item = array( 'label' => $label, 'value' => $id_number, 'selected' => $selected );
array_push( $itemArray, $item );
}
// HTML_dropdown( $label=false, $id, $itemArray, $add_returns=true, $onchange=null, $width=0, $size=0, $multiple=false, $disabled=false )
$str = HTML_dropdown( $lang_string[ 'label_categories' ], 'catlist[]', $itemArray, true, null, 0, min( 8, count($catArray) ), true );
}
echo( $str );
}
function category_combo_box ( $fieldname, $selected_item ) {
// Returns categories HTML.
global $lang_string;
$str = NULL;
$catArray = get_category_array();
if ( count($catArray) > 0) {
$itemArray = array();
for ( $i = 0; $i < count( $catArray ); $i++ ) {
$id_number = $catArray[$i][0];
$name_str = $catArray[$i][1];
$space_count = $catArray[$i][2];
$label = '';
for ( $j = 0; $j < $space_count; $j++ ) {
$label .= ' ';
}
$label .= $name_str;
$selected = false;
if ( $selected_item == $id_number ) {
$selected = true;
//break;
}
$item = array( 'label' => $label, 'value' => $id_number, 'selected' => $selected );
array_push( $itemArray, $item );
}
$str = HTML_dropdown( false, $fieldname, $itemArray);
}
echo( $str );
}
?>
I need help with my Code
Started by DesignerLost, Mar 31 2010 06:37 PM
3 replies to this topic
#1
Posted 31 March 2010 - 06:37 PM
|
|
|
#2
Guest_Jaan_*
Posted 02 April 2010 - 04:42 AM
Guest_Jaan_*
Can you tell me what's wrong with your code ?
#3
Posted 02 April 2010 - 07:45 AM
it don't show up in add.php :closedeyes:
add.php shows everything accept the dropdown for the files (files_dropdown)
add.php shows everything accept the dropdown for the files (files_dropdown)
Edited by DesignerLost, 02 April 2010 - 08:27 PM.
#4
Posted 02 April 2010 - 08:27 PM
i solved it :D yayy thanks all that looked at it and tried :)


Sign In
Create Account

Back to top









