[code.view]

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

     <?php
     /**
      * Components
      *
      * Displays and creates static components 	
      *
      * @package GetSimple
      * @subpackage Components
      * @link http://get-simple.info/docs/what-are-components
      */
      
     # setup inclusions
     $load['plugin'] = true;
     include('inc/common.php');
     
     # variable settings
     $userid 	= login_cookie_check();
     $file 		= "components.xml";
     $path 		= GSDATAOTHERPATH;
     $bakpath 	= GSBACKUPSPATH .'other/';
     $update 	= ''; $table = ''; $list='';
     
     # check to see if form was submitted
     if (isset($_POST['submitted'])){
     	$value = $_POST['val'];
     	$slug = $_POST['slug'];
     	$title = $_POST['title'];
     	$ids = $_POST['id'];
     	
     	// check for csrf
     	if (!defined('GSNOCSRF') || (GSNOCSRF == FALSE) ) {
     		$nonce = $_POST['nonce'];	
     		if(!check_nonce($nonce, "modify_components")) {
     			die("CSRF detected!");
     		}
     	}
     
     	# create backup file for undo           
     	createBak($file, $path, $bakpath);
     	
     	# start creation of top of components.xml file
     	$xml = new SimpleXMLExtended('<?xml version="1.0" encoding="UTF-8"?><channel></channel>');
     	if (count($ids) != 0) { 
     		
     		$ct = 0; $coArray = array();
     		foreach ($ids as $id)		{
     			if ($title[$ct] != null) {
     				if ( $slug[$ct] == null )	{
     					$slug_tmp = to7bit($title[$ct], 'UTF-8');
     					$slug[$ct] = clean_url($slug_tmp); 
     					$slug_tmp = '';
     				}
     				
     				$coArray[$ct]['id'] = $ids[$ct];
     				$coArray[$ct]['slug'] = $slug[$ct];
     				$coArray[$ct]['title'] = safe_slash_html($title[$ct]);
     				$coArray[$ct]['value'] = safe_slash_html($value[$ct]);
     				
     			}
     			$ct++;
     		}
     		
     		$ids = subval_sort($coArray,'title');
     		
     		$count = 0;
     		foreach ($ids as $comp)	{
     			# create the body of components.xml file
     			$components = $xml->addChild('item');
     			$c_note = $components->addChild('title');
     			$c_note->addCData($comp['title']);
     			$components->addChild('slug', $comp['slug']);
     			$c_note = $components->addChild('value');
     			$c_note->addCData($comp['value']);
     			$count++;
     		}
     	}
     	exec_action('component-save');
     	XMLsave($xml, $path . $file);
     	redirect('components.php?upd=comp-success');
     }
     
     # if undo was invoked
     if (isset($_GET['undo'])) { 
     	
     	# check for csrf
     	$nonce = $_GET['nonce'];	
     	if(!check_nonce($nonce, "undo")) {
     		die("CSRF detected!");
     	}
     	
     	# perform the undo
     	undo($file, $path, $bakpath);
     	redirect('components.php?upd=comp-restored');
     }
     
     # create components form html
     $data = getXML($path . $file);
     $componentsec = $data->item;
     $count= 0;
     if (count($componentsec) != 0) {
     	foreach ($componentsec as $component) {
     		$table .= '<div class="compdiv" id="section-'.$count.'"><table class="comptable" ><tr><td><b title="'.i18n_r('DOUBLE_CLICK_EDIT').'" class="editable">'. stripslashes($component->title) .'</b></td>';
     		$table .= '<td style="text-align:right;" ><code><?php get_component(<span class="compslugcode">\''.$component->slug.'\'</span>); ?></code></td><td class="delete" >';
     		$table .= '<a href="#" title="'.i18n_r('DELETE_COMPONENT').': '. cl($component->title).'?" class="delcomponent" rel="'.$count.'" >×</a></td></tr></table>';
     		$table .= '<textarea name="val[]">'. stripslashes($component->value) .'</textarea>';
     		$table .= '<input type="hidden" class="compslug" name="slug[]" value="'. $component->slug .'" />';
     		$table .= '<input type="hidden" class="comptitle" name="title[]" value="'. stripslashes($component->title) .'" />';
     		$table .= '<input type="hidden" name="id[]" value="'. $count .'" />';
     		exec_action('component-extras');
     		$table .= '</div>';
     		$count++;
     	}
     }
     	# create list to show on sidebar for easy access
     	$listc = ''; $submitclass = '';
     	if($count > 3) {
     		$item = 0;
     		foreach($componentsec as $component) {
     			$listc .= '<a id="divlist-' . $item . '" href="#section-' . $item . '" class="component">' . $component->title . '</a>';
     			$item++;
     		}
     	} elseif ($count == 0) {
     		$submitclass = 'hidden';
     		
     	}
     
     get_template('header', cl($SITENAME).' » '.i18n_r('COMPONENTS')); 
     
     ?>
     	
     <?php include('template/include-nav.php'); ?>
     
     <div class="bodycontent clearfix">
     	
     	<div id="maincontent">
     	<div class="main">
     	<h3 class="floated"><?php echo i18n('EDIT_COMPONENTS');?></h3>
     	<div class="edit-nav" >
     		<a href="#" id="addcomponent" accesskey="<?php echo find_accesskey(i18n_r('ADD_COMPONENT'));?>" ><?php i18n('ADD_COMPONENT');?></a>
     		<div class="clear"></div>
     	</div>
     	
     	<form class="manyinputs" action="<?php myself(); ?>" method="post" accept-charset="utf-8" >
     		<input type="hidden" id="id" value="<?php echo $count; ?>" />
     		<input type="hidden" id="nonce" name="nonce" value="<?php echo get_nonce("modify_components"); ?>" />
     
     		<div id="divTxt"></div> 
     		<?php echo $table; ?>
     		<p id="submit_line" class="<?php echo $submitclass; ?>" >
     			<span><input type="submit" class="submit" name="submitted" id="button" value="<?php i18n('SAVE_COMPONENTS');?>" /></span>   <?php i18n('OR'); ?>   <a class="cancel" href="components.php?cancel"><?php i18n('CANCEL'); ?></a>
     		</p>
     	</form>
     	</div>
     	</div>
     	
     	<div id="sidebar">
     		<?php include('template/sidebar-theme.php'); ?>
     		<?php if ($listc != '') { echo '<div class="compdivlist">'.$listc .'</div>'; } ?>
     	</div>
     
     </div>
     <?php get_template('footer'); ?>

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

contact | logmethods.com