first commit

This commit is contained in:
2024-11-10 21:08:49 +01:00
commit 0d932ce5ee
14455 changed files with 2567501 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
# Joomunited Framework
## Potential backward compatibility issues from in 1.0.3
### Controller
#### exit_status method has been removed
Use existStatus method instead, parameters have not changed

View File

@@ -0,0 +1,21 @@
# This is a sample build configuration for PHP.
# Check our guides at https://confluence.atlassian.com/x/e8YWN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: php:7.1.1
pipelines:
custom:
phpcs: &sharedphpcs
- step:
name: Phpcs
caches:
- composer
script:
- apt-get update && apt-get install -y unzip
- curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
- composer install
- vendor/bin/phpcs -s .
branches:
'{master,development}': *sharedphpcs

View File

@@ -0,0 +1,8 @@
{
"require-dev": {
"squizlabs/php_codesniffer": "^3.2",
"wimg/php-compatibility": "*",
"wp-coding-standards/wpcs": "*"
},
"prefer-stable": true
}

View File

@@ -0,0 +1,161 @@
{
"_readme": [
"This file locks the dependencies of your project to a known state",
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically"
],
"content-hash": "c45f1d1b0944b1c1364cacfa0c25a5d9",
"packages": [],
"packages-dev": [
{
"name": "squizlabs/php_codesniffer",
"version": "3.2.3",
"source": {
"type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
"reference": "4842476c434e375f9d3182ff7b89059583aa8b27"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/4842476c434e375f9d3182ff7b89059583aa8b27",
"reference": "4842476c434e375f9d3182ff7b89059583aa8b27",
"shasum": ""
},
"require": {
"ext-simplexml": "*",
"ext-tokenizer": "*",
"ext-xmlwriter": "*",
"php": ">=5.4.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
},
"bin": [
"bin/phpcs",
"bin/phpcbf"
],
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.x-dev"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Greg Sherwood",
"role": "lead"
}
],
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
"homepage": "http://www.squizlabs.com/php-codesniffer",
"keywords": [
"phpcs",
"standards"
],
"time": "2018-02-20T21:35:23+00:00"
},
{
"name": "wimg/php-compatibility",
"version": "8.1.0",
"source": {
"type": "git",
"url": "https://github.com/wimg/PHPCompatibility.git",
"reference": "4ac01e4fe8faaa4f8d3b3cd06ea92e5418ce472e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/wimg/PHPCompatibility/zipball/4ac01e4fe8faaa4f8d3b3cd06ea92e5418ce472e",
"reference": "4ac01e4fe8faaa4f8d3b3cd06ea92e5418ce472e",
"shasum": ""
},
"require": {
"php": ">=5.3",
"squizlabs/php_codesniffer": "^2.2 || ^3.0.2"
},
"conflict": {
"squizlabs/php_codesniffer": "2.6.2"
},
"require-dev": {
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0"
},
"suggest": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3"
},
"type": "phpcodesniffer-standard",
"autoload": {
"psr-4": {
"PHPCompatibility\\": "PHPCompatibility/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-3.0"
],
"authors": [
{
"name": "Wim Godden",
"role": "lead"
}
],
"description": "A set of sniffs for PHP_CodeSniffer that checks for PHP version compatibility.",
"homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
"keywords": [
"compatibility",
"phpcs",
"standards"
],
"time": "2017-12-27T21:58:38+00:00"
},
{
"name": "wp-coding-standards/wpcs",
"version": "0.14.1",
"source": {
"type": "git",
"url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git",
"reference": "cf6b310caad735816caef7573295f8a534374706"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/cf6b310caad735816caef7573295f8a534374706",
"reference": "cf6b310caad735816caef7573295f8a534374706",
"shasum": ""
},
"require": {
"php": ">=5.3",
"squizlabs/php_codesniffer": "^2.9.0 || ^3.0.2"
},
"suggest": {
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3"
},
"type": "phpcodesniffer-standard",
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Contributors",
"homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
}
],
"description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
"keywords": [
"phpcs",
"standards",
"wordpress"
],
"time": "2018-02-16T01:57:48+00:00"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"prefer-stable": true,
"prefer-lowest": false,
"platform": [],
"platform-dev": []
}

View File

@@ -0,0 +1,49 @@
<?php
/*
JUPlugin Name: Joomunited WP Framework
Description: WP Framework for Joomunited extensions
Author: Joomunited
Version: 1.0.4
Author URI: http://www.joomunited.com
*/
defined('ABSPATH') || die();
// Prevent from loading julibraries twice
if (!defined('JU_LIBRARY_V1_0_4')) {
/**
* Julibrary autoloader method
*
* @param string $className Class name that should be loaded
*
* @return void
*/
function juLibrariesAutoload_v1_0_4($className)
{
$className = ltrim($className, '\\');
//Return if it's not a Joomunited's class
if (strpos($className, 'Joomunited') !== 0) {
return;
}
//Change Joomunited to the mu-plugin junited-libraries directory
$fileName = '';
$lastNsPos = strripos($className, '\\');
if ($lastNsPos) {
$namespace = substr($className, 0, $lastNsPos);
$className = substr($className, $lastNsPos + 1);
$fileName = str_replace('\\', DIRECTORY_SEPARATOR, $namespace) . DIRECTORY_SEPARATOR;
}
$fileName = 'ju-libraries' . substr($fileName, 10);
$fileName .= str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
if (file_exists(dirname(__FILE__) . DIRECTORY_SEPARATOR . $fileName)) {
require dirname(__FILE__) . DIRECTORY_SEPARATOR . $fileName;
}
}
spl_autoload_register('juLibrariesAutoload_v1_0_4');
define('JU_LIBRARY_V1_0_4', true);
}

View File

@@ -0,0 +1,288 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Application
*/
class Application
{
/**
* Type of application, could be site or admin
*
* @var string
*/
protected $type = 'site';
/**
* Default controller task
*
* @var string
*/
protected $default_task = 'display';
/**
* Generated instances of application
*
* @var array
*/
protected static $instances = array();
/**
* Database object
*
* @var object
*/
protected $dbo;
/**
* Application instance name
* Generally the slug of the plugin using the framework
*
* @var string
*/
protected $name = '';
/**
* Path of the plugin using the framework
*
* @var string
*/
protected $path = '';
/**
* Plugin url
*
* @var string
*/
protected $url = '';
/**
* Is the application already initialized
*
* @var boolean
*/
protected $isinit = false;
/**
* Which last plugin did use the framework
*
* @var string
*/
protected static $lastUse = '';
/**
* Retrieve the application instance
*
* @param string $name Slug of plugin which requires the instance
* @param string $path Path of the plugin
* @param string $type Admin or Site application
*
* @return mixed
*/
public static function getInstance($name = null, $path = __FILE__, $type = null)
{
if ($name === null) {
$name = self::$lastUse;
}
if (!array_key_exists($name, self::$instances)) {
self::$instances[$name] = new Application();
self::$instances[$name]->name = $name;
self::$instances[$name]->path = plugin_dir_path($path);
self::$instances[$name]->url = plugins_url('', $path);
if ($type !== null) {
self::$instances[$name]->type = $type;
} elseif (is_admin()) {
if (defined('DOING_AJAX')) {
if (Utilities::getInput('juwpfisadmin', 'GET', 'string')) {
self::$instances[$name]->type = 'site';
} else {
self::$instances[$name]->type = 'admin';
}
} else {
self::$instances[$name]->type = 'admin';
}
} else {
self::$instances[$name]->type = 'site';
}
}
self::$lastUse = $name;
return self::$instances[$name];
}
/**
* Initialize the application
*
* @return void
*/
public function init()
{
if ($this->isinit === true) {
return;
}
//call app init file
$file = $this->getPath() . DIRECTORY_SEPARATOR . $this->getType() . DIRECTORY_SEPARATOR . 'init.php';
if (file_exists($file)) {
include($file);
}
//call filters
$file = $this->getPath() . DIRECTORY_SEPARATOR . $this->getType() . DIRECTORY_SEPARATOR . 'filters.php';
if (file_exists($file)) {
include($file);
$class = $this->getName() . 'Filter';
if (method_exists($class, 'load')) {
$filter = new $class();
$filter->load();
}
}
$this->isinit = true;
}
/**
* Get the name of the plugin using the application
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Get path of the plugin using the application
*
* @param boolean $rel Retrieve relative path or full path
*
* @return string
*/
public function getPath($rel = false)
{
if ($rel) {
return str_replace(WP_PLUGIN_DIR . DIRECTORY_SEPARATOR, '', $this->path . 'app');
} else {
return $this->path . DIRECTORY_SEPARATOR . 'app';
}
}
/**
* Execute a task
*
* @param null $default_task Default task
*
* @return void
*/
public function execute($default_task = null)
{
$task = Utilities::getInput('task');
if (empty($task) && $default_task !== null) {
$task = $default_task;
} else {
$task = strtolower($task);
}
$task = strtolower($task);
$split = explode('.', $task);
$controllerName = $split[0];
$taskName = count($split) > 1 ? $split[1] : '';
$fileController = Factory::getApplication()->getPath() . DIRECTORY_SEPARATOR . $this->type . DIRECTORY_SEPARATOR . 'controllers' . DIRECTORY_SEPARATOR . $controllerName . '.php';
if (!file_exists($fileController)) {
Error::raiseError('404', 'Controller not found');
}
include_once $fileController;
$controllerClass = strtolower(Factory::getApplication()->getName()) . 'Controller' . ucfirst($controllerName);
$controller = new $controllerClass();
if (method_exists($controller, $taskName)) {
$controller->$taskName();
} elseif (property_exists($controller, 'default_task') && method_exists($controller, $controller->default_task)) {
$defaultTask = $controller->default_task;
$controller->$defaultTask();
} else {
Error::raiseError('404', 'Task not found');
}
}
/**
* Is the application an admin one
*
* @return boolean
*/
public function isAdmin()
{
return $this->type === 'admin';
}
/**
* Is the application a site one
*
* @return boolean
*/
public function isSite()
{
return $this->type === 'site';
}
/**
* Get type of application
*
* @return string
*/
public function getType()
{
return $this->type;
}
/**
* Is this an ajax query
*
* @return boolean
*/
public function isAjax()
{
if (DOING_AJAX === true) {
return true;
}
return false;
}
/**
* Get the ajax url
*
* @return mixed
*/
public function getAjaxUrl()
{
if ($this->isAdmin()) {
return admin_url('admin-ajax.php?action=' . $this->getName() . '&');
} else {
return admin_url('admin-ajax.php?juwpfisadmin=false&action=' . $this->getName() . '&');
}
}
/**
* Get the base url for the plugin
*
* @return mixed
*/
public function getBaseUrl()
{
return $this->url;
}
}

View File

@@ -0,0 +1,123 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Controller
*/
class Controller
{
/**
* Default controller task
*
* @var string
*/
public $default_task = 'display';
/**
* Render a view
*
* @return void
*/
public function display()
{
$view = $this->loadView();
$view->render();
}
/**
* Load view content
*
* @return mixed
*/
protected function loadView()
{
$viewname = Utilities::getInput('view');
if (empty($viewname)) {
$viewname = get_class($this);
$viewname = strtolower(str_replace(Factory::getApplication()->getName() . 'Controller', '', $viewname));
}
$viewname = preg_replace('/[^A-Z0-9_-]/i', '', $viewname);
$filepath = Factory::getApplication()->getPath() . DIRECTORY_SEPARATOR . Factory::getApplication()->getType() . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . $viewname . DIRECTORY_SEPARATOR;
if (file_exists($filepath . 'view.php')) {
require_once $filepath . 'view.php';
} else {
Error::raiseError('404', 'View file not found');
}
$class = Factory::getApplication()->getname() . 'View' . ucfirst($viewname);
$view = new $class();
$view->setPath($filepath);
return $view;
}
/**
* Get the model
*
* @param string $modelname Model name
*
* @return boolean
*/
public function getModel($modelname = null)
{
if (empty($modelname)) {
$modelname = get_class($this);
$modelname = str_replace(Factory::getApplication()->getName() . 'Controller', '', $modelname);
}
$modelname = preg_replace('/[^A-Z0-9_-]/i', '', $modelname);
$filepath = Factory::getApplication()->getPath() . DIRECTORY_SEPARATOR . Factory::getApplication()->getType() . DIRECTORY_SEPARATOR . 'models' . DIRECTORY_SEPARATOR . strtolower($modelname) . '.php';
if (!file_exists($filepath)) {
return false;
}
include_once $filepath;
$class = Factory::getApplication()->getName() . 'Model' . $modelname;
$model = new $class();
return $model;
}
/**
* Redirect to an url
*
* @param string $location Location to redirect to
*
* @return void
*/
public function redirect($location)
{
if (!headers_sent()) {
wp_safe_redirect($location, 303);
} else {
echo '<script>document.location.href="' . esc_url($location, null, '') . '";</script>\n';
}
exit;
}
/**
* Exit a request serving a json result
*
* @param string $status Exit status
* @param array $datas Echoed datas
*
* @since 1.0.3
*
* @return void
*/
protected function exitStatus($status = '', $datas = array())
{
$response = array('response' => $status, 'datas' => $datas);
echo json_encode($response);
die();
}
}

View File

@@ -0,0 +1,39 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Document
*/
class Document
{
/**
* Document class instance
*
* @var Document
*/
protected static $instance;
/**
* Get Document instance
*
* @return Document
*/
public static function getInstance()
{
if (!self::$instance) {
self::$instance = new Document();
}
return self::$instance;
}
}

View File

@@ -0,0 +1,33 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Error
*/
class Error
{
/**
* Raise an error
*
* @param string $type Error code
* @param string $message Error message
* @param string $title Error title
*
* @return void
*/
public static function raiseError($type = '404', $message = 'An error occurs', $title = 'Error')
{
wp_die(esc_html($message), esc_html($title), array('response' => esc_html($type)));
}
}

View File

@@ -0,0 +1,43 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Factory
*/
class Factory
{
/**
* Application reference
*
* @var Application
*/
protected static $application;
/**
* Document reference
*
* @var Document
*/
protected static $document;
/**
* Get application instance
*
* @return Application
*/
public static function getApplication()
{
return Application::getInstance();
}
}

View File

@@ -0,0 +1,115 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Field
*
* phpcs:disable WordPress.CSRF.NonceVerification -- Nonce verification is made in the Form::validate method
*/
class Field
{
/**
* Render <input> tag
*
* @param array $field Field to render
*
* @return string
*/
public function getfield($field)
{
$attributes = $field['@attributes'];
$html = '';
if (!empty($attributes['type']) || (!empty($attributes['hidden']) && $attributes['hidden'] !== 'true')) {
$html .= '<div class="control-group">';
if (!empty($attributes['label']) && $attributes['label'] !== '' && !empty($attributes['name']) && $attributes['name'] !== '') {
// phpcs:ignore WordPress.WP.I18n -- Allow non literal arg
$html .= '<label class="control-label" for="' . $attributes['name'] . '">' . __($attributes['label'], Factory::getApplication()->getName()) . '</label>';
}
$html .= '<div class="controls">';
}
if (empty($attributes['hidden']) || (!empty($attributes['hidden']) && $attributes['hidden'] !== 'true')) {
$html .= '<input';
} else {
$html .= '<hidden';
}
if (!empty($attributes)) {
foreach ($attributes as $attribute => $value) {
if (in_array($attribute, array('type', 'id', 'class', 'placeholder', 'name', 'value')) && isset($value)) {
$html .= ' ' . $attribute . '="' . $value . '"';
}
}
}
$html .= ' />';
if (!empty($attributes['help']) && $attributes['help'] !== '') {
$html .= '<p class="help-block">' . $attributes['help'] . '</p>';
}
if (!empty($attributes['type']) || (!empty($attributes['hidden']) && $attributes['hidden'] !== 'true')) {
$html .= '</div></div>';
}
return $html;
}
/**
* Validate a field content
*
* @param array $field Field content
*
* @return boolean|false|integer
*/
public function validate($field)
{
if (!empty($field['name'])) {
if (isset($_POST[$field['name']])) {
$value = $_POST[$field['name']];
} elseif (isset($_GET[$field['name']])) {
$value = $_GET[$field['name']];
}
}
if (!empty($field['required']) && $field['required'] === 'true') {
if (trim($value) === '') {
return false;
}
}
if (!isset($this->validate)) {
return true;
}
if (empty($value) && isset($field['required']) && $field['required'] === 'true') {
return false;
}
return preg_match($this->validate, $value);
}
/**
* Sanitize a field content
*
* @param array $field Field content
*
* @return mixed
*/
public function sanitize($field)
{
$value = null;
if (isset($_POST[$field['name']])) {
$value = $_POST[$field['name']];
} elseif (isset($_GET[$field['name']])) {
$value = $_GET[$field['name']];
}
return filter_var($value, FILTER_SANITIZE_STRING);
}
}

View File

@@ -0,0 +1,51 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
use Joomunited\WPFramework\v1_0_4\Factory;
defined('ABSPATH') || die();
/**
* Class Button
*/
class Button extends Field
{
/**
* Get the field
*
* @param array $field Field attributes
*
* @return string
*/
public function getfield($field)
{
$attributes = $field['@attributes'];
$html = '<div class="control-group">';
$html .= '<button';
$content = '';
if (!empty($attributes)) {
foreach ($attributes as $attribute => $value) {
if (in_array($attribute, array('id', 'class', 'name', 'value', 'type')) && !empty($value)) {
if ($attribute === 'value') {
$content = __($value, Factory::getApplication()->getName());
continue;
}
$html .= ' ' . $attribute . '="' . $value . '"';
}
}
}
$html .= '>' . $content . '</button>';
$html .= '</div>';
return $html;
}
}

View File

@@ -0,0 +1,70 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
use \Joomunited\WPFramework\v1_0_4\Application;
defined('ABSPATH') || die();
/**
* Class Checkbox
*/
class Checkbox extends Field
{
/**
* Get the field
*
* @param array $field Field attributes
*
* @return string
*/
public function getfield($field)
{
$attributes = $field['@attributes'];
$html = '';
if ($attributes['hidden'] !== 'true') {
$html .= '<div class="control-group">';
if (!empty($attributes['label']) && $attributes['label'] !== '' && !empty($attributes['name']) && $attributes['name'] !== '') {
$html .= '<label class="control-label" for="' . esc_attr($attributes['name']) . '">' . __($attributes['label'], Factory::getApplication()->getName()) . '</label>';
}
$html .= '<div class="controls">';
}
$cleanfield = $field;
unset($cleanfield['@attributes']);
if (!empty($cleanfield[0])) {
foreach ($cleanfield[0] as $child) {
if (!empty($child['option']['@attributes'])) {
$html .= '<input type="checkbox" ';
foreach ($child['option']['@attributes'] as $childAttribute => $childValue) {
if (in_array($childAttribute, array('id', 'class', 'name', 'onchange', 'value')) && isset($childValue)) {
$html .= ' ' . $childAttribute . '="' . $childValue . '"';
if ($childAttribute === 'value' && isset($attributes['value']) && $attributes['value'] === $childValue) {
$html .= ' selected="selected"';
}
}
}
$html .= '>';
$html .= __($child['option'][0], strtolower(Application::getInstance()->getName()));
$html .= '<br/>';
}
}
}
$html .= '</select>';
if (!empty($attributes['help']) && $attributes['help'] !== '') {
$html .= '<p class="help-block">' . $attributes['help'] . '</p>';
}
if (!empty($attributes['type']) && $attributes['hidden'] !== 'true') {
$html .= '</div></div>';
}
return $html;
}
}

View File

@@ -0,0 +1,33 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
defined('ABSPATH') || die();
/**
* Class Input
*/
class Input extends Field
{
/**
* Sanitize input value
*
* @param mixed $value Value to sanitize
*
* @return mixed
*/
public function sanitize($value)
{
return filter_var($value, FILTER_SANITIZE_STRING);
}
}

View File

@@ -0,0 +1,82 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
use Joomunited\WPFramework\v1_0_4\Factory;
use Joomunited\WPFramework\v1_0_4\Application;
defined('ABSPATH') || die();
/**
* Class Select
*/
class Select extends Field
{
/**
* Get the field
*
* @param array $field Field attributes
*
* @return string
*/
public function getfield($field)
{
$attributes = $field['@attributes'];
$html = '';
if (empty($attributes['hidden']) || (!empty($attributes['hidden']) && $attributes['hidden'] !== 'true')) {
$html .= '<div class="control-group">';
if (!empty($attributes['label']) && $attributes['label'] !== '' && !empty($attributes['name']) && $attributes['name'] !== '') {
$html .= '<label class="control-label" for="' . esc_attr($attributes['name']) . '">' . __($attributes['label'], Factory::getApplication()->getName()) . '</label>';
}
$html .= '<div class="controls">';
}
$html .= '<select';
if (!empty($attributes)) {
foreach ($attributes as $attribute => $value) {
if (in_array($attribute, array('id', 'class', 'onchange', 'name')) && isset($value)) {
$html .= ' ' . $attribute . '="' . $value . '"';
}
}
}
$html .= ' >';
$cleanfield = $field;
unset($cleanfield['@attributes']);
if (!empty($cleanfield[0])) {
foreach ($cleanfield[0] as $child) {
if (!empty($child['option']['@attributes'])) {
$html .= '<option ';
foreach ($child['option']['@attributes'] as $childAttribute => $childValue) {
if (in_array($childAttribute, array('type', 'id', 'class', 'name', 'onchange', 'value')) && isset($childValue)) {
$html .= ' ' . $childAttribute . '="' . $childValue . '"';
if ($childAttribute === 'value' && isset($attributes['value']) && $attributes['value'] === $childValue) {
$html .= ' selected="selected"';
}
}
}
$html .= '>';
$html .= __($child['option'][0], strtolower(Application::getInstance()->getName()));
$html .= '</option>';
}
}
}
$html .= '</select>';
if (!empty($attributes['help']) && $attributes['help'] !== '') {
$html .= '<p class="help-block">' . $attributes['help'] . '</p>';
}
if (!empty($attributes['type']) || (!empty($attributes['hidden']) && $attributes['hidden'] !== 'true')) {
$html .= '</div></div>';
}
return $html;
}
}

View File

@@ -0,0 +1,21 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
defined('ABSPATH') || die();
/**
* Class Submit
*/
class Submit extends Button
{
}

View File

@@ -0,0 +1,21 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
defined('ABSPATH') || die();
/**
* Class Text
*/
class Text extends Field
{
}

View File

@@ -0,0 +1,63 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
use Joomunited\WPFramework\v1_0_4\Factory;
defined('ABSPATH') || die();
/**
* Class Textarea
*/
class Textarea extends Field
{
/**
* Get the field
*
* @param array $field Field attributes
*
* @return string
*/
public function getfield($field)
{
$attributes = $field['@attributes'];
$html = '';
if (!empty($attributes['type']) || (!empty($attributes['hidden']) && $attributes['hidden'] !== 'true')) {
$html .= '<div class="control-group">';
if (!empty($attributes['label']) && $attributes['label'] !== '' && !empty($attributes['name']) && $attributes['name'] !== '') {
$html .= '<label class="control-label" for="' . esc_attr($attributes['name']) . '">' . __($attributes['label'], Factory::getApplication()->getName()) . '</label>';
}
$html .= '<div class="controls">';
}
$html .= '<textarea ';
if (!empty($attributes)) {
foreach ($attributes as $attribute => $value) {
if (in_array($attribute, array('id', 'class', 'placeholder', 'name', 'rows', 'cols')) && isset($value)) {
$html .= ' ' . $attribute . '="' . $value . '"';
}
}
}
$html .= ' >';
if (!empty($attributes['value'])) {
$html .= $attributes['value'];
}
$html .= ' </textarea>';
if (!empty($attributes['help']) && $attributes['help'] !== '') {
$html .= '<p class="help-block">' . $attributes['help'] . '</p>';
}
if (!empty($attributes['type']) || (!empty($attributes['hidden']) && $attributes['hidden'] !== 'true')) {
$html .= '</div></div>';
}
return $html;
}
}

View File

@@ -0,0 +1,62 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4\Fields;
use Joomunited\WPFramework\v1_0_4\Field;
defined('ABSPATH') || die();
/**
* Class Typeint
* phpcs:disable WordPress.CSRF.NonceVerification -- Nonce verification is made in the Form::validate method
*/
class Typeint extends Field
{
/**
* Validation regex
*
* @var string
*/
protected $validate = '/[0-9]+/';
/**
* Get the field
*
* @param array $field Field attributes
*
* @return string
*/
public function getfield($field)
{
$attributes = &$field['@attributes'];
$attributes['value'] = (int)$attributes['value'];
$attributes['type'] = 'text';
return parent::getfield($field);
}
/**
* Sanitize a value
*
* @param array $field Field attributes to sanitize
*
* @return integer
*/
public function sanitize($field)
{
$value = null;
if (!empty($_POST[$field['name']])) {
$value = $_POST[$field['name']];
} elseif (!empty($_GET[$field['name']])) {
$value = $_GET[$field['name']];
}
return (int)$value;
}
}

View File

@@ -0,0 +1,46 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Filesystem
*/
class Filesystem
{
/**
* Remove recursively a directory
*
* @param string $directory Directory path to remove
*
* @return void
*/
public static function rmdir($directory)
{
foreach (glob('$directory/{,.}*', GLOB_BRACE) as $file) {
$filename = explode('/', $file);
$filename = $filename[count($filename) - 1];
if ($filename !== '.' && $filename !== '..') {
if (is_dir($file)) {
self::rmdir($file);
} else {
if (file_exists($file)) {
unlink($file);
}
}
}
}
if (file_exists($directory)) {
rmdir($directory);
}
}
}

View File

@@ -0,0 +1,39 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Filter
*/
class Filter
{
/**
* Get a model
*
* @param string $modelname Model name
*
* @return boolean
*/
public function getModel($modelname)
{
$modelname = preg_replace('/[^A-Z0-9_-]/i', '', $modelname);
$filepath = Factory::getApplication()->getPath() . DIRECTORY_SEPARATOR . Factory::getApplication()->getType() . DIRECTORY_SEPARATOR . 'models' . DIRECTORY_SEPARATOR . strtolower($modelname) . '.php';
if (!file_exists($filepath)) {
return false;
}
include_once $filepath;
$class = Factory::getApplication()->getName() . 'Model' . $modelname;
$model = new $class();
return $model;
}
}

View File

@@ -0,0 +1,345 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
use Joomunited\WPFramework\v1_0_4\Fields;
defined('ABSPATH') || die();
/**
* HTML5 Form class with support of xml form config files
*/
class Form
{
/**
* Form attributes
*
* @var array
*/
public $form;
/**
* Final form generated content
*
* @var string
*/
private $content = '';
/**
* Form datas
*
* @var array|null
*/
private $datas = null;
/**
* List of errors
*
* @var array
*/
private $errors = array();
/**
* Nonce action
*
* @var string
*/
private $nonce_action = 'joomunited_save_form';
/**
* Nonce name
*
* @var string
*/
private $nonce_name = 'joomunited_nonce_field';
/**
* Load an xml form file
*
* @param string $form Xml file to load without path and extension
* @param array $datas Datas to pass to the forms
*
* @return boolean
*/
public function load($form, $datas = null)
{
$this->datas = $datas;
if (file_exists($form)) {
$file = $form;
} else {
$form = preg_replace('/[^A-Z0-9_-]/i', '', $form);
$file = Factory::getApplication()->getPath() . DIRECTORY_SEPARATOR . Factory::getApplication()->getType() . DIRECTORY_SEPARATOR . 'forms' . DIRECTORY_SEPARATOR . $form . '.xml';
}
if (!file_exists($file)) {
return false;
}
$xml_content = file_get_contents($file);
$sxi = new \SimpleXmlIterator($xml_content);
$this->form = self::loadChildrenRecusirve($sxi);
return true;
}
/**
* Load an xml object and convert it to recursive array
*
* @param \SimpleXMLIterator $sxi Iterator
* @param boolean $recursloop Recur
*
* @return mixed
*/
protected function loadChildrenRecusirve($sxi, $recursloop = false)
{
$a = array();
if ($recursloop === false) {
$a = (array)$sxi->attributes();
}
// phpcs:ignore Generic.CodeAnalysis.ForLoopWithTestFunctionCall -- Keep this for readability
for ($sxi->rewind(); $sxi->valid(); $sxi->next()) {
$acnt = (array)$sxi->current()->attributes();
if ($sxi->hasChildren()) {
$acnt[] = self::loadChildrenRecusirve($sxi->current(), true);
} else {
$val = strval($sxi->current());
if ($val) {
$acnt[] = strval($sxi->current());
}
}
$a[][$sxi->key()] = $acnt;
}
return $a;
}
/**
* Render a form to html
*
* @return string
*/
public function render()
{
$this->content = $this->start($this->form['@attributes']);
$this->content .= wp_nonce_field($this->nonce_action, $this->nonce_name, true, false);
$this->content .= $this->contentRender($this->form);
$this->content .= $this->close();
return $this->content;
}
/**
* Render the content of the form whitout the forms tags
*
* @param array $fields An array with the form fields
*
* @return string
*/
private function contentRender($fields)
{
$content = '';
foreach ($fields as $key => $value) {
if ($key !== '@attributes') {
$field = array_keys($value);
if ($field[0] === 'fieldset') {
$content .= $this->fieldset($value);
} else {
$content .= $this->input($value);
}
}
}
return $content;
}
/**
* Render an input type
*
* @param array $input Input array with the input to render
*
* @return string
*/
public function input($input)
{
$field = array_keys($input);
if (!empty($input[${'field'}[0]]['@attributes']['type'])) {
$class = ucfirst($input[${'field'}[0]]['@attributes']['type']);
} else {
$class = ucfirst($field[0]);
}
if (isset($this->datas) && !empty($input[${'field'}[0]]['@attributes']['name']) && isset($this->datas[$input[${'field'}[0]]['@attributes']['name']])) {
$input[${'field'}[0]]['@attributes']['value'] = $this->datas[$input[${'field'}[0]]['@attributes']['name']];
}
if (!empty($input[${'field'}[0]]['@attributes']['namespace'])) {
$class = $input[${'field'}[0]]['@attributes']['namespace'] . $class;
} else {
$class = '\Joomunited\WPFramework\v1_0_4\Fields\\' . $class;
}
if (class_exists($class, true)) {
$c = new $class;
return $c->getfield($input[$field[0]]);
}
return '';
}
/**
* Render a fieldset
*
* @param array $input Array with the input to render
*
* @return string
*/
public function fieldset($input)
{
$content = self::contentRender($input['fieldset']);
return $this->fieldsetField($input['fieldset']['@attributes'], $content);
}
/**
* Render <form> opening tag
* Attributes are action method id class enctype
*
* @param array $attributes List of form attributes
*
* @return string
*/
private function start(array $attributes = array())
{
$html = '<form';
if (!empty($attributes)) {
foreach ($attributes as $attribute => $value) {
if (in_array($attribute, array('action', 'method', 'id', 'class', 'enctype')) && !empty($value)) {
// assign default value to 'method' attribute
if ($attribute === 'method' && ($value !== 'post' || $value !== 'get')) {
$value = 'post';
}
$html .= ' ' . $attribute . '="' . $value . '"';
}
}
}
return $html . '>';
}
/**
* Render a fieldset field
*
* @param array $attributes The attributes of the fieldset
* @param string $contentbase The content of the fieldset
*
* @return string
*/
public static function fieldsetField(array $attributes, $contentbase)
{
$html = '<fieldset';
$content = '';
if (!empty($attributes)) {
foreach ($attributes as $attribute => $value) {
if (in_array($attribute, array('id', 'class', 'name', 'legend')) && !empty($value)) {
if ($attribute === 'legend') {
$content = '<legend>' . $value . '</legend>';
continue;
}
$html .= ' ' . $attribute . '="' . $value . '"';
}
}
}
return $html . '>' . $content . $contentbase . '</fieldset>';
}
/**
* Render </form> closing tag
*
* @return string
*/
public static function close()
{
return '</form>';
}
/**
* Validate form datas
*
* @return boolean
*/
public function validate()
{
if (empty($_REQUEST[$this->nonce_name]) || !wp_verify_nonce($_REQUEST[$this->nonce_name], $this->nonce_action)) {
return false;
}
foreach ($this->form as $key => $value) {
if ($key !== '@attributes') {
$field = array_keys($value);
if ($field !== 'fieldset') {
$field = array_keys($value);
if (!empty($value[${'field'}[0]]['@attributes']['type'])) {
$class = ucfirst($value[${'field'}[0]]['@attributes']['type']);
} else {
$class = ucfirst('Field' . $field[0]);
}
if (!empty($value[${'field'}[0]]['@attributes']['namespace'])) {
$class = $value[${'field'}[0]]['@attributes']['namespace'] . $class;
} else {
$class = '\Joomunited\WPFramework\v1_0_4\Fields\\' . $class;
}
if (class_exists($class)) {
$c = new $class;
if ($c->validate($value[$field[0]]['@attributes']) === false) {
$this->errors[] = $value[$field[0]]['@attributes']['name'];
}
}
}
}
}
if (!empty($this->errors)) {
return false;
}
return true;
}
/**
* Sanitize form datas
*
* @return array
*/
public function sanitize()
{
foreach ($this->form as $key => $value) {
if ($key !== '@attributes') {
$field = array_keys($value);
if (!empty($value[${'field'}[0]]['@attributes']['name'])) {
$field = array_keys($value);
if (!empty($value[${'field'}[0]]['@attributes']['type'])) {
$class = ucfirst($value[${'field'}[0]]['@attributes']['type']);
} else {
$class = ucfirst('Field' . $field[0]);
}
if (!empty($value[${'field'}[0]]['@attributes']['namespace'])) {
$class = $value[${'field'}[0]]['@attributes']['namespace'] . $class;
} else {
$class = '\Joomunited\WPFramework\v1_0_4\Fields\\' . $class;
}
if (class_exists($class)) {
$c = new $class;
$this->datas[$value[$field[0]]['@attributes']['name']] = $c->sanitize($value[$field[0]]['@attributes']);
}
}
}
}
return $this->datas;
}
}

View File

@@ -0,0 +1,20 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Installer
*/
class Installer
{
}

View File

@@ -0,0 +1,92 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Model
*/
class Model
{
/**
* Database reference
*
* @var \wpdb
*/
protected $db;
/**
* Model constructor.
*/
public function __construct()
{
global $wpdb;
$this->db = &$wpdb;
}
/**
* Get class instance
*
* @param string $name Name of the model
* @param null $type Site or admin model
*
* @return boolean
*/
public static function getInstance($name = '', $type = null)
{
$app = Application::getInstance();
$name = preg_replace('/[^A-Z0-9_\.-]/i', '', $name);
if ($type === null) {
$type = $app->getType();
} elseif ($type !== 'admin' || $type !== 'site') {
return false;
}
$className = $app->getName() . 'Model' . ucfirst(strtolower($name));
$classFile = $app->getPath() . DIRECTORY_SEPARATOR . $type . DIRECTORY_SEPARATOR . 'models' . DIRECTORY_SEPARATOR . strtolower($name) . '.php';
if (!file_exists($classFile)) {
return false;
}
require_once $classFile;
if (class_exists($className)) {
return new $className();
}
return false;
}
/**
* Get database prefix
*
* @return string
*/
public function getPrefix()
{
return $this->db->prefix;
}
/**
* Update a row in table
*
* @param string $table Table name
* @param array $data Datas to update
* @param array $where Where clause
* @param array|string $format An array of formats to be mapped to each of the values in $data.
* @param array|string $where_format An array of formats to be mapped to each of the values in $where.
*
* @return false|integer
*/
public function update($table, $data, $where, $format = null, $where_format = null)
{
return $this->db->update($table, $data, $where, $format, $where_format);
}
}

View File

@@ -0,0 +1,138 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class Utilities
*
* phpcs:disable WordPress.CSRF.NonceVerification -- Nonce verification is made in the Form::validate method
*/
class Utilities
{
/**
* Get a http variable
*
* @param string $name Name of the variable
* @param string $type Request type
* @param string $filter Type of filter to apply on the request
*
* @return null
*/
public static function getInput($name, $type = 'GET', $filter = 'cmd')
{
$input = null;
switch (strtoupper($type)) {
case 'GET':
if (isset($_GET[$name])) {
$input = $_GET[$name];
}
break;
case 'POST':
if (isset($_POST[$name])) {
$input = $_POST[$name];
}
break;
case 'FILES':
if (isset($_FILES[$name])) {
$input = $_FILES[$name];
}
break;
case 'COOKIE':
if (isset($_COOKIE[$name])) {
$input = $_COOKIE[$name];
}
break;
case 'ENV':
if (isset($_ENV[$name])) {
$input = $_ENV[$name];
}
break;
case 'SERVER':
if (isset($_SERVER[$name])) {
$input = $_SERVER[$name];
}
break;
default:
break;
}
switch (strtolower($filter)) {
case 'cmd':
$input = preg_replace('/[^a-z\.]+/', '', strtolower($input));
break;
case 'int':
$input = intval($input);
break;
case 'bool':
$input = $input ? 1 : 0;
break;
case 'string':
$input = sanitize_text_field($input);
break;
case 'none':
break;
default:
$input = null;
break;
}
return $input;
}
/**
* Get int from request variables
*
* @param string $name Request variable name
* @param string $type Request type
*
* @return null
*/
public static function getInt($name, $type = 'GET')
{
return self::getInput($name, $type, 'int');
}
/**
* Set an http variable
*
* @param string $name Request variable name
* @param string $value Request variable value
* @param string $type Request type
*
* @return void
*/
public static function setInput($name, $value, $type = 'GET')
{
switch (strtoupper($type)) {
case 'GET':
$_GET[$name] = $value;
break;
case 'POST':
$_POST[$name] = $value;
break;
case 'FILES':
$_FILES[$name] = $value;
break;
case 'COOKIE':
$_COOKIE[$name] = $value;
break;
case 'ENV':
$_ENV[$name] = $value;
break;
case 'SERVER':
$_SERVER[$name] = $value;
break;
default:
break;
}
}
}

View File

@@ -0,0 +1,115 @@
<?php
/**
* WP Framework
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
namespace Joomunited\WPFramework\v1_0_4;
defined('ABSPATH') || die();
/**
* Class View
*/
class View
{
/**
* Default view template
*
* @var string
*/
public $default_tpl = 'default';
/**
* View path
*
* @var string
*/
protected $path;
/**
* Render a view
*
* @param string $tpl Template to render
*
* @return void
*/
public function render($tpl = null)
{
$result = $this->loadTemplate($tpl);
// phpcs:ignore WordPress.XSS.EscapeOutput -- Escaping should be done in the template itself
echo $result;
$pluginName = Application::getInstance()->getName();
if (defined(strtoupper($pluginName) . '_AJAX')) {
die();
}
}
/**
* Load a template file
*
* @param null $tpl Template file
*
* @return string
*/
public function loadTemplate($tpl = null)
{
$tpl = isset($tpl) ? $tpl : $this->default_tpl;
$file = preg_replace('/[^A-Z0-9_\.-]/i', '', $tpl);
$file = $this->path . 'tpl' . DIRECTORY_SEPARATOR . $file . '.php';
if (file_exists($file)) {
ob_start();
include $file;
$output = ob_get_contents();
ob_end_clean();
return $output;
}
return '';
}
/**
* Set path
*
* @param string $path Path
*
* @return void
*/
public function setPath($path)
{
$this->path = $path;
}
/**
* Retrieve model associated to the view
*
* @param string $modelname Model name
*
* @return Model|false
*/
public function getModel($modelname = null)
{
if (empty($modelname)) {
$modelname = get_class($this);
$modelname = str_replace(Factory::getApplication()->getName() . 'View', '', $modelname);
}
$modelname = preg_replace('/[^A-Z0-9_-]/i', '', $modelname);
$filepath = Factory::getApplication()->getPath() . DIRECTORY_SEPARATOR . Factory::getApplication()->getType() . DIRECTORY_SEPARATOR . 'models' . DIRECTORY_SEPARATOR . strtolower($modelname) . '.php';
if (!file_exists($filepath)) {
return false;
}
include_once $filepath;
$class = Factory::getApplication()->getName() . 'Model' . ucfirst($modelname);
$model = new $class();
return $model;
}
}

View File

@@ -0,0 +1,232 @@
<?xml version="1.0"?>
<ruleset name="PHP_CodeSniffer">
<description>Joomunited coding standard for Wordpress plugins</description>
<file>.</file>
<arg name="basepath" value="."/>
<arg name="colors" />
<arg name="parallel" value="75" />
<arg name="extensions" value="php"/>
<!-- Define installed path of standards used -->
<config name="installed_paths" value="vendor/wimg/php-compatibility,vendor/wp-coding-standards/wpcs" />
<!-- Memory phpcs can you for this task -->
<ini name="memory_limit" value="200M"/>
<!--
#############################################################################
Exclude files we did not create
#############################################################################
-->
<exclude-pattern>vendor/*</exclude-pattern>
<!--
#############################################################################
Php compatibility check
#############################################################################
-->
<autoload>vendor/wimg/php-compatibility/PHPCSAliases.php</autoload>
<rule ref="PHPCompatibility"/>
<config name="testVersion" value="5.3-"/>
<!--
#############################################################################
Include the whole PSR2 standard
#############################################################################
-->
<rule ref="PSR2">
<!-- Excluded because of the defined('ABSPATH') check -->
<exclude name="PSR1.Files.SideEffects" />
<!-- Excluded because we don't have yet namespace in our plugins -->
<exclude name="PSR1.Classes.ClassDeclaration" />
<!-- Allow long line length -->
<exclude name="Generic.Files.LineLength" />
</rule>
<!--
#############################################################################
Our own coding style
#############################################################################
-->
<!-- Don't use double quotes -->
<rule ref="Squiz.Strings.DoubleQuoteUsage"/>
<rule ref="Squiz.Strings.DoubleQuoteUsage.ContainsVar" />
<!-- Covers rule: Braces shall be used for all blocks. -->
<rule ref="Squiz.ControlStructures.ControlSignature"/>
<!-- Covers rule: Braces should always be used, even when they are not required. -->
<rule ref="Generic.ControlStructures.InlineControlStructure"/>
<!-- Covers rule: Never use shorthand PHP start tags. Always use full PHP tags. -->
<rule ref="Generic.PHP.DisallowShortOpenTag"/>
<rule ref="Generic.PHP.DisallowAlternativePHPTags"/>
<!-- Covers rule: Remove trailing whitespace at the end of each line of code. -->
<rule ref="Squiz.WhiteSpace.SuperfluousWhitespace"/>
<!-- Covers rule: Omitting the closing PHP tag at the end of a file is preferred. -->
<rule ref="PSR2.Files.ClosingTag"/>
<!-- Rule: In general, readability is more important than cleverness or brevity.
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/607 -->
<rule ref="Squiz.PHP.DisallowMultipleAssignments"/>
<rule ref="Generic.Formatting.DisallowMultipleStatements"/>
<!-- Rule: The goto statement must never be used. -->
<!-- Duplicate of upstream. Should defer to upstream version once minimum PHPCS requirement has gone up.
https://github.com/squizlabs/PHP_CodeSniffer/pull/1664 -->
<rule ref="WordPress.PHP.DiscourageGoto"/>
<rule ref="WordPress.PHP.DiscourageGoto.Found">
<type>error</type>
<message>The "goto" language construct should not be used.</message>
</rule>
<!-- Rule: The eval() construct is very dangerous, and is impossible to secure. ... these must not be used. -->
<rule ref="Squiz.PHP.Eval"/>
<rule ref="Squiz.PHP.Eval.Discouraged">
<type>error</type>
<message>eval() is a security risk so not allowed.</message>
</rule>
<!-- Don't use extract for readability and security -->
<rule ref="WordPress.Functions.DontExtract"/>
<!-- Do not use @ for silent errors -->
<rule ref="Generic.PHP.NoSilencedErrors"/>
<!-- Some general php rules -->
<rule ref="Generic.PHP.DeprecatedFunctions"/>
<rule ref="Generic.PHP.ForbiddenFunctions"/>
<rule ref="Generic.Functions.CallTimePassByReference"/>
<rule ref="Generic.CodeAnalysis.EmptyStatement"/>
<rule ref="Generic.CodeAnalysis.ForLoopShouldBeWhileLoop"/>
<rule ref="Generic.CodeAnalysis.ForLoopWithTestFunctionCall"/>
<rule ref="Generic.CodeAnalysis.JumbledIncrementer"/>
<rule ref="Generic.CodeAnalysis.UnconditionalIfStatement"/>
<rule ref="Generic.CodeAnalysis.UnnecessaryFinalModifier"/>
<rule ref="Generic.CodeAnalysis.UselessOverridingMethod"/>
<rule ref="Generic.Classes.DuplicateClassName"/>
<rule ref="Generic.Strings.UnnecessaryStringConcat">
<properties>
<property name="allowMultiline" value="true"/>
</properties>
</rule>
<!-- More generic PHP best practices.
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/607 -->
<rule ref="Squiz.PHP.NonExecutableCode"/>
<rule ref="Squiz.Operators.IncrementDecrementUsage"/>
<rule ref="Squiz.Operators.ValidLogicalOperators"/>
<rule ref="Squiz.Functions.FunctionDuplicateArgument"/>
<!-- Encourage having only one class/interface/trait per file. -->
<!-- Once the minimum WPCS PHPCS requirement has gone up to PHPCS 3.1.0, these three sniffs can be
replaced by the more comprehensive Generic.Files.OneObjectStructurePerFile sniff. -->
<rule ref="Generic.Files.OneClassPerFile"/>
<rule ref="Generic.Files.OneClassPerFile.MultipleFound">
<type>warning</type>
<message>Best practice suggestion: Declare only one class in a file.</message>
</rule>
<rule ref="Generic.Files.OneInterfacePerFile"/>
<rule ref="Generic.Files.OneInterfacePerFile.MultipleFound">
<type>warning</type>
<message>Best practice suggestion: Declare only one interface in a file.</message>
</rule>
<rule ref="Generic.Files.OneTraitPerFile"/>
<rule ref="Generic.Files.OneTraitPerFile.MultipleFound">
<type>warning</type>
<message>Best practice suggestion: Declare only one trait in a file.</message>
</rule>
<!-- Warn against using fully-qualified class names instead of the self keyword. -->
<rule ref="Squiz.Classes.SelfMemberReference.NotUsed">
<!-- Restore default severity of 5 which WordPress-Core sets to 0. -->
<severity>5</severity>
</rule>
<!-- Check for PHP Parse errors.
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/522 -->
<rule ref="Generic.PHP.Syntax"/>
<!-- Phpdoc code commenting -->
<rule ref="Generic.Commenting.DocComment" />
<rule ref="Squiz.Commenting.FunctionComment">
<exclude name="Squiz.Commenting.FunctionComment.ParamCommentFullStop" />
<exclude name="Squiz.Commenting.FunctionComment.ThrowsNoFullStop" />
<exclude name="Squiz.Commenting.FunctionComment.ScalarTypeHintMissing" />
<exclude name="Squiz.Commenting.FunctionComment.TypeHintMissing" />
</rule>
<rule ref="Squiz.Commenting.ClassComment" />
<rule ref="Squiz.Commenting.VariableComment" />
<!--
#############################################################################
WordPress rules
#############################################################################
-->
<autoload>vendor/wp-coding-standards/wpcs/WordPress/PHPCSAliases.php</autoload>
<!-- Rule: in $wpdb->prepare - only %s and %d are used as placeholders. Note that they are not "quoted"! -->
<rule ref="WordPress.DB.PreparedSQLPlaceholders"/>
<!-- Covers rule: Escaping should be done as close to the time of the query as possible,
preferably by using $wpdb->prepare() -->
<rule ref="WordPress.WP.PreparedSQL"/>
<!-- Covers rule: Avoid touching the database directly. -->
<rule ref="WordPress.DB.RestrictedFunctions"/>
<rule ref="WordPress.DB.RestrictedClasses"/>
<!-- Check for correct usage of the WP i18n functions. -->
<rule ref="WordPress.WP.I18n">
<exclude name="WordPress.WP.I18n.NonSingularStringLiteralDomain" />
<exclude name="WordPress.WP.I18n.NonSingularStringLiteralText" />
</rule>
<!-- https://vip.wordpress.com/documentation/code-review-what-we-look-for/#validation-sanitization-and-escaping -->
<rule ref="WordPress.XSS.EscapeOutput"/>
<!-- Verify that a nonce check is done before using values in superglobals.
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/73 -->
<rule ref="WordPress.CSRF.NonceVerification"/>
<!-- Encourage the use of strict ( === and !== ) comparisons.
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/242 -->
<rule ref="WordPress.PHP.StrictComparisons"/>
<!-- https://vip.wordpress.com/documentation/code-review-what-we-look-for/#commented-out-code-debug-code-or-output -->
<rule ref="WordPress.PHP.DevelopmentFunctions"/>
<rule ref="WordPress.PHP.DevelopmentFunctions.error_log">
<type>error</type>
</rule>
<!-- https://vip.wordpress.com/documentation/vip/code-review-what-we-look-for/#settings-alteration -->
<rule ref="WordPress.PHP.DevelopmentFunctions.prevent_path_disclosure">
<type>error</type>
</rule>
<!-- VIP recommends other functions -->
<rule ref="WordPress.WP.AlternativeFunctions.curl">
<message>Using cURL functions is highly discouraged within VIP context. Check (Fetching Remote Data) on VIP Documentation.</message>
</rule>
<rule ref="WordPress.WP.AlternativeFunctions.file_get_contents">
<message>%s() is highly discouraged, please use vip_safe_wp_remote_get() instead.</message>
<type>warning</type>
</rule>
<!-- Scripts & style should be enqueued.
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/35 -->
<rule ref="WordPress.WP.EnqueuedResources"/>
<!-- Warn against overriding WP global variables.
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/issues/26 -->
<rule ref="WordPress.Variables.GlobalVariables"/>
<!-- Verify that everything in the global namespace is prefixed. -->
<rule ref="WordPress.NamingConventions.PrefixAllGlobals"/>
</ruleset>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,184 @@
/**
* @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
/* The main calendar widget. DIV containing a table. */
div.calendar {
position: relative;
z-index: 10000;
width: 226px;
}
.calendar, .calendar table {
border: 1px solid #cccccc;
font-size: 11px;
color: #000;
cursor: default;
background: #efefef;
font-family: arial,verdana,sans-serif;
}
/* Header part -- contains navigation buttons and day names. */
.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
text-align: center; /* They are the navigation buttons */
padding: 2px; /* Make the buttons seem like they're pressing */
display: table-cell;
}
.calendar thead .title { /* This holds the current "month, year" */
font-weight: bold; /* Pressing it will take you to the current date */
text-align: center;
background: #333333;
color: #ffffff;
padding: 2px;
}
.calendar thead .headrow { /* Row <TR> containing navigation buttons */
background: #dedede;
color: #000;
}
.calendar thead .name { /* Cells <TD> containing the day names */
border-bottom: 1px solid #cccccc;
padding: 2px;
text-align: center;
color: #000;
}
.calendar thead .weekend { /* How a weekend day name shows in header */
color: #999;
}
.calendar thead .hilite { /* How do the buttons in header appear when hover */
background: #bbbbbb;
color: #000000;
border: 1px solid #cccccc;
padding: 1px;
}
.calendar thead .active { /* Active (pressed) buttons in header */
background: #c77;
padding: 2px 0px 0px 2px;
}
.calendar thead .daynames { /* Row <TR> containing the day names */
background: #dddddd;
}
/* The body part -- contains all the days in month. */
.calendar tbody .day { /* Cells <TD> containing month days dates */
width: 2em;
text-align: right;
padding: 2px 4px 2px 2px;
}
.calendar table .wn {
padding: 2px 3px 2px 2px;
border-right: 1px solid #cccccc;
background: #dddddd;
}
.calendar tbody .rowhilite td {
background: #666666;
color: #ffffff;
}
.calendar tbody .rowhilite td.wn {
background: #666666;
color: #ffffff;
}
.calendar tbody td.active { /* Active (pressed) cells <TD> */
background: #000000;
color: #ffffff;
}
.calendar tbody td.weekend { /* Cells showing weekend days */
color: #999;
}
.calendar tbody td.selected { /* Cell showing today date */
font-weight: bold;
background: #000000;
color: #ffffff;
}
.calendar tbody td.hilite { /* Hovered cells <TD> */
background: #999999;
color: #ffffff;
}
.calendar tbody td.today {
font-weight: bold;
}
.calendar tbody .disabled {
color: #999;
}
.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
visibility: hidden;
}
.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
display: none;
}
/* The footer part -- status bar and "Close" button */
.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
text-align: center;
background: #cccccc;
color: #000;
}
.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
border-top: 1px solid #cccccc;
background: #efefef;
color: #000000;
}
.calendar tfoot .hilite { /* Hover style for buttons in footer */
background: #666666;
border: 1px solid #f40;
padding: 1px;
}
.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
background: #999999;
padding: 2px 0px 0px 2px;
}
/* Combo boxes (menus that display months/years for direct selection) */
.combo {
position: absolute;
display: none;
top: 0px;
left: 0px;
width: 4em;
cursor: default;
border: 1px solid #655;
background: #ffffff;
color: #000;
font-size: smaller;
}
.combo .label {
width: 100%;
text-align: center;
}
.combo .hilite {
background: #fc8;
}
.combo .active {
border-top: 1px solid #cccccc;
border-bottom: 1px solid #cccccc;
background: #efefef;
font-weight: bold;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 520 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 725 B

View File

@@ -0,0 +1,436 @@
/* @group Base */
.chzn-container {
position: relative;
display: inline-block;
vertical-align: middle;
font-size: 13px;
zoom: 1;
*display: inline;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.chzn-container .chzn-drop {
position: absolute;
top: 100%;
left: -9999px;
z-index: 1010;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
border: 1px solid #aaa;
border-top: 0;
background: #fff;
box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
}
.chzn-container.chzn-with-drop .chzn-drop {
left: 0;
}
.chzn-container a {
cursor: pointer;
}
/* @end */
/* @group Single Chosen */
.chzn-container-single .chzn-single {
position: relative;
display: block;
overflow: hidden;
padding: 0 0 0 8px;
height: 23px;
border: 1px solid #aaa;
border-radius: 5px;
background-color: #fff;
background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
background: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
background-clip: padding-box;
box-shadow: 0 0 3px white inset, 0 1px 1px rgba(0, 0, 0, 0.1);
color: #444;
text-decoration: none;
white-space: nowrap;
line-height: 24px;
}
.chzn-container-single .chzn-default {
color: #999;
}
.chzn-container-single .chzn-single span {
display: block;
overflow: hidden;
margin-right: 26px;
text-overflow: ellipsis;
white-space: nowrap;
}
.chzn-container-single .chzn-single-with-deselect span {
margin-right: 38px;
}
.chzn-container-single .chzn-single abbr {
position: absolute;
top: 6px;
right: 26px;
display: block;
width: 12px;
height: 12px;
background: url('chosen-sprite.png') -42px 1px no-repeat;
font-size: 1px;
}
.chzn-container-single .chzn-single abbr:hover {
background-position: -42px -10px;
}
.chzn-container-single.chzn-disabled .chzn-single abbr:hover {
background-position: -42px -10px;
}
.chzn-container-single .chzn-single div {
position: absolute;
top: 0;
right: 0;
display: block;
width: 18px;
height: 100%;
}
.chzn-container-single .chzn-single div b {
display: block;
width: 100%;
height: 100%;
background: url('chosen-sprite.png') no-repeat 0px 2px;
}
.chzn-container-single .chzn-search {
position: relative;
z-index: 1010;
margin: 0;
padding: 3px 4px;
white-space: nowrap;
}
.chzn-container-single .chzn-search input[type="text"] {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
margin: 1px 0;
padding: 4px 20px 4px 5px;
width: 100%;
height: auto;
outline: 0;
border: 1px solid #aaa;
background: white url('chosen-sprite.png') no-repeat 100% -20px;
background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
background: url('chosen-sprite.png') no-repeat 100% -20px, -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
background: url('chosen-sprite.png') no-repeat 100% -20px, -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
background: url('chosen-sprite.png') no-repeat 100% -20px, -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
background: url('chosen-sprite.png') no-repeat 100% -20px, linear-gradient(#eeeeee 1%, #ffffff 15%);
font-size: 1em;
font-family: sans-serif;
line-height: normal;
border-radius: 0;
}
.chzn-container-single .chzn-drop {
margin-top: -1px;
border-radius: 0 0 4px 4px;
background-clip: padding-box;
}
.chzn-container-single.chzn-container-single-nosearch .chzn-search {
position: absolute;
left: -9999px;
}
/* @end */
/* @group Results */
.chzn-container .chzn-results {
position: relative;
overflow-x: hidden;
overflow-y: auto;
margin: 0 4px 4px 0;
padding: 0 0 0 4px;
max-height: 240px;
-webkit-overflow-scrolling: touch;
}
.chzn-container .chzn-results li {
display: none;
margin: 0;
padding: 5px 6px;
list-style: none;
line-height: 15px;
}
.chzn-container .chzn-results li.active-result {
display: list-item;
cursor: pointer;
}
.chzn-container .chzn-results li.disabled-result {
display: list-item;
color: #ccc;
cursor: default;
}
.chzn-container .chzn-results li.highlighted {
background-color: #3875d7;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
background-image: -webkit-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: -moz-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: -o-linear-gradient(#3875d7 20%, #2a62bc 90%);
background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
color: #fff;
}
.chzn-container .chzn-results li.no-results {
display: list-item;
background: #f4f4f4;
}
.chzn-container .chzn-results li.group-result {
display: list-item;
font-weight: bold;
cursor: default;
}
.chzn-container .chzn-results li.group-option {
padding-left: 15px;
}
.chzn-container .chzn-results li em {
font-style: normal;
text-decoration: underline;
}
/* @end */
/* @group Multi Chosen */
.chzn-container-multi .chzn-choices {
position: relative;
overflow: hidden;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
margin: 0;
padding: 0;
width: 100%;
height: auto !important;
height: 1%;
border: 1px solid #aaa;
background-color: #fff;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
background-image: -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
background-image: -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
background-image: -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
cursor: text;
}
.chzn-container-multi .chzn-choices li {
float: left;
list-style: none;
}
.chzn-container-multi .chzn-choices li.search-field {
margin: 0;
padding: 0;
white-space: nowrap;
}
.chzn-container-multi .chzn-choices li.search-field input[type="text"] {
margin: 1px 0;
padding: 5px;
height: 15px;
outline: 0;
border: 0 !important;
background: transparent !important;
box-shadow: none;
color: #666;
font-size: 100%;
font-family: sans-serif;
line-height: normal;
border-radius: 0;
}
.chzn-container-multi .chzn-choices li.search-field .default {
color: #999;
}
.chzn-container-multi .chzn-choices li.search-choice {
position: relative;
margin: 3px 0 3px 5px;
padding: 3px 20px 3px 5px;
border: 1px solid #aaa;
border-radius: 3px;
background-color: #e4e4e4;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-clip: padding-box;
box-shadow: 0 0 2px white inset, 0 1px 0 rgba(0, 0, 0, 0.05);
color: #333;
line-height: 13px;
cursor: default;
}
.chzn-container-multi .chzn-choices li.search-choice .search-choice-close {
position: absolute;
top: 4px;
right: 3px;
display: block;
width: 12px;
height: 12px;
background: url('chosen-sprite.png') -42px 1px no-repeat;
font-size: 1px;
}
.chzn-container-multi .chzn-choices li.search-choice .search-choice-close:hover {
background-position: -42px -10px;
}
.chzn-container-multi .chzn-choices li.search-choice-disabled {
padding-right: 5px;
border: 1px solid #ccc;
background-color: #e4e4e4;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
color: #666;
}
.chzn-container-multi .chzn-choices li.search-choice-focus {
background: #d4d4d4;
}
.chzn-container-multi .chzn-choices li.search-choice-focus .search-choice-close {
background-position: -42px -10px;
}
.chzn-container-multi .chzn-results {
margin: 0;
padding: 0;
}
.chzn-container-multi .chzn-drop .result-selected {
display: list-item;
color: #ccc;
cursor: default;
}
/* @end */
/* @group Active */
.chzn-container-active .chzn-single {
border: 1px solid #5897fb;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chzn-container-active.chzn-with-drop .chzn-single {
border: 1px solid #aaa;
-moz-border-radius-bottomright: 0;
border-bottom-right-radius: 0;
-moz-border-radius-bottomleft: 0;
border-bottom-left-radius: 0;
background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
background-image: -webkit-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: -moz-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: -o-linear-gradient(#eeeeee 20%, #ffffff 80%);
background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
}
.chzn-container-active.chzn-with-drop .chzn-single div {
border-left: none;
background: transparent;
}
.chzn-container-active.chzn-with-drop .chzn-single div b {
background-position: -18px 2px;
}
.chzn-container-active .chzn-choices {
border: 1px solid #5897fb;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
.chzn-container-active .chzn-choices li.search-field input[type="text"] {
color: #111 !important;
}
/* @end */
/* @group Disabled Support */
.chzn-disabled {
opacity: 0.5 !important;
cursor: default;
}
.chzn-disabled .chzn-single {
cursor: default;
}
.chzn-disabled .chzn-choices .search-choice .search-choice-close {
cursor: default;
}
/* @end */
/* @group Right to Left */
.chzn-rtl {
text-align: right;
}
.chzn-rtl .chzn-single {
overflow: visible;
padding: 0 8px 0 0;
}
.chzn-rtl .chzn-single span {
margin-right: 0;
margin-left: 26px;
direction: rtl;
}
.chzn-rtl .chzn-single-with-deselect span {
margin-left: 38px;
}
.chzn-rtl .chzn-single div {
right: auto;
left: 3px;
}
.chzn-rtl .chzn-single abbr {
right: auto;
left: 26px;
}
.chzn-rtl .chzn-choices li {
float: right;
}
.chzn-rtl .chzn-choices li.search-field input[type="text"] {
direction: rtl;
}
.chzn-rtl .chzn-choices li.search-choice {
margin: 3px 5px 3px 0;
padding: 3px 5px 3px 19px;
}
.chzn-rtl .chzn-choices li.search-choice .search-choice-close {
right: auto;
left: 4px;
}
.chzn-rtl .chzn-drop {
left: 9999px;
}
.chzn-rtl.chzn-container-single .chzn-results {
margin: 0 0 4px 4px;
padding: 0 4px 0 0;
}
.chzn-rtl .chzn-results li.group-option {
padding-right: 15px;
padding-left: 0;
}
.chzn-rtl.chzn-container-active.chzn-with-drop .chzn-single div {
border-right: none;
}
.chzn-rtl .chzn-search input[type="text"] {
padding: 4px 5px 4px 20px;
background: white url('chosen-sprite.png') no-repeat -30px -20px;
background: url('chosen-sprite.png') no-repeat -30px -20px, -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
background: url('chosen-sprite.png') no-repeat -30px -20px, -webkit-linear-gradient(#eeeeee 1%, #ffffff 15%);
background: url('chosen-sprite.png') no-repeat -30px -20px, -moz-linear-gradient(#eeeeee 1%, #ffffff 15%);
background: url('chosen-sprite.png') no-repeat -30px -20px, -o-linear-gradient(#eeeeee 1%, #ffffff 15%);
background: url('chosen-sprite.png') no-repeat -30px -20px, linear-gradient(#eeeeee 1%, #ffffff 15%);
direction: rtl;
}
.chzn-rtl.chzn-container-single .chzn-single div b {
background-position: 6px 2px;
}
.chzn-rtl.chzn-container-single.chzn-with-drop .chzn-single div b {
background-position: -12px 2px;
}
[dir="rtl"] .chzn-container .chzn-drop,
[dir="rtl"] .chzn-container-single.chzn-container-single-nosearch .chzn-search {
left: auto;
right: -9999px;
}
[dir="rtl"] .chzn-container.chzn-with-drop .chzn-drop {
right: 0;
}
/* @end */
/* @group Retina compatibility */
@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min-resolution: 144dpi) {
.chzn-rtl .chzn-search input[type="text"],
.chzn-container-single .chzn-single abbr,
.chzn-container-single .chzn-single div b,
.chzn-container-single .chzn-search input[type="text"],
.chzn-container-multi .chzn-choices .search-choice .search-choice-close,
.chzn-container .chzn-results-scroll-down span,
.chzn-container .chzn-results-scroll-up span {
background-image: url('chosen-sprite@2x.png') !important;
background-size: 52px 37px !important;
background-repeat: no-repeat !important;
}
}
/* @end */

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1 @@
<!DOCTYPE html><title></title>

View File

@@ -0,0 +1,102 @@
#jao {
padding: 10px;
}
ul.jaofiletree {
font-family: Verdana, sans-serif;
font-size: 11px;
line-height: 18px;
padding: 0;
margin: 0 !important;
}
ul.jaofiletree li {
list-style: none;
padding: 0px;
padding-left: 20px;
margin: 0px;
white-space: nowrap;
}
ul.jaofiletree a {
color: #333;
text-decoration: none;
display: inline-block;
padding: 0px 2px;
}
ul.jaofiletree a:hover {
font-weight: bold;
}
ul.jaofiletree li.selected > a {
font-weight: bold;
}
/* Core Styles */
.jaofiletree li.directory { background: url(../images/jao/folder.png) left top no-repeat; background-size: 20px;}
.jaofiletree li.expanded { background: url(../images/jao/folderopen.png) left top no-repeat; background-size: 20px;}
.jaofiletree li.drive { background: url(../images/jao/drive.png) left top no-repeat; }
.jaofiletree li.file { background: url(../images/jao/file.png) left top no-repeat; }
.jaofiletree li.wait { background: url(../images/jao/spinner.gif) left top no-repeat; }
/* File Extensions*/
.jaofiletree li.ext_3gp { background: url(../images/jao/film.png) left top no-repeat; }
.jaofiletree li.ext_afp { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_afpa { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_asp { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_aspx { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_avi { background: url(../images/jao/film.png) left top no-repeat; }
.jaofiletree li.ext_bat { background: url(../images/jao/application.png) left top no-repeat; }
.jaofiletree li.ext_bmp { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_c { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_cfm { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_cgi { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_com { background: url(../images/jao/application.png) left top no-repeat; }
.jaofiletree li.ext_cpp { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_css { background: url(../images/jao/css.png) left top no-repeat; }
.jaofiletree li.ext_doc { background: url(../images/jao/doc.png) left top no-repeat; }
.jaofiletree li.ext_exe { background: url(../images/jao/application.png) left top no-repeat; }
.jaofiletree li.ext_gif { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_fla { background: url(../images/jao/flash.png) left top no-repeat; }
.jaofiletree li.ext_h { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_htm { background: url(../images/jao/html.png) left top no-repeat; }
.jaofiletree li.ext_html { background: url(../images/jao/html.png) left top no-repeat; }
.jaofiletree li.ext_jar { background: url(../images/jao/java.png) left top no-repeat; }
.jaofiletree li.ext_jpg { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_jpeg { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_js { background: url(../images/jao/script.png) left top no-repeat; }
.jaofiletree li.ext_lasso { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_log { background: url(../images/jao/txt.png) left top no-repeat; }
.jaofiletree li.ext_m4p { background: url(../images/jao/music.png) left top no-repeat; }
.jaofiletree li.ext_mov { background: url(../images/jao/film.png) left top no-repeat; }
.jaofiletree li.ext_mp3 { background: url(../images/jao/music.png) left top no-repeat; }
.jaofiletree li.ext_mp4 { background: url(../images/jao/film.png) left top no-repeat; }
.jaofiletree li.ext_mpg { background: url(../images/jao/film.png) left top no-repeat; }
.jaofiletree li.ext_mpeg { background: url(../images/jao/film.png) left top no-repeat; }
.jaofiletree li.ext_ogg { background: url(../images/jao/music.png) left top no-repeat; }
.jaofiletree li.ext_pcx { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_pdf { background: url(../images/jao/pdf.png) left top no-repeat; }
.jaofiletree li.ext_php { background: url(../images/jao/php.png) left top no-repeat; }
.jaofiletree li.ext_png { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_ppt { background: url(../images/jao/ppt.png) left top no-repeat; }
.jaofiletree li.ext_psd { background: url(../images/jao/psd.png) left top no-repeat; }
.jaofiletree li.ext_pl { background: url(../images/jao/script.png) left top no-repeat; }
.jaofiletree li.ext_py { background: url(../images/jao/script.png) left top no-repeat; }
.jaofiletree li.ext_rb { background: url(../images/jao/ruby.png) left top no-repeat; }
.jaofiletree li.ext_rbx { background: url(../images/jao/ruby.png) left top no-repeat; }
.jaofiletree li.ext_rhtml { background: url(../images/jao/ruby.png) left top no-repeat; }
.jaofiletree li.ext_rpm { background: url(../images/jao/linux.png) left top no-repeat; }
.jaofiletree li.ext_ruby { background: url(../images/jao/ruby.png) left top no-repeat; }
.jaofiletree li.ext_sql { background: url(../images/jao/db.png) left top no-repeat; }
.jaofiletree li.ext_swf { background: url(../images/jao/flash.png) left top no-repeat; }
.jaofiletree li.ext_tif { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_tiff { background: url(../images/jao/picture.png) left top no-repeat; }
.jaofiletree li.ext_txt { background: url(../images/jao/txt.png) left top no-repeat; }
.jaofiletree li.ext_vb { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_wav { background: url(../images/jao/music.png) left top no-repeat; }
.jaofiletree li.ext_wmv { background: url(../images/jao/film.png) left top no-repeat; }
.jaofiletree li.ext_xls { background: url(../images/jao/xls.png) left top no-repeat; }
.jaofiletree li.ext_xml { background: url(../images/jao/code.png) left top no-repeat; }
.jaofiletree li.ext_zip { background: url(../images/jao/zip.png) left top no-repeat; }

View File

@@ -0,0 +1,99 @@
/* the norm */
#gritter-notice-wrapper {
position: fixed;
top: 80px;
right: 20px;
width: 305px;
z-index: 9999;
}
#gritter-notice-wrapper.top-left {
left: 20px;
right: auto;
}
#gritter-notice-wrapper.bottom-right {
top: auto;
left: auto;
bottom: 20px;
right: 20px;
}
#gritter-notice-wrapper.bottom-left {
top: auto;
right: auto;
bottom: 20px;
left: 20px;
}
.gritter-item-wrapper {
margin-bottom: 10px;
padding: 2px;
}
.gritter-item-wrapper:hover {
box-shadow: 1px 1px 12px #ccc;
}
.gritter-item {
position: relative;
display: block;
opacity: 0.90;
padding: 8px 11px 8px 11px;
background-color: #323232;
color: #FFFFFF;
font-size: 14px;
border-radius: 2px;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
}
.gritter-item p {
padding: 0;
margin: 0;
word-wrap: break-word;
}
.gritter-close {
display: none;
position: absolute;
top: 5px;
right: 8px;
background: url(../images/close_gritter.png) no-repeat left top;
cursor: pointer;
width: 20px;
height: 20px;
text-indent: -9999em;
}
.gritter-title {
font-size: 14px;
font-weight: bold;
padding: 0 0 7px 0;
display: block;
text-shadow: 1px 1px 0 #000;
}
.gritter-image {
width: 48px;
height: 48px;
float: left;
}
.gritter-with-image,
.gritter-without-image {
padding: 0;
}
.gritter-with-image {
width: 220px;
float: right;
}
.gritter-light .gritter-item,
.gritter-light .gritter-close {
color: #222;
background: #FFF;
}
.gritter-light .gritter-title {
text-shadow: none;
}

View File

@@ -0,0 +1,49 @@
/*
Created on : 17 sept. 2014, 18:24:46
Author : damien
*/
div.restableOverflowShow {
overflow-x: scroll;
}
/** Hide cols functionnality **/
.restableMenu {
position: absolute;
top: 0;
right: 0;
z-index: 1000;
}
.restableMenu .restableMenuButton {
display: block;
text-decoration: none;
font-size: 13px;
height: 20px;
margin-bottom: 5px;
margin-top: 5px;
text-align: center;
color: #555;
}
.restableMenu ul {
list-style-position: outside;
list-style: none !important;
margin: 0 !important;
padding: 0 0.5em;
display: block;
background: #FFF;
}
#mybootstrap .restableMenu ul li {
font-size: 13px;
line-height: 15px;
}
.restableMenu.restableMenuClosed ul {
display: none;
}
.restableHideCols {
position: relative;
padding-top: 3em;
}

View File

@@ -0,0 +1,69 @@
ul.tagit {
padding: 1px 5px;
overflow: auto;
margin-left: inherit; /* usually we don't want the regular ul margins. */
margin-right: inherit;
}
ul.tagit li {
display: block;
float: left;
margin: 2px 5px 2px 0;
}
ul.tagit li.tagit-choice {
position: relative;
line-height: inherit;
}
input.tagit-hidden-field {
display: none !important;
}
ul.tagit li.tagit-choice-read-only {
padding: .2em .5em .2em .5em;
}
ul.tagit li.tagit-choice-editable {
padding: .2em 18px .2em .5em;
}
ul.tagit li.tagit-new {
padding: .25em 4px .25em 0;
}
ul.tagit li.tagit-choice a.tagit-label {
cursor: pointer;
text-decoration: none;
}
ul.tagit li.tagit-choice .tagit-close {
cursor: pointer;
position: absolute;
right: .1em;
top: 50%;
margin-top: -8px;
line-height: 17px;
}
/* used for some custom themes that don't need image icons */
ul.tagit li.tagit-choice .tagit-close .text-icon {
display: none;
}
ul.tagit li.tagit-choice input {
display: block;
float: left;
margin: 2px 5px 2px 0;
}
ul.tagit input[type="text"] {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
-moz-box-shadow: none !important;
-webkit-box-shadow: none !important;
box-shadow: none !important;
border: none !important;
margin: 0;
padding: 0;
width: inherit;
background-color: inherit !important;
outline: none !important;
}

View File

@@ -0,0 +1,25 @@
#lean_overlay {
position: fixed;
z-index:100;
top: 0px;
left: 0px;
height:100%;
width:100%;
background: #000;
display: none;
}
#wpfdmodal {
width: 90%;
height: 0px;
padding: 20px;
visibility: hidden;
background: #FFF;
z-index: 99999999 !important;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
box-shadow: 0px 0px 4px rgba(0,0,0,0.7);
-webkit-box-shadow: 0 0 4px rgba(0,0,0,0.7);
-moz-box-shadow: 0 0px 4px rgba(0,0,0,0.7);
}

View File

@@ -0,0 +1,179 @@
/* Lumebox jQuery plugin
* Copyright Anders Zakrisson/Sogeti 2009-2010
* http://anders.zakrisson.se, http://www.sogeti.se
* This software is released under the GPL License.
*/
html.lumebox, body.lumebox {
background-color: #000;
}
.lumebox-hidden {
display: none;
}
#lumebox-bg {
display: none;
position: fixed;
_position: absolute; /* hack for internet explorer 6*/
height: 100%;
width: 100%;
top: 0;
left: 0;
background: #000;
z-index: 11;
}
#lumebox-loading {
position: absolute;
left: 1em;
bottom: 1em;
background-color: url(lumebox-loading.png) center center #111;
padding: 0.5em;
z-index: 13;
color: #aaa;
-webkit-box-shadow: 2px 2px 14px #000;
-moz-box-shadow: 1px 1px 12px #000;
box-shadow: 2px 2px 14px #000;
}
#lumebox-loading img {
position: relative;
top: 3px;
}
#lumebox-popup {
display: none;
position: absolute;
z-index: 12;
margin: 20px;
-webkit-box-shadow: 2px 2px 14px #000;
-moz-box-shadow: 1px 1px 12px #000;
box-shadow: 2px 2px 14px #000;
}
#lumebox-popup.mobile {
display: none;
position: absolute;
z-index: 12;
margin: 0;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
#lumebox-topmenu {
position: absolute;
width: 100%;
height: 30px;
z-index: 14;
padding: 5px 0 0 5px;
}
#lumebox-close {
display: block;
width: 27px;
height: 27px;
position: absolute;
top: -30px;
right: -30px;
background: url(../images/close.png) center center no-repeat transparent;
}
#lumebox-counter {
float: right;
font: 2em "Century Gothic", sans-serif;
color: #ccc;
display: none;
}
#lumebox-popup.mobile #lumebox-topmenu {
position: fixed;
_position: absolute; /* hack for internet explorer 6*/
top: 0px;
left: 0px;
z-index: 14;
padding: 5px 0 0 5px;
}
#lumebox-popup.mobile #lumebox-close {
position: relative;
top: 0;
left: 0;
}
#lumebox-previous {
display: block;
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 50%;
min-height: 30px;
z-index: 13;
}
#lumebox-next {
display: block;
position: absolute;
top: 0;
right: 0;
height: 100%;
width: 50%;
min-height: 30px;
z-index: 13;
}
#lumebox-content {
margin: 0 auto;
z-index: 12;
color: #ccc;
position: relative;
}
#lumebox-content .hentry {
padding: 0 20px 20px 20px;
background-color: #fff;
color: #383838;
}
#lumebox-content h2{
margin-left: 40px;
padding: 10px 0 20px 0;
}
#lumebox-content p {
padding: 15px 0 0 0;
margin: 0;
}
#lumebox-content img {
display: block;
clear: both;
margin: 0 auto;
}
#lumebox-popup.mobile #lumebox-caption {
position: absolute;
bottom: 0px;
padding: 10px;
background-color: rgba(0,0,0,0.6);
}
#lumebox-caption {
padding: 10px;
margin: 0;
min-height: 20px;
background-color: #383838;
}
#lumebox-help {
padding: 10px;
margin: 0;
min-height: 20px;
background-color: #383838;
}
.lumebox-preLoaded {
display: none;
}

View File

@@ -0,0 +1,26 @@
/*!
* Bootstrap v2.3.2
*
* Copyright 2012 Twitter, Inc
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
* Designed and built with all the love in the world @twitter by @mdo and @fat.
*/
.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;}
.clearfix:after{clear:both;}
.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000;}.modal-backdrop.fade{opacity:0;}
.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;outline:none;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
.modal.fade.in{top:10%;}
.modal-header{padding:9px 15px;border-bottom:1px solid #eee;}.modal-header .close{margin-top:2px;}
.modal-header h3{margin:0;line-height:30px;}
.modal-body{position:relative;overflow-y:auto;max-height:400px;padding:15px;}
.modal-form{margin-bottom:0;}
.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";line-height:0;}
.modal-footer:after{clear:both;}
.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
.modal-footer .btn-block+.btn-block{margin-left:0;}

View File

@@ -0,0 +1,191 @@
/*!
* Slider for Bootstrap
*
* Copyright 2012 Stefan Petre
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*/
.slider {
display: inline-block;
vertical-align: middle;
position: relative;
}
.slider.slider-horizontal {
width: 210px;
height: 20px;
}
.slider.slider-horizontal .slider-track {
height: 10px;
width: 100%;
margin-top: -5px;
top: 50%;
left: 0;
}
.slider.slider-horizontal .slider-selection {
height: 100%;
top: 0;
bottom: 0;
}
.slider.slider-horizontal .slider-handle {
margin-left: -7px;
margin-top: -5px;
}
.slider.slider-horizontal .slider-handle.triangle {
border-width: 0 10px 10px 10px;
width: 0;
height: 0;
border-bottom-color: #0480be;
margin-top: 0;
}
.slider.slider-vertical {
height: 210px;
width: 20px;
}
.slider.slider-vertical .slider-track {
width: 10px;
height: 100%;
margin-left: -5px;
left: 50%;
top: 0;
}
.slider.slider-vertical .slider-selection {
width: 100%;
left: 0;
top: 0;
bottom: 0;
}
.slider.slider-vertical .slider-handle {
margin-left: -5px;
margin-top: -10px;
}
.slider.slider-vertical .slider-handle.triangle {
border-width: 10px 0 10px 10px;
width: 1px;
height: 1px;
border-left-color: #0480be;
margin-left: 0;
}
.slider input {
display: none;
}
.slider .tooltip-inner {
white-space: nowrap;
}
.slider-track {
position: absolute;
cursor: pointer;
background-color: #f7f7f7;
background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.slider-selection {
position: absolute;
background-color: #f7f7f7;
background-image: -moz-linear-gradient(top, #f9f9f9, #f5f5f5);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#f5f5f5));
background-image: -webkit-linear-gradient(top, #f9f9f9, #f5f5f5);
background-image: -o-linear-gradient(top, #f9f9f9, #f5f5f5);
background-image: linear-gradient(to bottom, #f9f9f9, #f5f5f5);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
/*.slider-handle {
position: absolute;
width: 20px;
height: 20px;
background-color: #0e90d2;
background-image: -moz-linear-gradient(top, #149bdf, #0480be);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
background-image: -o-linear-gradient(top, #149bdf, #0480be);
background-image: linear-gradient(to bottom, #149bdf, #0480be);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
opacity: 0.8;
border: 0px solid transparent;
}
.slider-handle.round {
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
}
.slider-handle.triangle {
background: transparent none;
}*/
.slider-handle {
position: absolute;
height: 20px;
width: 14px;
background: url(../images/fields/picker.png) center center transparent no-repeat;
}
#mybootstrap .tooltip {
opacity: 1;
filter: alpha(opacity=1);
}
.slidercontainer {
display: inline-block;
padding-left: 40px;
/*margin-left: 10px;*/
height: 30px;
}
.slidercontainer.marginright {
background: url(../images/fields/marginright.png) top left no-repeat transparent;
}
.slidercontainer.marginleft {
background: url(../images/fields/marginleft.png) top left no-repeat transparent;
}
.slidercontainer.marginbottom {
background: url(../images/fields/marginbottom.png) top left no-repeat transparent;
}
.slidercontainer.margintop {
background: url(../images/fields/margintop.png) top left no-repeat transparent;
}
.slidercontainer.paddingright {
background: url(../images/fields/paddingright.png) top left no-repeat transparent;
}
.slidercontainer.paddingleft {
background: url(../images/fields/paddingleft.png) top left no-repeat transparent;
}
.slidercontainer.paddingbottom {
background: url(../images/fields/paddingbottom.png) top left no-repeat transparent;
}
.slidercontainer.paddingtop {
background: url(../images/fields/paddingtop.png) top left no-repeat transparent;
}

View File

@@ -0,0 +1,9 @@
/**
* WP File Download
*
* @package WP File Download
* @author Joomunited
* @version 1.0
*/
.icon-32-alert{background:url('../images/icon-32-alert.png') 0 0 no-repeat}#mycategorys{float:left;width:220px;vertical-align:top}#galedition{float:right;width:220px;vertical-align:top;border:1px solid #CCC}#mycategorys #newcategory,#mycategorys #delcategory{margin-left:20px;margin-top:20px}#pwrapper{margin-left:220px}#wpreview{width:100%}#preview{margin-top:20px;margin:0 auto;background:#FFF;border:3px dashed #BBB;min-height:200px;position:relative;padding-bottom:130px}#preview .wimg{position:relative;float:left;text-align:center}#preview .wimg .wbtn{position:absolute;text-align:left;top:10px;right:10px}#preview .wimg .wbtn .btn-group{opacity:.4}#preview .wimg:hover .btn-group,#preview .wimg .wbtn .btn-group.open{opacity:1}#preview .selimg{position:relative}#preview .selimg .selected{position:absolute;top:0;right:0;border:2px solid #025a8d;width:50px;height:50px}#preview .img{background:#FFF;text-align:center;border:1px solid #DDD;margin:10px;cursor:move;-moz-box-shadow:2px 2px 5px #ccc;-webkit-box-shadow:2px 2px 5px #ccc;box-shadow:2px 2px 5px #ccc}#preview .highlight{background:#f2f2f2;border:1px solid #212326;float:left;text-align:center;border:1px solid #DDD;margin:0;padding:0}#preview img{margin:10px}#preview .clr{clear:both}#preview .placeholder img{width:80%;height:80%}span.editable{background:#FFF;border:1px solid #AAA;color:#000;padding:1px 3px;width:140px;display:inline-block}#mybootstrap #upload_button{height:auto;width:auto}#mybootstrap .bs-docs-sidenav{width:228px;margin-top:10px;padding:0;background-color:#fff;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,.065);box-shadow:0 1px 4px rgba(0,0,0,.065)}#mybootstrap .bs-docs-sidenav>li>a{display:block;width:190px \9;margin:0 0 -1px;padding:9px 15px;border:1px solid #e5e5e5}#mybootstrap .bs-docs-sidenav>li:last-child>a{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}#mybootstrap .bs-docs-sidenav>li:first-child>a{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}#mybootstrap .bs-docs-sidenav>li:only-child>a{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}#mybootstrap .bs-docs-sidenav>.active>a{position:relative;z-index:2;border:0;text-shadow:0 1px 0 rgba(0,0,0,.15);-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,.1),inset -1px 0 0 rgba(0,0,0,.1);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,.1),inset -1px 0 0 rgba(0,0,0,.1);box-shadow:inset 1px 0 0 rgba(0,0,0,.1),inset -1px 0 0 rgba(0,0,0,.1)}#mybootstrap .bs-docs-sidenav .icon-chevron-down{float:right;margin-top:2px;margin-right:-6px;opacity:.25}#mybootstrap .bs-docs-sidenav>li>a:hover{background-color:#f5f5f5}#mybootstrap .bs-docs-sidenav a:hover .icon-chevron-down{opacity:.5}#mybootstrap .bs-docs-sidenav .active .icon-chevron-down,#mybootstrap .bs-docs-sidenav .active a:hover .icon-chevron-down{background-image:url(../images/glyphicons-halflings-white.png);opacity:1}#mybootstrap .bs-docs-sidenav.affix{top:40px}#mybootstrap .bs-docs-sidenav.affix-bottom{position:absolute;top:auto;bottom:270px}

View File

@@ -0,0 +1,462 @@
/*! jQuery UI - v1.9.2 - 2012-11-30
* http://jqueryui.com
* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=12_gloss_wave.png&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=03_highlight_soft.png&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=03_highlight_soft.png&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=08_diagonals_thick.png&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=08_diagonals_thick.png&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=01_flat.png&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */
/* Layout helpers
----------------------------------*/
.ui-helper-hidden { display: none; }
.ui-helper-hidden-accessible { border: 0; clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
.ui-helper-clearfix:after { clear: both; }
.ui-helper-clearfix { zoom: 1; }
.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
/* Interaction Cues
----------------------------------*/
.ui-state-disabled { cursor: default !important; }
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
/* Misc visuals
----------------------------------*/
/* Overlays */
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
.ui-resizable { position: relative;}
.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
.ui-accordion .ui-accordion-header { display: block; cursor: pointer; position: relative; margin-top: 2px; padding: .5em .5em .5em .7em; zoom: 1; }
.ui-accordion .ui-accordion-icons { padding-left: 2.2em; }
.ui-accordion .ui-accordion-noicons { padding-left: .7em; }
.ui-accordion .ui-accordion-icons .ui-accordion-icons { padding-left: 2.2em; }
.ui-accordion .ui-accordion-header .ui-accordion-header-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; overflow: auto; zoom: 1; }
.ui-autocomplete {
position: absolute;
top: 0;
left: 0;
cursor: default;
}
/* workarounds */
* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
.ui-button, .ui-button:link, .ui-button:visited, .ui-button:hover, .ui-button:active { text-decoration: none; }
.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
.ui-button-icons-only { width: 3.4em; }
button.ui-button-icons-only { width: 3.7em; }
/*button text element */
.ui-button .ui-button-text { display: block; line-height: 1.4; }
.ui-button-text-only .ui-button-text { padding: .4em 1em; }
.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
/* no icon support for input elements, provide padding by default */
input.ui-button { padding: .4em 1em; }
/*button icon element(s) */
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
/*button sets*/
.ui-buttonset { margin-right: 7px; }
.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
/* workarounds */
button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
.ui-datepicker .ui-datepicker-prev { left:2px; }
.ui-datepicker .ui-datepicker-next { right:2px; }
.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
.ui-datepicker .ui-datepicker-next-hover { right:1px; }
.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 49%;}
.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
.ui-datepicker td { border: 0; padding: 1px; }
.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
/* with multiple calendars */
.ui-datepicker.ui-datepicker-multi { width:auto; }
.ui-datepicker-multi .ui-datepicker-group { float:left; }
.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
/* RTL support */
.ui-datepicker-rtl { direction: rtl; }
.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
.ui-datepicker-rtl .ui-datepicker-group { float:right; }
.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
position: absolute; /*must have*/
z-index: -1; /*must have*/
filter: mask(); /*must have*/
top: -4px; /*must have*/
left: -4px; /*must have*/
width: 200px; /*must have*/
height: 200px; /*must have*/
}.ui-dialog { position: absolute; top: 0; left: 0; padding: .2em; width: 300px; overflow: hidden; }
.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; }
.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; }
.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
.ui-draggable .ui-dialog-titlebar { cursor: move; }
.ui-menu { list-style:none; padding: 2px; margin: 0; display:block; outline: none; }
.ui-menu .ui-menu { margin-top: -3px; position: absolute; }
.ui-menu .ui-menu-item { margin: 0; padding: 0; zoom: 1; width: 100%; }
.ui-menu .ui-menu-divider { margin: 5px -2px 5px -2px; height: 0; font-size: 0; line-height: 0; border-width: 1px 0 0 0; }
.ui-menu .ui-menu-item a { text-decoration: none; display: block; padding: 2px .4em; line-height: 1.5; zoom: 1; font-weight: normal; }
.ui-menu .ui-menu-item a.ui-state-focus,
.ui-menu .ui-menu-item a.ui-state-active { font-weight: normal; margin: -1px; }
.ui-menu .ui-state-disabled { font-weight: normal; margin: .4em 0 .2em; line-height: 1.5; }
.ui-menu .ui-state-disabled a { cursor: default; }
/* icon support */
.ui-menu-icons { position: relative; }
.ui-menu-icons .ui-menu-item a { position: relative; padding-left: 2em; }
/* left-aligned */
.ui-menu .ui-icon { position: absolute; top: .2em; left: .2em; }
/* right-aligned */
.ui-menu .ui-menu-icon { position: static; float: right; }
.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }.ui-slider { position: relative; text-align: left; }
.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
.ui-slider-horizontal { height: .8em; }
.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
.ui-slider-horizontal .ui-slider-range-min { left: 0; }
.ui-slider-horizontal .ui-slider-range-max { right: 0; }
.ui-slider-vertical { width: .8em; height: 100px; }
.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
.ui-slider-vertical .ui-slider-range-max { top: 0; }.ui-spinner { position:relative; display: inline-block; overflow: hidden; padding: 0; vertical-align: middle; }
.ui-spinner-input { border: none; background: none; padding: 0; margin: .2em 0; vertical-align: middle; margin-left: .4em; margin-right: 22px; }
.ui-spinner-button { width: 16px; height: 50%; font-size: .5em; padding: 0; margin: 0; text-align: center; position: absolute; cursor: default; display: block; overflow: hidden; right: 0; }
.ui-spinner a.ui-spinner-button { border-top: none; border-bottom: none; border-right: none; } /* more specificity required here to overide default borders */
.ui-spinner .ui-icon { position: absolute; margin-top: -8px; top: 50%; left: 0; } /* vertical centre icon */
.ui-spinner-up { top: 0; }
.ui-spinner-down { bottom: 0; }
/* TR overrides */
.ui-spinner .ui-icon-triangle-1-s {
/* need to fix icons sprite */
background-position:-65px -16px;
}
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 0; margin: 1px .2em 0 0; border-bottom: 0; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: -1px; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text; }
.ui-tabs .ui-tabs-nav li a, .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
.ui-tooltip {
padding: 8px;
position: absolute;
z-index: 9999;
max-width: 300px;
-webkit-box-shadow: 0 0 5px #aaa;
box-shadow: 0 0 5px #aaa;
}
/* Fades and background-images don't work well together in IE6, drop the image */
* html .ui-tooltip {
background-image: none;
}
body .ui-tooltip { border-width: 2px; }
/* Component containers
----------------------------------*/
.ui-widget { font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; font-size: 1.1em; }
.ui-widget .ui-widget { font-size: 1em; }
.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; font-size: 1em; }
.ui-widget-content { border: 1px solid #dddddd; background: #eeeeee url(images/ui-bg_highlight-soft_100_eeeeee_1x100.png) 50% top repeat-x; color: #333333; }
.ui-widget-content a { color: #333333; }
.ui-widget-header { border: 1px solid #e78f08; background: #f6a828 url(images/ui-bg_gloss-wave_35_f6a828_500x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; }
.ui-widget-header a { color: #ffffff; }
/* Interaction states
----------------------------------*/
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #f6f6f6 url(images/ui-bg_glass_100_f6f6f6_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #1c94c4; }
.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #1c94c4; text-decoration: none; }
.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #fbcb09; background: #fdf5ce url(images/ui-bg_glass_100_fdf5ce_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #c77405; }
.ui-state-hover a, .ui-state-hover a:hover, .ui-state-hover a:link, .ui-state-hover a:visited { color: #c77405; text-decoration: none; }
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #fbd850; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: bold; color: #eb8f00; }
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #eb8f00; text-decoration: none; }
/* Interaction Cues
----------------------------------*/
.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fed22f; background: #ffe45c url(images/ui-bg_highlight-soft_75_ffe45c_1x100.png) 50% top repeat-x; color: #363636; }
.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #b81900 url(images/ui-bg_diagonals-thick_18_b81900_40x40.png) 50% 50% repeat; color: #ffffff; }
.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #ffffff; }
.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #ffffff; }
.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
.ui-state-disabled .ui-icon { filter:Alpha(Opacity=35); } /* For IE8 - See #6059 */
/* Icons
----------------------------------*/
/* states and images */
.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
.ui-widget-header .ui-icon {background-image: url(images/ui-icons_ffffff_256x240.png); }
.ui-state-default .ui-icon { background-image: url(images/ui-icons_ef8c08_256x240.png); }
.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
.ui-state-active .ui-icon {background-image: url(images/ui-icons_ef8c08_256x240.png); }
.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_228ef1_256x240.png); }
.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_ffd27a_256x240.png); }
/* positioning */
.ui-icon-carat-1-n { background-position: 0 0; }
.ui-icon-carat-1-ne { background-position: -16px 0; }
.ui-icon-carat-1-e { background-position: -32px 0; }
.ui-icon-carat-1-se { background-position: -48px 0; }
.ui-icon-carat-1-s { background-position: -64px 0; }
.ui-icon-carat-1-sw { background-position: -80px 0; }
.ui-icon-carat-1-w { background-position: -96px 0; }
.ui-icon-carat-1-nw { background-position: -112px 0; }
.ui-icon-carat-2-n-s { background-position: -128px 0; }
.ui-icon-carat-2-e-w { background-position: -144px 0; }
.ui-icon-triangle-1-n { background-position: 0 -16px; }
.ui-icon-triangle-1-ne { background-position: -16px -16px; }
.ui-icon-triangle-1-e { background-position: -32px -16px; }
.ui-icon-triangle-1-se { background-position: -48px -16px; }
.ui-icon-triangle-1-s { background-position: -64px -16px; }
.ui-icon-triangle-1-sw { background-position: -80px -16px; }
.ui-icon-triangle-1-w { background-position: -96px -16px; }
.ui-icon-triangle-1-nw { background-position: -112px -16px; }
.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
.ui-icon-arrow-1-n { background-position: 0 -32px; }
.ui-icon-arrow-1-ne { background-position: -16px -32px; }
.ui-icon-arrow-1-e { background-position: -32px -32px; }
.ui-icon-arrow-1-se { background-position: -48px -32px; }
.ui-icon-arrow-1-s { background-position: -64px -32px; }
.ui-icon-arrow-1-sw { background-position: -80px -32px; }
.ui-icon-arrow-1-w { background-position: -96px -32px; }
.ui-icon-arrow-1-nw { background-position: -112px -32px; }
.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
.ui-icon-arrow-4 { background-position: 0 -80px; }
.ui-icon-arrow-4-diag { background-position: -16px -80px; }
.ui-icon-extlink { background-position: -32px -80px; }
.ui-icon-newwin { background-position: -48px -80px; }
.ui-icon-refresh { background-position: -64px -80px; }
.ui-icon-shuffle { background-position: -80px -80px; }
.ui-icon-transfer-e-w { background-position: -96px -80px; }
.ui-icon-transferthick-e-w { background-position: -112px -80px; }
.ui-icon-folder-collapsed { background-position: 0 -96px; }
.ui-icon-folder-open { background-position: -16px -96px; }
.ui-icon-document { background-position: -32px -96px; }
.ui-icon-document-b { background-position: -48px -96px; }
.ui-icon-note { background-position: -64px -96px; }
.ui-icon-mail-closed { background-position: -80px -96px; }
.ui-icon-mail-open { background-position: -96px -96px; }
.ui-icon-suitcase { background-position: -112px -96px; }
.ui-icon-comment { background-position: -128px -96px; }
.ui-icon-person { background-position: -144px -96px; }
.ui-icon-print { background-position: -160px -96px; }
.ui-icon-trash { background-position: -176px -96px; }
.ui-icon-locked { background-position: -192px -96px; }
.ui-icon-unlocked { background-position: -208px -96px; }
.ui-icon-bookmark { background-position: -224px -96px; }
.ui-icon-tag { background-position: -240px -96px; }
.ui-icon-home { background-position: 0 -112px; }
.ui-icon-flag { background-position: -16px -112px; }
.ui-icon-calendar { background-position: -32px -112px; }
.ui-icon-cart { background-position: -48px -112px; }
.ui-icon-pencil { background-position: -64px -112px; }
.ui-icon-clock { background-position: -80px -112px; }
.ui-icon-disk { background-position: -96px -112px; }
.ui-icon-calculator { background-position: -112px -112px; }
.ui-icon-zoomin { background-position: -128px -112px; }
.ui-icon-zoomout { background-position: -144px -112px; }
.ui-icon-search { background-position: -160px -112px; }
.ui-icon-wrench { background-position: -176px -112px; }
.ui-icon-gear { background-position: -192px -112px; }
.ui-icon-heart { background-position: -208px -112px; }
.ui-icon-star { background-position: -224px -112px; }
.ui-icon-link { background-position: -240px -112px; }
.ui-icon-cancel { background-position: 0 -128px; }
.ui-icon-plus { background-position: -16px -128px; }
.ui-icon-plusthick { background-position: -32px -128px; }
.ui-icon-minus { background-position: -48px -128px; }
.ui-icon-minusthick { background-position: -64px -128px; }
.ui-icon-close { background-position: -80px -128px; }
.ui-icon-closethick { background-position: -96px -128px; }
.ui-icon-key { background-position: -112px -128px; }
.ui-icon-lightbulb { background-position: -128px -128px; }
.ui-icon-scissors { background-position: -144px -128px; }
.ui-icon-clipboard { background-position: -160px -128px; }
.ui-icon-copy { background-position: -176px -128px; }
.ui-icon-contact { background-position: -192px -128px; }
.ui-icon-image { background-position: -208px -128px; }
.ui-icon-video { background-position: -224px -128px; }
.ui-icon-script { background-position: -240px -128px; }
.ui-icon-alert { background-position: 0 -144px; }
.ui-icon-info { background-position: -16px -144px; }
.ui-icon-notice { background-position: -32px -144px; }
.ui-icon-help { background-position: -48px -144px; }
.ui-icon-check { background-position: -64px -144px; }
.ui-icon-bullet { background-position: -80px -144px; }
.ui-icon-radio-on { background-position: -96px -144px; }
.ui-icon-radio-off { background-position: -112px -144px; }
.ui-icon-pin-w { background-position: -128px -144px; }
.ui-icon-pin-s { background-position: -144px -144px; }
.ui-icon-play { background-position: 0 -160px; }
.ui-icon-pause { background-position: -16px -160px; }
.ui-icon-seek-next { background-position: -32px -160px; }
.ui-icon-seek-prev { background-position: -48px -160px; }
.ui-icon-seek-end { background-position: -64px -160px; }
.ui-icon-seek-start { background-position: -80px -160px; }
/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
.ui-icon-seek-first { background-position: -80px -160px; }
.ui-icon-stop { background-position: -96px -160px; }
.ui-icon-eject { background-position: -112px -160px; }
.ui-icon-volume-off { background-position: -128px -160px; }
.ui-icon-volume-on { background-position: -144px -160px; }
.ui-icon-power { background-position: 0 -176px; }
.ui-icon-signal-diag { background-position: -16px -176px; }
.ui-icon-signal { background-position: -32px -176px; }
.ui-icon-battery-0 { background-position: -48px -176px; }
.ui-icon-battery-1 { background-position: -64px -176px; }
.ui-icon-battery-2 { background-position: -80px -176px; }
.ui-icon-battery-3 { background-position: -96px -176px; }
.ui-icon-circle-plus { background-position: 0 -192px; }
.ui-icon-circle-minus { background-position: -16px -192px; }
.ui-icon-circle-close { background-position: -32px -192px; }
.ui-icon-circle-triangle-e { background-position: -48px -192px; }
.ui-icon-circle-triangle-s { background-position: -64px -192px; }
.ui-icon-circle-triangle-w { background-position: -80px -192px; }
.ui-icon-circle-triangle-n { background-position: -96px -192px; }
.ui-icon-circle-arrow-e { background-position: -112px -192px; }
.ui-icon-circle-arrow-s { background-position: -128px -192px; }
.ui-icon-circle-arrow-w { background-position: -144px -192px; }
.ui-icon-circle-arrow-n { background-position: -160px -192px; }
.ui-icon-circle-zoomin { background-position: -176px -192px; }
.ui-icon-circle-zoomout { background-position: -192px -192px; }
.ui-icon-circle-check { background-position: -208px -192px; }
.ui-icon-circlesmall-plus { background-position: 0 -208px; }
.ui-icon-circlesmall-minus { background-position: -16px -208px; }
.ui-icon-circlesmall-close { background-position: -32px -208px; }
.ui-icon-squaresmall-plus { background-position: -48px -208px; }
.ui-icon-squaresmall-minus { background-position: -64px -208px; }
.ui-icon-squaresmall-close { background-position: -80px -208px; }
.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
/* Misc visuals
----------------------------------*/
/* Corner radius */
.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
/* Overlays */
.ui-widget-overlay { background: #666666 url(images/ui-bg_diagonals-thick_20_666666_40x40.png) 50% 50% repeat; opacity: .5;filter:Alpha(Opacity=50); }
.ui-widget-shadow { margin: -5px 0 0 -5px; padding: 5px; background: #000000 url(images/ui-bg_flat_10_000000_40x100.png) 50% 50% repeat-x; opacity: .2;filter:Alpha(Opacity=20); -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; }

View File

@@ -0,0 +1,138 @@
/*!
* Slider for Bootstrap
*
* Copyright 2012 Stefan Petre
* Licensed under the Apache License v2.0
* http://www.apache.org/licenses/LICENSE-2.0
*
*/
.slider {
display: inline-block;
vertical-align: middle;
position: relative;
}
.slider.slider-horizontal {
width: 210px;
height: 20px;
}
.slider.slider-horizontal .slider-track {
height: 10px;
width: 100%;
margin-top: -5px;
top: 50%;
left: 0;
}
.slider.slider-horizontal .slider-selection {
height: 100%;
top: 0;
bottom: 0;
}
.slider.slider-horizontal .slider-handle {
margin-left: -10px;
margin-top: -5px;
}
.slider.slider-horizontal .slider-handle.triangle {
border-width: 0 10px 10px 10px;
width: 0;
height: 0;
border-bottom-color: #0480be;
margin-top: 0;
}
.slider.slider-vertical {
height: 210px;
width: 20px;
}
.slider.slider-vertical .slider-track {
width: 10px;
height: 100%;
margin-left: -5px;
left: 50%;
top: 0;
}
.slider.slider-vertical .slider-selection {
width: 100%;
left: 0;
top: 0;
bottom: 0;
}
.slider.slider-vertical .slider-handle {
margin-left: -5px;
margin-top: -10px;
}
.slider.slider-vertical .slider-handle.triangle {
border-width: 10px 0 10px 10px;
width: 1px;
height: 1px;
border-left-color: #0480be;
margin-left: 0;
}
.slider input {
display: none;
}
.slider .tooltip-inner {
white-space: nowrap;
}
.slider-track {
position: absolute;
cursor: pointer;
background-color: #f7f7f7;
background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.slider-selection {
position: absolute;
background-color: #f7f7f7;
background-image: -moz-linear-gradient(top, #f9f9f9, #f5f5f5);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f9f9f9), to(#f5f5f5));
background-image: -webkit-linear-gradient(top, #f9f9f9, #f5f5f5);
background-image: -o-linear-gradient(top, #f9f9f9, #f5f5f5);
background-image: linear-gradient(to bottom, #f9f9f9, #f5f5f5);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff9f9f9', endColorstr='#fff5f5f5', GradientType=0);
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.slider-handle {
position: absolute;
width: 20px;
height: 20px;
background-color: #0e90d2;
background-image: -moz-linear-gradient(top, #149bdf, #0480be);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
background-image: -o-linear-gradient(top, #149bdf, #0480be);
background-image: linear-gradient(to bottom, #149bdf, #0480be);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);
opacity: 0.8;
border: 0px solid transparent;
}
.slider-handle.round {
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border-radius: 20px;
}
.slider-handle.triangle {
background: transparent none;
}

View File

@@ -0,0 +1,113 @@
/**
* WP File Download
*
* We developed this code with our hearts and passion.
* We hope you found it useful, easy to understand and to customize.
* Otherwise, please feel free to contact us at contact@joomunited.com *
* @package WP File Download
* @copyright Copyright (C) 2013 JoomUnited (http://www.joomunited.com). All rights reserved.
* @copyright Copyright (C) 2013 Damien Barrère (http://www.crac-design.com). All rights reserved.
* @license GNU General Public License version 2 or later; http://www.gnu.org/licenses/gpl-2.0.html
*/
#dropbox{
position: absolute;
bottom: 0;
width: 100%;
height: 120px;
margin: 10px;
text-align: center;
}
/*#dropbox{
position: relative;
float: left;
width: 253px;
height: 178px;
overflow: hidden;
border: 2px solid #CCC;
background: #EFEFEF;
margin: 10px;
-moz-box-shadow: 2px 2px 5px #CCC;
-webkit-box-shadow: 2px 2px 5px #CCC;
box-shadow: 2px 2px 5px #CCC;
border-radius: 10px;
}*/
#dropbox .message{
font-size: 1.1em;
display: block;
color: #666;
margin-top: 40px;
}
#dropbox .message i{
color:#ccc;
}
#dropbox:before{
border-radius:3px 3px 0 0;
}
/*-------------------------
Image Previews
--------------------------*/
.preview{
width:200px;
height: 200px;
float:left;
margin: 20px 0 0 20px;
position: relative;
text-align: center;
}
.preview img{
max-width: 180px;
max-height:180px;
border:3px solid #fff;
display: block;
box-shadow:0 0 2px #000;
}
/* .imageHolder{
display: inline-block;
position:relative;
}*/
.uploaded{
position: absolute;
top:0;
left:0;
height:100%;
width:100%;
background: url('../images/upload/check.png') no-repeat center center rgba(255,255,255,0.5);
display: none;
}
.wimg.done .uploaded{
display: block;
}
/*-------------------------
Progress Bars
--------------------------*/
.wimg.placeholder .progress{
position: relative;
width: 80%;
left: 0;
bottom: 40px;
margin: 0 auto;
}
.wimg.done .progress .bar{
width:100% !important;
}

View File

@@ -0,0 +1,21 @@
/**
* WP File Download
*
* We developed this code with our hearts and passion.
* We hope you found it useful, easy to understand and to customize.
* Otherwise, please feel free to contact us at contact@joomunited.com *
* @package WP File Download
* @copyright Copyright (C) 2013 JoomUnited (http://www.joomunited.com). All rights reserved.
* @copyright Copyright (C) 2013 Damien Barrère (http://www.crac-design.com). All rights reserved.
* @license GNU General Public License version 2 or later; http://www.gnu.org/licenses/gpl-2.0.html
*/
#dropbox{position:absolute;bottom:0;width:100%;height:120px;text-align:center;margin:10px}
#dropbox .message,#dropbox_version .message{font-size:1em;display:block;color:#666;margin-top:40px}
#dropbox_version {text-align: center;}
#dropbox:before{border-radius:3px 3px 0 0}
.preview{width:200px;height:200px;float:left;position:relative;text-align:center;margin:20px 0 0 20px}
.preview img{max-width:180px;max-height:180px;border:3px solid #fff;display:block;box-shadow:0 0 2px #000}
.uploaded{position:absolute;top:0;left:0;height:100%;width:100%;background:url(../images/upload/check.png) no-repeat center center rgba(255,255,255,0.5);display:none}
.wimg.done .uploaded{display:block}
.wimg.placeholder .progress{position:relative;width:80%;left:0;bottom:40px;margin:0 auto}
.wimg.done .progress .bar{width:100%!important}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

@@ -0,0 +1 @@
<!DOCTYPE html><title></title>

Binary file not shown.

After

Width:  |  Height:  |  Size: 917 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 618 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 579 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 651 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 653 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 633 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 668 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 385 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Some files were not shown because too many files have changed in this diff Show More