ACC SHELL

Path : /srv/www/vhosts/marevva/crossroadsfoundation/admin/page/
File Upload :
Current File : /srv/www/vhosts/marevva/crossroadsfoundation/admin/page/class.pageItemContent29.php

<?php

// functions
require_once( $serverFullPath.'functions.php' );
// ETS
require_once( $serverFullPath.'ets.php' );
	
class pageItemContent29 extends pageItemContent
{
	private $_pageItemType = 29;
	protected $_db;
	private $_pageID;
	private $_pathPage;
	
	// --------------------------------------------------------------------------------
	
	public function __construct( $db, $pageID, $_pathPage )
	{
		$this->_db = $db;
		$this->_pageID = $pageID;
		$this->_pathPage = '../..' . $_pathPage . '/';
	}
	
	// --------------------------------------------------------------------------------
	
	public function insert( $position )
	{
		$return = array();
		
		if ( $this->_db->insertItem( 'pageItem', array( 'pageID'=>$this->_pageID, 'type'=>$this->_pageItemType, 'position'=>$position ) ) )
		{
			$newPageItemID = $this->_db->getLastID();
			
			if ( $this->_db->insertItem( 'pageItemContent'.$this->_pageItemType, array() ) )
			{
				$newPageItemContentID = $this->_db->getLastID();
				$this->_db->setItem( 'pageItem', $newPageItemID, array( 'pageItemContentID'=>$newPageItemContentID ) );
				
				// save default data
				$settings_ = $this->_db->getItem( 'settings', 1 );
				$this->_db->setItem( 'pageItemContent'.$this->_pageItemType, $newPageItemContentID, array(
					'emailToEmail' => $settings_['contactFormEmail'], 
					'emailFromName' => $settings_['contactFormEmailName'], 'emailFromEmail' => $settings_['contactFormEmail'], 
					'items' => '', 'filesEnabled' => 0, 'newsletterEnabled' => 0
				) );
				
				$return['statusOK'] = 'Položka byla uložená.';
			}
			else
			{
				$this->_db->deleteItem( 'pageItem', $newPageItemID );
				$return['statusError'] = 'Při ukládání dat(položky) vznikla chyba.';
			}				
		}
		else
		{
			$return['statusError'] = 'Při ukládání dat vznikla chyba.';
		}
		
			
		return $return;
	}
	
	// --------------------------------------------------------------------------------

	public function delete( $pageItemID )
	{
		$return = array();
		
		$pageItem = $this->_db->getItem( 'pageItem', $pageItemID );
		$pageItemContent = $this->_db->getItem( 'pageItemContent'.$this->_pageItemType, $pageItem['pageItemContentID'] );
		
		if ( isset( $pageItem['ID'] ) && isset( $pageItemContent['ID'] ) )
		{
			if ( $this->_db->deleteItem( 'pageItem', $pageItem['ID'] ) && 
				 $this->_db->deleteItem( 'pageItemContent'.$this->_pageItemType, $pageItemContent['ID'] ) )
			{					
				$return['statusOK'] = 'Položka byla smazána.';		
			}
			else
			{
				$return['statusError'] = 'Při mazání dat vznikla chyba.';
			}
		}
		else
		{
			$return['statusError'] = 'Při pokuse o mazání dat vznikla chyba.';
		}
			
		return $return;
	}
	
	// --------------------------------------------------------------------------------
	
	public function show( $pageItemID, $serverFullPath = '', $isAdmin = false )
	{		
		$pageItem = $this->_db->getItem( 'pageItem', $pageItemID );
		$pageItemContent = $this->_db->getItem( 'pageItemContent'.$this->_pageItemType, $pageItem['pageItemContentID'] );
		
		$htmlPageItem = new stdClass();
		
		$htmlPageItem->pageItemID = $pageItemID;
		
		$htmlPageItem->isAdmin = $isAdmin;
		
		if ( $isAdmin == false )
		{	
			$_text = '';		
			$registerOutputScript = '';
				
			if ( isset( $_POST['contactForm29-22'] ) )
			{
				$emailETS = new stdClass();
				$emailSubject = 'Message from webform';
				$fromURL = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
				$_dvacetdva = trim( $_POST['contactForm29-22'] );
					
				if ( (($_dvacetdva == '321' ) || ($_dvacetdva == '3 2 1' )) )
				{
					$_text = '';
					$_email = '';
					$registerOutputURLparams = '';
					
					$_newsletter = 0;
					if ( isset( $_POST['contactForm29-newsletter'] ) )
					{
						$_newsletter = trim( $_POST['contactForm29-newsletter'] );
						if ( $_newsletter == 'on' )
							$_newsletter = 1;	
					}
					
					$items = explode( "\n", $pageItemContent['items'] );
					if ( ( count($items) > 0 ) && ( $items[0] != '' ) )
					{
						for ( $i = 0; $i < count( $items ); $i++ )
						{
							$item = $items[ $i ];
							
							$itemsLine = explode( "|", $item );
							
							$emailETS->items[ $i ] = new stdClass();
							$emailETS->items[ $i ]->n = $i + 1;
							
							$emailETS->items[ $i ]->title = $item;
							
							$emailETS->items[ $i ]->value = '';
							if ( isset( $_POST[ 'contactForm29-item'.$emailETS->items[ $i ]->n ] )  )
								$emailETS->items[ $i ]->value = trim( $_POST[ 'contactForm29-item'.$emailETS->items[ $i ]->n ] );
							$emailETS->items[ $i ]->valueHTML = $emailETS->items[ $i ]->value;
							
							$emailETS->items[ $i ]->type = 'singleLine';
							if ( isset( $itemsLine[1] ) && ( trim($itemsLine[1]) == 'textarea' || trim($itemsLine[1]) == 'multiLine' ) )
							{
								$emailETS->items[ $i ]->type = 'multiLine';
								$emailETS->items[ $i ]->valueHTML = nl2br( $emailETS->items[ $i ]->value );
							}
							if ( isset( $itemsLine[1] ) && ( trim($itemsLine[1]) == 'email' || trim($itemsLine[1]) == 'e-mail' ) )
							{
								$emailETS->items[ $i ]->type = 'email';
								$_email = $emailETS->items[ $i ]->value;
							}
									
							if ( isset( $itemsLine[0] ) && ( trim($itemsLine[0]) != '' ) )
								$emailETS->items[ $i ]->title = trim($itemsLine[0]);
								
							$_text .= '<strong>' . $emailETS->items[ $i ]->title . ':</strong><br/>' . $emailETS->items[ $i ]->valueHTML . '<br/><br/>';
						}
					}
										
					// all ok dialog
					$registerOutputURLparams = '/parts/overlay-form.php?showRegisterForm=false';
					
					// DB insert
					$this->_db->insertItem( 'contactForm29', array(
														'text' => $_text,
														'newsletter' => $_newsletter,
														'fromURL' => $fromURL,
														'emailFromName' => $pageItemContent[ 'emailFromName' ],
														'emailFromEmail' => $pageItemContent[ 'emailFromEmail' ],
														'emailToEmail' => $pageItemContent[ 'emailToEmail' ]
													) );
													
					$newFormID = $this->_db->getLastID();
					
					/////
					// save file (image)
					$downloadText = '';
					if ( $pageItemContent['filesEnabled'] )
					{
						$imageFileName = '';
						
						$downloadText2 = '';
						
						foreach ( $_FILES as $imageN => $file )
						{
							$imageFileName = basename( $file['name'] );
							
							if ( ( $imageFileName != '' ) && ( isFilePHP( $file['tmp_name'] ) == false ) )
							{		
								$imageFileName = 'form-' . time() . '-' . $imageFileName;
								$sourceImageFileName = './data/form29/' . $imageFileName;
								
								if ( move_uploaded_file( $file['tmp_name'], $sourceImageFileName ) )
								{
									$this->_db->setItem( 'contactForm29', $newFormID, array(			
										$imageN => $imageFileName
									) );
									
									$fileFullURL = 'http://' . $_SERVER['HTTP_HOST'] . '/data/form29/' . $imageFileName;
									$downloadText2 .= '<a href="' . $fileFullURL . '" title="' . $imageFileName . '" target="_blank">' . $imageFileName . '</a><br/>';
								}
							}
						}
						if ( $downloadText2 != '' )
						{
							$downloadText = '<strong>File attachments:</strong><br/>' . $downloadText2;
						}
					}
					/////
					
					// mail to admin
					$headers  = 'MIME-Version: 1.0' . "\r\n";
					$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
					$shopMailEx = explode( ',', $pageItemContent[ 'emailFromEmail' ] );
					$headers .= "From: " . $pageItemContent[ 'emailFromName' ] . " <" . $shopMailEx[0] . ">\r\n";
					//$headers .= "Reply-To: " . $_name ." ". $_surname . " <" . $_email . ">\r\n";
					
					$email = '
						Message from web: http://' . $_SERVER['HTTP_HOST'] . '
						<br/><br/>
						' . $_text . '<br/>
						' . $downloadText . '<br/>
						<br/><br/>
						Sent from URL: <a href="' . $fromURL . '" target="_blank">' . $fromURL . '</a>

					';
					mail( $pageItemContent[ 'emailToEmail' ], $emailSubject, $email, $headers );
					
					// mail to user
					if ( $_email != '' )
					{
						$headers  = 'MIME-Version: 1.0' . "\r\n";
						$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
						$headers .= "From: " . $pageItemContent[ 'emailFromName' ] . " <" . $shopMailEx[0] . ">\r\n";
						$email = '
							Hello,
							we acknowledge receipt of the message from http://'. $_SERVER['HTTP_HOST']. ' with the following information:
							<br/><br/>
							' . $_text . '<br/>
							We will contact you as soon as possible. 
						';
						mail( $_email, $emailSubject, $email, $headers );
					}
					
					unset( $_POST );
					
					$_dvacetdva = '';
							
					$registerOutputScript = '
						
							$("#mainOverlay").overlay({
								mask: {
									color: "#f1f1f1",
									loadSpeed: 200,
									opacity: 0.88,
									zIndex: 20000 
								},
								top: 100,
								closeOnClick: false,
								load: true,
								
								onLoad: function() {
									var wrap = this.getOverlay().find( ".contentWrap" );
									wrap.load( "' . $registerOutputURLparams . '" );
								}
							});
						
					';
				
				}
				else
				{
					$registerOutputScript = '
						
							alert( \'You have not correctly entered all the information you need to send the message.\' );
						
					';
				}
			}
			
			$htmlPageItem->registerOutputScript = $registerOutputScript;
			
			$htmlPageItem->filesEnabled = $pageItemContent['filesEnabled'];
			$htmlPageItem->newsletterEnabled = $pageItemContent['newsletterEnabled'];
			
			$items = explode( "\n", $pageItemContent['items'] );
			if ( ( count($items) > 0 ) && ( $items[0] != '' ) )
			{
				for ( $i = 0; $i < count( $items ); $i++ )
				{
					$item = $items[ $i ];
					
					$itemsLine = explode( "|", $item );
					
					$htmlPageItem->items[ $i ] = new stdClass();
					$htmlPageItem->items[ $i ]->n = $i + 1;
					
					$htmlPageItem->items[ $i ]->title = $item;
					
					$htmlPageItem->items[ $i ]->type = 'singleLine';
					if ( isset( $itemsLine[1] ) && ( trim($itemsLine[1]) == 'textarea' || trim($itemsLine[1]) == 'multiLine' ) )
						$htmlPageItem->items[ $i ]->type = 'multiLine';
					if ( isset( $itemsLine[1] ) && ( trim($itemsLine[1]) == 'email' || trim($itemsLine[1]) == 'e-mail' ) )
						$htmlPageItem->items[ $i ]->type = 'email';
							
					if ( isset( $itemsLine[0] ) && ( trim($itemsLine[0]) != '' ) )
						$htmlPageItem->items[ $i ]->title = trim($itemsLine[0]);
				}
			}
			//
			$htmlPageItem->showRegisterForm = true;
			if ( isset( $_GET['showRegisterForm'] ) && ($_GET['showRegisterForm'] == 'false' ) )
				$htmlPageItem->showRegisterForm = false;
			//	
			return sprintt( $htmlPageItem, $serverFullPath . 'class.pageItemContent' . $this->_pageItemType . '-show.html' );			
		}
		else
		{
			$htmlPageItem->emailToEmail = $pageItemContent['emailToEmail'];
		
			$htmlPageItem->emailFromName = $pageItemContent['emailFromName'];
			$htmlPageItem->emailFromEmail = $pageItemContent['emailFromEmail'];
			
			$htmlPageItem->items = nl2br( $pageItemContent['items'] );
			$htmlPageItem->filesEnabled = $pageItemContent['filesEnabled'];
			$htmlPageItem->newsletterEnabled = $pageItemContent['newsletterEnabled'];
		}
		
		return sprintt( $htmlPageItem, $serverFullPath . 'class.pageItemContent' . $this->_pageItemType . '-show.html' );
	}
	
	// --------------------------------------------------------------------------------
	
	public function edit( $pageItemID )
	{
		$pageItem = $this->_db->getItem( 'pageItem', $pageItemID );
		$pageItemContent = $this->_db->getItem( 'pageItemContent'.$this->_pageItemType, $pageItem['pageItemContentID'] );
		
		$htmlPageItem = new stdClass();
		
		$htmlPageItem->pageID = $this->_pageID;
		$htmlPageItem->pageItemID = $pageItemID;
		$htmlPageItem->pageItemType = $this->_pageItemType;
		
		$htmlPageItem->emailToEmail = $pageItemContent['emailToEmail'];
		
		$htmlPageItem->emailFromName = $pageItemContent['emailFromName'];
		$htmlPageItem->emailFromEmail = $pageItemContent['emailFromEmail'];
		
		$htmlPageItem->items = $pageItemContent['items'];
		$htmlPageItem->filesEnabled = $pageItemContent['filesEnabled'];
		$htmlPageItem->newsletterEnabled = $pageItemContent['newsletterEnabled'];
		
		// fixed save buttons
		$htmlPageItem->fixedSaveButtons = $this->fixedSaveButtonsBeforeEdit();
		
		return sprintt( $htmlPageItem, 'page/class.pageItemContent' . $this->_pageItemType . '-edit.html' );
	}
	
	// --------------------------------------------------------------------------------
	
	public function save( $pageItemID )
	{
		$pageItem = $this->_db->getItem( 'pageItem', $pageItemID );
		$pageItemContent = $this->_db->getItem( 'pageItemContent'.$this->_pageItemType, $pageItem['pageItemContentID'] );
		
		// save data
		$this->_db->setItem( 'pageItemContent'.$this->_pageItemType, $pageItem['pageItemContentID'], array(
			'emailToEmail' => $_POST['emailToEmail'], 
			'emailFromName' => $_POST['emailFromName'], 'emailFromEmail' => $_POST['emailFromEmail'], 
			'items' => $_POST['items'], 'filesEnabled' => $_POST['filesEnabled'], 'newsletterEnabled' => $_POST['newsletterEnabled']
		) );
		
		return '
			<div class="pageStatusOK"> Uloženo. </div>
		';
	}
}

?>

ACC SHELL 2018