8. Functions in file prepareGalleryAjax.php¶
Function content
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
- &$albumDirHtml (Reference) – Reference (pointer) to
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
- &$albumDir4Html (Reference) – Reference (pointer) to
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
- &$albumDirHtml (Reference) – Reference (pointer) to
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);
}