8. Functions in file prepareGalleryAjax.php

This PHP file is called in an AJAX script createGalleryContent().

8.1. Main script

<?php
// BEGIN PHP CODE WHEN CALLED FROM AJAX
sec_session_start();
if (isset($_POST['parent'])){$parent=$_POST['parent'];} else {$parent='';}
if (isset($_POST['locDir']))$locDir=$_POST['locDir'];
if (isset($_POST['vacDir']))$vacDir=$_POST['vacDir'];
if (isset($_POST['private'])){$private=intval($_POST['private']);}else {$private=0;}
if (isset($_POST['pageReload'])){$pageReload=($_POST['pageReload']==='true'?true:false);
} else {$pageReload=false;}

if (isset($_SESSION['sess_username']))$uname=$_SESSION['sess_username'];
else $uname=WEBSITE_VISITOR;
$wdir=$_SERVER['DOCUMENT_ROOT'].DS.$parent.DS.$locDir;
$pwd=getcwd(); // php directory
$sid=session_id();
$albumDirHtml=array('xml'=>true,'nrMedia'=>0,'media'=>NULL,'videoInfo'=>array('hasVideo'=>false,'width'=>0,'height'=>0));
if ($private) createPrivateAlbumCode($albumDirHtml,$parent,$vacDir,$locDir);
else createAlbumCode($albumDirHtml,$parent,$vacDir,$locDir);

echo json_encode($albumDirHtml);
?>

8.2. createAlbumCode()

Interface definition

createAlbumCode(&$albumDirHtml, $parent, $vakantieDir, $locDir)
Parameters:
  • &$albumDirHtml (Reference) – Reference (pointer) to albumDirHtml_Object,
  • $parent (String) – Parent directory,
  • $vakantieDir (String) – Album directory,
  • $locDir (String) – Location directory,
Returns:

Void

8.2.1. Source code

<?php
function createAlbumCode(&$albumDirHtml,$parent,$vakantieDir,$locDir){
	$pwd=getcwd();
	/* location directory will be the working directory*/
//	$wdir=str_replace(' ','%20',$_SERVER['DOCUMENT_ROOT'].DS.$parent.DS.$vakantieDir.DS.$locDir);
	$wdir=$_SERVER['DOCUMENT_ROOT'].DS.$parent.DS.$vakantieDir.DS.$locDir;
	chdir($wdir);
	if (file_exists('iminfo.xml')){createAlbumCodeFromXML($albumDirHtml,$parent.DS.$vakantieDir.DS.$locDir,'iminfo.xml','ONLY_PUBLIC');}
	chdir($pwd);
}

8.3. createAlbumCodeFromXML()

Interface definition

createAlbumCodeFromXML(&$albumDir4Html, $wdir, $xmlfile, $mode)
Parameters:
  • &$albumDir4Html (Reference) – Reference (pointer) to albumDirHtml_Object,
  • $dwir (String) – Working directory,
  • $xmlfile (String) – Iminfo file name,
  • $mode (String) – ‘Public’ or ‘private’
Returns:

Content of $albumDir4Html is updated

8.3.1. Source code

<?php
function createAlbumCodeFromXML(&$albumDir4Html,$wdir,$xmlfile,$mode){
// INP1: work directory
// INP2: name of XML iminfo file
// INP3: private or public mode
	$xml=simplexml_load_file($xmlfile);
	if (isset($xml->VideoInfo)){
		// Dummy DIV with DATA-ATTRIBUTE VIDEO INFO
		$videoInfo=$xml->VideoInfo;
		if($videoInfo->HasVideo>0){
			$albumDir4Html['videoInfo']['hasVideo']=true;
			$albumDir4Html['videoInfo']['width']=intval($videoInfo->VideoWidth);
			$albumDir4Html['videoInfo']['height']=intval($videoInfo->VideoHeight);
		} else {
//			echo "<div id=\"generalVideoInfo\" data-hasvideo=\"0\"></div>\n";
		}
	} else {
//		echo "<div id=\"generalVideoInfo\" data-hasvideo=\"0\"></div>\n";
	}
// Slides Container: required properties (position, width, and height are set in SlideBox class)
	$nrMedia=0;
	foreach ($xml->media as $media){
		$dir=$wdir.DS."Resized";
		if (($mode==='ONLY_PUBLIC')&&(trim($media->PublicPrivate)===PRIVATE_DIR)){continue;}
		else if (($mode==='PUBLIC_AND_PRIVATE')&&(trim($media->PublicPrivate)===PRIVATE_DIR))
			{$dir=$dir.DS.PRIVATE_DIR;}
//		$nrMedia++;
		$mtype=$media->MIMETYPE->children();
		$SrcCount=intval($media->Count);
		$mEntry['name']=array_fill(0,$SrcCount,"");
		$mEntry['srcCount']=$SrcCount;
		if (intval($media->Transferred2SiteDir) > TRANSFER_NONE) {
			$nrMedia++;
			if ($mtype->getName()==='IMAGE'){
				$img=trim($media->TimeSortedFile);
				$thumb=str_replace('small','thumb',$img);
				$mEntry['type']='IMAGE';
				$mEntry['name'][0]=$dir.DS.$img;
				$mEntry['thumb']=$dir.DS.$thumb;
			}
			else if ($mtype->getName()==='VIDEO'){
				$basename=pathinfo(trim($media->TimeSortedFile),PATHINFO_FILENAME);
				$video=$media->MIMETYPE->VIDEO;
				for ($i=0;$i<$SrcCount;$i++){
					$ext=strtolower($video->TYPE[$i]->attributes()->ext);
					$mEntry['name'][$i]=$dir.DS.$basename.".".$ext;
				}
				$mEntry['type']='VIDEO';
				$mEntry['width']=$media->Width;
				$mEntry['thumb']=$dir.DS.$basename.'.thm';
			}
			$albumDir4Html['media'][]=$mEntry;
		}
	}
	$albumDir4Html['nrMedia']=$nrMedia;
}

8.4. createPrivateAlbumCode()

Interface definition

createPrivateAlbumCode(&$albumDirHtml, $parent, $vakantieDir, $locDir)
Parameters:
  • &$albumDirHtml (Reference) – Reference (pointer) to albumDirHtml_Object,
  • $parent (String) – Parent directory,
  • $vakantieDir (String) – Album directory,
  • $locDir (String) – Location directory,
Returns:

Void

8.4.1. Source code

<?php
function createPrivateAlbumCode(&$albumDirHtml,$parent,$vakantieDir,$locDir){
	$pwd=getcwd();
	/* location directory will be the working directory*/
//	$wdir=str_replace(' ','%20',$_SERVER['DOCUMENT_ROOT'].DS.$parent.DS.$vakantieDir.DS.$locDir);
	$wdir=$_SERVER['DOCUMENT_ROOT'].DS.$parent.DS.$vakantieDir.DS.$locDir;
	chdir($wdir);
	if (file_exists('iminfo.xml')){createAlbumCodeFromXML($albumDirHtml,$parent.DS.$vakantieDir.DS.$locDir,'iminfo.xml','PUBLIC_AND_PRIVATE');}
	chdir($pwd);
}