* @license http://www.contenido.org/license/LIZENZ.txt
* @link http://www.4fb.de
* @link http://www.contenido.org
* @since file available since contenido release <= 4.6
*
* {@internal
* created 2003-12-29
* modified 2008-06-27, Frederic Schneider, add security fix
*
* $Id$:
* }}
*
*/
if(!defined('CON_FRAMEWORK')) {
die('Illegal call');
}
cInclude("includes", "api/functions.frontend.list.php");
cInclude("includes", "functions.upl.php");
$appendparameters = $_REQUEST["appendparameters"];
class UploadList extends FrontendList
{
var $dark;
var $size;
var $pathdata;
function convert($field, $data)
{
global $cfg, $sess, $client, $cfgClient, $appendparameters;
if ($field == 6)
{
if ($data == "")
{
return i18n("None");
}
}
if ($field == 5)
{
return human_readable_size($data);
}
if ($field == 4)
{
if ($data == "")
{
return " ";
} else
{
return $data;
}
}
if ($field == 3)
{
$vpath = str_replace($cfgClient[$client]["upl"]["path"], "", $this->pathdata);
$slashpos = strrpos($vpath, "/");
if ($slashpos === false)
{
$file = $vpath;
} else
{
$path = substr($vpath, 0, $slashpos +1);
$file = substr($vpath, $slashpos +1);
}
if ($appendparameters == "imagebrowser" || $appendparameters == "filebrowser")
{
$mstr = ''.$data.'';
} else
{
$markLeftPane = "parent.parent.frames['left'].frames['left_bottom'].upl.click(parent.parent.frames['left'].frames['left_bottom'].document.getElementById('$path'));";
$tmp_mstr = '%s';
$mstr = sprintf($tmp_mstr, 'right_bottom', $sess->url("main.php?area=upl_edit&frame=4&path=$path&file=$file"), 'right_top', $sess->url("main.php?area=upl&frame=3&path=$path&file=$file"), $data);
}
return $mstr;
}
if ($field == 2)
{
$this->pathdata = $data;
/* If this file is an image, try to open */
switch (getFileExtension($data))
{
case "png" :
case "psd" :
case "gif" :
case "tiff" :
case "bmp" :
case "jpeg" :
case "jpg" :
case "bmp" :
case "iff" :
case "xbm" :
case "wbmp" :
$sCacheThumbnail = uplGetThumbnail($data, 150);
$sCacheName = substr($sCacheThumbnail, strrpos($sCacheThumbnail, "/")+1, strlen($sCacheThumbnail)-(strrchr($sCacheThumbnail, '/')+1));
$sFullPath = $cfgClient[$client]['path']['frontend'].'cache/'.$sCacheName;
if (file_exists($sFullPath)) {
$aDimensions = getimagesize($sFullPath);
$iWidth = $aDimensions[0];
$iHeight = $aDimensions[1];
} else {
$iWidth = 0;
$iHeight = 0;
}
if (is_dbfs($data))
{
$retValue =
'
';
return $retValue;
} else {
$retValue =
'
';
$retValue .= '';
return $retValue;
}
break;
default:
$sCacheThumbnail = uplGetThumbnail($data, 150);
return '';
}
}
if ($field == 1)
{
if ($this->dark)
{
$data = $cfg["color"]["table_dark"];
} else
{
$data = $cfg["color"]["table_light"];
}
$this->dark = !$this->dark;
}
return $data;
}
}
function uplRender($searchfor, $sortby, $sortmode, $startpage = 1, $thumbnailmode)
{
global $cfg, $client, $cfgClient, $area, $frame, $sess, $appendparameters;
if ($sortby == "")
{
$sortby = 7;
$sortmode = "DESC";
}
if ($startpage == "")
{
$startpage = 1;
}
$thisfile = $sess->url("main.php?idarea=$area&frame=$frame&appendparameters=$appendparameters&searchfor=$searchfor&thumbnailmode=$thumbnailmode");
$scrollthisfile = $thisfile."&sortmode=$sortmode&sortby=$sortby";
if ($sortby == 3 && $sortmode == "DESC")
{
$fnsort = ''.i18n("Filename / Description").'';
} else
{
if ($sortby == 3)
{
$fnsort = ''.i18n("Filename / Description").'';
} else
{
$fnsort = ''.i18n("Filename / Description").'';
}
}
if ($sortby == 4 && $sortmode == "DESC")
{
$pathsort = ''.i18n("Path").'';
} else
{
if ($sortby == 4)
{
$pathsort = ''.i18n("Path").'';
} else
{
$pathsort = ''.i18n("Path")."";
}
}
if ($sortby == 5 && $sortmode == "DESC")
{
$sizesort = ''.i18n("Size").'';
} else
{
if ($sortby == 5)
{
$sizesort = ''.i18n("Size").'';
} else
{
$sizesort = ''.i18n("Size")."";
}
}
if ($sortby == 6 && $sortmode == "DESC")
{
$typesort = ''.i18n("Type").'';
} else
{
if ($sortby == 6)
{
$typesort = ''.i18n("Type").'';
} else
{
$typesort = ''.i18n("Type")."";
}
}
if ($sortby == 7 && $sortmode == "DESC")
{
$srelevance = ''.i18n("Relevance").'';
} else
{
if ($sortby == 7)
{
$srelevance = ''.i18n("Relevance").'';
} else
{
$srelevance = ''.i18n("Relevance")."";
}
}
$sToolsRow = '
'.i18n("Searched for:")." ".$searchfor.'
|
';
/* List wraps */
$sSpacedRow = '
|
';
$pagerwrap = '
-C-SCROLLRIGHT-
-C-PAGE-
-C-SCROLLLEFT-
'.i18n("Files per Page").' -C-FILESPERPAGE-
|
';
$startwrap =
'
'.$pagerwrap.$sSpacedRow.$sToolsRow.$sSpacedRow.'
'.i18n("Preview").' |
'.$fnsort.' |
'.$pathsort.' |
'.$sizesort.' |
'.$typesort.' |
'.$srelevance.' |
';
$itemwrap = '
%s |
%s |
%s |
%s |
%s |
%s |
';
$endwrap = $sSpacedRow.$sToolsRow.$sSpacedRow.$pagerwrap.'
';
/* Object initializing */
$page = new UI_Page;
$list2 = new UploadList($startwrap, $endwrap, $itemwrap);
$uploads = new UploadCollection;
/* Fetch data */
$files = uplSearch($searchfor);
$user = new User;
$user->loadUserByUserID($auth->auth["uid"]);
if ($thumbnailmode == '')
{
$current_mode = $user->getUserProperty('upload_folder_thumbnailmode', md5('search_results_num_per_page'));
if ($current_mode != '')
{
$thumbnailmode = $current_mode;
}
else
{
$thumbnailmode = getEffectiveSetting('backend','thumbnailmode',100);
}
}
switch ($thumbnailmode)
{
case 25: $numpics = 25; break;
case 50: $numpics = 50; break;
case 100:$numpics = 100; break;
case 200:$numpics = 200; break;
default: $thumbnailmode = 100;
$numpics = 15;
break;
}
$user->setUserProperty('upload_folder_thumbnailmode', md5('search_results_num_per_page'), $thumbnailmode);
$list2->setResultsPerPage($numpics);
$list2->size = $thumbnailmode;
$rownum = 0;
if (!is_array($files))
{
$files = array ();
}
arsort($files, SORT_NUMERIC);
$count = 0;
$properties = new PropertyCollection;
foreach ($files as $file => $rating)
{
$slashpos = strrpos($file, "/");
if ($slashpos === false)
{
$myfilename = $file;
$mydirname = "";
} else
{
$myfilename = substr($file, $slashpos +1);
$mydirname = substr($file, 0, $slashpos +1);
}
$path = $mydirname;
$filename = $myfilename;
$dirname = $cfgClient[$client]["upl"]["path"].$mydirname;
$uploads->select("idclient = '$client' AND dirname = '$mydirname' AND filename = '$filename'");
if ($item = $uploads->next())
{
$filesize = $item->get("size");
if ($filesize == 0)
{
if (file_exists($dirname.$filename))
{
$filesize = filesize($dirname.$filename);
}
}
$description = $item->get("description");
} else
{
if (file_exists($dirname.$filename))
{
$filesize = filesize($dirname.$filename);
}
}
$dark = !$dark;
$count ++;
$medianame = $properties->getValue("upload", $mydirname.$filename, "file", "medianame");
$medianotes = $properties->getValue("upload", $mydirname.$filename, "file", "medianotes");
$showfilename = $filename;
$bgColor = false;
$list2->setData($rownum, $bgColor, $mydirname.$filename, $showfilename, $mydirname, $filesize, getFileExtension($filename), $rating / 10);
$rownum ++;
}
if ($rownum == 0)
{
$page->setContent(i18n("No files found"));
$page->render();
return;
}
if ($sortmode == "ASC")
{
$list2->sort($sortby, SORT_ASC);
} else
{
$list2->sort($sortby, SORT_DESC);
}
if ($startpage < 1)
{
$startpage = 1;
}
if ($startpage > $list2->getNumPages())
{
$startpage = $list2->getNumPages();
}
$list2->setListStart($startpage);
/* Create scroller */
if ($list2->getCurrentPage() > 1)
{
$prevpage = ''.i18n("Previous Page").'';
} else {
$nextpage = ' ';
}
if ($list2->getCurrentPage() < $list2->getNumPages())
{
$nextpage = ''.i18n("Next Page").'';
} else {
$nextpage = ' ';
}
if ($list2->getNumPages()>1) {
$num_pages = $list2->getNumPages();
$paging_form.="";
$paging_form.="";
} else {
$paging_form="1";
}
$curpage = $paging_form . " / ". $list2->getNumPages();
$scroller = $prevpage.$nextpage;
$output = $list2->output(true);
$output = str_replace("-C-SCROLLLEFT-", $prevpage, $output);
$output = str_replace("-C-SCROLLRIGHT-", $nextpage, $output);
$output = str_replace("-C-PAGE-", i18n("Page")." ".$curpage, $output);
$output = str_replace("-C-THUMBNAILMODE-", $thumbnailmode, $output);
$form = new UI_Form("options");
$form->setVar("contenido", $sess->id);
$form->setVar("area", $area);
$form->setVar("frame", $frame);
$form->setVar("searchfor", $searchfor);
$form->setVar("sortmode", $sortmode);
$form->setVar("sortby", $sortby);
$form->setVar("startpage", $startpage);
$form->setVar("appendparameters", $appendparameters);
$select = new cHTMLSelectElement("thumbnailmode_input");
$values = Array(
25 => "25",
50 => "50",
100 => "100",
200 => "200");
foreach ($values as $key => $value)
{
$option = new cHTMLOptionElement($value, $key);
$select->addOptionElement($key, $option);
}
$select->setDefault($thumbnailmode);
$select->setEvent('change', "document.options.thumbnailmode.value = this.value");
$topbar = $select->render().'';
$output = str_replace("-C-FILESPERPAGE-", $topbar, $output);
$script = '
';
$script = str_replace('{SID}', $sess->id, $script);
$script = str_replace('{RENAME}', i18n("Enter new filename"), $script);
$page->addScript("script", $script);
$markSubItem = markSubMenuItem(0, true);
$page->addScript("mark", $markSubItem);
$page->addScript('iZoom', '');
$page->addScript('style', '');
$form->add("", $output);
$page->setContent($form->render());
$page->render();
}
uplRender($searchfor, $sortby, $sortmode, $startpage, $thumbnailmode);
?>