ACC SHELL

Path : /srv/www/vhosts/marevva/nadacekrizovatka/admin/
File Upload :
Current File : /srv/www/vhosts/marevva/nadacekrizovatka/admin/class.TUNO321.AdminPage.DataEdit.php

<?php

require_once('../class.db.php');
require_once('../functions.php');

class TUNO321DataEdit
{
	private $db;
	private $dbTable;
	
	private $dataFields;
	
	private $labelSave;
	private $labelSaved;
	private $labelDelete;
	
	private $printEditPageExtra;
	
	private $printEditPageAfterForm;
	private $printEditPageScriptAfterForm;
	private $printEditPageScriptFunctionAfterForm;
	
	private $beforeDelete;
	private $beforeSave;
	
	// --------------------------------------------------------------------------------
	// --------------------------------------------------------------------------------
	
	public function __construct( $dbServer, $dbUser, $dbPass, $dbDatabase, $dbTable )
	{	
		include( 'admin-init-vars.php' );
		include( '../texts.php' );
		
		$this->db = new db( $dbServer, $dbUser, $dbPass, $dbDatabase );
		$this->dbTable = $dbTable;
		
		$this->dataFields = array();
		
		$this->setLabels( $text['Save'], $text['Changes were saved.'], $text['Delete'] );
		
		$this->printEditPageExtra = '';
		
		$this->printEditPageAfterForm = array();
		$this->printEditPageScriptAfterForm = array();
		$this->printEditPageScriptFunctionAfterForm = array();
		
		$this->beforeDelete = '';
		$this->beforeSave = '';
	}
	
	public function getDb()
	{
		return $this->db;
	}
	
	public function getDbTable()
	{
		return $this->dbTable;
	}
	
	// --------------------------------------------------------------------------------
	
	public function setLabels( $labelSave, $labelSaved, $labelDelete )
	{
		$this->labelSave = $labelSave;
		$this->labelSaved = $labelSaved;
		$this->labelDelete = $labelDelete;
	}
	
	// --------------------------------------------------------------------------------
	
	public function setPrintEditPageExtra( $printEditPageExtra )
	{
		$this->printEditPageExtra = $printEditPageExtra;
	}
	
	public function setPrintEditPageAfterForm( $printEditPageAfterForm )
	{
		$this->printEditPageAfterForm = array();
		
		foreach ( $printEditPageAfterForm as $item )
		{
			$this->printEditPageAfterForm[] = $item;
		}
	}		
	
	public function setPrintEditPageScriptAfterForm( $printEditPageScriptAfterForm )
	{
		$this->printEditPageScriptAfterForm = array();
		
		foreach ( $printEditPageScriptAfterForm as $item )
		{
			$this->printEditPageScriptAfterForm[] = $item;
		}
	}	
		
	public function setPrintEditPageScriptFunctionAfterForm( $printEditPageScriptFunctionAfterForm )
	{
		$this->printEditPageScriptFunctionAfterForm = array();
		
		foreach ( $printEditPageScriptFunctionAfterForm as $item )
		{
			$this->printEditPageScriptFunctionAfterForm[] = $item;
		}
	}
	
	public function setBeforeDelete( $beforeDelete )
	{
		$this->beforeDelete = $beforeDelete;
	}
	
	public function setAfterSave( $beforeSave )
	{
		$this->beforeSave = $beforeSave;
	}
	
	// --------------------------------------------------------------------------------
	
	public function addDataField( $newDataFieldProperties )
	{
		$newDataField = array();
		
		$newDataField[ 'editable' ] = 'true'; // '' == false
		$newDataField[ 'type' ] = 'text';
		$newDataField[ 'textareaRows' ] = 10;
		$newDataField[ 'textareaCols' ] = 80;
		$newDataField[ 'textareaLimit' ] = 0;
		$newDataField[ 'inTable' ] = 'true';
		$newDataField[ 'title' ] = '';
		$newDataField[ 'dbKey' ] = '';
		$newDataField[ 'tableType' ] = '';
		$newDataField[ 'tooltip' ] = '';
		$newDataField[ 'multilingual' ] = 'false';
		$newDataField[ 'forceValue' ] = '';
		$newDataField[ 'default' ] = '';
		$newDataField[ 'deleteList' ] = 'false';
		$newDataField[ 'urlTitle' ] = 'title';
		
		foreach ( $newDataFieldProperties as $name => $value )
		{
			$newDataField[ $name ] = $value;
		}
		
		if ( $newDataField[ 'title' ] == '' )
			$newDataField[ 'title' ] = $newDataField[ 'dbKey' ];
			
		if ( $newDataField['multilingual'] == 'true' )
		{
			$languages = array( 'en', 'cz' );
			if ( count( $languages ) > 0 )
			{
				foreach ( $languages as $language )
				{
					$newMLDataField = array_merge( $newDataField );
					$newMLDataField[ 'dbKey' ] = $newDataField[ 'dbKey' ] . '_' . $language;
					$newMLDataField[ 'title' ] = $newDataField[ 'title' ] . ' [' . $language . ']';
					$this->dataFields[] = $newMLDataField;
				}
			}
		}
		else
		{		
			$this->dataFields[] = $newDataField;
		}
	}
	
	// --------------------------------------------------------------------------------
	
	public function getDataFields()
	{
		return $this->dataFields;
	}
	
	// --------------------------------------------------------------------------------
		
	private function printEditPageField( $dataField, $value )
	{
		$r = '';
		if ( $dataField['type'] == 'hidden' )
		{
			$r .= '<input type="hidden" name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" value="' . $value . '" />';
		}
		else
		{
			$r .= '<div class="admin-user-label border" >' . $dataField['title'] . '</div>';
			
			if ( $dataField['editable'] == 'true' )
			{
				switch ( $dataField['type'] )
				{
					case 'text':
					case 'url':			
							$r .= '<input type="text" class="admin-user-edit-value" name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" value="' . htmlspecialchars( $value ) . '" />';
						break;
						
					case 'date':
							$r .= '<input type="text" class="admin-user-edit-value" name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" value="' . $value . '" />';
						break;						
					
					case 'textarea':
							if ( $dataField['textareaLimit'] > 0 )
							{
								$r .=	'<div id="' . $dataField['dbKey'] . 'ShowHide" class="admin-toggle-button"> - </div>';
								$r .= 	'<div class="cleaner"></div>'; 
								$r .= 	'<div id="' . $dataField['dbKey'] . 'Wrapper">
								
										<div class="admin-user-label-spacer"> </div>
										<textarea class="admin-user-edit-value" style="height: auto;"
											onkeyup="limiter( \'' . $dataField['dbKey'] . '\', ' . $dataField['textareaLimit'] . ', \'' . $dataField['dbKey'] . '_limiter\' )" 
											name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" rows="' . $dataField['textareaRows'] . '" cols="' . $dataField['textareaCols'] . '">' . 
											$value . 
										'</textarea>';
								$r .= 	'<div class="cleaner"></div>';
								
								$r .= 	'<div class="admin-user-label border" >' . 'Zbývá znaků' . '</div>';
								$r .= 	'<div id="' . $dataField['dbKey'] . '_limiter"  class="admin-user-value" ></div>';
								$r .= 	'	<script type="text/javascript">
												limiter( \'' . $dataField['dbKey'] . '\', ' . $dataField['textareaLimit'] . ', \'' . $dataField['dbKey'] . '_limiter\' )
											</script>';
								$r .= 	'<div class="cleaner"></div>
								
										 </div>';
							}
							else
							{
								$r .= 	'<textarea class="admin-user-edit-value" style="height: auto;"
											name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" rows="' . $dataField['textareaRows'] . '" cols="' . $dataField['textareaCols'] . '">' . 
											$value . 
										'</textarea>';
							}
						break;
						
					case 'textareaHTML':
							$r .=	'<div id="' . $dataField['dbKey'] . 'ShowHide" class="admin-toggle-button"> - </div>';
							$r .= 	'<div class="cleaner"></div>'; 
							$r .= 	'<div id="' . $dataField['dbKey'] . 'Wrapper">
										<div style="position:relative; float:right;">
										<textarea class="admin-user-edit-textareaHTML" 
											name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" 
											rows="' . $dataField['textareaRows'] . '" cols="' . $dataField['textareaCols'] . '">' . 
											$value . 
									'	</textarea>
										</div>
										<div class="cleaner5"></div>
									</div>';
						break;
						
					case 'select':
							$r .= '<div class="admin-user-edit-value" >
									<select name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" class="admin-user-edit-scroll" >';
							$selectOptions = $dataField['selectOptions'];
							foreach ( $selectOptions as $oValue => $oText )
							{
								$r .= '<option value="' . $oValue . '" ' . ( ( $value == $oValue )? 'selected="selected"' : '' ) . ' >' . $oText. '</option>';
							}
							$r .= '	</select>
								   </div>';
						break;
				}
				// tooltip
				if ( $dataField['tooltip'] != '' )
				{
					$r .= '<div class="tooltip" id="' . $dataField['dbKey'] . 'tooltip">' . $dataField['tooltip'] . '</div>';
				}
			}
			else
			{
				switch ( $dataField['type'] )
				{
					case 'select':
							$selectOptions = $dataField['selectOptions'];
							$r .= '<div class="admin-user-value" >' . $selectOptions[ $value ] . '</div>';
							$r .= '<input type="hidden" class="admin-user-edit-value" name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" value="' . $value . '" />';
						break;
						
					case 'textarea':
							$r .= '<div class="admin-user-value-textarea" >' . nl2br( $value ) . '</div>';
							$r .= '<input type="hidden" class="admin-user-edit-value" name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" value="' . $value . '" />';
						break;
						
					default:
							$r .= '<div class="admin-user-value" >' . $value . '</div>';
							$r .= '<input type="hidden" class="admin-user-edit-value" name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" value="' . $value . '" />';
				}
			}
			
			$r .= '<div class="cleaner"></div>';
		}
		
		return $r;
	}
	
	// --------------------------------------------------------------------------------
		
	private function printEditPageFieldHidden( $dataField, $value )
	{
		$r = '';
		
		$r .= '<input type="hidden" name="' . $dataField['dbKey'] . '" id="' . $dataField['dbKey'] . '" value="' . $value . '" />';
		
		return $r;
	}
	
	// --------------------------------------------------------------------------------
	
	private function printEditPage( $pageID, $editType='save' )
	{
		include( 'admin-init-vars.php' );
		include( '../texts.php' );
		
		$urlBack = ( ( isset($_POST['urlBack']) ) ? $_POST['urlBack'] : str_replace( '&cmd=new', '', $_SERVER['HTTP_REFERER'] ) );
		
		$r = '';
		
		$r .='<form id="dataEditForm" method="post" action="' . $_SERVER['REQUEST_URI'] . '" >
		
				<input type="hidden" name="cmd" id="cmd" value="' . $editType . '" />
				
				<input type="hidden" name="urlBack" id="urlBack" value="' . $urlBack . '" />
		';
		
		$r .= '<div class="tooltip"></div>';
		//$this->labelSaved
		$r .= '<div id="admin-saved-label">
					<div class="content">
						' . $text['Changes were saved.'] . '					
					</div>
			   </div>';
		
		//$r .= '<a href="#bottom" >' . $text['Show table'] . '</a>';		
		$r .= '<div onclick=" window.location=\''.$urlBack.'\'; " style="cursor:pointer;" title="zpět" > &larr; zpět </div>';		
		
		$r .= '<div class="cleaner20"></div>';
		$r .= '<div class="admin-button-green" 
					style="float: left;" 
					onclick="javascript: postDataEdit( \'id='.$pageID.'&cmd='.$editType.'\' ); "> ' . $this->labelSave . ' </div>';
		$r .= '<div class="cleaner20"></div>';
		
		$page = $this->db->getItem( $this->dbTable, $pageID );
		
		$dataFieldsCount = count( $this->dataFields );
		if ( $dataFieldsCount > 0 )
		{
			foreach ( $this->dataFields as $dataField )
			{
				switch ( $dataField['type'] )
				{
					case 'separator': 
							if ( $dataField['title'] != '' )
							{
								$r .= '<div class="cleaner20"></div>';
								$r .= '<div class="admin-user-label-separator border" >' . $dataField['title'] . '</div>';
								$r .= '<div class="cleaner"></div>';
							}
							else
							{
								$r .= '<div class="cleaner20"></div>';
							}
						break;
					case 'none': break;
					default: 
							$value = ( isset($page[ $dataField['dbKey'] ]) ? $page[ $dataField['dbKey'] ] : '' );
							if ( ( $value == '' ) && ( $dataField['default'] != '' ) )
								$value = $dataField['default'];
							$r .= $this->printEditPageField( $dataField, $value );
						break;
				}
			}
		}
		
		$r .= '<div class="cleaner10"></div>';
		
		if ( $this->printEditPageExtra != '' )
		{
			include( $this->printEditPageExtra );
		}
		
		$r .='</form>';
		
		if ( $editType == 'save' )
		{
			if ( count( $this->printEditPageAfterForm ) > 0 )
			{
				foreach ( $this->printEditPageAfterForm as $pageAfterForm )
				{
					include( $pageAfterForm );
				}
			}			
		}
		else
		{
			if ( count( $this->printEditPageAfterForm ) > 0 )
			{
				$r .= '<div class="cleaner"></div>';
				$r .= '<strong style="color:red; background-color:white;"> &nbsp !&nbsp; </strong> &nbsp; ' . $text['All further functions (such as image upload) will be enabled after the creation and saving.'];
				$r .= '<div class="cleaner10"> </div>';
			}
		}
		
		$r .= '<div class="admin-button-green" 
					style="float: left;" 
					onclick="javascript: postDataEdit( \'id='.$pageID.'&cmd='.$editType.'\' ); " > ' . $this->labelSave . ' </div>';
		$r .= '<div class="cleaner10"></div>';
		$r .= '
				<div class="admin-button" 
					style="float: left;"
					onclick="javascript: window.location=\''.$urlBack.'\';" > ' . $text['Cancel'] . ' </div>
				<div class="cleaner10"></div>
				';
			
		$r .= '<div class="cleaner"></div>';
		//$r .= '<a href="#menu" >' . $text['Show menu'] . '</a><div class="cleaner10"></div>';		
		//$r .= '<a name="bottom" ></a>';
		
		return $r;
	}
	
	// --------------------------------------------------------------------------------
	
	private function getURLfromTitle( $dataField )
	{
		// check for duplicity
		$newURL = friendly_url( trim($_POST[ $dataField['urlTitle'] ]) );
		$content = $this->db->getItemWhere( $this->dbTable, " WHERE `" . $dataField['dbKey'] . "`='" . $newURL . "' " );
		while ( isset( $content['ID'] ) )
		{
			$newURL .= "-1";
			$content = $this->db->getItemWhere( $this->dbTable, " WHERE `" . $dataField['dbKey'] . "`='" . $newURL . "' " );
		}
		
		return $newURL;
	}
	
	// --------------------------------------------------------------------------------
	
	private function checkURLduplicity( $dataField, $_url )
	{
		$iuItemID = 0;
		if ( isset( $_GET['id'] ) ) $iuItemID = $_GET['id'];		
		if ( isset( $_POST['ID'] ) ) $iuItemID = $_POST['ID'];	
		//if ( $iuItemID == '' ) $iuItemID = $_GET['id'];

		// check for duplicity
		$newURL = friendly_url( $_url );
		$content = $this->db->getItemWhere( $this->dbTable, " WHERE `" . $dataField['dbKey'] . "`='" . $newURL . "' " );
		
		while ( isset( $content['ID'] ) && ( $iuItemID != $content['ID'] ) )
		{
			$newURL .= "-1";
			$content = $this->db->getItemWhere( $this->dbTable, " WHERE `" . $dataField['dbKey'] . "`='" . $newURL . "' " );
		}
		
		return $newURL;
	}
	
	// --------------------------------------------------------------------------------
	
	private function newItem()
	{		
		$r = '.N.';
		
		$tbFields = array();
		$dataFieldsCount = count( $this->dataFields );
		if ( $dataFieldsCount > 0 )
		{
			foreach ( $this->dataFields as $dataField )
			{
				if ( ( $dataField['dbKey'] != 'ID' ) && ( $dataField['editable'] == 'true' ) && 
				     ( $dataField['type'] != 'separator' ) && ( $dataField['type'] != 'none' ) )
				{
					if ( $dataField['forceValue'] == '' )
					{
						
						// url
						if ( $dataField['type'] == 'url' )
						{
							if ( trim($_POST[ $dataField['dbKey'] ]) == '' )
								$tbFields[ $dataField['dbKey'] ] = $this->getURLfromTitle( $dataField );
							else
								$tbFields[ $dataField['dbKey'] ] = $this->checkURLduplicity( $dataField, /*urldecode*/( $_POST[ $dataField['dbKey'] ] ) );
						}				
						// everything else
						else
						{
							$tbFields[ $dataField['dbKey'] ] = /*urldecode*/( $_POST[ $dataField['dbKey'] ] );
						}
						
					}
					else
					{
						$tbFields[ $dataField['dbKey'] ] = $dataField['forceValue'];
					}
				}
			}
		}
		
		if ( $this->db->insertItemUnescaped( $this->dbTable, $tbFields ) )
		{
			$r = '';
		}
		else
		{
			if ( $this->db->insertItem( $this->dbTable, $tbFields ) )
			{
				$r = '';
			}
			else
			{
				$r = '<div style="color:red; font-weight:bold;">Chyba pri vkladani!</div>';
			}
		}
		
		return $r;
	}
	
	// --------------------------------------------------------------------------------
	
	private function savePage( $id )
	{
		$r = '.S.';
		
		$tbFields = array();
		$dataFieldsCount = count( $this->dataFields );
		if ( $dataFieldsCount > 0 )
		{
			foreach ( $this->dataFields as $dataField )
			{
				if ( ( $dataField['dbKey'] != 'ID' ) && ( $dataField['editable'] == 'true' ) && 
				     ( $dataField['type'] != 'separator' ) && ( $dataField['type'] != 'none' ) )
				{
					//$tbFields[ $dataField['dbKey'] ] = $_POST[ $dataField['dbKey'] ];
					
					if ( $dataField['forceValue'] == '' )
					{
						
						// url
						if ( $dataField['type'] == 'url' )
						{
							if ( trim($_POST[ $dataField['dbKey'] ]) == '' )
								$tbFields[ $dataField['dbKey'] ] = $this->getURLfromTitle( $dataField );
							else
								$tbFields[ $dataField['dbKey'] ] = $this->checkURLduplicity( $dataField, /*urldecode*/( $_POST[ $dataField['dbKey'] ] ) );
						}			
						// everything else
						else
						{
							$tbFields[ $dataField['dbKey'] ] = /*urldecode*/( $_POST[ $dataField['dbKey'] ] );
						}
						
					}
					else
					{
						$tbFields[ $dataField['dbKey'] ] = $dataField['forceValue'];
					}
				}
			}						
		}
		
		if ( isset( $id ) )
		{
			$r = '
				<div id="admin-saved-label">
					<div class="content">Změny byly uloženy.</div>
				</div>';	
							   
			$r .= '
				<script type="text/javascript">
					showLabelSaved();
				</script>
			';
			$r .= '
				<script type="text/javascript">
					setTimeout( function()
						{
							window.location = \'' . $_POST['urlBack'] . '\';
							
						}, 
						2000 );
				</script>
			';
			
			if ( $this->db->setItemUnescaped( $this->dbTable, $id, $tbFields ) )
			{
				//$r = '';
			}
			else
			{
				if ( $this->db->setItem( $this->dbTable, $id, $tbFields ) )
				{
					//$r = '';
				}
				else
				{
					$r = '<div style="color:red; font-weight:bold;">Chyba pri ukladani!</div>';
				}
			}
		}
		
		return $r;
	}
	
	// --------------------------------------------------------------------------------
	
	private function deleteItem( $id )
	{
		include( 'admin-init-vars.php' );
		include( '../texts.php' );
		
		$urlBack = ( ( isset($_POST['urlBack']) ) ? $_POST['urlBack'] : str_replace( '&cmd=new', '', $_SERVER['HTTP_REFERER'] ) );
		
		$r = '';
		
		$r .= '	<div onclick=" window.location=\''.$urlBack.'\'; " style="cursor:pointer;" title="zpět" > &larr; zpět </div>
				<div class="cleaner20"></div>';
		
		$r .='<form id="dataEditForm" method="post" action="' . $_SERVER['REQUEST_URI'] . '" >
		
				<input type="hidden" name="urlBack" id="urlBack" value="' . $urlBack . '" />
				
		';				
		
		$item = $this->db->getItem( $this->dbTable, $id );
		
		//$r .= 'Opravdu chcte smazat záznam: ID = ' . $item['ID'] . ' ?';		
		$r .= '<strong>Opravdu chcte smazat záznam</strong>: ID = ' . $item['ID'] . ' <strong>?</strong><div class="cleaner20"></div>';
		$dataFieldsCount = count( $this->dataFields );
		if ( $dataFieldsCount > 0 )
		{
			foreach ( $this->dataFields as $dataField )
			{
				if ( $dataField['deleteList'] == 'true' )
				{
					$r .= '<div class="admin-user-label border" >' . $dataField['title'] . '</div>';
					
					if ( $dataField['type'] == 'select' )
					{
						$r .= '<div class="admin-user-value" >' . $dataField['selectOptions'][ $item[ $dataField['dbKey'] ] ] . '</div>';
					}
					else
					{
						$r .= '<div class="admin-user-value" >' . $item[ $dataField['dbKey'] ] . '</div>';
					}
					
					$r .= '<div class="cleaner"></div>';
				}
			}
		}
		
		$tbFields = array();
		$dataFieldsCount = count( $this->dataFields );
		if ( $dataFieldsCount > 0 )
		{
			foreach ( $this->dataFields as $dataField )
			{
				if ( ( $dataField['dbKey'] == 'ID' ) || 
					 ( $dataField['dbKey'] == 'OK_button' ) )
				{
					$r .= $this->printEditPageFieldHidden( $dataField, ( isset($item[ $dataField['dbKey'] ]) ? $item[ $dataField['dbKey'] ] : '' ) );
				}
			}
		}
		
		$r .= '	<div class="cleaner20"></div>
				
				<div class="admin-button" 
					style="float: left;"
					onclick="javascript: postDataEdit( \'id='.$id.'&cmd=delete\' ); " > ' . $this->labelDelete . ' </div>
				
				<div class="cleaner10"></div>
				
				<div class="admin-button" 
					style="float: left;"
					onclick="javascript: window.location=\''.$urlBack.'\';" > ' . $text['Cancel'] . ' </div>
					
				<div class="cleaner10"> </div>';
		
		$r .='</form>';
		
		return $r;
	}
	
	// --------------------------------------------------------------------------------
	
	public function printPage()
	{
		include( 'admin-init-vars.php' );
		include( '../texts.php' );
		
		$id = 0;
		if ( isset( $_GET['id'] ) ) $id = $_GET['id'];		
		if ( isset( $_POST['ID'] ) ) $id = $_POST['ID'];
		
		$cmd = '';
		if ( isset( $_GET['cmd'] ) ) $cmd = $_GET['cmd'];
		if ( isset( $_POST['cmd'] ) ) $cmd = $_POST['cmd'];
		
		$r = '';
		
		$r .= '<div id="dataEdit">
				<div style="margin-bottom: 20px;" >';
		$r .= '		<div class="cleaner10"></div>';
		
		switch ( $cmd )
		{
			case 'new':
					$id = -1;
					if ( isset( $_POST['OK_button'] ) )
					{
						if ( $this->beforeSave != '' )
							include( $this->beforeSave );
						
						$r .= $this->newItem();
						$id = $this->db->getLastID();
						$_GET['id'] = $id;
						//$r .= $this->printEditPage( $id );
						
						$r .= js_redirect( '/admin/admin.php?action=' . $_GET['action'] . '&id=' . $id );
					}
					else
					{
						$r .= $this->printEditPage( $id, 'new' );
					}
				break;				
			
			case 'save':
					if ( $this->beforeSave != '' )
						include( $this->beforeSave );
						
					$r .= $this->savePage( $_POST['ID'] );
					
					$r .= $this->printEditPage( $id );
				break;
				
			case 'delete':
					if ( isset( $_POST['OK_button'] ) )
					{
						if ( $this->beforeDelete != '' )
							include( $this->beforeDelete );
								
						$this->db->deleteItem( $this->dbTable, $id );	
						
						$r .= js_redirect( '/admin/admin.php?action=' . $_GET['action'] );					   
					}
					else
					{
						$r .= $this->deleteItem( $id );
					}
				break;
			
			default:
				$r .= $this->printEditPage( $id );
		}
		
		$r .= '	</div>';	
		
		////
		//if ( $cmd == '' )
		{
			if (empty($responce))
				$responce = $_SERVER['PHP_SELF'];
		
			if ( count( $this->printEditPageScriptAfterForm ) > 0 )
			{
				foreach ( $this->printEditPageScriptAfterForm as $pageScriptAfterForm )
				{
					$r .= '<script type="text/javascript" src="/admin/js/' . $pageScriptAfterForm . '"></script>';
				}
			}
			
			$r .= "<script type=\"text/javascript\">\n";
			
			// init DataEdit form - create editors, datepickers, tooltips
			$r .= "  function initDataEdit()
					 {					 
						";
						$dataFieldsCount = count( $this->dataFields );					
						if ( $dataFieldsCount > 0 )
						{
							foreach ( $this->dataFields as $dataField )
							{
								if ( ( $dataField['type'] == 'textareaHTML' ) || ( $dataField['type'] == 'textarea' ) )
								{
									if ( $dataField['type'] == 'textareaHTML' )
									{
										$r .= ' createEditor( \'' . $dataField['dbKey'] . '\' ); ' . "\n";
									}
									$r .= '
											$("#' . $dataField['dbKey'] . 'ShowHide").toggle( function()
																							  {
																								  $("#' . $dataField['dbKey'] . 'Wrapper").toggle("fast");
																								  $(this).html(" + ");
																							  },
																							  function()
																							  {
																								  $("#' . $dataField['dbKey'] . 'Wrapper").toggle("fast");
																								  $(this).html(" - ");
																							  } ); 
											' . "\n";
									if ( $dataField['multilingual'] )
									{
										//$r .= '$("#' . $dataField['dbKey'] . 'ShowHide").click();';
									}
								}
								if ( $dataField['type'] == 'date' )
								{
									$r .= ' $("#' . $dataField['dbKey'] . '").datepicker( $.datepicker.regional[\'cs\'] );
											$("#' . $dataField['dbKey'] . '").datepicker( {dateFormat: \'yy-mm-dd\'} );  ' . "\n"; //$("#' . $dataField['dbKey'] . '").datepicker( {dateFormat: \'dd.mm.yy\'} );
								}
								if ( $dataField['tooltip'] != '' )
								{
									$r .= ' createTooltip( \'' . $dataField['dbKey'] . '\' ); ' . "\n";
								}
							}
						}
						
						if ( count( $this->printEditPageScriptFunctionAfterForm ) > 0 )
						{
							foreach ( $this->printEditPageScriptFunctionAfterForm as $scriptFunction )
							{
								$r .= $scriptFunction . '(); ';
							}
						}
						$r .= "
					 };
					 
					 $('#dataEdit').ready( function() {
						 initDataEdit();
					 });
					 
					 
				";
				
				// post DataEdit form
		$r .= "function postDataEdit( params2 ) 
			   {
					$('#dataEditForm').submit();
			   }\n";
				
			$r .= "</script>\n";
		}
		////	
		
		// loader image
		$r .= ' <div id="loaderImg" style="display:none;" >
					<img src="/admin/img/ajax-loader.gif" alt="loading..."/>
				</div>';
		
		$r .= "</div>";
		
		return $r;
	}
	
	// --------------------------------------------------------------------------------
	
}

?>

ACC SHELL 2018