First commit
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
user_data/*
|
||||||
|
developer/cache/*
|
7
.htaccess
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
<IfModule mod_rewrite.c>
|
||||||
|
RewriteEngine On
|
||||||
|
RewriteRule ^index\.php$ - [L]
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule . index.php [L]
|
||||||
|
</IfModule>
|
36
3rdparty/RestServer/RestException.php
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?php
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) 2009 Jacob Wright
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
namespace Jacwright\RestServer;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
|
||||||
|
class RestException extends Exception
|
||||||
|
{
|
||||||
|
public function __construct($code, $message = null)
|
||||||
|
{
|
||||||
|
parent::__construct($message, $code);
|
||||||
|
}
|
||||||
|
}
|
46
3rdparty/RestServer/RestFormat.php
vendored
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) 2009 Jacob Wright
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
namespace Jacwright\RestServer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constants used in RestServer Class.
|
||||||
|
*/
|
||||||
|
class RestFormat
|
||||||
|
{
|
||||||
|
const PLAIN = 'text/plain';
|
||||||
|
const HTML = 'text/html';
|
||||||
|
const JSON = 'application/json';
|
||||||
|
const XML = 'application/xml';
|
||||||
|
|
||||||
|
/** @var array */
|
||||||
|
static public $formats = array(
|
||||||
|
'plain' => RestFormat::PLAIN,
|
||||||
|
'txt' => RestFormat::PLAIN,
|
||||||
|
'html' => RestFormat::HTML,
|
||||||
|
'json' => RestFormat::JSON,
|
||||||
|
'xml' => RestFormat::XML,
|
||||||
|
);
|
||||||
|
}
|
526
3rdparty/RestServer/RestServer.php
vendored
Executable file
@ -0,0 +1,526 @@
|
|||||||
|
<?php
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Copyright (c) 2009 Jacob Wright
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
// of this software and associated documentation files (the "Software"), to deal
|
||||||
|
// in the Software without restriction, including without limitation the rights
|
||||||
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
// copies of the Software, and to permit persons to whom the Software is
|
||||||
|
// furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
// THE SOFTWARE.
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
namespace Jacwright\RestServer;
|
||||||
|
|
||||||
|
require(__DIR__ . '/RestFormat.php');
|
||||||
|
require(__DIR__ . '/RestException.php');
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use ReflectionClass;
|
||||||
|
use ReflectionObject;
|
||||||
|
use ReflectionMethod;
|
||||||
|
use DOMDocument;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Description of RestServer
|
||||||
|
*
|
||||||
|
* @author jacob
|
||||||
|
*/
|
||||||
|
class RestServer
|
||||||
|
{
|
||||||
|
//@todo add type hint
|
||||||
|
public $url;
|
||||||
|
public $method;
|
||||||
|
public $params;
|
||||||
|
public $format;
|
||||||
|
public $cacheDir = __DIR__;
|
||||||
|
public $realm;
|
||||||
|
public $mode;
|
||||||
|
public $root;
|
||||||
|
public $rootPath;
|
||||||
|
public $jsonAssoc = false;
|
||||||
|
|
||||||
|
protected $map = array();
|
||||||
|
protected $errorClasses = array();
|
||||||
|
protected $cached;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The constructor.
|
||||||
|
*
|
||||||
|
* @param string $mode The mode, either debug or production
|
||||||
|
*/
|
||||||
|
public function __construct($mode = 'debug', $realm = 'Rest Server')
|
||||||
|
{
|
||||||
|
$this->mode = $mode;
|
||||||
|
$this->realm = $realm;
|
||||||
|
// Set the root
|
||||||
|
$dir = str_replace('\\', '/', dirname(str_replace($_SERVER['DOCUMENT_ROOT'], '', $_SERVER['SCRIPT_FILENAME'])));
|
||||||
|
if ($dir == '.') {
|
||||||
|
$dir = '/';
|
||||||
|
} else {
|
||||||
|
// add a slash at the beginning and end
|
||||||
|
if (substr($dir, -1) != '/') $dir .= '/';
|
||||||
|
if (substr($dir, 0, 1) != '/') $dir = '/' . $dir;
|
||||||
|
}
|
||||||
|
$this->root = $dir;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function __destruct()
|
||||||
|
{
|
||||||
|
if ($this->mode == 'production' && !$this->cached) {
|
||||||
|
if (function_exists('apc_store')) {
|
||||||
|
apc_store('urlMap', $this->map);
|
||||||
|
} else {
|
||||||
|
file_put_contents($this->cacheDir . '/urlMap.cache', serialize($this->map));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function refreshCache()
|
||||||
|
{
|
||||||
|
$this->map = array();
|
||||||
|
$this->cached = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function unauthorized($ask = false)
|
||||||
|
{
|
||||||
|
if ($ask) {
|
||||||
|
header("WWW-Authenticate: Basic realm=\"$this->realm\"");
|
||||||
|
}
|
||||||
|
throw new RestException(401, "You are not authorized to access this resource.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
$this->url = $this->getPath();
|
||||||
|
$this->method = $this->getMethod();
|
||||||
|
$this->format = $this->getFormat();
|
||||||
|
|
||||||
|
if ($this->method == 'PUT' || $this->method == 'POST' || $this->method == 'PATCH') {
|
||||||
|
$this->data = $this->getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
list($obj, $method, $params, $this->params, $noAuth) = $this->findUrl();
|
||||||
|
|
||||||
|
if ($obj) {
|
||||||
|
if (is_string($obj)) {
|
||||||
|
if (class_exists($obj)) {
|
||||||
|
$obj = new $obj();
|
||||||
|
} else {
|
||||||
|
throw new Exception("Class $obj does not exist");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$obj->server = $this;
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (method_exists($obj, 'init')) {
|
||||||
|
$obj->init();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$noAuth && method_exists($obj, 'authorize')) {
|
||||||
|
if (!$obj->authorize()) {
|
||||||
|
$this->sendData($this->unauthorized(true)); //@todo unauthorized returns void
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = call_user_func_array(array($obj, $method), $params);
|
||||||
|
|
||||||
|
if ($result !== null) {
|
||||||
|
$this->sendData($result);
|
||||||
|
}
|
||||||
|
} catch (RestException $e) {
|
||||||
|
$this->handleError($e->getCode(), $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$this->handleError(404);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public function setRootPath($path)
|
||||||
|
{
|
||||||
|
$this->rootPath = '/'.trim($path, '/').'/';
|
||||||
|
}
|
||||||
|
public function setJsonAssoc($value)
|
||||||
|
{
|
||||||
|
$this->jsonAssoc = ($value === true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addClass($class, $basePath = '')
|
||||||
|
{
|
||||||
|
$this->loadCache();
|
||||||
|
|
||||||
|
if (!$this->cached) {
|
||||||
|
if (is_string($class) && !class_exists($class)){
|
||||||
|
throw new Exception('Invalid method or class');
|
||||||
|
} elseif (!is_string($class) && !is_object($class)) {
|
||||||
|
throw new Exception('Invalid method or class; must be a classname or object');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (substr($basePath, 0, 1) == '/') {
|
||||||
|
$basePath = substr($basePath, 1);
|
||||||
|
}
|
||||||
|
if ($basePath && substr($basePath, -1) != '/') {
|
||||||
|
$basePath .= '/';
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->generateMap($class, $basePath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addErrorClass($class)
|
||||||
|
{
|
||||||
|
$this->errorClasses[] = $class;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handleError($statusCode, $errorMessage = null)
|
||||||
|
{
|
||||||
|
$method = "handle$statusCode";
|
||||||
|
foreach ($this->errorClasses as $class) {
|
||||||
|
if (is_object($class)) {
|
||||||
|
$reflection = new ReflectionObject($class);
|
||||||
|
} elseif (class_exists($class)) {
|
||||||
|
$reflection = new ReflectionClass($class);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($reflection))
|
||||||
|
{
|
||||||
|
if ($reflection->hasMethod($method))
|
||||||
|
{
|
||||||
|
$obj = is_string($class) ? new $class() : $class;
|
||||||
|
$obj->$method();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$errorMessage)
|
||||||
|
{
|
||||||
|
$errorMessage = $this->codes[$statusCode];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->setStatus($statusCode);
|
||||||
|
$this->sendData(array('error' => array('code' => $statusCode, 'message' => $errorMessage)));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function loadCache()
|
||||||
|
{
|
||||||
|
if ($this->cached !== null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cached = false;
|
||||||
|
|
||||||
|
if ($this->mode == 'production') {
|
||||||
|
if (function_exists('apc_fetch')) {
|
||||||
|
$map = apc_fetch('urlMap');
|
||||||
|
} elseif (file_exists($this->cacheDir . '/urlMap.cache')) {
|
||||||
|
$map = unserialize(file_get_contents($this->cacheDir . '/urlMap.cache'));
|
||||||
|
}
|
||||||
|
if (isset($map) && is_array($map)) {
|
||||||
|
$this->map = $map;
|
||||||
|
$this->cached = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (function_exists('apc_delete')) {
|
||||||
|
apc_delete('urlMap');
|
||||||
|
} else {
|
||||||
|
@unlink($this->cacheDir . '/urlMap.cache');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function findUrl()
|
||||||
|
{
|
||||||
|
$urls = $this->map[$this->method];
|
||||||
|
if (!$urls) return null;
|
||||||
|
|
||||||
|
foreach ($urls as $url => $call) {
|
||||||
|
$args = $call[2];
|
||||||
|
|
||||||
|
if (!strstr($url, '$')) {
|
||||||
|
if ($url == $this->url) {
|
||||||
|
if (isset($args['data'])) {
|
||||||
|
$params = array_fill(0, $args['data'] + 1, null);
|
||||||
|
$params[$args['data']] = $this->data; //@todo data is not a property of this class
|
||||||
|
$call[2] = $params;
|
||||||
|
} else {
|
||||||
|
$call[2] = array();
|
||||||
|
}
|
||||||
|
return $call;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$regex = preg_replace('/\\\\\$([\w\d]+)\.\.\./', '(?P<$1>.+)', str_replace('\.\.\.', '...', preg_quote($url)));
|
||||||
|
$regex = preg_replace('/\\\\\$([\w\d]+)/', '(?P<$1>[^\/]+)', $regex);
|
||||||
|
if (preg_match(":^$regex$:", urldecode($this->url), $matches)) {
|
||||||
|
$params = array();
|
||||||
|
$paramMap = array();
|
||||||
|
if (isset($args['data'])) {
|
||||||
|
$params[$args['data']] = $this->data;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($matches as $arg => $match) {
|
||||||
|
if (is_numeric($arg)) continue;
|
||||||
|
$paramMap[$arg] = $match;
|
||||||
|
|
||||||
|
if (isset($args[$arg])) {
|
||||||
|
$params[$args[$arg]] = $match;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ksort($params);
|
||||||
|
// make sure we have all the params we need
|
||||||
|
end($params);
|
||||||
|
$max = key($params);
|
||||||
|
for ($i = 0; $i < $max; $i++) {
|
||||||
|
if (!array_key_exists($i, $params)) {
|
||||||
|
$params[$i] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ksort($params);
|
||||||
|
$call[2] = $params;
|
||||||
|
$call[3] = $paramMap;
|
||||||
|
return $call;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function generateMap($class, $basePath)
|
||||||
|
{
|
||||||
|
if (is_object($class)) {
|
||||||
|
$reflection = new ReflectionObject($class);
|
||||||
|
} elseif (class_exists($class)) {
|
||||||
|
$reflection = new ReflectionClass($class);
|
||||||
|
}
|
||||||
|
|
||||||
|
$methods = $reflection->getMethods(ReflectionMethod::IS_PUBLIC); //@todo $reflection might not be instantiated
|
||||||
|
|
||||||
|
foreach ($methods as $method) {
|
||||||
|
$doc = $method->getDocComment();
|
||||||
|
$noAuth = strpos($doc, '@noAuth') !== false;
|
||||||
|
if (preg_match_all('/@url[ \t]+(GET|POST|PUT|PATCH|DELETE|HEAD|OPTIONS)[ \t]+\/?(\S*)/s', $doc, $matches, PREG_SET_ORDER)) {
|
||||||
|
|
||||||
|
$params = $method->getParameters();
|
||||||
|
|
||||||
|
foreach ($matches as $match) {
|
||||||
|
$httpMethod = $match[1];
|
||||||
|
$url = $basePath . $match[2];
|
||||||
|
if ($url && $url[strlen($url) - 1] == '/') {
|
||||||
|
$url = substr($url, 0, -1);
|
||||||
|
}
|
||||||
|
$call = array($class, $method->getName());
|
||||||
|
$args = array();
|
||||||
|
foreach ($params as $param) {
|
||||||
|
$args[$param->getName()] = $param->getPosition();
|
||||||
|
}
|
||||||
|
$call[] = $args;
|
||||||
|
$call[] = null;
|
||||||
|
$call[] = $noAuth;
|
||||||
|
|
||||||
|
$this->map[$httpMethod][$url] = $call;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPath()
|
||||||
|
{
|
||||||
|
$path = preg_replace('/\?.*$/', '', $_SERVER['REQUEST_URI']);
|
||||||
|
// remove root from path
|
||||||
|
if ($this->root) $path = preg_replace('/^' . preg_quote($this->root, '/') . '/', '', $path);
|
||||||
|
// remove trailing format definition, like /controller/action.json -> /controller/action
|
||||||
|
$path = preg_replace('/\.(\w+)$/i', '', $path);
|
||||||
|
// remove root path from path, like /root/path/api -> /api
|
||||||
|
if ($this->rootPath) $path = str_replace($this->rootPath, '', $path);
|
||||||
|
return $path;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getMethod()
|
||||||
|
{
|
||||||
|
$method = $_SERVER['REQUEST_METHOD'];
|
||||||
|
$override = isset($_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE']) ? $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] : (isset($_GET['method']) ? $_GET['method'] : '');
|
||||||
|
if ($method == 'POST' && strtoupper($override) == 'PUT') {
|
||||||
|
$method = 'PUT';
|
||||||
|
} elseif ($method == 'POST' && strtoupper($override) == 'DELETE') {
|
||||||
|
$method = 'DELETE';
|
||||||
|
} elseif ($method == 'POST' && strtoupper($override) == 'PATCH') {
|
||||||
|
$method = 'PATCH';
|
||||||
|
}
|
||||||
|
return $method;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getFormat()
|
||||||
|
{
|
||||||
|
$format = RestFormat::PLAIN;
|
||||||
|
$accept_mod = null;
|
||||||
|
if(isset($_SERVER["HTTP_ACCEPT"])) {
|
||||||
|
$accept_mod = preg_replace('/\s+/i', '', $_SERVER['HTTP_ACCEPT']); // ensures that exploding the HTTP_ACCEPT string does not get confused by whitespaces
|
||||||
|
}
|
||||||
|
$accept = explode(',', $accept_mod);
|
||||||
|
$override = '';
|
||||||
|
|
||||||
|
if (isset($_REQUEST['format']) || isset($_SERVER['HTTP_FORMAT'])) {
|
||||||
|
// give GET/POST precedence over HTTP request headers
|
||||||
|
$override = isset($_SERVER['HTTP_FORMAT']) ? $_SERVER['HTTP_FORMAT'] : '';
|
||||||
|
$override = isset($_REQUEST['format']) ? $_REQUEST['format'] : $override;
|
||||||
|
$override = trim($override);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for trailing dot-format syntax like /controller/action.format -> action.json
|
||||||
|
if(preg_match('/\.(\w+)$/i', strtok($_SERVER["REQUEST_URI"],'?'), $matches)) {
|
||||||
|
$override = $matches[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Give GET parameters precedence before all other options to alter the format
|
||||||
|
$override = isset($_GET['format']) ? $_GET['format'] : $override;
|
||||||
|
if (isset(RestFormat::$formats[$override])) {
|
||||||
|
$format = RestFormat::$formats[$override];
|
||||||
|
} elseif (in_array(RestFormat::JSON, $accept)) {
|
||||||
|
$format = RestFormat::JSON;
|
||||||
|
}
|
||||||
|
return $format;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getData()
|
||||||
|
{
|
||||||
|
$data = file_get_contents('php://input');
|
||||||
|
$data = json_decode($data, $this->jsonAssoc);
|
||||||
|
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function sendData($data)
|
||||||
|
{
|
||||||
|
header("Cache-Control: no-cache, must-revalidate");
|
||||||
|
header("Expires: 0");
|
||||||
|
header('Content-Type: ' . $this->format);
|
||||||
|
|
||||||
|
if ($this->format == RestFormat::XML) {
|
||||||
|
|
||||||
|
if (is_object($data) && method_exists($data, '__keepOut')) {
|
||||||
|
$data = clone $data;
|
||||||
|
foreach ($data->__keepOut() as $prop) {
|
||||||
|
unset($data->$prop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$this->xml_encode($data);
|
||||||
|
} else {
|
||||||
|
if (is_object($data) && method_exists($data, '__keepOut')) {
|
||||||
|
$data = clone $data;
|
||||||
|
foreach ($data->__keepOut() as $prop) {
|
||||||
|
unset($data->$prop);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$options = 0;
|
||||||
|
if ($this->mode == 'debug') {
|
||||||
|
$options = JSON_PRETTY_PRINT;
|
||||||
|
}
|
||||||
|
$options = $options | JSON_UNESCAPED_UNICODE;
|
||||||
|
echo json_encode($data, $options);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setStatus($code)
|
||||||
|
{
|
||||||
|
if (function_exists('http_response_code')) {
|
||||||
|
http_response_code($code);
|
||||||
|
} else {
|
||||||
|
$protocol = $_SERVER['SERVER_PROTOCOL'] ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0';
|
||||||
|
$code .= ' ' . $this->codes[strval($code)];
|
||||||
|
header("$protocol $code");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function xml_encode($mixed, $domElement=null, $DOMDocument=null) { //@todo add type hint for $domElement and $DOMDocument
|
||||||
|
if (is_null($DOMDocument)) {
|
||||||
|
$DOMDocument =new DOMDocument;
|
||||||
|
$DOMDocument->formatOutput = true;
|
||||||
|
$this->xml_encode($mixed, $DOMDocument, $DOMDocument);
|
||||||
|
echo $DOMDocument->saveXML();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (is_array($mixed)) {
|
||||||
|
foreach ($mixed as $index => $mixedElement) {
|
||||||
|
if (is_int($index)) {
|
||||||
|
if ($index === 0) {
|
||||||
|
$node = $domElement;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$node = $DOMDocument->createElement($domElement->tagName);
|
||||||
|
$domElement->parentNode->appendChild($node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$plural = $DOMDocument->createElement($index);
|
||||||
|
$domElement->appendChild($plural);
|
||||||
|
$node = $plural;
|
||||||
|
if (!(rtrim($index, 's') === $index)) {
|
||||||
|
$singular = $DOMDocument->createElement(rtrim($index, 's'));
|
||||||
|
$plural->appendChild($singular);
|
||||||
|
$node = $singular;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->xml_encode($mixedElement, $node, $DOMDocument);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$domElement->appendChild($DOMDocument->createTextNode($mixed));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private $codes = array(
|
||||||
|
'100' => 'Continue',
|
||||||
|
'200' => 'OK',
|
||||||
|
'201' => 'Created',
|
||||||
|
'202' => 'Accepted',
|
||||||
|
'203' => 'Non-Authoritative Information',
|
||||||
|
'204' => 'No Content',
|
||||||
|
'205' => 'Reset Content',
|
||||||
|
'206' => 'Partial Content',
|
||||||
|
'300' => 'Multiple Choices',
|
||||||
|
'301' => 'Moved Permanently',
|
||||||
|
'302' => 'Found',
|
||||||
|
'303' => 'See Other',
|
||||||
|
'304' => 'Not Modified',
|
||||||
|
'305' => 'Use Proxy',
|
||||||
|
'307' => 'Temporary Redirect',
|
||||||
|
'400' => 'Bad Request',
|
||||||
|
'401' => 'Unauthorized',
|
||||||
|
'402' => 'Payment Required',
|
||||||
|
'403' => 'Forbidden',
|
||||||
|
'404' => 'Not Found',
|
||||||
|
'405' => 'Method Not Allowed',
|
||||||
|
'406' => 'Not Acceptable',
|
||||||
|
'409' => 'Conflict',
|
||||||
|
'410' => 'Gone',
|
||||||
|
'411' => 'Length Required',
|
||||||
|
'412' => 'Precondition Failed',
|
||||||
|
'413' => 'Request Entity Too Large',
|
||||||
|
'414' => 'Request-URI Too Long',
|
||||||
|
'415' => 'Unsupported Media Type',
|
||||||
|
'416' => 'Requested Range Not Satisfiable',
|
||||||
|
'417' => 'Expectation Failed',
|
||||||
|
'500' => 'Internal Server Error',
|
||||||
|
'501' => 'Not Implemented',
|
||||||
|
'503' => 'Service Unavailable'
|
||||||
|
);
|
||||||
|
}
|
22
3rdparty/analysing_page/LICENSE
vendored
Executable file
@ -0,0 +1,22 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2015 Communiquons
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
BIN
3rdparty/analysing_page/PHP-content-of-a-page-analyser-master-1.0.zip
vendored
Executable file
9
3rdparty/analysing_page/README.md
vendored
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
# PHP content of a page analyser
|
||||||
|
Analysing the content of a page in PHP
|
||||||
|
|
||||||
|
This PHP project will allow you to analyse with your page the global content of another page. It would be useful for an easier integration of an external page in yours
|
||||||
|
|
||||||
|
Has been translateed in :
|
||||||
|
|
||||||
|
French
|
||||||
|
English
|
49
3rdparty/analysing_page/analyser_en.php
vendored
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
//This file extract the title, the description and the image of a webpage, which are indicated in <meta og: markups
|
||||||
|
function analyse_source_page($source)
|
||||||
|
{
|
||||||
|
//Préparation de l'analyse
|
||||||
|
$page_title = null;
|
||||||
|
$page_description = null;
|
||||||
|
$page_image = null;
|
||||||
|
|
||||||
|
//Analysing datas
|
||||||
|
preg_match_all('#<meta (.*?)>#is', $source, $result,PREG_PATTERN_ORDER);
|
||||||
|
|
||||||
|
//Fetching
|
||||||
|
$liste_types = array(
|
||||||
|
array('title' => 'page_title', 'pattern' => '<property="og:title">', 'begining' => 'content="', 'ending' => '"'),
|
||||||
|
array('title' => 'page_title', 'pattern' => "<property='og:title'>", 'begining' => "content='", 'ending' => "'"),
|
||||||
|
array('title' => 'page_description', 'pattern' => "<property='og:description'>", 'begining' => "content='", 'ending' => "'"),
|
||||||
|
array('title' => 'page_description', 'pattern' => '<property="og:description">', 'begining' => 'content="', 'ending' => '"'),
|
||||||
|
array('title' => 'page_image', 'pattern' => '<property="og:image">', 'begining' => 'content="', 'ending' => '"'),
|
||||||
|
array('title' => 'page_image', 'pattern' => "<property='og:image'>", 'begining' => "content='", 'ending' => "'"),
|
||||||
|
);
|
||||||
|
|
||||||
|
//Analysing list
|
||||||
|
foreach($result[1] as $fetching)
|
||||||
|
{
|
||||||
|
//Parcours des types de traitement
|
||||||
|
foreach($liste_types as $fetching_infos)
|
||||||
|
{
|
||||||
|
|
||||||
|
//Preparing
|
||||||
|
$fetching = str_replace(' =', '=', $fetching);
|
||||||
|
|
||||||
|
//Vérification de la présence des informations
|
||||||
|
if(preg_match($fetching_infos['pattern'], $fetching))
|
||||||
|
{
|
||||||
|
$begining = $fetching_infos['begining'];
|
||||||
|
$ending = $fetching_infos['ending'];
|
||||||
|
$title = $fetching_infos['title'];
|
||||||
|
$content = strstr($fetching, $begining);
|
||||||
|
$content = str_replace($begining, '', $content);
|
||||||
|
$content = strstr($content, $ending, true);
|
||||||
|
${$title} = $content;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Sending result
|
||||||
|
return array('title' => $page_title, 'description' => $page_description, 'image' => $page_image);
|
||||||
|
}
|
49
3rdparty/analysing_page/analyser_fr.php
vendored
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
//Fonction d'analyse du contenu d'une page pour en extraire la description, le titre et l'image
|
||||||
|
function analyse_source_page_extrait_description($source)
|
||||||
|
{
|
||||||
|
//Préparation de l'analyse
|
||||||
|
$titre_page = null;
|
||||||
|
$description_page = null;
|
||||||
|
$image_page = null;
|
||||||
|
|
||||||
|
|
||||||
|
//Analyse des données
|
||||||
|
preg_match_all('#<meta (.*?)>#is', $source, $resultat,PREG_PATTERN_ORDER);
|
||||||
|
|
||||||
|
//Traitement
|
||||||
|
$liste_types = array(
|
||||||
|
array('titre' => 'titre_page', 'masque' => '<property="og:title">', 'debut' => 'content="', 'fin' => '"'),
|
||||||
|
array('titre' => 'titre_page', 'masque' => "<property='og:title'>", 'debut' => "content='", 'fin' => "'"),
|
||||||
|
array('titre' => 'description_page', 'masque' => "<property='og:description'>", 'debut' => "content='", 'fin' => "'"),
|
||||||
|
array('titre' => 'description_page', 'masque' => '<property="og:description">', 'debut' => 'content="', 'fin' => '"'),
|
||||||
|
array('titre' => 'image_page', 'masque' => '<property="og:image">', 'debut' => 'content="', 'fin' => '"'),
|
||||||
|
array('titre' => 'image_page', 'masque' => "<property='og:image'>", 'debut' => "content='", 'fin' => "'"),
|
||||||
|
);
|
||||||
|
|
||||||
|
//Parcours de la liste
|
||||||
|
foreach($resultat[1] as $traiter)
|
||||||
|
{
|
||||||
|
//Parcours des types de traitement
|
||||||
|
foreach($liste_types as $infos_traitement)
|
||||||
|
{
|
||||||
|
//Pré-traitement
|
||||||
|
$traiter = str_replace(' =', '=', $traiter);
|
||||||
|
|
||||||
|
//Vérification de la présence des informations
|
||||||
|
if(preg_match($infos_traitement['masque'], $traiter))
|
||||||
|
{
|
||||||
|
$debut = $infos_traitement['debut'];
|
||||||
|
$fin = $infos_traitement['fin'];
|
||||||
|
$titre = $infos_traitement['titre'];
|
||||||
|
$contenu = strstr($traiter, $debut);
|
||||||
|
$contenu = str_replace($debut, '', $contenu);
|
||||||
|
$contenu = strstr($contenu, $fin, true);
|
||||||
|
${$titre} = $contenu;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Renvoi du résultat
|
||||||
|
return array('titre' => $titre_page, 'description' => $description_page, 'image' => $image_page);
|
||||||
|
}
|
512
3rdparty/crypt/Licence_CeCILL_V2-en.txt
vendored
Executable file
@ -0,0 +1,512 @@
|
|||||||
|
|
||||||
|
CeCILL FREE SOFTWARE LICENSE AGREEMENT
|
||||||
|
|
||||||
|
|
||||||
|
Notice
|
||||||
|
|
||||||
|
This Agreement is a Free Software license agreement that is the result
|
||||||
|
of discussions between its authors in order to ensure compliance with
|
||||||
|
the two main principles guiding its drafting:
|
||||||
|
|
||||||
|
* firstly, compliance with the principles governing the distribution
|
||||||
|
of Free Software: access to source code, broad rights granted to
|
||||||
|
users,
|
||||||
|
* secondly, the election of a governing law, French law, with which
|
||||||
|
it is conformant, both as regards the law of torts and
|
||||||
|
intellectual property law, and the protection that it offers to
|
||||||
|
both authors and holders of the economic rights over software.
|
||||||
|
|
||||||
|
The authors of the CeCILL (for Ce[a] C[nrs] I[nria] L[logiciel] L[ibre])
|
||||||
|
license are:
|
||||||
|
|
||||||
|
Commissariat à l'Energie Atomique - CEA, a public scientific, technical
|
||||||
|
and industrial research establishment, having its principal place of
|
||||||
|
business at 25 rue Leblanc, immeuble Le Ponant D, 75015 Paris, France.
|
||||||
|
|
||||||
|
Centre National de la Recherche Scientifique - CNRS, a public scientific
|
||||||
|
and technological research establishment, having its principal place of
|
||||||
|
business at 3 rue Michel-Ange, 75794 Paris cedex 16, France.
|
||||||
|
|
||||||
|
Institut National de Recherche en Informatique et en Automatique -
|
||||||
|
INRIA, a public scientific and technological establishment, having its
|
||||||
|
principal place of business at Domaine de Voluceau, Rocquencourt, BP
|
||||||
|
105, 78153 Le Chesnay cedex, France.
|
||||||
|
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The purpose of this Free Software license agreement is to grant users
|
||||||
|
the right to modify and redistribute the software governed by this
|
||||||
|
license within the framework of an open source distribution model.
|
||||||
|
|
||||||
|
The exercising of these rights is conditional upon certain obligations
|
||||||
|
for users so as to preserve this status for all subsequent redistributions.
|
||||||
|
|
||||||
|
In consideration of access to the source code and the rights to copy,
|
||||||
|
modify and redistribute granted by the license, users are provided only
|
||||||
|
with a limited warranty and the software's author, the holder of the
|
||||||
|
economic rights, and the successive licensors only have limited liability.
|
||||||
|
|
||||||
|
In this respect, the risks associated with loading, using, modifying
|
||||||
|
and/or developing or reproducing the software by the user are brought to
|
||||||
|
the user's attention, given its Free Software status, which may make it
|
||||||
|
complicated to use, with the result that its use is reserved for
|
||||||
|
developers and experienced professionals having in-depth computer
|
||||||
|
knowledge. Users are therefore encouraged to load and test the suitability
|
||||||
|
of the software as regards their requirements in conditions enabling
|
||||||
|
the security of their systems and/or data to be ensured and, more
|
||||||
|
generally, to use and operate it in the same conditions of security.
|
||||||
|
This Agreement may be freely reproduced and published, provided it is not
|
||||||
|
altered, and that no provisions are either added or removed herefrom.
|
||||||
|
|
||||||
|
This Agreement may apply to any or all software for which the holder of
|
||||||
|
the economic rights decides to submit the use thereof to its provisions.
|
||||||
|
|
||||||
|
|
||||||
|
Article 1 - DEFINITIONS
|
||||||
|
|
||||||
|
For the purpose of this Agreement, when the following expressions
|
||||||
|
commence with a capital letter, they shall have the following meaning:
|
||||||
|
|
||||||
|
Agreement: means this license agreement, and its possible subsequent
|
||||||
|
versions and annexes.
|
||||||
|
|
||||||
|
Software: means the software in its Object Code and/or Source Code form
|
||||||
|
and, where applicable, its documentation, "as is" when the Licensee
|
||||||
|
accepts the Agreement.
|
||||||
|
|
||||||
|
Initial Software: means the Software in its Source Code and possibly its
|
||||||
|
Object Code form and, where applicable, its documentation, "as is" when
|
||||||
|
it is first distributed under the terms and conditions of the Agreement.
|
||||||
|
|
||||||
|
Modified Software: means the Software modified by at least one
|
||||||
|
Contribution.
|
||||||
|
|
||||||
|
Source Code: means all the Software's instructions and program lines to
|
||||||
|
which access is required so as to modify the Software.
|
||||||
|
|
||||||
|
Object Code: means the binary files originating from the compilation of
|
||||||
|
the Source Code.
|
||||||
|
|
||||||
|
Holder: means the holder(s) of the economic rights over the Initial
|
||||||
|
Software.
|
||||||
|
|
||||||
|
Licensee: means the Software user(s) having accepted the Agreement.
|
||||||
|
|
||||||
|
Contributor: means a Licensee having made at least one Contribution.
|
||||||
|
|
||||||
|
Licensor: means the Holder, or any other individual or legal entity, who
|
||||||
|
distributes the Software under the Agreement.
|
||||||
|
|
||||||
|
Contribution: means any or all modifications, corrections, translations,
|
||||||
|
adaptations and/or new functions integrated into the Software by any or
|
||||||
|
all Contributors, as well as any or all Internal Modules.
|
||||||
|
|
||||||
|
Module: means a set of sources files including their documentation that
|
||||||
|
enables supplementary functions or services in addition to those offered
|
||||||
|
by the Software.
|
||||||
|
|
||||||
|
External Module: means any or all Modules, not derived from the
|
||||||
|
Software, so that this Module and the Software run in separate address
|
||||||
|
spaces, with one calling the other when they are run.
|
||||||
|
|
||||||
|
Internal Module: means any or all Module, connected to the Software so
|
||||||
|
that they both execute in the same address space.
|
||||||
|
|
||||||
|
GNU GPL: means the GNU General Public License version 2 or any
|
||||||
|
subsequent version, as published by the Free Software Foundation Inc.
|
||||||
|
|
||||||
|
Parties: mean both the Licensee and the Licensor.
|
||||||
|
|
||||||
|
These expressions may be used both in singular and plural form.
|
||||||
|
|
||||||
|
|
||||||
|
Article 2 - PURPOSE
|
||||||
|
|
||||||
|
The purpose of the Agreement is the grant by the Licensor to the
|
||||||
|
Licensee of a non-exclusive, transferable and worldwide license for the
|
||||||
|
Software as set forth in Article 5 hereinafter for the whole term of the
|
||||||
|
protection granted by the rights over said Software.
|
||||||
|
|
||||||
|
|
||||||
|
Article 3 - ACCEPTANCE
|
||||||
|
|
||||||
|
3.1 The Licensee shall be deemed as having accepted the terms and
|
||||||
|
conditions of this Agreement upon the occurrence of the first of the
|
||||||
|
following events:
|
||||||
|
|
||||||
|
* (i) loading the Software by any or all means, notably, by
|
||||||
|
downloading from a remote server, or by loading from a physical
|
||||||
|
medium;
|
||||||
|
* (ii) the first time the Licensee exercises any of the rights
|
||||||
|
granted hereunder.
|
||||||
|
|
||||||
|
3.2 One copy of the Agreement, containing a notice relating to the
|
||||||
|
characteristics of the Software, to the limited warranty, and to the
|
||||||
|
fact that its use is restricted to experienced users has been provided
|
||||||
|
to the Licensee prior to its acceptance as set forth in Article 3.1
|
||||||
|
hereinabove, and the Licensee hereby acknowledges that it has read and
|
||||||
|
understood it.
|
||||||
|
|
||||||
|
|
||||||
|
Article 4 - EFFECTIVE DATE AND TERM
|
||||||
|
|
||||||
|
|
||||||
|
4.1 EFFECTIVE DATE
|
||||||
|
|
||||||
|
The Agreement shall become effective on the date when it is accepted by
|
||||||
|
the Licensee as set forth in Article 3.1.
|
||||||
|
|
||||||
|
|
||||||
|
4.2 TERM
|
||||||
|
|
||||||
|
The Agreement shall remain in force for the entire legal term of
|
||||||
|
protection of the economic rights over the Software.
|
||||||
|
|
||||||
|
|
||||||
|
Article 5 - SCOPE OF RIGHTS GRANTED
|
||||||
|
|
||||||
|
The Licensor hereby grants to the Licensee, who accepts, the following
|
||||||
|
rights over the Software for any or all use, and for the term of the
|
||||||
|
Agreement, on the basis of the terms and conditions set forth hereinafter.
|
||||||
|
|
||||||
|
Besides, if the Licensor owns or comes to own one or more patents
|
||||||
|
protecting all or part of the functions of the Software or of its
|
||||||
|
components, the Licensor undertakes not to enforce the rights granted by
|
||||||
|
these patents against successive Licensees using, exploiting or
|
||||||
|
modifying the Software. If these patents are transferred, the Licensor
|
||||||
|
undertakes to have the transferees subscribe to the obligations set
|
||||||
|
forth in this paragraph.
|
||||||
|
|
||||||
|
|
||||||
|
5.1 RIGHT OF USE
|
||||||
|
|
||||||
|
The Licensee is authorized to use the Software, without any limitation
|
||||||
|
as to its fields of application, with it being hereinafter specified
|
||||||
|
that this comprises:
|
||||||
|
|
||||||
|
1. permanent or temporary reproduction of all or part of the Software
|
||||||
|
by any or all means and in any or all form.
|
||||||
|
|
||||||
|
2. loading, displaying, running, or storing the Software on any or
|
||||||
|
all medium.
|
||||||
|
|
||||||
|
3. entitlement to observe, study or test its operation so as to
|
||||||
|
determine the ideas and principles behind any or all constituent
|
||||||
|
elements of said Software. This shall apply when the Licensee
|
||||||
|
carries out any or all loading, displaying, running, transmission
|
||||||
|
or storage operation as regards the Software, that it is entitled
|
||||||
|
to carry out hereunder.
|
||||||
|
|
||||||
|
|
||||||
|
5.2 ENTITLEMENT TO MAKE CONTRIBUTIONS
|
||||||
|
|
||||||
|
The right to make Contributions includes the right to translate, adapt,
|
||||||
|
arrange, or make any or all modifications to the Software, and the right
|
||||||
|
to reproduce the resulting software.
|
||||||
|
|
||||||
|
The Licensee is authorized to make any or all Contributions to the
|
||||||
|
Software provided that it includes an explicit notice that it is the
|
||||||
|
author of said Contribution and indicates the date of the creation thereof.
|
||||||
|
|
||||||
|
|
||||||
|
5.3 RIGHT OF DISTRIBUTION
|
||||||
|
|
||||||
|
In particular, the right of distribution includes the right to publish,
|
||||||
|
transmit and communicate the Software to the general public on any or
|
||||||
|
all medium, and by any or all means, and the right to market, either in
|
||||||
|
consideration of a fee, or free of charge, one or more copies of the
|
||||||
|
Software by any means.
|
||||||
|
|
||||||
|
The Licensee is further authorized to distribute copies of the modified
|
||||||
|
or unmodified Software to third parties according to the terms and
|
||||||
|
conditions set forth hereinafter.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.1 DISTRIBUTION OF SOFTWARE WITHOUT MODIFICATION
|
||||||
|
|
||||||
|
The Licensee is authorized to distribute true copies of the Software in
|
||||||
|
Source Code or Object Code form, provided that said distribution
|
||||||
|
complies with all the provisions of the Agreement and is accompanied by:
|
||||||
|
|
||||||
|
1. a copy of the Agreement,
|
||||||
|
|
||||||
|
2. a notice relating to the limitation of both the Licensor's
|
||||||
|
warranty and liability as set forth in Articles 8 and 9,
|
||||||
|
|
||||||
|
and that, in the event that only the Object Code of the Software is
|
||||||
|
redistributed, the Licensee allows future Licensees unhindered access to
|
||||||
|
the full Source Code of the Software by indicating how to access it, it
|
||||||
|
being understood that the additional cost of acquiring the Source Code
|
||||||
|
shall not exceed the cost of transferring the data.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.2 DISTRIBUTION OF MODIFIED SOFTWARE
|
||||||
|
|
||||||
|
When the Licensee makes a Contribution to the Software, the terms and
|
||||||
|
conditions for the distribution of the resulting Modified Software
|
||||||
|
become subject to all the provisions of this Agreement.
|
||||||
|
|
||||||
|
The Licensee is authorized to distribute the Modified Software, in
|
||||||
|
source code or object code form, provided that said distribution
|
||||||
|
complies with all the provisions of the Agreement and is accompanied by:
|
||||||
|
|
||||||
|
1. a copy of the Agreement,
|
||||||
|
|
||||||
|
2. a notice relating to the limitation of both the Licensor's
|
||||||
|
warranty and liability as set forth in Articles 8 and 9,
|
||||||
|
|
||||||
|
and that, in the event that only the Object Code of the Modified
|
||||||
|
Software is redistributed, the Licensee allows future Licensees
|
||||||
|
unhindered access to the full source code of the Modified Software by
|
||||||
|
indicating how to access it, it being understood that the additional
|
||||||
|
cost of acquiring the source code shall not exceed the cost of
|
||||||
|
transferring the data.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.3 DISTRIBUTION OF EXTERNAL MODULES
|
||||||
|
|
||||||
|
When the Licensee has developed an External Module, the terms and
|
||||||
|
conditions of this Agreement do not apply to said External Module, that
|
||||||
|
may be distributed under a separate license agreement.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.4 COMPATIBILITY WITH THE GNU GPL
|
||||||
|
|
||||||
|
The Licensee can include a code that is subject to the provisions of one
|
||||||
|
of the versions of the GNU GPL in the Modified or unmodified Software,
|
||||||
|
and distribute that entire code under the terms of the same version of
|
||||||
|
the GNU GPL.
|
||||||
|
|
||||||
|
The Licensee can include the Modified or unmodified Software in a code
|
||||||
|
that is subject to the provisions of one of the versions of the GNU GPL,
|
||||||
|
and distribute that entire code under the terms of the same version of
|
||||||
|
the GNU GPL.
|
||||||
|
|
||||||
|
|
||||||
|
Article 6 - INTELLECTUAL PROPERTY
|
||||||
|
|
||||||
|
|
||||||
|
6.1 OVER THE INITIAL SOFTWARE
|
||||||
|
|
||||||
|
The Holder owns the economic rights over the Initial Software. Any or
|
||||||
|
all use of the Initial Software is subject to compliance with the terms
|
||||||
|
and conditions under which the Holder has elected to distribute its work
|
||||||
|
and no one shall be entitled to modify the terms and conditions for the
|
||||||
|
distribution of said Initial Software.
|
||||||
|
|
||||||
|
The Holder undertakes that the Initial Software will remain ruled at
|
||||||
|
least by the current license, for the duration set forth in Article 4.2.
|
||||||
|
|
||||||
|
|
||||||
|
6.2 OVER THE CONTRIBUTIONS
|
||||||
|
|
||||||
|
A Licensee who develops a Contribution is the owner of the intellectual
|
||||||
|
property rights over this Contribution as defined by applicable law.
|
||||||
|
|
||||||
|
|
||||||
|
6.3 OVER THE EXTERNAL MODULES
|
||||||
|
|
||||||
|
A Licensee who develops an External Module is the owner of the
|
||||||
|
intellectual property rights over this External Module as defined by
|
||||||
|
applicable law and is free to choose the type of agreement that shall
|
||||||
|
govern its distribution.
|
||||||
|
|
||||||
|
|
||||||
|
6.4 JOINT PROVISIONS
|
||||||
|
|
||||||
|
The Licensee expressly undertakes:
|
||||||
|
|
||||||
|
1. not to remove, or modify, in any manner, the intellectual property
|
||||||
|
notices attached to the Software;
|
||||||
|
|
||||||
|
2. to reproduce said notices, in an identical manner, in the copies
|
||||||
|
of the Software modified or not.
|
||||||
|
|
||||||
|
The Licensee undertakes not to directly or indirectly infringe the
|
||||||
|
intellectual property rights of the Holder and/or Contributors on the
|
||||||
|
Software and to take, where applicable, vis-à-vis its staff, any and all
|
||||||
|
measures required to ensure respect of said intellectual property rights
|
||||||
|
of the Holder and/or Contributors.
|
||||||
|
|
||||||
|
|
||||||
|
Article 7 - RELATED SERVICES
|
||||||
|
|
||||||
|
7.1 Under no circumstances shall the Agreement oblige the Licensor to
|
||||||
|
provide technical assistance or maintenance services for the Software.
|
||||||
|
|
||||||
|
However, the Licensor is entitled to offer this type of services. The
|
||||||
|
terms and conditions of such technical assistance, and/or such
|
||||||
|
maintenance, shall be set forth in a separate instrument. Only the
|
||||||
|
Licensor offering said maintenance and/or technical assistance services
|
||||||
|
shall incur liability therefor.
|
||||||
|
|
||||||
|
7.2 Similarly, any Licensor is entitled to offer to its licensees, under
|
||||||
|
its sole responsibility, a warranty, that shall only be binding upon
|
||||||
|
itself, for the redistribution of the Software and/or the Modified
|
||||||
|
Software, under terms and conditions that it is free to decide. Said
|
||||||
|
warranty, and the financial terms and conditions of its application,
|
||||||
|
shall be subject of a separate instrument executed between the Licensor
|
||||||
|
and the Licensee.
|
||||||
|
|
||||||
|
|
||||||
|
Article 8 - LIABILITY
|
||||||
|
|
||||||
|
8.1 Subject to the provisions of Article 8.2, the Licensee shall be
|
||||||
|
entitled to claim compensation for any direct loss it may have suffered
|
||||||
|
from the Software as a result of a fault on the part of the relevant
|
||||||
|
Licensor, subject to providing evidence thereof.
|
||||||
|
|
||||||
|
8.2 The Licensor's liability is limited to the commitments made under
|
||||||
|
this Agreement and shall not be incurred as a result of in particular:
|
||||||
|
(i) loss due the Licensee's total or partial failure to fulfill its
|
||||||
|
obligations, (ii) direct or consequential loss that is suffered by the
|
||||||
|
Licensee due to the use or performance of the Software, and (iii) more
|
||||||
|
generally, any consequential loss. In particular the Parties expressly
|
||||||
|
agree that any or all pecuniary or business loss (i.e. loss of data,
|
||||||
|
loss of profits, operating loss, loss of customers or orders,
|
||||||
|
opportunity cost, any disturbance to business activities) or any or all
|
||||||
|
legal proceedings instituted against the Licensee by a third party,
|
||||||
|
shall constitute consequential loss and shall not provide entitlement to
|
||||||
|
any or all compensation from the Licensor.
|
||||||
|
|
||||||
|
|
||||||
|
Article 9 - WARRANTY
|
||||||
|
|
||||||
|
9.1 The Licensee acknowledges that the scientific and technical
|
||||||
|
state-of-the-art when the Software was distributed did not enable all
|
||||||
|
possible uses to be tested and verified, nor for the presence of
|
||||||
|
possible defects to be detected. In this respect, the Licensee's
|
||||||
|
attention has been drawn to the risks associated with loading, using,
|
||||||
|
modifying and/or developing and reproducing the Software which are
|
||||||
|
reserved for experienced users.
|
||||||
|
|
||||||
|
The Licensee shall be responsible for verifying, by any or all means,
|
||||||
|
the suitability of the product for its requirements, its good working order,
|
||||||
|
and for ensuring that it shall not cause damage to either persons or
|
||||||
|
properties.
|
||||||
|
|
||||||
|
9.2 The Licensor hereby represents, in good faith, that it is entitled
|
||||||
|
to grant all the rights over the Software (including in particular the
|
||||||
|
rights set forth in Article 5).
|
||||||
|
|
||||||
|
9.3 The Licensee acknowledges that the Software is supplied "as is" by
|
||||||
|
the Licensor without any other express or tacit warranty, other than
|
||||||
|
that provided for in Article 9.2 and, in particular, without any warranty
|
||||||
|
as to its commercial value, its secured, safe, innovative or relevant
|
||||||
|
nature.
|
||||||
|
|
||||||
|
Specifically, the Licensor does not warrant that the Software is free
|
||||||
|
from any error, that it will operate without interruption, that it will
|
||||||
|
be compatible with the Licensee's own equipment and software
|
||||||
|
configuration, nor that it will meet the Licensee's requirements.
|
||||||
|
|
||||||
|
9.4 The Licensor does not either expressly or tacitly warrant that the
|
||||||
|
Software does not infringe any third party intellectual property right
|
||||||
|
relating to a patent, software or any other property right. Therefore,
|
||||||
|
the Licensor disclaims any and all liability towards the Licensee
|
||||||
|
arising out of any or all proceedings for infringement that may be
|
||||||
|
instituted in respect of the use, modification and redistribution of the
|
||||||
|
Software. Nevertheless, should such proceedings be instituted against
|
||||||
|
the Licensee, the Licensor shall provide it with technical and legal
|
||||||
|
assistance for its defense. Such technical and legal assistance shall be
|
||||||
|
decided on a case-by-case basis between the relevant Licensor and the
|
||||||
|
Licensee pursuant to a memorandum of understanding. The Licensor
|
||||||
|
disclaims any and all liability as regards the Licensee's use of the
|
||||||
|
name of the Software. No warranty is given as regards the existence of
|
||||||
|
prior rights over the name of the Software or as regards the existence
|
||||||
|
of a trademark.
|
||||||
|
|
||||||
|
|
||||||
|
Article 10 - TERMINATION
|
||||||
|
|
||||||
|
10.1 In the event of a breach by the Licensee of its obligations
|
||||||
|
hereunder, the Licensor may automatically terminate this Agreement
|
||||||
|
thirty (30) days after notice has been sent to the Licensee and has
|
||||||
|
remained ineffective.
|
||||||
|
|
||||||
|
10.2 A Licensee whose Agreement is terminated shall no longer be
|
||||||
|
authorized to use, modify or distribute the Software. However, any
|
||||||
|
licenses that it may have granted prior to termination of the Agreement
|
||||||
|
shall remain valid subject to their having been granted in compliance
|
||||||
|
with the terms and conditions hereof.
|
||||||
|
|
||||||
|
|
||||||
|
Article 11 - MISCELLANEOUS
|
||||||
|
|
||||||
|
|
||||||
|
11.1 EXCUSABLE EVENTS
|
||||||
|
|
||||||
|
Neither Party shall be liable for any or all delay, or failure to
|
||||||
|
perform the Agreement, that may be attributable to an event of force
|
||||||
|
majeure, an act of God or an outside cause, such as defective
|
||||||
|
functioning or interruptions of the electricity or telecommunications
|
||||||
|
networks, network paralysis following a virus attack, intervention by
|
||||||
|
government authorities, natural disasters, water damage, earthquakes,
|
||||||
|
fire, explosions, strikes and labor unrest, war, etc.
|
||||||
|
|
||||||
|
11.2 Any failure by either Party, on one or more occasions, to invoke
|
||||||
|
one or more of the provisions hereof, shall under no circumstances be
|
||||||
|
interpreted as being a waiver by the interested Party of its right to
|
||||||
|
invoke said provision(s) subsequently.
|
||||||
|
|
||||||
|
11.3 The Agreement cancels and replaces any or all previous agreements,
|
||||||
|
whether written or oral, between the Parties and having the same
|
||||||
|
purpose, and constitutes the entirety of the agreement between said
|
||||||
|
Parties concerning said purpose. No supplement or modification to the
|
||||||
|
terms and conditions hereof shall be effective as between the Parties
|
||||||
|
unless it is made in writing and signed by their duly authorized
|
||||||
|
representatives.
|
||||||
|
|
||||||
|
11.4 In the event that one or more of the provisions hereof were to
|
||||||
|
conflict with a current or future applicable act or legislative text,
|
||||||
|
said act or legislative text shall prevail, and the Parties shall make
|
||||||
|
the necessary amendments so as to comply with said act or legislative
|
||||||
|
text. All other provisions shall remain effective. Similarly, invalidity
|
||||||
|
of a provision of the Agreement, for any reason whatsoever, shall not
|
||||||
|
cause the Agreement as a whole to be invalid.
|
||||||
|
|
||||||
|
|
||||||
|
11.5 LANGUAGE
|
||||||
|
|
||||||
|
The Agreement is drafted in both French and English and both versions
|
||||||
|
are deemed authentic.
|
||||||
|
|
||||||
|
|
||||||
|
Article 12 - NEW VERSIONS OF THE AGREEMENT
|
||||||
|
|
||||||
|
12.1 Any person is authorized to duplicate and distribute copies of this
|
||||||
|
Agreement.
|
||||||
|
|
||||||
|
12.2 So as to ensure coherence, the wording of this Agreement is
|
||||||
|
protected and may only be modified by the authors of the License, who
|
||||||
|
reserve the right to periodically publish updates or new versions of the
|
||||||
|
Agreement, each with a separate number. These subsequent versions may
|
||||||
|
address new issues encountered by Free Software.
|
||||||
|
|
||||||
|
12.3 Any Software distributed under a given version of the Agreement may
|
||||||
|
only be subsequently distributed under the same version of the Agreement
|
||||||
|
or a subsequent version, subject to the provisions of Article 5.3.4.
|
||||||
|
|
||||||
|
|
||||||
|
Article 13 - GOVERNING LAW AND JURISDICTION
|
||||||
|
|
||||||
|
13.1 The Agreement is governed by French law. The Parties agree to
|
||||||
|
endeavor to seek an amicable solution to any disagreements or disputes
|
||||||
|
that may arise during the performance of the Agreement.
|
||||||
|
|
||||||
|
13.2 Failing an amicable solution within two (2) months as from their
|
||||||
|
occurrence, and unless emergency proceedings are necessary, the
|
||||||
|
disagreements or disputes shall be referred to the Paris Courts having
|
||||||
|
jurisdiction, by the more diligent Party.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Article 14 - NAMING OF THE CONTRIBUTIONS AND MODIFIED SOFTWARE
|
||||||
|
|
||||||
|
The name of distribution of a modified software refer in the name of the initial software.
|
||||||
|
The sources must clearly show name of the initial software, the name of its author, and his
|
||||||
|
Internet site.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.0 completed dated 2006-07-12.
|
520
3rdparty/crypt/Licence_CeCILL_V2-fr.txt
vendored
Executable file
@ -0,0 +1,520 @@
|
|||||||
|
|
||||||
|
CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL
|
||||||
|
|
||||||
|
|
||||||
|
Avertissement
|
||||||
|
|
||||||
|
Ce contrat est une licence de logiciel libre issue d'une concertation
|
||||||
|
entre ses auteurs afin que le respect de deux grands principes préside à
|
||||||
|
sa rédaction:
|
||||||
|
|
||||||
|
* d'une part, le respect des principes de diffusion des logiciels
|
||||||
|
libres: accès au code source, droits étendus conférés aux
|
||||||
|
utilisateurs,
|
||||||
|
* d'autre part, la désignation d'un droit applicable, le droit
|
||||||
|
français, auquel elle est conforme, tant au regard du droit de la
|
||||||
|
responsabilité civile que du droit de la propriété intellectuelle
|
||||||
|
et de la protection qu'il offre aux auteurs et titulaires des
|
||||||
|
droits patrimoniaux sur un logiciel.
|
||||||
|
|
||||||
|
Les auteurs de la licence CeCILL (pour Ce[a] C[nrs] I[nria] L[ogiciel]
|
||||||
|
L[ibre]) sont:
|
||||||
|
|
||||||
|
Commissariat à l'Energie Atomique - CEA, établissement public de recherche
|
||||||
|
à caractère scientifique technique et industriel, dont le siège est situé
|
||||||
|
5 rue Leblanc, immeuble Le Ponant D, 75015 Paris.
|
||||||
|
|
||||||
|
Centre National de la Recherche Scientifique - CNRS, établissement
|
||||||
|
public à caractère scientifique et technologique, dont le siège est
|
||||||
|
situé 3 rue Michel-Ange, 75794 Paris cedex 16.
|
||||||
|
|
||||||
|
Institut National de Recherche en Informatique et en Automatique -
|
||||||
|
INRIA, établissement public à caractère scientifique et technologique,
|
||||||
|
dont le siège est situé Domaine de Voluceau, Rocquencourt, BP 105, 78153
|
||||||
|
Le Chesnay cedex.
|
||||||
|
|
||||||
|
|
||||||
|
Préambule
|
||||||
|
|
||||||
|
Ce contrat est une licence de logiciel libre dont l'objectif est de
|
||||||
|
conférer aux utilisateurs la liberté de modification et de
|
||||||
|
redistribution du logiciel régi par cette licence dans le cadre d'un
|
||||||
|
modèle de diffusion en logiciel libre.
|
||||||
|
|
||||||
|
L'exercice de ces libertés est assorti de certains devoirs à la charge
|
||||||
|
des utilisateurs afin de préserver ce statut au cours des
|
||||||
|
redistributions ultérieures.
|
||||||
|
|
||||||
|
L'accessibilité au code source et les droits de copie, de modification
|
||||||
|
et de redistribution qui en découlent ont pour contrepartie de n'offrir
|
||||||
|
aux utilisateurs qu'une garantie limitée et de ne faire peser sur
|
||||||
|
l'auteur du logiciel, le titulaire des droits patrimoniaux et les
|
||||||
|
concédants successifs qu'une responsabilité restreinte.
|
||||||
|
|
||||||
|
A cet égard l'attention de l'utilisateur est attirée sur les risques
|
||||||
|
associés au chargement, à l'utilisation, à la modification et/ou au
|
||||||
|
développement et à la reproduction du logiciel par l'utilisateur étant
|
||||||
|
donné sa spécificité de logiciel libre, qui peut le rendre complexe à
|
||||||
|
manipuler et qui le réserve donc à des développeurs ou des
|
||||||
|
professionnels avertis possédant des connaissances informatiques
|
||||||
|
approfondies. Les utilisateurs sont donc invités à charger et tester
|
||||||
|
l'adéquation du logiciel à leurs besoins dans des conditions permettant
|
||||||
|
d'assurer la sécurité de leurs systèmes et/ou de leurs données et, plus
|
||||||
|
généralement, à l'utiliser et l'exploiter dans les mêmes conditions de
|
||||||
|
sécurité. Ce contrat peut être reproduit et diffusé librement, sous
|
||||||
|
réserve de le conserver en l'état, sans ajout ni suppression de clauses.
|
||||||
|
|
||||||
|
Ce contrat est susceptible de s'appliquer à tout logiciel dont le
|
||||||
|
titulaire des droits patrimoniaux décide de soumettre l'exploitation aux
|
||||||
|
dispositions qu'il contient.
|
||||||
|
|
||||||
|
|
||||||
|
Article 1 - DEFINITIONS
|
||||||
|
|
||||||
|
Dans ce contrat, les termes suivants, lorsqu'ils seront écrits avec une
|
||||||
|
lettre capitale, auront la signification suivante:
|
||||||
|
|
||||||
|
Contrat: désigne le présent contrat de licence, ses éventuelles versions
|
||||||
|
postérieures et annexes.
|
||||||
|
|
||||||
|
Logiciel: désigne le logiciel sous sa forme de Code Objet et/ou de Code
|
||||||
|
Source et le cas échéant sa documentation, dans leur état au moment de
|
||||||
|
l'acceptation du Contrat par le Licencié.
|
||||||
|
|
||||||
|
Logiciel Initial: désigne le Logiciel sous sa forme de Code Source et
|
||||||
|
éventuellement de Code Objet et le cas échéant sa documentation, dans
|
||||||
|
leur état au moment de leur première diffusion sous les termes du Contrat.
|
||||||
|
|
||||||
|
Logiciel Modifié: désigne le Logiciel modifié par au moins une
|
||||||
|
Contribution.
|
||||||
|
|
||||||
|
Code Source: désigne l'ensemble des instructions et des lignes de
|
||||||
|
programme du Logiciel et auquel l'accès est nécessaire en vue de
|
||||||
|
modifier le Logiciel.
|
||||||
|
|
||||||
|
Code Objet: désigne les fichiers binaires issus de la compilation du
|
||||||
|
Code Source.
|
||||||
|
|
||||||
|
Titulaire: désigne le ou les détenteurs des droits patrimoniaux d'auteur
|
||||||
|
sur le Logiciel Initial.
|
||||||
|
|
||||||
|
Licencié: désigne le ou les utilisateurs du Logiciel ayant accepté le
|
||||||
|
Contrat.
|
||||||
|
|
||||||
|
Contributeur: désigne le Licencié auteur d'au moins une Contribution.
|
||||||
|
|
||||||
|
Concédant: désigne le Titulaire ou toute personne physique ou morale
|
||||||
|
distribuant le Logiciel sous le Contrat.
|
||||||
|
|
||||||
|
Contribution: désigne l'ensemble des modifications, corrections,
|
||||||
|
traductions, adaptations et/ou nouvelles fonctionnalités intégrées dans
|
||||||
|
le Logiciel par tout Contributeur, ainsi que tout Module Interne.
|
||||||
|
|
||||||
|
Module: désigne un ensemble de fichiers sources y compris leur
|
||||||
|
documentation qui permet de réaliser des fonctionnalités ou services
|
||||||
|
supplémentaires à ceux fournis par le Logiciel.
|
||||||
|
|
||||||
|
Module Externe: désigne tout Module, non dérivé du Logiciel, tel que ce
|
||||||
|
Module et le Logiciel s'exécutent dans des espaces d'adressages
|
||||||
|
différents, l'un appelant l'autre au moment de leur exécution.
|
||||||
|
|
||||||
|
Module Interne: désigne tout Module lié au Logiciel de telle sorte
|
||||||
|
qu'ils s'exécutent dans le même espace d'adressage.
|
||||||
|
|
||||||
|
GNU GPL: désigne la GNU General Public License dans sa version 2 ou
|
||||||
|
toute version ultérieure, telle que publiée par Free Software Foundation
|
||||||
|
Inc.
|
||||||
|
|
||||||
|
Parties: désigne collectivement le Licencié et le Concédant.
|
||||||
|
|
||||||
|
Ces termes s'entendent au singulier comme au pluriel.
|
||||||
|
|
||||||
|
|
||||||
|
Article 2 - OBJET
|
||||||
|
|
||||||
|
Le Contrat a pour objet la concession par le Concédant au Licencié d'une
|
||||||
|
licence non exclusive, cessible et mondiale du Logiciel telle que
|
||||||
|
définie ci-après à l'article 5 pour toute la durée de protection des
|
||||||
|
droits portant sur ce Logiciel.
|
||||||
|
|
||||||
|
|
||||||
|
Article 3 - ACCEPTATION
|
||||||
|
|
||||||
|
3.1 L'acceptation par le Licencié des termes du Contrat est réputée
|
||||||
|
acquise du fait du premier des faits suivants:
|
||||||
|
|
||||||
|
* (i) le chargement du Logiciel par tout moyen notamment par
|
||||||
|
téléchargement à partir d'un serveur distant ou par chargement à
|
||||||
|
partir d'un support physique;
|
||||||
|
* (ii) le premier exercice par le Licencié de l'un quelconque des
|
||||||
|
droits concédés par le Contrat.
|
||||||
|
|
||||||
|
3.2 Un exemplaire du Contrat, contenant notamment un avertissement
|
||||||
|
relatif aux spécificités du Logiciel, à la restriction de garantie et à
|
||||||
|
la limitation à un usage par des utilisateurs expérimentés a été mis à
|
||||||
|
disposition du Licencié préalablement à son acceptation telle que
|
||||||
|
définie à l'article 3.1 ci dessus et le Licencié
|
||||||
|
reconnaît en avoir pris connaissance.
|
||||||
|
|
||||||
|
|
||||||
|
Article 4 - ENTREE EN VIGUEUR ET DUREE
|
||||||
|
|
||||||
|
|
||||||
|
4.1 ENTREE EN VIGUEUR
|
||||||
|
|
||||||
|
Le Contrat entre en vigueur à la date de son acceptation par le Licencié
|
||||||
|
telle que définie en 3.1.
|
||||||
|
|
||||||
|
|
||||||
|
4.2 DUREE
|
||||||
|
|
||||||
|
Le Contrat produira ses effets pendant toute la durée légale de
|
||||||
|
protection des droits patrimoniaux portant sur le Logiciel.
|
||||||
|
|
||||||
|
|
||||||
|
Article 5 - ETENDUE DES DROITS CONCEDES
|
||||||
|
|
||||||
|
Le Concédant concède au Licencié, qui accepte, les droits suivants sur
|
||||||
|
le Logiciel pour toutes destinations et pour la durée du Contrat dans
|
||||||
|
les conditions ci-après détaillées.
|
||||||
|
|
||||||
|
Par ailleurs, si le Concédant détient ou venait à détenir un ou
|
||||||
|
plusieurs brevets d'invention protégeant tout ou partie des
|
||||||
|
fonctionnalités du Logiciel ou de ses composants, il s'engage à ne pas
|
||||||
|
opposer les éventuels droits conférés par ces brevets aux Licenciés
|
||||||
|
successifs qui utiliseraient, exploiteraient ou modifieraient le
|
||||||
|
Logiciel. En cas de cession de ces brevets, le Concédant s'engage à
|
||||||
|
faire reprendre les obligations du présent alinéa aux cessionnaires.
|
||||||
|
|
||||||
|
|
||||||
|
5.1 DROIT D'UTILISATION
|
||||||
|
|
||||||
|
Le Licencié est autorisé à utiliser le Logiciel, sans restriction quant
|
||||||
|
aux domaines d'application, étant ci-après précisé que cela comporte:
|
||||||
|
|
||||||
|
1. la reproduction permanente ou provisoire du Logiciel en tout ou
|
||||||
|
partie par tout moyen et sous toute forme.
|
||||||
|
|
||||||
|
2. le chargement, l'affichage, l'exécution, ou le stockage du
|
||||||
|
Logiciel sur tout support.
|
||||||
|
|
||||||
|
3. la possibilité d'en observer, d'en étudier, ou d'en tester le
|
||||||
|
fonctionnement afin de déterminer les idées et principes qui sont
|
||||||
|
à la base de n'importe quel élément de ce Logiciel; et ceci,
|
||||||
|
lorsque le Licencié effectue toute opération de chargement,
|
||||||
|
d'affichage, d'exécution, de transmission ou de stockage du
|
||||||
|
Logiciel qu'il est en droit d'effectuer en vertu du Contrat.
|
||||||
|
|
||||||
|
|
||||||
|
5.2 DROIT D'APPORTER DES CONTRIBUTIONS
|
||||||
|
|
||||||
|
Le droit d'apporter des Contributions comporte le droit de traduire,
|
||||||
|
d'adapter, d'arranger ou d'apporter toute autre modification au Logiciel
|
||||||
|
et le droit de reproduire le Logiciel en résultant.
|
||||||
|
|
||||||
|
Le Licencié est autorisé à apporter toute Contribution au Logiciel sous
|
||||||
|
réserve de mentionner, de façon explicite, son nom en tant qu'auteur de
|
||||||
|
cette Contribution et la date de création de celle-ci.
|
||||||
|
|
||||||
|
|
||||||
|
5.3 DROIT DE DISTRIBUTION
|
||||||
|
|
||||||
|
Le droit de distribution comporte notamment le droit de diffuser, de
|
||||||
|
transmettre et de communiquer le Logiciel au public sur tout support et
|
||||||
|
par tout moyen ainsi que le droit de mettre sur le marché à titre
|
||||||
|
onéreux ou gratuit, un ou des exemplaires du Logiciel par tout procédé.
|
||||||
|
|
||||||
|
Le Licencié est autorisé à distribuer des copies du Logiciel, modifié ou
|
||||||
|
non, à des tiers dans les conditions ci-après détaillées.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.1 DISTRIBUTION DU LOGICIEL SANS MODIFICATION
|
||||||
|
|
||||||
|
Le Licencié est autorisé à distribuer des copies conformes du Logiciel,
|
||||||
|
sous forme de Code Source ou de Code Objet, à condition que cette
|
||||||
|
distribution respecte les dispositions du Contrat dans leur totalité et
|
||||||
|
soit accompagnée:
|
||||||
|
|
||||||
|
1. d'un exemplaire du Contrat,
|
||||||
|
|
||||||
|
2. d'un avertissement relatif à la restriction de garantie et de
|
||||||
|
responsabilité du Concédant telle que prévue aux articles 8
|
||||||
|
et 9,
|
||||||
|
|
||||||
|
et que, dans le cas où seul le Code Objet du Logiciel est redistribué,
|
||||||
|
le Licencié permette aux futurs Licenciés d'accéder facilement au Code
|
||||||
|
Source complet du Logiciel en indiquant les modalités d'accès, étant
|
||||||
|
entendu que le coût additionnel d'acquisition du Code Source ne devra
|
||||||
|
pas excéder le simple coût de transfert des données.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.2 DISTRIBUTION DU LOGICIEL MODIFIE
|
||||||
|
|
||||||
|
Lorsque le Licencié apporte une Contribution au Logiciel, les conditions
|
||||||
|
de distribution du Logiciel Modifié en résultant sont alors soumises à
|
||||||
|
l'intégralité des dispositions du Contrat.
|
||||||
|
|
||||||
|
Le Licencié est autorisé à distribuer le Logiciel Modifié, sous forme de
|
||||||
|
code source ou de code objet, à condition que cette distribution
|
||||||
|
respecte les dispositions du Contrat dans leur totalité et soit
|
||||||
|
accompagnée:
|
||||||
|
|
||||||
|
1. d'un exemplaire du Contrat,
|
||||||
|
|
||||||
|
2. d'un avertissement relatif à la restriction de garantie et de
|
||||||
|
responsabilité du Concédant telle que prévue aux articles 8
|
||||||
|
et 9,
|
||||||
|
|
||||||
|
et que, dans le cas où seul le Code Objet du Logiciel Modifié est
|
||||||
|
redistribué, le Licencié permette aux futurs Licenciés d'accéder
|
||||||
|
facilement au code source complet du Logiciel Modifié en indiquant les
|
||||||
|
modalités d'accès, étant entendu que le coût additionnel d'acquisition
|
||||||
|
du code source ne devra pas excéder le simple coût de transfert des données.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.3 DISTRIBUTION DES MODULES EXTERNES
|
||||||
|
|
||||||
|
Lorsque le Licencié a développé un Module Externe les conditions du
|
||||||
|
Contrat ne s'appliquent pas à ce Module Externe, qui peut être distribué
|
||||||
|
sous un contrat de licence différent.
|
||||||
|
|
||||||
|
|
||||||
|
5.3.4 COMPATIBILITE AVEC LA LICENCE GNU GPL
|
||||||
|
|
||||||
|
Le Licencié peut inclure un code soumis aux dispositions d'une des
|
||||||
|
versions de la licence GNU GPL dans le Logiciel modifié ou non et
|
||||||
|
distribuer l'ensemble sous les conditions de la même version de la
|
||||||
|
licence GNU GPL.
|
||||||
|
|
||||||
|
Le Licencié peut inclure le Logiciel modifié ou non dans un code soumis
|
||||||
|
aux dispositions d'une des versions de la licence GNU GPL et distribuer
|
||||||
|
l'ensemble sous les conditions de la même version de la licence GNU GPL.
|
||||||
|
|
||||||
|
|
||||||
|
Article 6 - PROPRIETE INTELLECTUELLE
|
||||||
|
|
||||||
|
|
||||||
|
6.1 SUR LE LOGICIEL INITIAL
|
||||||
|
|
||||||
|
Le Titulaire est détenteur des droits patrimoniaux sur le Logiciel
|
||||||
|
Initial. Toute utilisation du Logiciel Initial est soumise au respect
|
||||||
|
des conditions dans lesquelles le Titulaire a choisi de diffuser son
|
||||||
|
oeuvre et nul autre n'a la faculté de modifier les conditions de
|
||||||
|
diffusion de ce Logiciel Initial.
|
||||||
|
|
||||||
|
Le Titulaire s'engage à ce que le Logiciel Initial reste au moins régi
|
||||||
|
par la présente licence et ce, pour la durée visée à l'article 4.2.
|
||||||
|
|
||||||
|
|
||||||
|
6.2 SUR LES CONTRIBUTIONS
|
||||||
|
|
||||||
|
Le Licencié qui a développé une Contribution est titulaire sur celle-ci
|
||||||
|
des droits de propriété intellectuelle dans les conditions définies par
|
||||||
|
la législation applicable.
|
||||||
|
|
||||||
|
|
||||||
|
6.3 SUR LES MODULES EXTERNES
|
||||||
|
|
||||||
|
Le Licencié qui a développé un Module Externe est titulaire sur celui-ci
|
||||||
|
des droits de propriété intellectuelle dans les conditions définies par
|
||||||
|
la législation applicable et reste libre du choix du contrat régissant
|
||||||
|
sa diffusion.
|
||||||
|
|
||||||
|
|
||||||
|
6.4 DISPOSITIONS COMMUNES
|
||||||
|
|
||||||
|
Le Licencié s'engage expressément:
|
||||||
|
|
||||||
|
1. à ne pas supprimer ou modifier de quelque manière que ce soit les
|
||||||
|
mentions de propriété intellectuelle apposées sur le Logiciel;
|
||||||
|
|
||||||
|
2. à reproduire à l'identique lesdites mentions de propriété
|
||||||
|
intellectuelle sur les copies du Logiciel modifié ou non.
|
||||||
|
|
||||||
|
Le Licencié s'engage à ne pas porter atteinte, directement ou
|
||||||
|
indirectement, aux droits de propriété intellectuelle du Titulaire et/ou
|
||||||
|
des Contributeurs sur le Logiciel et à prendre, le cas échéant, à
|
||||||
|
l'égard de son personnel toutes les mesures nécessaires pour assurer le
|
||||||
|
respect des dits droits de propriété intellectuelle du Titulaire et/ou
|
||||||
|
des Contributeurs.
|
||||||
|
|
||||||
|
|
||||||
|
Article 7 - SERVICES ASSOCIES
|
||||||
|
|
||||||
|
7.1 Le Contrat n'oblige en aucun cas le Concédant à la réalisation de
|
||||||
|
prestations d'assistance technique ou de maintenance du Logiciel.
|
||||||
|
|
||||||
|
Cependant le Concédant reste libre de proposer ce type de services. Les
|
||||||
|
termes et conditions d'une telle assistance technique et/ou d'une telle
|
||||||
|
maintenance seront alors déterminés dans un acte séparé. Ces actes de
|
||||||
|
maintenance et/ou assistance technique n'engageront que la seule
|
||||||
|
responsabilité du Concédant qui les propose.
|
||||||
|
|
||||||
|
7.2 De même, tout Concédant est libre de proposer, sous sa seule
|
||||||
|
responsabilité, à ses licenciés une garantie, qui n'engagera que lui,
|
||||||
|
lors de la redistribution du Logiciel et/ou du Logiciel Modifié et ce,
|
||||||
|
dans les conditions qu'il souhaite. Cette garantie et les modalités
|
||||||
|
financières de son application feront l'objet d'un acte séparé entre le
|
||||||
|
Concédant et le Licencié.
|
||||||
|
|
||||||
|
|
||||||
|
Article 8 - RESPONSABILITE
|
||||||
|
|
||||||
|
8.1 Sous réserve des dispositions de l'article 8.2, le Licencié a la
|
||||||
|
faculté, sous réserve de prouver la faute du Concédant concerné, de
|
||||||
|
solliciter la réparation du préjudice direct qu'il subirait du fait du
|
||||||
|
logiciel et dont il apportera la preuve.
|
||||||
|
|
||||||
|
8.2 La responsabilité du Concédant est limitée aux engagements pris en
|
||||||
|
application du Contrat et ne saurait être engagée en raison notamment:
|
||||||
|
(i) des dommages dus à l'inexécution, totale ou partielle, de ses
|
||||||
|
obligations par le Licencié, (ii) des dommages directs ou indirects
|
||||||
|
découlant de l'utilisation ou des performances du Logiciel subis par le
|
||||||
|
Licencié et (iii) plus généralement d'un quelconque dommage indirect. En
|
||||||
|
particulier, les Parties conviennent expressément que tout préjudice
|
||||||
|
financier ou commercial (par exemple perte de données, perte de
|
||||||
|
bénéfices, perte d'exploitation, perte de clientèle ou de commandes,
|
||||||
|
manque à gagner, trouble commercial quelconque) ou toute action dirigée
|
||||||
|
contre le Licencié par un tiers, constitue un dommage indirect et
|
||||||
|
n'ouvre pas droit à réparation par le Concédant.
|
||||||
|
|
||||||
|
|
||||||
|
Article 9 - GARANTIE
|
||||||
|
|
||||||
|
9.1 Le Licencié reconnaît que l'état actuel des connaissances
|
||||||
|
scientifiques et techniques au moment de la mise en circulation du
|
||||||
|
Logiciel ne permet pas d'en tester et d'en vérifier toutes les
|
||||||
|
utilisations ni de détecter l'existence d'éventuels défauts. L'attention
|
||||||
|
du Licencié a été attirée sur ce point sur les risques associés au
|
||||||
|
chargement, à l'utilisation, la modification et/ou au développement et à
|
||||||
|
la reproduction du Logiciel qui sont réservés à des utilisateurs avertis.
|
||||||
|
|
||||||
|
Il relève de la responsabilité du Licencié de contrôler, par tous
|
||||||
|
moyens, l'adéquation du produit à ses besoins, son bon fonctionnement et
|
||||||
|
de s'assurer qu'il ne causera pas de dommages aux personnes et aux biens.
|
||||||
|
|
||||||
|
9.2 Le Concédant déclare de bonne foi être en droit de concéder
|
||||||
|
l'ensemble des droits attachés au Logiciel (comprenant notamment les
|
||||||
|
droits visés à l'article 5).
|
||||||
|
|
||||||
|
9.3 Le Licencié reconnaît que le Logiciel est fourni "en l'état" par le
|
||||||
|
Concédant sans autre garantie, expresse ou tacite, que celle prévue à
|
||||||
|
l'article 9.2 et notamment sans aucune garantie sur sa valeur
|
||||||
|
commerciale, son caractère sécurisé, innovant ou pertinent.
|
||||||
|
|
||||||
|
En particulier, le Concédant ne garantit pas que le Logiciel est exempt
|
||||||
|
d'erreur, qu'il fonctionnera sans interruption, qu'il sera compatible
|
||||||
|
avec l'équipement du Licencié et sa configuration logicielle ni qu'il
|
||||||
|
remplira les besoins du Licencié.
|
||||||
|
|
||||||
|
9.4 Le Concédant ne garantit pas, de manière expresse ou tacite, que le
|
||||||
|
Logiciel ne porte pas atteinte à un quelconque droit de propriété
|
||||||
|
intellectuelle d'un tiers portant sur un brevet, un logiciel ou sur tout
|
||||||
|
autre droit de propriété. Ainsi, le Concédant exclut toute garantie au
|
||||||
|
profit du Licencié contre les actions en contrefaçon qui pourraient être
|
||||||
|
diligentées au titre de l'utilisation, de la modification, et de la
|
||||||
|
redistribution du Logiciel. Néanmoins, si de telles actions sont
|
||||||
|
exercées contre le Licencié, le Concédant lui apportera son aide
|
||||||
|
technique et juridique pour sa défense. Cette aide technique et
|
||||||
|
juridique est déterminée au cas par cas entre le Concédant concerné et
|
||||||
|
le Licencié dans le cadre d'un protocole d'accord. Le Concédant dégage
|
||||||
|
toute responsabilité quant à l'utilisation de la dénomination du
|
||||||
|
Logiciel par le Licencié. Aucune garantie n'est apportée quant à
|
||||||
|
l'existence de droits antérieurs sur le nom du Logiciel et sur
|
||||||
|
l'existence d'une marque.
|
||||||
|
|
||||||
|
|
||||||
|
Article 10 - RESILIATION
|
||||||
|
|
||||||
|
10.1 En cas de manquement par le Licencié aux obligations mises à sa
|
||||||
|
charge par le Contrat, le Concédant pourra résilier de plein droit le
|
||||||
|
Contrat trente (30) jours après notification adressée au Licencié et
|
||||||
|
restée sans effet.
|
||||||
|
|
||||||
|
10.2 Le Licencié dont le Contrat est résilié n'est plus autorisé à
|
||||||
|
utiliser, modifier ou distribuer le Logiciel. Cependant, toutes les
|
||||||
|
licences qu'il aura concédées antérieurement à la résiliation du Contrat
|
||||||
|
resteront valides sous réserve qu'elles aient été effectuées en
|
||||||
|
conformité avec le Contrat.
|
||||||
|
|
||||||
|
|
||||||
|
Article 11 - DISPOSITIONS DIVERSES
|
||||||
|
|
||||||
|
|
||||||
|
11.1 CAUSE EXTERIEURE
|
||||||
|
|
||||||
|
Aucune des Parties ne sera responsable d'un retard ou d'une défaillance
|
||||||
|
d'exécution du Contrat qui serait dû à un cas de force majeure, un cas
|
||||||
|
fortuit ou une cause extérieure, telle que, notamment, le mauvais
|
||||||
|
fonctionnement ou les interruptions du réseau électrique ou de
|
||||||
|
télécommunication, la paralysie du réseau liée à une attaque
|
||||||
|
informatique, l'intervention des autorités gouvernementales, les
|
||||||
|
catastrophes naturelles, les dégâts des eaux, les tremblements de terre,
|
||||||
|
le feu, les explosions, les grèves et les conflits sociaux, l'état de
|
||||||
|
guerre...
|
||||||
|
|
||||||
|
11.2 Le fait, par l'une ou l'autre des Parties, d'omettre en une ou
|
||||||
|
plusieurs occasions de se prévaloir d'une ou plusieurs dispositions du
|
||||||
|
Contrat, ne pourra en aucun cas impliquer renonciation par la Partie
|
||||||
|
intéressée à s'en prévaloir ultérieurement.
|
||||||
|
|
||||||
|
11.3 Le Contrat annule et remplace toute convention antérieure, écrite
|
||||||
|
ou orale, entre les Parties sur le même objet et constitue l'accord
|
||||||
|
entier entre les Parties sur cet objet. Aucune addition ou modification
|
||||||
|
aux termes du Contrat n'aura d'effet à l'égard des Parties à moins
|
||||||
|
d'être faite par écrit et signée par leurs représentants dûment habilités.
|
||||||
|
|
||||||
|
11.4 Dans l'hypothèse où une ou plusieurs des dispositions du Contrat
|
||||||
|
s'avèrerait contraire à une loi ou à un texte applicable, existants ou
|
||||||
|
futurs, cette loi ou ce texte prévaudrait, et les Parties feraient les
|
||||||
|
amendements nécessaires pour se conformer à cette loi ou à ce texte.
|
||||||
|
Toutes les autres dispositions resteront en vigueur. De même, la
|
||||||
|
nullité, pour quelque raison que ce soit, d'une des dispositions du
|
||||||
|
Contrat ne saurait entraîner la nullité de l'ensemble du Contrat.
|
||||||
|
|
||||||
|
|
||||||
|
11.5 LANGUE
|
||||||
|
|
||||||
|
Le Contrat est rédigé en langue française et en langue anglaise, ces
|
||||||
|
deux versions faisant également foi.
|
||||||
|
|
||||||
|
|
||||||
|
Article 12 - NOUVELLES VERSIONS DU CONTRAT
|
||||||
|
|
||||||
|
12.1 Toute personne est autorisée à copier et distribuer des copies de
|
||||||
|
ce Contrat.
|
||||||
|
|
||||||
|
12.2 Afin d'en préserver la cohérence, le texte du Contrat est protégé
|
||||||
|
et ne peut être modifié que par les auteurs de la licence, lesquels se
|
||||||
|
réservent le droit de publier périodiquement des mises à jour ou de
|
||||||
|
nouvelles versions du Contrat, qui posséderont chacune un numéro
|
||||||
|
distinct. Ces versions ultérieures seront susceptibles de prendre en
|
||||||
|
compte de nouvelles problématiques rencontrées par les logiciels libres.
|
||||||
|
|
||||||
|
12.3 Tout Logiciel diffusé sous une version donnée du Contrat ne pourra
|
||||||
|
faire l'objet d'une diffusion ultérieure que sous la même version du
|
||||||
|
Contrat ou une version postérieure, sous réserve des dispositions de
|
||||||
|
l'article 5.3.4.
|
||||||
|
|
||||||
|
|
||||||
|
Article 13 - LOI APPLICABLE ET COMPETENCE TERRITORIALE
|
||||||
|
|
||||||
|
13.1 Le Contrat est régi par la loi française. Les Parties conviennent
|
||||||
|
de tenter de régler à l'amiable les différends ou litiges qui
|
||||||
|
viendraient à se produire par suite ou à l'occasion du Contrat.
|
||||||
|
|
||||||
|
13.2 A défaut d'accord amiable dans un délai de deux (2) mois à compter
|
||||||
|
de leur survenance et sauf situation relevant d'une procédure d'urgence,
|
||||||
|
les différends ou litiges seront portés par la Partie la plus diligente
|
||||||
|
devant les Tribunaux compétents de Paris.
|
||||||
|
|
||||||
|
|
||||||
|
Article 14 - NOMMAGE DES CONTRIBUTIONS ET LOGICIELS MODIFIES
|
||||||
|
|
||||||
|
Le nom de distribution d'un logiciel modifié doit faire référence au nom du logiciel initial.
|
||||||
|
Les sources doivent clairement faire apparaitre le nom du logiciel initial, le nom de son auteur,
|
||||||
|
et son site internet.
|
||||||
|
|
||||||
|
|
||||||
|
Version 2.0 complétée du 2006-07-12.
|
||||||
|
|
36
3rdparty/crypt/changelog.txt
vendored
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
Version 1.4
|
||||||
|
|
||||||
|
|
||||||
|
Ajouts:
|
||||||
|
-------
|
||||||
|
- Image de fond aleatoire: si vous indiquez un répertoire plutot qu'un fichier dans la variable $bgimg
|
||||||
|
l'image de fond sera choisie au hasard parmi celles du répertoire.
|
||||||
|
- Possibilité d'autoriser ou d'interdire la revalidation de la page de verification en cas de réactualisation
|
||||||
|
(variable $cryptoneuse) => (merci Aurélien)
|
||||||
|
- Ajout d'un fichier index.html dans chaque sous-répertoire
|
||||||
|
- Bruits: Ajout de brouillage par cercles aléatoires
|
||||||
|
- Bruits: Ajout de l'épaisseur variable du traits (variable $brushsize)
|
||||||
|
- Bruits: Ajout possibilité de couleur de brouillage aléatoire.
|
||||||
|
|
||||||
|
|
||||||
|
Modifications:
|
||||||
|
--------------
|
||||||
|
- Suppression des espaces saisis par erreurs lors de la copie du cryptogramme (merci Emmanuel)
|
||||||
|
- Changement du nom du fichier de configuration: config.inc.php => cryptographp.cfg.php
|
||||||
|
- Changement du nom du fichier functions.php => cryptographp.fct.php
|
||||||
|
- L'image du bouton régénerer (fichier reload.png) est transparente et de meilleure compression
|
||||||
|
=> Vous pouvez la remplacez par votre propre image si vous le souhaitez (fichier reload.png)
|
||||||
|
- Les images de messages d'erreurs (répertoire images) sont de meilleure compression
|
||||||
|
|
||||||
|
|
||||||
|
Corrections:
|
||||||
|
------------
|
||||||
|
- Changement de la méthode de détection du répertoire d'installation.
|
||||||
|
- Gestion des sites avec configuration "safe_mode=on"
|
||||||
|
- correction de la balise <img> dans functions.php (Merci Lionel)
|
||||||
|
- Correction de la casse et du nom des polices.
|
||||||
|
|
||||||
|
|
||||||
|
Suppressions:
|
||||||
|
-------------
|
||||||
|
- suppression d'une portion de code deja en commentaire dans la version précédente.
|
164
3rdparty/crypt/cryptographp.cfg.php
vendored
Executable file
@ -0,0 +1,164 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// -----------------------------------------------
|
||||||
|
// Cryptographp v1.4
|
||||||
|
// (c) 2006-2007 Sylvain BRISON
|
||||||
|
//
|
||||||
|
// www.cryptographp.com
|
||||||
|
// cryptographp@alphpa.com
|
||||||
|
//
|
||||||
|
// Licence CeCILL modifiée
|
||||||
|
// => Voir fichier Licence_CeCILL_V2-fr.txt)
|
||||||
|
// -----------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
// Configuration du fond du cryptogramme
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
$cryptwidth = 130; // Largeur du cryptogramme (en pixels)
|
||||||
|
$cryptheight = 40; // Hauteur du cryptogramme (en pixels)
|
||||||
|
|
||||||
|
$bgR = 255; // Couleur du fond au format RGB: Red (0->255)
|
||||||
|
$bgG = 255; // Couleur du fond au format RGB: Green (0->255)
|
||||||
|
$bgB = 255; // Couleur du fond au format RGB: Blue (0->255)
|
||||||
|
|
||||||
|
$bgclear = true; // Fond transparent (true/false)
|
||||||
|
// Uniquement valable pour le format PNG
|
||||||
|
|
||||||
|
$bgimg = ''; // Le fond du cryptogramme peut-être une image
|
||||||
|
// PNG, GIF ou JPG. Indiquer le fichier image
|
||||||
|
// Exemple: $fondimage = 'photo.gif';
|
||||||
|
// L'image sera redimensionnée si nécessaire
|
||||||
|
// pour tenir dans le cryptogramme.
|
||||||
|
// Si vous indiquez un répertoire plutôt qu'un
|
||||||
|
// fichier l'image sera prise au hasard parmi
|
||||||
|
// celles disponibles dans le répertoire
|
||||||
|
|
||||||
|
$bgframe = true; // Ajoute un cadre de l'image (true/false)
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------
|
||||||
|
// Configuration des caractères
|
||||||
|
// ----------------------------
|
||||||
|
|
||||||
|
// Couleur de base des caractères
|
||||||
|
|
||||||
|
$charR = 0; // Couleur des caractères au format RGB: Red (0->255)
|
||||||
|
$charG = 0; // Couleur des caractères au format RGB: Green (0->255)
|
||||||
|
$charB = 0; // Couleur des caractères au format RGB: Blue (0->255)
|
||||||
|
|
||||||
|
$charcolorrnd = true; // Choix aléatoire de la couleur.
|
||||||
|
$charcolorrndlevel = 2; // Niveau de clarté des caractères si choix aléatoire (0->4)
|
||||||
|
// 0: Aucune sélection
|
||||||
|
// 1: Couleurs très sombres (surtout pour les fonds clairs)
|
||||||
|
// 2: Couleurs sombres
|
||||||
|
// 3: Couleurs claires
|
||||||
|
// 4: Couleurs très claires (surtout pour fonds sombres)
|
||||||
|
|
||||||
|
$charclear = 10; // Intensité de la transparence des caractères (0->127)
|
||||||
|
// 0=opaques; 127=invisibles
|
||||||
|
// interessant si vous utilisez une image $bgimg
|
||||||
|
// Uniquement si PHP >=3.2.1
|
||||||
|
|
||||||
|
// Polices de caractères
|
||||||
|
|
||||||
|
//$tfont[] = 'Alanden_.ttf'; // Les polices seront aléatoirement utilisées.
|
||||||
|
//$tfont[] = 'bsurp___.ttf'; // Vous devez copier les fichiers correspondants
|
||||||
|
//$tfont[] = 'ELECHA__.TTF'; // sur le serveur.
|
||||||
|
$tfont[] = 'luggerbu.ttf'; // Ajoutez autant de lignes que vous voulez
|
||||||
|
//$tfont[] = 'RASCAL__.TTF'; // Respectez la casse !
|
||||||
|
//$tfont[] = 'SCRAWL.TTF';
|
||||||
|
$tfont[] = 'WAVY.TTF';
|
||||||
|
|
||||||
|
|
||||||
|
// Caracteres autorisés
|
||||||
|
// Attention, certaines polices ne distinguent pas (ou difficilement) les majuscules
|
||||||
|
// et les minuscules. Certains caractères sont faciles à confondre, il est donc
|
||||||
|
// conseillé de bien choisir les caractères utilisés.
|
||||||
|
|
||||||
|
$charel = 'ABCDEFGHKLMNPRTWXYZ234569'; // Caractères autorisés
|
||||||
|
|
||||||
|
$crypteasy = true; // Création de cryptogrammes "faciles à lire" (true/false)
|
||||||
|
// composés alternativement de consonnes et de voyelles.
|
||||||
|
|
||||||
|
$charelc = 'BCDFGHKLMNPRTVWXZ'; // Consonnes utilisées si $crypteasy = true
|
||||||
|
$charelv = 'AEIOUY'; // Voyelles utilisées si $crypteasy = true
|
||||||
|
|
||||||
|
$difuplow = false; // Différencie les Maj/Min lors de la saisie du code (true, false)
|
||||||
|
|
||||||
|
$charnbmin = 4; // Nb minimum de caracteres dans le cryptogramme
|
||||||
|
$charnbmax = 4; // Nb maximum de caracteres dans le cryptogramme
|
||||||
|
|
||||||
|
$charspace = 20; // Espace entre les caracteres (en pixels)
|
||||||
|
$charsizemin = 14; // Taille minimum des caractères
|
||||||
|
$charsizemax = 16; // Taille maximum des caractères
|
||||||
|
|
||||||
|
$charanglemax = 25; // Angle maximum de rotation des caracteres (0-360)
|
||||||
|
$charup = true; // Déplacement vertical aléatoire des caractères (true/false)
|
||||||
|
|
||||||
|
// Effets supplémentaires
|
||||||
|
|
||||||
|
$cryptgaussianblur = false; // Transforme l'image finale en brouillant: méthode Gauss (true/false)
|
||||||
|
// uniquement si PHP >= 5.0.0
|
||||||
|
$cryptgrayscal = false; // Transforme l'image finale en dégradé de gris (true/false)
|
||||||
|
// uniquement si PHP >= 5.0.0
|
||||||
|
|
||||||
|
// ----------------------
|
||||||
|
// Configuration du bruit
|
||||||
|
// ----------------------
|
||||||
|
|
||||||
|
$noisepxmin = 200; // Bruit: Nb minimum de pixels aléatoires
|
||||||
|
$noisepxmax = 300; // Bruit: Nb maximum de pixels aléatoires
|
||||||
|
|
||||||
|
$noiselinemin = 3; // Bruit: Nb minimum de lignes aléatoires
|
||||||
|
$noiselinemax = 5; // Bruit: Nb maximum de lignes aléatoires
|
||||||
|
|
||||||
|
$nbcirclemin = 3; // Bruit: Nb minimum de cercles aléatoires
|
||||||
|
$nbcirclemax = 5; // Bruit: Nb maximim de cercles aléatoires
|
||||||
|
|
||||||
|
$noisecolorchar = 3; // Bruit: Couleur d'ecriture des pixels, lignes, cercles:
|
||||||
|
// 1: Couleur d'écriture des caractères
|
||||||
|
// 2: Couleur du fond
|
||||||
|
// 3: Couleur aléatoire
|
||||||
|
|
||||||
|
$brushsize = 1; // Taille d'ecriture du princeaiu (en pixels)
|
||||||
|
// de 1 à 25 (les valeurs plus importantes peuvent provoquer un
|
||||||
|
// Internal Server Error sur certaines versions de PHP/GD)
|
||||||
|
// Ne fonctionne pas sur les anciennes configurations PHP/GD
|
||||||
|
|
||||||
|
$noiseup = false; // Le bruit est-il par dessus l'ecriture (true) ou en dessous (false)
|
||||||
|
|
||||||
|
// --------------------------------
|
||||||
|
// Configuration système & sécurité
|
||||||
|
// --------------------------------
|
||||||
|
|
||||||
|
$cryptformat = "png"; // Format du fichier image généré "GIF", "PNG" ou "JPG"
|
||||||
|
// Si vous souhaitez un fond transparent, utilisez "PNG" (et non "GIF")
|
||||||
|
// Attention certaines versions de la bibliotheque GD ne gerent pas GIF !!!
|
||||||
|
|
||||||
|
$cryptsecure = "md5"; // Méthode de crytpage utilisée: "md5", "sha1" ou "" (aucune)
|
||||||
|
// "sha1" seulement si PHP>=4.2.0
|
||||||
|
// Si aucune méthode n'est indiquée, le code du cyptogramme est stocké
|
||||||
|
// en clair dans la session.
|
||||||
|
|
||||||
|
$cryptusetimer = 0; // Temps (en seconde) avant d'avoir le droit de regénérer un cryptogramme
|
||||||
|
|
||||||
|
$cryptusertimererror = 3; // Action à réaliser si le temps minimum n'est pas respecté:
|
||||||
|
// 1: Ne rien faire, ne pas renvoyer d'image.
|
||||||
|
// 2: L'image renvoyée est "images/erreur2.png" (vous pouvez la modifier)
|
||||||
|
// 3: Le script se met en pause le temps correspondant (attention au timeout
|
||||||
|
// par défaut qui coupe les scripts PHP au bout de 30 secondes)
|
||||||
|
// voir la variable "max_execution_time" de votre configuration PHP
|
||||||
|
|
||||||
|
$cryptusemax = 1000; // Nb maximum de fois que l'utilisateur peut générer le cryptogramme
|
||||||
|
// Si dépassement, l'image renvoyée est "images/erreur1.png"
|
||||||
|
// PS: Par défaut, la durée d'une session PHP est de 180 mn, sauf si
|
||||||
|
// l'hebergeur ou le développeur du site en ont décidé autrement...
|
||||||
|
// Cette limite est effective pour toute la durée de la session.
|
||||||
|
|
||||||
|
$cryptoneuse = false; // Si vous souhaitez que la page de verification ne valide qu'une seule
|
||||||
|
// fois la saisie en cas de rechargement de la page indiquer "true".
|
||||||
|
// Sinon, le rechargement de la page confirmera toujours la saisie.
|
||||||
|
|
||||||
|
?>
|
58
3rdparty/crypt/cryptographp.fct.php
vendored
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// -----------------------------------------------
|
||||||
|
// Cryptographp v1.4
|
||||||
|
// (c) 2006-2007 Sylvain BRISON
|
||||||
|
//
|
||||||
|
// www.cryptographp.com
|
||||||
|
// cryptographp@alphpa.com
|
||||||
|
//
|
||||||
|
// Licence CeCILL modifiée
|
||||||
|
// => Voir fichier Licence_CeCILL_V2-fr.txt)
|
||||||
|
// -----------------------------------------------
|
||||||
|
|
||||||
|
if(session_id() == "") session_start();
|
||||||
|
|
||||||
|
$_SESSION['cryptdir']= dirname($cryptinstall);
|
||||||
|
|
||||||
|
|
||||||
|
function dsp_crypt($cfg=0,$reload=1, $table = true) {
|
||||||
|
// Affiche le cryptogramme (soit un tableau soit avec un <span>
|
||||||
|
if($table)
|
||||||
|
{
|
||||||
|
echo "<table><tr><td><img id='cryptogram' src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."'></td>";
|
||||||
|
if ($reload) echo "<td><a title='".($reload==1?'':$reload)."' style=\"cursor:pointer\" onclick=\"javascript:document.images.cryptogram.src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."&'+Math.round(Math.random(0)*1000)+1\"><img src=\"".$_SESSION['cryptdir']."/images/reload.png\"></a></td>";
|
||||||
|
echo "</tr></table>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
echo "<span style='height:40px; width: 161px;'><img style='background-color: #FFFFFF;' id='cryptogram' src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."'></td>";
|
||||||
|
if ($reload) echo "<a title='".($reload==1?'':$reload)."' style=\"cursor:pointer\" onclick=\"javascript:document.images.cryptogram.src='".$_SESSION['cryptdir']."/cryptographp.php?cfg=".$cfg."&".SID."&'+Math.round(Math.random(0)*1000)+1\"><img src=\"".$_SESSION['cryptdir']."/images/reload.png\"></a>";
|
||||||
|
echo "</span>";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function chk_crypt($code) {
|
||||||
|
// Vérifie si le code est correct
|
||||||
|
include ($_SESSION['configfile']);
|
||||||
|
$code = addslashes ($code);
|
||||||
|
$code = str_replace(' ','',$code); // supprime les espaces saisis par erreur.
|
||||||
|
$code = ($difuplow?$code:strtoupper($code));
|
||||||
|
switch (strtoupper($cryptsecure)) {
|
||||||
|
case "MD5" : $code = md5($code); break;
|
||||||
|
case "SHA1" : $code = sha1($code); break;
|
||||||
|
}
|
||||||
|
if ($_SESSION['cryptcode'] and ($_SESSION['cryptcode'] == $code))
|
||||||
|
{
|
||||||
|
unset($_SESSION['cryptreload']);
|
||||||
|
if ($cryptoneuse) unset($_SESSION['cryptcode']);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$_SESSION['cryptreload']= true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
272
3rdparty/crypt/cryptographp.inc.php
vendored
Executable file
@ -0,0 +1,272 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// -----------------------------------------------
|
||||||
|
// Cryptographp v1.4
|
||||||
|
// (c) 2006-2007 Sylvain BRISON
|
||||||
|
//
|
||||||
|
// www.cryptographp.com
|
||||||
|
// cryptographp@alphpa.com
|
||||||
|
//
|
||||||
|
// Licence CeCILL modifiée
|
||||||
|
// => Voir fichier Licence_CeCILL_V2-fr.txt)
|
||||||
|
// -----------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
error_reporting(E_ALL ^ E_NOTICE);
|
||||||
|
srand((double)microtime()*1000000);
|
||||||
|
|
||||||
|
if ((!isset($_COOKIE['cryptcookietest'])) and ($_GET[$_GET['sn']]==""))
|
||||||
|
{
|
||||||
|
header("Content-type: image/png");
|
||||||
|
readfile('images/erreur3.png');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($_GET[$_GET['sn']]=="") unset ($_GET['sn']);
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
|
||||||
|
// N'accepte que les fichiers de config du meme répertoire
|
||||||
|
if (is_file($_GET['cfg']) and dirname($_GET['cfg'])=='.' ) $_SESSION['configfile']=$_GET['cfg'];
|
||||||
|
else $_SESSION['configfile']="cryptographp.cfg.php";
|
||||||
|
|
||||||
|
include($_SESSION['configfile']);
|
||||||
|
|
||||||
|
|
||||||
|
// Vérifie si l'utilisateur a le droit de (re)générer un cryptogramme
|
||||||
|
if ($_SESSION['cryptcptuse']>=$cryptusemax) {
|
||||||
|
header("Content-type: image/png");
|
||||||
|
readfile('images/erreur1.png');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
$delai = time()-$_SESSION['crypttime'];
|
||||||
|
if ($delai < $cryptusetimer) {
|
||||||
|
switch ($cryptusertimererror) {
|
||||||
|
case 2 : header("Content-type: image/png");
|
||||||
|
readfile('images/erreur2.png');
|
||||||
|
exit;
|
||||||
|
case 3 : sleep ($cryptusetimer-$delai);
|
||||||
|
break; // Fait une pause
|
||||||
|
case 1 :
|
||||||
|
default : exit; // Quitte le script sans rien faire
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Création du cryptogramme temporaire
|
||||||
|
$imgtmp = imagecreatetruecolor($cryptwidth,$cryptheight);
|
||||||
|
$blank = imagecolorallocate($imgtmp,255,255,255);
|
||||||
|
$black = imagecolorallocate($imgtmp,0,0,0);
|
||||||
|
imagefill($imgtmp,0,0,$blank);
|
||||||
|
|
||||||
|
|
||||||
|
$word ='';
|
||||||
|
$x = 10;
|
||||||
|
$pair = rand(0,1);
|
||||||
|
$charnb = rand($charnbmin,$charnbmax);
|
||||||
|
for ($i=1;$i<= $charnb;$i++) {
|
||||||
|
$tword[$i]['font'] = $tfont[array_rand($tfont,1)];
|
||||||
|
$tword[$i]['angle'] = (rand(1,2)==1)?rand(0,$charanglemax):rand(360-$charanglemax,360);
|
||||||
|
|
||||||
|
if ($crypteasy) $tword[$i]['element'] =(!$pair)?$charelc{rand(0,strlen($charelc)-1)}:$charelv{rand(0,strlen($charelv)-1)};
|
||||||
|
else $tword[$i]['element'] = $charel{rand(0,strlen($charel)-1)};
|
||||||
|
|
||||||
|
$pair=!$pair;
|
||||||
|
$tword[$i]['size'] = rand($charsizemin,$charsizemax);
|
||||||
|
$tword[$i]['y'] = ($charup?($cryptheight/2)+rand(0,($cryptheight/5)):($cryptheight/1.5));
|
||||||
|
$word .=$tword[$i]['element'];
|
||||||
|
|
||||||
|
$lafont="fonts/".$tword[$i]['font'];
|
||||||
|
imagettftext($imgtmp,$tword[$i]['size'],$tword[$i]['angle'],$x,$tword[$i]['y'],$black,$lafont,$tword[$i]['element']);
|
||||||
|
|
||||||
|
$x +=$charspace;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calcul du racadrage horizontal du cryptogramme temporaire
|
||||||
|
$xbegin=0;
|
||||||
|
$x=0;
|
||||||
|
while (($x<$cryptwidth)and(!$xbegin)) {
|
||||||
|
$y=0;
|
||||||
|
while (($y<$cryptheight)and(!$xbegin)) {
|
||||||
|
if (imagecolorat($imgtmp,$x,$y) != $blank) $xbegin = $x;
|
||||||
|
$y++;
|
||||||
|
}
|
||||||
|
$x++;
|
||||||
|
}
|
||||||
|
|
||||||
|
$xend=0;
|
||||||
|
$x=$cryptwidth-1;
|
||||||
|
while (($x>0)and(!$xend)) {
|
||||||
|
$y=0;
|
||||||
|
while (($y<$cryptheight)and(!$xend)) {
|
||||||
|
if (imagecolorat($imgtmp,$x,$y) != $blank) $xend = $x;
|
||||||
|
$y++;
|
||||||
|
}
|
||||||
|
$x--;
|
||||||
|
}
|
||||||
|
|
||||||
|
$xvariation = round(($cryptwidth/2)-(($xend-$xbegin)/2));
|
||||||
|
imagedestroy ($imgtmp);
|
||||||
|
|
||||||
|
|
||||||
|
// Création du cryptogramme définitif
|
||||||
|
// Création du fond
|
||||||
|
$img = imagecreatetruecolor($cryptwidth,$cryptheight);
|
||||||
|
|
||||||
|
if ($bgimg and is_dir($bgimg)) {
|
||||||
|
$dh = opendir($bgimg);
|
||||||
|
while (false !== ($filename = readdir($dh)))
|
||||||
|
if(eregi(".[gif|jpg|png]$", $filename)) $files[] = $filename;
|
||||||
|
closedir($dh);
|
||||||
|
$bgimg = $bgimg.'/'.$files[array_rand($files,1)];
|
||||||
|
}
|
||||||
|
if ($bgimg) {
|
||||||
|
list($getwidth, $getheight, $gettype, $getattr) = getimagesize($bgimg);
|
||||||
|
switch ($gettype) {
|
||||||
|
case "1": $imgread = imagecreatefromgif($bgimg); break;
|
||||||
|
case "2": $imgread = imagecreatefromjpeg($bgimg); break;
|
||||||
|
case "3": $imgread = imagecreatefrompng($bgimg); break;
|
||||||
|
}
|
||||||
|
imagecopyresized ($img, $imgread, 0,0,0,0,$cryptwidth,$cryptheight,$getwidth,$getheight);
|
||||||
|
imagedestroy ($imgread);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$bg = imagecolorallocate($img,$bgR,$bgG,$bgB);
|
||||||
|
imagefill($img,0,0,$bg);
|
||||||
|
if ($bgclear) imagecolortransparent($img,$bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function ecriture()
|
||||||
|
{
|
||||||
|
// Création de l'écriture
|
||||||
|
global $img, $ink, $charR, $charG, $charB, $charclear, $xvariation, $charnb, $charcolorrnd, $charcolorrndlevel, $tword, $charspace;
|
||||||
|
if (function_exists ('imagecolorallocatealpha')) $ink = imagecolorallocatealpha($img,$charR,$charG,$charB,$charclear);
|
||||||
|
else $ink = imagecolorallocate ($img,$charR,$charG,$charB);
|
||||||
|
|
||||||
|
$x = $xvariation;
|
||||||
|
for ($i=1;$i<=$charnb;$i++) {
|
||||||
|
|
||||||
|
if ($charcolorrnd){ // Choisit des couleurs au hasard
|
||||||
|
$ok = false;
|
||||||
|
do {
|
||||||
|
$rndR = rand(0,255); $rndG = rand(0,255); $rndB = rand(0,255);
|
||||||
|
$rndcolor = $rndR+$rndG+$rndB;
|
||||||
|
switch ($charcolorrndlevel) {
|
||||||
|
case 1 : if ($rndcolor<200) $ok=true; break; // tres sombre
|
||||||
|
case 2 : if ($rndcolor<400) $ok=true; break; // sombre
|
||||||
|
case 3 : if ($rndcolor>500) $ok=true; break; // claires
|
||||||
|
case 4 : if ($rndcolor>650) $ok=true; break; // très claires
|
||||||
|
default : $ok=true;
|
||||||
|
}
|
||||||
|
} while (!$ok);
|
||||||
|
|
||||||
|
if (function_exists ('imagecolorallocatealpha')) $rndink = imagecolorallocatealpha($img,$rndR,$rndG,$rndB,$charclear);
|
||||||
|
else $rndink = imagecolorallocate ($img,$rndR,$rndG,$rndB);
|
||||||
|
}
|
||||||
|
|
||||||
|
$lafont="fonts/".$tword[$i]['font'];
|
||||||
|
imagettftext($img,$tword[$i]['size'],$tword[$i]['angle'],$x,$tword[$i]['y'],$charcolorrnd?$rndink:$ink,$lafont,$tword[$i]['element']);
|
||||||
|
|
||||||
|
$x +=$charspace;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function noisecolor()
|
||||||
|
// Fonction permettant de déterminer la couleur du bruit et la forme du pinceau
|
||||||
|
{
|
||||||
|
global $img, $noisecolorchar, $ink, $bg, $brushsize;
|
||||||
|
switch ($noisecolorchar) {
|
||||||
|
case 1 : $noisecol=$ink; break;
|
||||||
|
case 2 : $noisecol=$bg; break;
|
||||||
|
case 3 :
|
||||||
|
default : $noisecol=imagecolorallocate ($img,rand(0,255),rand(0,255),rand(0,255)); break;
|
||||||
|
}
|
||||||
|
if ($brushsize and $brushsize>1 and function_exists('imagesetbrush')) {
|
||||||
|
$brush = imagecreatetruecolor($brushsize,$brushsize);
|
||||||
|
imagefill($brush,0,0,$noisecol);
|
||||||
|
imagesetbrush($img,$brush);
|
||||||
|
$noisecol=IMG_COLOR_BRUSHED;
|
||||||
|
}
|
||||||
|
return $noisecol;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function bruit()
|
||||||
|
// Ajout de bruits: point, lignes et cercles aléatoires
|
||||||
|
{
|
||||||
|
global $noisepxmin, $noisepxmax, $noiselinemin, $noiselinemax, $nbcirclemin, $nbcirclemax,$img, $cryptwidth, $cryptheight;
|
||||||
|
$nbpx = rand($noisepxmin,$noisepxmax);
|
||||||
|
$nbline = rand($noiselinemin,$noiselinemax);
|
||||||
|
$nbcircle = rand($nbcirclemin,$nbcirclemax);
|
||||||
|
for ($i=1;$i<$nbpx;$i++) imagesetpixel ($img,rand(0,$cryptwidth-1),rand(0,$cryptheight-1),noisecolor());
|
||||||
|
for ($i=1;$i<=$nbline;$i++) imageline($img,rand(0,$cryptwidth-1),rand(0,$cryptheight-1),rand(0,$cryptwidth-1),rand(0,$cryptheight-1),noisecolor());
|
||||||
|
for ($i=1;$i<=$nbcircle;$i++) imagearc($img,rand(0,$cryptwidth-1),rand(0,$cryptheight-1),$rayon=rand(5,$cryptwidth/3),$rayon,0,360,noisecolor());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($noiseup) {
|
||||||
|
ecriture();
|
||||||
|
bruit();
|
||||||
|
} else {
|
||||||
|
bruit();
|
||||||
|
ecriture();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Création du cadre
|
||||||
|
if ($bgframe) {
|
||||||
|
$framecol = imagecolorallocate($img,($bgR*3+$charR)/4,($bgG*3+$charG)/4,($bgB*3+$charB)/4);
|
||||||
|
imagerectangle($img,0,0,$cryptwidth-1,$cryptheight-1,$framecol);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Transformations supplémentaires: Grayscale et Brouillage
|
||||||
|
// Vérifie si la fonction existe dans la version PHP installée
|
||||||
|
if (function_exists('imagefilter')) {
|
||||||
|
if ($cryptgrayscal) imagefilter ( $img,IMG_FILTER_GRAYSCALE);
|
||||||
|
if ($cryptgaussianblur) imagefilter ( $img,IMG_FILTER_GAUSSIAN_BLUR);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Conversion du cryptogramme en Majuscule si insensibilité à la casse
|
||||||
|
$word = ($difuplow?$word:strtoupper($word));
|
||||||
|
|
||||||
|
|
||||||
|
// Retourne 2 informations dans la session:
|
||||||
|
// - Le code du cryptogramme (crypté ou pas)
|
||||||
|
// - La Date/Heure de la création du cryptogramme au format integer "TimeStamp"
|
||||||
|
switch (strtoupper($cryptsecure)) {
|
||||||
|
case "MD5" : $_SESSION['cryptcode'] = md5($word); break;
|
||||||
|
case "SHA1" : $_SESSION['cryptcode'] = sha1($word); break;
|
||||||
|
default : $_SESSION['cryptcode'] = $word; break;
|
||||||
|
}
|
||||||
|
$_SESSION['crypttime'] = time();
|
||||||
|
$_SESSION['cryptcptuse']++;
|
||||||
|
|
||||||
|
|
||||||
|
// Envoi de l'image finale au navigateur
|
||||||
|
switch (strtoupper($cryptformat)) {
|
||||||
|
case "JPG" :
|
||||||
|
case "JPEG" : if (imagetypes() & IMG_JPG) {
|
||||||
|
header("Content-type: image/jpeg");
|
||||||
|
imagejpeg($img, "", 80);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "GIF" : if (imagetypes() & IMG_GIF) {
|
||||||
|
header("Content-type: image/gif");
|
||||||
|
imagegif($img);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "PNG" :
|
||||||
|
default : if (imagetypes() & IMG_PNG) {
|
||||||
|
header("Content-type: image/png");
|
||||||
|
imagepng($img);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
imagedestroy ($img);
|
||||||
|
unset ($word,$tword);
|
||||||
|
unset ($_SESSION['cryptreload']);
|
||||||
|
?>
|
19
3rdparty/crypt/cryptographp.php
vendored
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// -----------------------------------------------
|
||||||
|
// Cryptographp v1.4
|
||||||
|
// (c) 2006-2007 Sylvain BRISON
|
||||||
|
//
|
||||||
|
// www.cryptographp.com
|
||||||
|
// cryptographp@alphpa.com
|
||||||
|
//
|
||||||
|
// Licence CeCILL modifiée
|
||||||
|
// => Voir fichier Licence_CeCILL_V2-fr.txt)
|
||||||
|
// -----------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
session_start();
|
||||||
|
error_reporting(E_ALL ^ E_NOTICE);
|
||||||
|
SetCookie("cryptcookietest", "1");
|
||||||
|
Header("Location: cryptographp.inc.php?cfg=".$_GET['cfg']."&sn=".session_name()."&".SID);
|
||||||
|
?>
|
1
3rdparty/crypt/fonts/AOEFREE.TXT
vendored
Executable file
@ -0,0 +1 @@
|
|||||||
|
Freeware Fonts Galore
(c)1997 by Astigmatic One Eye Fonts
You have just downloaded a Freeware Font created by Astigmatic One Eye Font Foundry. Since November of '97 we have been striving to create more high quality fonts, sometimes serious, sometimes bizarre, always interesting, and atleast 1 new FREEWARE font EVERY MONTH! Available for Macintosh and Windows PC in TrueType format.
Be sure to take the time to check out our fonts for sale, for without your support we will be unable to offer you our free fonts EVERY MONTH. Any $10 font registration and purchase will get the full version of that particular font in whatever format best suits your needs, (Postscript, or TrueType.), and also a full copy of one of our special freebies with a purchase fonts, some of our freeware fonts, and trial versions of a few other shareware typefaces. Be sure to check out our full variety of fonts, always growing.
Visit A.O.E. at: http://www.comptechdev.com/cavop/aoe/
or send e-mail to: astigma@comptechdev.com
You're welcome to pass the Freeware version of this font along for others to review, as long as this document is also included in the transfer. Many thanks for your consideration.
Please do not include this font on any CD-Roms without written consent from AOE. This font is not to be resold or remarketed. This font is free to use in any private manner. If you plan to use this font commercially in any manner please contact AOE concerning this.
Thank you.
All Rights Reserved by Astigmatic One Eye & CAV OP Studios©.
Brian J. Bonislawsky
astigma@comptechdev.com
===========================================================================================
http://www.comptechdev.com/cavop/aoe/
|
24
3rdparty/crypt/fonts/Alanden.txt
vendored
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
Alan Den v1.0
|
||||||
|
Freeware from Unauthorized Type
|
||||||
|
|
||||||
|
This version includes two different versions of upper letters, punctuation, and some international characters. I also included some UA Type dingbats (just to amuse myself, and so you don't get those annoying boxes when you type something that isn't in the font).
|
||||||
|
|
||||||
|
I enjoy looking at calligraphy. One day I was searching the web for calligraphy, and I came across a cool picture of some lady's work. So I based a font on it. The original letters didn't have a full character set, so I had to come up with those on my own.
|
||||||
|
|
||||||
|
The original quote that inspired this font was:
|
||||||
|
|
||||||
|
Allies
|
||||||
|
And Enemies
|
||||||
|
In The
|
||||||
|
Old Northwest
|
||||||
|
|
||||||
|
Somehow I derived the name Alan Den from all that.
|
||||||
|
|
||||||
|
You use this font in any way that you see fit. If you distribute it, I would like for this text file to accompany it. (That's just so they know who made it.) You may distribute it on CD, disk, or any other medium, but you may not sell it.
|
||||||
|
|
||||||
|
UnAuthorized Type features the creations of:
|
||||||
|
Ben McGehee
|
||||||
|
bmcgehee@engr.latech.edu
|
||||||
|
|
||||||
|
http://www.latech.edu/~bmcgehee/untype/index.htm
|
||||||
|
Check back to see when I make new fonts!
|
BIN
3rdparty/crypt/fonts/Alanden_.ttf
vendored
Executable file
BIN
3rdparty/crypt/fonts/ELECHA__.TTF
vendored
Executable file
BIN
3rdparty/crypt/fonts/RASCAL__.TTF
vendored
Executable file
BIN
3rdparty/crypt/fonts/SCRAWL.TTF
vendored
Executable file
BIN
3rdparty/crypt/fonts/WAVY.TTF
vendored
Executable file
5
3rdparty/crypt/fonts/WAVY.TXT
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
The Wavy font is an all-caps display font in which all of the normally straight lines on the letters are slightly wavy. It displays best at sizes of 18 points or more.
|
||||||
|
|
||||||
|
This font was created using Fontographer for Windows. It is (c) 1994 by J. Fordyce but may be freely distributed provided it is not altered, no fee is charged for it, and this text file is included with it.
|
||||||
|
|
||||||
|
Feel free to send comments to j4dice@aol.com
|
BIN
3rdparty/crypt/fonts/bsurp___.ttf
vendored
Executable file
5
3rdparty/crypt/fonts/index.php
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
//Script de sécurité.
|
||||||
|
//Ne pas supprimer
|
||||||
|
header('location: ../index.php');
|
||||||
|
?>
|
BIN
3rdparty/crypt/fonts/luggerbu.ttf
vendored
Executable file
24
3rdparty/crypt/fonts/luggerbu.txt
vendored
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
LuggerBug
|
||||||
|
Macintosh & Windows TrueType.
|
||||||
|
|
||||||
|
LuggerBug - The lowdown:
|
||||||
|
This version of LuggerBug is 18 (days) old, It's come of age. Which means it can drink in pubs, vote and watch adult videos. These are, of course, three things which should not be attempted in one day. However, I did just that and following an afternoon shuffling between the pub and the video store, I ended up voting for . . . Alicia Silverstone
|
||||||
|
|
||||||
|
LuggerBug - whats included
|
||||||
|
Uppercase & Lowercase are the same, numerals and some punctuation. The characters [ ] \ have the numbers 99, 95 and 00 on them for better displaying of prices like £24.99 etc.
|
||||||
|
|
||||||
|
LuggerBug ?!
|
||||||
|
I was originaly going to call it BuggerLugs, but I though that might be a bit stupid. You may or may not know what 'Buggerlugs' means, well in Scotland it's a semi-effectionate term to describe someone you know quite well, but at the same time, slag them off without any guilt being attached.
|
||||||
|
|
||||||
|
Legal frivolity
|
||||||
|
1. This lovely font is completely and utterly free, you can use it in any way you see fit. email me if you use it for something useful.
|
||||||
|
2. Please keep this archive intact along with this readme file.
|
||||||
|
3. And if you want to put these onto a magazine floppy, CD-Rom, go ahead, as long as you follow (2).
|
||||||
|
|
||||||
|
Paul Reid.
|
||||||
|
October '97.
|
||||||
|
|
||||||
|
email: whoami@btinternet.com
|
||||||
|
Site: http://www.btinternet.com/~whoami
|
||||||
|
|
||||||
|
"That night they stayed outside the Asylum and watched TV from inside it."
|
18
3rdparty/crypt/fonts/scrawl.txt
vendored
Executable file
@ -0,0 +1,18 @@
|
|||||||
|
scrawllege.ttf
|
||||||
|
|
||||||
|
unzip to any folder, copy or send to c:\windows\fonts....
|
||||||
|
|
||||||
|
enjoy!
|
||||||
|
|
||||||
|
this font is freeware, but donations would certainly be
|
||||||
|
accepted. if you'd prefer not to donate to me, help out
|
||||||
|
someone else in need...
|
||||||
|
|
||||||
|
comments to:
|
||||||
|
|
||||||
|
Andy Krahling
|
||||||
|
matsuan@aol.com
|
||||||
|
http://members.xoom.com/Krahling.page1.html
|
||||||
|
sunwalk fontworks, manchester, nh
|
||||||
|
|
||||||
|
custom fonts available, contact me!
|
BIN
3rdparty/crypt/images/Thumbs.db
vendored
Executable file
BIN
3rdparty/crypt/images/erreur1.png
vendored
Executable file
After Width: | Height: | Size: 559 B |
BIN
3rdparty/crypt/images/erreur2.png
vendored
Executable file
After Width: | Height: | Size: 501 B |
BIN
3rdparty/crypt/images/erreur3.png
vendored
Executable file
After Width: | Height: | Size: 698 B |
5
3rdparty/crypt/images/index.php
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
//Script de sécurité.
|
||||||
|
//Ne pas supprimer
|
||||||
|
header('location: ../index.php');
|
||||||
|
?>
|
BIN
3rdparty/crypt/images/reload.png
vendored
Executable file
After Width: | Height: | Size: 348 B |
5
3rdparty/crypt/index.php
vendored
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
<?php
|
||||||
|
//Script de sécurité.
|
||||||
|
//Ne pas supprimer
|
||||||
|
header('location: ../index.php');
|
||||||
|
?>
|
8
3rdparty/crypt/lisezmoi.txt
vendored
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
Cryptographp v1.4
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
|
||||||
|
S'il vous plait, consultez www.cryptographp.com pour la documentation !
|
||||||
|
documentation en français et en anglais.
|
||||||
|
|
||||||
|
http://www.cryptographp.com
|
11
3rdparty/crypt/readme.txt
vendored
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
Cryptographp v1.4
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
|
||||||
|
Please consult www.cryptographp.com for documentation !
|
||||||
|
English and french documentation.
|
||||||
|
|
||||||
|
http://www.cryptographp.com
|
||||||
|
|
||||||
|
|
||||||
|
|
7
3rdparty/fancyapps/.gitattributes
vendored
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
# Auto detect text files and perform LF normalization
|
||||||
|
* text=auto
|
||||||
|
|
||||||
|
# Denote all files that are truly binary and should not be modified.
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.gif binary
|
125
3rdparty/fancyapps/CHANGELOG.md
vendored
Executable file
@ -0,0 +1,125 @@
|
|||||||
|
fancyBox - Changelog
|
||||||
|
=========
|
||||||
|
|
||||||
|
### Version 2.1.5 - June 14, 2013
|
||||||
|
* Fixed #493 - Broken slideshow
|
||||||
|
* Fixed #556 - Parent option
|
||||||
|
* Retina graphics (#564) and retina display support (#420)
|
||||||
|
* Improved "lock" feature
|
||||||
|
|
||||||
|
### Version 2.1.4 - January 10, 2013
|
||||||
|
* Update to be compatible with jQuery v1.9
|
||||||
|
* Small changes that should fix usability issues for certain users
|
||||||
|
|
||||||
|
### Version 2.1.3 - October 23, 2012
|
||||||
|
|
||||||
|
* Fixed #426 - Broken IE7
|
||||||
|
* Fixed #423 - Background flickering on iOS
|
||||||
|
* Fixed #418 - Automatically Grow/Shrink and Center
|
||||||
|
* Updated the script to work with jQuery 1.6
|
||||||
|
* Media helper supports YouTube video series
|
||||||
|
|
||||||
|
### Version 2.1.2 - October 15, 2012
|
||||||
|
|
||||||
|
* Fixed #414 - Don't allow nextClick if there is only one item
|
||||||
|
* Fixed #397 - Button helper 'Menu' not visible in IE7
|
||||||
|
* Overlay can be opened/closed manually:
|
||||||
|
* $.fancybox.helpers.overlay.open();
|
||||||
|
* $.fancybox.helpers.overlay.open({closeClick : false});
|
||||||
|
* $.fancybox.helpers.overlay.close();
|
||||||
|
* Optimized for Internet Explorer 10 (Windows 8)
|
||||||
|
|
||||||
|
### Version 2.1.1 - October 01, 2012
|
||||||
|
|
||||||
|
* Fixed #357 - Converting values like 'auto' in getScalar()
|
||||||
|
* Fixed #358 - Updated overlay background image
|
||||||
|
* New "fancybox-href" and "fancybox-title" HTML5 data-attributes (#317)
|
||||||
|
* Improved helpers:
|
||||||
|
* - now they can have a property 'defaults' that contains default settings
|
||||||
|
* - updated vimeo and youtube parsers for media helper
|
||||||
|
* Content locking now can be turned off
|
||||||
|
|
||||||
|
### Version 2.1.0 - August 20, 2012
|
||||||
|
|
||||||
|
* Fixed #103 - DOM element re-injection after closing
|
||||||
|
* Fixed #188 - navigation keys inside editable content
|
||||||
|
* New animation directions (see https://github.com/fancyapps/fancyBox/issues/233#issuecomment-5512453)
|
||||||
|
* New option "iframe" - it is now possible to separate scrolling for iframe and wrapping element; choose to preload
|
||||||
|
* New option "swf" - brings back functionality from fancyBox v1
|
||||||
|
* Improved media helper - better support for vimeo and youtube; links are now configurable
|
||||||
|
* Rewritten overlay helper:
|
||||||
|
* - new option "showEarly" - toggles if should be open before of after content is loaded
|
||||||
|
* - Facebook-style (https://github.com/fancyapps/fancyBox/issues/24) and therefore uses image for background
|
||||||
|
* Option "padding" accepts array (e.g., padding: [15, 50, 10, 5])
|
||||||
|
* One of dimensions (width or height) can now be set to "auto" (option "autoSize" needs to be "false")
|
||||||
|
* Updated callbacks:
|
||||||
|
* - "beforeClose" is now called only once
|
||||||
|
* - "afterLoad" receives current and previous object as arguments
|
||||||
|
* Method "$.fancybox.update();" recalculates content width/height
|
||||||
|
* Updated to work with jQuery v1.8
|
||||||
|
|
||||||
|
### Version 2.0.6 - April 16, 2012
|
||||||
|
|
||||||
|
* Fixed #188 - keystrokes in contenteditable
|
||||||
|
* Fixed #171 - non-images should not be preloaded
|
||||||
|
* Fixed #158 - 'closeClick: true' breaks gallery navigation
|
||||||
|
* New "media" helper - detects and displays various media types
|
||||||
|
* New option "groupAttr" - name of group selector attribute, default is "data-fancybox-group"
|
||||||
|
* New feature - selector expressions in URLs, see #170
|
||||||
|
* Improved 'overlay' helper to use "position: fixed"
|
||||||
|
* Improved autoSize, fixed wrong height in some cases
|
||||||
|
* Improved centering and iframe scrolling for iOS
|
||||||
|
* Updated markup, new element '.fancybox-skin' is now used for styling
|
||||||
|
|
||||||
|
### Version 2.0.5 - February 21, 2012
|
||||||
|
|
||||||
|
* Fixed #155 - easing for prev/next animations
|
||||||
|
* Fixed #153 - overriding "keys" options
|
||||||
|
* Fixed #147 - IE7 problem with #hash links
|
||||||
|
* Fixed #130 - changing dynamically data-fancybox-group
|
||||||
|
* Fixed #126 - obey minWidth/minHeight
|
||||||
|
* Fixed #118 - placement of loading icon and navigation arrows
|
||||||
|
* Fixed #101 - "index" option not working
|
||||||
|
* Fixed #94 - "orig" option not working
|
||||||
|
* Fixed #80 - does not work on IE6
|
||||||
|
* Fixed #72 - can't set overlay opacity to 0
|
||||||
|
* Fixed #63 - properly set gallery index
|
||||||
|
* New option "autoCenter" - toggles centering on window resize or scroll, disabled for mobile devices by default
|
||||||
|
* New option "autoResize" - toggles responsivity, disabled for mobile devices by default
|
||||||
|
* New option "preload" - number of images to preload
|
||||||
|
* New feature to target mobile/desktop browsers using CSS, see #108
|
||||||
|
* Changed ajax option defaults to "{ dataType: 'html', headers: { 'X-fancyBox': true } }", see #150 and #128
|
||||||
|
* Updated loading icon for IE7, IE8
|
||||||
|
* Calculates height of the iframe if 'autoSize' is set to 'true' and the iframe is on the same domain as the main page
|
||||||
|
|
||||||
|
### Version 2.0.4 - December 12, 2011
|
||||||
|
|
||||||
|
* Fixed #47 - fix overriding properties
|
||||||
|
* New option "position" to thumbnail and button helpers
|
||||||
|
|
||||||
|
|
||||||
|
### Version 2.0.3 - November 29, 2011
|
||||||
|
|
||||||
|
* Fixed #29 - broken elastic transitions
|
||||||
|
|
||||||
|
|
||||||
|
### Version 2.0.2 - November 28, 2011
|
||||||
|
|
||||||
|
* Fixed slideshow
|
||||||
|
* Fixed scrollbars issue when displayed a very tall image
|
||||||
|
* New option "nextClick" - navigate to next gallery item when user clicks the content
|
||||||
|
* New option "modal" - to disable navigation and closing
|
||||||
|
* Add 'metadata' plugin support
|
||||||
|
* Add ability to create groups using 'data-fancybox-group' attribute
|
||||||
|
* Updated manual usage to match earlier releases
|
||||||
|
|
||||||
|
|
||||||
|
### Version 2.0.1 - November 23, 2011
|
||||||
|
|
||||||
|
* Fixed keyboard events inside form elements
|
||||||
|
* Fixed manual usage
|
||||||
|
|
||||||
|
|
||||||
|
### Version 2.0.0 - November 21, 2011
|
||||||
|
|
||||||
|
First release - completely rewritten, many new features and updated graphics.
|
217
3rdparty/fancyapps/README.md
vendored
Executable file
@ -0,0 +1,217 @@
|
|||||||
|
fancyBox
|
||||||
|
========
|
||||||
|
|
||||||
|
fancyBox is a tool that offers a nice and elegant way to add zooming functionality for images, html content and multi-media on your webpages.
|
||||||
|
|
||||||
|
More information and examples: http://www.fancyapps.com/fancybox/
|
||||||
|
|
||||||
|
License: http://www.fancyapps.com/fancybox/#license
|
||||||
|
|
||||||
|
Copyright (c) 2012 Janis Skarnelis - janis@fancyapps.com
|
||||||
|
|
||||||
|
|
||||||
|
How to use
|
||||||
|
----------
|
||||||
|
|
||||||
|
To get started, download the plugin, unzip it and copy files to your website/application directory.
|
||||||
|
Load files in the <head> section of your HTML document. Make sure you also add the jQuery library.
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
|
||||||
|
<link rel="stylesheet" href="/fancybox/jquery.fancybox.css" type="text/css" media="screen" />
|
||||||
|
<script type="text/javascript" src="/fancybox/jquery.fancybox.pack.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
Create your links with a `title` if you want a title to be shown, and add a class:
|
||||||
|
|
||||||
|
<a href="large_image.jpg" class="fancybox" title="Sample title"><img src="small_image.jpg" /></a>
|
||||||
|
|
||||||
|
If you have a set of related items that you would like to group,
|
||||||
|
additionally include a group name in the `rel` (or `data-fancybox-group`) attribute:
|
||||||
|
|
||||||
|
<a href="large_1.jpg" class="fancybox" rel="gallery" title="Sample title 1"><img src="small_1.jpg" /></a>
|
||||||
|
<a href="large_2.jpg" class="fancybox" rel="gallery" title="Sample title 1"><img src="small_2.jpg" /></a>
|
||||||
|
|
||||||
|
Initialise the script like this:
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('.fancybox').fancybox();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
May also be passed an optional options object which will extend the default values. Example:
|
||||||
|
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('.fancybox').fancybox({
|
||||||
|
padding : 0,
|
||||||
|
openEffect : 'elastic'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
Tip: Automatically group and apply fancyBox to all images:
|
||||||
|
|
||||||
|
$("a[href$='.jpg'],a[href$='.jpeg'],a[href$='.png'],a[href$='.gif']").attr('rel', 'gallery').fancybox();
|
||||||
|
|
||||||
|
Script uses the `href` attribute of the matched elements to obtain the location of the content and to figure out content type you want to display.
|
||||||
|
You can specify type directly by adding classname (fancybox.image, fancybox.iframe, etc) or `data-fancybox-type` attribute:
|
||||||
|
|
||||||
|
//Ajax:
|
||||||
|
<a href="/example.html" class="fancybox fancybox.ajax">Example</a>
|
||||||
|
//or
|
||||||
|
<a href="/example.html" class="fancybox" data-fancybox-type="ajax">Example</a>
|
||||||
|
|
||||||
|
//Iframe:
|
||||||
|
<a href="example.html" class="fancybox fancybox.iframe">Example</a>
|
||||||
|
|
||||||
|
//Inline (will display an element with `id="example"`)
|
||||||
|
<a href="#example" class="fancybox">Example</a>
|
||||||
|
|
||||||
|
//SWF:
|
||||||
|
<a href="example.swf" class="fancybox">Example</a>
|
||||||
|
|
||||||
|
//Image:
|
||||||
|
<a href="example.jpg" class="fancybox">Example</a>
|
||||||
|
|
||||||
|
Note, ajax requests are subject to the [same origin policy](http://en.wikipedia.org/wiki/Same_origin_policy).
|
||||||
|
If fancyBox will not be able to get content type, it will try to guess based on 'href' and will quit silently if would not succeed.
|
||||||
|
(this is different from previsous versions where 'ajax' was used as default type or an error message was displayed).
|
||||||
|
|
||||||
|
Advanced
|
||||||
|
--------
|
||||||
|
|
||||||
|
### Helpers
|
||||||
|
|
||||||
|
Helpers provide a simple mechanism to extend the capabilities of fancyBox. There are two built-in helpers - 'overlay' and 'title'.
|
||||||
|
You can disable them, set custom options or enable other helpers. Examples:
|
||||||
|
|
||||||
|
//Disable title helper
|
||||||
|
$(".fancybox").fancybox({
|
||||||
|
helpers: {
|
||||||
|
title: null
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Disable overlay helper
|
||||||
|
$(".fancybox").fancybox({
|
||||||
|
helpers: {
|
||||||
|
overlay : null
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Change title position and overlay color
|
||||||
|
$(".fancybox").fancybox({
|
||||||
|
helpers: {
|
||||||
|
title : {
|
||||||
|
type : 'inside'
|
||||||
|
},
|
||||||
|
overlay : {
|
||||||
|
css : {
|
||||||
|
'background' : 'rgba(255,255,255,0.5)'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Enable thumbnail helper and set custom options
|
||||||
|
$(".fancybox").fancybox({
|
||||||
|
helpers: {
|
||||||
|
thumbs : {
|
||||||
|
width: 50,
|
||||||
|
height: 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
### API
|
||||||
|
|
||||||
|
Also available are event driven callback methods. The `this` keyword refers to the current or upcoming object (depends on callback method). Here is how you can change title:
|
||||||
|
|
||||||
|
$(".fancybox").fancybox({
|
||||||
|
beforeLoad : function() {
|
||||||
|
this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
|
||||||
|
|
||||||
|
/*
|
||||||
|
"this.element" refers to current element, so you can, for example, use the "alt" attribute of the image to store the title:
|
||||||
|
this.title = $(this.element).find('img').attr('alt');
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
It`s possible to open fancyBox programmatically in various ways:
|
||||||
|
|
||||||
|
//HTML content:
|
||||||
|
$.fancybox( '<div><h1>Lorem Lipsum</h1><p>Lorem lipsum</p></div>', {
|
||||||
|
title : 'Custom Title'
|
||||||
|
});
|
||||||
|
|
||||||
|
//DOM element:
|
||||||
|
$.fancybox( $("#inline"), {
|
||||||
|
title : 'Custom Title'
|
||||||
|
});
|
||||||
|
|
||||||
|
//Custom object:
|
||||||
|
$.fancybox({
|
||||||
|
href: 'example.jpg',
|
||||||
|
title : 'Custom Title'
|
||||||
|
});
|
||||||
|
|
||||||
|
//Array of objects:
|
||||||
|
$.fancybox([
|
||||||
|
{
|
||||||
|
href: 'example1.jpg',
|
||||||
|
title : 'Custom Title 1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
href: 'example2.jpg',
|
||||||
|
title : 'Custom Title 2'
|
||||||
|
}
|
||||||
|
], {
|
||||||
|
padding: 0
|
||||||
|
});
|
||||||
|
|
||||||
|
There are several methods that allow you to interact with and manipulate fancyBox, example:
|
||||||
|
|
||||||
|
//Close fancybox:
|
||||||
|
$.fancybox.close();
|
||||||
|
|
||||||
|
There is a simply way to access wrapping elements using JS:
|
||||||
|
|
||||||
|
$.fancybox.wrap
|
||||||
|
$.fancybox.skin
|
||||||
|
$.fancybox.outer
|
||||||
|
$.fancybox.inner
|
||||||
|
|
||||||
|
You can override CSS to customize the look. For example, make navigation arrows always visible,
|
||||||
|
change width and move them outside of area (use this snippet after including fancybox.css):
|
||||||
|
|
||||||
|
.fancybox-nav span {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fancybox-nav {
|
||||||
|
width: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fancybox-prev {
|
||||||
|
left: -80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fancybox-next {
|
||||||
|
right: -80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
In that case, you might want to increase space around box:
|
||||||
|
|
||||||
|
$(".fancybox").fancybox({
|
||||||
|
margin : [20, 60, 20, 60]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
Bug tracker
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Have a bug? Please create an issue on GitHub at https://github.com/fancyapps/fancyBox/issues
|
BIN
3rdparty/fancyapps/demo/1_b.jpg
vendored
Executable file
After Width: | Height: | Size: 80 KiB |
BIN
3rdparty/fancyapps/demo/1_s.jpg
vendored
Executable file
After Width: | Height: | Size: 7.9 KiB |
BIN
3rdparty/fancyapps/demo/2_b.jpg
vendored
Executable file
After Width: | Height: | Size: 50 KiB |
BIN
3rdparty/fancyapps/demo/2_s.jpg
vendored
Executable file
After Width: | Height: | Size: 1.4 KiB |
BIN
3rdparty/fancyapps/demo/3_b.jpg
vendored
Executable file
After Width: | Height: | Size: 54 KiB |
BIN
3rdparty/fancyapps/demo/3_s.jpg
vendored
Executable file
After Width: | Height: | Size: 2.5 KiB |
BIN
3rdparty/fancyapps/demo/4_b.jpg
vendored
Executable file
After Width: | Height: | Size: 82 KiB |
BIN
3rdparty/fancyapps/demo/4_s.jpg
vendored
Executable file
After Width: | Height: | Size: 5.1 KiB |
BIN
3rdparty/fancyapps/demo/5_b.jpg
vendored
Executable file
After Width: | Height: | Size: 74 KiB |
BIN
3rdparty/fancyapps/demo/5_s.jpg
vendored
Executable file
After Width: | Height: | Size: 4.3 KiB |
15
3rdparty/fancyapps/demo/ajax.txt
vendored
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
<div style="max-width:700px;">
|
||||||
|
<h2>Lorem ipsum dolor sit amet3</h2>
|
||||||
|
<p>
|
||||||
|
<a href="javascript:jQuery.fancybox.close();">Close me</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas fermentum ante et sapien dignissim in viverra magna feugiat. Donec tempus ipsum nec neque dignissim quis eleifend eros gravida. Praesent nisi massa, sodales quis tincidunt ac, semper quis risus. In suscipit nisl sed leo aliquet consequat. Integer vitae augue in risus porttitor pellentesque eu eget odio. Fusce ut sagittis quam. Morbi aliquam interdum blandit. Integer pharetra tempor velit, aliquam dictum justo tempus sed. Morbi congue fringilla justo a feugiat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent quis metus et nisl consectetur pharetra. Nam bibendum turpis eu metus luctus eu volutpat sem molestie. Nam sollicitudin porttitor lorem, ac ultricies est venenatis eu. Ut dignissim elit et orci feugiat ac placerat purus euismod. Ut mi lorem, cursus et sagittis elementum, luctus ac massa.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Phasellus et ligula vel diam ullamcorper volutpat. Integer rhoncus rhoncus aliquam. Aliquam erat volutpat. Aenean luctus vestibulum placerat. Quisque quam neque, lacinia aliquet eleifend ac, aliquet blandit felis. Curabitur porta ultricies dui, sit amet mattis quam euismod a. Ut eleifend scelerisque neque, sit amet accumsan odio consequat ut. Proin facilisis auctor elit sed accumsan. Cras dapibus nisl in nisi rhoncus laoreet. Nullam pellentesque tortor libero, eget facilisis ipsum. Donec ultricies tellus tellus, in tincidunt purus. Nullam in est aliquam velit scelerisque blandit. In tincidunt, magna a dapibus imperdiet, quam urna elementum leo, vitae rhoncus nisl velit cursus velit. In dignissim sem ac mauris rhoncus ornare.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Duis imperdiet velit vel quam malesuada suscipit imperdiet tellus hendrerit. Mauris vestibulum odio mauris, ut placerat leo. Mauris quis neque at tellus feugiat congue id non enim. Nam vehicula posuere nulla eget vehicula. Donec pretium purus nec ligula porta eu laoreet sapien venenatis. Nulla facilisi. Phasellus eget mi enim. Phasellus molestie tincidunt ultrices. Aenean id sem a tellus lobortis tincidunt. Nam laoreet nulla vel velit tincidunt ac rutrum libero malesuada. Nulla consequat dolor quis nisl tempor fermentum. Integer sodales pretium varius. Aenean a leo vitae odio dictum dignissim malesuada nec dolor. Phasellus adipiscing viverra est, ac sagittis libero sagittis quis. Sed interdum dapibus nunc et fringilla. Nunc vel velit et urna laoreet bibendum.
|
||||||
|
</p>
|
||||||
|
</div>
|
26
3rdparty/fancyapps/demo/iframe.html
vendored
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>fancyBox - iframe demo</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>fancyBox - iframe demo</h1>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a href="javascript:parent.jQuery.fancybox.close();">Close iframe parent</a>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
||||||
|
<a href="javascript:parent.jQuery.fancybox.open({href : '1_b.jpg', title : 'My title'});">Change content</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam scelerisque justo ac eros consectetur bibendum. In hac habitasse platea dictumst. Nulla aliquam turpis et tellus elementum luctus. Duis sit amet rhoncus velit. Duis nisl ligula, mattis interdum blandit laoreet, mattis id ante. Cras pulvinar lacus vitae nisi egestas non euismod neque bibendum. Vestibulum faucibus libero id ante molestie ultricies. Vestibulum quis nibh felis. Vestibulum libero nisl, vehicula vel ullamcorper sit amet, tristique sit amet augue. Etiam urna neque, porttitor sed sodales lacinia, posuere a nisl. Vestibulum blandit neque in sapien volutpat ac condimentum sapien auctor. Ut imperdiet venenatis ultricies. Phasellus accumsan, sem eu placerat commodo, felis purus commodo ipsum, sit amet vulputate orci est viverra est.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Aenean velit est, condimentum ut iaculis ut, accumsan at mi. Maecenas velit mi, venenatis ut condimentum at, ultrices vel tortor. Curabitur pharetra ornare dapibus. Ut volutpat cursus semper. In hac habitasse platea dictumst. Donec eu iaculis ipsum. Morbi eu dolor velit, a semper nunc.
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
312
3rdparty/fancyapps/demo/index.html
vendored
Executable file
@ -0,0 +1,312 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>fancyBox - Fancy jQuery Lightbox Alternative | Demonstration</title>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
||||||
|
|
||||||
|
<!-- Add jQuery library -->
|
||||||
|
<script type="text/javascript" src="../lib/jquery-1.10.1.min.js"></script>
|
||||||
|
|
||||||
|
<!-- Add mousewheel plugin (this is optional) -->
|
||||||
|
<script type="text/javascript" src="../lib/jquery.mousewheel-3.0.6.pack.js"></script>
|
||||||
|
|
||||||
|
<!-- Add fancyBox main JS and CSS files -->
|
||||||
|
<script type="text/javascript" src="../source/jquery.fancybox.js?v=2.1.5"></script>
|
||||||
|
<link rel="stylesheet" type="text/css" href="../source/jquery.fancybox.css?v=2.1.5" media="screen" />
|
||||||
|
|
||||||
|
<!-- Add Button helper (this is optional) -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="../source/helpers/jquery.fancybox-buttons.css?v=1.0.5" />
|
||||||
|
<script type="text/javascript" src="../source/helpers/jquery.fancybox-buttons.js?v=1.0.5"></script>
|
||||||
|
|
||||||
|
<!-- Add Thumbnail helper (this is optional) -->
|
||||||
|
<link rel="stylesheet" type="text/css" href="../source/helpers/jquery.fancybox-thumbs.css?v=1.0.7" />
|
||||||
|
<script type="text/javascript" src="../source/helpers/jquery.fancybox-thumbs.js?v=1.0.7"></script>
|
||||||
|
|
||||||
|
<!-- Add Media helper (this is optional) -->
|
||||||
|
<script type="text/javascript" src="../source/helpers/jquery.fancybox-media.js?v=1.0.6"></script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() {
|
||||||
|
/*
|
||||||
|
* Simple image gallery. Uses default settings
|
||||||
|
*/
|
||||||
|
|
||||||
|
$('.fancybox').fancybox();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Different effects
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Change title type, overlay closing speed
|
||||||
|
$(".fancybox-effects-a").fancybox({
|
||||||
|
helpers: {
|
||||||
|
title : {
|
||||||
|
type : 'outside'
|
||||||
|
},
|
||||||
|
overlay : {
|
||||||
|
speedOut : 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Disable opening and closing animations, change title type
|
||||||
|
$(".fancybox-effects-b").fancybox({
|
||||||
|
openEffect : 'none',
|
||||||
|
closeEffect : 'none',
|
||||||
|
|
||||||
|
helpers : {
|
||||||
|
title : {
|
||||||
|
type : 'over'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Set custom style, close if clicked, change title type and overlay color
|
||||||
|
$(".fancybox-effects-c").fancybox({
|
||||||
|
wrapCSS : 'fancybox-custom',
|
||||||
|
closeClick : true,
|
||||||
|
|
||||||
|
openEffect : 'none',
|
||||||
|
|
||||||
|
helpers : {
|
||||||
|
title : {
|
||||||
|
type : 'inside'
|
||||||
|
},
|
||||||
|
overlay : {
|
||||||
|
css : {
|
||||||
|
'background' : 'rgba(238,238,238,0.85)'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Remove padding, set opening and closing animations, close if clicked and disable overlay
|
||||||
|
$(".fancybox-effects-d").fancybox({
|
||||||
|
padding: 0,
|
||||||
|
|
||||||
|
openEffect : 'elastic',
|
||||||
|
openSpeed : 150,
|
||||||
|
|
||||||
|
closeEffect : 'elastic',
|
||||||
|
closeSpeed : 150,
|
||||||
|
|
||||||
|
closeClick : true,
|
||||||
|
|
||||||
|
helpers : {
|
||||||
|
overlay : null
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Button helper. Disable animations, hide close button, change title type and content
|
||||||
|
*/
|
||||||
|
|
||||||
|
$('.fancybox-buttons').fancybox({
|
||||||
|
openEffect : 'none',
|
||||||
|
closeEffect : 'none',
|
||||||
|
|
||||||
|
prevEffect : 'none',
|
||||||
|
nextEffect : 'none',
|
||||||
|
|
||||||
|
closeBtn : false,
|
||||||
|
|
||||||
|
helpers : {
|
||||||
|
title : {
|
||||||
|
type : 'inside'
|
||||||
|
},
|
||||||
|
buttons : {}
|
||||||
|
},
|
||||||
|
|
||||||
|
afterLoad : function() {
|
||||||
|
this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Thumbnail helper. Disable animations, hide close button, arrows and slide to next gallery item if clicked
|
||||||
|
*/
|
||||||
|
|
||||||
|
$('.fancybox-thumbs').fancybox({
|
||||||
|
prevEffect : 'none',
|
||||||
|
nextEffect : 'none',
|
||||||
|
|
||||||
|
closeBtn : false,
|
||||||
|
arrows : false,
|
||||||
|
nextClick : true,
|
||||||
|
|
||||||
|
helpers : {
|
||||||
|
thumbs : {
|
||||||
|
width : 50,
|
||||||
|
height : 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Media helper. Group items, disable animations, hide arrows, enable media and button helpers.
|
||||||
|
*/
|
||||||
|
$('.fancybox-media')
|
||||||
|
.attr('rel', 'media-gallery')
|
||||||
|
.fancybox({
|
||||||
|
openEffect : 'none',
|
||||||
|
closeEffect : 'none',
|
||||||
|
prevEffect : 'none',
|
||||||
|
nextEffect : 'none',
|
||||||
|
|
||||||
|
arrows : false,
|
||||||
|
helpers : {
|
||||||
|
media : {},
|
||||||
|
buttons : {}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Open manually
|
||||||
|
*/
|
||||||
|
|
||||||
|
$("#fancybox-manual-a").click(function() {
|
||||||
|
$.fancybox.open('1_b.jpg');
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#fancybox-manual-b").click(function() {
|
||||||
|
$.fancybox.open({
|
||||||
|
href : 'iframe.html',
|
||||||
|
type : 'iframe',
|
||||||
|
padding : 5
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#fancybox-manual-c").click(function() {
|
||||||
|
$.fancybox.open([
|
||||||
|
{
|
||||||
|
href : '1_b.jpg',
|
||||||
|
title : 'My title'
|
||||||
|
}, {
|
||||||
|
href : '2_b.jpg',
|
||||||
|
title : '2nd title'
|
||||||
|
}, {
|
||||||
|
href : '3_b.jpg'
|
||||||
|
}
|
||||||
|
], {
|
||||||
|
helpers : {
|
||||||
|
thumbs : {
|
||||||
|
width: 75,
|
||||||
|
height: 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style type="text/css">
|
||||||
|
.fancybox-custom .fancybox-skin {
|
||||||
|
box-shadow: 0 0 50px #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
max-width: 700px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>fancyBox</h1>
|
||||||
|
|
||||||
|
<p>This is a demonstration. More information and examples: <a href="http://fancyapps.com/fancybox/">www.fancyapps.com/fancybox/</a></p>
|
||||||
|
|
||||||
|
<h3>Simple image gallery</h3>
|
||||||
|
<p>
|
||||||
|
<a class="fancybox" href="1_b.jpg" data-fancybox-group="gallery" title="Lorem ipsum dolor sit amet"><img src="1_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox" href="2_b.jpg" data-fancybox-group="gallery" title="Etiam quis mi eu elit temp"><img src="2_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox" href="3_b.jpg" data-fancybox-group="gallery" title="Cras neque mi, semper leon"><img src="3_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox" href="4_b.jpg" data-fancybox-group="gallery" title="Sed vel sapien vel sem uno"><img src="4_s.jpg" alt="" /></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Different effects</h3>
|
||||||
|
<p>
|
||||||
|
<a class="fancybox-effects-a" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-effects-b" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-effects-c" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-effects-d" href="5_b.jpg" title="Lorem ipsum dolor sit amet, consectetur adipiscing elit"><img src="5_s.jpg" alt="" /></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Various types</h3>
|
||||||
|
<p>
|
||||||
|
fancyBox will try to guess content type from href attribute but you can specify it directly by adding classname (fancybox.image, fancybox.iframe, etc).
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a class="fancybox" href="#inline1" title="Lorem ipsum dolor sit amet">Inline</a></li>
|
||||||
|
<li><a class="fancybox fancybox.ajax" href="ajax.txt">Ajax</a></li>
|
||||||
|
<li><a class="fancybox fancybox.iframe" href="iframe.html">Iframe</a></li>
|
||||||
|
<li><a class="fancybox" href="http://www.adobe.com/jp/events/cs3_web_edition_tour/swfs/perform.swf">Swf</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="inline1" style="width:400px;display: none;">
|
||||||
|
<h3>Etiam quis mi eu elit</h3>
|
||||||
|
<p>
|
||||||
|
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam quis mi eu elit tempor facilisis id et neque. Nulla sit amet sem sapien. Vestibulum imperdiet porta ante ac ornare. Nulla et lorem eu nibh adipiscing ultricies nec at lacus. Cras laoreet ultricies sem, at blandit mi eleifend aliquam. Nunc enim ipsum, vehicula non pretium varius, cursus ac tortor. Vivamus fringilla congue laoreet. Quisque ultrices sodales orci, quis rhoncus justo auctor in. Phasellus dui eros, bibendum eu feugiat ornare, faucibus eu mi. Nunc aliquet tempus sem, id aliquam diam varius ac. Maecenas nisl nunc, molestie vitae eleifend vel, iaculis sed magna. Aenean tempus lacus vitae orci posuere porttitor eget non felis. Donec lectus elit, aliquam nec eleifend sit amet, vestibulum sed nunc.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Ajax example will not run from your local computer and requires a server to run.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Button helper</h3>
|
||||||
|
<p>
|
||||||
|
<a class="fancybox-buttons" data-fancybox-group="button" href="1_b.jpg"><img src="1_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-buttons" data-fancybox-group="button" href="2_b.jpg"><img src="2_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-buttons" data-fancybox-group="button" href="3_b.jpg"><img src="3_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-buttons" data-fancybox-group="button" href="4_b.jpg"><img src="4_s.jpg" alt="" /></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Thumbnail helper</h3>
|
||||||
|
<p>
|
||||||
|
<a class="fancybox-thumbs" data-fancybox-group="thumb" href="4_b.jpg"><img src="4_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-thumbs" data-fancybox-group="thumb" href="3_b.jpg"><img src="3_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-thumbs" data-fancybox-group="thumb" href="2_b.jpg"><img src="2_s.jpg" alt="" /></a>
|
||||||
|
|
||||||
|
<a class="fancybox-thumbs" data-fancybox-group="thumb" href="1_b.jpg"><img src="1_s.jpg" alt="" /></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Media helper</h3>
|
||||||
|
<p>
|
||||||
|
Will not run from your local computer, requires a server to run.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li><a class="fancybox-media" href="http://www.youtube.com/watch?v=opj24KnzrWo">Youtube</a></li>
|
||||||
|
<li><a class="fancybox-media" href="http://vimeo.com/47480346">Vimeo</a></li>
|
||||||
|
<li><a class="fancybox-media" href="http://www.metacafe.com/watch/7635964/">Metacafe</a></li>
|
||||||
|
<li><a class="fancybox-media" href="http://www.dailymotion.com/video/xoeylt_electric-guest-this-head-i-hold_music">Dailymotion</a></li>
|
||||||
|
<li><a class="fancybox-media" href="http://twitvid.com/QY7MD">Twitvid</a></li>
|
||||||
|
<li><a class="fancybox-media" href="http://twitpic.com/7p93st">Twitpic</a></li>
|
||||||
|
<li><a class="fancybox-media" href="http://instagr.am/p/IejkuUGxQn">Instagram</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>Open manually</h3>
|
||||||
|
<ul>
|
||||||
|
<li><a id="fancybox-manual-a" href="javascript:;">Open single item</a></li>
|
||||||
|
<li><a id="fancybox-manual-b" href="javascript:;">Open single item, custom options</a></li>
|
||||||
|
<li><a id="fancybox-manual-c" href="javascript:;">Open gallery</a></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Photo Credit: Instagrammer @whitjohns
|
||||||
|
</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
6
3rdparty/fancyapps/lib/jquery-1.10.1.min.js
vendored
Executable file
4
3rdparty/fancyapps/lib/jquery-1.9.0.min.js
vendored
Executable file
13
3rdparty/fancyapps/lib/jquery.mousewheel-3.0.6.pack.js
vendored
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net)
|
||||||
|
* Licensed under the MIT License (LICENSE.txt).
|
||||||
|
*
|
||||||
|
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
|
||||||
|
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
|
||||||
|
* Thanks to: Seamus Leahy for adding deltaX and deltaY
|
||||||
|
*
|
||||||
|
* Version: 3.0.6
|
||||||
|
*
|
||||||
|
* Requires: 1.2.2+
|
||||||
|
*/
|
||||||
|
(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]=
|
||||||
|
d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
|
BIN
3rdparty/fancyapps/source/blank.gif
vendored
Executable file
After Width: | Height: | Size: 43 B |
BIN
3rdparty/fancyapps/source/fancybox_loading.gif
vendored
Executable file
After Width: | Height: | Size: 6.4 KiB |
BIN
3rdparty/fancyapps/source/fancybox_loading@2x.gif
vendored
Executable file
After Width: | Height: | Size: 14 KiB |
BIN
3rdparty/fancyapps/source/fancybox_overlay.png
vendored
Executable file
After Width: | Height: | Size: 1003 B |
BIN
3rdparty/fancyapps/source/fancybox_sprite.png
vendored
Executable file
After Width: | Height: | Size: 1.3 KiB |
BIN
3rdparty/fancyapps/source/fancybox_sprite@2x.png
vendored
Executable file
After Width: | Height: | Size: 6.4 KiB |
BIN
3rdparty/fancyapps/source/helpers/fancybox_buttons.png
vendored
Executable file
After Width: | Height: | Size: 1.1 KiB |
97
3rdparty/fancyapps/source/helpers/jquery.fancybox-buttons.css
vendored
Executable file
@ -0,0 +1,97 @@
|
|||||||
|
#fancybox-buttons {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 8050;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons.top {
|
||||||
|
top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons.bottom {
|
||||||
|
bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons ul {
|
||||||
|
display: block;
|
||||||
|
width: 166px;
|
||||||
|
height: 30px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0;
|
||||||
|
list-style: none;
|
||||||
|
border: 1px solid #111;
|
||||||
|
border-radius: 3px;
|
||||||
|
-webkit-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
|
||||||
|
-moz-box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
|
||||||
|
box-shadow: inset 0 0 0 1px rgba(255,255,255,.05);
|
||||||
|
background: rgb(50,50,50);
|
||||||
|
background: -moz-linear-gradient(top, rgb(68,68,68) 0%, rgb(52,52,52) 50%, rgb(41,41,41) 50%, rgb(51,51,51) 100%);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgb(68,68,68)), color-stop(50%,rgb(52,52,52)), color-stop(50%,rgb(41,41,41)), color-stop(100%,rgb(51,51,51)));
|
||||||
|
background: -webkit-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
||||||
|
background: -o-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
||||||
|
background: -ms-linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
||||||
|
background: linear-gradient(top, rgb(68,68,68) 0%,rgb(52,52,52) 50%,rgb(41,41,41) 50%,rgb(51,51,51) 100%);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#444444', endColorstr='#222222',GradientType=0 );
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons ul li {
|
||||||
|
float: left;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a {
|
||||||
|
display: block;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
text-indent: -9999px;
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: url('fancybox_buttons.png');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
outline: none;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a:hover {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnPrev {
|
||||||
|
background-position: 5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnNext {
|
||||||
|
background-position: -33px 0;
|
||||||
|
border-right: 1px solid #3e3e3e;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnPlay {
|
||||||
|
background-position: 0 -30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnPlayOn {
|
||||||
|
background-position: -30px -30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnToggle {
|
||||||
|
background-position: 3px -60px;
|
||||||
|
border-left: 1px solid #111;
|
||||||
|
border-right: 1px solid #3e3e3e;
|
||||||
|
width: 35px
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnToggleOn {
|
||||||
|
background-position: -27px -60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnClose {
|
||||||
|
border-left: 1px solid #111;
|
||||||
|
width: 35px;
|
||||||
|
background-position: -56px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-buttons a.btnDisabled {
|
||||||
|
opacity : 0.4;
|
||||||
|
cursor: default;
|
||||||
|
}
|
122
3rdparty/fancyapps/source/helpers/jquery.fancybox-buttons.js
vendored
Executable file
@ -0,0 +1,122 @@
|
|||||||
|
/*!
|
||||||
|
* Buttons helper for fancyBox
|
||||||
|
* version: 1.0.5 (Mon, 15 Oct 2012)
|
||||||
|
* @requires fancyBox v2.0 or later
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* $(".fancybox").fancybox({
|
||||||
|
* helpers : {
|
||||||
|
* buttons: {
|
||||||
|
* position : 'top'
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
//Shortcut for fancyBox object
|
||||||
|
var F = $.fancybox;
|
||||||
|
|
||||||
|
//Add helper object
|
||||||
|
F.helpers.buttons = {
|
||||||
|
defaults : {
|
||||||
|
skipSingle : false, // disables if gallery contains single image
|
||||||
|
position : 'top', // 'top' or 'bottom'
|
||||||
|
tpl : '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:;"></a></li></ul></div>'
|
||||||
|
},
|
||||||
|
|
||||||
|
list : null,
|
||||||
|
buttons: null,
|
||||||
|
|
||||||
|
beforeLoad: function (opts, obj) {
|
||||||
|
//Remove self if gallery do not have at least two items
|
||||||
|
|
||||||
|
if (opts.skipSingle && obj.group.length < 2) {
|
||||||
|
obj.helpers.buttons = false;
|
||||||
|
obj.closeBtn = true;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Increase top margin to give space for buttons
|
||||||
|
obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
|
||||||
|
},
|
||||||
|
|
||||||
|
onPlayStart: function () {
|
||||||
|
if (this.buttons) {
|
||||||
|
this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onPlayEnd: function () {
|
||||||
|
if (this.buttons) {
|
||||||
|
this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
afterShow: function (opts, obj) {
|
||||||
|
var buttons = this.buttons;
|
||||||
|
|
||||||
|
if (!buttons) {
|
||||||
|
this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
|
||||||
|
|
||||||
|
buttons = {
|
||||||
|
prev : this.list.find('.btnPrev').click( F.prev ),
|
||||||
|
next : this.list.find('.btnNext').click( F.next ),
|
||||||
|
play : this.list.find('.btnPlay').click( F.play ),
|
||||||
|
toggle : this.list.find('.btnToggle').click( F.toggle ),
|
||||||
|
close : this.list.find('.btnClose').click( F.close )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Prev
|
||||||
|
if (obj.index > 0 || obj.loop) {
|
||||||
|
buttons.prev.removeClass('btnDisabled');
|
||||||
|
} else {
|
||||||
|
buttons.prev.addClass('btnDisabled');
|
||||||
|
}
|
||||||
|
|
||||||
|
//Next / Play
|
||||||
|
if (obj.loop || obj.index < obj.group.length - 1) {
|
||||||
|
buttons.next.removeClass('btnDisabled');
|
||||||
|
buttons.play.removeClass('btnDisabled');
|
||||||
|
|
||||||
|
} else {
|
||||||
|
buttons.next.addClass('btnDisabled');
|
||||||
|
buttons.play.addClass('btnDisabled');
|
||||||
|
}
|
||||||
|
|
||||||
|
this.buttons = buttons;
|
||||||
|
|
||||||
|
this.onUpdate(opts, obj);
|
||||||
|
},
|
||||||
|
|
||||||
|
onUpdate: function (opts, obj) {
|
||||||
|
var toggle;
|
||||||
|
|
||||||
|
if (!this.buttons) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
|
||||||
|
|
||||||
|
//Size toggle button
|
||||||
|
if (obj.canShrink) {
|
||||||
|
toggle.addClass('btnToggleOn');
|
||||||
|
|
||||||
|
} else if (!obj.canExpand) {
|
||||||
|
toggle.addClass('btnDisabled');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
beforeClose: function () {
|
||||||
|
if (this.list) {
|
||||||
|
this.list.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.list = null;
|
||||||
|
this.buttons = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}(jQuery));
|
199
3rdparty/fancyapps/source/helpers/jquery.fancybox-media.js
vendored
Executable file
@ -0,0 +1,199 @@
|
|||||||
|
/*!
|
||||||
|
* Media helper for fancyBox
|
||||||
|
* version: 1.0.6 (Fri, 14 Jun 2013)
|
||||||
|
* @requires fancyBox v2.0 or later
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* $(".fancybox").fancybox({
|
||||||
|
* helpers : {
|
||||||
|
* media: true
|
||||||
|
* }
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
* Set custom URL parameters:
|
||||||
|
* $(".fancybox").fancybox({
|
||||||
|
* helpers : {
|
||||||
|
* media: {
|
||||||
|
* youtube : {
|
||||||
|
* params : {
|
||||||
|
* autoplay : 0
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
* Or:
|
||||||
|
* $(".fancybox").fancybox({,
|
||||||
|
* helpers : {
|
||||||
|
* media: true
|
||||||
|
* },
|
||||||
|
* youtube : {
|
||||||
|
* autoplay: 0
|
||||||
|
* }
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
* Supports:
|
||||||
|
*
|
||||||
|
* Youtube
|
||||||
|
* http://www.youtube.com/watch?v=opj24KnzrWo
|
||||||
|
* http://www.youtube.com/embed/opj24KnzrWo
|
||||||
|
* http://youtu.be/opj24KnzrWo
|
||||||
|
* http://www.youtube-nocookie.com/embed/opj24KnzrWo
|
||||||
|
* Vimeo
|
||||||
|
* http://vimeo.com/40648169
|
||||||
|
* http://vimeo.com/channels/staffpicks/38843628
|
||||||
|
* http://vimeo.com/groups/surrealism/videos/36516384
|
||||||
|
* http://player.vimeo.com/video/45074303
|
||||||
|
* Metacafe
|
||||||
|
* http://www.metacafe.com/watch/7635964/dr_seuss_the_lorax_movie_trailer/
|
||||||
|
* http://www.metacafe.com/watch/7635964/
|
||||||
|
* Dailymotion
|
||||||
|
* http://www.dailymotion.com/video/xoytqh_dr-seuss-the-lorax-premiere_people
|
||||||
|
* Twitvid
|
||||||
|
* http://twitvid.com/QY7MD
|
||||||
|
* Twitpic
|
||||||
|
* http://twitpic.com/7p93st
|
||||||
|
* Instagram
|
||||||
|
* http://instagr.am/p/IejkuUGxQn/
|
||||||
|
* http://instagram.com/p/IejkuUGxQn/
|
||||||
|
* Google maps
|
||||||
|
* http://maps.google.com/maps?q=Eiffel+Tower,+Avenue+Gustave+Eiffel,+Paris,+France&t=h&z=17
|
||||||
|
* http://maps.google.com/?ll=48.857995,2.294297&spn=0.007666,0.021136&t=m&z=16
|
||||||
|
* http://maps.google.com/?ll=48.859463,2.292626&spn=0.000965,0.002642&t=m&z=19&layer=c&cbll=48.859524,2.292532&panoid=YJ0lq28OOy3VT2IqIuVY0g&cbp=12,151.58,,0,-15.56
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
//Shortcut for fancyBox object
|
||||||
|
var F = $.fancybox,
|
||||||
|
format = function( url, rez, params ) {
|
||||||
|
params = params || '';
|
||||||
|
|
||||||
|
if ( $.type( params ) === "object" ) {
|
||||||
|
params = $.param(params, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$.each(rez, function(key, value) {
|
||||||
|
url = url.replace( '$' + key, value || '' );
|
||||||
|
});
|
||||||
|
|
||||||
|
if (params.length) {
|
||||||
|
url += ( url.indexOf('?') > 0 ? '&' : '?' ) + params;
|
||||||
|
}
|
||||||
|
|
||||||
|
return url;
|
||||||
|
};
|
||||||
|
|
||||||
|
//Add helper object
|
||||||
|
F.helpers.media = {
|
||||||
|
defaults : {
|
||||||
|
youtube : {
|
||||||
|
matcher : /(youtube\.com|youtu\.be|youtube-nocookie\.com)\/(watch\?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*)).*/i,
|
||||||
|
params : {
|
||||||
|
autoplay : 1,
|
||||||
|
autohide : 1,
|
||||||
|
fs : 1,
|
||||||
|
rel : 0,
|
||||||
|
hd : 1,
|
||||||
|
wmode : 'opaque',
|
||||||
|
enablejsapi : 1
|
||||||
|
},
|
||||||
|
type : 'iframe',
|
||||||
|
url : '//www.youtube.com/embed/$3'
|
||||||
|
},
|
||||||
|
vimeo : {
|
||||||
|
matcher : /(?:vimeo(?:pro)?.com)\/(?:[^\d]+)?(\d+)(?:.*)/,
|
||||||
|
params : {
|
||||||
|
autoplay : 1,
|
||||||
|
hd : 1,
|
||||||
|
show_title : 1,
|
||||||
|
show_byline : 1,
|
||||||
|
show_portrait : 0,
|
||||||
|
fullscreen : 1
|
||||||
|
},
|
||||||
|
type : 'iframe',
|
||||||
|
url : '//player.vimeo.com/video/$1'
|
||||||
|
},
|
||||||
|
metacafe : {
|
||||||
|
matcher : /metacafe.com\/(?:watch|fplayer)\/([\w\-]{1,10})/,
|
||||||
|
params : {
|
||||||
|
autoPlay : 'yes'
|
||||||
|
},
|
||||||
|
type : 'swf',
|
||||||
|
url : function( rez, params, obj ) {
|
||||||
|
obj.swf.flashVars = 'playerVars=' + $.param( params, true );
|
||||||
|
|
||||||
|
return '//www.metacafe.com/fplayer/' + rez[1] + '/.swf';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dailymotion : {
|
||||||
|
matcher : /dailymotion.com\/video\/(.*)\/?(.*)/,
|
||||||
|
params : {
|
||||||
|
additionalInfos : 0,
|
||||||
|
autoStart : 1
|
||||||
|
},
|
||||||
|
type : 'swf',
|
||||||
|
url : '//www.dailymotion.com/swf/video/$1'
|
||||||
|
},
|
||||||
|
twitvid : {
|
||||||
|
matcher : /twitvid\.com\/([a-zA-Z0-9_\-\?\=]+)/i,
|
||||||
|
params : {
|
||||||
|
autoplay : 0
|
||||||
|
},
|
||||||
|
type : 'iframe',
|
||||||
|
url : '//www.twitvid.com/embed.php?guid=$1'
|
||||||
|
},
|
||||||
|
twitpic : {
|
||||||
|
matcher : /twitpic\.com\/(?!(?:place|photos|events)\/)([a-zA-Z0-9\?\=\-]+)/i,
|
||||||
|
type : 'image',
|
||||||
|
url : '//twitpic.com/show/full/$1/'
|
||||||
|
},
|
||||||
|
instagram : {
|
||||||
|
matcher : /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
|
||||||
|
type : 'image',
|
||||||
|
url : '//$1/p/$2/media/?size=l'
|
||||||
|
},
|
||||||
|
google_maps : {
|
||||||
|
matcher : /maps\.google\.([a-z]{2,3}(\.[a-z]{2})?)\/(\?ll=|maps\?)(.*)/i,
|
||||||
|
type : 'iframe',
|
||||||
|
url : function( rez ) {
|
||||||
|
return '//maps.google.' + rez[1] + '/' + rez[3] + '' + rez[4] + '&output=' + (rez[4].indexOf('layer=c') > 0 ? 'svembed' : 'embed');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
beforeLoad : function(opts, obj) {
|
||||||
|
var url = obj.href || '',
|
||||||
|
type = false,
|
||||||
|
what,
|
||||||
|
item,
|
||||||
|
rez,
|
||||||
|
params;
|
||||||
|
|
||||||
|
for (what in opts) {
|
||||||
|
if (opts.hasOwnProperty(what)) {
|
||||||
|
item = opts[ what ];
|
||||||
|
rez = url.match( item.matcher );
|
||||||
|
|
||||||
|
if (rez) {
|
||||||
|
type = item.type;
|
||||||
|
params = $.extend(true, {}, item.params, obj[ what ] || ($.isPlainObject(opts[ what ]) ? opts[ what ].params : null));
|
||||||
|
|
||||||
|
url = $.type( item.url ) === "function" ? item.url.call( this, rez, params, obj ) : format( item.url, rez, params );
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type) {
|
||||||
|
obj.href = url;
|
||||||
|
obj.type = type;
|
||||||
|
|
||||||
|
obj.autoHeight = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
}(jQuery));
|
55
3rdparty/fancyapps/source/helpers/jquery.fancybox-thumbs.css
vendored
Executable file
@ -0,0 +1,55 @@
|
|||||||
|
#fancybox-thumbs {
|
||||||
|
position: fixed;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
z-index: 8050;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs.bottom {
|
||||||
|
bottom: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs.top {
|
||||||
|
top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs ul {
|
||||||
|
position: relative;
|
||||||
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs ul li {
|
||||||
|
float: left;
|
||||||
|
padding: 1px;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs ul li.active {
|
||||||
|
opacity: 0.75;
|
||||||
|
padding: 0;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs ul li:hover {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs ul li a {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
border: 1px solid #222;
|
||||||
|
background: #111;
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fancybox-thumbs ul li img {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
max-width: none;
|
||||||
|
}
|
162
3rdparty/fancyapps/source/helpers/jquery.fancybox-thumbs.js
vendored
Executable file
@ -0,0 +1,162 @@
|
|||||||
|
/*!
|
||||||
|
* Thumbnail helper for fancyBox
|
||||||
|
* version: 1.0.7 (Mon, 01 Oct 2012)
|
||||||
|
* @requires fancyBox v2.0 or later
|
||||||
|
*
|
||||||
|
* Usage:
|
||||||
|
* $(".fancybox").fancybox({
|
||||||
|
* helpers : {
|
||||||
|
* thumbs: {
|
||||||
|
* width : 50,
|
||||||
|
* height : 50
|
||||||
|
* }
|
||||||
|
* }
|
||||||
|
* });
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
(function ($) {
|
||||||
|
//Shortcut for fancyBox object
|
||||||
|
var F = $.fancybox;
|
||||||
|
|
||||||
|
//Add helper object
|
||||||
|
F.helpers.thumbs = {
|
||||||
|
defaults : {
|
||||||
|
width : 50, // thumbnail width
|
||||||
|
height : 50, // thumbnail height
|
||||||
|
position : 'bottom', // 'top' or 'bottom'
|
||||||
|
source : function ( item ) { // function to obtain the URL of the thumbnail image
|
||||||
|
var href;
|
||||||
|
|
||||||
|
if (item.element) {
|
||||||
|
href = $(item.element).find('img').attr('src');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!href && item.type === 'image' && item.href) {
|
||||||
|
href = item.href;
|
||||||
|
}
|
||||||
|
|
||||||
|
return href;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
wrap : null,
|
||||||
|
list : null,
|
||||||
|
width : 0,
|
||||||
|
|
||||||
|
init: function (opts, obj) {
|
||||||
|
var that = this,
|
||||||
|
list,
|
||||||
|
thumbWidth = opts.width,
|
||||||
|
thumbHeight = opts.height,
|
||||||
|
thumbSource = opts.source;
|
||||||
|
|
||||||
|
//Build list structure
|
||||||
|
list = '';
|
||||||
|
|
||||||
|
for (var n = 0; n < obj.group.length; n++) {
|
||||||
|
list += '<li><a style="width:' + thumbWidth + 'px;height:' + thumbHeight + 'px;" href="javascript:jQuery.fancybox.jumpto(' + n + ');"></a></li>';
|
||||||
|
}
|
||||||
|
|
||||||
|
this.wrap = $('<div id="fancybox-thumbs"></div>').addClass(opts.position).appendTo('body');
|
||||||
|
this.list = $('<ul>' + list + '</ul>').appendTo(this.wrap);
|
||||||
|
|
||||||
|
//Load each thumbnail
|
||||||
|
$.each(obj.group, function (i) {
|
||||||
|
var href = thumbSource( obj.group[ i ] );
|
||||||
|
|
||||||
|
if (!href) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$("<img />").load(function () {
|
||||||
|
var width = this.width,
|
||||||
|
height = this.height,
|
||||||
|
widthRatio, heightRatio, parent;
|
||||||
|
|
||||||
|
if (!that.list || !width || !height) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Calculate thumbnail width/height and center it
|
||||||
|
widthRatio = width / thumbWidth;
|
||||||
|
heightRatio = height / thumbHeight;
|
||||||
|
|
||||||
|
parent = that.list.children().eq(i).find('a');
|
||||||
|
|
||||||
|
if (widthRatio >= 1 && heightRatio >= 1) {
|
||||||
|
if (widthRatio > heightRatio) {
|
||||||
|
width = Math.floor(width / heightRatio);
|
||||||
|
height = thumbHeight;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
width = thumbWidth;
|
||||||
|
height = Math.floor(height / widthRatio);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this).css({
|
||||||
|
width : width,
|
||||||
|
height : height,
|
||||||
|
top : Math.floor(thumbHeight / 2 - height / 2),
|
||||||
|
left : Math.floor(thumbWidth / 2 - width / 2)
|
||||||
|
});
|
||||||
|
|
||||||
|
parent.width(thumbWidth).height(thumbHeight);
|
||||||
|
|
||||||
|
$(this).hide().appendTo(parent).fadeIn(300);
|
||||||
|
|
||||||
|
}).attr('src', href);
|
||||||
|
});
|
||||||
|
|
||||||
|
//Set initial width
|
||||||
|
this.width = this.list.children().eq(0).outerWidth(true);
|
||||||
|
|
||||||
|
this.list.width(this.width * (obj.group.length + 1)).css('left', Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5)));
|
||||||
|
},
|
||||||
|
|
||||||
|
beforeLoad: function (opts, obj) {
|
||||||
|
//Remove self if gallery do not have at least two items
|
||||||
|
if (obj.group.length < 2) {
|
||||||
|
obj.helpers.thumbs = false;
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Increase bottom margin to give space for thumbs
|
||||||
|
obj.margin[ opts.position === 'top' ? 0 : 2 ] += ((opts.height) + 15);
|
||||||
|
},
|
||||||
|
|
||||||
|
afterShow: function (opts, obj) {
|
||||||
|
//Check if exists and create or update list
|
||||||
|
if (this.list) {
|
||||||
|
this.onUpdate(opts, obj);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
this.init(opts, obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Set active element
|
||||||
|
this.list.children().removeClass('active').eq(obj.index).addClass('active');
|
||||||
|
},
|
||||||
|
|
||||||
|
//Center list
|
||||||
|
onUpdate: function (opts, obj) {
|
||||||
|
if (this.list) {
|
||||||
|
this.list.stop(true).animate({
|
||||||
|
'left': Math.floor($(window).width() * 0.5 - (obj.index * this.width + this.width * 0.5))
|
||||||
|
}, 150);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
beforeClose: function () {
|
||||||
|
if (this.wrap) {
|
||||||
|
this.wrap.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
this.wrap = null;
|
||||||
|
this.list = null;
|
||||||
|
this.width = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}(jQuery));
|
1
3rdparty/fancyapps/source/jquery.fancybox.css
vendored
Executable file
@ -0,0 +1 @@
|
|||||||
|
/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ .fancybox-wrap, .fancybox-skin, .fancybox-outer, .fancybox-inner, .fancybox-image, .fancybox-wrap iframe, .fancybox-wrap object, .fancybox-nav, .fancybox-nav span, .fancybox-tmp { padding: 0;margin: 0;border: 0;outline: none;vertical-align: top;} .fancybox-wrap { position: absolute;top: 0;left: 0;z-index: 8020;} .fancybox-skin { position: relative;background: #f9f9f9;color: #444;text-shadow: none;-webkit-border-radius: 4px;-moz-border-radius: 4px;border-radius: 4px;} .fancybox-opened { z-index: 8030;} .fancybox-opened .fancybox-skin { -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);-moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);} .fancybox-outer, .fancybox-inner { position: relative;} .fancybox-inner { overflow: hidden;} .fancybox-type-iframe .fancybox-inner { -webkit-overflow-scrolling: touch;} .fancybox-error { color: #444;font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;margin: 0;padding: 15px;white-space: nowrap;} .fancybox-image, .fancybox-iframe { display: block;width: 100%;height: 100%;} .fancybox-image { max-width: 100%;max-height: 100%;} #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { background-image: url('fancybox_sprite.png');} #fancybox-loading { position: fixed;top: 50%;left: 50%;margin-top: -22px;margin-left: -22px;background-position: 0 -108px;opacity: 0.8;cursor: pointer;z-index: 8060;} #fancybox-loading div { width: 44px;height: 44px;background: url('fancybox_loading.gif') center center no-repeat;} .fancybox-close { position: absolute;top: -18px;right: -18px;width: 36px;height: 36px;cursor: pointer;z-index: 8040;} .fancybox-nav { position: absolute;top: 0;width: 40%;height: 100%;cursor: pointer;text-decoration: none;background: transparent url('blank.gif');/* helps IE */ -webkit-tap-highlight-color: rgba(0,0,0,0);z-index: 8040;} .fancybox-prev { left: 0;} .fancybox-next { right: 0;} .fancybox-nav span { position: absolute;top: 50%;width: 36px;height: 34px;margin-top: -18px;cursor: pointer;z-index: 8040;visibility: hidden;} .fancybox-prev span { left: 10px;background-position: 0 -36px;} .fancybox-next span { right: 10px;background-position: 0 -72px;} .fancybox-nav:hover span { visibility: visible;} .fancybox-tmp { position: absolute;top: -99999px;left: -99999px;visibility: hidden;max-width: 99999px;max-height: 99999px;overflow: visible !important;} /* Overlay helper */ .fancybox-lock { overflow: hidden !important;width: auto;} .fancybox-lock body { overflow: hidden !important;} .fancybox-lock-test { overflow-y: hidden !important;} .fancybox-overlay { position: absolute;top: 0;left: 0;overflow: hidden;display: none;z-index: 8010;background: url('fancybox_overlay.png');} .fancybox-overlay-fixed { position: fixed;bottom: 0;right: 0;} .fancybox-lock .fancybox-overlay { overflow: auto;overflow-y: scroll;} /* Title helper */ .fancybox-title { visibility: hidden;font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif;position: relative;text-shadow: none;z-index: 8050;} .fancybox-opened .fancybox-title { visibility: visible;} .fancybox-title-float-wrap { position: absolute;bottom: 0;right: 50%;margin-bottom: -35px;z-index: 8050;text-align: center;} .fancybox-title-float-wrap .child { display: inline-block;margin-right: -100%;padding: 2px 20px;background: transparent;/* Fallback for web browsers that doesn't support RGBa */ background: rgba(0, 0, 0, 0.8);-webkit-border-radius: 15px;-moz-border-radius: 15px;border-radius: 15px;text-shadow: 0 1px 2px #222;color: #FFF;font-weight: bold;line-height: 24px;white-space: nowrap;} .fancybox-title-outside-wrap { position: relative;margin-top: 10px;color: #fff;} .fancybox-title-inside-wrap { padding-top: 10px;} .fancybox-title-over-wrap { position: absolute;bottom: 0;left: 0;color: #fff;padding: 10px;background: #000;background: rgba(0, 0, 0, .8);} /*Retina graphics!*/ @media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (min--moz-device-pixel-ratio: 1.5), only screen and (min-device-pixel-ratio: 1.5){ #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { background-image: url('fancybox_sprite@2x.png');background-size: 44px 152px;/*The size of the normal image, half the size of the hi-res image*/ } #fancybox-loading div { background-image: url('fancybox_loading@2x.gif');background-size: 24px 24px;/*The size of the normal image, half the size of the hi-res image*/ } }
|
2020
3rdparty/fancyapps/source/jquery.fancybox.js
vendored
Executable file
46
3rdparty/fancyapps/source/jquery.fancybox.pack.js
vendored
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */
|
||||||
|
(function(r,G,f,v){var J=f("html"),n=f(r),p=f(G),b=f.fancybox=function(){b.open.apply(this,arguments)},I=navigator.userAgent.match(/msie/i),B=null,s=G.createTouch!==v,t=function(a){return a&&a.hasOwnProperty&&a instanceof f},q=function(a){return a&&"string"===f.type(a)},E=function(a){return q(a)&&0<a.indexOf("%")},l=function(a,d){var e=parseInt(a,10)||0;d&&E(a)&&(e*=b.getViewport()[d]/100);return Math.ceil(e)},w=function(a,b){return l(a,b)+"px"};f.extend(b,{version:"2.1.5",defaults:{padding:15,margin:20,
|
||||||
|
width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!s,fitToView:!0,aspectRatio:!1,topRatio:0.5,leftRatio:0.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3E3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},
|
||||||
|
keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+
|
||||||
|
(I?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,
|
||||||
|
openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:f.noop,beforeLoad:f.noop,afterLoad:f.noop,beforeShow:f.noop,afterShow:f.noop,beforeChange:f.noop,beforeClose:f.noop,afterClose:f.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,
|
||||||
|
isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(a,d){if(a&&(f.isPlainObject(d)||(d={}),!1!==b.close(!0)))return f.isArray(a)||(a=t(a)?f(a).get():[a]),f.each(a,function(e,c){var k={},g,h,j,m,l;"object"===f.type(c)&&(c.nodeType&&(c=f(c)),t(c)?(k={href:c.data("fancybox-href")||c.attr("href"),title:c.data("fancybox-title")||c.attr("title"),isDom:!0,element:c},f.metadata&&f.extend(!0,k,
|
||||||
|
c.metadata())):k=c);g=d.href||k.href||(q(c)?c:null);h=d.title!==v?d.title:k.title||"";m=(j=d.content||k.content)?"html":d.type||k.type;!m&&k.isDom&&(m=c.data("fancybox-type"),m||(m=(m=c.prop("class").match(/fancybox\.(\w+)/))?m[1]:null));q(g)&&(m||(b.isImage(g)?m="image":b.isSWF(g)?m="swf":"#"===g.charAt(0)?m="inline":q(c)&&(m="html",j=c)),"ajax"===m&&(l=g.split(/\s+/,2),g=l.shift(),l=l.shift()));j||("inline"===m?g?j=f(q(g)?g.replace(/.*(?=#[^\s]+$)/,""):g):k.isDom&&(j=c):"html"===m?j=g:!m&&(!g&&
|
||||||
|
k.isDom)&&(m="inline",j=c));f.extend(k,{href:g,type:m,content:j,title:h,selector:l});a[e]=k}),b.opts=f.extend(!0,{},b.defaults,d),d.keys!==v&&(b.opts.keys=d.keys?f.extend({},b.defaults.keys,d.keys):!1),b.group=a,b._start(b.opts.index)},cancel:function(){var a=b.coming;a&&!1!==b.trigger("onCancel")&&(b.hideLoading(),b.ajaxLoad&&b.ajaxLoad.abort(),b.ajaxLoad=null,b.imgPreload&&(b.imgPreload.onload=b.imgPreload.onerror=null),a.wrap&&a.wrap.stop(!0,!0).trigger("onReset").remove(),b.coming=null,b.current||
|
||||||
|
b._afterZoomOut(a))},close:function(a){b.cancel();!1!==b.trigger("beforeClose")&&(b.unbindEvents(),b.isActive&&(!b.isOpen||!0===a?(f(".fancybox-wrap").stop(!0).trigger("onReset").remove(),b._afterZoomOut()):(b.isOpen=b.isOpened=!1,b.isClosing=!0,f(".fancybox-item, .fancybox-nav").remove(),b.wrap.stop(!0,!0).removeClass("fancybox-opened"),b.transitions[b.current.closeMethod]())))},play:function(a){var d=function(){clearTimeout(b.player.timer)},e=function(){d();b.current&&b.player.isActive&&(b.player.timer=
|
||||||
|
setTimeout(b.next,b.current.playSpeed))},c=function(){d();p.unbind(".player");b.player.isActive=!1;b.trigger("onPlayEnd")};if(!0===a||!b.player.isActive&&!1!==a){if(b.current&&(b.current.loop||b.current.index<b.group.length-1))b.player.isActive=!0,p.bind({"onCancel.player beforeClose.player":c,"onUpdate.player":e,"beforeLoad.player":d}),e(),b.trigger("onPlayStart")}else c()},next:function(a){var d=b.current;d&&(q(a)||(a=d.direction.next),b.jumpto(d.index+1,a,"next"))},prev:function(a){var d=b.current;
|
||||||
|
d&&(q(a)||(a=d.direction.prev),b.jumpto(d.index-1,a,"prev"))},jumpto:function(a,d,e){var c=b.current;c&&(a=l(a),b.direction=d||c.direction[a>=c.index?"next":"prev"],b.router=e||"jumpto",c.loop&&(0>a&&(a=c.group.length+a%c.group.length),a%=c.group.length),c.group[a]!==v&&(b.cancel(),b._start(a)))},reposition:function(a,d){var e=b.current,c=e?e.wrap:null,k;c&&(k=b._getPosition(d),a&&"scroll"===a.type?(delete k.position,c.stop(!0,!0).animate(k,200)):(c.css(k),e.pos=f.extend({},e.dim,k)))},update:function(a){var d=
|
||||||
|
a&&a.type,e=!d||"orientationchange"===d;e&&(clearTimeout(B),B=null);b.isOpen&&!B&&(B=setTimeout(function(){var c=b.current;c&&!b.isClosing&&(b.wrap.removeClass("fancybox-tmp"),(e||"load"===d||"resize"===d&&c.autoResize)&&b._setDimension(),"scroll"===d&&c.canShrink||b.reposition(a),b.trigger("onUpdate"),B=null)},e&&!s?0:300))},toggle:function(a){b.isOpen&&(b.current.fitToView="boolean"===f.type(a)?a:!b.current.fitToView,s&&(b.wrap.removeAttr("style").addClass("fancybox-tmp"),b.trigger("onUpdate")),
|
||||||
|
b.update())},hideLoading:function(){p.unbind(".loading");f("#fancybox-loading").remove()},showLoading:function(){var a,d;b.hideLoading();a=f('<div id="fancybox-loading"><div></div></div>').click(b.cancel).appendTo("body");p.bind("keydown.loading",function(a){if(27===(a.which||a.keyCode))a.preventDefault(),b.cancel()});b.defaults.fixed||(d=b.getViewport(),a.css({position:"absolute",top:0.5*d.h+d.y,left:0.5*d.w+d.x}))},getViewport:function(){var a=b.current&&b.current.locked||!1,d={x:n.scrollLeft(),
|
||||||
|
y:n.scrollTop()};a?(d.w=a[0].clientWidth,d.h=a[0].clientHeight):(d.w=s&&r.innerWidth?r.innerWidth:n.width(),d.h=s&&r.innerHeight?r.innerHeight:n.height());return d},unbindEvents:function(){b.wrap&&t(b.wrap)&&b.wrap.unbind(".fb");p.unbind(".fb");n.unbind(".fb")},bindEvents:function(){var a=b.current,d;a&&(n.bind("orientationchange.fb"+(s?"":" resize.fb")+(a.autoCenter&&!a.locked?" scroll.fb":""),b.update),(d=a.keys)&&p.bind("keydown.fb",function(e){var c=e.which||e.keyCode,k=e.target||e.srcElement;
|
||||||
|
if(27===c&&b.coming)return!1;!e.ctrlKey&&(!e.altKey&&!e.shiftKey&&!e.metaKey&&(!k||!k.type&&!f(k).is("[contenteditable]")))&&f.each(d,function(d,k){if(1<a.group.length&&k[c]!==v)return b[d](k[c]),e.preventDefault(),!1;if(-1<f.inArray(c,k))return b[d](),e.preventDefault(),!1})}),f.fn.mousewheel&&a.mouseWheel&&b.wrap.bind("mousewheel.fb",function(d,c,k,g){for(var h=f(d.target||null),j=!1;h.length&&!j&&!h.is(".fancybox-skin")&&!h.is(".fancybox-wrap");)j=h[0]&&!(h[0].style.overflow&&"hidden"===h[0].style.overflow)&&
|
||||||
|
(h[0].clientWidth&&h[0].scrollWidth>h[0].clientWidth||h[0].clientHeight&&h[0].scrollHeight>h[0].clientHeight),h=f(h).parent();if(0!==c&&!j&&1<b.group.length&&!a.canShrink){if(0<g||0<k)b.prev(0<g?"down":"left");else if(0>g||0>k)b.next(0>g?"up":"right");d.preventDefault()}}))},trigger:function(a,d){var e,c=d||b.coming||b.current;if(c){f.isFunction(c[a])&&(e=c[a].apply(c,Array.prototype.slice.call(arguments,1)));if(!1===e)return!1;c.helpers&&f.each(c.helpers,function(d,e){if(e&&b.helpers[d]&&f.isFunction(b.helpers[d][a]))b.helpers[d][a](f.extend(!0,
|
||||||
|
{},b.helpers[d].defaults,e),c)});p.trigger(a)}},isImage:function(a){return q(a)&&a.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(a){return q(a)&&a.match(/\.(swf)((\?|#).*)?$/i)},_start:function(a){var d={},e,c;a=l(a);e=b.group[a]||null;if(!e)return!1;d=f.extend(!0,{},b.opts,e);e=d.margin;c=d.padding;"number"===f.type(e)&&(d.margin=[e,e,e,e]);"number"===f.type(c)&&(d.padding=[c,c,c,c]);d.modal&&f.extend(!0,d,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,
|
||||||
|
mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}});d.autoSize&&(d.autoWidth=d.autoHeight=!0);"auto"===d.width&&(d.autoWidth=!0);"auto"===d.height&&(d.autoHeight=!0);d.group=b.group;d.index=a;b.coming=d;if(!1===b.trigger("beforeLoad"))b.coming=null;else{c=d.type;e=d.href;if(!c)return b.coming=null,b.current&&b.router&&"jumpto"!==b.router?(b.current.index=a,b[b.router](b.direction)):!1;b.isActive=!0;if("image"===c||"swf"===c)d.autoHeight=d.autoWidth=!1,d.scrolling="visible";"image"===c&&(d.aspectRatio=
|
||||||
|
!0);"iframe"===c&&s&&(d.scrolling="scroll");d.wrap=f(d.tpl.wrap).addClass("fancybox-"+(s?"mobile":"desktop")+" fancybox-type-"+c+" fancybox-tmp "+d.wrapCSS).appendTo(d.parent||"body");f.extend(d,{skin:f(".fancybox-skin",d.wrap),outer:f(".fancybox-outer",d.wrap),inner:f(".fancybox-inner",d.wrap)});f.each(["Top","Right","Bottom","Left"],function(a,b){d.skin.css("padding"+b,w(d.padding[a]))});b.trigger("onReady");if("inline"===c||"html"===c){if(!d.content||!d.content.length)return b._error("content")}else if(!e)return b._error("href");
|
||||||
|
"image"===c?b._loadImage():"ajax"===c?b._loadAjax():"iframe"===c?b._loadIframe():b._afterLoad()}},_error:function(a){f.extend(b.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:a,content:b.coming.tpl.error});b._afterLoad()},_loadImage:function(){var a=b.imgPreload=new Image;a.onload=function(){this.onload=this.onerror=null;b.coming.width=this.width/b.opts.pixelRatio;b.coming.height=this.height/b.opts.pixelRatio;b._afterLoad()};a.onerror=function(){this.onload=
|
||||||
|
this.onerror=null;b._error("image")};a.src=b.coming.href;!0!==a.complete&&b.showLoading()},_loadAjax:function(){var a=b.coming;b.showLoading();b.ajaxLoad=f.ajax(f.extend({},a.ajax,{url:a.href,error:function(a,e){b.coming&&"abort"!==e?b._error("ajax",a):b.hideLoading()},success:function(d,e){"success"===e&&(a.content=d,b._afterLoad())}}))},_loadIframe:function(){var a=b.coming,d=f(a.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",s?"auto":a.iframe.scrolling).attr("src",a.href);
|
||||||
|
f(a.wrap).bind("onReset",function(){try{f(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(a){}});a.iframe.preload&&(b.showLoading(),d.one("load",function(){f(this).data("ready",1);s||f(this).bind("load.fb",b.update);f(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show();b._afterLoad()}));a.content=d.appendTo(a.inner);a.iframe.preload||b._afterLoad()},_preloadImages:function(){var a=b.group,d=b.current,e=a.length,c=d.preload?Math.min(d.preload,
|
||||||
|
e-1):0,f,g;for(g=1;g<=c;g+=1)f=a[(d.index+g)%e],"image"===f.type&&f.href&&((new Image).src=f.href)},_afterLoad:function(){var a=b.coming,d=b.current,e,c,k,g,h;b.hideLoading();if(a&&!1!==b.isActive)if(!1===b.trigger("afterLoad",a,d))a.wrap.stop(!0).trigger("onReset").remove(),b.coming=null;else{d&&(b.trigger("beforeChange",d),d.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove());b.unbindEvents();e=a.content;c=a.type;k=a.scrolling;f.extend(b,{wrap:a.wrap,skin:a.skin,
|
||||||
|
outer:a.outer,inner:a.inner,current:a,previous:d});g=a.href;switch(c){case "inline":case "ajax":case "html":a.selector?e=f("<div>").html(e).find(a.selector):t(e)&&(e.data("fancybox-placeholder")||e.data("fancybox-placeholder",f('<div class="fancybox-placeholder"></div>').insertAfter(e).hide()),e=e.show().detach(),a.wrap.bind("onReset",function(){f(this).find(e).length&&e.hide().replaceAll(e.data("fancybox-placeholder")).data("fancybox-placeholder",!1)}));break;case "image":e=a.tpl.image.replace("{href}",
|
||||||
|
g);break;case "swf":e='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+g+'"></param>',h="",f.each(a.swf,function(a,b){e+='<param name="'+a+'" value="'+b+'"></param>';h+=" "+a+'="'+b+'"'}),e+='<embed src="'+g+'" type="application/x-shockwave-flash" width="100%" height="100%"'+h+"></embed></object>"}(!t(e)||!e.parent().is(a.inner))&&a.inner.append(e);b.trigger("beforeShow");a.inner.css("overflow","yes"===k?"scroll":
|
||||||
|
"no"===k?"hidden":k);b._setDimension();b.reposition();b.isOpen=!1;b.coming=null;b.bindEvents();if(b.isOpened){if(d.prevMethod)b.transitions[d.prevMethod]()}else f(".fancybox-wrap").not(a.wrap).stop(!0).trigger("onReset").remove();b.transitions[b.isOpened?a.nextMethod:a.openMethod]();b._preloadImages()}},_setDimension:function(){var a=b.getViewport(),d=0,e=!1,c=!1,e=b.wrap,k=b.skin,g=b.inner,h=b.current,c=h.width,j=h.height,m=h.minWidth,u=h.minHeight,n=h.maxWidth,p=h.maxHeight,s=h.scrolling,q=h.scrollOutside?
|
||||||
|
h.scrollbarWidth:0,x=h.margin,y=l(x[1]+x[3]),r=l(x[0]+x[2]),v,z,t,C,A,F,B,D,H;e.add(k).add(g).width("auto").height("auto").removeClass("fancybox-tmp");x=l(k.outerWidth(!0)-k.width());v=l(k.outerHeight(!0)-k.height());z=y+x;t=r+v;C=E(c)?(a.w-z)*l(c)/100:c;A=E(j)?(a.h-t)*l(j)/100:j;if("iframe"===h.type){if(H=h.content,h.autoHeight&&1===H.data("ready"))try{H[0].contentWindow.document.location&&(g.width(C).height(9999),F=H.contents().find("body"),q&&F.css("overflow-x","hidden"),A=F.outerHeight(!0))}catch(G){}}else if(h.autoWidth||
|
||||||
|
h.autoHeight)g.addClass("fancybox-tmp"),h.autoWidth||g.width(C),h.autoHeight||g.height(A),h.autoWidth&&(C=g.width()),h.autoHeight&&(A=g.height()),g.removeClass("fancybox-tmp");c=l(C);j=l(A);D=C/A;m=l(E(m)?l(m,"w")-z:m);n=l(E(n)?l(n,"w")-z:n);u=l(E(u)?l(u,"h")-t:u);p=l(E(p)?l(p,"h")-t:p);F=n;B=p;h.fitToView&&(n=Math.min(a.w-z,n),p=Math.min(a.h-t,p));z=a.w-y;r=a.h-r;h.aspectRatio?(c>n&&(c=n,j=l(c/D)),j>p&&(j=p,c=l(j*D)),c<m&&(c=m,j=l(c/D)),j<u&&(j=u,c=l(j*D))):(c=Math.max(m,Math.min(c,n)),h.autoHeight&&
|
||||||
|
"iframe"!==h.type&&(g.width(c),j=g.height()),j=Math.max(u,Math.min(j,p)));if(h.fitToView)if(g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height(),h.aspectRatio)for(;(a>z||y>r)&&(c>m&&j>u)&&!(19<d++);)j=Math.max(u,Math.min(p,j-10)),c=l(j*D),c<m&&(c=m,j=l(c/D)),c>n&&(c=n,j=l(c/D)),g.width(c).height(j),e.width(c+x),a=e.width(),y=e.height();else c=Math.max(m,Math.min(c,c-(a-z))),j=Math.max(u,Math.min(j,j-(y-r)));q&&("auto"===s&&j<A&&c+x+q<z)&&(c+=q);g.width(c).height(j);e.width(c+x);a=e.width();
|
||||||
|
y=e.height();e=(a>z||y>r)&&c>m&&j>u;c=h.aspectRatio?c<F&&j<B&&c<C&&j<A:(c<F||j<B)&&(c<C||j<A);f.extend(h,{dim:{width:w(a),height:w(y)},origWidth:C,origHeight:A,canShrink:e,canExpand:c,wPadding:x,hPadding:v,wrapSpace:y-k.outerHeight(!0),skinSpace:k.height()-j});!H&&(h.autoHeight&&j>u&&j<p&&!c)&&g.height("auto")},_getPosition:function(a){var d=b.current,e=b.getViewport(),c=d.margin,f=b.wrap.width()+c[1]+c[3],g=b.wrap.height()+c[0]+c[2],c={position:"absolute",top:c[0],left:c[3]};d.autoCenter&&d.fixed&&
|
||||||
|
!a&&g<=e.h&&f<=e.w?c.position="fixed":d.locked||(c.top+=e.y,c.left+=e.x);c.top=w(Math.max(c.top,c.top+(e.h-g)*d.topRatio));c.left=w(Math.max(c.left,c.left+(e.w-f)*d.leftRatio));return c},_afterZoomIn:function(){var a=b.current;a&&(b.isOpen=b.isOpened=!0,b.wrap.css("overflow","visible").addClass("fancybox-opened"),b.update(),(a.closeClick||a.nextClick&&1<b.group.length)&&b.inner.css("cursor","pointer").bind("click.fb",function(d){!f(d.target).is("a")&&!f(d.target).parent().is("a")&&(d.preventDefault(),
|
||||||
|
b[a.closeClick?"close":"next"]())}),a.closeBtn&&f(a.tpl.closeBtn).appendTo(b.skin).bind("click.fb",function(a){a.preventDefault();b.close()}),a.arrows&&1<b.group.length&&((a.loop||0<a.index)&&f(a.tpl.prev).appendTo(b.outer).bind("click.fb",b.prev),(a.loop||a.index<b.group.length-1)&&f(a.tpl.next).appendTo(b.outer).bind("click.fb",b.next)),b.trigger("afterShow"),!a.loop&&a.index===a.group.length-1?b.play(!1):b.opts.autoPlay&&!b.player.isActive&&(b.opts.autoPlay=!1,b.play()))},_afterZoomOut:function(a){a=
|
||||||
|
a||b.current;f(".fancybox-wrap").trigger("onReset").remove();f.extend(b,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null});b.trigger("afterClose",a)}});b.transitions={getOrigPosition:function(){var a=b.current,d=a.element,e=a.orig,c={},f=50,g=50,h=a.hPadding,j=a.wPadding,m=b.getViewport();!e&&(a.isDom&&d.is(":visible"))&&(e=d.find("img:first"),e.length||(e=d));t(e)?(c=e.offset(),e.is("img")&&(f=e.outerWidth(),g=e.outerHeight())):
|
||||||
|
(c.top=m.y+(m.h-g)*a.topRatio,c.left=m.x+(m.w-f)*a.leftRatio);if("fixed"===b.wrap.css("position")||a.locked)c.top-=m.y,c.left-=m.x;return c={top:w(c.top-h*a.topRatio),left:w(c.left-j*a.leftRatio),width:w(f+j),height:w(g+h)}},step:function(a,d){var e,c,f=d.prop;c=b.current;var g=c.wrapSpace,h=c.skinSpace;if("width"===f||"height"===f)e=d.end===d.start?1:(a-d.start)/(d.end-d.start),b.isClosing&&(e=1-e),c="width"===f?c.wPadding:c.hPadding,c=a-c,b.skin[f](l("width"===f?c:c-g*e)),b.inner[f](l("width"===
|
||||||
|
f?c:c-g*e-h*e))},zoomIn:function(){var a=b.current,d=a.pos,e=a.openEffect,c="elastic"===e,k=f.extend({opacity:1},d);delete k.position;c?(d=this.getOrigPosition(),a.openOpacity&&(d.opacity=0.1)):"fade"===e&&(d.opacity=0.1);b.wrap.css(d).animate(k,{duration:"none"===e?0:a.openSpeed,easing:a.openEasing,step:c?this.step:null,complete:b._afterZoomIn})},zoomOut:function(){var a=b.current,d=a.closeEffect,e="elastic"===d,c={opacity:0.1};e&&(c=this.getOrigPosition(),a.closeOpacity&&(c.opacity=0.1));b.wrap.animate(c,
|
||||||
|
{duration:"none"===d?0:a.closeSpeed,easing:a.closeEasing,step:e?this.step:null,complete:b._afterZoomOut})},changeIn:function(){var a=b.current,d=a.nextEffect,e=a.pos,c={opacity:1},f=b.direction,g;e.opacity=0.1;"elastic"===d&&(g="down"===f||"up"===f?"top":"left","down"===f||"right"===f?(e[g]=w(l(e[g])-200),c[g]="+=200px"):(e[g]=w(l(e[g])+200),c[g]="-=200px"));"none"===d?b._afterZoomIn():b.wrap.css(e).animate(c,{duration:a.nextSpeed,easing:a.nextEasing,complete:b._afterZoomIn})},changeOut:function(){var a=
|
||||||
|
b.previous,d=a.prevEffect,e={opacity:0.1},c=b.direction;"elastic"===d&&(e["down"===c||"up"===c?"top":"left"]=("up"===c||"left"===c?"-":"+")+"=200px");a.wrap.animate(e,{duration:"none"===d?0:a.prevSpeed,easing:a.prevEasing,complete:function(){f(this).trigger("onReset").remove()}})}};b.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!s,fixed:!0},overlay:null,fixed:!1,el:f("html"),create:function(a){a=f.extend({},this.defaults,a);this.overlay&&this.close();this.overlay=
|
||||||
|
f('<div class="fancybox-overlay"></div>').appendTo(b.coming?b.coming.parent:a.parent);this.fixed=!1;a.fixed&&b.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(a){var d=this;a=f.extend({},this.defaults,a);this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(a);this.fixed||(n.bind("resize.overlay",f.proxy(this.update,this)),this.update());a.closeClick&&this.overlay.bind("click.overlay",function(a){if(f(a.target).hasClass("fancybox-overlay"))return b.isActive?
|
||||||
|
b.close():d.close(),!1});this.overlay.css(a.css).show()},close:function(){var a,b;n.unbind("resize.overlay");this.el.hasClass("fancybox-lock")&&(f(".fancybox-margin").removeClass("fancybox-margin"),a=n.scrollTop(),b=n.scrollLeft(),this.el.removeClass("fancybox-lock"),n.scrollTop(a).scrollLeft(b));f(".fancybox-overlay").remove().hide();f.extend(this,{overlay:null,fixed:!1})},update:function(){var a="100%",b;this.overlay.width(a).height("100%");I?(b=Math.max(G.documentElement.offsetWidth,G.body.offsetWidth),
|
||||||
|
p.width()>b&&(a=p.width())):p.width()>n.width()&&(a=p.width());this.overlay.width(a).height(p.height())},onReady:function(a,b){var e=this.overlay;f(".fancybox-overlay").stop(!0,!0);e||this.create(a);a.locked&&(this.fixed&&b.fixed)&&(e||(this.margin=p.height()>n.height()?f("html").css("margin-right").replace("px",""):!1),b.locked=this.overlay.append(b.wrap),b.fixed=!1);!0===a.showEarly&&this.beforeShow.apply(this,arguments)},beforeShow:function(a,b){var e,c;b.locked&&(!1!==this.margin&&(f("*").filter(function(){return"fixed"===
|
||||||
|
f(this).css("position")&&!f(this).hasClass("fancybox-overlay")&&!f(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),e=n.scrollTop(),c=n.scrollLeft(),this.el.addClass("fancybox-lock"),n.scrollTop(e).scrollLeft(c));this.open(a)},onUpdate:function(){this.fixed||this.update()},afterClose:function(a){this.overlay&&!b.coming&&this.overlay.fadeOut(a.speedOut,f.proxy(this.close,this))}};b.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(a){var d=
|
||||||
|
b.current,e=d.title,c=a.type;f.isFunction(e)&&(e=e.call(d.element,d));if(q(e)&&""!==f.trim(e)){d=f('<div class="fancybox-title fancybox-title-'+c+'-wrap">'+e+"</div>");switch(c){case "inside":c=b.skin;break;case "outside":c=b.wrap;break;case "over":c=b.inner;break;default:c=b.skin,d.appendTo("body"),I&&d.width(d.width()),d.wrapInner('<span class="child"></span>'),b.current.margin[2]+=Math.abs(l(d.css("margin-bottom")))}d["top"===a.position?"prependTo":"appendTo"](c)}}};f.fn.fancybox=function(a){var d,
|
||||||
|
e=f(this),c=this.selector||"",k=function(g){var h=f(this).blur(),j=d,k,l;!g.ctrlKey&&(!g.altKey&&!g.shiftKey&&!g.metaKey)&&!h.is(".fancybox-wrap")&&(k=a.groupAttr||"data-fancybox-group",l=h.attr(k),l||(k="rel",l=h.get(0)[k]),l&&(""!==l&&"nofollow"!==l)&&(h=c.length?f(c):e,h=h.filter("["+k+'="'+l+'"]'),j=h.index(this)),a.index=j,!1!==b.open(h,a)&&g.preventDefault())};a=a||{};d=a.index||0;!c||!1===a.live?e.unbind("click.fb-start").bind("click.fb-start",k):p.undelegate(c,"click.fb-start").delegate(c+
|
||||||
|
":not('.fancybox-item, .fancybox-nav')","click.fb-start",k);this.filter("[data-fancybox-start=1]").trigger("click");return this};p.ready(function(){var a,d;f.scrollbarWidth===v&&(f.scrollbarWidth=function(){var a=f('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),b=a.children(),b=b.innerWidth()-b.height(99).innerWidth();a.remove();return b});if(f.support.fixedPosition===v){a=f.support;d=f('<div style="position:fixed;top:20px;"></div>').appendTo("body");var e=20===
|
||||||
|
d[0].offsetTop||15===d[0].offsetTop;d.remove();a.fixedPosition=e}f.extend(b.defaults,{scrollbarWidth:f.scrollbarWidth(),fixed:f.support.fixedPosition,parent:f("body")});a=f(r).width();J.addClass("fancybox-lock-test");d=f(r).width();J.removeClass("fancybox-lock-test");f("<style type='text/css'>.fancybox-margin{margin-right:"+(d-a)+"px;}</style>").appendTo("head")})})(window,document,jQuery);
|
BIN
3rdparty/fancyapps/sprite.psd
vendored
Executable file
177
3rdparty/gestionnaire_upload/css/main.css
vendored
Executable file
@ -0,0 +1,177 @@
|
|||||||
|
*{
|
||||||
|
margin:0;
|
||||||
|
padding:0;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
background-color:#74b1d1;
|
||||||
|
color:#fff;
|
||||||
|
font:14px/1.3 Arial,sans-serif;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
background-color:#212121;
|
||||||
|
box-shadow: 0 -1px 2px #111111;
|
||||||
|
display:block;
|
||||||
|
height:70px;
|
||||||
|
position:relative;
|
||||||
|
width:100%;
|
||||||
|
z-index:100;
|
||||||
|
}
|
||||||
|
header h2{
|
||||||
|
font-size:22px;
|
||||||
|
font-weight:normal;
|
||||||
|
left:50%;
|
||||||
|
margin-left:-400px;
|
||||||
|
padding:22px 0;
|
||||||
|
position:absolute;
|
||||||
|
width:540px;
|
||||||
|
}
|
||||||
|
header a.stuts,a.stuts:visited{
|
||||||
|
border:none;
|
||||||
|
text-decoration:none;
|
||||||
|
color:#fcfcfc;
|
||||||
|
font-size:14px;
|
||||||
|
left:50%;
|
||||||
|
line-height:31px;
|
||||||
|
margin:23px 0 0 110px;
|
||||||
|
position:absolute;
|
||||||
|
top:0;
|
||||||
|
}
|
||||||
|
header .stuts span {
|
||||||
|
font-size:22px;
|
||||||
|
font-weight:bold;
|
||||||
|
margin-left:5px;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
overflow:hidden;
|
||||||
|
width:960px;
|
||||||
|
margin:20px auto;
|
||||||
|
}
|
||||||
|
.contr {
|
||||||
|
background-color:#212121;
|
||||||
|
padding:10px 0;
|
||||||
|
text-align:center;
|
||||||
|
|
||||||
|
border-radius:10px 10px 0 0;
|
||||||
|
-moz-border-radius:10px 10px 0 0;
|
||||||
|
-webkit-border-radius:10px 10px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload_form_cont {
|
||||||
|
background: -moz-linear-gradient(#ffffff, #f2f2f2);
|
||||||
|
background: -ms-linear-gradient(#ffffff, #f2f2f2);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f2f2f2));
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #f2f2f2);
|
||||||
|
background: -o-linear-gradient(#ffffff, #f2f2f2);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f2f2f2');
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f2f2f2')";
|
||||||
|
background: linear-gradient(#ffffff, #f2f2f2);
|
||||||
|
|
||||||
|
color:#000;
|
||||||
|
overflow:hidden;
|
||||||
|
}
|
||||||
|
#upload_form {
|
||||||
|
float:left;
|
||||||
|
padding:20px;
|
||||||
|
width:700px;
|
||||||
|
}
|
||||||
|
#preview {
|
||||||
|
background-color:#fff;
|
||||||
|
display:block;
|
||||||
|
float:right;
|
||||||
|
width:200px;
|
||||||
|
}
|
||||||
|
#upload_form > div {
|
||||||
|
margin-bottom:10px;
|
||||||
|
}
|
||||||
|
#speed,#remaining {
|
||||||
|
float:left;
|
||||||
|
width:100px;
|
||||||
|
}
|
||||||
|
#b_transfered {
|
||||||
|
float:right;
|
||||||
|
text-align:right;
|
||||||
|
}
|
||||||
|
.clear_both {
|
||||||
|
clear:both;
|
||||||
|
}
|
||||||
|
input {
|
||||||
|
border-radius:10px;
|
||||||
|
-moz-border-radius:10px;
|
||||||
|
-ms-border-radius:10px;
|
||||||
|
-o-border-radius:10px;
|
||||||
|
-webkit-border-radius:10px;
|
||||||
|
|
||||||
|
border:1px solid #ccc;
|
||||||
|
font-size:14pt;
|
||||||
|
padding:5px 10px;
|
||||||
|
}
|
||||||
|
input[type=button] {
|
||||||
|
background: -moz-linear-gradient(#ffffff, #dfdfdf);
|
||||||
|
background: -ms-linear-gradient(#ffffff, #dfdfdf);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #dfdfdf));
|
||||||
|
background: -webkit-linear-gradient(#ffffff, #dfdfdf);
|
||||||
|
background: -o-linear-gradient(#ffffff, #dfdfdf);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dfdfdf');
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dfdfdf')";
|
||||||
|
background: linear-gradient(#ffffff, #dfdfdf);
|
||||||
|
}
|
||||||
|
#image_file {
|
||||||
|
width:335px;
|
||||||
|
}
|
||||||
|
#progress_info {
|
||||||
|
font-size:10pt;
|
||||||
|
}
|
||||||
|
#fileinfo,#error,#error2,#abort,#warnsize {
|
||||||
|
color:#aaa;
|
||||||
|
display:none;
|
||||||
|
font-size:10pt;
|
||||||
|
font-style:italic;
|
||||||
|
margin-top:10px;
|
||||||
|
}
|
||||||
|
#progress {
|
||||||
|
border:1px solid #ccc;
|
||||||
|
display:none;
|
||||||
|
float:left;
|
||||||
|
height:14px;
|
||||||
|
|
||||||
|
border-radius:10px;
|
||||||
|
-moz-border-radius:10px;
|
||||||
|
-ms-border-radius:10px;
|
||||||
|
-o-border-radius:10px;
|
||||||
|
-webkit-border-radius:10px;
|
||||||
|
|
||||||
|
background: -moz-linear-gradient(#66cc00, #4b9500);
|
||||||
|
background: -ms-linear-gradient(#66cc00, #4b9500);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #66cc00), color-stop(100%, #4b9500));
|
||||||
|
background: -webkit-linear-gradient(#66cc00, #4b9500);
|
||||||
|
background: -o-linear-gradient(#66cc00, #4b9500);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#66cc00', endColorstr='#4b9500');
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#66cc00', endColorstr='#4b9500')";
|
||||||
|
background: linear-gradient(#66cc00, #4b9500);
|
||||||
|
}
|
||||||
|
#progress_percent {
|
||||||
|
float:right;
|
||||||
|
}
|
||||||
|
#upload_response {
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 20px;
|
||||||
|
overflow: hidden;
|
||||||
|
display: none;
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
|
||||||
|
border-radius:10px;
|
||||||
|
-moz-border-radius:10px;
|
||||||
|
-ms-border-radius:10px;
|
||||||
|
-o-border-radius:10px;
|
||||||
|
-webkit-border-radius:10px;
|
||||||
|
|
||||||
|
box-shadow: 0 0 5px #ccc;
|
||||||
|
background: -moz-linear-gradient(#bbb, #eee);
|
||||||
|
background: -ms-linear-gradient(#bbb, #eee);
|
||||||
|
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #bbb), color-stop(100%, #eee));
|
||||||
|
background: -webkit-linear-gradient(#bbb, #eee);
|
||||||
|
background: -o-linear-gradient(#bbb, #eee);
|
||||||
|
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#bbb', endColorstr='#eee');
|
||||||
|
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#bbb', endColorstr='#eee')";
|
||||||
|
background: linear-gradient(#bbb, #eee);
|
||||||
|
}
|
58
3rdparty/gestionnaire_upload/index.html
vendored
Executable file
@ -0,0 +1,58 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en" >
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>Pure HTML5 file upload | Script Tutorials</title>
|
||||||
|
<link href="css/main.css" rel="stylesheet" type="text/css" />
|
||||||
|
<script src="js/script.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<h2>Pure HTML5 file upload</h2>
|
||||||
|
<a href="http://www.script-tutorials.com/pure-html5-file-upload/" class="stuts">Back to original tutorial on <span>Script Tutorials</span></a>
|
||||||
|
</header>
|
||||||
|
<div class="container">
|
||||||
|
<div class="contr"><h2>You can select the file (image) and click Upload button</h2></div>
|
||||||
|
|
||||||
|
<div class="upload_form_cont">
|
||||||
|
<form id="upload_form" enctype="multipart/form-data" method="post" action="upload.php.txt">
|
||||||
|
<div>
|
||||||
|
<div><label for="image_file">Please select image file</label></div>
|
||||||
|
<div><input type="file" name="image_file" id="image_file" onchange="fileSelected();" /></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<input type="button" value="Upload" onclick="startUploading()" />
|
||||||
|
</div>
|
||||||
|
<div id="fileinfo">
|
||||||
|
<div id="filename"></div>
|
||||||
|
<div id="filesize"></div>
|
||||||
|
<div id="filetype"></div>
|
||||||
|
<div id="filedim"></div>
|
||||||
|
</div>
|
||||||
|
<div id="error">You should select valid image files only!</div>
|
||||||
|
<div id="error2">An error occurred while uploading the file</div>
|
||||||
|
<div id="abort">The upload has been canceled by the user or the browser dropped the connection</div>
|
||||||
|
<div id="warnsize">Your file is very big. We can't accept it. Please select more small file</div>
|
||||||
|
|
||||||
|
<div id="progress_info">
|
||||||
|
<div id="progress"></div>
|
||||||
|
<div id="progress_percent"> </div>
|
||||||
|
<div class="clear_both"></div>
|
||||||
|
<div>
|
||||||
|
<div id="speed"> </div>
|
||||||
|
<div id="remaining"> </div>
|
||||||
|
<div id="b_transfered"> </div>
|
||||||
|
<div class="clear_both"></div>
|
||||||
|
</div>
|
||||||
|
<div id="upload_response"></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<b>Veuillez noter que l'usage de ce fichier n'aura aucun effet sur le site. Il a été mis en ligne par respect pour le créateur de ce service.</b>
|
||||||
|
<b>Plus d'information sur <a href="http://www.script-tutorials.com/pure-html5-file-upload/" target="_blank"> http://www.script-tutorials.com/pure-html5-file-upload/ </a>
|
||||||
|
|
||||||
|
<img id="preview" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
175
3rdparty/gestionnaire_upload/js/script.js
vendored
Executable file
@ -0,0 +1,175 @@
|
|||||||
|
// common variables
|
||||||
|
var iBytesUploaded = 0;
|
||||||
|
var iBytesTotal = 0;
|
||||||
|
var iPreviousBytesLoaded = 0;
|
||||||
|
var iMaxFilesize = 1048576; // 1MB
|
||||||
|
var oTimer = 0;
|
||||||
|
var sResultFileSize = '';
|
||||||
|
|
||||||
|
function secondsToTime(secs) { // we will use this function to convert seconds in normal time format
|
||||||
|
var hr = Math.floor(secs / 3600);
|
||||||
|
var min = Math.floor((secs - (hr * 3600))/60);
|
||||||
|
var sec = Math.floor(secs - (hr * 3600) - (min * 60));
|
||||||
|
|
||||||
|
if (hr < 10) {hr = "0" + hr; }
|
||||||
|
if (min < 10) {min = "0" + min;}
|
||||||
|
if (sec < 10) {sec = "0" + sec;}
|
||||||
|
if (hr) {hr = "00";}
|
||||||
|
return hr + ':' + min + ':' + sec;
|
||||||
|
};
|
||||||
|
|
||||||
|
function bytesToSize(bytes) {
|
||||||
|
var sizes = ['Bytes', 'KB', 'MB'];
|
||||||
|
if (bytes == 0) return 'n/a';
|
||||||
|
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
|
||||||
|
return (bytes / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i];
|
||||||
|
};
|
||||||
|
|
||||||
|
function fileSelected() {
|
||||||
|
|
||||||
|
// hide different warnings
|
||||||
|
document.getElementById('upload_response').style.display = 'none';
|
||||||
|
document.getElementById('error').style.display = 'none';
|
||||||
|
document.getElementById('error2').style.display = 'none';
|
||||||
|
document.getElementById('abort').style.display = 'none';
|
||||||
|
document.getElementById('warnsize').style.display = 'none';
|
||||||
|
|
||||||
|
// get selected file element
|
||||||
|
var oFile = document.getElementById('image_file').files[0];
|
||||||
|
|
||||||
|
// filter for image files
|
||||||
|
var rFilter = /^(image\/bmp|image\/gif|image\/jpeg|image\/png|image\/tiff)$/i;
|
||||||
|
if (! rFilter.test(oFile.type)) {
|
||||||
|
document.getElementById('error').style.display = 'block';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// little test for filesize
|
||||||
|
if (oFile.size > iMaxFilesize) {
|
||||||
|
document.getElementById('warnsize').style.display = 'block';
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get preview element
|
||||||
|
var oImage = document.getElementById('preview');
|
||||||
|
|
||||||
|
// prepare HTML5 FileReader
|
||||||
|
var oReader = new FileReader();
|
||||||
|
oReader.onload = function(e){
|
||||||
|
|
||||||
|
// e.target.result contains the DataURL which we will use as a source of the image
|
||||||
|
oImage.src = e.target.result;
|
||||||
|
|
||||||
|
oImage.onload = function () { // binding onload event
|
||||||
|
|
||||||
|
// we are going to display some custom image information here
|
||||||
|
sResultFileSize = bytesToSize(oFile.size);
|
||||||
|
document.getElementById('fileinfo').style.display = 'block';
|
||||||
|
document.getElementById('filename').innerHTML = 'Name: ' + oFile.name;
|
||||||
|
document.getElementById('filesize').innerHTML = 'Size: ' + sResultFileSize;
|
||||||
|
document.getElementById('filetype').innerHTML = 'Type: ' + oFile.type;
|
||||||
|
document.getElementById('filedim').innerHTML = 'Dimension: ' + oImage.naturalWidth + ' x ' + oImage.naturalHeight;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// read selected file as DataURL
|
||||||
|
oReader.readAsDataURL(oFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
function startUploading(URL_destination_fichier) {
|
||||||
|
// cleanup all temp states
|
||||||
|
iPreviousBytesLoaded = 0;
|
||||||
|
document.getElementById('upload_response').style.display = 'none';
|
||||||
|
document.getElementById('error').style.display = 'none';
|
||||||
|
document.getElementById('error2').style.display = 'none';
|
||||||
|
document.getElementById('abort').style.display = 'none';
|
||||||
|
document.getElementById('warnsize').style.display = 'none';
|
||||||
|
document.getElementById('progress_percent').innerHTML = '';
|
||||||
|
var oProgress = document.getElementById('progress');
|
||||||
|
oProgress.style.display = 'block';
|
||||||
|
oProgress.style.width = '0px';
|
||||||
|
|
||||||
|
// get form data for POSTing
|
||||||
|
//var vFD = document.getElementById('upload_form').getFormData(); // for FF3
|
||||||
|
var vFD = new FormData(document.getElementById('upload_form'));
|
||||||
|
|
||||||
|
// create XMLHttpRequest object, adding few event listeners, and POSTing our data
|
||||||
|
var oXHR = new XMLHttpRequest();
|
||||||
|
oXHR.upload.addEventListener('progress', uploadProgress, false);
|
||||||
|
oXHR.addEventListener('load', uploadFinish, false);
|
||||||
|
oXHR.addEventListener('error', uploadError, false);
|
||||||
|
oXHR.addEventListener('abort', uploadAbort, false);
|
||||||
|
oXHR.open('POST', URL_destination_fichier);
|
||||||
|
oXHR.send(vFD);
|
||||||
|
|
||||||
|
// set inner timer
|
||||||
|
oTimer = setInterval(doInnerUpdates, 300);
|
||||||
|
}
|
||||||
|
|
||||||
|
function doInnerUpdates() { // we will use this function to display upload speed
|
||||||
|
var iCB = iBytesUploaded;
|
||||||
|
var iDiff = iCB - iPreviousBytesLoaded;
|
||||||
|
|
||||||
|
// if nothing new loaded - exit
|
||||||
|
if (iDiff == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
iPreviousBytesLoaded = iCB;
|
||||||
|
iDiff = iDiff * 2;
|
||||||
|
var iBytesRem = iBytesTotal - iPreviousBytesLoaded;
|
||||||
|
var secondsRemaining = iBytesRem / iDiff;
|
||||||
|
|
||||||
|
// update speed info
|
||||||
|
var iSpeed = iDiff.toString() + 'B/s';
|
||||||
|
if (iDiff > 1024 * 1024) {
|
||||||
|
iSpeed = (Math.round(iDiff * 100/(1024*1024))/100).toString() + 'MB/s';
|
||||||
|
} else if (iDiff > 1024) {
|
||||||
|
iSpeed = (Math.round(iDiff * 100/1024)/100).toString() + 'KB/s';
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('speed').innerHTML = iSpeed;
|
||||||
|
document.getElementById('remaining').innerHTML = '| ' + secondsToTime(secondsRemaining);
|
||||||
|
}
|
||||||
|
|
||||||
|
function uploadProgress(e) { // upload process in progress
|
||||||
|
if (e.lengthComputable) {
|
||||||
|
iBytesUploaded = e.loaded;
|
||||||
|
iBytesTotal = e.total;
|
||||||
|
var iPercentComplete = Math.round(e.loaded * 100 / e.total);
|
||||||
|
var iBytesTransfered = bytesToSize(iBytesUploaded);
|
||||||
|
|
||||||
|
document.getElementById('progress_percent').innerHTML = iPercentComplete.toString() + '%';
|
||||||
|
document.getElementById('progress').style.width = (iPercentComplete * 4).toString() + 'px';
|
||||||
|
document.getElementById('b_transfered').innerHTML = iBytesTransfered;
|
||||||
|
if (iPercentComplete == 100) {
|
||||||
|
var oUploadResponse = document.getElementById('upload_response');
|
||||||
|
oUploadResponse.innerHTML = '<h1>Please wait...processing</h1>';
|
||||||
|
oUploadResponse.style.display = 'block';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
document.getElementById('progress').innerHTML = 'unable to compute';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function uploadFinish(e) { // upload successfully finished
|
||||||
|
var oUploadResponse = document.getElementById('upload_response');
|
||||||
|
oUploadResponse.innerHTML = e.target.responseText;
|
||||||
|
oUploadResponse.style.display = 'block';
|
||||||
|
|
||||||
|
document.getElementById('progress_percent').innerHTML = '100%';
|
||||||
|
document.getElementById('progress').style.width = '400px';
|
||||||
|
document.getElementById('filesize').innerHTML = sResultFileSize;
|
||||||
|
document.getElementById('remaining').innerHTML = '| 00:00:00';
|
||||||
|
|
||||||
|
clearInterval(oTimer);
|
||||||
|
}
|
||||||
|
|
||||||
|
function uploadError(e) { // upload error
|
||||||
|
document.getElementById('error2').style.display = 'block';
|
||||||
|
clearInterval(oTimer);
|
||||||
|
}
|
||||||
|
|
||||||
|
function uploadAbort(e) { // upload abort
|
||||||
|
document.getElementById('abort').style.display = 'block';
|
||||||
|
clearInterval(oTimer);
|
||||||
|
}
|
16
3rdparty/gestionnaire_upload/upload.php.txt
vendored
Executable file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
function bytesToSize1024($bytes, $precision = 2) {
|
||||||
|
$unit = array('B','KB','MB');
|
||||||
|
return @round($bytes / pow(1024, ($i = floor(log($bytes, 1024)))), $precision).' '.$unit[$i];
|
||||||
|
}
|
||||||
|
|
||||||
|
$sFileName = $_FILES['image_file']['name'];
|
||||||
|
$sFileType = $_FILES['image_file']['type'];
|
||||||
|
$sFileSize = bytesToSize1024($_FILES['image_file']['size'], 1);
|
||||||
|
|
||||||
|
echo <<<EOF
|
||||||
|
<p>Your file: {$sFileName} has been successfully received.</p>
|
||||||
|
<p>Type: {$sFileType}</p>
|
||||||
|
<p>Size: {$sFileSize}</p>
|
||||||
|
EOF;
|
1
3rdparty/luminous/.htaccess
vendored
Executable file
@ -0,0 +1 @@
|
|||||||
|
Options -Indexes
|
21
3rdparty/luminous/.travis.yml
vendored
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
# see http://about.travis-ci.org/docs/user/languages/php/ for more hints
|
||||||
|
language: php
|
||||||
|
|
||||||
|
# list any PHP version you want to test against
|
||||||
|
php:
|
||||||
|
# using major version aliases
|
||||||
|
|
||||||
|
# aliased to 5.2.17
|
||||||
|
- 5.2
|
||||||
|
- 5.3
|
||||||
|
- 5.4
|
||||||
|
|
||||||
|
|
||||||
|
# execute any number of scripts before the test run, custom env's are available as variables
|
||||||
|
before_script:
|
||||||
|
chmod 777 cache;
|
||||||
|
chmod +x ./tests/runtests.py;
|
||||||
|
|
||||||
|
# omitting "script:" will default to phpunit
|
||||||
|
script: tests/runtests.py --unit --regression --print-fail-log --quiet
|
||||||
|
|
291
3rdparty/luminous/CHANGES.markdown
vendored
Executable file
@ -0,0 +1,291 @@
|
|||||||
|
Luminous Changelog since 0.6.0
|
||||||
|
==============================
|
||||||
|
|
||||||
|
##v0.7.0 (12/01/13):
|
||||||
|
|
||||||
|
- Important stuff (maybe):
|
||||||
|
- License change: GPL to LGPL.
|
||||||
|
- Luminous is a composer package.
|
||||||
|
|
||||||
|
- New stuff:
|
||||||
|
- SCSS scanner.
|
||||||
|
|
||||||
|
- Changes to markup/CSS:
|
||||||
|
- luminous.css is now compiled from luminous.scss (SCSS)
|
||||||
|
- Markup has been modernised and cleaned a bit
|
||||||
|
- CSS selectors favoured over superfluous classes, e.g. nth-child instead of
|
||||||
|
an alternating class, ".code > span" instead of a line class.
|
||||||
|
- Bundled fonts (dejavu) have been removed - we now reference Consolas,
|
||||||
|
Deja Vu and fall back to plain old 'monospace'.
|
||||||
|
- Luminous elements have theme specific borders by default
|
||||||
|
|
||||||
|
- Misc backwardly incompatible changes:
|
||||||
|
- The 'include-jquery' setting defaults to 'false' - most people now
|
||||||
|
have jQuery on their sites anyway and including a second version of it
|
||||||
|
isn't a great idea.
|
||||||
|
- Height unconstrained elements are now the default in the HTML formatter
|
||||||
|
- Removed support for word-wrapping, nobody used this and it would mangle
|
||||||
|
source code to be syntactically invalid anyway. HTML is not generous to
|
||||||
|
this problem.
|
||||||
|
|
||||||
|
- Misc:
|
||||||
|
- Support one-time option setting via third parameter of
|
||||||
|
luminous::highlight()
|
||||||
|
- HTML output with JavaScript fixes line numbers to the left of the
|
||||||
|
widget regardless of how it's horizontally scrolled.
|
||||||
|
- HTML output with JavaScript allows toggling the line numbers
|
||||||
|
(hover over the line numbers to show the control)
|
||||||
|
- Preliminary JavaScript API for manipulating Luminous elements (not
|
||||||
|
documented or properly tested yet...)
|
||||||
|
- Filesystem cache now uses subdirectories; the cache items are
|
||||||
|
organised into directories using the first two digits of the
|
||||||
|
cache ID (a hex string). This makes things neater by reducing the
|
||||||
|
number of items in a single directory, and may improve performance
|
||||||
|
slightly on some filesystems.
|
||||||
|
- examples/index.php example browser
|
||||||
|
- Security improvements to testing files, should you have them on your
|
||||||
|
server.
|
||||||
|
- Fix broken tests on PHP5.4.
|
||||||
|
|
||||||
|
- Misc language fixes:
|
||||||
|
- C#: added missing 'void' keyword, added a lot of types
|
||||||
|
|
||||||
|
##v0.6.7-2 (10/6/12):
|
||||||
|
- Fixed another problem with unnecessary scrollbars
|
||||||
|
|
||||||
|
##v0.6.7-1 (19/05/12):
|
||||||
|
- Fixed a regression which introduced scrollbars on inline code
|
||||||
|
|
||||||
|
##v0.6.7 (24/04/12):
|
||||||
|
|
||||||
|
Likely to be the final release in 0.6 series. Further releases will be on the
|
||||||
|
0.7 tree.
|
||||||
|
|
||||||
|
- New stuff:
|
||||||
|
- Ability to set custom line number for first line in output,
|
||||||
|
thanks [Martin Sikora](https://github.com/martinsik)
|
||||||
|
- Line highlighting (click with JS) uses CSS transitions
|
||||||
|
|
||||||
|
- Fixes:
|
||||||
|
- Small improvements to JavaDoc-like comment highlighting
|
||||||
|
- CSS scanner won't break on @media { ... } rules
|
||||||
|
- CSS scanner won't break on @keyframe { ... } rules
|
||||||
|
- CSS scanner will highlight round brackets in selectors (like :nth-child(n+1))
|
||||||
|
- HTML output now a tiny bit compressed
|
||||||
|
- HTML output with unconstrained height will scroll horizontally instead of
|
||||||
|
spilling overflow.
|
||||||
|
|
||||||
|
|
||||||
|
##v0.6.6 (26/02/12):
|
||||||
|
|
||||||
|
Maintenance release
|
||||||
|
|
||||||
|
- Fixed:
|
||||||
|
- Parse errors on PHP 5.2.0 (due to using unescaped '$' in doubly quoted strings)
|
||||||
|
|
||||||
|
- Improved:
|
||||||
|
- Cache error behaviour is less ugly. Errors can more easily be detected
|
||||||
|
programmatically, and suppressed (or handled silently). See the cache's docs
|
||||||
|
on how to do this.
|
||||||
|
- Made testing/developing on Windows slightly more possible. Don't expect miracles.
|
||||||
|
|
||||||
|
|
||||||
|
##v0.6.5 (15/10/11):
|
||||||
|
|
||||||
|
- New stuff:
|
||||||
|
- kimono.css theme (based on the more famous Monokai theme)
|
||||||
|
- versioncheck.php (in root) - Version checking script. Run from either a
|
||||||
|
browser or the command line to query the website's API as to the most
|
||||||
|
recent version and output whether you're running it.
|
||||||
|
- style and client both have .htaccesses to ensure that they are in fact
|
||||||
|
readable; this might be useful if for some reason you've put Luminous in
|
||||||
|
a directory which a .htaccess forbids access to (e.g. somewhere in a
|
||||||
|
framework).
|
||||||
|
|
||||||
|
- Misc stuff:
|
||||||
|
- Some really minor optimisations. Absolutely tiny. You won't notice them.
|
||||||
|
- Updated jQuery to 1.6.4
|
||||||
|
- The external CSS output by `luminous::head_html() ` now have IDs set,
|
||||||
|
the theme is IDed as 'luminous-theme'. This makes changing the theme via
|
||||||
|
JS a lot neater (see theme switcher example). Why didn't we think of this
|
||||||
|
earlier?
|
||||||
|
- SQL cache is a tiny bit faster as it does not try to purge old elements
|
||||||
|
excessively anymore (max: once per 24 hours).
|
||||||
|
- GitHub theme is a little bit cleaner with interpolated elements (including
|
||||||
|
PHP short output tags)
|
||||||
|
- Diff scanner: the scanner has been split into two. The old behaviour (where
|
||||||
|
embedded source code was highlighted) has been renamed to diff-pretty, and
|
||||||
|
'diff' now represents a plain scanner which does not highlight embedded
|
||||||
|
code. If you want the old behaviour, use diff-pretty (valid code:
|
||||||
|
diffpretty. See the languages page for more aliases.). This is because
|
||||||
|
the pretty diff scanner is much slower and can encounter problems, so users
|
||||||
|
may prefer a more reliable and faster but plain option.
|
||||||
|
- Some of the JS examples have been fixed.
|
||||||
|
|
||||||
|
- Language fixes:
|
||||||
|
- Support for Java annotations
|
||||||
|
- Django scanner recognises {% comment %} ... {% endcomment %} blocks
|
||||||
|
- Ruby scanner has been altered with respect to how it detects regular
|
||||||
|
expression literals. It is now similar to Kate/Kwrite's syntax
|
||||||
|
highlighting and should be slightly better at figuring out what's a
|
||||||
|
regex and what's a division operator. If it causes problems please
|
||||||
|
report it, preferably with an explanation of how Ruby's grammar works in
|
||||||
|
that particular case.
|
||||||
|
- Ruby on Rails will now terminate comments at the end of the Rails block as
|
||||||
|
well as newlines
|
||||||
|
- Bash scanner will not go into heredoc mode inside ((...)) blocks; this
|
||||||
|
prevents false positives on shift operations
|
||||||
|
- Bash scanner should get fewer false positives when picking out comments
|
||||||
|
- Perl scanner recognises heredoc openings when the delimiter is preceded by
|
||||||
|
a backslash
|
||||||
|
- PHP scanner is a little more careful about detecting user-definitions of
|
||||||
|
functions and classes, i.e. it correctly highlights class names after
|
||||||
|
implements and extends, and won't get confused by PHP5.3+ closures.
|
||||||
|
- PHP Snippet mode will detect `<?php` correctly, should it be encountered.
|
||||||
|
|
||||||
|
|
||||||
|
##v0.6.4 (18/09/11):
|
||||||
|
|
||||||
|
- New stuff:
|
||||||
|
- Django scanner
|
||||||
|
- 'geoynx' theme now has a per-line highlight style
|
||||||
|
|
||||||
|
- Fixes:
|
||||||
|
- Fix Luminous not fully respecting rounded corners (border-radius) on the
|
||||||
|
outer-most div element.
|
||||||
|
- A few typos and grammatical problems corrected in documentation
|
||||||
|
|
||||||
|
- Language fixes:
|
||||||
|
- Added missing 'with' keyword for Python
|
||||||
|
- Added some missing functions to Python (int, str, float, list, etc)
|
||||||
|
- Fix theoretically possible bug where the HTML scanner cannot 'recover'
|
||||||
|
after it breaks from HTML-mode into server-side mode.
|
||||||
|
- Fix occasional overzealous assert() triggering in HTML scanner
|
||||||
|
- Fix occasional bug where ECMAScript's embedded XML literals would not break
|
||||||
|
allow embedded server-side languages
|
||||||
|
- Fix occasional bug where CSS and ECMAScript didn't always allow embedded
|
||||||
|
server-side languages
|
||||||
|
|
||||||
|
- Important stuff for developers:
|
||||||
|
- The web language scanner's `server_tags` has been changed to a regular
|
||||||
|
expression. This is not backwardly compatible.
|
||||||
|
|
||||||
|
##v0.6.3-1 (06/08/11):
|
||||||
|
|
||||||
|
- Fixes:
|
||||||
|
- Fix stupid bug where the cache will purge items after 9 days of inactivity,
|
||||||
|
instead of 90 days. This is user-overridable by the 'cache-age' option, and
|
||||||
|
will only affect installations where it was left to the default setting.
|
||||||
|
|
||||||
|
##v0.6.3 (22/06/11):
|
||||||
|
|
||||||
|
- New Stuff:
|
||||||
|
- Ada language support
|
||||||
|
- Cache can be stored in a MySQL table. See (the docs)[http://luminous.asgaard.co.uk/index.php/docs/show/cache/]
|
||||||
|
|
||||||
|
- Fixes
|
||||||
|
- Disabled cache purging by default in the cache superclass, previously it
|
||||||
|
was set to an hour and may have been invoked accidentally if you
|
||||||
|
insantiated a cache object yourself for some reason.
|
||||||
|
- Check before invoking the command line arg parser that Luminous is really
|
||||||
|
what's being executed, so that you can now include it from another
|
||||||
|
CLI program.
|
||||||
|
|
||||||
|
- Languages fixes:
|
||||||
|
- Fix recognition of Perl's shell command strings (backticks) when the
|
||||||
|
string involves escape characters
|
||||||
|
- Fix bug with Perl heredoc recognition not waiting until the next line to
|
||||||
|
invoke heredoc parsing mode
|
||||||
|
- Fix bug with Python not correctly recognising numeric formats with a
|
||||||
|
leading decimal point
|
||||||
|
- Fix Ruby's %w and %W operators such that their contents are recognised as
|
||||||
|
strings split by whitespace, not one continual string
|
||||||
|
- Highlight "${var}" string interpolation syntax in PHP scanner
|
||||||
|
|
||||||
|
|
||||||
|
##v0.6.2 (15/05/11):
|
||||||
|
|
||||||
|
- General:
|
||||||
|
- The User API's configuration settings has been changed internally, using
|
||||||
|
the luminous::set() method will throw exceptions if you try to do something
|
||||||
|
nonsensical.
|
||||||
|
- Each configuration option is now documented fully in Doxygen
|
||||||
|
(LumiousOptions class).
|
||||||
|
- High level user API's docs are bundled in HTML.
|
||||||
|
- PHP 5.2 syntax error fixed in LaTeX formatter (did not affect 5.3+)
|
||||||
|
|
||||||
|
- New Stuff:
|
||||||
|
- HTML full-page formatter, which produces a standalone HTML document. Use
|
||||||
|
'html-full' as the formatter.
|
||||||
|
- Command line interface. Run ``php luminous.php --help`` to see the usage
|
||||||
|
- Language guessing. Generally accurate for large sources of common
|
||||||
|
languages, with no guarantees in other situations. See
|
||||||
|
``luminous::guess_language`` and ``luminous::guess_lanuage_full``
|
||||||
|
in Doxygen for details.
|
||||||
|
|
||||||
|
- Language fixes:
|
||||||
|
- C/C++ had its #if 0... #endif nesting slightly wrong, it now works
|
||||||
|
properly
|
||||||
|
- Diff scanner should no longer get confused over formats (i.e. original,
|
||||||
|
context, or unified) if a line starts with a number.
|
||||||
|
- PHP now recognises backtick delimited 'strings'
|
||||||
|
- Ruby heredoc detection previously had a minor but annoying bug where
|
||||||
|
a heredoc declaration would kill all highlighting on the remainder of
|
||||||
|
that line. This now works correctly.
|
||||||
|
- SQL recognises a much more complete set of words, though non-MySQL dialects
|
||||||
|
are still under-represented
|
||||||
|
|
||||||
|
##v0.6.1 (29/04/11):
|
||||||
|
|
||||||
|
- General:
|
||||||
|
- Certain versions of PCRE trigger *a lot* of bugs in the regular
|
||||||
|
expressions, which seemed to backtrack a lot even on very simple
|
||||||
|
strings. Most (if not all) of these expressions have been rewritten
|
||||||
|
to avoid this.
|
||||||
|
- The above previously threw an exception: this is now true only if the
|
||||||
|
debug flag is set, otherwise the failure is handled.
|
||||||
|
- The User API should catch any exceptions Luminous throws in non-debug
|
||||||
|
code. If one is caught, Luminous returns the input string wrapped in a
|
||||||
|
pre tag.
|
||||||
|
- 'plain' is used as a default scanner in the User API (previously an
|
||||||
|
exception was thrown if a scanner was unknown)
|
||||||
|
- Fix bug where the User API's 'relative root' would collapse double slashes
|
||||||
|
in protocols (i.e. http:// => http:/)
|
||||||
|
- User API now throws Exception if the highlighting function is called with
|
||||||
|
non-string arguments
|
||||||
|
- Some .htaccesses are provided to prevent search engines/bots crawling the
|
||||||
|
Luminous directories (many of the files aren't supposed to be executed
|
||||||
|
individually and will therefore populate error logs should a bot
|
||||||
|
discover a directory)
|
||||||
|
- Minor tweaks to the geonyx theme
|
||||||
|
- Obsolete JavaScript has been removed and replaced with a much less
|
||||||
|
intrusive behaviour of double click the line numbers to hide them,
|
||||||
|
js inclusion is disabled by default by User API.
|
||||||
|
- Infinite loop bug in the abstract formatter/word wrap method fixed
|
||||||
|
(although this wasn't actually reachable by any of the formatters)
|
||||||
|
|
||||||
|
- Language fixes:
|
||||||
|
- Pod/cut style comments in Perl should now work all the time
|
||||||
|
- C/C++'s "#if 0 ... #endif" blocks (which are highlighted as comments)
|
||||||
|
now nest
|
||||||
|
- Python recognises a list of exceptions as types
|
||||||
|
|
||||||
|
- New Stuff:
|
||||||
|
- Go language support
|
||||||
|
|
||||||
|
- Internal/Development:
|
||||||
|
- Unit test of stateful scanner much more useful
|
||||||
|
- Formatter base class unit test (tests/unit/formatter.php)
|
||||||
|
- Syntax test for scanners (syntax.php)
|
||||||
|
- Stateful scanner throws an exception if the initial state is popped
|
||||||
|
(downgraded from an assertion)
|
||||||
|
- Stateful scanner safety check no longer requires that an iteration
|
||||||
|
advances the pointer as long as the state is changed
|
||||||
|
- Coding standards applied in all formatters
|
||||||
|
- All scanning classes have complete API documentation
|
||||||
|
- Paste test (interface.php) works properly with Unicode
|
||||||
|
|
||||||
|
## v0.6.0 (16/04/11):
|
||||||
|
- 0.6.0 is a near-total rewrite with a lot of changes. The hosting has
|
||||||
|
moved from Google Code to GitHub and most code is freshly written.
|
||||||
|
- Changelog is restarted
|
1551
3rdparty/luminous/Doxyfile
vendored
Executable file
502
3rdparty/luminous/LICENSE
vendored
Executable file
@ -0,0 +1,502 @@
|
|||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
Version 2.1, February 1999
|
||||||
|
|
||||||
|
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||||
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
[This is the first released version of the Lesser GPL. It also counts
|
||||||
|
as the successor of the GNU Library Public License, version 2, hence
|
||||||
|
the version number 2.1.]
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The licenses for most software are designed to take away your
|
||||||
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
|
Licenses are intended to guarantee your freedom to share and change
|
||||||
|
free software--to make sure the software is free for all its users.
|
||||||
|
|
||||||
|
This license, the Lesser General Public License, applies to some
|
||||||
|
specially designated software packages--typically libraries--of the
|
||||||
|
Free Software Foundation and other authors who decide to use it. You
|
||||||
|
can use it too, but we suggest you first think carefully about whether
|
||||||
|
this license or the ordinary General Public License is the better
|
||||||
|
strategy to use in any particular case, based on the explanations below.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom of use,
|
||||||
|
not price. Our General Public Licenses are designed to make sure that
|
||||||
|
you have the freedom to distribute copies of free software (and charge
|
||||||
|
for this service if you wish); that you receive source code or can get
|
||||||
|
it if you want it; that you can change the software and use pieces of
|
||||||
|
it in new free programs; and that you are informed that you can do
|
||||||
|
these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to make restrictions that forbid
|
||||||
|
distributors to deny you these rights or to ask you to surrender these
|
||||||
|
rights. These restrictions translate to certain responsibilities for
|
||||||
|
you if you distribute copies of the library or if you modify it.
|
||||||
|
|
||||||
|
For example, if you distribute copies of the library, whether gratis
|
||||||
|
or for a fee, you must give the recipients all the rights that we gave
|
||||||
|
you. You must make sure that they, too, receive or can get the source
|
||||||
|
code. If you link other code with the library, you must provide
|
||||||
|
complete object files to the recipients, so that they can relink them
|
||||||
|
with the library after making changes to the library and recompiling
|
||||||
|
it. And you must show them these terms so they know their rights.
|
||||||
|
|
||||||
|
We protect your rights with a two-step method: (1) we copyright the
|
||||||
|
library, and (2) we offer you this license, which gives you legal
|
||||||
|
permission to copy, distribute and/or modify the library.
|
||||||
|
|
||||||
|
To protect each distributor, we want to make it very clear that
|
||||||
|
there is no warranty for the free library. Also, if the library is
|
||||||
|
modified by someone else and passed on, the recipients should know
|
||||||
|
that what they have is not the original version, so that the original
|
||||||
|
author's reputation will not be affected by problems that might be
|
||||||
|
introduced by others.
|
||||||
|
|
||||||
|
Finally, software patents pose a constant threat to the existence of
|
||||||
|
any free program. We wish to make sure that a company cannot
|
||||||
|
effectively restrict the users of a free program by obtaining a
|
||||||
|
restrictive license from a patent holder. Therefore, we insist that
|
||||||
|
any patent license obtained for a version of the library must be
|
||||||
|
consistent with the full freedom of use specified in this license.
|
||||||
|
|
||||||
|
Most GNU software, including some libraries, is covered by the
|
||||||
|
ordinary GNU General Public License. This license, the GNU Lesser
|
||||||
|
General Public License, applies to certain designated libraries, and
|
||||||
|
is quite different from the ordinary General Public License. We use
|
||||||
|
this license for certain libraries in order to permit linking those
|
||||||
|
libraries into non-free programs.
|
||||||
|
|
||||||
|
When a program is linked with a library, whether statically or using
|
||||||
|
a shared library, the combination of the two is legally speaking a
|
||||||
|
combined work, a derivative of the original library. The ordinary
|
||||||
|
General Public License therefore permits such linking only if the
|
||||||
|
entire combination fits its criteria of freedom. The Lesser General
|
||||||
|
Public License permits more lax criteria for linking other code with
|
||||||
|
the library.
|
||||||
|
|
||||||
|
We call this license the "Lesser" General Public License because it
|
||||||
|
does Less to protect the user's freedom than the ordinary General
|
||||||
|
Public License. It also provides other free software developers Less
|
||||||
|
of an advantage over competing non-free programs. These disadvantages
|
||||||
|
are the reason we use the ordinary General Public License for many
|
||||||
|
libraries. However, the Lesser license provides advantages in certain
|
||||||
|
special circumstances.
|
||||||
|
|
||||||
|
For example, on rare occasions, there may be a special need to
|
||||||
|
encourage the widest possible use of a certain library, so that it becomes
|
||||||
|
a de-facto standard. To achieve this, non-free programs must be
|
||||||
|
allowed to use the library. A more frequent case is that a free
|
||||||
|
library does the same job as widely used non-free libraries. In this
|
||||||
|
case, there is little to gain by limiting the free library to free
|
||||||
|
software only, so we use the Lesser General Public License.
|
||||||
|
|
||||||
|
In other cases, permission to use a particular library in non-free
|
||||||
|
programs enables a greater number of people to use a large body of
|
||||||
|
free software. For example, permission to use the GNU C Library in
|
||||||
|
non-free programs enables many more people to use the whole GNU
|
||||||
|
operating system, as well as its variant, the GNU/Linux operating
|
||||||
|
system.
|
||||||
|
|
||||||
|
Although the Lesser General Public License is Less protective of the
|
||||||
|
users' freedom, it does ensure that the user of a program that is
|
||||||
|
linked with the Library has the freedom and the wherewithal to run
|
||||||
|
that program using a modified version of the Library.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow. Pay close attention to the difference between a
|
||||||
|
"work based on the library" and a "work that uses the library". The
|
||||||
|
former contains code derived from the library, whereas the latter must
|
||||||
|
be combined with the library in order to run.
|
||||||
|
|
||||||
|
GNU LESSER GENERAL PUBLIC LICENSE
|
||||||
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
|
0. This License Agreement applies to any software library or other
|
||||||
|
program which contains a notice placed by the copyright holder or
|
||||||
|
other authorized party saying it may be distributed under the terms of
|
||||||
|
this Lesser General Public License (also called "this License").
|
||||||
|
Each licensee is addressed as "you".
|
||||||
|
|
||||||
|
A "library" means a collection of software functions and/or data
|
||||||
|
prepared so as to be conveniently linked with application programs
|
||||||
|
(which use some of those functions and data) to form executables.
|
||||||
|
|
||||||
|
The "Library", below, refers to any such software library or work
|
||||||
|
which has been distributed under these terms. A "work based on the
|
||||||
|
Library" means either the Library or any derivative work under
|
||||||
|
copyright law: that is to say, a work containing the Library or a
|
||||||
|
portion of it, either verbatim or with modifications and/or translated
|
||||||
|
straightforwardly into another language. (Hereinafter, translation is
|
||||||
|
included without limitation in the term "modification".)
|
||||||
|
|
||||||
|
"Source code" for a work means the preferred form of the work for
|
||||||
|
making modifications to it. For a library, complete source code means
|
||||||
|
all the source code for all modules it contains, plus any associated
|
||||||
|
interface definition files, plus the scripts used to control compilation
|
||||||
|
and installation of the library.
|
||||||
|
|
||||||
|
Activities other than copying, distribution and modification are not
|
||||||
|
covered by this License; they are outside its scope. The act of
|
||||||
|
running a program using the Library is not restricted, and output from
|
||||||
|
such a program is covered only if its contents constitute a work based
|
||||||
|
on the Library (independent of the use of the Library in a tool for
|
||||||
|
writing it). Whether that is true depends on what the Library does
|
||||||
|
and what the program that uses the Library does.
|
||||||
|
|
||||||
|
1. You may copy and distribute verbatim copies of the Library's
|
||||||
|
complete source code as you receive it, in any medium, provided that
|
||||||
|
you conspicuously and appropriately publish on each copy an
|
||||||
|
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||||
|
all the notices that refer to this License and to the absence of any
|
||||||
|
warranty; and distribute a copy of this License along with the
|
||||||
|
Library.
|
||||||
|
|
||||||
|
You may charge a fee for the physical act of transferring a copy,
|
||||||
|
and you may at your option offer warranty protection in exchange for a
|
||||||
|
fee.
|
||||||
|
|
||||||
|
2. You may modify your copy or copies of the Library or any portion
|
||||||
|
of it, thus forming a work based on the Library, and copy and
|
||||||
|
distribute such modifications or work under the terms of Section 1
|
||||||
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The modified work must itself be a software library.
|
||||||
|
|
||||||
|
b) You must cause the files modified to carry prominent notices
|
||||||
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
|
c) You must cause the whole of the work to be licensed at no
|
||||||
|
charge to all third parties under the terms of this License.
|
||||||
|
|
||||||
|
d) If a facility in the modified Library refers to a function or a
|
||||||
|
table of data to be supplied by an application program that uses
|
||||||
|
the facility, other than as an argument passed when the facility
|
||||||
|
is invoked, then you must make a good faith effort to ensure that,
|
||||||
|
in the event an application does not supply such function or
|
||||||
|
table, the facility still operates, and performs whatever part of
|
||||||
|
its purpose remains meaningful.
|
||||||
|
|
||||||
|
(For example, a function in a library to compute square roots has
|
||||||
|
a purpose that is entirely well-defined independent of the
|
||||||
|
application. Therefore, Subsection 2d requires that any
|
||||||
|
application-supplied function or table used by this function must
|
||||||
|
be optional: if the application does not supply it, the square
|
||||||
|
root function must still compute square roots.)
|
||||||
|
|
||||||
|
These requirements apply to the modified work as a whole. If
|
||||||
|
identifiable sections of that work are not derived from the Library,
|
||||||
|
and can be reasonably considered independent and separate works in
|
||||||
|
themselves, then this License, and its terms, do not apply to those
|
||||||
|
sections when you distribute them as separate works. But when you
|
||||||
|
distribute the same sections as part of a whole which is a work based
|
||||||
|
on the Library, the distribution of the whole must be on the terms of
|
||||||
|
this License, whose permissions for other licensees extend to the
|
||||||
|
entire whole, and thus to each and every part regardless of who wrote
|
||||||
|
it.
|
||||||
|
|
||||||
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
|
exercise the right to control the distribution of derivative or
|
||||||
|
collective works based on the Library.
|
||||||
|
|
||||||
|
In addition, mere aggregation of another work not based on the Library
|
||||||
|
with the Library (or with a work based on the Library) on a volume of
|
||||||
|
a storage or distribution medium does not bring the other work under
|
||||||
|
the scope of this License.
|
||||||
|
|
||||||
|
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||||
|
License instead of this License to a given copy of the Library. To do
|
||||||
|
this, you must alter all the notices that refer to this License, so
|
||||||
|
that they refer to the ordinary GNU General Public License, version 2,
|
||||||
|
instead of to this License. (If a newer version than version 2 of the
|
||||||
|
ordinary GNU General Public License has appeared, then you can specify
|
||||||
|
that version instead if you wish.) Do not make any other change in
|
||||||
|
these notices.
|
||||||
|
|
||||||
|
Once this change is made in a given copy, it is irreversible for
|
||||||
|
that copy, so the ordinary GNU General Public License applies to all
|
||||||
|
subsequent copies and derivative works made from that copy.
|
||||||
|
|
||||||
|
This option is useful when you wish to copy part of the code of
|
||||||
|
the Library into a program that is not a library.
|
||||||
|
|
||||||
|
4. You may copy and distribute the Library (or a portion or
|
||||||
|
derivative of it, under Section 2) in object code or executable form
|
||||||
|
under the terms of Sections 1 and 2 above provided that you accompany
|
||||||
|
it with the complete corresponding machine-readable source code, which
|
||||||
|
must be distributed under the terms of Sections 1 and 2 above on a
|
||||||
|
medium customarily used for software interchange.
|
||||||
|
|
||||||
|
If distribution of object code is made by offering access to copy
|
||||||
|
from a designated place, then offering equivalent access to copy the
|
||||||
|
source code from the same place satisfies the requirement to
|
||||||
|
distribute the source code, even though third parties are not
|
||||||
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
|
5. A program that contains no derivative of any portion of the
|
||||||
|
Library, but is designed to work with the Library by being compiled or
|
||||||
|
linked with it, is called a "work that uses the Library". Such a
|
||||||
|
work, in isolation, is not a derivative work of the Library, and
|
||||||
|
therefore falls outside the scope of this License.
|
||||||
|
|
||||||
|
However, linking a "work that uses the Library" with the Library
|
||||||
|
creates an executable that is a derivative of the Library (because it
|
||||||
|
contains portions of the Library), rather than a "work that uses the
|
||||||
|
library". The executable is therefore covered by this License.
|
||||||
|
Section 6 states terms for distribution of such executables.
|
||||||
|
|
||||||
|
When a "work that uses the Library" uses material from a header file
|
||||||
|
that is part of the Library, the object code for the work may be a
|
||||||
|
derivative work of the Library even though the source code is not.
|
||||||
|
Whether this is true is especially significant if the work can be
|
||||||
|
linked without the Library, or if the work is itself a library. The
|
||||||
|
threshold for this to be true is not precisely defined by law.
|
||||||
|
|
||||||
|
If such an object file uses only numerical parameters, data
|
||||||
|
structure layouts and accessors, and small macros and small inline
|
||||||
|
functions (ten lines or less in length), then the use of the object
|
||||||
|
file is unrestricted, regardless of whether it is legally a derivative
|
||||||
|
work. (Executables containing this object code plus portions of the
|
||||||
|
Library will still fall under Section 6.)
|
||||||
|
|
||||||
|
Otherwise, if the work is a derivative of the Library, you may
|
||||||
|
distribute the object code for the work under the terms of Section 6.
|
||||||
|
Any executables containing that work also fall under Section 6,
|
||||||
|
whether or not they are linked directly with the Library itself.
|
||||||
|
|
||||||
|
6. As an exception to the Sections above, you may also combine or
|
||||||
|
link a "work that uses the Library" with the Library to produce a
|
||||||
|
work containing portions of the Library, and distribute that work
|
||||||
|
under terms of your choice, provided that the terms permit
|
||||||
|
modification of the work for the customer's own use and reverse
|
||||||
|
engineering for debugging such modifications.
|
||||||
|
|
||||||
|
You must give prominent notice with each copy of the work that the
|
||||||
|
Library is used in it and that the Library and its use are covered by
|
||||||
|
this License. You must supply a copy of this License. If the work
|
||||||
|
during execution displays copyright notices, you must include the
|
||||||
|
copyright notice for the Library among them, as well as a reference
|
||||||
|
directing the user to the copy of this License. Also, you must do one
|
||||||
|
of these things:
|
||||||
|
|
||||||
|
a) Accompany the work with the complete corresponding
|
||||||
|
machine-readable source code for the Library including whatever
|
||||||
|
changes were used in the work (which must be distributed under
|
||||||
|
Sections 1 and 2 above); and, if the work is an executable linked
|
||||||
|
with the Library, with the complete machine-readable "work that
|
||||||
|
uses the Library", as object code and/or source code, so that the
|
||||||
|
user can modify the Library and then relink to produce a modified
|
||||||
|
executable containing the modified Library. (It is understood
|
||||||
|
that the user who changes the contents of definitions files in the
|
||||||
|
Library will not necessarily be able to recompile the application
|
||||||
|
to use the modified definitions.)
|
||||||
|
|
||||||
|
b) Use a suitable shared library mechanism for linking with the
|
||||||
|
Library. A suitable mechanism is one that (1) uses at run time a
|
||||||
|
copy of the library already present on the user's computer system,
|
||||||
|
rather than copying library functions into the executable, and (2)
|
||||||
|
will operate properly with a modified version of the library, if
|
||||||
|
the user installs one, as long as the modified version is
|
||||||
|
interface-compatible with the version that the work was made with.
|
||||||
|
|
||||||
|
c) Accompany the work with a written offer, valid for at
|
||||||
|
least three years, to give the same user the materials
|
||||||
|
specified in Subsection 6a, above, for a charge no more
|
||||||
|
than the cost of performing this distribution.
|
||||||
|
|
||||||
|
d) If distribution of the work is made by offering access to copy
|
||||||
|
from a designated place, offer equivalent access to copy the above
|
||||||
|
specified materials from the same place.
|
||||||
|
|
||||||
|
e) Verify that the user has already received a copy of these
|
||||||
|
materials or that you have already sent this user a copy.
|
||||||
|
|
||||||
|
For an executable, the required form of the "work that uses the
|
||||||
|
Library" must include any data and utility programs needed for
|
||||||
|
reproducing the executable from it. However, as a special exception,
|
||||||
|
the materials to be distributed need not include anything that is
|
||||||
|
normally distributed (in either source or binary form) with the major
|
||||||
|
components (compiler, kernel, and so on) of the operating system on
|
||||||
|
which the executable runs, unless that component itself accompanies
|
||||||
|
the executable.
|
||||||
|
|
||||||
|
It may happen that this requirement contradicts the license
|
||||||
|
restrictions of other proprietary libraries that do not normally
|
||||||
|
accompany the operating system. Such a contradiction means you cannot
|
||||||
|
use both them and the Library together in an executable that you
|
||||||
|
distribute.
|
||||||
|
|
||||||
|
7. You may place library facilities that are a work based on the
|
||||||
|
Library side-by-side in a single library together with other library
|
||||||
|
facilities not covered by this License, and distribute such a combined
|
||||||
|
library, provided that the separate distribution of the work based on
|
||||||
|
the Library and of the other library facilities is otherwise
|
||||||
|
permitted, and provided that you do these two things:
|
||||||
|
|
||||||
|
a) Accompany the combined library with a copy of the same work
|
||||||
|
based on the Library, uncombined with any other library
|
||||||
|
facilities. This must be distributed under the terms of the
|
||||||
|
Sections above.
|
||||||
|
|
||||||
|
b) Give prominent notice with the combined library of the fact
|
||||||
|
that part of it is a work based on the Library, and explaining
|
||||||
|
where to find the accompanying uncombined form of the same work.
|
||||||
|
|
||||||
|
8. You may not copy, modify, sublicense, link with, or distribute
|
||||||
|
the Library except as expressly provided under this License. Any
|
||||||
|
attempt otherwise to copy, modify, sublicense, link with, or
|
||||||
|
distribute the Library is void, and will automatically terminate your
|
||||||
|
rights under this License. However, parties who have received copies,
|
||||||
|
or rights, from you under this License will not have their licenses
|
||||||
|
terminated so long as such parties remain in full compliance.
|
||||||
|
|
||||||
|
9. You are not required to accept this License, since you have not
|
||||||
|
signed it. However, nothing else grants you permission to modify or
|
||||||
|
distribute the Library or its derivative works. These actions are
|
||||||
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
|
modifying or distributing the Library (or any work based on the
|
||||||
|
Library), you indicate your acceptance of this License to do so, and
|
||||||
|
all its terms and conditions for copying, distributing or modifying
|
||||||
|
the Library or works based on it.
|
||||||
|
|
||||||
|
10. Each time you redistribute the Library (or any work based on the
|
||||||
|
Library), the recipient automatically receives a license from the
|
||||||
|
original licensor to copy, distribute, link with or modify the Library
|
||||||
|
subject to these terms and conditions. You may not impose any further
|
||||||
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
|
You are not responsible for enforcing compliance by third parties with
|
||||||
|
this License.
|
||||||
|
|
||||||
|
11. If, as a consequence of a court judgment or allegation of patent
|
||||||
|
infringement or for any other reason (not limited to patent issues),
|
||||||
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot
|
||||||
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you
|
||||||
|
may not distribute the Library at all. For example, if a patent
|
||||||
|
license would not permit royalty-free redistribution of the Library by
|
||||||
|
all those who receive copies directly or indirectly through you, then
|
||||||
|
the only way you could satisfy both it and this License would be to
|
||||||
|
refrain entirely from distribution of the Library.
|
||||||
|
|
||||||
|
If any portion of this section is held invalid or unenforceable under any
|
||||||
|
particular circumstance, the balance of the section is intended to apply,
|
||||||
|
and the section as a whole is intended to apply in other circumstances.
|
||||||
|
|
||||||
|
It is not the purpose of this section to induce you to infringe any
|
||||||
|
patents or other property right claims or to contest validity of any
|
||||||
|
such claims; this section has the sole purpose of protecting the
|
||||||
|
integrity of the free software distribution system which is
|
||||||
|
implemented by public license practices. Many people have made
|
||||||
|
generous contributions to the wide range of software distributed
|
||||||
|
through that system in reliance on consistent application of that
|
||||||
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
|
to distribute software through any other system and a licensee cannot
|
||||||
|
impose that choice.
|
||||||
|
|
||||||
|
This section is intended to make thoroughly clear what is believed to
|
||||||
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
|
12. If the distribution and/or use of the Library is restricted in
|
||||||
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
|
original copyright holder who places the Library under this License may add
|
||||||
|
an explicit geographical distribution limitation excluding those countries,
|
||||||
|
so that distribution is permitted only in or among countries not thus
|
||||||
|
excluded. In such case, this License incorporates the limitation as if
|
||||||
|
written in the body of this License.
|
||||||
|
|
||||||
|
13. The Free Software Foundation may publish revised and/or new
|
||||||
|
versions of the Lesser General Public License from time to time.
|
||||||
|
Such new versions will be similar in spirit to the present version,
|
||||||
|
but may differ in detail to address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the Library
|
||||||
|
specifies a version number of this License which applies to it and
|
||||||
|
"any later version", you have the option of following the terms and
|
||||||
|
conditions either of that version or of any later version published by
|
||||||
|
the Free Software Foundation. If the Library does not specify a
|
||||||
|
license version number, you may choose any version ever published by
|
||||||
|
the Free Software Foundation.
|
||||||
|
|
||||||
|
14. If you wish to incorporate parts of the Library into other free
|
||||||
|
programs whose distribution conditions are incompatible with these,
|
||||||
|
write to the author to ask for permission. For software which is
|
||||||
|
copyrighted by the Free Software Foundation, write to the Free
|
||||||
|
Software Foundation; we sometimes make exceptions for this. Our
|
||||||
|
decision will be guided by the two goals of preserving the free status
|
||||||
|
of all derivatives of our free software and of promoting the sharing
|
||||||
|
and reuse of software generally.
|
||||||
|
|
||||||
|
NO WARRANTY
|
||||||
|
|
||||||
|
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||||
|
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||||
|
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||||
|
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||||
|
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||||
|
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||||
|
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
||||||
|
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
||||||
|
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||||
|
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||||
|
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||||
|
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||||
|
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||||
|
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||||
|
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||||
|
DAMAGES.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Libraries
|
||||||
|
|
||||||
|
If you develop a new library, and you want it to be of the greatest
|
||||||
|
possible use to the public, we recommend making it free software that
|
||||||
|
everyone can redistribute and change. You can do so by permitting
|
||||||
|
redistribution under these terms (or, alternatively, under the terms of the
|
||||||
|
ordinary General Public License).
|
||||||
|
|
||||||
|
To apply these terms, attach the following notices to the library. It is
|
||||||
|
safest to attach them to the start of each source file to most effectively
|
||||||
|
convey the exclusion of warranty; and each file should have at least the
|
||||||
|
"copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the library's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This library 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. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with this library; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or your
|
||||||
|
school, if any, to sign a "copyright disclaimer" for the library, if
|
||||||
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
||||||
|
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
||||||
|
|
||||||
|
<signature of Ty Coon>, 1 April 1990
|
||||||
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
|
That's all there is to it!
|
86
3rdparty/luminous/README.markdown
vendored
Executable file
@ -0,0 +1,86 @@
|
|||||||
|
Luminous - a Syntax Highlighter for PHP - v0.7.0
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
[![Build Status](https://secure.travis-ci.org/markwatkinson/luminous.png)](http://travis-ci.org/markwatkinson/luminous)
|
||||||
|
|
||||||
|
Luminous is an accurate and style-able syntax highlighter for PHP which
|
||||||
|
supports a bunch of common languages and output to HTML and LaTeX.
|
||||||
|
|
||||||
|
If you simply want to use Luminous as a library, __please don't clone this
|
||||||
|
repository__. Or if you do, make sure you delete luminous/tests afterwards.
|
||||||
|
Do not expose luminous/tests on a public machine. It is recommended to get a
|
||||||
|
packaged version from the links below.
|
||||||
|
|
||||||
|
##Links:
|
||||||
|
|
||||||
|
+ [Luminous PHP syntax highlighter official site](http://luminous.asgaard.co.uk/) - news, latest stable versions, etc
|
||||||
|
+ [Online demo](http://luminous.asgaard.co.uk/index.php/demo)
|
||||||
|
+ [Documentation and help](http://luminous.asgaard.co.uk/index.php/docs/show/index),
|
||||||
|
read this if you get stuck!
|
||||||
|
+ [Supported language list](http://luminous.asgaard.co.uk/assets/luminous/supported.php)
|
||||||
|
+ [Luminous on GitHub](https://github.com/markwatkinson/luminous) - please
|
||||||
|
report problems to the issue tracker here
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
Extract your tarball, zip, whatever, into some directory where it's going to be
|
||||||
|
used (i.e. probably your web-server). We'll assume it's called `luminous/'
|
||||||
|
|
||||||
|
Quick Usage
|
||||||
|
===========
|
||||||
|
|
||||||
|
First, if you're going to use caching, which you probably are, create a
|
||||||
|
directory called luminous/cache and give it writable permissions (chmod 777 on
|
||||||
|
most servers -- yours may accept a less permissive value). Then include
|
||||||
|
luminous/luminous.php and away you go!
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
require_once 'luminous/luminous.php';
|
||||||
|
echo luminous::head_html(); // outputs CSS includes, intended to go in <head>
|
||||||
|
echo luminous::highlight('c', 'printf("hello world\n");');
|
||||||
|
```
|
||||||
|
|
||||||
|
Useful examples can be found in luminous/examples/. If you have problems,
|
||||||
|
check that luminous/examples/example.php works.
|
||||||
|
|
||||||
|
|
||||||
|
Command Line Usage
|
||||||
|
==================
|
||||||
|
|
||||||
|
If you're crazy and want to use Luminous/PHP on the command line, guess what,
|
||||||
|
you can!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ cd luminous/
|
||||||
|
$ php luminous.php --help
|
||||||
|
```
|
||||||
|
Polite Warning
|
||||||
|
================
|
||||||
|
|
||||||
|
Luminous is fairly slow. But it caches! So it's not slow. Or is it?
|
||||||
|
|
||||||
|
It depends on your use-case, is the simple answer. Most people should make sure
|
||||||
|
the cache works (create luminous/cache with appropriate permissions), and after
|
||||||
|
that, Luminous will almost certainly have negligable impact on their
|
||||||
|
performance.
|
||||||
|
|
||||||
|
Optimizations are welcome, but not at the expense of maintainability.
|
||||||
|
|
||||||
|
## Caching
|
||||||
|
The cache can be stored either directly on the file system or in a MySQL table
|
||||||
|
(support for other DBMSs will come later, patches welcome). In either case,
|
||||||
|
check out the [cache documentation](http://luminous.asgaard.co.uk/index.php/docs/show/cache).
|
||||||
|
|
||||||
|
Licensing
|
||||||
|
=========
|
||||||
|
|
||||||
|
Luminous is distributed under the LGPL but includes a bunch of stuff which is
|
||||||
|
separate.
|
||||||
|
|
||||||
|
- Everything under src/ and languages/ is part of Luminous.
|
||||||
|
- Everything under tests/regression/*/* is real source code taken from various
|
||||||
|
projects, which is used only as test data. It is all GPL-compatible, but
|
||||||
|
is distributed under its own license. This directory is only present in
|
||||||
|
the git repository and is not part of any stable distribution archives.
|
||||||
|
- We also include jQuery which is provided under its own license.
|
27
3rdparty/luminous/api-docs.html
vendored
Executable file
1
3rdparty/luminous/client/.htaccess
vendored
Executable file
@ -0,0 +1 @@
|
|||||||
|
allow from all
|
4
3rdparty/luminous/client/jquery-1.6.4.min.js
vendored
Executable file
281
3rdparty/luminous/client/luminous.js
vendored
Executable file
@ -0,0 +1,281 @@
|
|||||||
|
/**
|
||||||
|
* This simply adds some extras to Luminous elements via a jQUery
|
||||||
|
* plugin. The extras are currently a toggleable line-highlighting
|
||||||
|
* on click
|
||||||
|
*/
|
||||||
|
|
||||||
|
(function($) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
var LINE_SELECTOR = 'td .code > span ';
|
||||||
|
|
||||||
|
if (typeof $ === 'undefined') { return; }
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
* UTILITY FUNCTIONS *
|
||||||
|
****************************************************************/
|
||||||
|
|
||||||
|
// determines if the given element is a line element of luminous
|
||||||
|
function isLine($line) {
|
||||||
|
return $line.is(LINE_SELECTOR) && $line.parents('.luminous').length > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isLineNumber($element) {
|
||||||
|
return $element.is('.luminous .line-numbers span');
|
||||||
|
}
|
||||||
|
|
||||||
|
function highlightLine($line) {
|
||||||
|
$line.toggleClass('highlight');
|
||||||
|
}
|
||||||
|
|
||||||
|
function highlightLineByIndex($luminous, index) {
|
||||||
|
var $line = $luminous.find(LINE_SELECTOR).eq(index);
|
||||||
|
highlightLine($line);
|
||||||
|
}
|
||||||
|
|
||||||
|
function highlightLineByNumber($luminous, number) {
|
||||||
|
// the line's index must take into account the initial line number
|
||||||
|
var offset = parseInt($luminous.find('.code').data('startline'), 10);
|
||||||
|
if (isNaN(offset)) offset = 0;
|
||||||
|
highlightLineByIndex($luminous, number - offset);
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleHighlightAndPlain($luminous, forceState) {
|
||||||
|
var data = $luminous.data('luminous'),
|
||||||
|
state = data.code.active,
|
||||||
|
$elem = $luminous.find('.code'),
|
||||||
|
toSetCode, toSetState;
|
||||||
|
|
||||||
|
if (forceState === 'plain') state = 'highlighted';
|
||||||
|
else if (forceState === 'highlighted') state = 'plain';
|
||||||
|
|
||||||
|
toSetCode = (state === 'plain')? data.code.highlighted : data.code.plain;
|
||||||
|
toSetState = (state === 'plain')? 'highlighted' : 'plain';
|
||||||
|
|
||||||
|
$elem.html(toSetCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function toggleLineNumbers($luminous, forceState) {
|
||||||
|
var data = $luminous.data('luminous'),
|
||||||
|
show = (typeof forceState !== 'undefined')? forceState :
|
||||||
|
!data.lineNumbers.visible;
|
||||||
|
|
||||||
|
data.lineNumbers.visible = show;
|
||||||
|
|
||||||
|
|
||||||
|
var $numberContainer = $luminous.find('.line-numbers'),
|
||||||
|
$control = $luminous.find('.line-number-control');
|
||||||
|
|
||||||
|
if (!show) {
|
||||||
|
$numberContainer.addClass('collapsed');
|
||||||
|
$control.addClass('show-line-numbers');
|
||||||
|
$luminous.addClass('collapsed-line-numbers');
|
||||||
|
} else {
|
||||||
|
$numberContainer.removeClass('collapsed');
|
||||||
|
$control.removeClass('show-line-numbers');
|
||||||
|
}
|
||||||
|
$luminous.data('luminous', data);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// binds the event handlers to a luminous element
|
||||||
|
function bindLuminousExtras($element) {
|
||||||
|
var highlightLinesData, highlightLines, data = {},
|
||||||
|
hasLineNumbers = $element.find('td .line-numbers').length > 0,
|
||||||
|
schedule = [];
|
||||||
|
|
||||||
|
if (!$element.is('.luminous')) { return false; }
|
||||||
|
else if ($element.is('.bound')) { return true; }
|
||||||
|
|
||||||
|
$element.addClass('bound');
|
||||||
|
|
||||||
|
// highlight lines on click
|
||||||
|
$element.find('td .code').click(function(ev) {
|
||||||
|
var $t = $(ev.target);
|
||||||
|
var $lines = $t.parents().add($t).
|
||||||
|
filter(function() { return isLine($(this)); }),
|
||||||
|
$line
|
||||||
|
;
|
||||||
|
|
||||||
|
if ($lines.length > 0) {
|
||||||
|
$line = $lines.eq(0);
|
||||||
|
highlightLine($line);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// highlight lines on clicking the line number
|
||||||
|
$element.find('td .line-numbers').click(function(ev) {
|
||||||
|
var $t = $(ev.target),
|
||||||
|
index;
|
||||||
|
if ($t.is('span')) {
|
||||||
|
index = $t.prevAll().length;
|
||||||
|
highlightLineByIndex($element, index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
data.lineNumbers = {visible: false};
|
||||||
|
|
||||||
|
if (hasLineNumbers) {
|
||||||
|
/**
|
||||||
|
* Line numbering is semi complicated because we can make it better
|
||||||
|
* with javascript!
|
||||||
|
* TODO: probably refactor this into a sub-function
|
||||||
|
*/
|
||||||
|
|
||||||
|
// the control is a show/hide line numbers, we can fade it
|
||||||
|
// in/out when the user hovers over the line numbers.
|
||||||
|
// We can also fix the line numbers so they move left
|
||||||
|
// as the widget is hoz-scrolled.
|
||||||
|
var $control, controlHeight, controlWidth, gutterWidth,
|
||||||
|
controlIsVisible = false,
|
||||||
|
$lineNumbers = $element.find('pre.line-numbers'),
|
||||||
|
defaultLineNumberWidth = $lineNumbers.outerWidth(),
|
||||||
|
mouseY = 0,
|
||||||
|
controlCalculateLeftCss = function() {
|
||||||
|
var visible = $element.data('luminous').lineNumbers.visible,
|
||||||
|
base = visible? gutterWidth - controlWidth : 0,
|
||||||
|
total = 0;
|
||||||
|
total = $element.scrollLeft() + base;
|
||||||
|
return total + 'px';
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
data.lineNumbers.visible = true;
|
||||||
|
data.lineNumbers.setControlPosition = function() {
|
||||||
|
$control.css('top', Math.max(0, mouseY - (controlHeight/2)) + 'px');
|
||||||
|
}
|
||||||
|
|
||||||
|
$control = $('<a class="line-number-control"></a>');
|
||||||
|
$control.click(function() {
|
||||||
|
$element.luminous('showLineNumbers');
|
||||||
|
$control.css('left', controlCalculateLeftCss());
|
||||||
|
if (!$element.data('luminous').lineNumbers.visible) {
|
||||||
|
$element.find('pre.code').css('padding-left', '');
|
||||||
|
} else {
|
||||||
|
$element.find('pre.code').css('padding-left', defaultLineNumberWidth + 'px');
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$control.appendTo($element);
|
||||||
|
$control.show();
|
||||||
|
controlWidth = $control.outerWidth();
|
||||||
|
controlHeight = $control.outerHeight();
|
||||||
|
gutterWidth = $element.find('.line-numbers').outerWidth();
|
||||||
|
$control.css('left', gutterWidth - controlWidth + 'px');
|
||||||
|
$control.hide();
|
||||||
|
$element.mousemove(function(ev) {
|
||||||
|
var scrollLeft = $element.scrollLeft();
|
||||||
|
mouseY = ev.pageY - $(this).offset().top;
|
||||||
|
if (ev.pageX < gutterWidth) {
|
||||||
|
if (!controlIsVisible) {
|
||||||
|
data.lineNumbers.setControlPosition();
|
||||||
|
$control.stop(true, true).fadeIn('fast');
|
||||||
|
controlIsVisible = true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (controlIsVisible) {
|
||||||
|
$control.stop(true, true).fadeOut('fast');
|
||||||
|
controlIsVisible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
data.lineNumbers.setControlPosition();
|
||||||
|
$element.find('pre.code').css('padding-left', $lineNumbers.outerWidth() + 'px');
|
||||||
|
$lineNumbers.css({
|
||||||
|
position: 'absolute',
|
||||||
|
top: 0,
|
||||||
|
left: 0
|
||||||
|
});
|
||||||
|
$element.scroll(function() {
|
||||||
|
data.lineNumbers.setControlPosition();
|
||||||
|
$control.css('left', controlCalculateLeftCss());
|
||||||
|
$lineNumbers.css('left', $element.scrollLeft() + 'px');
|
||||||
|
});
|
||||||
|
schedule.push(function() { $element.luminous('showLineNumbers', true); });
|
||||||
|
$element.find('.line-numbers').parent().css({width: 0, maxWidth: 0});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// highlight all the initial lines
|
||||||
|
highlightLinesData = $element.find('.code').data('highlightlines') || "";
|
||||||
|
highlightLines = highlightLinesData.split(",");
|
||||||
|
$.each(highlightLines, function(i, element) {
|
||||||
|
var lineNo = parseInt(element, 10);
|
||||||
|
if (!isNaN(lineNo)) {
|
||||||
|
highlightLineByNumber($element, lineNo);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
data.code = {};
|
||||||
|
data.code.highlighted = $element.find('.code').html();
|
||||||
|
|
||||||
|
data.code.plain = '';
|
||||||
|
$element.find(LINE_SELECTOR).each(function(i, e) {
|
||||||
|
var line = $(e).text();
|
||||||
|
line = line
|
||||||
|
.replace(/&/g, '&')
|
||||||
|
.replace(/>/g, '>')
|
||||||
|
.replace(/</g, '<');
|
||||||
|
|
||||||
|
data.code.plain += '<span>' + line + '</span>';
|
||||||
|
});
|
||||||
|
data.code.active = 'highlighted';
|
||||||
|
|
||||||
|
$element.data('luminous', data);
|
||||||
|
|
||||||
|
$.each(schedule, function(i, f) {
|
||||||
|
f();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************************
|
||||||
|
* JQUERY PLUGIN *
|
||||||
|
***************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
$.fn.luminous = function(optionsOrCommand /* variadic */) {
|
||||||
|
|
||||||
|
var args = Array.prototype.slice.call(arguments);
|
||||||
|
|
||||||
|
return $(this).each(function() {
|
||||||
|
var $luminous = $(this);
|
||||||
|
|
||||||
|
// no instructions - bind everything
|
||||||
|
if (!optionsOrCommand) {
|
||||||
|
bindLuminousExtras($luminous);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// $('.luminous').luminous('highlightLine', [2, 3]);
|
||||||
|
if (optionsOrCommand === 'highlightLine') {
|
||||||
|
var lineNumbers = args[1];
|
||||||
|
if (!$.isArray(lineNumbers))
|
||||||
|
lineNumbers = [lineNumbers];
|
||||||
|
|
||||||
|
$.each(lineNumbers, function(index, el) {
|
||||||
|
highlightLineByNumber($luminous, el);
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (optionsOrCommand === 'show') {
|
||||||
|
// args[1] should be 'highlighted' or 'plain'
|
||||||
|
toggleHighlightAndPlain($luminous, args[1]);
|
||||||
|
}
|
||||||
|
else if (optionsOrCommand === 'showLineNumbers') {
|
||||||
|
toggleLineNumbers($luminous, args[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
$(document).ready(function() {
|
||||||
|
$('.luminous').luminous();
|
||||||
|
});
|
||||||
|
|
||||||
|
}(jQuery));
|
32
3rdparty/luminous/composer.json
vendored
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"name": "luminous/luminous",
|
||||||
|
"description": "A full featured syntax highlighting library.",
|
||||||
|
"keywords": [
|
||||||
|
"syntax",
|
||||||
|
"highlighting",
|
||||||
|
"highlighter"
|
||||||
|
],
|
||||||
|
"homepage": "http://luminous.asgaard.co.uk",
|
||||||
|
"license": "LGPL-2.1",
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "Mark Watkinson",
|
||||||
|
"email": "markwatkinson@gmail.com",
|
||||||
|
"homepage": "http://blog.asgaard.co.uk",
|
||||||
|
"role": "Developer"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"support": {
|
||||||
|
"issues": "https://github.com/markwatkinson/luminous/issues",
|
||||||
|
"source": "https://github.com/markwatkinson/luminous/"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"psr-0": { "luminous": "" }
|
||||||
|
},
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://github.com/markwatkinson/luminous"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
110
3rdparty/luminous/docs/html/annotated.html
vendored
Executable file
@ -0,0 +1,110 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<title>Luminous: Class List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Luminous
|
||||||
|
 <span id="projectnumber">git-master</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.1.2 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li class="current"><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div><!-- top -->
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">Class List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
|
||||||
|
<table class="directory">
|
||||||
|
<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classluminous.html" target="_self">luminous</a></td><td class="desc">Users' API</td></tr>
|
||||||
|
<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousEmbeddedWebScript.html" target="_self">LuminousEmbeddedWebScript</a></td><td class="desc">Superclass for languages which may nest, i.e. web languages</td></tr>
|
||||||
|
<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousFilters.html" target="_self">LuminousFilters</a></td><td class="desc">A collection of useful common filters</td></tr>
|
||||||
|
<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousOptions.html" target="_self">LuminousOptions</a></td><td class="desc">Options class</td></tr>
|
||||||
|
<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousScanner.html" target="_self">LuminousScanner</a></td><td class="desc">Base class for all scanners</td></tr>
|
||||||
|
<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousSimpleScanner.html" target="_self">LuminousSimpleScanner</a></td><td class="desc">A largely automated scanner</td></tr>
|
||||||
|
<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousStatefulScanner.html" target="_self">LuminousStatefulScanner</a></td><td class="desc">Experimental transition table driven scanner</td></tr>
|
||||||
|
<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousStringSearch.html" target="_self">LuminousStringSearch</a></td><td class="desc">A basic preg_match wrapper which caches its results</td></tr>
|
||||||
|
<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousTokenPresets.html" target="_self">LuminousTokenPresets</a></td><td class="desc">A set of pre-defined patterns to match various common tokens</td></tr>
|
||||||
|
<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classLuminousUtils.html" target="_self">LuminousUtils</a></td><td class="desc">A set of utility functions for scanners</td></tr>
|
||||||
|
<tr id="row_10_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="classScanner.html" target="_self">Scanner</a></td><td class="desc">Base string scanning class</td></tr>
|
||||||
|
</table>
|
||||||
|
</div><!-- directory -->
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Sat Jan 12 2013 16:03:51 for Luminous by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.1.2
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
BIN
3rdparty/luminous/docs/html/bc_s.png
vendored
Executable file
After Width: | Height: | Size: 680 B |
BIN
3rdparty/luminous/docs/html/bdwn.png
vendored
Executable file
After Width: | Height: | Size: 147 B |
170
3rdparty/luminous/docs/html/classLuminousEmbeddedWebScript-members.html
vendored
Executable file
@ -0,0 +1,170 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<title>Luminous: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Luminous
|
||||||
|
 <span id="projectnumber">git-master</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.1.2 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">LuminousEmbeddedWebScript Member List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#af3887911498a250b2cb1fe737dd87df1">$case_sensitive</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#aba37db3108b9a5ec0fda7f18a66fb317">$child_scanners</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a278925946650e3c9e2094283512697d1">$clean_exit</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#ace2c028e88c2c295c9f92214eff51f2b">$dirty_exit_recovery</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a9627fb0cc01060902259ee3c9212fad2">$embedded_html</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a5fdc96de06443379f9dd48de9b80040b">$embedded_server</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a463a354548b9e9bf913ca47faf03808a">$exit_state</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#aca257c4da52076f42c6e53d9d0d33dd1">$filters</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#adb13455bbeb076cd0f031f050ef31a82">$ident_map</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#aa33f76adc9164f8160785e8f70ff2420">$interrupt</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a30aaa5d3076a9f28d00f167a1c4eac34">$rule_tag_map</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a298f32256c797af02dbb7dbf3b2d2040">$script_tags</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a11065fbf564b463206673a07a0498457">$server_tags</a></td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#ab5a30262ceb4324fdfaac1a7d217ba36">$state_</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#ad3d9ad7f7f14bc9de3dd6b68225ce21c">$stream_filters</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#ab29032700812b580e5d09b6128202286">$tokens</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a615d93f42d9290b9fad4d84cc2fd84ec">$user_defs</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a22a1e366c9fbe4e837de693258c5c739">$version</a></td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a493a069a6ba279b279865111b8e8ffd4">__construct</a>($src=null)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a6d78a3253fb12358ce13ca7650c6629b">add_child_scanner</a>($name, $scanner)</td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a17a50bdadaa49f0638638d5c6da7090c">add_filter</a>($arg1, $arg2, $arg3=null)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a047ae1afbf5563184e3dc67ecfb90a8c">add_identifier_mapping</a>($name, $matches)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a4cb6935d759ee0c75fa01b75e2d0ec04">add_pattern</a>($name, $pattern)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a32eb459cd8ad20b8ea3403907d7f2e52">add_stream_filter</a>($arg1, $arg2=null)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a77abc2d2de424e73d1ee659fd9001e4a">bol</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#ae483fc35eae064c75f8b5ca105826757">check</a>($pattern)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a77deb48d41b8a791900a3d5c50813faf">dirty_exit</a>($token_name)</td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a8ad6032d3a1f955608905c10a864aee6">eol</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a23543739aee09e2e1961a556a9672c7d">eos</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a154d424c925ed0d58e033f1e71ceef03">get</a>($n=1)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#ac8beec743c18d54cec51273b3bb7f3b5">get_next</a>($patterns)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a21f59cd38d7ed3ccd43955386b6aa14e">get_next_named</a>($patterns)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a57774c7a298bb43c1c4406a830d386a6">get_next_strpos</a>($patterns)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a094a64c9eb09e38ab43c865e1a4482c9">guess_language</a>($src, $info)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a0a7907663241caffb546ef22bb35d870">highlight</a>($src)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a90bacd70c30eb1d76659c0586f0683d2">index</a>($pattern)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#af0aecba631e56a3005157cfbe84d6b67">init</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756">main</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a6efd3dada50a424d7f30b7f9afac5fc0">map_identifier_filter</a>($token)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e">match</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#aa933ee80eb310785c75ab7b03ed01885">match_group</a>($g=0)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a9271f0acf8d19f83fa45ee3ee1d3eab5">match_groups</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#aa5520e0fc7df54d7a25d75037e6cdc8a">match_pos</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#ae974cbfb732f008a79482ffc4f11d398">nestable_token</a>($token_name, $open, $close)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a5e03667fd1cdc1d1fd40a4bc15570b12">next_match</a>($consume_and_log=true)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a3028e787442cf1ed9252397ed029b223">peek</a>($n=1)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a614e490335cf64375c52d57edfb398ad">pop</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a546cafdcfc3adeb19959ae14dff10996">pos</a>($new_pos=null)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a947d15fe4bd13b64afd5eaba8d4d3819">pos_shift</a>($offset)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#add1da033592e8f944660b9e29088a2ac">push</a>($state)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#aa61dbaafd8801e40094cbff52f7b22f1">record</a>($string, $type, $pre_escaped=false)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a48fabeb9791b36ace2b46dd8f91a4afa">record_range</a>($from, $to, $type)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a80c4b9fff3a38e90e04cda38eb075040">remove_filter</a>($name)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a79c559549e2dd73c3f1892e7609e84a6">remove_pattern</a>($name)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a25c4c1f42c64a07ce87c19f3992a0fba">remove_stream_filter</a>($name)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a89d1448f666d1be3d5037c69f24eb516">reset</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#aeae50ecaf6b98a0b76f47c3d04b8deb3">rest</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#aa5f8bbf0166d4d6531d33ad3319f85e5">resume</a>()</td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a4cc936af136b39a54db6c7212c04cee7">rule_mapper_filter</a>($tokens)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classScanner.html#a78ddb203c30c2f9e69755ec00c341add">scan</a>($pattern)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#aa0e261d4b0c2fce43ba3c264036afd72">scan_until</a>($pattern)</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a08ce3d66e8ff9217903f68c2a2aa6120">script_break</a>($token_name, $match=null, $pos=null)</td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a9725d508c1411b029b43feeab9491af4">server_break</a>($token_name, $match=null, $pos=null)</td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#ab06dcdea11ff9a78168547b4c84c650c">skip_whitespace</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousScanner.html#a4156922baa33783377f7904fd2d4cee5">start</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a23e2cf34969c3d39cd34a4b5ce6810ca">state</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html#a468d0f77b948817731d32f866b360586">string</a>($str=null)</td><td class="entry"><a class="el" href="classLuminousEmbeddedWebScript.html">LuminousEmbeddedWebScript</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a809c11561c650c7784edd3d06243b8b5">tagged</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a185d6e780752848cb282add6d9f936bb">terminate</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#ae381e3000c83ae4cb2259d0ae77a14ab">token_array</a>()</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classScanner.html#a6f6665b8df561788b1b2dea40bb394ae">unscan</a>()</td><td class="entry"><a class="el" href="classScanner.html">Scanner</a></td><td class="entry"></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousScanner.html#a463b3eb270a7afb960ee642bccc0d1b6">user_def_filter</a>($token)</td><td class="entry"><a class="el" href="classLuminousScanner.html">LuminousScanner</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Sat Jan 12 2013 16:03:50 for Luminous by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.1.2
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
592
3rdparty/luminous/docs/html/classLuminousEmbeddedWebScript.html
vendored
Executable file
@ -0,0 +1,592 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<title>Luminous: LuminousEmbeddedWebScript Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Luminous
|
||||||
|
 <span id="projectnumber">git-master</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.1.2 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-methods">Public Member Functions</a> |
|
||||||
|
<a href="#pub-attribs">Public Attributes</a> |
|
||||||
|
<a href="#pro-attribs">Protected Attributes</a> |
|
||||||
|
<a href="classLuminousEmbeddedWebScript-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">LuminousEmbeddedWebScript Class Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>Superclass for languages which may nest, i.e. web languages.
|
||||||
|
<a href="classLuminousEmbeddedWebScript.html#details">More...</a></p>
|
||||||
|
<div class="dynheader">
|
||||||
|
Inheritance diagram for LuminousEmbeddedWebScript:</div>
|
||||||
|
<div class="dyncontent">
|
||||||
|
<div class="center"><img src="classLuminousEmbeddedWebScript__inherit__graph.png" border="0" usemap="#LuminousEmbeddedWebScript_inherit__map" alt="Inheritance graph"/></div>
|
||||||
|
<map name="LuminousEmbeddedWebScript_inherit__map" id="LuminousEmbeddedWebScript_inherit__map">
|
||||||
|
</map>
|
||||||
|
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
|
||||||
|
<div class="dynheader">
|
||||||
|
Collaboration diagram for LuminousEmbeddedWebScript:</div>
|
||||||
|
<div class="dyncontent">
|
||||||
|
<div class="center"><img src="classLuminousEmbeddedWebScript__coll__graph.png" border="0" usemap="#LuminousEmbeddedWebScript_coll__map" alt="Collaboration graph"/></div>
|
||||||
|
<map name="LuminousEmbeddedWebScript_coll__map" id="LuminousEmbeddedWebScript_coll__map">
|
||||||
|
</map>
|
||||||
|
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
|
||||||
|
Public Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a6d78a3253fb12358ce13ca7650c6629b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d78a3253fb12358ce13ca7650c6629b"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a6d78a3253fb12358ce13ca7650c6629b">add_child_scanner</a> ($name, $scanner)</td></tr>
|
||||||
|
<tr class="memdesc:a6d78a3253fb12358ce13ca7650c6629b"><td class="mdescLeft"> </td><td class="mdescRight">adds a child scanner Adds a child scanner and indexes it against a name, convenience function <br/></td></tr>
|
||||||
|
<tr class="memitem:a77deb48d41b8a791900a3d5c50813faf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a77deb48d41b8a791900a3d5c50813faf">dirty_exit</a> ($token_name)</td></tr>
|
||||||
|
<tr class="memdesc:a77deb48d41b8a791900a3d5c50813faf"><td class="mdescLeft"> </td><td class="mdescRight">Sets the exit data to signify the exit is dirty and will need recovering from. <a href="#a77deb48d41b8a791900a3d5c50813faf"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:aa5f8bbf0166d4d6531d33ad3319f85e5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#aa5f8bbf0166d4d6531d33ad3319f85e5">resume</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:aa5f8bbf0166d4d6531d33ad3319f85e5"><td class="mdescLeft"> </td><td class="mdescRight">Attempts to recover from a dirty exit. <a href="#aa5f8bbf0166d4d6531d33ad3319f85e5"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a08ce3d66e8ff9217903f68c2a2aa6120"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a08ce3d66e8ff9217903f68c2a2aa6120">script_break</a> ($token_name, $<a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e">match</a>=null, $<a class="el" href="classScanner.html#a546cafdcfc3adeb19959ae14dff10996">pos</a>=null)</td></tr>
|
||||||
|
<tr class="memdesc:a08ce3d66e8ff9217903f68c2a2aa6120"><td class="mdescLeft"> </td><td class="mdescRight">Checks for a script terminator tag inside a matched token. <a href="#a08ce3d66e8ff9217903f68c2a2aa6120"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a9725d508c1411b029b43feeab9491af4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a9725d508c1411b029b43feeab9491af4">server_break</a> ($token_name, $<a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e">match</a>=null, $<a class="el" href="classScanner.html#a546cafdcfc3adeb19959ae14dff10996">pos</a>=null)</td></tr>
|
||||||
|
<tr class="memdesc:a9725d508c1411b029b43feeab9491af4"><td class="mdescLeft"> </td><td class="mdescRight">Checks for a server-side script inside a matched token. <a href="#a9725d508c1411b029b43feeab9491af4"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a468d0f77b948817731d32f866b360586"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a468d0f77b948817731d32f866b360586">string</a> ($str=null)</td></tr>
|
||||||
|
<tr class="memdesc:a468d0f77b948817731d32f866b360586"><td class="mdescLeft"> </td><td class="mdescRight">Getter and setter for the source string. <a href="#a468d0f77b948817731d32f866b360586"></a><br/></td></tr>
|
||||||
|
<tr class="inherit_header pub_methods_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classLuminousScanner')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
|
||||||
|
<tr class="memitem:a493a069a6ba279b279865111b8e8ffd4 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a493a069a6ba279b279865111b8e8ffd4"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a493a069a6ba279b279865111b8e8ffd4">__construct</a> ($src=null)</td></tr>
|
||||||
|
<tr class="memdesc:a493a069a6ba279b279865111b8e8ffd4 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">constructor <br/></td></tr>
|
||||||
|
<tr class="memitem:a17a50bdadaa49f0638638d5c6da7090c inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a17a50bdadaa49f0638638d5c6da7090c">add_filter</a> ($arg1, $arg2, $arg3=null)</td></tr>
|
||||||
|
<tr class="memdesc:a17a50bdadaa49f0638638d5c6da7090c inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Add an individual token filter. <a href="#a17a50bdadaa49f0638638d5c6da7090c"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a047ae1afbf5563184e3dc67ecfb90a8c inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a047ae1afbf5563184e3dc67ecfb90a8c">add_identifier_mapping</a> ($name, $matches)</td></tr>
|
||||||
|
<tr class="memdesc:a047ae1afbf5563184e3dc67ecfb90a8c inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Adds an identifier mapping which is later analysed by map_identifier_filter. <a href="#a047ae1afbf5563184e3dc67ecfb90a8c"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a32eb459cd8ad20b8ea3403907d7f2e52 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a32eb459cd8ad20b8ea3403907d7f2e52">add_stream_filter</a> ($arg1, $arg2=null)</td></tr>
|
||||||
|
<tr class="memdesc:a32eb459cd8ad20b8ea3403907d7f2e52 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Adds a stream filter. <a href="#a32eb459cd8ad20b8ea3403907d7f2e52"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a0a7907663241caffb546ef22bb35d870 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a0a7907663241caffb546ef22bb35d870">highlight</a> ($src)</td></tr>
|
||||||
|
<tr class="memdesc:a0a7907663241caffb546ef22bb35d870 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Public convenience function for setting the string and highlighting it. <a href="#a0a7907663241caffb546ef22bb35d870"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:af0aecba631e56a3005157cfbe84d6b67 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#af0aecba631e56a3005157cfbe84d6b67">init</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:af0aecba631e56a3005157cfbe84d6b67 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Set up the scanner immediately prior to tokenization. <a href="#af0aecba631e56a3005157cfbe84d6b67"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a12220a789d49b7e8f42cf873966b6756 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756">main</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a12220a789d49b7e8f42cf873966b6756 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">the method responsible for tokenization <a href="#a12220a789d49b7e8f42cf873966b6756"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a6efd3dada50a424d7f30b7f9afac5fc0 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a6efd3dada50a424d7f30b7f9afac5fc0">map_identifier_filter</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a6efd3dada50a424d7f30b7f9afac5fc0 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Identifier mapping filter. <a href="#a6efd3dada50a424d7f30b7f9afac5fc0"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ae974cbfb732f008a79482ffc4f11d398 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ae974cbfb732f008a79482ffc4f11d398">nestable_token</a> ($token_name, $open, $close)</td></tr>
|
||||||
|
<tr class="memdesc:ae974cbfb732f008a79482ffc4f11d398 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Handles tokens that may nest inside themselves. <a href="#ae974cbfb732f008a79482ffc4f11d398"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a614e490335cf64375c52d57edfb398ad inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a614e490335cf64375c52d57edfb398ad">pop</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a614e490335cf64375c52d57edfb398ad inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Pops the top element of the stack, and returns it. <a href="#a614e490335cf64375c52d57edfb398ad"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:add1da033592e8f944660b9e29088a2ac inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add1da033592e8f944660b9e29088a2ac"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#add1da033592e8f944660b9e29088a2ac">push</a> ($<a class="el" href="classLuminousScanner.html#a23e2cf34969c3d39cd34a4b5ce6810ca">state</a>)</td></tr>
|
||||||
|
<tr class="memdesc:add1da033592e8f944660b9e29088a2ac inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Pushes some data onto the stack. <br/></td></tr>
|
||||||
|
<tr class="memitem:aa61dbaafd8801e40094cbff52f7b22f1 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#aa61dbaafd8801e40094cbff52f7b22f1">record</a> ($<a class="el" href="classScanner.html#a577a70297f4d3da0aa2ce4decc66eeea">string</a>, $type, $pre_escaped=false)</td></tr>
|
||||||
|
<tr class="memdesc:aa61dbaafd8801e40094cbff52f7b22f1 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Records a string as a given token type. <a href="#aa61dbaafd8801e40094cbff52f7b22f1"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a48fabeb9791b36ace2b46dd8f91a4afa inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a48fabeb9791b36ace2b46dd8f91a4afa">record_range</a> ($from, $to, $type)</td></tr>
|
||||||
|
<tr class="memdesc:a48fabeb9791b36ace2b46dd8f91a4afa inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Helper function to record a range of the string. <a href="#a48fabeb9791b36ace2b46dd8f91a4afa"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a80c4b9fff3a38e90e04cda38eb075040 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80c4b9fff3a38e90e04cda38eb075040"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a80c4b9fff3a38e90e04cda38eb075040">remove_filter</a> ($name)</td></tr>
|
||||||
|
<tr class="memdesc:a80c4b9fff3a38e90e04cda38eb075040 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Removes the individual filter(s) with the given name. <br/></td></tr>
|
||||||
|
<tr class="memitem:a25c4c1f42c64a07ce87c19f3992a0fba inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25c4c1f42c64a07ce87c19f3992a0fba"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a25c4c1f42c64a07ce87c19f3992a0fba">remove_stream_filter</a> ($name)</td></tr>
|
||||||
|
<tr class="memdesc:a25c4c1f42c64a07ce87c19f3992a0fba inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Removes the stream filter(s) with the given name. <br/></td></tr>
|
||||||
|
<tr class="memitem:ab06dcdea11ff9a78168547b4c84c650c inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ab06dcdea11ff9a78168547b4c84c650c">skip_whitespace</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ab06dcdea11ff9a78168547b4c84c650c inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Skips whitespace, and records it as a null token. <a href="#ab06dcdea11ff9a78168547b4c84c650c"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a4156922baa33783377f7904fd2d4cee5 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4156922baa33783377f7904fd2d4cee5"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a4156922baa33783377f7904fd2d4cee5">start</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a4156922baa33783377f7904fd2d4cee5 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Flushes the token stream. <br/></td></tr>
|
||||||
|
<tr class="memitem:a23e2cf34969c3d39cd34a4b5ce6810ca inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23e2cf34969c3d39cd34a4b5ce6810ca"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a23e2cf34969c3d39cd34a4b5ce6810ca">state</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a23e2cf34969c3d39cd34a4b5ce6810ca inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Gets the top element on $state_ or null if it is empty. <br/></td></tr>
|
||||||
|
<tr class="memitem:a809c11561c650c7784edd3d06243b8b5 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a809c11561c650c7784edd3d06243b8b5">tagged</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a809c11561c650c7784edd3d06243b8b5 inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Returns the XML representation of the token stream. <a href="#a809c11561c650c7784edd3d06243b8b5"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ae381e3000c83ae4cb2259d0ae77a14ab inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ae381e3000c83ae4cb2259d0ae77a14ab">token_array</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:ae381e3000c83ae4cb2259d0ae77a14ab inherit pub_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Gets the token array. <a href="#ae381e3000c83ae4cb2259d0ae77a14ab"></a><br/></td></tr>
|
||||||
|
<tr class="inherit_header pub_methods_classScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classScanner')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classScanner.html">Scanner</a></td></tr>
|
||||||
|
<tr class="memitem:a4cb6935d759ee0c75fa01b75e2d0ec04 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a4cb6935d759ee0c75fa01b75e2d0ec04">add_pattern</a> ($name, $pattern)</td></tr>
|
||||||
|
<tr class="memdesc:a4cb6935d759ee0c75fa01b75e2d0ec04 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Allows the caller to add a predefined named pattern. <a href="#a4cb6935d759ee0c75fa01b75e2d0ec04"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a77abc2d2de424e73d1ee659fd9001e4a inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a77abc2d2de424e73d1ee659fd9001e4a">bol</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a77abc2d2de424e73d1ee659fd9001e4a inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Beginning of line? <a href="#a77abc2d2de424e73d1ee659fd9001e4a"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ae483fc35eae064c75f8b5ca105826757 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#ae483fc35eae064c75f8b5ca105826757">check</a> ($pattern)</td></tr>
|
||||||
|
<tr class="memdesc:ae483fc35eae064c75f8b5ca105826757 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Non-consuming lookahead. <a href="#ae483fc35eae064c75f8b5ca105826757"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a8ad6032d3a1f955608905c10a864aee6 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a8ad6032d3a1f955608905c10a864aee6">eol</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a8ad6032d3a1f955608905c10a864aee6 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">End of line? <a href="#a8ad6032d3a1f955608905c10a864aee6"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a23543739aee09e2e1961a556a9672c7d inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a23543739aee09e2e1961a556a9672c7d">eos</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a23543739aee09e2e1961a556a9672c7d inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">End of string? <a href="#a23543739aee09e2e1961a556a9672c7d"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a154d424c925ed0d58e033f1e71ceef03 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a154d424c925ed0d58e033f1e71ceef03">get</a> ($n=1)</td></tr>
|
||||||
|
<tr class="memdesc:a154d424c925ed0d58e033f1e71ceef03 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Consume a given number of bytes. <a href="#a154d424c925ed0d58e033f1e71ceef03"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ac8beec743c18d54cec51273b3bb7f3b5 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#ac8beec743c18d54cec51273b3bb7f3b5">get_next</a> ($patterns)</td></tr>
|
||||||
|
<tr class="memdesc:ac8beec743c18d54cec51273b3bb7f3b5 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Look for the next occurrence of a set of patterns. <a href="#ac8beec743c18d54cec51273b3bb7f3b5"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a21f59cd38d7ed3ccd43955386b6aa14e inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a21f59cd38d7ed3ccd43955386b6aa14e">get_next_named</a> ($patterns)</td></tr>
|
||||||
|
<tr class="memdesc:a21f59cd38d7ed3ccd43955386b6aa14e inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Find the index of the next occurrence of a named pattern. <a href="#a21f59cd38d7ed3ccd43955386b6aa14e"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a57774c7a298bb43c1c4406a830d386a6 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a57774c7a298bb43c1c4406a830d386a6">get_next_strpos</a> ($patterns)</td></tr>
|
||||||
|
<tr class="memdesc:a57774c7a298bb43c1c4406a830d386a6 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Look for the next occurrence of a set of substrings. <a href="#a57774c7a298bb43c1c4406a830d386a6"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a90bacd70c30eb1d76659c0586f0683d2 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a90bacd70c30eb1d76659c0586f0683d2">index</a> ($pattern)</td></tr>
|
||||||
|
<tr class="memdesc:a90bacd70c30eb1d76659c0586f0683d2 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Find the index of the next occurrence of a pattern. <a href="#a90bacd70c30eb1d76659c0586f0683d2"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a17ac6e2abcb54a6dfaa9abaf95ed839e inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e">match</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a17ac6e2abcb54a6dfaa9abaf95ed839e inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Get the result of the most recent match operation. <a href="#a17ac6e2abcb54a6dfaa9abaf95ed839e"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:aa933ee80eb310785c75ab7b03ed01885 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aa933ee80eb310785c75ab7b03ed01885">match_group</a> ($g=0)</td></tr>
|
||||||
|
<tr class="memdesc:aa933ee80eb310785c75ab7b03ed01885 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Get a group from the most recent match operation. <a href="#aa933ee80eb310785c75ab7b03ed01885"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a9271f0acf8d19f83fa45ee3ee1d3eab5 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a9271f0acf8d19f83fa45ee3ee1d3eab5">match_groups</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a9271f0acf8d19f83fa45ee3ee1d3eab5 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Get the match groups of the most recent match operation. <a href="#a9271f0acf8d19f83fa45ee3ee1d3eab5"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:aa5520e0fc7df54d7a25d75037e6cdc8a inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aa5520e0fc7df54d7a25d75037e6cdc8a">match_pos</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:aa5520e0fc7df54d7a25d75037e6cdc8a inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Get the position (offset) of the most recent match. <a href="#aa5520e0fc7df54d7a25d75037e6cdc8a"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a5e03667fd1cdc1d1fd40a4bc15570b12 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a5e03667fd1cdc1d1fd40a4bc15570b12">next_match</a> ($consume_and_log=true)</td></tr>
|
||||||
|
<tr class="memdesc:a5e03667fd1cdc1d1fd40a4bc15570b12 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Automation function: returns the next occurrence of any known patterns. <a href="#a5e03667fd1cdc1d1fd40a4bc15570b12"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a3028e787442cf1ed9252397ed029b223 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a3028e787442cf1ed9252397ed029b223">peek</a> ($n=1)</td></tr>
|
||||||
|
<tr class="memdesc:a3028e787442cf1ed9252397ed029b223 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Lookahead into the string a given number of bytes. <a href="#a3028e787442cf1ed9252397ed029b223"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a546cafdcfc3adeb19959ae14dff10996 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a546cafdcfc3adeb19959ae14dff10996">pos</a> ($new_pos=null)</td></tr>
|
||||||
|
<tr class="memdesc:a546cafdcfc3adeb19959ae14dff10996 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Getter and setter for the current position (string pointer). <a href="#a546cafdcfc3adeb19959ae14dff10996"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a947d15fe4bd13b64afd5eaba8d4d3819 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a947d15fe4bd13b64afd5eaba8d4d3819">pos_shift</a> ($offset)</td></tr>
|
||||||
|
<tr class="memdesc:a947d15fe4bd13b64afd5eaba8d4d3819 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Moves the string pointer by a given offset. <a href="#a947d15fe4bd13b64afd5eaba8d4d3819"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a79c559549e2dd73c3f1892e7609e84a6 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a79c559549e2dd73c3f1892e7609e84a6">remove_pattern</a> ($name)</td></tr>
|
||||||
|
<tr class="memdesc:a79c559549e2dd73c3f1892e7609e84a6 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Allows the caller to remove a named pattern. <a href="#a79c559549e2dd73c3f1892e7609e84a6"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a89d1448f666d1be3d5037c69f24eb516 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a89d1448f666d1be3d5037c69f24eb516">reset</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a89d1448f666d1be3d5037c69f24eb516 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Reset the scanner. <a href="#a89d1448f666d1be3d5037c69f24eb516"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:aeae50ecaf6b98a0b76f47c3d04b8deb3 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aeae50ecaf6b98a0b76f47c3d04b8deb3">rest</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:aeae50ecaf6b98a0b76f47c3d04b8deb3 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Gets the remaining string. <a href="#aeae50ecaf6b98a0b76f47c3d04b8deb3"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a78ddb203c30c2f9e69755ec00c341add inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a78ddb203c30c2f9e69755ec00c341add">scan</a> ($pattern)</td></tr>
|
||||||
|
<tr class="memdesc:a78ddb203c30c2f9e69755ec00c341add inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Scans at the current pointer. <a href="#a78ddb203c30c2f9e69755ec00c341add"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:aa0e261d4b0c2fce43ba3c264036afd72 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aa0e261d4b0c2fce43ba3c264036afd72">scan_until</a> ($pattern)</td></tr>
|
||||||
|
<tr class="memdesc:aa0e261d4b0c2fce43ba3c264036afd72 inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Scans until the start of a pattern. <a href="#aa0e261d4b0c2fce43ba3c264036afd72"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a185d6e780752848cb282add6d9f936bb inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a185d6e780752848cb282add6d9f936bb">terminate</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a185d6e780752848cb282add6d9f936bb inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Ends scanning of a string. <a href="#a185d6e780752848cb282add6d9f936bb"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a6f6665b8df561788b1b2dea40bb394ae inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a6f6665b8df561788b1b2dea40bb394ae">unscan</a> ()</td></tr>
|
||||||
|
<tr class="memdesc:a6f6665b8df561788b1b2dea40bb394ae inherit pub_methods_classScanner"><td class="mdescLeft"> </td><td class="mdescRight">Revert the most recent scanning operation. <a href="#a6f6665b8df561788b1b2dea40bb394ae"></a><br/></td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2><a name="pub-attribs"></a>
|
||||||
|
Public Attributes</h2></td></tr>
|
||||||
|
<tr class="memitem:a278925946650e3c9e2094283512697d1"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a278925946650e3c9e2094283512697d1">$clean_exit</a> = true</td></tr>
|
||||||
|
<tr class="memdesc:a278925946650e3c9e2094283512697d1"><td class="mdescLeft"> </td><td class="mdescRight">Clean exit or inconvenient, mid-token forced exit. <a href="#a278925946650e3c9e2094283512697d1"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a9627fb0cc01060902259ee3c9212fad2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a9627fb0cc01060902259ee3c9212fad2">$embedded_html</a> = false</td></tr>
|
||||||
|
<tr class="memdesc:a9627fb0cc01060902259ee3c9212fad2"><td class="mdescLeft"> </td><td class="mdescRight">Is the source embedded in HTML? <a href="#a9627fb0cc01060902259ee3c9212fad2"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a5fdc96de06443379f9dd48de9b80040b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a5fdc96de06443379f9dd48de9b80040b">$embedded_server</a> = false</td></tr>
|
||||||
|
<tr class="memdesc:a5fdc96de06443379f9dd48de9b80040b"><td class="mdescLeft"> </td><td class="mdescRight">Is the source embedded in a server-side script (e.g. PHP)? <a href="#a5fdc96de06443379f9dd48de9b80040b"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:aa33f76adc9164f8160785e8f70ff2420"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa33f76adc9164f8160785e8f70ff2420"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#aa33f76adc9164f8160785e8f70ff2420">$interrupt</a> = false</td></tr>
|
||||||
|
<tr class="memdesc:aa33f76adc9164f8160785e8f70ff2420"><td class="mdescLeft"> </td><td class="mdescRight">I think this is ignored and obsolete. <br/></td></tr>
|
||||||
|
<tr class="memitem:a298f32256c797af02dbb7dbf3b2d2040"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a298f32256c797af02dbb7dbf3b2d2040"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a298f32256c797af02dbb7dbf3b2d2040">$script_tags</a></td></tr>
|
||||||
|
<tr class="memdesc:a298f32256c797af02dbb7dbf3b2d2040"><td class="mdescLeft"> </td><td class="mdescRight">closing HTML tag for our code, e.g </script> <br/></td></tr>
|
||||||
|
<tr class="memitem:a11065fbf564b463206673a07a0498457"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11065fbf564b463206673a07a0498457"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a11065fbf564b463206673a07a0498457">$server_tags</a> = '/<\?/'</td></tr>
|
||||||
|
<tr class="memdesc:a11065fbf564b463206673a07a0498457"><td class="mdescLeft"> </td><td class="mdescRight">Opening tag for server-side code. This is a regular expression. <br/></td></tr>
|
||||||
|
<tr class="inherit_header pub_attribs_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classLuminousScanner')"><img src="closed.png" alt="-"/> Public Attributes inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
|
||||||
|
<tr class="memitem:a22a1e366c9fbe4e837de693258c5c739 inherit pub_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22a1e366c9fbe4e837de693258c5c739"></a>
|
||||||
|
 </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a22a1e366c9fbe4e837de693258c5c739">$version</a> = 'master'</td></tr>
|
||||||
|
<tr class="memdesc:a22a1e366c9fbe4e837de693258c5c739 inherit pub_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">scanner version. <br/></td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2><a name="pro-attribs"></a>
|
||||||
|
Protected Attributes</h2></td></tr>
|
||||||
|
<tr class="memitem:aba37db3108b9a5ec0fda7f18a66fb317"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#aba37db3108b9a5ec0fda7f18a66fb317">$child_scanners</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:aba37db3108b9a5ec0fda7f18a66fb317"><td class="mdescLeft"> </td><td class="mdescRight">Child scanners. <a href="#aba37db3108b9a5ec0fda7f18a66fb317"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ace2c028e88c2c295c9f92214eff51f2b"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#ace2c028e88c2c295c9f92214eff51f2b">$dirty_exit_recovery</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:ace2c028e88c2c295c9f92214eff51f2b"><td class="mdescLeft"> </td><td class="mdescRight">Recovery patterns for when we reach an untimely interrupt. <a href="#ace2c028e88c2c295c9f92214eff51f2b"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a463a354548b9e9bf913ca47faf03808a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a463a354548b9e9bf913ca47faf03808a">$exit_state</a> = null</td></tr>
|
||||||
|
<tr class="memdesc:a463a354548b9e9bf913ca47faf03808a"><td class="mdescLeft"> </td><td class="mdescRight">Name of interrupted token, in case of a dirty exit. <a href="#a463a354548b9e9bf913ca47faf03808a"></a><br/></td></tr>
|
||||||
|
<tr class="inherit_header pro_attribs_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classLuminousScanner')"><img src="closed.png" alt="-"/> Protected Attributes inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
|
||||||
|
<tr class="memitem:af3887911498a250b2cb1fe737dd87df1 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#af3887911498a250b2cb1fe737dd87df1">$case_sensitive</a> = true</td></tr>
|
||||||
|
<tr class="memdesc:af3887911498a250b2cb1fe737dd87df1 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Whether or not the language is case sensitive. <a href="#af3887911498a250b2cb1fe737dd87df1"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:aca257c4da52076f42c6e53d9d0d33dd1 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#aca257c4da52076f42c6e53d9d0d33dd1">$filters</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:aca257c4da52076f42c6e53d9d0d33dd1 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Individual token filters. <a href="#aca257c4da52076f42c6e53d9d0d33dd1"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:adb13455bbeb076cd0f031f050ef31a82 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#adb13455bbeb076cd0f031f050ef31a82">$ident_map</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:adb13455bbeb076cd0f031f050ef31a82 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">A map of identifiers and their corresponding token names. <a href="#adb13455bbeb076cd0f031f050ef31a82"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a30aaa5d3076a9f28d00f167a1c4eac34 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a30aaa5d3076a9f28d00f167a1c4eac34">$rule_tag_map</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:a30aaa5d3076a9f28d00f167a1c4eac34 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Rule remappings. <a href="#a30aaa5d3076a9f28d00f167a1c4eac34"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ab5a30262ceb4324fdfaac1a7d217ba36 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ab5a30262ceb4324fdfaac1a7d217ba36">$state_</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:ab5a30262ceb4324fdfaac1a7d217ba36 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">State stack. <a href="#ab5a30262ceb4324fdfaac1a7d217ba36"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ad3d9ad7f7f14bc9de3dd6b68225ce21c inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ad3d9ad7f7f14bc9de3dd6b68225ce21c">$stream_filters</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:ad3d9ad7f7f14bc9de3dd6b68225ce21c inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Token stream filters. <a href="#ad3d9ad7f7f14bc9de3dd6b68225ce21c"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:ab29032700812b580e5d09b6128202286 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ab29032700812b580e5d09b6128202286">$tokens</a> = array()</td></tr>
|
||||||
|
<tr class="memdesc:ab29032700812b580e5d09b6128202286 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">The token stream. <a href="#ab29032700812b580e5d09b6128202286"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a615d93f42d9290b9fad4d84cc2fd84ec inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a615d93f42d9290b9fad4d84cc2fd84ec">$user_defs</a></td></tr>
|
||||||
|
<tr class="memdesc:a615d93f42d9290b9fad4d84cc2fd84ec inherit pro_attribs_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Identifier remappings based on definitions identified in the source code. <a href="#a615d93f42d9290b9fad4d84cc2fd84ec"></a><br/></td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2><a name="inherited"></a>
|
||||||
|
Additional Inherited Members</h2></td></tr>
|
||||||
|
<tr class="inherit_header pub_static_methods_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classLuminousScanner')"><img src="closed.png" alt="-"/> Static Public Member Functions inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
|
||||||
|
<tr class="memitem:a094a64c9eb09e38ab43c865e1a4482c9 inherit pub_static_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a094a64c9eb09e38ab43c865e1a4482c9">guess_language</a> ($src, $info)</td></tr>
|
||||||
|
<tr class="memdesc:a094a64c9eb09e38ab43c865e1a4482c9 inherit pub_static_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Language guessing. <a href="#a094a64c9eb09e38ab43c865e1a4482c9"></a><br/></td></tr>
|
||||||
|
<tr class="inherit_header pro_methods_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classLuminousScanner')"><img src="closed.png" alt="-"/> Protected Member Functions inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
|
||||||
|
<tr class="memitem:a4cc936af136b39a54db6c7212c04cee7 inherit pro_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a4cc936af136b39a54db6c7212c04cee7">rule_mapper_filter</a> ($tokens)</td></tr>
|
||||||
|
<tr class="memdesc:a4cc936af136b39a54db6c7212c04cee7 inherit pro_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Rule re-mapper filter. <a href="#a4cc936af136b39a54db6c7212c04cee7"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a463b3eb270a7afb960ee642bccc0d1b6 inherit pro_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a463b3eb270a7afb960ee642bccc0d1b6">user_def_filter</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a463b3eb270a7afb960ee642bccc0d1b6 inherit pro_methods_classLuminousScanner"><td class="mdescLeft"> </td><td class="mdescRight">Filter to highlight identifiers whose definitions are in the source. <a href="#a463b3eb270a7afb960ee642bccc0d1b6"></a><br/></td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2>Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>Superclass for languages which may nest, i.e. web languages. </p>
|
||||||
|
<p>Web languages get their own special class because they have to deal with server-script code embedded inside them and the potential for languages nested under them (PHP has HTML, HTML has CSS and JavaScript)</p>
|
||||||
|
<p>The relationship is strictly hierarchical, not recursive descent Meeting a '<?' in CSS bubbles up to HTML and then up to PHP (or whatever). The top-level scanner is ultimately what should have sub-scanner code embedded in its own token stream.</p>
|
||||||
|
<p>The scanners should be persistent, so only one JavaScript scanner exists even if there are 20 javascript tags. This is so they can keep persistent state, which might be necessary if they are interrupted by server-side tags. For this reason, the <a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756" title="the method responsible for tokenization">main()</a> method might be called multiple times, therefore each web sub-scanner should </p>
|
||||||
|
<ul>
|
||||||
|
<li>Not rely on keeping state related data in <a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756" title="the method responsible for tokenization">main()</a>'s function scope, make it a class variable </li>
|
||||||
|
<li>flush its token stream every time <a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756" title="the method responsible for tokenization">main()</a> is called</li>
|
||||||
|
</ul>
|
||||||
|
<p>The init method of the class should be used to set relevant rules based on whether or not the embedded flags are set; and therefore the embedded flags should be set before init is called. </p>
|
||||||
|
</div><h2>Member Function Documentation</h2>
|
||||||
|
<a class="anchor" id="a77deb48d41b8a791900a3d5c50813faf"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::dirty_exit </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$token_name</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Sets the exit data to signify the exit is dirty and will need recovering from. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">$token_name</td><td>the name of the token which is being interrupted</td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="exception"><dt>Exceptions</dt><dd>
|
||||||
|
<table class="exception">
|
||||||
|
<tr><td class="paramname">Exception</td><td>if no recovery data is associated with the given token. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="aa5f8bbf0166d4d6531d33ad3319f85e5"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::resume </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramname"></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Attempts to recover from a dirty exit. </p>
|
||||||
|
<p>This method should be called on <b>every</b> iteration of the main loop when <a class="el" href="classLuminousEmbeddedWebScript.html#a278925946650e3c9e2094283512697d1" title="Clean exit or inconvenient, mid-token forced exit.">LuminousEmbeddedWebScript::$clean_exit</a> is <b>FALSE</b>. It will attempt to recover from an interruption which left the scanner in the middle of a token. The remainder of the token will be in <a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e" title="Get the result of the most recent match operation.">Scanner::match()</a> as usual.</p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>the name of the token which was interrupted</dd></dl>
|
||||||
|
<dl class="section note"><dt>Note</dt><dd>there is no reason why a scanner should fail to recover from this, and failing is classed as an implementation error, therefore assertions will be failed and errors will be spewed forth. A failure can either be because no recovery regex is set, or that the recovery regex did not match. The former should never have been tagged as a dirty exit and the latter should be rewritten so it must definitely match, even if the match is zero-length or the remainder of the string. </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a08ce3d66e8ff9217903f68c2a2aa6120"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::script_break </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$token_name</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$match</em> = <code>null</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$pos</em> = <code>null</code> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Checks for a script terminator tag inside a matched token. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">$token_name</td><td>The token name of the matched text </td></tr>
|
||||||
|
<tr><td class="paramname">$match</td><td>The string from the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e" title="Get the result of the most recent match operation.">Scanner::match()</a> is assumed to hold the match. </td></tr>
|
||||||
|
<tr><td class="paramname">$pos</td><td>The position of the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#aa5520e0fc7df54d7a25d75037e6cdc8a" title="Get the position (offset) of the most recent match.">Scanner::match_pos()</a> is assumed to hold the offset. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd><code>TRUE</code> if the scanner should break, else <code>FALSE</code> </dd></dl>
|
||||||
|
<p>This method checks whether the string provided as match contains the string in LuminousEmbeddedWebScript::script_tags. If yes, then it records the substring as $token_name, advances the scan pointer to immediately before the script tags, and returns <code>TRUE</code>. Returning <code>TRUE</code> is a signal that the scanner should break immediately and let its parent scanner take over.</p>
|
||||||
|
<p>This condition is a 'clean_exit'. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a9725d508c1411b029b43feeab9491af4"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::server_break </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$token_name</em>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$match</em> = <code>null</code>, </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="paramkey"></td>
|
||||||
|
<td></td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$pos</em> = <code>null</code> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>)</td>
|
||||||
|
<td></td><td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Checks for a server-side script inside a matched token. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">$token_name</td><td>The token name of the matched text </td></tr>
|
||||||
|
<tr><td class="paramname">$match</td><td>The string from the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e" title="Get the result of the most recent match operation.">Scanner::match()</a> is assumed to hold the match. </td></tr>
|
||||||
|
<tr><td class="paramname">$pos</td><td>The position of the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#aa5520e0fc7df54d7a25d75037e6cdc8a" title="Get the position (offset) of the most recent match.">Scanner::match_pos()</a> is assumed to hold the offset. </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd><code>TRUE</code> if the scanner should break, else <code>FALSE</code> </dd></dl>
|
||||||
|
<p>This method checks whether an interruption by a server-side script tag, LuminousEmbeddedWebScript::server_tags, occurs within a matched token. If it does, this method records the substring up until that point as the provided $token_name, and also sets up a 'dirty exit'. This means that some type was interrupted and we expect to have to recover from it when the server-side language's scanner has ended.</p>
|
||||||
|
<p>Returning <code>TRUE</code> is a signal that the scanner should break immediately and let its parent scanner take over. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a468d0f77b948817731d32f866b360586"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::string </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$s</em> = <code>null</code></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Getter and setter for the source string. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">$s</td><td>The new source string (leave as <code>NULL</code> to use this method as a getter) </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>The current source string</dd></dl>
|
||||||
|
<dl class="section note"><dt>Note</dt><dd>This method triggers a <a class="el" href="classScanner.html#a89d1448f666d1be3d5037c69f24eb516" title="Reset the scanner.">reset()</a> </dd>
|
||||||
|
<dd>
|
||||||
|
Any strings passed into this method are converted to Unix line endings, i.e. <code>\n</code> </dd></dl>
|
||||||
|
|
||||||
|
<p>Reimplemented from <a class="el" href="classScanner.html#a577a70297f4d3da0aa2ce4decc66eeea">Scanner</a>.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h2>Member Data Documentation</h2>
|
||||||
|
<a class="anchor" id="aba37db3108b9a5ec0fda7f18a66fb317"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::$child_scanners = array()</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Child scanners. </p>
|
||||||
|
<p>Persistent storage of child scanners, name => scanner (instance) </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a278925946650e3c9e2094283512697d1"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::$clean_exit = true</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Clean exit or inconvenient, mid-token forced exit. </p>
|
||||||
|
<p>Signifies whether the program exited due to inconvenient interruption by a parent language (i.e. a server-side langauge), or whether it reached a legitimate break. A server-side language isn't necessarily a dirty exit, but if it comes in the middle of a token it is, because we need to resume from it later. e.g.:</p>
|
||||||
|
<p>var x = "this is \<?php echo 'a' ?\> string"; </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="ace2c028e88c2c295c9f92214eff51f2b"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::$dirty_exit_recovery = array()</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Recovery patterns for when we reach an untimely interrupt. </p>
|
||||||
|
<p>If we reach a dirty exit, when we resume we need to figure out how to continue consuming the rule that was interrupted. So essentially, this will be a regex which matches the rule without start delimiters.</p>
|
||||||
|
<p>This is a map of rule => pattern </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a9627fb0cc01060902259ee3c9212fad2"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::$embedded_html = false</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Is the source embedded in HTML? </p>
|
||||||
|
<p>Embedded in HTML? i.e. do we need to observe tag terminators like </script> </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a5fdc96de06443379f9dd48de9b80040b"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::$embedded_server = false</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Is the source embedded in a server-side script (e.g. PHP)? </p>
|
||||||
|
<p>Embedded in a server side language? i.e. do we need to break at (for example) <? tags? </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a463a354548b9e9bf913ca47faf03808a"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">LuminousEmbeddedWebScript::$exit_state = null</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Name of interrupted token, in case of a dirty exit. </p>
|
||||||
|
<p>exit state logs our exit state in the case of a dirty exit: this is the rule that was interrupted. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
|
<li>src/core/<a class="el" href="scanner_8class_8php.html">scanner.class.php</a></li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Sat Jan 12 2013 16:03:50 for Luminous by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.1.2
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
10
3rdparty/luminous/docs/html/classLuminousEmbeddedWebScript__coll__graph.dot
vendored
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
digraph "LuminousEmbeddedWebScript"
|
||||||
|
{
|
||||||
|
edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
|
||||||
|
node [fontname="FreeSans",fontsize="10",shape=record];
|
||||||
|
Node1 [label="LuminousEmbeddedWebScript",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
|
||||||
|
Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
|
||||||
|
Node2 [label="LuminousScanner",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$classLuminousScanner.html",tooltip="the base class for all scanners"];
|
||||||
|
Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
|
||||||
|
Node3 [label="Scanner",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$classScanner.html",tooltip="Base string scanning class."];
|
||||||
|
}
|
1
3rdparty/luminous/docs/html/classLuminousEmbeddedWebScript__coll__graph.md5
vendored
Executable file
@ -0,0 +1 @@
|
|||||||
|
ee377fd5e8791c84c193d0a31cdf7c0e
|
10
3rdparty/luminous/docs/html/classLuminousEmbeddedWebScript__inherit__graph.dot
vendored
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
digraph "LuminousEmbeddedWebScript"
|
||||||
|
{
|
||||||
|
edge [fontname="FreeSans",fontsize="10",labelfontname="FreeSans",labelfontsize="10"];
|
||||||
|
node [fontname="FreeSans",fontsize="10",shape=record];
|
||||||
|
Node1 [label="LuminousEmbeddedWebScript",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
|
||||||
|
Node2 -> Node1 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
|
||||||
|
Node2 [label="LuminousScanner",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$classLuminousScanner.html",tooltip="the base class for all scanners"];
|
||||||
|
Node3 -> Node2 [dir="back",color="midnightblue",fontsize="10",style="solid",fontname="FreeSans"];
|
||||||
|
Node3 [label="Scanner",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$classScanner.html",tooltip="Base string scanning class."];
|
||||||
|
}
|
1
3rdparty/luminous/docs/html/classLuminousEmbeddedWebScript__inherit__graph.md5
vendored
Executable file
@ -0,0 +1 @@
|
|||||||
|
ee377fd5e8791c84c193d0a31cdf7c0e
|
108
3rdparty/luminous/docs/html/classLuminousFilters-members.html
vendored
Executable file
@ -0,0 +1,108 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<title>Luminous: Member List</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Luminous
|
||||||
|
 <span id="projectnumber">git-master</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.1.2 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">LuminousFilters Member List</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>This is the complete list of members for <a class="el" href="classLuminousFilters.html">LuminousFilters</a>, including all inherited members.</p>
|
||||||
|
<table class="directory">
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousFilters.html#a623942677616891fd8d941061401c623">clean_ident</a>($token)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousFilters.html#a83a7be7573ac5b70247e1f07546f70fa">comment_note</a>($token)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousFilters.html#a84e0e2847f7d6b7001894a80c8305ab9">doxygen_arg_length</a>($command)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousFilters.html#a164114c951d4149d2c0abbbbaa803cf8">doxygenize</a>($token)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousFilters.html#af3797a9501d392f65449b638d47230b6">doxygenize_cb</a>($matches)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">private</span><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousFilters.html#a58ce94f1a8180ac0ecab1378d1d969d2">generic_doc_comment</a>($token)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousFilters.html#a7b50fe8611c983dad41808f9da83386c">oo_stream_filter</a>($tokens)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousFilters.html#a474345e7d70bcebb971cecada698499f">pcre</a>($token, $delimited=true)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr class="even"><td class="entry"><a class="el" href="classLuminousFilters.html#a3ff3ab9bf79e1e3ccc6f93e711e4396f">string</a>($token)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
<tr><td class="entry"><a class="el" href="classLuminousFilters.html#a10fb6fd692505d6efeabc37754343288">upper_to_constant</a>($token)</td><td class="entry"><a class="el" href="classLuminousFilters.html">LuminousFilters</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
|
||||||
|
</table></div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Sat Jan 12 2013 16:03:50 for Luminous by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.1.2
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|
284
3rdparty/luminous/docs/html/classLuminousFilters.html
vendored
Executable file
@ -0,0 +1,284 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
|
||||||
|
<title>Luminous: LuminousFilters Class Reference</title>
|
||||||
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="jquery.js"></script>
|
||||||
|
<script type="text/javascript" src="dynsections.js"></script>
|
||||||
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||||||
|
<script type="text/javascript" src="search/search.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function() { searchBox.OnSelectItem(0); });
|
||||||
|
</script>
|
||||||
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||||||
|
<div id="titlearea">
|
||||||
|
<table cellspacing="0" cellpadding="0">
|
||||||
|
<tbody>
|
||||||
|
<tr style="height: 56px;">
|
||||||
|
<td style="padding-left: 0.5em;">
|
||||||
|
<div id="projectname">Luminous
|
||||||
|
 <span id="projectnumber">git-master</span>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- end header part -->
|
||||||
|
<!-- Generated by Doxygen 1.8.1.2 -->
|
||||||
|
<script type="text/javascript">
|
||||||
|
var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
||||||
|
</script>
|
||||||
|
<div id="navrow1" class="tabs">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
||||||
|
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
|
||||||
|
<li><a href="files.html"><span>Files</span></a></li>
|
||||||
|
<li>
|
||||||
|
<div id="MSearchBox" class="MSearchBoxInactive">
|
||||||
|
<span class="left">
|
||||||
|
<img id="MSearchSelect" src="search/mag_sel.png"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
alt=""/>
|
||||||
|
<input type="text" id="MSearchField" value="Search" accesskey="S"
|
||||||
|
onfocus="searchBox.OnSearchFieldFocus(true)"
|
||||||
|
onblur="searchBox.OnSearchFieldFocus(false)"
|
||||||
|
onkeyup="searchBox.OnSearchFieldChange(event)"/>
|
||||||
|
</span><span class="right">
|
||||||
|
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div id="navrow2" class="tabs2">
|
||||||
|
<ul class="tablist">
|
||||||
|
<li><a href="annotated.html"><span>Class List</span></a></li>
|
||||||
|
<li><a href="inherits.html"><span>Class Hierarchy</span></a></li>
|
||||||
|
<li><a href="functions.html"><span>Class Members</span></a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- window showing the filter options -->
|
||||||
|
<div id="MSearchSelectWindow"
|
||||||
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
||||||
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
||||||
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||||||
|
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a></div>
|
||||||
|
|
||||||
|
<!-- iframe showing the search results (closed by default) -->
|
||||||
|
<div id="MSearchResultsWindow">
|
||||||
|
<iframe src="javascript:void(0)" frameborder="0"
|
||||||
|
name="MSearchResults" id="MSearchResults">
|
||||||
|
</iframe>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div><!-- top -->
|
||||||
|
<div class="header">
|
||||||
|
<div class="summary">
|
||||||
|
<a href="#pub-static-methods">Static Public Member Functions</a> |
|
||||||
|
<a href="#pri-static-methods">Static Private Member Functions</a> |
|
||||||
|
<a href="classLuminousFilters-members.html">List of all members</a> </div>
|
||||||
|
<div class="headertitle">
|
||||||
|
<div class="title">LuminousFilters Class Reference</div> </div>
|
||||||
|
</div><!--header-->
|
||||||
|
<div class="contents">
|
||||||
|
|
||||||
|
<p>A collection of useful common filters.
|
||||||
|
<a href="classLuminousFilters.html#details">More...</a></p>
|
||||||
|
<table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2><a name="pub-static-methods"></a>
|
||||||
|
Static Public Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a623942677616891fd8d941061401c623"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a623942677616891fd8d941061401c623"></a>
|
||||||
|
static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a623942677616891fd8d941061401c623">clean_ident</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a623942677616891fd8d941061401c623"><td class="mdescLeft"> </td><td class="mdescRight">Translates anything of type 'IDENT' to the null type. <br/></td></tr>
|
||||||
|
<tr class="memitem:a83a7be7573ac5b70247e1f07546f70fa"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a83a7be7573ac5b70247e1f07546f70fa"></a>
|
||||||
|
static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a83a7be7573ac5b70247e1f07546f70fa">comment_note</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a83a7be7573ac5b70247e1f07546f70fa"><td class="mdescLeft"> </td><td class="mdescRight">Highlights comment notes Highlights keywords in comments, i.e. "NOTE", "XXX", "FIXME", "TODO", "HACK", "BUG". <br/></td></tr>
|
||||||
|
<tr class="memitem:a164114c951d4149d2c0abbbbaa803cf8"><td class="memItemLeft" align="right" valign="top">static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a164114c951d4149d2c0abbbbaa803cf8">doxygenize</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a164114c951d4149d2c0abbbbaa803cf8"><td class="mdescLeft"> </td><td class="mdescRight">Highlights doc-comment tags inside a comment block. <a href="#a164114c951d4149d2c0abbbbaa803cf8"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a58ce94f1a8180ac0ecab1378d1d969d2"><td class="memItemLeft" align="right" valign="top">static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a58ce94f1a8180ac0ecab1378d1d969d2">generic_doc_comment</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a58ce94f1a8180ac0ecab1378d1d969d2"><td class="mdescLeft"> </td><td class="mdescRight">Generic filter to highlight JavaDoc, PHPDoc, Doxygen, JSdoc, and similar doc comment syntax. <a href="#a58ce94f1a8180ac0ecab1378d1d969d2"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a7b50fe8611c983dad41808f9da83386c"><td class="memItemLeft" align="right" valign="top">static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a7b50fe8611c983dad41808f9da83386c">oo_stream_filter</a> ($tokens)</td></tr>
|
||||||
|
<tr class="memdesc:a7b50fe8611c983dad41808f9da83386c"><td class="mdescLeft"> </td><td class="mdescRight">Attempts to apply OO syntax highlighting. <a href="#a7b50fe8611c983dad41808f9da83386c"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:a474345e7d70bcebb971cecada698499f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a474345e7d70bcebb971cecada698499f"></a>
|
||||||
|
static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a474345e7d70bcebb971cecada698499f">pcre</a> ($token, $delimited=true)</td></tr>
|
||||||
|
<tr class="memdesc:a474345e7d70bcebb971cecada698499f"><td class="mdescLeft"> </td><td class="mdescRight">Tries to highlight PCRE style regular expression syntax. <br/></td></tr>
|
||||||
|
<tr class="memitem:a3ff3ab9bf79e1e3ccc6f93e711e4396f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3ff3ab9bf79e1e3ccc6f93e711e4396f"></a>
|
||||||
|
static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a3ff3ab9bf79e1e3ccc6f93e711e4396f">string</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a3ff3ab9bf79e1e3ccc6f93e711e4396f"><td class="mdescLeft"> </td><td class="mdescRight">Highlights generic escape sequences in strings Highlights escape sequences in strings. There is no checking on which sequences are legal, this is simply a generic function which checks for \u... unicode, \d... octal, \x... hex and finally just any character following a backslash. <br/></td></tr>
|
||||||
|
<tr class="memitem:a10fb6fd692505d6efeabc37754343288"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a10fb6fd692505d6efeabc37754343288"></a>
|
||||||
|
static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a10fb6fd692505d6efeabc37754343288">upper_to_constant</a> ($token)</td></tr>
|
||||||
|
<tr class="memdesc:a10fb6fd692505d6efeabc37754343288"><td class="mdescLeft"> </td><td class="mdescRight">Translates any token type of an uppercase/numeric IDENT to 'CONSTANT'. <br/></td></tr>
|
||||||
|
</table><table class="memberdecls">
|
||||||
|
<tr class="heading"><td colspan="2"><h2><a name="pri-static-methods"></a>
|
||||||
|
Static Private Member Functions</h2></td></tr>
|
||||||
|
<tr class="memitem:a84e0e2847f7d6b7001894a80c8305ab9"><td class="memItemLeft" align="right" valign="top">static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#a84e0e2847f7d6b7001894a80c8305ab9">doxygen_arg_length</a> ($command)</td></tr>
|
||||||
|
<tr class="memdesc:a84e0e2847f7d6b7001894a80c8305ab9"><td class="mdescLeft"> </td><td class="mdescRight">Gets the expected number of arguments to a doc-comment command/tag. <a href="#a84e0e2847f7d6b7001894a80c8305ab9"></a><br/></td></tr>
|
||||||
|
<tr class="memitem:af3797a9501d392f65449b638d47230b6"><td class="memItemLeft" align="right" valign="top">static </td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousFilters.html#af3797a9501d392f65449b638d47230b6">doxygenize_cb</a> ($matches)</td></tr>
|
||||||
|
<tr class="memdesc:af3797a9501d392f65449b638d47230b6"><td class="mdescLeft"> </td><td class="mdescRight">callback to doxygenize Highlights Doxygen-esque doc-comment syntax. This is a callback to <a class="el" href="classLuminousFilters.html#a164114c951d4149d2c0abbbbaa803cf8" title="Highlights doc-comment tags inside a comment block.">doxygenize()</a>. <a href="#af3797a9501d392f65449b638d47230b6"></a><br/></td></tr>
|
||||||
|
</table>
|
||||||
|
<a name="details" id="details"></a><h2>Detailed Description</h2>
|
||||||
|
<div class="textblock"><p>A collection of useful common filters. </p>
|
||||||
|
<p>Filters are either stream filters or individual filters. Stream filters operate on the entire token stream, and return the new token stream. Individual filters operate on individual tokens (bound by type), and return the new token. Any publicly available member here is one of those, therefore the return and param documents are omitted. </p>
|
||||||
|
</div><h2>Member Function Documentation</h2>
|
||||||
|
<a class="anchor" id="a84e0e2847f7d6b7001894a80c8305ab9"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static LuminousFilters::doxygen_arg_length </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$command</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Gets the expected number of arguments to a doc-comment command/tag. </p>
|
||||||
|
<dl class="params"><dt>Parameters</dt><dd>
|
||||||
|
<table class="params">
|
||||||
|
<tr><td class="paramname">$command</td><td>the name of the command </td></tr>
|
||||||
|
</table>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>The expected number of arguments for a command, this is either 0 or 1 at the moment </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a164114c951d4149d2c0abbbbaa803cf8"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static LuminousFilters::doxygenize </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$token</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Highlights doc-comment tags inside a comment block. </p>
|
||||||
|
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classLuminousFilters.html#a58ce94f1a8180ac0ecab1378d1d969d2" title="Generic filter to highlight JavaDoc, PHPDoc, Doxygen, JSdoc, and similar doc comment syntax...">generic_doc_comment</a> </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="af3797a9501d392f65449b638d47230b6"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static LuminousFilters::doxygenize_cb </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$matches</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>callback to doxygenize Highlights Doxygen-esque doc-comment syntax. This is a callback to <a class="el" href="classLuminousFilters.html#a164114c951d4149d2c0abbbbaa803cf8" title="Highlights doc-comment tags inside a comment block.">doxygenize()</a>. </p>
|
||||||
|
<dl class="section return"><dt>Returns</dt><dd>the highlighted string </dd></dl>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a58ce94f1a8180ac0ecab1378d1d969d2"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static LuminousFilters::generic_doc_comment </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$token</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Generic filter to highlight JavaDoc, PHPDoc, Doxygen, JSdoc, and similar doc comment syntax. </p>
|
||||||
|
<p>A cursory check will be performed to try to validate that the token really is a doc-comment, it does this by checking for common formats.</p>
|
||||||
|
<p>If the check is successful, the token will be switched to type 'DOCCOMMENT' and its doc-tags will be highlighted</p>
|
||||||
|
<p>This is a wrapper around <a class="el" href="classLuminousFilters.html#a164114c951d4149d2c0abbbbaa803cf8" title="Highlights doc-comment tags inside a comment block.">doxygenize()</a>. If the checks are not necessary, or incorrect for your situation, you may instead choose to use <a class="el" href="classLuminousFilters.html#a164114c951d4149d2c0abbbbaa803cf8" title="Highlights doc-comment tags inside a comment block.">doxygenize()</a> directly. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<a class="anchor" id="a7b50fe8611c983dad41808f9da83386c"></a>
|
||||||
|
<div class="memitem">
|
||||||
|
<div class="memproto">
|
||||||
|
<table class="mlabels">
|
||||||
|
<tr>
|
||||||
|
<td class="mlabels-left">
|
||||||
|
<table class="memname">
|
||||||
|
<tr>
|
||||||
|
<td class="memname">static LuminousFilters::oo_stream_filter </td>
|
||||||
|
<td>(</td>
|
||||||
|
<td class="paramtype"> </td>
|
||||||
|
<td class="paramname"><em>$tokens</em></td><td>)</td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td class="mlabels-right">
|
||||||
|
<span class="mlabels"><span class="mlabel">static</span></span> </td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div><div class="memdoc">
|
||||||
|
|
||||||
|
<p>Attempts to apply OO syntax highlighting. </p>
|
||||||
|
<p>Tries to apply generic OO syntax highlighting. Any identifer immediately preceding a '.', '::' or '->' token is mapped to an 'OO'. Any identifer token immediatel following any of those tokens is mapped to an 'OBJ'. This is a stream filter. </p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr/>The documentation for this class was generated from the following file:<ul>
|
||||||
|
<li>src/core/filters.class.php</li>
|
||||||
|
</ul>
|
||||||
|
</div><!-- contents -->
|
||||||
|
<!-- start footer part -->
|
||||||
|
<hr class="footer"/><address class="footer"><small>
|
||||||
|
Generated on Sat Jan 12 2013 16:03:50 for Luminous by  <a href="http://www.doxygen.org/index.html">
|
||||||
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
|
</a> 1.8.1.2
|
||||||
|
</small></address>
|
||||||
|
</body>
|
||||||
|
</html>
|