[code.view]

[top] / php / GetSimpleCMS-3.2.3 / admin / edit.php

     <?php
     /**
      * Page Edit
      *
      * Edit or create new pages for the website.	
      *
      * @package GetSimple
      * @subpackage Page-Edit
      */
     
     // Setup inclusions
     $load['plugin'] = true;
     
     // Include common.php
     include('inc/common.php');
     
     // Variable settings
     $userid = login_cookie_check();
     
     // Get passed variables
     $id    = isset($_GET['id'])    ? var_out( $_GET['id']    ): null;
     $uri   = isset($_GET['uri'])   ? var_out( $_GET['uri']   ): null; 
     $ptype = isset($_GET['type'])  ? var_out( $_GET['type']  ): null;    
     $nonce = isset($_GET['nonce']) ? var_out( $_GET['nonce'] ): null;
     $path  = GSDATAPAGESPATH;
     
     // Page variables reset
     $theme_templates = ''; 
     $parents_list = ''; 
     $keytags = '';
     $parent = '';
     $template = '';
     $menuStatus = ''; 
     $private = ''; 
     $menu = ''; 
     $content = '';
     $author = '';
     $title = '';
     $url = '';
     $metak = '';
     $metad = '';
     
     if ($id){
     	// get saved page data
     	$file = $id .'.xml';
     	
     	if (!file_exists($path . $file)){ 
     		redirect('pages.php?error='.urlencode(i18n_r('PAGE_NOTEXIST')));
     	}
     
     	$data_edit = getXML($path . $file);
     	$title = stripslashes($data_edit->title);
     	$pubDate = $data_edit->pubDate;
     	$metak = stripslashes($data_edit->meta);
     	$metad = stripslashes($data_edit->metad);
     	$url = $data_edit->url;
     	$content = stripslashes($data_edit->content);
     	$template = $data_edit->template;
     	$parent = $data_edit->parent;
     	$author = $data_edit->author;
     	$menu = stripslashes($data_edit->menu);
     	$private = $data_edit->private;
     	$menuStatus = $data_edit->menuStatus;
     	$menuOrder = $data_edit->menuOrder;
     	$buttonname = i18n_r('BTN_SAVEUPDATES');
     } else {
     	// prefill fields is provided
     	$title      =  isset( $_GET['title']      ) ? var_out( $_GET['title']      ) : '';
     	$template   =  isset( $_GET['template']   ) ? var_out( $_GET['template']   ) : '';
     	$parent     =  isset( $_GET['parent']     ) ? var_out( $_GET['parent']     ) : '';
     	$menu       =  isset( $_GET['menu']       ) ? var_out( $_GET['menu']       ) : '';
     	$private    =  isset( $_GET['private']    ) ? var_out( $_GET['private']    ) : '';
     	$menuStatus =  isset( $_GET['menuStatus'] ) ? var_out( $_GET['menuStatus'] ) : '';
     	$menuOrder  =  isset( $_GET['menuOrder']  ) ? var_out( $_GET['menuOrder']  ) : '';
     	$buttonname =  i18n_r('BTN_SAVEPAGE');
     }
     
     
     // MAKE SELECT BOX OF AVAILABLE TEMPLATES
     if ($template == '') { $template = 'template.php'; }
     
     $themes_path = GSTHEMESPATH . $TEMPLATE;
     $themes_handle = opendir($themes_path) or die("Unable to open ". GSTHEMESPATH);		
     while ($file = readdir($themes_handle))	{		
     	if( isFile($file, $themes_path, 'php') ) {		
     		if ($file != 'functions.php' && substr(strtolower($file),-8) !='.inc.php' && substr($file,0,1)!=='.') {		
           $templates[] = $file;		
         }		
     	}		
     }		
     		
     sort($templates);
     
     foreach ($templates as $file){
     	if ($template == $file)	{ 
     		$sel="selected"; 
     	} else{ 
     		$sel=""; 
     	}
     	
     	if ($file == 'template.php'){ 
     		$templatename=i18n_r('DEFAULT_TEMPLATE'); 
     	} else { 
     		$templatename=$file;
     	}
     	
     	$theme_templates .= '<option '.$sel.' value="'.$file.'" >'.$templatename.'</option>';
     }
     
     // SETUP CHECKBOXES
     $sel_m = ($menuStatus != '') ? 'checked' : '' ;
     $sel_p = ($private == 'Y') ? 'selected' : '' ;
     if ($menu == '') { $menu = $title; } 
     
     get_template('header', cl($SITENAME).' » '.i18n_r('EDIT').' '.$title); 
     
     ?>
     
     <noscript><style>#metadata_window {display:block !important} </style></noscript>
     
     <?php include('template/include-nav.php'); ?>
     
     <div class="bodycontent clearfix">
     	
     	<div id="maincontent">
     		<div class="main">
     		
     		<h3 class="floated"><?php if(isset($data_edit)) { i18n('PAGE_EDIT_MODE'); } else { i18n('CREATE_NEW_PAGE'); } ?></h3>	
     
     		<!-- pill edit navigation -->
     		<div class="edit-nav" >
     			<?php 
     			if(isset($id)) {
     				echo '<a href="', find_url($url, $parent) ,'" target="_blank" accesskey="', find_accesskey(i18n_r('VIEW')), '" >', i18n_r('VIEW'), ' </a>';
     			} 
     			?>
     			<a href="#" id="metadata_toggle" accesskey="<?php echo find_accesskey(i18n_r('PAGE_OPTIONS'));?>" ><?php i18n('PAGE_OPTIONS'); ?></a>
     			<div class="clear" ></div>
     		</div>	
     			
     		<form class="largeform" id="editform" action="changedata.php" method="post" accept-charset="utf-8" >
     			<input id="nonce" name="nonce" type="hidden" value="<?php echo get_nonce("edit", "edit.php"); ?>" />			
     			<input id="author" name="post-author" type="hidden" value="<?php echo $USR; ?>" />	
     
     			<!-- page title toggle screen -->
     			<p id="edit_window">
     				<label for="post-title" style="display:none;"><?php i18n('PAGE_TITLE'); ?></label>
     				<input class="text title" id="post-title" name="post-title" type="text" value="<?php echo $title; ?>" placeholder="<?php i18n('PAGE_TITLE'); ?>" />
     			</p>
     				
     
     			<!-- metadata toggle screen -->
     			<div style="display:none;" id="metadata_window" >
     			<div class="leftopt">
     				<p class="inline clearfix" id="post-private-wrap" >
     					<label for="post-private" ><?php i18n('KEEP_PRIVATE'); ?>:   </label>
     					<select id="post-private" name="post-private" class="text autowidth" >
     						<option value="" ><?php i18n('NORMAL'); ?></option>
     						<option value="Y" <?php echo $sel_p; ?> ><?php echo ucwords(i18n_r('PRIVATE_SUBTITLE')); ?></option>
     					</select>
     				</p>
     				<p class="inline clearfix" >
     					<label for="post-parent"><?php i18n('PARENT_PAGE'); ?>:</label>
     					<select class="text autowidth" id="post-parent" name="post-parent"> 
     						<?php 
     						getPagesXmlValues();
     						$count = 0;
     						foreach ($pagesArray as $page) {
     							if ($page['parent'] != '') { 
     								$parentdata = getXML(GSDATAPAGESPATH . $page['parent'] .'.xml');
     								$parentTitle = $parentdata->title;
     								$sort = $parentTitle .' '. $page['title'];
     							} else {
     								$sort = $page['title'];
     							}
     							$page = array_merge($page, array('sort' => $sort));
     							$pagesArray_tmp[$count] = $page;
     							$count++;
     						}
     						$pagesArray = $pagesArray_tmp;
     						$pagesSorted = subval_sort($pagesArray,'sort');
     						$ret=get_pages_menu_dropdown('','',0);
     						$ret=str_replace('value="'.$id.'"', 'value="'.$id.'" disabled', $ret);
     						
     						// handle 'no parents' correctly
     						if ($parent == '') { 
     							$none='selected';
     							$noneText='< '.i18n_r('NO_PARENT').' >'; 
     						} else { 
     							$none=null; 
     							$noneText='< '.i18n_r('NO_PARENT').' >'; 
     						}
     						
     						// Create base option
     						echo '<option '.$none.' value="" >'.$noneText.'</option>';
     						echo $ret;
     						?>
     					</select>
     				</p>			
     				<p class="inline clearfix" >
     					<label for="post-template"><?php i18n('TEMPLATE'); ?>:</label>
     					<select class="text autowidth" id="post-template" name="post-template" >
     						<?php echo $theme_templates; ?>
     					</select>
     				</p>
     				
     				<p class="inline post-menu clearfix">
     					<input type="checkbox" id="post-menu-enable" name="post-menu-enable" <?php echo $sel_m; ?> />   <label for="post-menu-enable" ><?php i18n('ADD_TO_MENU'); ?></label><a href="navigation.php" class="viewlink" rel="facybox" ><img src="template/images/search.png" id="tick" alt="<?php echo strip_tags(i18n_r('VIEW')); ?>" /></a>
     				</p>
     				<div id="menu-items">
     					<img src="template/images/tick.png" id="tick" />
     					<span style="float:left;width:81%;" ><label for="post-menu"><?php i18n('MENU_TEXT'); ?></label></span><span style="float:left;width:10%;" ><label for="post-menu-order"><?php i18n('PRIORITY'); ?></label></span>
     					<div class="clear"></div>
     					<input class="text" style="width:73%;" id="post-menu" name="post-menu" type="text" value="<?php echo $menu; ?>" />    <select class="text"  style="width:16%" id="post-menu-order" name="post-menu-order" >
     					<?php if(isset($menuOrder)) { 
     						if($menuOrder == 0) {
     							echo '<option value="" selected>-</option>'; 
     						} else {
     							echo '<option value="'.$menuOrder.'" selected>'.$menuOrder.'</option>'; 
     						}
     					} ?>
     						<option value="">-</option>
     						<?php
     						$i = 1;
     						while ($i <= 30) { 
     							echo '<option value="'.$i.'">'.$i.'</option>';
     							$i++;
     						}
     						?>
     					</select>
     				</div>				
     			</div>
     			
     			<div class="rightopt">
     				<p>
     					<label for="post-id"><?php i18n('SLUG_URL'); ?>:</label>
     					<input class="text short" type="text" id="post-id" name="post-id" value="<?php echo $url; ?>" <?php echo ($url=='index'?'readonly="readonly" ':''); ?>/>
     				</p>
     				<p>
     					<label for="post-metak"><?php i18n('TAG_KEYWORDS'); ?>:</label>
     					<input class="text short" id="post-metak" name="post-metak" type="text" value="<?php echo $metak; ?>" />
     				</p>
     				<p>
     					<label for="post-metad" class="clearfix"><?php i18n('META_DESC'); ?>: <span id="countdownwrap"><strong id="countdown" ></strong> <?php i18n('REMAINING'); ?></span></label>
     					<textarea class="text" id="post-metad" name="post-metad" ><?php echo $metad; ?></textarea>
     				</p>
     				
     
     			</div>
     			<div class="clear"></div>
     			<?php exec_action('edit-extras'); ?>		
     
     			</div>	<!-- / metadata toggle screen -->
     				
     		
     			<!-- page body -->
     			<p>
     				<label for="post-content" style="display:none;"><?php i18n('LABEL_PAGEBODY'); ?></label>
     				<textarea id="post-content" name="post-content"><?php echo $content; ?></textarea>
     			</p>
     			
     			<?php exec_action('edit-content'); ?> 
     			
     			<?php if(isset($data_edit)) { 
     				echo '<input type="hidden" name="existing-url" value="'. $url .'" />'; 
     			} ?>	
     			
     			<span class="editing"><?php echo i18n_r('EDITPAGE_TITLE') .':' . $title; ?></span>
     			<div id="submit_line" >
     				<input type="hidden" name="redirectto" value="" />
     				
     				<span><input id="page_submit" class="submit" type="submit" name="submitted" value="<?php echo $buttonname; ?>" /></span>
     				
     				<div id="dropdown">
     					<h6 class="dropdownaction"><?php i18n('ADDITIONAL_ACTIONS'); ?></h6>
     					<ul class="dropdownmenu">
     						<li id="save-close" ><a href="#" ><?php i18n('SAVE_AND_CLOSE'); ?></a></li>
     						<?php if($url != '') { ?>
     							<li><a href="pages.php?id=<?php echo $url; ?>&action=clone&nonce=<?php echo get_nonce("clone","pages.php"); ?>" ><?php i18n('CLONE'); ?></a></li>
     						<?php } ?>
     						<li id="cancel-updates" class="alertme"><a href="pages.php?cancel" ><?php i18n('CANCEL'); ?></a></li>
     						<?php if($url != 'index' && $url != '') { ?>
     							<li class="alertme" ><a href="deletefile.php?id=<?php echo $url; ?>&nonce=<?php echo get_nonce("delete","deletefile.php"); ?>" ><?php echo strip_tags(i18n_r('ASK_DELETE')); ?></a></li>
     						<?php } ?>
     					</ul>
     				</div>
     				
     			</div>
     			
     			<?php if($url != '') { ?>
     				<p class="backuplink" ><?php 
     					if (isset($pubDate)) { 
     						echo sprintf(i18n_r('LAST_SAVED'), '<em>'.$author.'</em>').' '. lngDate($pubDate).'   ';
     					}
     					if ( file_exists(GSBACKUPSPATH.'pages/'.$url.'.bak.xml') ) {	
     						echo '•   <a href="backup-edit.php?p=view&id='.$url.'" target="_blank" >'.i18n_r('BACKUP_AVAILABLE').'</a>';
     					} 
     				?></p>
     			<?php } ?>
     			
     		</form>
     		
     		<?php 
     
     			if (defined('GSEDITORHEIGHT')) { $EDHEIGHT = GSEDITORHEIGHT .'px'; } else {	$EDHEIGHT = '500px'; }
     			if (defined('GSEDITORLANG')) { $EDLANG = GSEDITORLANG; } else {	$EDLANG = i18n_r('CKEDITOR_LANG'); }
     			if (defined('GSEDITORTOOL') and !isset($EDTOOL)) { $EDTOOL = GSEDITORTOOL; }
     			if (defined('GSEDITOROPTIONS') and !isset($EDOPTIONS) && trim(GSEDITOROPTIONS)!="" ) $EDOPTIONS = GSEDITOROPTIONS; 
     
     			if(!isset($EDTOOL)) $EDTOOL = 'basic';
     
     			if(strpos($EDTOOL,'[')!==false){ $EDTOOL = "[$EDTOOL]"; } // toolbar is array
     			else if(is_array($EDTOOL)) $EDTOOL = json_encode($EDTOOL);
     			// else if($EDTOOL === null) $EDTOOL = 'null'; // not supported in cke 3.x
     			else if($EDTOOL == "none") $EDTOOL = null; // toolbar is cke default
     			else $EDTOOL = "'$EDTOOL'"; // toolbar is a toolbar config variable config.toolbar_$var 
     			
     			$toolbar = isset($EDTOOL) ? ",toolbar: ".trim($EDTOOL,",") : '';
     			$options = isset($EDOPTIONS) ? ','.trim($EDOPTIONS,",") : '';
     
     		?>
     		<?php if ($HTMLEDITOR != '') { ?>
     		<script type="text/javascript" src="template/js/ckeditor/ckeditor.js"></script>
     
     			<script type="text/javascript">
     			
     			var editor = CKEDITOR.replace( 'post-content', {
     					skin : 'getsimple',
     					forcePasteAsPlainText : true,
     					language : '<?php echo $EDLANG; ?>',
     					defaultLanguage : 'en',
     					<?php if (file_exists(GSTHEMESPATH .$TEMPLATE."/editor.css")) { 
     						$fullpath = suggest_site_path();
     						?>
     						contentsCss: '<?php echo $fullpath; ?>theme/<?php echo $TEMPLATE; ?>/editor.css',
     					<?php } ?>
     					entities : false,
     					uiColor : '#FFFFFF',
     					height: '<?php echo $EDHEIGHT; ?>',
     					baseHref : '<?php echo $SITEURL; ?>',
     					tabSpaces:10,
     					filebrowserBrowseUrl : 'filebrowser.php?type=all',
     					filebrowserImageBrowseUrl : 'filebrowser.php?type=images',
     					filebrowserWindowWidth : '730',
     					filebrowserWindowHeight : '500'
     					<?php echo $toolbar; ?>
     					<?php echo $options; ?>					
     			});
     			CKEDITOR.instances["post-content"].on("instanceReady", InstanceReadyEvent);
     				function InstanceReadyEvent() {
     					this.document.on("keyup", function () {
     							$('#editform #post-content').trigger('change');
     				  });
     				}
     
     			</script>
     			
     			<?php
     				# CKEditor setup functions
     				ckeditor_add_page_link();
     				exec_action('html-editor-init'); 
     			?>
     			
     		<?php } ?>
     		
     		
     		
     		<script type="text/javascript">
     			/* Warning for unsaved Data */
     			var yourText = null;
     			var warnme = false;
     			var pageisdirty = false;
     			
     			$('#cancel-updates').hide();
     	
     			window.onbeforeunload = function () {
     				if (warnme || pageisdirty == true) {
     					return "<?php i18n('UNSAVED_INFORMATION'); ?>";
     				}
     			}
     			
     			$('#editform').submit(function(){
     				warnme = false;
     				return checkTitle();
     			});
     
     			checkTitle = function(){
     				if($.trim($("#post-title").val()).length == 0){
     					alert("<?php i18n('CANNOT_SAVE_EMPTY'); ?>");
     					return false;
     				}					
     			}
     
     			jQuery(document).ready(function() { 
     
     			<?php if (defined('GSAUTOSAVE') && (int)GSAUTOSAVE != 0) { /* IF AUTOSAVE IS TURNED ON via GSCONFIG.PHP */ ?>	
     
     					$('#pagechangednotify').hide();
     					$('#autosavenotify').show();
     					$('#autosavenotify').html('Autosaving is <b>ON</b> (<?php echo (int)GSAUTOSAVE; ?> s)');   		    	
     					
     					function autoSaveIntvl(){
     						// console.log('autoSaveIntvl called, isdirty:' + pageisdirty);
     						if(pageisdirty == true){
     							autoSave();
     							pageisdirty = false;
     						}						
     					}
     					
     					function autoSave() {
     						$('input[type=submit]').attr('disabled', 'disabled');
     
     						// we are using ajax, so ckeditor wont copy data to our textarea for us, so we do it manually
     						if(typeof(editor)!='undefined'){ $('#post-content').val(CKEDITOR.instances["post-content"].getData()); }
     						
     						var dataString = $("#editform").serialize();
     						
     						// not internalionalized or using GS date format!
     						var currentTime = new Date();
     						var hours = currentTime.getHours();
     						var minutes = currentTime.getMinutes();
     						if (minutes < 10){ minutes = "0" + minutes; }
     						if(hours > 11){ daypart = "PM";	} else {	daypart = "AM";	}
     						if(hours > 12){ hours-=12; }
     						
     						$.ajax({
     							type: "POST",
     							url: "changedata.php",
     							data: dataString+'&autosave=true&submitted=true',
     							success: function(msg) {
     								if (msg.toString()=='OK') {
     									$('#autosavenotify').text("<?php i18n('AUTOSAVE_NOTIFY'); ?> "+ hours +":"+minutes+" "+daypart);
     									$('#pagechangednotify').hide();
     									$('#pagechangednotify').text('');                    
     									$('input[type=submit]').attr('disabled', false);
     									$('input[type=submit]').css('border-color','#ABABAB');
     									warnme = false;
     									$('#cancel-updates').hide();
     								}
     								else {
     									pageisdirty=true;
     									$('#autosavenotify').text("<?php i18n('AUTOSAVE_FAILED'); ?>");                
     								}
     							}
     						});	
     					}
     					
     					// We register title and slug changes with change() which only fires when you lose focus to prevent midchange saves.
     					$('#post-title, #post-id').change(function () {
     							$('#editform #post-content').trigger('change');
     				  });					
     					
     					// We register all other form elements to detect changes of any type by using bind
     					$('#editform input,#editform textarea,#editform select').not('#post-title').not('#post-id').bind('change keypress paste textInput input',function(){
     							pageisdirty = true;
     							warnme = true;
     							autoSaveInd();
     					});
     				
     				setInterval(autoSaveIntvl, <?php echo (int)GSAUTOSAVE*1000; ?>);
     				
     				<?php } else { /* AUTOSAVE IS NOT TURNED ON */ ?>
     					$('#editform').bind('change keypress paste focus textInput input',function(){					
     							warnme = true;
     							pageisdirty = false;
     							autoSaveInd();
     					});
     					<?php } ?>
     					
     					function autoSaveInd(){
     							$('#pagechangednotify').show();                
     							$('#pagechangednotify').text("<?php i18n('PAGE_UNSAVED')?>");  
     							$('input[type=submit]').css('border-color','#CC0000');              
     							$('#cancel-updates').show();						
     					}
     			});
     		</script>
     	</div>
     	</div><!-- end maincontent -->
     	
     	
     	<div id="sidebar" >
     		<?php include('template/sidebar-pages.php'); ?>	
     	</div>
     
     </div>
     <?php get_template('footer'); ?>
     

[top] / php / GetSimpleCMS-3.2.3 / admin / edit.php

contact | logmethods.com