From d94a4de28f92a9beb1343b65c360e3f09386ecca Mon Sep 17 00:00:00 2001 From: Stephane Date: Fri, 1 Apr 2016 19:32:59 +0200 Subject: [PATCH] remove --- core/lib/js.src/.htaccess | 4 - core/lib/js.src/_JShrink.php | 587 ------------------------------- core/lib/js.src/_minifier.php | 37 -- core/lib/js.src/functions.js | 89 ----- core/lib/js.src/mediasManager.js | 120 ------- core/lib/js.src/multifiles.js | 92 ----- core/lib/js.src/visual.js | 44 --- 7 files changed, 973 deletions(-) delete mode 100644 core/lib/js.src/.htaccess delete mode 100644 core/lib/js.src/_JShrink.php delete mode 100644 core/lib/js.src/_minifier.php delete mode 100644 core/lib/js.src/functions.js delete mode 100644 core/lib/js.src/mediasManager.js delete mode 100644 core/lib/js.src/multifiles.js delete mode 100644 core/lib/js.src/visual.js diff --git a/core/lib/js.src/.htaccess b/core/lib/js.src/.htaccess deleted file mode 100644 index de12c70e4..000000000 --- a/core/lib/js.src/.htaccess +++ /dev/null @@ -1,4 +0,0 @@ - -Order allow,deny -Deny from all - diff --git a/core/lib/js.src/_JShrink.php b/core/lib/js.src/_JShrink.php deleted file mode 100644 index 98a95f246..000000000 --- a/core/lib/js.src/_JShrink.php +++ /dev/null @@ -1,587 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -/** - * JShrink - * - * - * @package JShrink - * @author Robert Hafner - */ - -namespace JShrink; - -/** - * Minifier - * - * Usage - Minifier::minify($js); - * Usage - Minifier::minify($js, $options); - * Usage - Minifier::minify($js, array('flaggedComments' => false)); - * - * @package JShrink - * @author Robert Hafner - * @license http://www.opensource.org/licenses/bsd-license.php BSD License - */ -class Minifier -{ - /** - * The input javascript to be minified. - * - * @var string - */ - protected $input; - - /** - * The location of the character (in the input string) that is next to be - * processed. - * - * @var int - */ - protected $index = 0; - - /** - * The first of the characters currently being looked at. - * - * @var string - */ - protected $a = ''; - - /** - * The next character being looked at (after a); - * - * @var string - */ - protected $b = ''; - - /** - * This character is only active when certain look ahead actions take place. - * - * @var string - */ - protected $c; - - /** - * Contains the options for the current minification process. - * - * @var array - */ - protected $options; - - /** - * Contains the default options for minification. This array is merged with - * the one passed in by the user to create the request specific set of - * options (stored in the $options attribute). - * - * @var array - */ - protected static $defaultOptions = array('flaggedComments' => true); - - /** - * Contains lock ids which are used to replace certain code patterns and - * prevent them from being minified - * - * @var array - */ - protected $locks = array(); - - /** - * Takes a string containing javascript and removes unneeded characters in - * order to shrink the code without altering it's functionality. - * - * @param string $js The raw javascript to be minified - * @param array $options Various runtime options in an associative array - * @throws \Exception - * @return bool|string - */ - public static function minify($js, $options = array()) - { - try { - ob_start(); - - $jshrink = new Minifier(); - $js = $jshrink->lock($js); - $jshrink->minifyDirectToOutput($js, $options); - - // Sometimes there's a leading new line, so we trim that out here. - $js = ltrim(ob_get_clean()); - $js = $jshrink->unlock($js); - unset($jshrink); - - return $js; - - } catch (\Exception $e) { - - if (isset($jshrink)) { - // Since the breakdownScript function probably wasn't finished - // we clean it out before discarding it. - $jshrink->clean(); - unset($jshrink); - } - - // without this call things get weird, with partially outputted js. - ob_end_clean(); - throw $e; - } - } - - /** - * Processes a javascript string and outputs only the required characters, - * stripping out all unneeded characters. - * - * @param string $js The raw javascript to be minified - * @param array $options Various runtime options in an associative array - */ - protected function minifyDirectToOutput($js, $options) - { - $this->initialize($js, $options); - $this->loop(); - $this->clean(); - } - - /** - * Initializes internal variables, normalizes new lines, - * - * @param string $js The raw javascript to be minified - * @param array $options Various runtime options in an associative array - */ - protected function initialize($js, $options) - { - $this->options = array_merge(static::$defaultOptions, $options); - $js = str_replace("\r\n", "\n", $js); - $js = str_replace('/**/', '', $js); - $this->input = str_replace("\r", "\n", $js); - - // We add a newline to the end of the script to make it easier to deal - // with comments at the bottom of the script- this prevents the unclosed - // comment error that can otherwise occur. - $this->input .= PHP_EOL; - - // Populate "a" with a new line, "b" with the first character, before - // entering the loop - $this->a = "\n"; - $this->b = $this->getReal(); - } - - /** - * The primary action occurs here. This function loops through the input string, - * outputting anything that's relevant and discarding anything that is not. - */ - protected function loop() - { - while ($this->a !== false && !is_null($this->a) && $this->a !== '') { - - switch ($this->a) { - // new lines - case "\n": - // if the next line is something that can't stand alone preserve the newline - if (strpos('(-+{[@', $this->b) !== false) { - echo $this->a; - $this->saveString(); - break; - } - - // if B is a space we skip the rest of the switch block and go down to the - // string/regex check below, resetting $this->b with getReal - if($this->b === ' ') - break; - - // otherwise we treat the newline like a space - - case ' ': - if(static::isAlphaNumeric($this->b)) - echo $this->a; - - $this->saveString(); - break; - - default: - switch ($this->b) { - case "\n": - if (strpos('}])+-"\'', $this->a) !== false) { - echo $this->a; - $this->saveString(); - break; - } else { - if (static::isAlphaNumeric($this->a)) { - echo $this->a; - $this->saveString(); - } - } - break; - - case ' ': - if(!static::isAlphaNumeric($this->a)) - break; - - default: - // check for some regex that breaks stuff - if ($this->a === '/' && ($this->b === '\'' || $this->b === '"')) { - $this->saveRegex(); - continue; - } - - echo $this->a; - $this->saveString(); - break; - } - } - - // do reg check of doom - $this->b = $this->getReal(); - - if(($this->b == '/' && strpos('(,=:[!&|?', $this->a) !== false)) - $this->saveRegex(); - } - } - - /** - * Resets attributes that do not need to be stored between requests so that - * the next request is ready to go. Another reason for this is to make sure - * the variables are cleared and are not taking up memory. - */ - protected function clean() - { - unset($this->input); - $this->index = 0; - $this->a = $this->b = ''; - unset($this->c); - unset($this->options); - } - - /** - * Returns the next string for processing based off of the current index. - * - * @return string - */ - protected function getChar() - { - // Check to see if we had anything in the look ahead buffer and use that. - if (isset($this->c)) { - $char = $this->c; - unset($this->c); - - // Otherwise we start pulling from the input. - } else { - $char = substr($this->input, $this->index, 1); - - // If the next character doesn't exist return false. - if (isset($char) && $char === false) { - return false; - } - - // Otherwise increment the pointer and use this char. - $this->index++; - } - - // Normalize all whitespace except for the newline character into a - // standard space. - if($char !== "\n" && ord($char) < 32) - - return ' '; - - return $char; - } - - /** - * This function gets the next "real" character. It is essentially a wrapper - * around the getChar function that skips comments. This has significant - * performance benefits as the skipping is done using native functions (ie, - * c code) rather than in script php. - * - * - * @return string Next 'real' character to be processed. - * @throws \RuntimeException - */ - protected function getReal() - { - $startIndex = $this->index; - $char = $this->getChar(); - - // Check to see if we're potentially in a comment - if ($char !== '/') { - return $char; - } - - $this->c = $this->getChar(); - - if ($this->c === '/') { - return $this->processOneLineComments($startIndex); - - } elseif ($this->c === '*') { - return $this->processMultiLineComments($startIndex); - } - - return $char; - } - - /** - * Removed one line comments, with the exception of some very specific types of - * conditional comments. - * - * @param int $startIndex The index point where "getReal" function started - * @return string - */ - protected function processOneLineComments($startIndex) - { - $thirdCommentString = substr($this->input, $this->index, 1); - - // kill rest of line - $this->getNext("\n"); - - if ($thirdCommentString == '@') { - $endPoint = $this->index - $startIndex; - unset($this->c); - $char = "\n" . substr($this->input, $startIndex, $endPoint); - } else { - // first one is contents of $this->c - $this->getChar(); - $char = $this->getChar(); - } - - return $char; - } - - /** - * Skips multiline comments where appropriate, and includes them where needed. - * Conditional comments and "license" style blocks are preserved. - * - * @param int $startIndex The index point where "getReal" function started - * @return bool|string False if there's no character - * @throws \RuntimeException Unclosed comments will throw an error - */ - protected function processMultiLineComments($startIndex) - { - $this->getChar(); // current C - $thirdCommentString = $this->getChar(); - - // kill everything up to the next */ if it's there - if ($this->getNext('*/')) { - - $this->getChar(); // get * - $this->getChar(); // get / - $char = $this->getChar(); // get next real character - - // Now we reinsert conditional comments and YUI-style licensing comments - if (($this->options['flaggedComments'] && $thirdCommentString === '!') - || ($thirdCommentString === '@') ) { - - // If conditional comments or flagged comments are not the first thing in the script - // we need to echo a and fill it with a space before moving on. - if ($startIndex > 0) { - echo $this->a; - $this->a = " "; - - // If the comment started on a new line we let it stay on the new line - if ($this->input[($startIndex - 1)] === "\n") { - echo "\n"; - } - } - - $endPoint = ($this->index - 1) - $startIndex; - echo substr($this->input, $startIndex, $endPoint); - - return $char; - } - - } else { - $char = false; - } - - if($char === false) - throw new \RuntimeException('Unclosed multiline comment at position: ' . ($this->index - 2)); - - // if we're here c is part of the comment and therefore tossed - if(isset($this->c)) - unset($this->c); - - return $char; - } - - /** - * Pushes the index ahead to the next instance of the supplied string. If it - * is found the first character of the string is returned and the index is set - * to it's position. - * - * @param string $string - * @return string|false Returns the first character of the string or false. - */ - protected function getNext($string) - { - // Find the next occurrence of "string" after the current position. - $pos = strpos($this->input, $string, $this->index); - - // If it's not there return false. - if($pos === false) - - return false; - - // Adjust position of index to jump ahead to the asked for string - $this->index = $pos; - - // Return the first character of that string. - return substr($this->input, $this->index, 1); - } - - /** - * When a javascript string is detected this function crawls for the end of - * it and saves the whole string. - * - * @throws \RuntimeException Unclosed strings will throw an error - */ - protected function saveString() - { - $startpos = $this->index; - - // saveString is always called after a gets cleared, so we push b into - // that spot. - $this->a = $this->b; - - // If this isn't a string we don't need to do anything. - if ($this->a !== "'" && $this->a !== '"') { - return; - } - - // String type is the quote used, " or ' - $stringType = $this->a; - - // Echo out that starting quote - echo $this->a; - - // Loop until the string is done - while (true) { - - // Grab the very next character and load it into a - $this->a = $this->getChar(); - - switch ($this->a) { - - // If the string opener (single or double quote) is used - // output it and break out of the while loop- - // The string is finished! - case $stringType: - break 2; - - // New lines in strings without line delimiters are bad- actual - // new lines will be represented by the string \n and not the actual - // character, so those will be treated just fine using the switch - // block below. - case "\n": - throw new \RuntimeException('Unclosed string at position: ' . $startpos ); - break; - - // Escaped characters get picked up here. If it's an escaped new line it's not really needed - case '\\': - - // a is a slash. We want to keep it, and the next character, - // unless it's a new line. New lines as actual strings will be - // preserved, but escaped new lines should be reduced. - $this->b = $this->getChar(); - - // If b is a new line we discard a and b and restart the loop. - if ($this->b === "\n") { - break; - } - - // echo out the escaped character and restart the loop. - echo $this->a . $this->b; - break; - - - // Since we're not dealing with any special cases we simply - // output the character and continue our loop. - default: - echo $this->a; - } - } - } - - /** - * When a regular expression is detected this function crawls for the end of - * it and saves the whole regex. - * - * @throws \RuntimeException Unclosed regex will throw an error - */ - protected function saveRegex() - { - echo $this->a . $this->b; - - while (($this->a = $this->getChar()) !== false) { - if($this->a === '/') - break; - - if ($this->a === '\\') { - echo $this->a; - $this->a = $this->getChar(); - } - - if($this->a === "\n") - throw new \RuntimeException('Unclosed regex pattern at position: ' . $this->index); - - echo $this->a; - } - $this->b = $this->getReal(); - } - - /** - * Checks to see if a character is alphanumeric. - * - * @param string $char Just one character - * @return bool - */ - protected static function isAlphaNumeric($char) - { - return preg_match('/^[\w\$\pL]$/', $char) === 1 || $char == '/'; - } - - /** - * Replace patterns in the given string and store the replacement - * - * @param string $js The string to lock - * @return bool - */ - protected function lock($js) - { - /* lock things like "asd" + ++x; */ - $lock = '"LOCK---' . crc32(time()) . '"'; - - $matches = array(); - preg_match('/([+-])(\s+)([+-])/S', $js, $matches); - if (empty($matches)) { - return $js; - } - - $this->locks[$lock] = $matches[2]; - - $js = preg_replace('/([+-])\s+([+-])/S', "$1{$lock}$2", $js); - /* -- */ - - return $js; - } - - /** - * Replace "locks" with the original characters - * - * @param string $js The string to unlock - * @return bool - */ - protected function unlock($js) - { - if (empty($this->locks)) { - return $js; - } - - foreach ($this->locks as $lock => $replacement) { - $js = str_replace($lock, $replacement, $js); - } - - return $js; - } - -} \ No newline at end of file diff --git a/core/lib/js.src/_minifier.php b/core/lib/js.src/_minifier.php deleted file mode 100644 index 5db874d48..000000000 --- a/core/lib/js.src/_minifier.php +++ /dev/null @@ -1,37 +0,0 @@ -'; - -foreach(glob("*.js") as $filename) { - $js .= file_get_contents($filename); - $filesize+=filesize($filename); - echo $filename.' : '.formatFilesize(filesize($filename)).'
'; -} - -// Basic (default) usage. -//$minifiedCode = \JShrink\Minifier::minify($js); - -// Disable YUI style comment preservation. -$minifiedCode = \JShrink\Minifier::minify($js, array('flaggedComments' => false)); - -file_put_contents(dirname(__FILE__).'/../pluxml.min.js', $minifiedCode); - -echo '=====
'; -echo 'Minifier : '.formatFilesize($filesize).' to '.formatFilesize(strlen($minifiedCode)); -echo ''; -?> \ No newline at end of file diff --git a/core/lib/js.src/functions.js b/core/lib/js.src/functions.js deleted file mode 100644 index fc10dc5cc..000000000 --- a/core/lib/js.src/functions.js +++ /dev/null @@ -1,89 +0,0 @@ -function dateNow(field,delta) { - var d = new Date(); - // convert to msec, add local time zone offset - // get UTC time in msec - var utc = d.getTime() + (d.getTimezoneOffset() * 60000); - // create new Date object for different city using supplied offset - var now = new Date(utc + (1000*delta)); - var y = now.getFullYear(); - var m = now.getMonth(); - var d = now.getDate(); - var h = now.getHours(); - var i = now.getMinutes(); - if(i <= 9){i = '0'+i;} - if(h <= 9){h = '0'+h;} - if(d <= 9){d = '0'+d;} - m = m+1; - if(m <= 9){m = '0'+m;} - document.getElementsByName(field+'_day')['0'].value = d; - document.getElementsByName(field+'_time')['0'].value = h+":"+i; - document.getElementsByName(field+'_month')['0'].value = m; - document.getElementsByName(field+'_year')['0'].value = y; -} -function answerCom(where,id,author) { - document.getElementById('id_parent').value=id; - //addText(where, '@'+author+' :\n'); - scrollTo(0,0); -} -function addText(where, open, close) { - close = close==undefined ? '' : close; - var formfield = document.getElementsByName(where)['0']; - // IE support - if (document.selection && document.selection.createRange) { - formfield.focus(); - sel = document.selection.createRange(); - sel.text = open + sel.text + close; - formfield.focus(); - } - // Moz support - else if (formfield.selectionStart || formfield.selectionStart == '0') { - var startPos = formfield.selectionStart; - var endPos = formfield.selectionEnd; - var restoreTop = formfield.scrollTop; - formfield.value = formfield.value.substring(0, startPos) + open + formfield.value.substring(startPos, endPos) + close + formfield.value.substring(endPos, formfield.value.length); - formfield.selectionStart = formfield.selectionEnd = endPos + open.length + close.length; - if (restoreTop > 0) formfield.scrollTop = restoreTop; - formfield.focus(); - } - // Fallback support for other browsers - else { - formfield.value += open + close; - formfield.focus(); - } - return; -} -function checkAll(inputs, field) { - for(var i = 0; i < inputs.elements.length; i++) { - if(inputs[i].type == "checkbox" && inputs[i].name==field) { - inputs[i].checked = !inputs[i].checked ; - } - } -} -function confirmAction(inputs, selfield, selvalue, field, msg) { - if(document.getElementById(selfield).value==selvalue) { - var action = false; - for(var i = 0; i < inputs.elements.length; i++) { - if(inputs[i].type == "checkbox" && inputs[i].name==field) { - if(inputs[i].checked) { action=true } - } - } - return (action ? confirm(msg) : false); - } -} -function toggleDiv(divId,togglerId,on,off){ - var toggler = document.getElementById(togglerId); - if(document.getElementById(divId).style.display == 'none') { - document.getElementById(divId).style.display = 'block'; - toggler.innerHTML=off; - } else { - document.getElementById(divId).style.display = 'none'; - toggler.innerHTML=on; - } -} -function insTag(where, tag) { - var formfield = document.getElementsByName(where)['0']; - if(formfield.value=='') - formfield.value=tag; - else - formfield.value = formfield.value+', '+tag; -} \ No newline at end of file diff --git a/core/lib/js.src/mediasManager.js b/core/lib/js.src/mediasManager.js deleted file mode 100644 index 8449bc686..000000000 --- a/core/lib/js.src/mediasManager.js +++ /dev/null @@ -1,120 +0,0 @@ -var popupCss = '\ -.aside {\ - display: none;\ -}\ -.section .action-bar {\ - left: 0;\ - right: 0;\ - margin-right: 0;\ - margin-left: 0;\ -}\ -@media (min-width: 768px) {\ - .col.lrg-offset-2 {\ - margin-left: 10px;\ - margin-right: 20px;\ - width: 100%;\ - }\ -}'; - -var mediasManager = { - - addText: function(cibleId, txt, replace) { - var txt = txt.replace(this.opts.racine, ''); - var cible = window.opener.document.getElementById(cibleId); - if(cible) { - cible.focus(); - if(replace) { - cible.value = txt; - } else { - if(window.opener.document.selection && window.opener.document.selection.createRange) { - sel = window.opener.document.selection.createRange(); - sel.text = sel.text + txt; - } - // Moz support - else if(cible.selectionStart || cible.selectionStart == '0') { - var startPos = cible.selectionStart; - var endPos = cible.selectionEnd; - var restoreTop = cible.scrollTop; - cible.value = cible.value.substring(0, startPos) + txt + cible.value.substring(startPos, endPos) + cible.value.substring(endPos, cible.value.length); - cible.selectionStart = cible.selectionEnd = endPos + txt.length; - if (restoreTop > 0) cible.scrollTop = restoreTop; - } - // Fallback support for other browsers - else { - cible.value += txt; - } - } - cible.focus(); - } else { - console.log('Element #'+cibleId+' introuvable - ' + txt); - } - return false; - }, - - updImg: function(cibleId, imgPath) { - var id = window.opener.document.getElementById(cibleId); - if(id) { - id.innerHTML = ''; - } - }, - - construct: function(options) { - - this.opts = options; - - if(window.name == this.opts.windowName) { - - // ajout des règles CSS pour masquer les parties inutiles du gestionnaire de médias - var textNode = document.createTextNode(popupCss); - var style = document.createElement('style'); - style.setAttribute('type', 'text/css'); - style.appendChild(textNode); - document.getElementsByTagName('head')[0].appendChild(style); - - // ajout des évenements onclick pour récuper le lien de l'image - var tbody = document.querySelector('#medias-table tbody'); - if (tbody) { - tbody.addEventListener('click', function (event) { - var target = event.target; - if (target.tagName == 'A') { - event.preventDefault(); - var launcher = window.opener.mediasManager; - var replace = launcher.replace; - var cibleId = launcher.cibleId; - var fallback = launcher.fallback; - var fn = window[fallback]; - window.close(); - if (typeof fn === "function") { - var fnparams = [cibleId, target.href, replace]; - fn.apply(null, fnparams); - } else { - mediasManager.addText(cibleId, target.href, replace); - mediasManager.updImg(cibleId+'_img', target.href); - } - cibleId.focus(); - } - }); - } - } - }, - - openPopup: function(cibleId, replace, fallback) { - var replace = replace==undefined ? false : true; - var width = this.opts.width ? this.opts.width : 950; - var height = this.opts.height ? this.opts.height : 580; - var left = parseInt((screen.width - width) / 2); - var top = parseInt((screen.height - height) / 2); - var options = 'directories=no, toolbar=no, menubar=no, location=no, resizable=yes, scrollbars=yes, width='+width+' , height='+height+', left='+left+', top='+top; - this.cibleId=cibleId; - this.replace=replace; - this.fallback=fallback; - popup = window.open(unescape(this.opts.racine + this.opts.urlManager), this.opts.windowName, options); - if(popup) { - popup.focus(); - } else { - alert('Ouverture de la fenêtre bloquée par un anti-popup!'); - } - return false; - } - -} \ No newline at end of file diff --git a/core/lib/js.src/multifiles.js b/core/lib/js.src/multifiles.js deleted file mode 100644 index 1bdd086c5..000000000 --- a/core/lib/js.src/multifiles.js +++ /dev/null @@ -1,92 +0,0 @@ -var nfiles = 0; -var MultiSelector = { - - init: function() { - this.count = 0; - this.files_list = document.getElementById("files_list"); - this.selector = document.getElementById("selector_0"); - if(this.selector) this.selector.addEventListener("change", this, false); - }, - - handleEvent: function(e) { - switch(e.type) { - case "change": - e.stopPropagation(); - e.preventDefault(); - this.handleChange(); - break; - } - }, - - handleChange: function() { - this.selector = document.getElementById("selector_" + this.count++); - this.selector.style.position = 'absolute'; - this.selector.style.left = '-1000px'; - var new_element = document.createElement('input'); - new_element.type = "file"; - new_element.multiple = "multiple"; - new_element.id = "selector_"+this.count; - new_element.name = "selector_"+this.count+"[]"; - new_element.addEventListener("change", this, false); - this.selector.parentNode.insertBefore(new_element, this.selector) - for(i=0;i