示例#1
0
<?php

/**
 * @package	AcyMailing for Joomla!
 * @version	5.0.1
 * @author	acyba.com
 * @copyright	(C) 2009-2015 ACYBA S.A.R.L. All rights reserved.
 * @license	GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html
 */
defined('_JEXEC') or die('Restricted access');
?>
<div id="maincontent" style="border: 1px solid rgb(233, 233, 233);">
	<form method="post" name="adminForm" id="adminForm" enctype="multipart/form-data" style="margin:0px;">
		<div id="folderarea" style="box-shadow: 0px 4px 4px -4px rgba(0, 0, 0, 0.3);padding:15px;">
			<?php 
$folders = acymailing_generateArborescence($this->uploadFolders);
foreach ($folders as $folder) {
    $this->values[] = JHTML::_('select.option', $folder, $folder);
}
echo JHTML::_('select.genericlist', $this->values, 'currentFolder', 'class="inputbox chzn-done" size="1" onchange="submitbutton();" style="width:350px;" ', 'value', 'text', $this->uploadFolder) . '<br />';
?>
		</div>
		<div id="filesarea" style="width:100%;height:460px;overflow-x: hidden;text-align: center;">
			<?php 
if (file_exists($this->uploadPath)) {
    $files = JFolder::files($this->uploadPath);
}
$imageExtensions = array('jpg', 'jpeg', 'png', 'gif', 'ico', 'bmp');
if (in_array($this->map, array('thumb', 'readmore'))) {
    $allowedExtensions = $imageExtensions;
} else {
示例#2
0
    private function _displayHTML()
    {
        $app = JFactory::getApplication();
        $mediaFolders = acymailing_getFilesFolder('media', true);
        $receivedFolder = $app->getUserStateFromRequest(ACYMAILING_COMPONENT . ".acyeditor.selected_folder", 'selected_folder', '', 'string');
        $defaultFolder = reset($mediaFolders);
        if (!empty($receivedFolder)) {
            $allowed = false;
            foreach ($mediaFolders as $oneMedia) {
                if (preg_match('#^' . preg_quote(rtrim($oneMedia, '/')) . '[a-z_0-9\\-/]*$#i', $receivedFolder)) {
                    $allowed = true;
                    break;
                }
            }
            if ($allowed) {
                $defaultFolder = $receivedFolder;
            } else {
                acymailing_display('You are not allowed to access this folder', 'error');
            }
        }
        $uploadPath = JPath::clean(ACYMAILING_ROOT . trim(str_replace('/', DS, trim($defaultFolder)), DS));
        $uploadedImage = JRequest::getVar('uploadedImage', array(), 'files', 'array');
        if (!empty($uploadedImage)) {
            if (!empty($uploadedImage['name'])) {
                $this->imageName = acymailing_importFile($uploadedImage, $uploadPath, true);
                if (!empty($this->imageName)) {
                    $uploadMessage = 'success';
                } else {
                    $uploadMessage = 'error';
                }
            } else {
                $uploadMessage = 'error';
                $this->message = JText::_('BROWSE_FILE');
            }
        }
        $pictToDelete = JRequest::getString('pictName', '');
        if (!empty($pictToDelete) && file_exists($uploadPath . DS . $pictToDelete) && empty($uploadedImage)) {
            $db = JFactory::getDBO();
            $db->setQuery('SELECT mailid FROM #__acymailing_mail WHERE body LIKE \'%src="' . ACYMAILING_LIVE . $defaultFolder . '/' . $pictToDelete . '"%\'');
            $checkPictNews = acymailing_loadResultArray($db);
            $db->setQuery('SELECT tempid FROM #__acymailing_template WHERE body LIKE \'%src="' . ACYMAILING_LIVE . $defaultFolder . '/' . $pictToDelete . '"%\'');
            $checkPictTemplate = acymailing_loadResultArray($db);
            if (!empty($checkPictNews) || !empty($checkPictTemplate)) {
                foreach ($checkPictNews as $k => $oneNews) {
                    $checkPictNews[$k] = '<a href="" onclick="window.parent.document.location.href=\'' . acymailing_completeLink(($app->isAdmin() ? '' : 'front') . 'newsletter&task=edit&mailid=' . $oneNews) . '\'">' . $oneNews . '</a>';
                }
                if ($app->isAdmin()) {
                    foreach ($checkPictTemplate as $k => $oneTmpl) {
                        $checkPictTemplate[$k] = '<a href="" onclick="window.parent.document.location.href=\'' . acymailing_completeLink('template&task=edit&tempid=' . $oneTmpl) . '\'">' . $oneTmpl . '</a>';
                    }
                }
                acymailing_display(JText::sprintf('ACY_CANT_DELETE', !empty($checkPictNews) ? implode($checkPictNews, ', ') : '-', !empty($checkPictTemplate) ? implode($checkPictTemplate, ', ') : '-'), 'error');
            } else {
                if (JFile::delete($uploadPath . DS . $pictToDelete)) {
                    acymailing_display(JText::_('ACY_DELETED_PICT_SUCCESS'), 'success');
                } else {
                    acymailing_display(JText::_('ACY_DELETED_PICT_ERROR'), 'error');
                }
            }
        }
        ?>

		<div id="acy_media_browser">
			<!-- <br style="font-size:1px"/> -->
			<table id="acy_media_browser_table" style="height:420px;">
				<tr>
					<td style="width:65%; vertical-align:top;">
						<?php 
        $folders = acymailing_generateArborescence($mediaFolders);
        foreach ($folders as $folder) {
            $this->values[] = JHTML::_('select.option', $folder, $folder);
        }
        echo '<div style="display:inline-block;width:100%;">';
        echo '<form method="post" action="index.php?option=com_acymailing&ctrl=' . (JFactory::getApplication()->isAdmin() ? '' : 'front') . 'editor&task=createFolder" >';
        echo '<div id="acy_media_browser_path_dropdown" >';
        echo JHTML::_('select.genericlist', $this->values, 'acy_media_browser_files_path', 'class="inputbox chzn-done" size="1" onchange="changeFolder(this.value)" style="width:350px; min-height:19px;" ', 'value', 'text', $defaultFolder) . '<br />';
        echo '</div>';
        echo '<div id="acy_media_browser_global_create_folder" >';
        echo '<div id="acy_media_browser_create_folder" >';
        echo '<button id="create_folder_btn" class="btn" onclick="displayAppropriateField(this.id)" type="button" style="width:100%;" >' . JText::_('CREATE_FOLDER') . '</button>';
        echo '</div>';
        echo '<div id="acy_media_browser_area_create_folder" style=\'display:none;\'>';
        echo '<input id="subFolderName" name="subFolderName" type="text" placeholder="' . JText::_('FOLDER_NAME') . '" name="text" required="required" />';
        echo '<input type="submit" class="btn btn-primary" value="' . JText::_('ACY_APPLY') . '" />';
        echo '</div>';
        echo '</div>';
        echo JHTML::_('form.token');
        echo '</form>';
        echo '</div>';
        acymailing_createDir($uploadPath);
        $files = JFolder::files($uploadPath);
        echo '<ul id="acy_media_browser_list">';
        if (!empty($uploadMessage) && !empty($this->message)) {
            if ($uploadMessage == 'success') {
                acymailing_display($this->message);
            } elseif ($uploadMessage == 'error') {
                acymailing_display($this->message, 'error');
            }
        }
        $images = array();
        $imagesFound = false;
        foreach ($files as $k => $file) {
            if (strrpos($file, '.') === false) {
                continue;
            }
            $ext = strtolower(substr($file, strrpos($file, '.') + 1));
            $extensions = array('jpg', 'jpeg', 'png', 'gif');
            if (!in_array($ext, $extensions)) {
                continue;
            }
            $imagesFound = true;
            $images[] = $file;
            $imageSize = getimagesize($uploadPath . DS . $file);
            ?>
							<li class="acy_media_browser_images" id="acy_media_browser_images_<?php 
            echo $k;
            ?>
" onmouseover="toggleImageInfo(<?php 
            echo $k;
            ?>
, 'display')" onmouseout="toggleImageInfo(<?php 
            echo $k;
            ?>
, 'hide')">
								<img class="acy_media_browser_image" id="acy_media_browser_image_<?php 
            echo $k;
            ?>
" src="<?php 
            echo ACYMAILING_LIVE . $defaultFolder . '/' . $file;
            ?>
"/>
								<a href="#" onclick="displayImageFromUrl('<?php 
            echo ACYMAILING_LIVE . $defaultFolder . '/' . $file;
            ?>
', 'success', '<?php 
            echo $file;
            ?>
', '<?php 
            echo $imageSize[0];
            ?>
', '<?php 
            echo $imageSize[1];
            ?>
'); return false;">
									<div id="acy_media_browser_image_info_<?php 
            echo $k;
            ?>
"
										 style="box-shadow: 1px 1px 2px 1px rgba(0, 0, 0, 0.2); text-shadow:1px 1px 1px #ffffff; border:2px solid #fff; padding-top:40px; text-align:center; vertical-align:middle; color:#333; font-weight:bold; position:absolute; top:0px; left:0px; bottom:0px; right:0px; display:none; background-color: rgba(255,255,255,0.8);">
										<img class="acy_media_browser_delete" id="acy_media_browser_delete_<?php 
            echo $k;
            ?>
" src="<?php 
            echo ACYMAILING_LIVE . 'media' . DS . ACYMAILING_COMPONENT . DS . 'images' . DS . 'editor' . DS . 'delete.png';
            ?>
" onclick="confirmDeletePicture('<?php 
            echo $file;
            ?>
')"/>
										<?php 
            echo $file;
            ?>
<br/>
										<span class="acy_media_browser_image_size"><?php 
            echo $imageSize[0] . 'x' . $imageSize[1];
            ?>
 - <?php 
            echo round(filesize($uploadPath . DS . $file) * 0.0009765625, 2) . ' ko';
            ?>
<br/></span>
									</div>
								</a>
							</li>
							<?php 
        }
        if (!$imagesFound) {
            acymailing_display(JText::_('NO_FILE_FOUND'), 'warning');
        }
        ?>

						</ul>

						<!-- Here we give the possibility to import a file or specify and url -->
						<div id="acy_media_browser_actions">
							<div id="acy_media_browser_containing_block">
								<div id="acy_media_browser_buttons_block">
									<button type="button" class="btn" id="upload_image_btn" onclick="displayAppropriateField(this.id)"> <?php 
        echo JText::_('UPLOAD_NEW_IMAGE');
        ?>
</button>
									<?php 
        echo JText::_('ACY_OR');
        ?>
									<button type="button" class="btn" id="import_from_url_btn" onclick="displayAppropriateField(this.id)"> <?php 
        echo JText::_('INSERT_IMAGE_FROM_URL');
        ?>
 </button>
								</div>
								<div id="acy_media_browser_hidden_elements">
									<div id="upload_image" style="position: relative; padding-top:5px;	display:none; text-align: center;">
										<form method="post" name="adminForm" id="adminForm" enctype="multipart/form-data" style="margin:0px; margin-top:3px;">
											<input type="file" style="width:auto;" name="uploadedImage"/><br/>
											<input type="hidden" name="task" value="browse"/>
											<input type="hidden" name="selected_folder" value="<?php 
        echo htmlspecialchars($defaultFolder, ENT_COMPAT, 'UTF-8');
        ?>
"/>
											<?php 
        echo JHTML::_('form.token');
        ?>
										</form>
										<button class="btn btn-primary" type="button" onclick="submitbutton();"> <?php 
        echo JText::_('IMPORT');
        ?>
 </button>
										<span style="position:absolute; top:5px; left:5px;" id="acy_back_from_upload" onclick="displayAppropriateField(this.id)"><a href="javascript:void(0);">&#8592 <?php 
        echo JText::_('MEDIA_BACK');
        ?>
</a></span>
									</div>
									<div id="import_from_url" style="padding-top:9px; position:relative; ">
										<input type="text" id="acy_media_browser_url_input" class="inputbox" oninput="testImage(this.value, displayImageFromUrl)" value="http://"/>
										<?php 
        ?>
										<div id="acy_media_browser_insert_message"></div>
										<span style="position:absolute; top:5px; left:5px;" id="acy_back_from_url" onclick="displayAppropriateField(this.id)"><a href="javascript:void(0);">&#8592 <?php 
        echo JText::_('MEDIA_BACK');
        ?>
</a></span>
									</div>
								</div>
							</div>
						</div>
					</td>
					<!-- IMAGE INFORMATION -->
					<td id="acy_media_browser_image_details_row">
						<div id="acy_media_browser_image_details">
							<div id="acy_media_browser_image_selected" style=" max-width:230px; max-height:190px; display:none;	margin:auto; margin-bottom:10px;"></div>
							<div id="acy_media_browser_image_selected_info" style=""></div>
							<div id="acy_media_browser_image_selected_details">
								<label for="acy_media_browser_image_title" style="float:left;"><?php 
        echo JText::_('ACY_TITLE');
        ?>
</label>
								<input type="text" id="acy_media_browser_image_title" class="inputbox" style="width:100%" value=""/>
								<?php 
        $imageZone = JRequest::getVar('image_zone', array(), '', 'array');
        if (!empty($imageZone)) {
            ?>
									<label for="acy_media_browser_image_target"><?php 
            echo JText::_('ACY_LINK');
            ?>
</label>
									<input type="text" id="acy_media_browser_image_target" placeholder="<?php 
            echo ACYMAILING_LIVE;
            ?>
..." class="inputbox" style="width:100%" value=""/>
								<?php 
        } else {
            ?>
									<label for="acy_media_browser_image_width" style="display:inline;"><?php 
            echo JText::_('CAPTCHA_WIDTH');
            ?>
</label>    <input type="text" id="acy_media_browser_image_width" style="width:23%;" value="" oninput="calculateSize(0, this.value)"/>
									<br/><label for="acy_media_browser_image_height" style="display:inline;"><?php 
            echo JText::_('CAPTCHA_HEIGHT');
            ?>
</label>    <input type="text" id="acy_media_browser_image_height" style="width:22%;" value="" oninput="calculateSize(this.value, 0)"/>
									<br/><label for="acy_media_browser_image_align" style="display:inline;"><?php 
            echo JText::_('ALIGNMENT');
            ?>
</label>
									<select id="acy_media_browser_image_align" class="chzn-done" style="width:50%">
										<option value=""><?php 
            echo JText::_('NOT_SET');
            ?>
</option>
										<option value="left"><?php 
            echo JText::_('ACY_LEFT');
            ?>
</option>
										<option value="right"><?php 
            echo JText::_('ACY_RIGHT');
            ?>
</option>
									</select><br/>
									<label for="acy_media_browser_image_margin" style="display:inline;"><?php 
            echo JText::_('ACY_MARGIN');
            ?>
</label>    <input type="text" style="width:23%;" id="acy_media_browser_image_margin" value=""/><br/>
									<label for="acy_media_browser_image_border" style="display:inline;"><?php 
            echo JText::_('ACY_BORDER');
            ?>
</label>    <input type="text" style="width:23%;" id="acy_media_browser_image_border" value=""/><br/>
									<label for="acy_media_browser_image_class" style="display:inline;"><?php 
            echo JText::_('ACY_CLASS');
            ?>
</label>    <input type="text" style="width:50%;" id="acy_media_browser_image_class" value=""/>
									<input type="hidden" id="acy_media_browser_image_linkhref" value=""/>
								<?php 
        }
        ?>
							</div>
							<button class="btn btn-primary" type="button" onclick="validateImage();window.parent.SqueezeBox.close();" style=" position:absolute; bottom:6px; right:6px; "><?php 
        echo JText::_('INSERT');
        ?>
 </button>
						</div>
					</td>
				</tr>
			</table>

			<div class="confirmBoxMM" id="confirmBoxMM" style="display: none;">
				<div id="acy_popup_content">
					<span class="confirmTxtMM" id="confirmTxtMM"></span>
					<button class="acy_popup_cancel_button" id="confirmCancelMM" onclick="document.getElementById('confirmBoxMM').style.display='none';">
						<?php 
        echo JText::_('ACY_CANCEL');
        ?>
					</button>
					<button class="acy_popup_delete_button" id="confirmOkMM">
						<?php 
        echo JText::_('ACY_DELETE');
        ?>
					</button>
				</div>
			</div>


		</div>
		<?php 
        $imageZone = JRequest::getVar('image_zone', array(), '', 'array');
        if ($imageZone) {
            echo '<script>checkSelected(true);</script>';
        } else {
            echo '<script>checkSelected();</script>';
        }
        if (isset($uploadMessage) && $uploadMessage == 'success' && file_exists(ACYMAILING_ROOT . rtrim($defaultFolder, '/') . '/' . $this->imageName)) {
            $imageSize = getimagesize(ACYMAILING_LIVE . rtrim($defaultFolder, '/') . '/' . $this->imageName);
            echo '<script> displayImageFromUrl(\'' . ACYMAILING_LIVE . rtrim($defaultFolder, '/') . '/' . $this->imageName . '\',\'success\', \'' . $this->imageName . '\',' . $imageSize[0] . ',' . $imageSize[1] . ');</script>';
        }
    }