BUG 8732 Migrate Logo Setup to ExtJS SOLVED
- Migrate Logo Setup to ExtJS from master branch - Changing in the selection of image and adjustments in Logo Setup Options, ExtJS migrated from the master branch.
This commit is contained in:
@@ -100,7 +100,6 @@ class Admin extends Controller
|
|||||||
* getting email configuration
|
* getting email configuration
|
||||||
* @autor Alvaro <alvaro@colosa.com>
|
* @autor Alvaro <alvaro@colosa.com>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public function emails()
|
public function emails()
|
||||||
{
|
{
|
||||||
global $RBAC;
|
global $RBAC;
|
||||||
@@ -110,4 +109,38 @@ class Admin extends Controller
|
|||||||
//render content
|
//render content
|
||||||
G::RenderPage('publish', 'extJs');
|
G::RenderPage('publish', 'extJs');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* getting default list
|
||||||
|
* @param string $httpData->PRO_UID (opional)
|
||||||
|
*/
|
||||||
|
public function pmLogo($httpData)
|
||||||
|
{
|
||||||
|
global $RBAC;
|
||||||
|
$RBAC->requirePermissions('PM_SETUP_ADVANCE');
|
||||||
|
|
||||||
|
G::LoadClass('configuration');
|
||||||
|
$c = new Configurations();
|
||||||
|
$configPage = $c->getConfiguration('additionalTablesList', 'pageSize', '', $_SESSION['USER_LOGGED']);
|
||||||
|
$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20;
|
||||||
|
|
||||||
|
$this->includeExtJS('admin/pmLogo');
|
||||||
|
$this->setView('admin/pmLogo');
|
||||||
|
|
||||||
|
//assigning js variables
|
||||||
|
$this->setJSVar('FORMATS', $c->getFormats());
|
||||||
|
$this->setJSVar('CONFIG', $Config);
|
||||||
|
$this->setJSVar('PRO_UID', isset($_GET['PRO_UID'])? $_GET['PRO_UID'] : false);
|
||||||
|
|
||||||
|
if (isset($_SESSION['_cache_pmtables'])) {
|
||||||
|
unset($_SESSION['_cache_pmtables']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($_SESSION['ADD_TAB_UID'])) {
|
||||||
|
unset($_SESSION['ADD_TAB_UID']);
|
||||||
|
}
|
||||||
|
//render content
|
||||||
|
G::RenderPage('publish', 'extJs');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -551,4 +551,516 @@ class adminProxy extends HttpProxyController
|
|||||||
$this->success = (count($fields) > 0);
|
$this->success = (count($fields) > 0);
|
||||||
$this->data = $fields;
|
$this->data = $fields;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get List Image
|
||||||
|
* @param type $httpData
|
||||||
|
*/
|
||||||
|
public function getListImage($httpData)
|
||||||
|
{
|
||||||
|
G::LoadClass('replacementLogo');
|
||||||
|
$uplogo = PATH_TPL . 'setup' . PATH_SEP . 'uplogo.html';
|
||||||
|
$width = "100%";
|
||||||
|
$upload = new replacementLogo();
|
||||||
|
$aPhotoSelect = $upload->getNameLogo($_SESSION['USER_LOGGED']);
|
||||||
|
$sPhotoSelect = trim($aPhotoSelect['DEFAULT_LOGO_NAME']);
|
||||||
|
$check = '';
|
||||||
|
$ainfoSite = explode("/",$_SERVER["REQUEST_URI"]);
|
||||||
|
$dir = PATH_DATA . "sites" . PATH_SEP . str_replace("sys", "", $ainfoSite[1]) . PATH_SEP . "files/logos";
|
||||||
|
G::mk_dir ( $dir );
|
||||||
|
$i = 0;
|
||||||
|
$images = array();
|
||||||
|
/** if we have at least one image it's load */
|
||||||
|
if (file_exists($dir)) {
|
||||||
|
if ($handle = opendir($dir)) {
|
||||||
|
while (false !== ($file = readdir($handle))) {
|
||||||
|
if (($file != ".") && ($file != "..")) {
|
||||||
|
$extention = explode(".", $file);
|
||||||
|
$aImageProp = getimagesize($dir . '/' . $file, $info);
|
||||||
|
$sfileExtention = strtoupper($extention[count($extention)-1]);
|
||||||
|
|
||||||
|
if( in_array($sfileExtention, array('JPG', 'JPEG', 'PNG', 'GIF') ) ) {
|
||||||
|
|
||||||
|
$check = (!strcmp($file, $sPhotoSelect)) ? '/images/toadd.png' : '/images/delete.png';
|
||||||
|
$onclick = (strcmp($file, $sPhotoSelect)) ? "onclick ='deleteLogo(\" $file \");return false;'" : '';
|
||||||
|
|
||||||
|
if ($i == 0) {
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
$i++;
|
||||||
|
$images[] = array(
|
||||||
|
'name' => $file,
|
||||||
|
'size' => '0',
|
||||||
|
'lastmod' => '32',
|
||||||
|
'url' => "../adminProxy/showLogoFile?id=".base64_encode($file),
|
||||||
|
'thumb_url' => "../adminProxy/showLogoFile?id=".base64_encode($file)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$o = array('images' => $images);
|
||||||
|
echo json_encode($o);
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Change Name logo
|
||||||
|
* @param type $snameLogo
|
||||||
|
* @return type $snameLogo
|
||||||
|
*/
|
||||||
|
function changeNamelogo($snameLogo)
|
||||||
|
{
|
||||||
|
$snameLogo = preg_replace("/[áàâãª]/", "a", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[ÁÀÂÃ]/", "A", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[ÍÌÎ]/", "I", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[íìî]/", "i", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[éèê]/", "e", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[ÉÈÊ]/", "E", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[óòôõº]/", "o", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[ÓÒÔÕ]/", "O", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[úùû]/", "u", $snameLogo);
|
||||||
|
$snameLogo = preg_replace("/[ÚÙÛ]/", "U", $snameLogo);
|
||||||
|
$snameLogo = str_replace( "ç", "c", $snameLogo);
|
||||||
|
$snameLogo = str_replace( "Ç", "C", $snameLogo);
|
||||||
|
$snameLogo = str_replace( "[ñ]", "n", $snameLogo);
|
||||||
|
$snameLogo = str_replace( "[Ñ]", "N", $snameLogo);
|
||||||
|
return ($snameLogo);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Create Thumb
|
||||||
|
* @param type $img_file
|
||||||
|
* @param type $ori_path
|
||||||
|
* @param type $thumb_path
|
||||||
|
* @param type $img_type
|
||||||
|
*/
|
||||||
|
function createThumb($img_file, $ori_path, $thumb_path, $img_type)
|
||||||
|
{
|
||||||
|
$path = $ori_path;
|
||||||
|
$img = $path.$img_file;
|
||||||
|
switch ($img_type) {
|
||||||
|
case "image/jpeg":
|
||||||
|
$img_src = @imagecreatefromjpeg($img);
|
||||||
|
break;
|
||||||
|
case "image/pjpeg":
|
||||||
|
$img_src = @imagecreatefromjpeg($img);
|
||||||
|
break;
|
||||||
|
case "image/png":
|
||||||
|
$img_src = @imagecreatefrompng($img);
|
||||||
|
break;
|
||||||
|
case "image/x-png":
|
||||||
|
$img_src = @imagecreatefrompng($img);
|
||||||
|
break;
|
||||||
|
case "image/gif":
|
||||||
|
$img_src = @imagecreatefromgif($img);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
$img_width = imagesx($img_src);
|
||||||
|
$img_height = imagesy($img_src);
|
||||||
|
$square_size = 100;
|
||||||
|
// check width, height, or square
|
||||||
|
if ($img_width == $img_height) {
|
||||||
|
// square
|
||||||
|
$tmp_width = $square_size;
|
||||||
|
$tmp_height = $square_size;
|
||||||
|
} else if ($img_height < $img_width) {
|
||||||
|
// wide
|
||||||
|
$tmp_height = $square_size;
|
||||||
|
$tmp_width = intval(($img_width / $img_height) * $square_size);
|
||||||
|
if ($tmp_width % 2 != 0) {
|
||||||
|
$tmp_width++;
|
||||||
|
}
|
||||||
|
} else if ($img_height > $img_width) {
|
||||||
|
$tmp_width = $square_size;
|
||||||
|
$tmp_height = intval(($img_height / $img_width) * $square_size);
|
||||||
|
if (($tmp_height % 2) != 0) {
|
||||||
|
$tmp_height++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$img_new = imagecreatetruecolor($tmp_width, $tmp_height);
|
||||||
|
imagecopyresampled($img_new, $img_src, 0, 0, 0, 0,
|
||||||
|
$tmp_width, $tmp_height, $img_width, $img_height);
|
||||||
|
|
||||||
|
// create temporary thumbnail and locate on the server
|
||||||
|
$thumb = $thumb_path."thumb_".$img_file;
|
||||||
|
switch ($img_type) {
|
||||||
|
case "image/jpeg":
|
||||||
|
imagejpeg($img_new, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/pjpeg":
|
||||||
|
imagejpeg($img_new, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/png":
|
||||||
|
imagepng($img_new, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/x-png":
|
||||||
|
imagepng($img_new, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/gif":
|
||||||
|
imagegif($img_new, $thumb);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get tmp_image
|
||||||
|
switch ($img_type) {
|
||||||
|
case "image/jpeg":
|
||||||
|
$img_thumb_square = imagecreatefromjpeg($thumb);
|
||||||
|
break;
|
||||||
|
case "image/pjpeg":
|
||||||
|
$img_thumb_square = imagecreatefromjpeg($thumb);
|
||||||
|
break;
|
||||||
|
case "image/png":
|
||||||
|
$img_thumb_square = imagecreatefrompng($thumb);
|
||||||
|
break;
|
||||||
|
case "image/x-png":
|
||||||
|
$img_thumb_square = imagecreatefrompng($thumb);
|
||||||
|
break;
|
||||||
|
case "image/gif":
|
||||||
|
$img_thumb_square = imagecreatefromgif($thumb);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$thumb_width = imagesx($img_thumb_square);
|
||||||
|
$thumb_height = imagesy($img_thumb_square);
|
||||||
|
|
||||||
|
if ($thumb_height < $thumb_width) {
|
||||||
|
// wide
|
||||||
|
$x_src = ($thumb_width - $square_size) / 2;
|
||||||
|
$y_src = 0;
|
||||||
|
$img_final = imagecreatetruecolor($square_size, $square_size);
|
||||||
|
imagecopy($img_final, $img_thumb_square, 0, 0,
|
||||||
|
$x_src, $y_src, $square_size, $square_size);
|
||||||
|
}
|
||||||
|
else if ($thumb_height > $thumb_width) {
|
||||||
|
// landscape
|
||||||
|
$x_src = 0;
|
||||||
|
$y_src = ($thumb_height - $square_size) / 2;
|
||||||
|
$img_final = imagecreatetruecolor($square_size, $square_size);
|
||||||
|
imagecopy($img_final, $img_thumb_square, 0, 0,
|
||||||
|
$x_src, $y_src, $square_size, $square_size);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$img_final = imagecreatetruecolor($square_size, $square_size);
|
||||||
|
imagecopy($img_final, $img_thumb_square, 0, 0,
|
||||||
|
0, 0, $square_size, $square_size);
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($img_type) {
|
||||||
|
case "image/jpeg":
|
||||||
|
@imagejpeg($img_final, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/pjpeg":
|
||||||
|
@imagejpeg($img_final, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/png":
|
||||||
|
@imagepng($img_final, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/x-png":
|
||||||
|
@imagepng($img_final, $thumb);
|
||||||
|
break;
|
||||||
|
case "image/gif":
|
||||||
|
@imagegif($img_final, $thumb);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Upload Image
|
||||||
|
* @global type $_FILES
|
||||||
|
*/
|
||||||
|
function uploadImage()
|
||||||
|
{
|
||||||
|
//!dataSystem
|
||||||
|
$ainfoSite = explode("/", $_SERVER["REQUEST_URI"]);
|
||||||
|
$dir = PATH_DATA."sites".PATH_SEP.str_replace("sys","",$ainfoSite[1]).PATH_SEP."files/logos";
|
||||||
|
global $_FILES;
|
||||||
|
|
||||||
|
//| 0-> non fail
|
||||||
|
//| 1-> fail in de type of the image
|
||||||
|
//| 2-> fail in de size of the image
|
||||||
|
//| 3-> fail in de myme of the image
|
||||||
|
$failed = 0;
|
||||||
|
//!dataSystem
|
||||||
|
|
||||||
|
$ori_dir = $dir . '/img/ori/';
|
||||||
|
$thumb_dir = $dir . '/img/thumbs/';
|
||||||
|
|
||||||
|
$allowedType = array(
|
||||||
|
'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/gif', 'image/png', 'image/x-png'
|
||||||
|
);
|
||||||
|
$allowedTypeArray['index' . base64_encode('image/jpg')] = IMAGETYPE_JPEG;
|
||||||
|
$allowedTypeArray['index' . base64_encode('image/jpeg')] = IMAGETYPE_JPEG;
|
||||||
|
$allowedTypeArray['index' . base64_encode('image/pjpeg')] = IMAGETYPE_JPEG;
|
||||||
|
$allowedTypeArray['index' . base64_encode('image/gif')] = IMAGETYPE_GIF;
|
||||||
|
$allowedTypeArray['index' . base64_encode('image/png')] = IMAGETYPE_PNG;
|
||||||
|
$allowedTypeArray['index' . base64_encode('image/x-png')] = IMAGETYPE_PNG;
|
||||||
|
|
||||||
|
$uploaded = 0;
|
||||||
|
$failed = 0;
|
||||||
|
|
||||||
|
if (in_array($_FILES['img']['type'], $allowedType)) {
|
||||||
|
// max upload file is 500 KB
|
||||||
|
if ($_FILES['img']['size'] <= 500000) {
|
||||||
|
|
||||||
|
$formf = $_FILES['img'];
|
||||||
|
$namefile = $formf['name'];
|
||||||
|
$typefile = $formf['type'];
|
||||||
|
$errorfile = $formf['error'];
|
||||||
|
$tpnfile = $formf['tmp_name'];
|
||||||
|
$aMessage1 = array();
|
||||||
|
$fileName = trim(str_replace(' ', '_', $namefile));
|
||||||
|
$fileName = self::changeNamelogo($fileName);
|
||||||
|
G::uploadFile( $tpnfile, $dir . '/', 'tmp' . $fileName );
|
||||||
|
|
||||||
|
try {
|
||||||
|
$typeMime = exif_imagetype($dir . '/'. 'tmp'.$fileName);
|
||||||
|
if ($typeMime == $allowedTypeArray['index' . base64_encode($_FILES['img']['type'])]) {
|
||||||
|
$error = false;
|
||||||
|
try {
|
||||||
|
list($imageWidth, $imageHeight, $imageType) = @getimagesize($dir . '/' . 'tmp' . $fileName);
|
||||||
|
G::resizeImage($dir . '/tmp' . $fileName, $imageWidth, 49, $dir . '/' . $fileName);
|
||||||
|
}
|
||||||
|
catch (Exception $e) {
|
||||||
|
$error = $e->getMessage();
|
||||||
|
}
|
||||||
|
$uploaded++;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$failed = "3";
|
||||||
|
}
|
||||||
|
unlink ($dir . '/tmp' . $fileName);
|
||||||
|
}
|
||||||
|
catch (Exception $e) {
|
||||||
|
$failed = "3";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$failed = "2";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ($_FILES['img']['type'] != '') {
|
||||||
|
$failed = "1";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '{success: true, failed: ' . $failed . ', uploaded: ' . $uploaded . ', type: "' . $_FILES['img']['type'] . '"}';
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Name Current Logo
|
||||||
|
* @return type
|
||||||
|
*/
|
||||||
|
function getNameCurrentLogo()
|
||||||
|
{
|
||||||
|
G::LoadClass('replacementLogo');
|
||||||
|
$upload = new replacementLogo();
|
||||||
|
$aPhotoSelect = $upload->getNameLogo($_SESSION['USER_LOGGED']);
|
||||||
|
$sPhotoSelect = trim($aPhotoSelect['DEFAULT_LOGO_NAME']);
|
||||||
|
return $sPhotoSelect;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* compare Name Current Logo
|
||||||
|
* @param type $selectLogo
|
||||||
|
* @return type int value
|
||||||
|
*/
|
||||||
|
function isCurrentLogo()
|
||||||
|
{
|
||||||
|
$arrayImg = explode(";", $_POST['selectLogo']);
|
||||||
|
foreach ($arrayImg as $imgname) {
|
||||||
|
if ($imgname != "") {
|
||||||
|
if( strcmp($imgname, self::getNameCurrentLogo()) == 0 ) {
|
||||||
|
echo '{success: true}';
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '{success: false}';
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* Delete Image from the list
|
||||||
|
* @param
|
||||||
|
* @return string '{success: true | false}'
|
||||||
|
*/
|
||||||
|
function deleteImage()
|
||||||
|
{
|
||||||
|
//!dataSystem
|
||||||
|
$ainfoSite = explode("/", $_SERVER["REQUEST_URI"]);
|
||||||
|
$dir = PATH_DATA . "sites" . PATH_SEP . str_replace("sys", "", $ainfoSite[1]) . PATH_SEP . "files/logos";
|
||||||
|
global $_FILES;
|
||||||
|
//!dataSystem
|
||||||
|
|
||||||
|
$dir = $dir;
|
||||||
|
$dir_thumbs = $dir;
|
||||||
|
|
||||||
|
$arrayImg = explode(";", $_POST['images']);
|
||||||
|
foreach ($arrayImg as $imgname) {
|
||||||
|
if ($imgname != "") {
|
||||||
|
if( strcmp($imgname, self::getNameCurrentLogo()) != 0 ) {
|
||||||
|
if(file_exists($dir . '/' . $imgname)) {
|
||||||
|
unlink ($dir . '/' . $imgname);
|
||||||
|
}
|
||||||
|
if(file_exists($dir . '/tmp' . $imgname)) {
|
||||||
|
unlink ($dir . '/tmp' . $imgname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo '{success: false}';
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo '{success: true}';
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Replacement Logo
|
||||||
|
* @global type $_REQUEST
|
||||||
|
* @global type $RBAC
|
||||||
|
*/
|
||||||
|
function replacementLogo()
|
||||||
|
{
|
||||||
|
global $_REQUEST;
|
||||||
|
$sfunction = $_REQUEST['nameFunction'];
|
||||||
|
$_GET['NAMELOGO'] = $_REQUEST['NAMELOGO'];
|
||||||
|
|
||||||
|
try {//ini_set('display_errors','1');
|
||||||
|
global $RBAC;
|
||||||
|
switch ($RBAC->userCanAccess('PM_LOGIN')) {
|
||||||
|
case -2:
|
||||||
|
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_SYSTEM', 'error', 'labels');
|
||||||
|
G::header('location: ../login/login');
|
||||||
|
die;
|
||||||
|
break;
|
||||||
|
case -1:
|
||||||
|
G::SendTemporalMessage('ID_USER_HAVENT_RIGHTS_PAGE', 'error', 'labels');
|
||||||
|
G::header('location: ../login/login');
|
||||||
|
die;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($sfunction) {
|
||||||
|
case 'replacementLogo':
|
||||||
|
$snameLogo = urldecode($_GET['NAMELOGO']);
|
||||||
|
$snameLogo = trim($snameLogo);
|
||||||
|
$snameLogo = self::changeNamelogo($snameLogo);
|
||||||
|
G::loadClass('configuration');
|
||||||
|
$oConf = new Configurations;
|
||||||
|
$aConf = Array(
|
||||||
|
'WORKSPACE_LOGO_NAME' => SYS_SYS,
|
||||||
|
'DEFAULT_LOGO_NAME' => $snameLogo
|
||||||
|
);
|
||||||
|
|
||||||
|
$oConf->aConfig = $aConf;
|
||||||
|
$oConf->saveConfig('USER_LOGO_REPLACEMENT', '', '', '');
|
||||||
|
|
||||||
|
G::SendTemporalMessage('ID_REPLACED_LOGO', 'tmp-info', 'labels');
|
||||||
|
break;
|
||||||
|
case 'restoreLogo':
|
||||||
|
$snameLogo = $_GET['NAMELOGO'];
|
||||||
|
G::loadClass('configuration');
|
||||||
|
$oConf = new Configurations;
|
||||||
|
$aConf = Array(
|
||||||
|
'WORKSPACE_LOGO_NAME' => '',
|
||||||
|
'DEFAULT_LOGO_NAME' => ''
|
||||||
|
);
|
||||||
|
|
||||||
|
$oConf->aConfig = $aConf;
|
||||||
|
$oConf->saveConfig('USER_LOGO_REPLACEMENT', '', '', '');
|
||||||
|
|
||||||
|
G::SendTemporalMessage('ID_REPLACED_LOGO', 'tmp-info', 'labels');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception $oException) {
|
||||||
|
die($oException->getMessage());
|
||||||
|
}
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show Logo
|
||||||
|
* @param type $imagen
|
||||||
|
*/
|
||||||
|
function showLogo($imagen)
|
||||||
|
{
|
||||||
|
$info = @getimagesize($imagen);
|
||||||
|
$fp = fopen($imagen, "rb");
|
||||||
|
if ($info && $fp) {
|
||||||
|
header("Content-type: {$info['mime']}");
|
||||||
|
fpassthru($fp);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
throw new Exception("Image format not valid");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Copy More Logos
|
||||||
|
* @param type $dir
|
||||||
|
* @param type $newDir
|
||||||
|
*/
|
||||||
|
function cpyMoreLogos($dir,$newDir)
|
||||||
|
{
|
||||||
|
if (file_exists($dir)) {
|
||||||
|
if (($handle = opendir($dir))) {
|
||||||
|
while (false !== ($file = readdir($handle))) {
|
||||||
|
if (($file != ".") && ($file != "..")) {
|
||||||
|
$extention = explode(".", $file);
|
||||||
|
$aImageProp = getimagesize($dir . '/' . $file, $info);
|
||||||
|
$sfileExtention = strtoupper($extention[count($extention)-1]);
|
||||||
|
if ( in_array($sfileExtention, array('JPG', 'JPEG', 'PNG', 'GIF') ) ) {
|
||||||
|
|
||||||
|
$dir1 = $dir . PATH_SEP . $file;
|
||||||
|
$dir2 = $newDir . PATH_SEP . $file;
|
||||||
|
copy($dir1, $dir2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
closedir($handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show Logo File
|
||||||
|
*/
|
||||||
|
function showLogoFile()
|
||||||
|
{
|
||||||
|
$_GET['id'] = $_REQUEST['id'];
|
||||||
|
|
||||||
|
$base64Id = base64_decode($_GET['id']);
|
||||||
|
$ainfoSite = explode("/", $_SERVER["REQUEST_URI"]);
|
||||||
|
$dir = PATH_DATA . "sites" . PATH_SEP.str_replace("sys", "", $ainfoSite[1]).PATH_SEP."files/logos";
|
||||||
|
$imagen = $dir . PATH_SEP . $base64Id;
|
||||||
|
|
||||||
|
if (is_file($imagen)) {
|
||||||
|
self::showLogo($imagen);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$newDir = PATH_DATA . "sites" . PATH_SEP.str_replace("sys", "", $ainfoSite[1]).PATH_SEP."files/logos";
|
||||||
|
$dir = PATH_HOME . "public_html/files/logos";
|
||||||
|
|
||||||
|
if (!is_dir($newDir)) {
|
||||||
|
G::mk_dir($newDir);
|
||||||
|
}
|
||||||
|
//this function does copy all logos from public_html/files/logos to /shared/site/yourSite/files/logos
|
||||||
|
//cpyMoreLogos($dir,$newDir);
|
||||||
|
$newDir .= PATH_SEP.$base64Id;
|
||||||
|
$dir .= PATH_SEP.$base64Id;
|
||||||
|
copy($dir,$newDir);
|
||||||
|
self::showLogo($newDir);
|
||||||
|
die;
|
||||||
|
}
|
||||||
|
die;
|
||||||
|
exit();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ global $RBAC;
|
|||||||
|
|
||||||
if ($RBAC->userCanAccess('PM_SETUP') == 1 ) {
|
if ($RBAC->userCanAccess('PM_SETUP') == 1 ) {
|
||||||
//settings options
|
//settings options
|
||||||
$G_TMP_MENU->AddIdRawOption('LOGO', 'uplogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png', '', 'settings');
|
// $G_TMP_MENU->AddIdRawOption('LOGO', 'uplogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png', '', 'settings');
|
||||||
|
$G_TMP_MENU->AddIdRawOption('LOGO', '../admin/pmLogo', G::LoadTranslation('ID_LOGO'), 'icon-pmlogo.png','', 'settings');
|
||||||
$G_TMP_MENU->AddIdRawOption('EMAILS','../admin/emails', G::LoadTranslation('ID_EMAIL'), 'icon-email-settings1.png', '', 'settings');
|
$G_TMP_MENU->AddIdRawOption('EMAILS','../admin/emails', G::LoadTranslation('ID_EMAIL'), 'icon-email-settings1.png', '', 'settings');
|
||||||
$G_TMP_MENU->AddIdRawOption('CALENDAR', 'calendarList', G::LoadTranslation('ID_CALENDAR'), 'icon-calendar.png', '', 'settings' );
|
$G_TMP_MENU->AddIdRawOption('CALENDAR', 'calendarList', G::LoadTranslation('ID_CALENDAR'), 'icon-calendar.png', '', 'settings' );
|
||||||
//if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1)
|
//if ($RBAC->userCanAccess('PM_SETUP_ADVANCE') == 1)
|
||||||
|
|||||||
109
workflow/engine/templates/admin/pmLogo.html
Normal file
109
workflow/engine/templates/admin/pmLogo.html
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
<head>
|
||||||
|
<title>DataView</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
|
</head>
|
||||||
|
<body >
|
||||||
|
<div id="container">
|
||||||
|
<div id="left"></div>
|
||||||
|
<div id="right">
|
||||||
|
<div id="right-top"></div>
|
||||||
|
<div id="right-bottom"></div>
|
||||||
|
</div>
|
||||||
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<style type="text/css">
|
||||||
|
#container {
|
||||||
|
padding : 10px;
|
||||||
|
width : 820px;
|
||||||
|
}
|
||||||
|
#left {
|
||||||
|
float : left;
|
||||||
|
}
|
||||||
|
#right {
|
||||||
|
float : right;
|
||||||
|
}
|
||||||
|
#right-bottom {
|
||||||
|
margin-top : 10px;
|
||||||
|
}
|
||||||
|
.clear {
|
||||||
|
clear : both;
|
||||||
|
}
|
||||||
|
.details {
|
||||||
|
padding : 10px;
|
||||||
|
font-family : "Arial";
|
||||||
|
font-size : 11px;
|
||||||
|
}
|
||||||
|
.details-info {
|
||||||
|
margin-top : 10px;
|
||||||
|
}
|
||||||
|
.details-info span {
|
||||||
|
display : block;
|
||||||
|
}
|
||||||
|
.details-info span a {
|
||||||
|
color : #0066cc;
|
||||||
|
}
|
||||||
|
.details-info span a:hover {
|
||||||
|
text-decoration : none;
|
||||||
|
}
|
||||||
|
|
||||||
|
*html body {
|
||||||
|
overflow-x : hidden !important;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
overflow-x : hidden !important;
|
||||||
|
background-color : white !important;
|
||||||
|
}
|
||||||
|
/**/
|
||||||
|
#images-view .x-panel-body {
|
||||||
|
background : white;
|
||||||
|
font : 11px Arial, Helvetica, sans-serif;
|
||||||
|
}
|
||||||
|
#images-view .thumb {
|
||||||
|
background : #FFFFFF;
|
||||||
|
padding : 3px;
|
||||||
|
}
|
||||||
|
#images-view .thumb img {
|
||||||
|
height : 50px !important;
|
||||||
|
width : 255px !important;
|
||||||
|
}
|
||||||
|
#images-view .thumb-wrap {
|
||||||
|
float : left;
|
||||||
|
display : inline;
|
||||||
|
margin : 4px;
|
||||||
|
margin-right : 0;
|
||||||
|
padding : 5px;
|
||||||
|
border : 1px solid white;
|
||||||
|
}
|
||||||
|
#images-view .thumb-wrap span {
|
||||||
|
display : block;
|
||||||
|
overflow : hidden;
|
||||||
|
text-align : center;
|
||||||
|
}
|
||||||
|
#images-view .x-view-over {
|
||||||
|
border : 1px solid #99bbe8;
|
||||||
|
opacity : 0.5;
|
||||||
|
background : #efefef url(/images/ext/row-over.gif) repeat-x left top;
|
||||||
|
padding : 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#images-view .x-view-selected {
|
||||||
|
border : 1px solid #99bbe8;
|
||||||
|
background : #eff5fb url(/images/selected.gif) no-repeat right bottom;
|
||||||
|
opacity : 0.5;
|
||||||
|
padding : 5px;
|
||||||
|
}
|
||||||
|
#images-view .x-view-selected .thumb {
|
||||||
|
background : transparent;
|
||||||
|
}
|
||||||
|
#images-view .loading-indicator {
|
||||||
|
font-size : 11px;
|
||||||
|
background-image : url('../../resources/images/default/grid/loading.gif');
|
||||||
|
background-repeat : no-repeat;
|
||||||
|
background-position : left;
|
||||||
|
padding-left : 20px;
|
||||||
|
margin : 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
316
workflow/engine/templates/admin/pmLogo.js
Normal file
316
workflow/engine/templates/admin/pmLogo.js
Normal file
@@ -0,0 +1,316 @@
|
|||||||
|
Ext.onReady(function() {
|
||||||
|
var store = new Ext.data.JsonStore({
|
||||||
|
proxy : new Ext.data.HttpProxy({
|
||||||
|
url : '../adminProxy/getListImage', method: 'POST'
|
||||||
|
}),
|
||||||
|
root : 'images',
|
||||||
|
fields : [
|
||||||
|
'name', 'url',
|
||||||
|
{name : 'size', type : 'float'},
|
||||||
|
{name : 'lastmod', type : 'date', dateFormat: 'timestamp'},
|
||||||
|
'thumb_url'
|
||||||
|
]
|
||||||
|
});
|
||||||
|
store.load();
|
||||||
|
|
||||||
|
var tpl = new Ext.XTemplate(
|
||||||
|
'<ul>',
|
||||||
|
'<tpl for=".">',
|
||||||
|
'<li class="pagedTableDefault" >',
|
||||||
|
'<div class="thumb-wrap" id="{name}">',
|
||||||
|
'<img src="{thumb_url}" title="{name}">',
|
||||||
|
'</div>',
|
||||||
|
'</li>',
|
||||||
|
'<span class="x-editable">{shortName}</span></div>',
|
||||||
|
'</tpl>',
|
||||||
|
'<div class="x-clear"></div>',
|
||||||
|
'</ul>'
|
||||||
|
);
|
||||||
|
var tplDetail = new Ext.XTemplate(
|
||||||
|
'<div class="details">',
|
||||||
|
'<tpl for=".">',
|
||||||
|
'<img src="{thumb_url}"><div class="details-info">',
|
||||||
|
'<b>Image Name:</b>',
|
||||||
|
'<span>{name}</span>',
|
||||||
|
'<span><a href="{url}" target="_blank">view original</a></span></div>',
|
||||||
|
'</tpl>',
|
||||||
|
'</div>'
|
||||||
|
);
|
||||||
|
var tbar = new Ext.Toolbar();
|
||||||
|
tbar.add({
|
||||||
|
text : _('ID_APPLY'),
|
||||||
|
icon : '/images/ext/default/accept.png',
|
||||||
|
id : 'tbarAply',
|
||||||
|
disabled: true,
|
||||||
|
handler : function() {
|
||||||
|
var records = datav.getSelectedRecords();
|
||||||
|
if (records.length != 0) {
|
||||||
|
if(records.length == 1) {
|
||||||
|
|
||||||
|
var myMask = new Ext.LoadMask(Ext.getBody(), {msg:_('ID_LOADING')});
|
||||||
|
myMask.show();
|
||||||
|
|
||||||
|
var imageName = records[0].data.name;
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url : '../adminProxy/replacementLogo',
|
||||||
|
method : 'post',
|
||||||
|
params : {nameFunction: 'replacementLogo', NAMELOGO:imageName},
|
||||||
|
success : function() {
|
||||||
|
window.parent.window.parent.location.href = window.parent.window.parent.window.location.href
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PMExt.notify('Notice', _('ID_YOU_ARE_NOT_CAN_SELECT_PHOTO'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PMExt.notify('Notice', _('ID_SELECT_AN_IMAGE'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tbar.add({
|
||||||
|
text : _('ID_DELETE'),
|
||||||
|
icon : '/images/delete-16x16.gif',
|
||||||
|
id : 'tbarDelete',
|
||||||
|
disabled: true,
|
||||||
|
handler : function() {
|
||||||
|
var records = datav.getSelectedRecords();
|
||||||
|
var isCurrentLogo = false;
|
||||||
|
if (records.length != 0) {
|
||||||
|
if (records.length == 1) {
|
||||||
|
var imgName = '';
|
||||||
|
for (var i = 0; i < records.length; i++) {
|
||||||
|
imgName = imgName + records[i].data.name + ';';
|
||||||
|
}
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url : '../adminProxy/isCurrentLogo',
|
||||||
|
method : 'post',
|
||||||
|
params : { selectLogo : imgName },
|
||||||
|
success : function(response) {
|
||||||
|
store.load();
|
||||||
|
oResponse = Ext.decode( response.responseText );
|
||||||
|
if (oResponse.success == true) {
|
||||||
|
Ext.Msg.alert(_('ID_LOGO'), _('ID_SELECTED_IMAGE_IS_LOGO'));
|
||||||
|
isCurrentLogo = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(isCurrentLogo == false) {
|
||||||
|
Ext.Msg.show({
|
||||||
|
title : _('ID_LOGO'),
|
||||||
|
msg : _('ID_DELETE_SELECTED_LOGO'),
|
||||||
|
buttons: Ext.Msg.YESNO,
|
||||||
|
fn : function(btn) {
|
||||||
|
if(btn == 'yes') {
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url : '../adminProxy/deleteImage',
|
||||||
|
method : 'post',
|
||||||
|
params : {images : imgName},
|
||||||
|
success : function(response) {
|
||||||
|
store.load();
|
||||||
|
oResponse = Ext.decode( response.responseText );
|
||||||
|
if (oResponse.success == true) {
|
||||||
|
PMExt.notify('Notice', _('ID_SELECTED_IMAGE_DELETED'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PMExt.notify('Notice', _('ID_SELECTED_IMAGE_IS_LOGO'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
animEl : 'elId',
|
||||||
|
icon : Ext.MessageBox.QUESTION
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PMExt.notify('Notice', _('ID_YOU_ARE_NOT_CAN_SELECT_PHOTO'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PMExt.notify('Notice', _('ID_SELECT_AN_IMAGE'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tbar.add({
|
||||||
|
text : _('ID_RESTORE_DEFAULT'),
|
||||||
|
icon : '/images/icon-pmlogo-15x15.png',
|
||||||
|
handler : function() {
|
||||||
|
var records = datav.getSelectedRecords();
|
||||||
|
var myMask = new Ext.LoadMask(Ext.getBody(), {msg : _('ID_LOADING')});
|
||||||
|
myMask.show();
|
||||||
|
var imageName = 'name';
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url : '../adminProxy/replacementLogo',
|
||||||
|
method : 'post',
|
||||||
|
params : {nameFunction: 'restoreLogo', NAMELOGO:imageName},
|
||||||
|
success : function() {
|
||||||
|
window.parent.window.parent.location.href = window.parent.window.parent.window.location.href;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
tbar.add('-', {
|
||||||
|
text : _('ID_UPLOAD'),
|
||||||
|
iconCls : 'silk-add',
|
||||||
|
icon : '/images/import.gif',
|
||||||
|
handler : function(){
|
||||||
|
uploadWin.show();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
var datav = new Ext.DataView({
|
||||||
|
autoScroll : true,
|
||||||
|
store : store,
|
||||||
|
tpl : tpl,
|
||||||
|
autoHeight : false,
|
||||||
|
height : 800,
|
||||||
|
multiSelect : true,
|
||||||
|
overClass : 'x-view-over',
|
||||||
|
itemSelector: 'div.thumb-wrap',
|
||||||
|
emptyText : _('ID_NO_IMAGES_TO_DISPLAY'),
|
||||||
|
|
||||||
|
listeners : {
|
||||||
|
selectionchange : {
|
||||||
|
fn : function(dv,nodes){
|
||||||
|
var l = nodes.length;
|
||||||
|
var s = l != 1 ? 's' : '';
|
||||||
|
panelLeft.setTitle(_('PHOTO_GALLERY') + '(' + l + ' ' + _('ID_IMAGE') + s + ' ' + _('ID_SELECTED') + ')');
|
||||||
|
if (nodes.length > 0) {
|
||||||
|
Ext.getCmp('tbarAply').enable();
|
||||||
|
Ext.getCmp('tbarDelete').enable();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Ext.getCmp('tbarAply').disable();
|
||||||
|
Ext.getCmp('tbarDelete').disable();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ,
|
||||||
|
// click : {
|
||||||
|
// fn : function() {
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
var panelLeft = new Ext.Panel({
|
||||||
|
region : 'center',
|
||||||
|
id : 'images-view',
|
||||||
|
frame : true,
|
||||||
|
width : 520,
|
||||||
|
autoHeight : true,
|
||||||
|
layout : 'auto',
|
||||||
|
title : _('PHOTO_GALLERY') + '(0 ' + _('ID_IMAGES_SELECTED') + ')',
|
||||||
|
items : [tbar, datav]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
var panelRightTop = new Ext.FormPanel({
|
||||||
|
title : _('ID_UPLOAD_IMAGE'),
|
||||||
|
width : 270,
|
||||||
|
labelAlign : 'right',
|
||||||
|
fileUpload : true,
|
||||||
|
frame : true,
|
||||||
|
defaults : {
|
||||||
|
anchor : '90%',
|
||||||
|
allowBlank : false,
|
||||||
|
msgTarget : 'side'
|
||||||
|
},
|
||||||
|
items:
|
||||||
|
[
|
||||||
|
{
|
||||||
|
xtype : 'fileuploadfield',
|
||||||
|
emptyText : '',
|
||||||
|
fieldLabel : _('ID_IMAGE'),
|
||||||
|
buttonText : _('ID_SELECT_FILE'),
|
||||||
|
name : 'img'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
buttons :
|
||||||
|
[
|
||||||
|
{
|
||||||
|
text : _('ID_UPLOAD'),
|
||||||
|
handler : function() {
|
||||||
|
panelRightTop.getForm().submit({
|
||||||
|
url : '../adminProxy/uploadImage',
|
||||||
|
waitMsg : _('ID_LOADING'),
|
||||||
|
success : function(form, o) {
|
||||||
|
obj = Ext.util.JSON.decode(o.response.responseText);
|
||||||
|
if (obj.failed == '0' && obj.uploaded != '0') {
|
||||||
|
PMExt.notify(_('ID_SUCCESS'), _('ID_YOUR_IMAGE_HAS_BEEN_SUCCESSFULLY'));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var messageError = "";
|
||||||
|
if (obj.failed == "1") {
|
||||||
|
//| 1-> Fail in the type of the image
|
||||||
|
messageError = _('ID_ERROR_UPLOADING_IMAGE_TYPE');
|
||||||
|
}
|
||||||
|
else if(obj.failed == "2") {
|
||||||
|
//| 2-> Fail in the size of the image
|
||||||
|
messageError = _('ID_UPLOADING_IMAGE_WRONG_SIZE');
|
||||||
|
}
|
||||||
|
else if(obj.failed == "3") {
|
||||||
|
//| 3-> fail in de mime of the image
|
||||||
|
messageError = _('ID_ERROR_UPLOADING_IMAGE_TYPE');
|
||||||
|
}
|
||||||
|
|
||||||
|
PMExt.notify(_('ID_SUCCESS'), messageError);
|
||||||
|
}
|
||||||
|
panelRightTop.getForm().reset();
|
||||||
|
store.load();
|
||||||
|
uploadWin.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text : _('ID_CANCEL'),
|
||||||
|
handler : function() {
|
||||||
|
uploadWin.hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
uploadWin = new Ext.Window({
|
||||||
|
title : '',
|
||||||
|
id : 'uploadWin',
|
||||||
|
layout : 'fit',
|
||||||
|
width : 420,
|
||||||
|
height : 140,
|
||||||
|
modal : false,
|
||||||
|
autoScroll : true,
|
||||||
|
closeAction : 'hide',
|
||||||
|
maximizable : false,
|
||||||
|
items : [panelRightTop]
|
||||||
|
});
|
||||||
|
|
||||||
|
var panelRightBottom = new Ext.Panel({
|
||||||
|
region : 'east',
|
||||||
|
title : _('IMAGE_DETAIL'),
|
||||||
|
frame : true,
|
||||||
|
width : 200,
|
||||||
|
height : 255,
|
||||||
|
split : true,
|
||||||
|
collapsible : true,
|
||||||
|
collapseMode : 'mini',
|
||||||
|
margins : '0 0 0 0',
|
||||||
|
id : 'panelDetail',
|
||||||
|
tpl : tplDetail
|
||||||
|
});
|
||||||
|
|
||||||
|
var viewport = new Ext.Viewport({
|
||||||
|
layout : 'border',
|
||||||
|
autoScroll : false,
|
||||||
|
items : [ panelLeft ]
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user