<?php
/**
* XOOPS image manager
*
* You may not change or alter any portion of this comment or credits
* of supporting developers from this source code or any supporting source code
* which is considered copyrighted (c) material of the original comment or credit authors.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* @copyright (c) 2000-2016 XOOPS Project (www.xoops.org)
* @license GNU GPL 2 (http://www.gnu.org/licenses/gpl-2.0.html)
* @package core
* @since 2.0.0
*/
/* @var XoopsUser $xoopsUser */
include __DIR__ . '/mainfile.php';
XoopsLoad::load('XoopsRequest');
// Get Action type
$op = XoopsRequest::getCmd('op', 'list');
switch ($op) {
case 'list':
default:
XoopsLoad::load('XoopsFilterInput');
if (isset($_REQUEST['target'])) {
$target = trim(XoopsFilterInput::clean($_REQUEST['target'], 'WORD'));
} else {
exit('Target not set');
}
if (!is_object($xoopsUser)) {
$group = array(XOOPS_GROUP_ANONYMOUS);
} else {
$group = $xoopsUser->getGroups();
}
require_once $GLOBALS['xoops']->path('class/template.php');
$xoopsTpl = new XoopsTpl();
$xoopsTpl->assign('lang_imgmanager', _IMGMANAGER);
$xoopsTpl->assign('sitename', htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES));
$target = htmlspecialchars($target, ENT_QUOTES);
$xoopsTpl->assign('target', $target);
/* @var XoopsImagecategoryHandler $imgcat_handler */
$imgcat_handler = xoops_getHandler('imagecategory');
$catlist = $imgcat_handler->getList($group, 'imgcat_read', 1);
$catcount = count($catlist);
$xoopsTpl->assign('lang_align', _ALIGN);
$xoopsTpl->assign('lang_add', _ADD);
$xoopsTpl->assign('lang_close', _CLOSE);
if ($catcount > 0) {
$xoopsTpl->assign('lang_go', _GO);
$catshow = (!isset($_GET['cat_id'])) ? 0 : (int)$_GET['cat_id'];
// $catshow = (!empty($catshow) && in_array($catshow, array_keys($catlist))) ? $catshow : 0;
$catshow = (!empty($catshow) && array_key_exists($catshow, $catlist)) ? $catshow : 0;
$xoopsTpl->assign('show_cat', $catshow);
if ($catshow > 0) {
$xoopsTpl->assign('lang_addimage', _ADDIMAGE);
}
$catlist = array('0' => '--') + $catlist;
$cat_options = '';
foreach ($catlist as $c_id => $c_name) {
$sel = '';
if ($c_id == $catshow) {
$sel = ' selected';
}
$cat_options .= '<option value="' . $c_id . '"' . $sel . '>' . $c_name . '</option>';
}
$xoopsTpl->assign('cat_options', $cat_options);
if ($catshow > 0) {
$image_handler = xoops_getHandler('image');
$criteria = new CriteriaCompo(new Criteria('imgcat_id', $catshow));
$criteria->add(new Criteria('image_display', 1));
$total = $image_handler->getCount($criteria);
if ($total > 0) {
$imgcat_handler = xoops_getHandler('imagecategory');
$imgcat = $imgcat_handler->get($catshow);
$xoopsTpl->assign('image_total', $total);
$xoopsTpl->assign('lang_image', _IMAGE);
$xoopsTpl->assign('lang_imagename', _IMAGENAME);
$xoopsTpl->assign('lang_imagemime', _IMAGEMIME);
$start = isset($_GET['start']) ? (int)$_GET['start'] : 0;
$criteria->setLimit(10);
$criteria->setStart($start);
$storetype = $imgcat->getVar('imgcat_storetype');
if ($storetype === 'db') {
$criteria->setSort('i.image_weight ASC, i.image_id');
$criteria->setOrder('DESC');
$images = $image_handler->getObjects($criteria, false, true);
} else {
$criteria->setSort('image_weight ASC, image_id');
$criteria->setOrder('DESC');
$images = $image_handler->getObjects($criteria, false, false);
}
$imgcount = count($images);
$max = ($imgcount > 10) ? 10 : $imgcount;
for ($i = 0; $i < $max; ++$i) {
if ($storetype === 'db') {
$lcode = '[img align=left id=' . $images[$i]->getVar('image_id') . ']' . $images[$i]->getVar('image_nicename') . '[/img]';
$code = '[img align=center id=' . $images[$i]->getVar('image_id') . ']' . $images[$i]->getVar('image_nicename') . '[/img]';
$rcode = '[img align=right id=' . $images[$i]->getVar('image_id') . ']' . $images[$i]->getVar('image_nicename') . '[/img]';
$src = XOOPS_URL . '/image.php?id=' . $images[$i]->getVar('image_id');
} else {
$lcode = '[img align=left]' . XOOPS_UPLOAD_URL . '/' . $images[$i]->getVar('image_name') . '[/img]';
$code = '[img align=center]' . XOOPS_UPLOAD_URL . '/' . $images[$i]->getVar('image_name') . '[/img]';
$rcode = '[img align=right]' . XOOPS_UPLOAD_URL . '/' . $images[$i]->getVar('image_name') . '[/img]';
$src = XOOPS_UPLOAD_URL . '/' . $images[$i]->getVar('image_name');
}
$xoopsTpl->append('images', array(
'id' => $images[$i]->getVar('image_id'),
'nicename' => $images[$i]->getVar('image_nicename'),
'mimetype' => $images[$i]->getVar('image_mimetype'),
'src' => $src,
'lxcode' => $lcode,
'xcode' => $code,
'rxcode' => $rcode));
}
if ($total > 10) {
include_once $GLOBALS['xoops']->path('class/pagenav.php');
$nav = new XoopsPageNav($total, 10, $start, 'start', 'target=' . $target . '&cat_id=' . $catshow);
$xoopsTpl->assign('pagenav', $nav->renderNav());
}
} else {
$xoopsTpl->assign('image_total', 0);
}
}
$xoopsTpl->assign('xsize', 800);
$xoopsTpl->assign('ysize', 600);
} else {
$xoopsTpl->assign('xsize', 400);
$xoopsTpl->assign('ysize', 180);
}
$xoopsTpl->display('db:system_imagemanager.tpl');
exit();
break;
case 'upload':
XoopsLoad::load('XoopsFilterInput');
if (isset($_REQUEST['target'])) {
$target = trim(XoopsFilterInput::clean($_REQUEST['target'], 'WORD'));
} else {
exit('Target not set');
}
$imgcat_handler = xoops_getHandler('imagecategory');
$imgcat_id = (int)$_GET['imgcat_id'];
$imgcat = $imgcat_handler->get($imgcat_id);
$error = false;
if (!is_object($imgcat)) {
$error = true;
} else {
/* @var XoopsGroupPermHandler $imgcatperm_handler */
$imgcatperm_handler = xoops_getHandler('groupperm');
if (is_object($xoopsUser)) {
if (!$imgcatperm_handler->checkRight('imgcat_write', $imgcat_id, $xoopsUser->getGroups())) {
$error = true;
}
} else {
if (!$imgcatperm_handler->checkRight('imgcat_write', $imgcat_id, XOOPS_GROUP_ANONYMOUS)) {
$error = true;
}
}
}
if ($error != false) {
xoops_header(false);
echo '</head><body><div style="text-align:center;"><input value="' . _BACK . '" type="button" onclick="history.go(-1);" /></div>';
xoops_footer();
exit();
}
require_once $GLOBALS['xoops']->path('class/template.php');
$xoopsTpl = new XoopsTpl();
$xoopsTpl->assign('show_cat', $imgcat_id);
$xoopsTpl->assign('lang_imgmanager', _IMGMANAGER);
$xoopsTpl->assign('sitename', htmlspecialchars($xoopsConfig['sitename'], ENT_QUOTES));
$xoopsTpl->assign('target', htmlspecialchars($target, ENT_QUOTES));
$xoopsTpl->assign('imgcat_maxsize', $imgcat->getVar('imgcat_maxsize'));
$xoopsTpl->assign('imgcat_maxwidth', $imgcat->getVar('imgcat_maxwidth'));
$xoopsTpl->assign('imgcat_maxheight', $imgcat->getVar('imgcat_maxheight'));
$xoopsTpl->assign('imgcat_name', $imgcat->getVar('imgcat_name'));
$xoopsTpl->assign('lang_close', _CLOSE);
$xoopsTpl->assign('imgcat_itemlimit', ($xoopsUser instanceof \XoopsUser && $xoopsUser->isAdmin()) ? 0 : 2);
$payload = array(
'aud' => 'ajaxfineupload.php',
'cat' => $imgcat_id,
'uid' => $xoopsUser instanceof \XoopsUser ? $xoopsUser->id() : 0,
'handler' => 'fineimuploadhandler',
'moddir' => 'system',
);
$jwt = \Xmf\Jwt\TokenFactory::build('fineuploader', $payload, 60*30); // token good for 30 minutes
$xoopsTpl->assign('jwt', $jwt);
$fineup_debug = 'false';
if (($xoopsUser instanceof \XoopsUser ? $xoopsUser->isAdmin() : false)
&& isset($_REQUEST['FINEUPLOADER_DEBUG']))
{
$fineup_debug = 'true';
}
$xoopsTpl->assign('fineup_debug', $fineup_debug);
$xoopsTpl->display('db:system_imagemanager2.tpl');
exit();
break;
}
|