ACC SHELL

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

<?php

// functions
require_once( $serverFullPath.'functions.php' );
// ETS
require_once( $serverFullPath.'ets.php' );
	
class pageItemContent25 extends pageItemContent
{
	private $_pageItemType = 25;
	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'], 
					'textPredefined' => '', '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 )
		{	
			$formType = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
					
			$emailSubject = 'Zprava z kontaktniho formulare';
		
			$_name = '';
			$_company = '';
			$_phone = '';
			$_email = '';		
			$_text = '';		
			$registerOutputScript = '';
				
			if ( isset( $_POST['contactForm25-name'] ) && isset( $_POST['contactForm25-email'] ) && isset( $_POST['contactForm25-text'] ) )
			{
				$_name = trim( $_POST['contactForm25-name'] );
				$_company = trim( $_POST['contactForm25-company'] );
				$_phone = trim( $_POST['contactForm25-phone'] );
				$_email = trim( $_POST['contactForm25-email'] );
				$_text = trim( $_POST['contactForm25-text'] );
				$_dvacetdva = trim( $_POST['contactForm25-22'] );
					
				if ( ( $_name != '' ) && ($_email != '' ) && ($_text != '' ) && (($_dvacetdva == '321' ) || ($_dvacetdva == '3 2 1' )) && ( preg_match( "/^[\ a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,6}$/i", $_email ) > 0 ) )
				{
					
					$registerOutputURLparams = '';
					
					$_newsletter = 0;
					if ( isset( $_POST['contactForm25-newsletter'] ) )
					{
						$_newsletter = trim( $_POST['contactForm25-newsletter'] );
						if ( $_newsletter == 'on' )
							$_newsletter = 1;	
					}
										
					// all ok dialog
					$registerOutputURLparams = '/parts/overlay-form.php?showRegisterForm=false';
					
					// DB insert
					$this->_db->insertItem( 'contactForm25', array(
														'name' => $_name,
														'company' => $_company,
														'phone' => $_phone,
														'email' => $_email,
														'text' => $_text,
														'newsletter' => $_newsletter,
														'type' => $formType,
														'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/form25/' . $imageFileName;
								
								if ( move_uploaded_file( $file['tmp_name'], $sourceImageFileName ) )
								{
									$this->_db->setItem( 'contactForm25', $newFormID, array(			
										$imageN => $imageFileName
									) );
									
									$fileFullURL = 'http://' . $_SERVER['HTTP_HOST'] . '/data/form25/' . $imageFileName;
									$downloadText2 .= '<a href="' . $fileFullURL . '" title="' . $imageFileName . '" target="_blank">' . $imageFileName . '</a><br/>';
								}
							}
						}
						if ( $downloadText2 != '' )
						{
							$downloadText = '<strong>K formuláři byly přiloženy soubory:</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";
					$headers .= "BCC: spenat@tridvajedna.cz\r\n";
					
					$fromURL = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
					if ( isset($_GET['pi']) && ( is_numeric( $_GET['pi'] ) ) )
					{
						/*$product = $this->_db->getItem( 'product', $_GET['pi'] );
						
						if ( isset( $product['ID'] ) )
						{*/
							$fromURL = $_SERVER['HTTP_REFERER'];
						//}
					}
				
					$email = '
						Dotaz ze stránek: http://' . $_SERVER['HTTP_HOST'] . '
						<br/><br/>
						<strong>Jméno a příjmení:</strong> ' . $_name . '<br/><br/>
						<strong>Společnost:</strong> ' . $_company . '<br/><br/>
						<strong>Telefon:</strong> ' . $_phone . '<br/><br/>
						<strong>e-mail:</strong> ' . $_email . '<br/><br/>
						<strong>Dotaz:</strong> ' . nl2br($_text) . '<br/>
						' . $downloadText . '<br/>
						<br/><br/>
						Odesláno z URL: <a href="' . $fromURL . '" target="_blank">' . $fromURL . '</a>

					';
					mail( $pageItemContent[ 'emailToEmail' ], $emailSubject, $email, $headers );
					
					// mail to user
					$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";
					//$headers .= "BCC: spenat@tridvajedna.cz\r\n";
					$email = '
						Dobrý den,
						potvrzujeme příjem zprávy ze stránek: http://' . $_SERVER['HTTP_HOST'] . ' s těmito údaji:
						<br/><br/>
						<strong>Jméno a příjmení:</strong> ' . $_name . '<br/><br/>
						<strong>Společnost:</strong> ' . $_company . '<br/><br/>
						<strong>Telefon:</strong> ' . $_phone . '<br/><br/>
						<strong>e-mail:</strong> ' . $_email . '<br/><br/>
						<strong>Dotaz:</strong> ' . nl2br($_text) . '<br/>
						
						V nejbližší době Vás budeme kontaktovat. 
					';
					mail( $_email, $emailSubject, $email, $headers );
					
					unset( $_POST );
					
					$_name = '';
					$_company = '';
					$_phone = '';
					$_email = '';
					$_text = '';	
					$_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( \'Nezadali jste správně všechny informace nutné k odeslání zprávy.\' );
						
					';
				}
			}
			else
			{
				if ( isset($_GET['pi']) && ( is_numeric( $_GET['pi'] ) ) )
				{
					$product = $this->_db->getItem( 'product', $_GET['pi'] );
					
					if ( isset( $product['ID'] ) )
					{
						$htmlPageItem->textPredefined = 'Mám zájem o produkt: ' . $product['title'];
					}
				}
				else
				{
					$htmlPageItem->textPredefined = $pageItemContent[ 'textPredefined' ];
				}
			}
			$htmlPageItem->registerOutputScript = $registerOutputScript;
			
			$htmlPageItem->filesEnabled = $pageItemContent['filesEnabled'];
			$htmlPageItem->newsletterEnabled = $pageItemContent['newsletterEnabled'];

			
			//
			$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->textPredefined = $pageItemContent['textPredefined'];
			$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->textPredefined = $pageItemContent['textPredefined'];
		$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'], 
			'textPredefined' => $_POST['textPredefined'], 'filesEnabled' => $_POST['filesEnabled'], 'newsletterEnabled' => $_POST['newsletterEnabled']
		) );
		
		return '
			<div class="pageStatusOK"> Uloženo. </div>
		';
	}
}

?>

ACC SHELL 2018