123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- <?php
- /**
- * elFinder Plugin Abstract
- *
- * @package elfinder
- * @author Naoki Sawada
- * @license New BSD
- */
- class elFinderPlugin
- {
- /**
- * This plugin's options
- *
- * @var array
- */
- protected $opts = array();
- /**
- * Get current volume's options
- *
- * @param object $volume
- *
- * @return array options
- */
- protected function getCurrentOpts($volume)
- {
- $name = substr(get_class($this), 14); // remove "elFinderPlugin"
- $opts = $this->opts;
- if (is_object($volume)) {
- $volOpts = $volume->getOptionsPlugin($name);
- if (is_array($volOpts)) {
- $opts = array_merge($opts, $volOpts);
- }
- }
- return $opts;
- }
- /**
- * Is enabled with options
- *
- * @param array $opts
- * @param elFinder $elfinder
- *
- * @return boolean
- */
- protected function iaEnabled($opts, $elfinder = null)
- {
- if (!$opts['enable']) {
- return false;
- }
- // check post var 'contentSaveId' to disable this plugin
- if ($elfinder && !empty($opts['disableWithContentSaveId'])) {
- $session = $elfinder->getSession();
- $urlContentSaveIds = $session->get('urlContentSaveIds', array());
- if (!empty(elFinder::$currentArgs['contentSaveId']) && ($contentSaveId = elFinder::$currentArgs['contentSaveId'])) {
- if (!empty($urlContentSaveIds[$contentSaveId])) {
- $elfinder->removeUrlContentSaveId($contentSaveId);
- return false;
- }
- }
- }
- if (isset($opts['onDropWith']) && !is_null($opts['onDropWith'])) {
- // plugin disabled by default, enabled only if given key is pressed
- if (isset($_REQUEST['dropWith']) && $_REQUEST['dropWith']) {
- $onDropWith = $opts['onDropWith'];
- $action = (int)$_REQUEST['dropWith'];
- if (!is_array($onDropWith)) {
- $onDropWith = array($onDropWith);
- }
- foreach ($onDropWith as $key) {
- $key = (int)$key;
- if (($action & $key) === $key) {
- return true;
- }
- }
- }
- return false;
- }
- if (isset($opts['offDropWith']) && !is_null($opts['offDropWith']) && isset($_REQUEST['dropWith'])) {
- // plugin enabled by default, disabled only if given key is pressed
- $offDropWith = $opts['offDropWith'];
- $action = (int)$_REQUEST['dropWith'];
- if (!is_array($offDropWith)) {
- $offDropWith = array($offDropWith);
- }
- $res = true;
- foreach ($offDropWith as $key) {
- $key = (int)$key;
- if ($key === 0) {
- if ($action === 0) {
- $res = false;
- break;
- }
- } else {
- if (($action & $key) === $key) {
- $res = false;
- break;
- }
- }
- }
- if (!$res) {
- return false;
- }
- }
- return true;
- }
- }
|