|
From: <luc...@us...> - 2014-02-18 19:47:25
|
Revision: 12324
http://sourceforge.net/p/xoops/svn/12324
Author: luciorota
Date: 2014-02-18 19:47:18 +0000 (Tue, 18 Feb 2014)
Log Message:
-----------
experiment: added formAjaxImageManager element and use it instead of xoops popup image manager
Modified Paths:
--------------
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/imagemanager.php
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/modules/system/templates/system_imagemanager.html
Added Paths:
-----------
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.php
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/language/english/formajaximagemanager.php
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/sampleform.inc.php
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Canvas-to-Blob-master/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Canvas-to-Blob-master/js/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Canvas-to-Blob-master/js/canvas-to-blob.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Canvas-to-Blob-master/js/canvas-to-blob.min.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/css/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/css/demo.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/css/vendor/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/css/vendor/Jcrop.gif
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/css/vendor/jquery.Jcrop.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/demo.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/load-image-exif-map.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/load-image-exif.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/load-image-ios.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/load-image-meta.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/load-image-orientation.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/load-image.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/load-image.min.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/vendor/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.JavaScript-Load-Image-master/js/vendor/jquery.Jcrop.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ThickBox/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ThickBox/loadingAnimation.gif
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ThickBox/thickbox-compressed.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ThickBox/thickbox.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ThickBox/thickbox.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ajaxloader/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ajaxloader/jquery.ajaxloader.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ajaxloader/jquery.ajaxloader.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.ajaxloader/spinner.gif
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/cors/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/cors/postmessage.html
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/cors/result.html
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/demo-ie8.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/demo.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/jquery.fileupload-noscript.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/jquery.fileupload-ui-noscript.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/jquery.fileupload-ui.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/jquery.fileupload.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/css/style.css
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/img/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/img/loading.gif
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/img/progressbar.gif
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/app.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/cors/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/cors/jquery.postmessage-transport.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/cors/jquery.xdr-transport.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-angular.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-audio.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-image.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-jquery-ui.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-process.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-ui.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-validate.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload-video.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.fileupload.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/jquery.iframe-transport.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/main.js
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/vendor/
XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/xoops_lib/Frameworks/jquery.jQuery-File-Upload-master/js/vendor/jquery.ui.widget.js
Added: XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.css
===================================================================
--- XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.css (rev 0)
+++ XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.css 2014-02-18 19:47:18 UTC (rev 12324)
@@ -0,0 +1,120 @@
+/* main containers */
+.faim-formajaximagemenager_container {
+ position: relative;
+ width: 100%;
+ height: 444px;
+ overflow-x: hidden;
+ overflow-y: auto;
+ position: relative;
+ background-color: #FFFFFF;
+ margin: 0px;
+ border: none;
+ padding: 0px;
+
+}
+.faim-formajaximagemenager_list_imgcat_container,
+.faim-formajaximagemenager_edit_image_container,
+.faim-formajaximagemenager_edit_imgcat_container {
+ position: relative;
+ width: 100%;
+ height: 480px;
+}
+
+.faim-formajaximagemenager_container .inner5 {
+ margin: 5px;
+}
+
+/* messages */
+.faim-formajaximagemenager_confirmMsg {
+ margin-top: 0px !important;
+ margin-bottom: 0px !important;
+}
+
+/* images thumbs */
+.faim-thumb {
+ background-color: #FFFFFF;
+ border-color: #CCCCCC #AAAAAA #AAAAAA #CCCCCC;
+ border-style: solid;
+ border-width: 1px;
+ border-radius: 4px;
+ height: 200px;
+ margin: 5px;
+ padding: 5px;
+ position: relative;
+ width: 140px;
+}
+
+.faim-thumb img {
+ border: 0 none;
+}
+
+
+.faim-thumbimg {
+ position: relative;
+ width:140px;
+ height: 140px;
+ padding: 0px;
+ border: none;
+ background: #CCCCCC no-repeat center top;
+}
+
+.faim-actions {
+ position: absolute;
+ width:140px;
+ bottom: 0px;
+ height: 26px;
+ padding: 0px;
+ border: none;
+ background: transparent;
+}
+
+.faim-informations {
+ line-height: 1em;
+ font-weight: bold;
+ width:140px;
+ background: transparent;
+}
+
+.faim-selects {
+ position: absolute;
+ bottom: 0px;
+ width:140px;
+ height: 22px;
+ padding: 0px;
+ border: none;
+ background: transparent;
+}
+
+.faim-actions button img,
+.faim-actions a img,
+.faim-actions span img,
+.faim-actions img,
+.faim-thumbimg img {
+ cursor: pointer;
+ width: 16px;
+ height: 16px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.faim-selects img {
+ cursor: pointer;
+ width: 21px;
+ height: 22px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.faim-actions .tooltip {
+ width: 16px;
+ height: 16px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.faim-selects .tooltip {
+ width: 22px;
+ height: 22px;
+ margin: 0px;
+ padding: 0px;
+}
\ No newline at end of file
Added: XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.php
===================================================================
--- XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.php (rev 0)
+++ XoopsCore/branches/2.5.x/2.5.7_luciorota/htdocs/class/xoopsform/formajaximagemanager.php 2014-02-18 19:47:18 UTC (rev 12324)
@@ -0,0 +1,1957 @@
+<?php
+/**
+ * XoopsFormAjaxImagemanager component class file
+ *
+ * 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 The XOOPS Project http://sourceforge.net/projects/xoops/
+ * @license GNU GPL 2 (http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)
+ * @package kernel
+ * @subpackage form
+ * @since 2.5.7
+ * @author lucio <luc...@gm...>
+ * @version $Id:$
+ */
+error_reporting(0);
+include_once dirname(dirname(dirname(__FILE__))) . '/mainfile.php';
+defined('XOOPS_ROOT_PATH') or die('Restricted access');
+$GLOBALS['xoopsLogger']->activated = false;
+
+//include_once dirname(dirname(__FILE__)) . '/include/common.php';
+
+define("FORMAJAXIMAGEMANAGER_FILENAME", basename(__FILE__));
+define("FORMAJAXIMAGEMANAGER_PATH", dirname(__FILE__));
+define("FORMAJAXIMAGEMANAGER_URL", XOOPS_URL . "/class/xoopsform/" . FORMAJAXIMAGEMANAGER_FILENAME);
+define("FORMAJAXIMAGEMANAGER_JS_URL", XOOPS_URL . "/class/xoopsform");
+define("FORMAJAXIMAGEMANAGER_CSS_URL", XOOPS_URL . "/class/xoopsform");
+xoops_loadLanguage('formajaximagemanager');
+
+$module_handler = xoops_gethandler('module');
+$systemModule = $module_handler->getByDirname('system');
+$systemModuleId = $systemModule->id;
+$userGroups = (is_object($GLOBALS['xoopsUser'])) ? $GLOBALS['xoopsUser']->getGroups() : array(XOOPS_GROUP_ANONYMOUS);
+$userIsAdmin = (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isAdmin($systemModuleId));
+
+$imgcat_handler = xoops_gethandler('imagecategory');
+$image_handler = xoops_gethandler('image');
+$imgcatObjperm_handler = xoops_gethandler('groupperm');
+
+
+
+$op = isset($_POST['op']) ? (string)$_POST['op'] : '';
+//$op = XoopsRequest::getString('op', '', 'POST');
+switch ($op) {
+ default :
+ // NOP
+ break;
+
+ case "getImgcats" :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id', 0);
+
+
+ $criteria = new CriteriaCompo();
+ if ($userIsAdmin) {
+ $imgcatReadListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_read'));
+ $imgcatWriteListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_write'));
+ } else {
+ $imgcatReadListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_read', true));
+ $imgcatWriteListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_write', true));
+ $criteria->add(new Criteria('imgcat_display', true));
+ }
+ if ($imgcat_handler->getCount($criteria) == 0) {
+ // ERROR: no imgcats
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = false;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCATS;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCATS;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ $criteria->setSort('imgcat_weight');
+ $criteria->setOrder('ASC');
+ $imgcatsObj = $imgcat_handler->getObjects($criteria, true);
+
+ $imgcatsArray = array();
+ foreach($imgcatsObj as $imgcat_id => $imgcatObj) {
+ $imgcat = array();
+ $imgcat['var']= $imgcatObj->toArray();
+ if ($userIsAdmin) {
+ $imgcat['perm']['edit'] = true;
+ $imgcat['perm']['delete'] = true;
+ $imgcat['perm']['img_read'] = true;
+ $imgcat['perm']['img_write'] = true;
+ $imgcat['perm']['img_delete'] = true;
+ } else {
+ $imgcat['perm']['edit'] = false;
+ $imgcat['perm']['delete'] = false;
+ $imgcat['perm']['img_read'] = in_array($imgcat_id, $imgcatReadListArray);
+ $imgcat['perm']['img_write'] = in_array($imgcat_id, $imgcatWriteListArray);
+ $imgcat['perm']['img_delete'] = false; // IN PROGRESS
+ }
+ $imgcatsArray[$imgcat_id] = $imgcat;
+ unset($imgcat);
+ }
+
+ $data['imgcats'] = $imgcatsArray;
+ $data['xoopsUser']['isAdmin'] = (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isAdmin($systemModuleId));
+ // Generate ajax return
+ $ret = array();
+ $ret['data'] = $data;
+ $ret['error'] = false;
+ $ret['message'] = '';
+ $ret['html'] = '';
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ break;
+
+ case "getImgcatPermissions" :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id', 0);
+
+ // get imgcat/imgcats
+ $criteria = new CriteriaCompo();
+ if ($imgcat_id != 0) {
+ $criteria->add(new Criteria('imgcat_id', $imgcat_id));
+ }
+ if (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isAdmin($systemModuleId)) {
+ $imgcatReadListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_read'));
+ $imgcatWriteListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_write'));
+ } else {
+ $imgcatReadListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_read', true));
+ $imgcatWriteListArray = array_keys($imgcat_handler->getList($userGroups, 'imgcat_write', true));
+ $criteria->add(new Criteria('imgcat_display', true));
+ }
+ if ($imgcat_handler->getCount($criteria) == 0) {
+ // ERROR: no imgcats
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = false;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCATS;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCATS;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ $criteria->setSort('imgcat_weight');
+ $criteria->setOrder('ASC');
+ $imgcatsObj = $imgcat_handler->getObjects($criteria, true);
+
+ $imgcatsArray = array();
+ foreach($imgcatsObj as $imgcat_id => $imgcatObj) {
+ $imgcat = array();
+ $imgcat['var']= $imgcatObj->toArray();
+ if (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isAdmin($systemModuleId)) {
+ $imgcat['perm']['edit'] = true;
+ $imgcat['perm']['delete'] = true;
+ $imgcat['perm']['img_read'] = true;
+ $imgcat['perm']['img_write'] = true;
+ $imgcat['perm']['img_delete'] = true;
+ } else {
+ $imgcat['perm']['edit'] = false;
+ $imgcat['perm']['delete'] = false;
+ $imgcat['perm']['img_read'] = in_array($imgcat_id, $imgcatReadListArray);
+ $imgcat['perm']['img_write'] = in_array($imgcat_id, $imgcatWriteListArray);
+ $imgcat['perm']['img_delete'] = false; // IN PROGRESS
+ }
+ $imgcatsArray[$imgcat_id] = $imgcat;
+ unset($imgcat);
+ }
+ $data['imgcats'] = $imgcatsArray;
+ $data['xoopsUser']['isAdmin'] = (is_object($GLOBALS['xoopsUser']) && $GLOBALS['xoopsUser']->isAdmin($systemModuleId));
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = $data;
+ $ret['error'] = false;
+ $ret['message'] = '';
+ $ret['html'] = '';
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ break;
+
+ case "getImgcatImagesList" :
+ // get imgcat_id
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id');
+ // get imgcat object
+ $imgcatObj = $imgcat_handler->get($imgcat_id);
+ // check imgcat object
+ if (!is_object($imgcatObj)) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // check user read permissions
+ $imgcatperm_handler =& xoops_gethandler('groupperm');
+ if (!$imgcatperm_handler->checkRight('imgcat_read', $imgcat_id, $userGroups)) {
+ // ERROR: no read permissions
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT_VIEW;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT_VIEW;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // get images objects
+ $criteria = new Criteria('imgcat_id', $imgcat_id);
+ $criteria->setSort('image_weight');
+ $criteria->setOrder('ASC');
+ $imagesObjs = $image_handler->getObjects($criteria, false, false);
+ foreach ($imagesObjs as $imageObj) {
+ $image['image_id'] = $imageObj->getVar('image_id');
+ $image['image_name'] = $imageObj->getVar('image_name');
+ $image['image_url'] = XOOPS_URL . '/uploads/' . $imageObj->getVar('image_name');
+ $image['image_path'] = XOOPS_UPLOAD_PATH . '/' . $imageObj->getVar('image_name');
+ $imagesize = getimagesize($image['image_path']);
+ $image['image_width'] = $imagesize[0];
+ $image['image_height'] = $imagesize[1];
+ $image['image_mime'] = $imagesize['mime'];
+ $image['image_nicename'] = $imageObj->getVar('image_nicename');
+ $image['image_mimetype'] = $imageObj->getVar('image_mimetype');
+ $image['image_created'] = $imageObj->getVar('image_created');
+ $image['image_display'] = $imageObj->getVar('image_display');
+ $image['image_weight'] = $imageObj->getVar('image_weight');
+ $image['image_body'] = $imageObj->getVar('image_body');
+ $image['imgcat_id'] = $imageObj->getVar('imgcat_id');
+ $imagesArray[] = $image;
+ unset($image);
+ }
+ // get read/write permissions
+ $perm['img_read'] = true;
+ $perm['img_write'] = $imgcatperm_handler->checkRight('imgcat_write', $imgcat_id, $userGroups);
+ // generate ajax return
+ $ret = array();
+ $ret['data']['images'] = $imagesArray;
+ $ret['data']['perm'] = $perm;
+ $ret['error'] = false;
+ $ret['message'] = '';
+ $ret['html'] = 'ok';
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ break;
+
+
+// Images operations
+ case 'getImageForm' :
+
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ // get image_id
+ $image_id = isset($_REQUEST['image_id']) ? (int)$_REQUEST['image_id'] : 0;
+ //$image_id = XoopsRequest::getInt('image_id', 0);
+ // get image object
+ if ($image_id <= 0) {
+ $imageObj = $image_handler->create();
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id', 0);
+ $title = _FAIM_ADD_IMAGE;
+ } else {
+ $imageObj = $image_handler->get($image_id);
+ $imgcat_id = $imageObj->getVar('imgcat_id');
+ $title = _FAIM_EDIT_IMAGE;
+ }
+ // check image object
+ if (!is_object($imageObj)) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMAGE_OBJECT;
+ $ret['html'] = _FAIM_ERROR_NO_IMAGE_OBJECT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // get imgcat object
+ $imgcatObj = $imgcat_handler->get($imgcat_id);
+ // create image form
+ include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
+ $form = new XoopsSimpleForm( $title, 'image_form', 'formajaximagemanager.php', 'post', true );
+ $form->setExtra('enctype="multipart/form-data"');
+ $form->addElement(new XoopsFormText( _IMAGENAME, $name . '_image_nicename', 50, 255, $imageObj->getVar('image_nicename')), true );
+ $select = new XoopsFormSelect( _IMAGECAT, $name . '_image_imgcat_id', $imgcat_id);
+ if ($userIsAdmin) {
+ $categoriesListArray = $imgcat_handler->getList($userGroups, 'imgcat_write');
+ } else {
+ $categoriesListArray = $imgcat_handler->getList($userGroups, 'imgcat_write', true);
+ }
+ $select->addOptionArray($categoriesListArray);
+ $form->addElement($select, true);
+ if (!$imageObj->isNew()) {
+ $form->addElement(new XoopsFormLabel(_IMAGEFILE, "<img src='" . XOOPS_URL . "/image.php?id=" . $image_id . "&width=140&height=140' />"));
+ } else {
+ $form->addElement(new XoopsFormFile(_IMAGEFILE, $name . '_image_file', $imgcatObj->getVar('imgcat_maxsize')), true);
+ }
+ $form->addElement(new XoopsFormText( _IMGWEIGHT, $name . '_image_weight', 3, 4, $imageObj->getVar('image_weight') ) );
+ $form->addElement(new XoopsFormRadioYN( _IMGDISPLAY, $name . '_image_display', $imageObj->getVar('image_display'), _YES, _NO) );
+ if (!$imageObj->isNew()) {
+ $form->addElement(new XoopsFormHidden($name . '_op', 'submitUpdateImageForm'));
+ } else {
+ $form->addElement(new XoopsFormHidden($name . '_op', 'submitNewImageForm'));
+ }
+ $form->addElement(new XoopsFormHidden($name . '_image_id', $image_id));
+ $form->addElement(new XoopsFormHidden($name . '_imgcat_id', $imgcat_id));
+ $form->addElement(new XoopsFormButton('', $name . '_submit_image_button', _SUBMIT, 'button'));
+ // render edit image form
+ $html = '';
+ $html .= "<div id='" . $name . "_edit_image_form'>";
+ $html .= "<b>" . $form->getTitle() . "</b>\n";
+ $html .= "<br />\n";
+ foreach ($form->getElements() as $ele) {
+ if (!$ele->isHidden()) {
+ $caption = $ele->getCaption();
+ if (!empty($caption)) {
+ $html .= "<strong>" . $ele->getCaption() . "</strong><br />\n";
+ }
+ $html .= $ele->render() . "<br />\n";
+ } else {
+ $html .= $ele->render() . "\n";
+ }
+ }
+ $html .= "</div>";
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = false;
+ $ret['message'] = '';
+ $ret['html'] = $html;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ break;
+
+ case 'submitNewImageForm' :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $filename = basename($_FILES[$name . '_image_file']['name']);
+ //$filetype = basename($_FILES[$name . '_image_file']['type']);
+ //$filesize = basename($_FILES[$name . '_image_file']['size']);
+ $image_nicename = !empty($_POST['image_nicename']) ? trim($_POST['image_nicename']) : $filename;
+ $image_weight = isset($_POST['image_weight']) ? $_POST['image_weight'] : 0;
+ $image_display = isset($_POST['image_display']) ? $_POST['image_display'] : true;
+ // get imgcat_id
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id');
+ // get imgcat object
+ $imgcatObj = $imgcat_handler->get($imgcat_id);
+ // check imgcat object
+ if (!is_object($imgcatObj)) {
+ // ERROR
+ // Generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // check user write permissions
+ $imgcatperm_handler =& xoops_gethandler('groupperm');
+ if (!$imgcatperm_handler->checkRight('imgcat_write', $imgcat_id, $userGroups)) {
+ // ERROR: non write permissions
+ // Generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT_SUBMIT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT_SUBMIT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // upload image file and update db
+ $error = false;
+ include_once XOOPS_ROOT_PATH . '/class/uploader.php';
+ $uploader = new XoopsMediaUploader(XOOPS_UPLOAD_PATH, array('image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png'), $imgcatObj->getVar('imgcat_maxsize'), $imgcatObj->getVar('imgcat_maxwidth'), $imgcatObj->getVar('imgcat_maxheight'));
+ $uploader->setPrefix('img');
+ if ($uploader->fetchMedia($name . '_image_file')) {
+ if (!$uploader->upload()) {
+ $error = implode("<br />", $uploader->getErrors(false));
+ } else {
+ // create image object
+ $imageObj = $image_handler->create();
+ $imageObj->setVar('image_name', $uploader->getSavedFileName());
+ $imageObj->setVar('image_nicename', $image_nicename);
+ $imageObj->setVar('image_mimetype', $uploader->getMediaType());
+ $imageObj->setVar('image_created', time());
+ $imageObj->setVar('image_display', $image_display);
+ $imageObj->setVar('image_weight', $image_weight);
+ $imageObj->setVar('imgcat_id', $imgcat_id);
+ if ($imgcatObj->getVar('imgcat_storetype') == 'db') {
+ $fp = @fopen($uploader->getSavedDestination(), 'rb');
+ $fbinary = @fread($fp, filesize($uploader->getSavedDestination()));
+ @fclose($fp);
+ $imageObj->setVar('image_body', $fbinary, true);
+ @unlink($uploader->getSavedDestination());
+ }
+ // store image object in db
+ if (!$image_handler->insert($imageObj)) {
+ $error = sprintf(_FAILSAVEIMG, $imageObj->getVar('image_nicename'));
+ }
+ }
+ } else {
+ $error = sprintf(_FAILFETCHIMG, 0) . "|" . implode("|", $uploader->getErrors(false));
+ }
+ // generate ajax return
+ if ($error) {
+ // ERROR
+ $arr = array('error', $error);
+ } else {
+ $arr = array('success', $imageObj->getVar("image_name"), $imageObj->getVar("image_nicename"));
+ }
+ echo json_encode($arr);
+ exit();
+ break;
+
+ case 'submitUpdateImageForm' :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $image_nicename = !empty($_POST['image_nicename']) ? trim($_POST['image_nicename']) : $filename;
+ $image_weight = isset($_POST['image_weight']) ? $_POST['image_weight'] : 0;
+ $image_display = isset($_POST['image_display']) ? $_POST['image_display'] : true;
+ // get imgcat_id
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id');
+ // get imgcat object
+ $imgcatObj = $imgcat_handler->get($imgcat_id);
+ // check imgcat object
+ if (!is_object($imgcatObj)) {
+ // ERROR
+ // Generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // check user write permissions
+ $imgcatperm_handler =& xoops_gethandler('groupperm');
+ if (!$imgcatperm_handler->checkRight('imgcat_write', $imgcat_id, $userGroups)) {
+ // ERROR: no write permissions
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT_SUBMIT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT_SUBMIT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // get image_id
+ $image_id = isset($_REQUEST['image_id']) ? (int)$_REQUEST['image_id'] : 0;
+ //$image_id = XoopsRequest::getInt('image_id', 0);
+ // check image_id
+ if ($image_id <= 0) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMAGE;
+ $ret['html'] = _FAIM_ERROR_NO_IMAGE;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // get image object
+ $imageObj = $image_handler->get($image_id);
+ // check image object
+ if (!is_object($imageObj)) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMAGE;
+ $ret['html'] = _FAIM_ERROR_NO_IMAGE;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // update image object
+ $error = false;
+ $imageObj->setVar('image_nicename', $image_nicename);
+ $imageObj->setVar('image_display', $image_display);
+ $imageObj->setVar('image_weight', $image_weight);
+ $imageObj->setVar('imgcat_id', $imgcat_id);
+ // store image object in db
+ if (!$image_handler->insert($imageObj)) {
+ $error = sprintf(_FAILSAVEIMG, $imageObj->getVar('image_nicename'));
+ }
+ // generate ajax return
+ if ($error) {
+ // ERROR
+ $arr = array('error', $error);
+ } else {
+ $arr = array('success', $imageObj->getVar("image_name"), $imageObj->getVar("image_nicename"));
+ }
+ echo json_encode($arr);
+ exit();
+ break;
+
+ case 'deleteImage' :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $ok = isset($_REQUEST['delete_image_ok']) ? $_REQUEST['delete_image_ok'] : false;
+ //$ok = XoopsRequest::getBool('delete_image_ok', false);
+ // get image_id
+ $image_id = isset($_REQUEST['image_id']) ? (int)$_REQUEST['image_id'] : 0;
+ //$image_id = XoopsRequest::getInt('image_id', 0);
+ // check image_id
+ if ($image_id <= 0) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMAGE;
+ $ret['html'] = _FAIM_ERROR_NO_IMAGE;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // get image object
+ $imageObj = $image_handler->get($image_id);
+ // check image
+ if (!is_object($imageObj)) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMAGE_OBJECT;
+ $ret['html'] = _FAIM_ERROR_NO_IMAGE_OBJECT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ if ($ok == false) {
+ // NOT USED
+ /*
+ $imagesListArray = $image_handler->getList($imgcat_id);
+ $imagesListArrayCount = count($imagesListArray);
+ // render delete imgcat form
+ $html = '';
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = array(
+ 'name' => $name,
+ 'image_id' => $image_id,
+ 'image_nicename' => $image->getVar('image_nicename')
+ );
+ $ret['error'] = true;
+ $ret['message'] = _ERRORS;
+ $ret['html'] = '';
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ */
+ exit();
+ }
+ // delete image object form db
+ $errors = array();
+ if (!$image_handler->delete($imageObj)) {
+ // ERROR
+ $errors[] = sprintf( _FAIM_ERROR_NO_IMAGE_DELETE, $imageObj->getVar('image_nicename'));
+ } else {
+ // delete image file from filesystem
+ if (file_exists(XOOPS_UPLOAD_PATH . '/' . $imageObj->getVar('image_name')) && !unlink(XOOPS_UPLOAD_PATH . '/' . $imageObj->getVar('image_name'))) {
+ // ERROR
+ $errors[] = sprintf( _FAIM_ERROR_NO_IMAGE_DELETE, $imageObj->getVar('image_name') );
+ }
+ }
+
+ if (count($errors) > 0) {
+ ob_start(); // start output buffering
+ xoops_error($errors);
+ $error_html = ob_get_contents(); // store buffer in variable
+ ob_end_clean(); // end buffering and clean up
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = $error_html;
+ $ret['html'] = $error_html;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ } else {
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = false;
+ $ret['message'] = _FAIM_IMAGE_DELETED;
+ $ret['html'] = _FAIM_IMAGE_DELETED;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ break;
+
+
+// Imgcats operations
+ case 'getImgcatForm' :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id', 0);
+ // check imgcat_id
+ if ($imgcat_id <= 0) {
+ // create imgcat object
+ $imgcatObj =& $imgcat_handler->create();
+ $imgcatObj->setVar('imgcat_maxsize', 50000); // default for new imgcat
+ $imgcatObj->setVar('imgcat_maxwidth', 120); // default for new imgcat
+ $imgcatObj->setVar('imgcat_maxheight', 120); // default for new imgcat
+ $title = _FAIM_ADD_IMGCAT;
+ } else {
+ // get imgcat object
+ $imgcatObj =& $imgcat_handler->get($imgcat_id);
+ $title = _FAIM_EDIT_IMGCAT;
+ }
+ // check imgcat object
+ if (!is_object($imgcatObj)) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT_OBJECT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT_OBJECT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // create imgcat form
+ include_once XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
+ $form = new XoopsSimpleForm( $title, 'imagecat_form', 'formajaximagemanager.php', 'post', true );
+ $form->addElement(new XoopsFormText( _MD_IMGCATNAME, $name . '_imgcat_name', 50, 255, $imgcatObj->getVar('imgcat_name')), true);
+ $form->addElement(new XoopsFormSelectGroup( _MD_IMGCATRGRP, $name . '_imgcat_readgroup', true, array_merge($imgcatObjperm_handler->getGroupIds('imgcat_read', $imgcat_id), array(XOOPS_GROUP_ADMIN)), 3, true));
+ $form->addElement(new XoopsFormSelectGroup( _MD_IMGCATWGRP, $name . '_imgcat_writegroup', true, array_merge($imgcatObjperm_handler->getGroupIds('imgcat_write', $imgcat_id), array(XOOPS_GROUP_ADMIN)), 3, true));
+ $form->addElement(new XoopsFormText( _IMGMAXSIZE, $name . '_imgcat_maxsize', 10, 10, $imgcatObj->getVar('imgcat_maxsize')));
+ $form->addElement(new XoopsFormText( _IMGMAXWIDTH, $name . '_imgcat_maxwidth', 3, 4, $imgcatObj->getVar('imgcat_maxwidth')));
+ $form->addElement(new XoopsFormText( _IMGMAXHEIGHT, $name . '_imgcat_maxheight', 3, 4, $imgcatObj->getVar('imgcat_maxheight')));
+ $form->addElement(new XoopsFormText( _MD_IMGCATWEIGHT, $name . '_imgcat_weight', 3, 4, $imgcatObj->getVar('imgcat_weight')));
+ $form->addElement(new XoopsFormRadioYN( _MD_IMGCATDISPLAY, $name . '_imgcat_display', $imgcatObj->getVar('imgcat_display'), _YES, _NO));
+ $storetype = array( 'db' => _MD_INDB, 'file' => _MD_ASFILE );
+ //$form->addElement(new XoopsFormLabel( _MD_IMGCATSTRTYPE, $storetype[$imgcatObj->getVar('imgcat_storetype')]));
+ if (!$imgcatObj->isNew()) {
+ $form->addElement(new XoopsFormHidden($name . '_imgcat_id', $imgcat_id));
+ $form->addElement(new XoopsFormHidden($name . '_op', 'update.imgcat'));
+ } else {
+ $form->addElement(new XoopsFormHidden($name . '_imgcat_id', 0));
+ $form->addElement(new XoopsFormHidden($name . '_op', 'create.imgcat'));
+ }
+ $form->addElement(new XoopsFormHidden('fct', 'images'));
+ $form->addElement(new XoopsFormButton('', $name . '_submit_imgcat_button', _SUBMIT, 'button'));
+ // render edit imgcat form
+ $html = '';
+ $html .= "<div id='" . $name ."_edit_imgcat_form'>";
+ $html .= "<b>" . $form->getTitle() . "</b>\n";
+ $html .= "<br />\n";
+ foreach ($form->getElements() as $ele) {
+ if (!$ele->isHidden()) {
+ $caption = $ele->getCaption();
+ if (!empty($caption)) {
+ $html .= "<strong>" . $ele->getCaption() . "</strong><br />\n";
+ }
+ $html .= $ele->render() . "<br />\n";
+ } else {
+ $html .= $ele->render() . "\n";
+ }
+ }
+ $html .= "</div>";
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = false;
+ $ret['message'] = '';
+ $ret['html'] = $html;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ break;
+
+ case 'submitImgcatForm' :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id', 0);
+ // check imgcat_id
+ if ($imgcat_id <= 0) {
+ // create imgcat object
+ $imgcatObj = $imgcat_handler->create();
+ $title = _FAIM_ADD_IMGCAT;
+ } else {
+ // get imgcat object
+ $imgcatObj = $imgcat_handler->get($imgcat_id);
+ $title = _FAIM_EDIT_IMGCAT;
+ }
+ // check imgcat object
+ if (!is_object($imgcatObj)) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT_OBJECT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT_OBJECT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+
+ $imgcatObj->setVar('imgcat_name', $_POST['imgcat_name']);
+ $imgcatObj->setVar('imgcat_maxsize', $_POST['imgcat_maxsize']);
+ $imgcatObj->setVar('imgcat_maxwidth', $_POST['imgcat_maxwidth']);
+ $imgcatObj->setVar('imgcat_maxheight', $_POST['imgcat_maxheight']);
+ $imgcat_display = empty($_POST['imgcat_display']) ? false : true;
+ $imgcatObj->setVar('imgcat_display', $imgcat_display);
+ $imgcatObj->setVar('imgcat_weight', $_POST['imgcat_weight']);
+ if ($imgcat_id <= 0) {
+ $imgcatObj->setVar('imgcat_storetype', $_POST['imgcat_storetype']);
+ $imgcatObj->setVar('imgcat_type', 'C');
+ } else {
+ // NOP
+ }
+
+ if (!$imgcat_handler->insert($imgcatObj)) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT_DB;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT_DB;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+
+ $imgcat_id = $imgcatObj->getVar('imgcat_id');
+ // update permissions
+ $imgcatObjperm_handler =& xoops_gethandler('groupperm');
+ $readGroups = isset($_POST['imgcat_readgroup']) ? $_POST['imgcat_readgroup'] : array();
+ //$readGroups = XoopsRequest::getArray('imgcat_readgroup', array(), 'POST');
+ //if (!is_array($readgroups)) $readgroups = array();
+ if (!in_array(XOOPS_GROUP_ADMIN, $readGroups)) {
+ array_push($readGroups, XOOPS_GROUP_ADMIN);
+ }
+ foreach ($readGroups as $readGroup) {
+ $imgcatObjperm =& $imgcatObjperm_handler->create();
+ $imgcatObjperm->setVar('gperm_groupid', $readGroup);
+ $imgcatObjperm->setVar('gperm_itemid', $imgcat_id);
+ $imgcatObjperm->setVar('gperm_name', 'imgcat_read');
+ $imgcatObjperm->setVar('gperm_modid', 1);
+ $imgcatObjperm_handler->insert($imgcatObjperm);
+ unset($imgcatObjperm);
+ }
+
+ $writeGroups = isset($_POST['imgcat_writegroup']) ? $_POST['imgcat_writegroup'] : array();
+ //$writeGroups = XoopsRequest::getArray('imgcat_writegroup', array(), 'POST');
+ if (!in_array(XOOPS_GROUP_ADMIN, $writeGroups)) {
+ array_push($writeGroups, XOOPS_GROUP_ADMIN);
+ }
+ foreach ($writeGroups as $writeGroup) {
+ $imgcatObjperm =& $imgcatObjperm_handler->create();
+ $imgcatObjperm->setVar('gperm_groupid', $writeGroup);
+ $imgcatObjperm->setVar('gperm_itemid', $imgcat_id);
+ $imgcatObjperm->setVar('gperm_name', 'imgcat_write');
+ $imgcatObjperm->setVar('gperm_modid', 1);
+ $imgcatObjperm_handler->insert($imgcatObjperm);
+ unset($imgcatObjperm);
+ }
+
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = false;
+ $ret['message'] = '';
+ $ret['html'] = '';
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ break;
+
+ case 'deleteImgcat' :
+ $name = isset($_REQUEST['name']) ? (string)$_REQUEST['name'] : '';
+ //$name = XoopsRequest::getString('name');
+ $ok = isset($_REQUEST['delete_imgcat_ok']) ? $_REQUEST['delete_imgcat_ok'] : false;
+ //$ok = XoopsRequest::getBool('delete_imgcat_ok', false);
+ $imgcat_id = isset($_REQUEST['imgcat_id']) ? (int)$_REQUEST['imgcat_id'] : 0;
+ //$imgcat_id = XoopsRequest::getInt('imgcat_id', 0);
+ // check imgcat_id
+ if ($imgcat_id <= 0) {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+
+ $imgcatObj = $imgcat_handler->get($imgcat_id);
+ // check imgcatObj
+ if (!is_object($imgcatObj)) {
+ // generate ajax return
+ // ERROR
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // check imgcat_type
+ if ($imgcatObj->getVar('imgcat_type') != 'C') {
+ // ERROR
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = array(
+ 'name' => $name,
+ 'imgcat_id' => $imgcat_id,
+ 'imgcat_name' => $imgcatObj->getVar('imgcat_name')
+ );
+ $ret['error'] = true;
+ $ret['message'] = _FAIM_ERROR_NO_IMGCAT_EDIT;
+ $ret['html'] = _FAIM_ERROR_NO_IMGCAT_EDIT;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ if ($ok == false) {
+ $imagesListArray = $image_handler->getList($imgcat_id);
+ $imagesListArrayCount = count($imagesListArray);
+ // render delete imgcat form
+ $html = '';
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = array(
+ 'name' => $name,
+ 'imgcat_id' => $imgcat_id,
+ 'imgcat_name' => $imgcatObj->getVar('imgcat_name')
+ );
+ $ret['error'] = true;
+ $ret['message'] = _ERRORS;
+ $ret['html'] = '';
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ // delete images
+ $imagesObjs = $image_handler->getObjects(new Criteria('imgcat_id', $imgcat_id), true, false);
+ $errors = array();
+ foreach ($imagesObjs as $imageObj) {
+ if (!$image_handler->delete($imageObj)) {
+ // ERROR
+ $errors[] = sprintf( _FAIM_ERROR_NO_IMAGE_DELETE, $imageObj->getVar('image_nicename'));
+ } else {
+ if (file_exists(XOOPS_UPLOAD_PATH . '/' . $imageObj->getVar('image_name')) && !unlink(XOOPS_UPLOAD_PATH . '/' . $imageObj->getVar('image_name'))) {
+ // ERROR
+ $errors[] = sprintf( _FAIM_ERROR_NO_IMAGE_DELETE, $imageObj->getVar('image_name') );
+ }
+ }
+ }
+ // delete imgcat
+ if (!$imgcat_handler->delete($imgcatObj)) {
+ // ERROR
+ $errors[] = sprintf( _FAIM_ERROR_NO_IMGCAT_DELETE, $imgcatObj->getVar('imgcat_name'));
+ }
+ if (count($errors) > 0) {
+ ob_start(); // start output buffering
+ xoops_error($errors);
+ $error_html = ob_get_contents(); // store buffer in variable
+ ob_end_clean(); // end buffering and clean up
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = true;
+ $ret['message'] = $error_html;
+ $ret['html'] = $error_html;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ } else {
+ // generate ajax return
+ $ret = array();
+ $ret['data'] = null;
+ $ret['error'] = false;
+ $ret['message'] = _FAIM_IMGCAT_DELETED;
+ $ret['html'] = _FAIM_IMGCAT_DELETED;
+ $ret['javascript'] = '// NOP';
+ echo json_encode($ret);
+ exit();
+ }
+ break;
+}
+
+
+
+if (!class_exists('XoopsFormAjaxImageManager')) {
+ xoops_load('XoopsFormElement');
+
+ /**
+ * A ajax image manager
+ */
+ class XoopsFormAjaxImageManager extends XoopsFormElement
+ {
+ /**
+ * return mode: 'url', 'id', 'bbcode'
+ *
+ * @var string
+ * @access private
+ */
+ var $_return;
+
+ /**
+ * value: default field value
+ *
+ * @var string
+ * @access private
+ */
+ var $_value = '';
+
+ /**
+ * image id
+ *
+ * @var int
+ * @access private
+ */
+ var $_image_id;
+
+ /**
+ * image category id
+ *
+ * @var int
+ * @access private
+ */
+ var $_imgcat_id;
+
+ /**
+ * if true it's possible to edit/create categories from this element
+ *
+ * @var boolean
+ * @access private
+ */
+ var $_editimgcat;
+
+ /**
+ * Constuctor
+ *
+ * @param string $caption caption
+ * @param string $name name
+ * @param string $value initial content
+ */
+ function __construct($caption, $name, $value = "", $options = array())
+ {
+ $this->setCaption($caption);
+ $this->setName($name);
+ $this->setValue($value);
+ $this->setReturn(isset($options['return']) ? $options['return'] : 'url'); // 'url', 'html', 'bbcode', 'id', 'image_id' ...
+ $this->_editimgcat = isset($options['editimgcat']) ? (boolean)$options['editimgcat'] : false;
+
+ $myts = MyTextSanitizer::getInstance();
+
+ $imgcat_handler = xoops_gethandler('imagecategory');
+ $image_handler = xoops_gethandler('image');
+
+ $userGroups = (is_object($GLOBALS['xoopsUser'])) ? $GLOBALS['xoopsUser']->getGroups() : array(XOOPS_GROUP_ANONYMOUS);
+
+ $categories = $imgcat_handler->getList($userGroups, 'imgcat_read', 1);
+ $categoriesCount = count($categories);
+
+ // set default imgcat_id
+ $this->setDefaultImgcatId(($categoriesCount > 0) ? current(array_keys($categories)) : null);
+
+ // get imgcat_id from image_name/image_id
+ if ($value != '') {
+ switch ($this->getReturn()) {
+ case 'url' :
+ $image_name = basename($value);
+ $image_name = preg_replace('/^.+[\\\\\\/]/', '', $value); // because basename() has a bug when processes Asian characters like Chinese
+ $criteria = new Criteria('image_name', $image_name);
+ break;
+ case 'html' :
+ $doc = new DOMDocument();
+ @$doc->loadHTML($value);
+ $tags = $doc->getElementsByTagName('img');
+ foreach ($tags as $tag) {
+ $image_url = $tag->getAttribute('src');
+ }
+ $image_name = basename($image_url); // IN PROGRESS
+ $image_name = preg_replace('/^.+[\\\\\\/]/', '', $image_url); // because basename() has a bug when processes Asian characters like Chinese
+ $criteria = new Criteria('image_name', $image_name);
+ break;
+ case 'id' :
+ case 'image_id' :
+ $criteria = new Criteria('image_id', $value);
+ break;
+ case 'bbcode' :
+ $value = $myts->displayTarea($value, false, false, true, true, false);
+ $doc = new DOMDocument();
+ @$doc->loadHTML($value);
+ $tags = $doc->getElementsByTagName('img');
+ foreach ($tags as $tag) {
+ $image_url = $tag->getAttribute('src');
+ }
+ $image_name = basename($image_url); // IN PROGRESS
+ $image_name = preg_replace('/^.+[\\\\\\/]/', '', $image_url); // because basename() has a bug when processes Asian characters like Chinese
+ $criteria = new Criteria('image_name', $image_name);
+ break;
+ }
+ $imagesObjs = $image_handler->getObjects($criteria, false, false);
+ if (count($imagesObjs) == 1) {
+ $imageObj = $imagesObjs[0];
+ $this->setDefaultImageId($imageObj->getVar('image_id'));
+ $this->setDefaultImgcatId($imageObj->getVar('imgcat_id'));
+ }
+ }
+ }
+
+
+
+ /**
+ * get return mode
+ *
+ * @return string
+ */
+ function getReturn()
+ {
+ return $this->_return;
+ }
+ /**
+ * set return mode
+ *
+ * @return string
+ */
+ function setReturn($return)
+ {
+ $this->_return = $return;
+ }
+
+
+
+ /**
+ * Set initial content
+ *
+ * @param $value string
+ */
+ function setValue($value)
+ {
+ $this->_value = $value;
+ }
+ /**
+ * Get initial content
+ *
+ * @param bool $encode To sanitizer the text? Default value should be "true"; however we have to set "false" for backward compat
+ * @return string
+ */
+ function getValue($encode = false)
+ {
+ return $encode ? htmlspecialchars($this->_value) : $this->_value;
+ }
+
+
+
+ /**
+ * Set initial content
+ *
+ * @param $value string
+ */
+ function setDefaultImageId($image_id)
+ {
+ $this->_image_id = $image_id;
+ }
+ /**
+ * Get image_id
+ *
+ * @return int
+ */
+ function getDefaultImageId()
+ {
+ return $this->_image_id;
+ }
+
+
+
+ /**
+ * Set initial content
+ *
+ * @param $value string
+ */
+ function setDefaultImgcatId($imgcat_id)
+ {
+ $this->_imgcat_id = $imgcat_id;
+ }
+ /**
+ * Get imgcat_id
+ *
+ * @return int
+ */
+ function getDefaultImgcatId()
+ {
+ return $this->_imgcat_id;
+ }
+
+
+
+ /**
+ * prepare HTML for output
+ *
+ * @return sting HTML
+ */
+ function render()
+ {
+ global $xoopsConfig, $xoopsUser;
+ static $commonJsIncluded = false;
+
+ $myts = MyTextSanitizer::getInstance();
+
+ if ( file_exists( XOOPS_ROOT_PATH . '/modules/system/language/' . $xoopsConfig['language'] . '/images/lightbox-btn-close.gif' ) ) {
+ $xoops_language = $xoopsConfig['language'];
+ } else {
+ $xoops_language = 'english';
+ }
+
+ $commonJs = '
+ var ajaxloader = new Array();
+ var selected_imgcat_id = new Array();
+ var selected_image_id = new Array();
+ var returnType = new Array();
+ //var $xoopsJQuery = jQuery.noConflict();
+ function getImgcatImagesList(name, imgcat_id) {
+ $("div#" + name + "_container").empty();
+ ajaxloader[name] = new ajax...
[truncated message content] |