* @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.' '; $itemwrap = ' '; $endwrap = $sSpacedRow.$sToolsRow.$sSpacedRow.$pagerwrap.'
'.i18n("Preview").' '.$fnsort.' '.$pathsort.' '.$sizesort.' '.$typesort.' '.$srelevance.'
%s %s %s %s %s %s
'; /* 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); ?>