2023-01-14

This commit is contained in:
root 2023-01-14 19:17:46 +03:00
parent f9dcb12cd3
commit de4a81a496
81 changed files with 50571 additions and 11754 deletions

37027
1.sql Executable file

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<?php <?php
ini_set('display_errors', 1 ); ini_set('display_errors', 0 );
/*require_once MYDIR . '/api/php/db.php'; /*require_once MYDIR . '/api/php/db.php';
require_once MYDIR . '/api/php/clean.php';*/ require_once MYDIR . '/api/php/clean.php';*/
if (file_exists('api/modules/' . $_GET['id'] . '/ajax.php')) require_once 'api/modules/' . $_GET['id'] . '/ajax.php'; if (file_exists('api/modules/' . $_GET['id'] . '/ajax.php')) require_once 'api/modules/' . $_GET['id'] . '/ajax.php';

View File

@ -5,7 +5,7 @@
Берем рандомные 10 товаров..... Берем рандомные 10 товаров.....
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
$rndTovar = \DB::getAll( 'SELECT * FROM `tovar` WHERE `artikul`<>"" ORDER BY RANDOM() LIMIT 10' ); $rndTovar = \DB::getAll( 'SELECT * FROM `tovar` WHERE `artikul`<>"" ORDER BY RAND() LIMIT 10' );
for ( $i=0; $i < count( $rndTovar ); $i++ ) { for ( $i=0; $i < count( $rndTovar ); $i++ ) {
$rndTovar[$i]['cena'] = \DB::getValue( "SELECT `cena` FROM `tovar_price_history` WHERE `tovar_id`=? ORDER BY `t` DESC LIMIT 1", $rndTovar[$i]['id'] ); $rndTovar[$i]['cena'] = \DB::getValue( "SELECT `cena` FROM `tovar_price_history` WHERE `tovar_id`=? ORDER BY `t` DESC LIMIT 1", $rndTovar[$i]['id'] );
$rndTovar[$i]['img'] = \DB::getValue( "SELECT `filename` FROM `tovar_img` WHERE `tovar_id`=? LIMIT 1", $rndTovar[$i]['id'] ); $rndTovar[$i]['img'] = \DB::getValue( "SELECT `filename` FROM `tovar_img` WHERE `tovar_id`=? LIMIT 1", $rndTovar[$i]['id'] );

View File

@ -1,65 +0,0 @@
<?php
class main extends MySQL{
//var $db; // Здесь объект для работы с MySQL
var $id;
/*function __construct($smarty, $settings){
@mkdir(MYDIR . '/img/pages_cat', 0700);
@mkdir(MYDIR . '/img/pages_cat/slider', 0700);
@mkdir(MYDIR . '/img/pages_cat/slider/' . ID, 0700);
/*
Создаем каталог под файлы раздела и определяемся с кэшем
*/
/* @mkdir (MYDIR . '/img/slider/' . ID, 0700);
if( $settings['cachePage'] > 0 ){
if( !@$_SESSION['user_id'] ) { /* если не авторизован - кешируем на часок */
/* $smarty -> caching = true;
$smarty -> cache_lifetime = $settings['cachePage'];
}
}
}
/* ------------------------------------------------------------------------------------------------------------------------- */
function get_info( $id ){ // получаем информацию о категории
$a['id'] = $id;
//$db = $this -> db;
$postrow = $this -> get_massiv ( 'pages', $a );
return $postrow;
}
/* ------------------------------------------------------------------------------------------------------------------------- */
function get_sub_cats( $id, $tip ){ // Получаем страницы
//$this -> debug = 2;
//$db = $this -> db;
$sql='SELECT * FROM `pages` WHERE `public` = "1" AND `tip` = "' . $tip . '" AND `parent` = "' . $id . '" ORDER BY `txt`';
$postrow = $this -> free_sql( $sql );
//print_r($postrow);
$num = count($postrow);
for($i = 0; $i < $num; $i++){
//парсим json
$j = $this -> from_j( $postrow[$i]['json'] );
foreach ( $j as $key => $value ){ $postrow[$i][$key] = $value;}
//Получаем фото
$a['page_id']=$postrow[$i]['id'];
$postrow[$i]['img']=$this->get_val('img', $a, 'fileName');
}
//print_r( $postrow );
return $postrow;
}
/* ------------------------------------------------------------------------------------------------------------------------- */
function breadcrumb( $id ){ // Получаем страницы
//хлебные крошки
$p=ID;
while ($p!=0){
unset($tmp);
unset($a);
$a['id']=$p;
$tmp=$db->get_massiv('m_groupe', $a, 'id', 1);
$p=$tmp[0]['parent'];
if (ID!=$tmp[0]['id'])$breadcrumb= '<li class="breadcrumb-item"><a href="/tovar_cat/' . $tmp[0]['id'] . '" style="font-size: 10pt;">' . $tmp[0]['naim'] . '</a></li>' . $breadcrumb;
}
$smarty -> assign( 'breadcrumb', $breadcrumb);
}
}
?>

View File

@ -1,8 +1,20 @@
<?php <?php
ini_set('display_errors', 0 ); ini_set('display_errors', 0 );
function ekr ($text) { // ФУНКЦИЯ очистки кода
$old1 = array(" ");#Ищем вредное ">",, "<"
$new1 = array("%");#Меняем на полезное"&gt;", , "&lt;"
$text = str_replace($old1, $new1, $text);#Собсно сама замена =)
return $text; }
$massiv=\DB::getAll( $massiv=\DB::getAll(
"SELECT * FROM `tovar` WHERE (`id`=? OR `title` LIKE '%" . $_POST['txt'] . "%' OR `txt` LIKE '%" . $_POST['txt'] . "%' OR `artikul`=?) AND `status`=1", "SELECT * FROM `tovar` WHERE (`id`=? OR `title` LIKE '%" . ekr( $_POST['txt'] ) . "%' OR `txt` LIKE '%" . ekr( $_POST['txt'] ) . "%' OR `artikul`=?) AND `status`=1",
array( $_POST['txt'], $_POST['txt'] ) ); array( $_POST['txt'], $_POST['txt'] ) );

View File

@ -1,6 +1,6 @@
<?php <?php
ini_set('display_errors', 0 ); ini_set('display_errors', 0);
/* /*
20.11.2017 добавлен поиск по алиасу (ЧПУ) /alias.html 20.11.2017 добавлен поиск по алиасу (ЧПУ) /alias.html
@ -10,15 +10,15 @@ ini_set('display_errors', 0 );
*/ */
//print_r($_SESSION); //print_r($_SESSION);
$mod = new main(BD_NAME, BD_TYPE, BD_HOST, BD_USER, BD_PWD, MOD);
//$mod->db=$db;
$page = $mod->get_page(ID);
//$mod->db=$db;
$page = \DB::getAll("SELECT * FROM `pages` WHERE `id`=? LIMIT 1", $_GET['id']);
if ($page[0]['status']==0)header( 'Location: /403/' );
$page[0]['date']=date('d.m.Y', $page[0]['t']); $page[0]['date']=date('d.m.Y', $page[0]['t']);
$smarty->assign('page', $page); $smarty->assign('page', $page);
//print_r($page); //print_r($page);
/*
//Получаем данные о категории //Получаем данные о категории
if ( $page[0]['parent'] !=0 ) $cat_info = $mod -> get_cat_info ( $page[0]['parent'] ); if ( $page[0]['parent'] !=0 ) $cat_info = $mod -> get_cat_info ( $page[0]['parent'] );
@ -57,5 +57,5 @@ unset($c);
$db -> or_by_desc = ''; $db -> or_by_desc = '';
$c['page_id']=$page[0]['id']; $c['page_id']=$page[0]['id'];
*/
?> ?>

View File

@ -66,7 +66,7 @@
<!-- Категории --> <!-- Категории -->
{include file=$cat_list massiv=$categoryList} {include file=$cat_list massiv=$categoryList}
<!-- Страницы --> <!-- Страницы -->
{include file=$pages_list massiv=$pages} {include file=$pages_list massiv=$pagesList}
</table> </table>
</div> </div>
<div class="tab-pane" id="tab-8-2"> <div class="tab-pane" id="tab-8-2">

View File

@ -40,7 +40,17 @@ $_GET['id'] = ( $_GET['id'] ) ? $_GET['id'] : 0;
//echo $category; //echo $category;
$categoryList = \DB::getAll("SELECT * FROM `pages_category` WHERE `category`=? ORDER BY `title`", $_GET['id']); $categoryList = \DB::getAll("SELECT * FROM `pages_category` WHERE `category`=? ORDER BY `title`", $_GET['id']);
$smarty -> assign( 'categoryList', $categoryList );//Получаем все опубликованные категории для модалки добавления и изменения категорий $smarty -> assign( 'categoryList', $categoryList );//Получаем все опубликованные категории для модалки добавления и изменения категорий
//print_r($categoryList);
/* ----------------------------------------------------------------------
07.01.2023
Получаем список страниц
---------------------------------------------------------------------- */
$pagesList = \DB::getAll("SELECT * FROM `pages` WHERE `category`=? ORDER BY `title`", $_GET['id']);
$smarty -> assign( 'pagesList', $pagesList );//Получаем все опубликованные категории для модалки добавления и изменения категорий
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
07.10.2022 07.10.2022
Подключаемые области Подключаемые области
@ -51,68 +61,4 @@ $smarty -> assign( 'modal_new_cat', 'api/modules/' . MOD . '/modal_new_cat.html'
$smarty -> assign( 'modal_del_page', 'api/modules/' . MOD . '/modal_del_page.html' ); $smarty -> assign( 'modal_del_page', 'api/modules/' . MOD . '/modal_del_page.html' );
//узнавалка текущей категории
unset($b);
unset($a);
$b['id']=ID;
/* вынести эту партанку в класс */
/*
if (ID){
$a['parent']=ID;
//узнаем вышестоящий каталог...
unset($b);
$b['id']=ID;
$db -> get_val('pages', $b, 'parent');
$parent=$db->result;
if ($parent>0)$smarty -> assign( 'parent', $parent );
}else{
$a['parent']=0;
}
$a['tip']='category';
$a['user_id']=$_SESSION['user_id'];
unset($cats);
//$cats = $db -> get_massiv ( 'pages', $a );
*/
/*
$num=count($cats);
for($i = 0; $i < $num; $i++){
if ($cats[$i]['id']){
unset($b);
$tmp=$db->from_j($db->clear_json($cats[$i]['json'])); //строку в джейсона в массив
$db->to_log($db->clear_json($cats[$i]['json']));
foreach ( $tmp as $key => $value ) $cats[$i][$key] = $value;
unset($tmp);
}
}
//print_r($cats);
$smarty -> assign( 'cats', $cats );
//получаем список страниц
//echo ("test1");
$pages = $mod -> get_pages('page', ID);
$smarty -> assign( 'pages', $pages );//список страниц
//$smarty -> assign( 'cat_id', ID );//ИД категории
$smarty -> assign( 'all_cats', $mod->get_all_cats() );//Получаем все опубликованные категории для модалки добавления и изменения категорий
*/
/*
if (ID) $smarty -> assign( 'this_cat', $mod -> get_this_cat( ID ) );//Эта категория
*/
?> ?>

View File

@ -12,24 +12,19 @@
<input type='text' name='alias' class="form-control mt-3" tabindex='6' value='{$page[0].alias}' placeholder="ЧПУ/Алиас"> <input type='text' name='alias' class="form-control mt-3" tabindex='6' value='{$page[0].alias}' placeholder="ЧПУ/Алиас">
<input type='text' name='rdir' class="form-control mt-3" tabindex='6' value='{$page[0].rdir}' placeholder="301-й редирект на новую страницу">
<b>Публиковать?</b>
<select name="public" class="form-control mt-3">
<option value="0">Нет</option>
<option value="1" {if $page[0].public==1}selected{/if}>Да</option>
</select>
<b>Категория</b> <b>Категория</b>
<select name="parent" class="form-control mt-3"> <select name="category" class="form-control mt-3">
<option value="0">Нет</option> <option value="0">Нет</option>
{section name=customer loop=$list} {section name=customer loop=$pages_category}
{if $list[customer].id}{assign var=json value=$list[customer].json} {if $pages_category[customer].id}
<option value="{$list[customer].id}" {if $page[0].cat==$list[customer].id}selected{/if}>{$json.title}</option>
<option value="{$pages_category[customer].id}" {if $page[0].category==$pages_category[customer].id}selected{/if}>{$pages_category[customer].title}</option>
{/if} {/if}
{/section} {/section}
</select> </select>
<br> <br>
<input type='submit' value='Сохранить' tabindex='5' name="ok" class="btn btn-dark mt-3 mb-3"> <input type='submit' value='Сохранить' tabindex='5' name="ok" class="btn btn-dark mt-3 mb-3">
</form> </form>
{$editor} {$editor_js}

View File

@ -1,4 +1,8 @@
{if $smarty.session.dostup=='a' || $smarty.session.dostup=='e'} {include file=$header_admin title="Создать страницу" h1="Новая страница" settings_mod="1"} {else} {include file=$header title="Создать страницу" h1="Новая страница"} {/if} {if $smarty.session.dostup=='a' || $smarty.session.dostup=='e'}
{include file=$header_admin title="Создать страницу" h1="Новая страница" settings_mod="1"}
{else}
{include file=$header title="Создать страницу" h1="Новая страница"}
{/if}
<h1 class="title text-center"> <h1 class="title text-center">
<!-- i class="fa fa-cog" style="font-size: 25pt;" title="Настройки" data-toggle="modal" data-target="#mod_settings"></i --> <!-- i class="fa fa-cog" style="font-size: 25pt;" title="Настройки" data-toggle="modal" data-target="#mod_settings"></i -->
@ -20,7 +24,7 @@
<div class="ibox"> <div class="ibox">
<div class="ibox-head"> <div class="ibox-head">
<div class="ibox-title">Редактирование страницы</div> <div class="ibox-title">Редактирование страницы: {$page[0].title|substr:15}</div>
<ul class="nav nav-tabs tabs-line pull-right"> <ul class="nav nav-tabs tabs-line pull-right">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" href="#tab-8-1" data-toggle="tab"><i class="fa fa-taxi"></i>Редактор</a> <a class="nav-link active" href="#tab-8-1" data-toggle="tab"><i class="fa fa-taxi"></i>Редактор</a>

View File

@ -1,83 +1,97 @@
<?php <?php
ini_set('display_errors', 0 );
if ( $_SESSION['dostup'] !=='a' && $_SESSION['dostup'] !== 'e' ) header( 'Location: /login/' ); if ( $_SESSION['dostup'] !=='a' && $_SESSION['dostup'] !== 'e' ) header( 'Location: /login/' );
/* $smarty -> assign( 'editor', 'api/modules/page_edit/editor.html' );
26.05.2017 $smarty -> assign( 'editor_js', '<script language="javascript" type="text/javascript" src="/api/soft/tinymce/4.3.12/tinymce.min.js"></script><script language="javascript" type="text/javascript" src="/api/soft/tinymce/4.3.12/load.php"></script>');
Добавлена загрузка обложки
27.07.2017
Урезан код за счет удаления открытых SQL-запросов, все перенесено в апи
20.11.2017
Работа с ЧПУ - изменение данных
*/
$smarty -> assign( 'editor', 'api/modules/pages_edit/editor.html' );
$smarty -> assign( 'editor', '<script language="javascript" type="text/javascript" src="/api/soft/tinymce/4.3.12/tinymce.min.js"></script><script language="javascript" type="text/javascript" src="/api/soft/tinymce/4.3.12/load.php"></script>');
ini_set( 'display_errors', 0 );
if ($_GET['id']){ if ($_GET['id']){
$_SESSION['page_id']=$_GET['id']; $_SESSION['page_id']=$_GET['id'];
$page=\DB::getAll("SELECT * FROM `pages` WHERE `id`=?", $_GET['id']); $page=\DB::getAll("SELECT * FROM `pages` WHERE `id`=? LIMIT 1", $_GET['id']);
$smarty -> assign( 'page', $page );
}
/*
//$mod = new main(BD_NAME, BD_TYPE, BD_HOST, BD_USER, BD_PWD, MOD);
// 22.05.2022: Получаем настройки модуля
$local_settings = $db -> get_mod_settings();
//Убрать в install.php
try {
$db->free_sql2('ALTER TABLE `pages` ADD COLUMN `mainImg` TEXT');
}catch (Exception $e) {
$this -> to_log( MOD . ': Выброшено исключение: ' . $e->getMessage() );
}
if (ID){
$page = $mod -> get_content_from_pages ( ID );
$smarty -> assign( 'page', $page ); $smarty -> assign( 'page', $page );
} }
//unset($a); /* ----------------------------------------------------------------------
//загружаем обложку 14.12.2022
if ( @$_FILES['oblozhka']['tmp_name'] ) $_POST['mainImg'] = $mod -> upload_main_img( $_FILES ); Получаем инфу о пользователе
---------------------------------------------------------------------- */
$smarty -> assign( 'userInfo', \core::getUserInfo( $_SESSION['user_id'] ) );
/* ----------------------------------------------------------------------
07.01.20223
Получаем список категорий
---------------------------------------------------------------------- */
$smarty -> assign( 'pages_category', \DB::getAll("SELECT * FROM `pages_category` WHERE `status`=1" ) );
if ($_POST){ if ($_POST){
function ekr ($text) { /* ----------------------------------------------------------------------
$old1 = array("'"); 07.01.20223
$new1 = array("&apos;"); Принимаем входящие данные
$text = str_replace($old1, $new1, $text); ---------------------------------------------------------------------- */
return $text; if ($_GET['id']){
} \DB::set("UPDATE `pages` SET
$_POST['tip']='page'; `title`=?,
$_POST['user_id']=$_SESSION['user_id']; `txt`=?,
$_POST['public']; `t`=?,
$_POST['parent']; `keywords`=?,
$_POST['t']=time(); `alias`=?,
$_POST['alias']; `description`=?,
$_POST['txt']; `category`=?,
unset($_POST['ok']); `user_id`=?,
//$res['json']=json_encode($_POST, JSON_UNESCAPED_UNICODE); `d`=? WHERE `id`=?", array(
if (ID) $_POST['title'],
$db->update('pages', ID, $_POST); $_POST['txt'],
else time(),
$db->add('pages', $_POST); $_POST['keywords'],
//header( 'Location: /page_all/' ); $_POST['alias'],
} $_POST['description'],
$_POST['category'],
$_SESSION['user_id'],
$_POST['d'],
$_GET['id']
) );
$id=$_GET['id'];
}else{
$id=\DB::add("INSERT INTO `pages` (`title`, `txt`, `t`, `keywords`, `alias`, `description`, `category`, `user_id`, `d`, `status`) VALUES (?,?,?,?,?,?,?,?,?,1)", array(
$_POST['title'],
$_POST['txt'],
time(),
$_POST['keywords'],
$_POST['alias'],
$_POST['description'],
$_POST['category'],
$_SESSION['user_id'],
$_POST['d']
) );
//выбираем редактор:*/
/* выбираем категорию */
/*unset($a);
$a['tip']='category';
$smarty -> assign( 'list', $db -> get_massiv ( 'pages', $a ) );
//$smarty -> assign( 'img', $mod -> get_images ( ID ) );
//$smarty -> assign( 'modal_settings', MYDIR . '/api/modules/' . MOD . '/modal.html' ); }
//загружаем список картинок
//unset($a); header( 'Location: /page_edit/' . $id );
//$a['page_id']=ID;
*/
}
?> ?>

View File

@ -32,6 +32,7 @@ class core{
Берем настройки модуля/сайта Берем настройки модуля/сайта
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
static function getSettings($set, $mod='global'){ static function getSettings($set, $mod='global'){
//echo 'SELECT `json` FROM `settings` WHERE `mod` = "' . $mod . '" LIMIT 1';
$txt = \DB::getValue('SELECT `json` FROM `settings` WHERE `mod` = "' . $mod . '" LIMIT 1'); $txt = \DB::getValue('SELECT `json` FROM `settings` WHERE `mod` = "' . $mod . '" LIMIT 1');
$massiv = \json::from_j($txt); $massiv = \json::from_j($txt);
return $massiv[$set]; return $massiv[$set];

View File

@ -27,13 +27,15 @@ class DB
* $this -> conn = new PDO( 'sqlite:' . $_SERVER['DOCUMENT_ROOT'] . '/bd/'. $bd ); * $this -> conn = new PDO( 'sqlite:' . $_SERVER['DOCUMENT_ROOT'] . '/bd/'. $bd );
*/ */
public static function getDbh(){ public static function getDbh(){
if (self::$type==''){
require 'set/' . $_SERVER['SERVER_NAME'] . '.php'; require 'set/' . $_SERVER['SERVER_NAME'] . '.php';
//self::$type=@$db['type']; if (self::$type==''){
if (@$db['type']=='mysql'){ if (@$db['type']=='mysql'){
self::$dsn=$db['type'] . ':dbname=' . $db['db'] . ';host=' . $db['host']; if (!self::$dsn){
self::$user=$db['user']; self::$dsn=$db['type'] . ':dbname=' . $db['db'] . ';host=' . $db['host'];
self::$pass=$db['password']; self::$user=$db['user'];
self::$pass=$db['password'];
}
if (!self::$dbh) { if (!self::$dbh) {
try { try {
self::$dbh = new PDO( self::$dbh = new PDO(
@ -47,10 +49,12 @@ class DB
} }
} }
if (@$db['type']=='sqlite3'){ if (@$db['type']=='sqlite3'){
# echo "lite";
// echo "lite";
if (!self::$dbh) { if (!self::$dbh) {
try { try {
self::$dbh = new PDO('sqlite:' . 'bd/'. $_SERVER['SERVER_NAME'] . '.db' ); self::$dbh = new PDO('sqlite:' . 'bd/'. $_SERVER['SERVER_NAME'] . '.db' );
echo self::$dsn;
//Делаем бекап БД //Делаем бекап БД
if (!file_exists('bd/' . date("Y-m-d") . '_'. $_SERVER['SERVER_NAME'] . '.zip'))exec ('zip bd/' . date("Y-m-d") . '_'. $_SERVER['SERVER_NAME'] . '.zip bd/'. $_SERVER['SERVER_NAME'] . '.db 9 &'); if (!file_exists('bd/' . date("Y-m-d") . '_'. $_SERVER['SERVER_NAME'] . '.zip'))exec ('zip bd/' . date("Y-m-d") . '_'. $_SERVER['SERVER_NAME'] . '.zip bd/'. $_SERVER['SERVER_NAME'] . '.db 9 &');
self::$dbh->exec('PRAGMA journal_mode=WAL;'); self::$dbh->exec('PRAGMA journal_mode=WAL;');
@ -61,6 +65,7 @@ class DB
self::$dbh = new PDO('sqlite:' . self::$path ); self::$dbh = new PDO('sqlite:' . self::$path );
self::$dbh->exec('PRAGMA journal_mode=WAL;'); self::$dbh->exec('PRAGMA journal_mode=WAL;');
} }
return self::$dbh; return self::$dbh;
} }
@ -149,169 +154,5 @@ class DB
self::$dbh -> query($query); self::$dbh -> query($query);
} }
} }
/*
олучение одной записи из БД
$item = DB::getRow("SELECT * FROM `category` WHERE `id` = ?", 1);
// Или
$item = DB::getRow("SELECT * FROM `category` WHERE `id` = :id", array('id' => 1));
print_r($item);
PHP
Результат:
Array
(
[id] => 1
[parent] => 0
[name] => Мороженое
)
Получение нескольких записей из БД
$items = DB::getAll("SELECT * FROM `category` WHERE `id` > 2");
print_r($items);
PHP
Результат:
Array
(
[0] => Array
(
[id] => 3
[parent] => 0
[name] => Фрукты
)
[1] => Array
(
[id] => 4
[parent] => 0
[name] => Ягоды
)
[2] => Array
(
[id] => 5
[parent] => 2
[name] => Грибы
)
...
)
Получения значения
$value = DB::getValue("SELECT `name` FROM `category` WHERE `id` = 2");
print_r($value);
PHP
Результат:
Овощи
Получения значений колонки
$values = DB::getColumn("SELECT `name` FROM `category`");
print_r($values);
PHP
Результат:
Array
(
[0] => Мороженое
[1] => Овощи
[2] => Фрукты
[3] => Ягоды
[4] => Грибы
[5] => Морепродукты
...
)
Добавление в БД
Метод возвращает ID вставленной записи.
$insert_id = DB::add("INSERT INTO `category` SET `name` = ?", 'Яблоки');
PHP
Все остальные запросы
Выполняет запросы в БД, такие как DELETE, UPDATE, CREATE TABLE и т.д. В случаи успеха возвращает true.
DB::set("DELETE FROM `category` WHERE `id` > ? AND `parent` > ?", array(123, 0));
*/
?> ?>

View File

@ -0,0 +1,2 @@
40.122.204.231;1673428053;Safari 10+;Mac OS;;
40.86.83.33;1673428320;Safari 10+;Mac OS;;
1 40.122.204.231 1673428053 Safari 10+ Mac OS
2 40.86.83.33 1673428320 Safari 10+ Mac OS

View File

@ -1 +1 @@
1672129215 1673428053
1 1672129215 1673428053

View File

@ -1,4 +1,4 @@
1671915600;1;1;1; 1671915600;1;1;1;
1671483600;1;1;1; 1671483600;1;1;1;
;1;1;0; 1672088400;1;1;1;
1671397200;2;2;1; 1671397200;2;2;1;

1 1671915600 1 1 1
2 1671483600 1 1 1
3 1672088400 1 1 0 1
4 1671397200 2 2 1

View File

@ -36,3 +36,26 @@
46.165.16.184;1673099558;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-16.html; 46.165.16.184;1673099558;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-16.html;
46.165.16.184;1673099577;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-18.html; 46.165.16.184;1673099577;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-18.html;
46.165.16.184;1673099598;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-19.html; 46.165.16.184;1673099598;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-19.html;
46.165.16.184;1673101053;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-19.html;
46.165.16.184;1673103952;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/56-19.html;
46.165.16.184;1673103959;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673108139;Firefox 10+;Linux;https://tk-ligat.ru/page/2;
46.165.16.184;1673108468;Firefox 10+;Linux;https://tk-ligat.ru/page/2;
46.165.16.184;1673108513;Firefox 10+;Linux;https://tk-ligat.ru/page/2;
46.165.16.184;1673109147;Firefox 10+;Linux;https://tk-ligat.ru/page/2;
46.165.16.184;1673109163;Firefox 10+;Linux;https://tk-ligat.ru/403/;
46.165.16.184;1673109288;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673109758;Firefox 10+;Linux;https://tk-ligat.ru/403/;
46.165.16.184;1673109797;Firefox 10+;Linux;https://tk-ligat.ru/403/;
46.165.16.184;1673109861;Firefox 10+;Linux;https://tk-ligat.ru/403/;
46.165.16.184;1673109889;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673109924;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/1859;
46.165.16.184;1673109940;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/12-0.html;
46.165.16.184;1673109943;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/89-1.html;
46.165.16.184;1673109946;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/3796;
46.165.16.184;1673111736;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/60-1.html;
46.165.16.184;1673114376;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/60-1.html;
46.165.16.184;1673114416;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/13-1.html;
46.165.16.184;1673114422;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/80-1.html;
46.165.16.184;1673119744;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/13-1.html;
46.165.16.184;1673119751;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/88-1.html;

1 46.165.16.184 1673064763 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/71-1.html
36 46.165.16.184 1673099558 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/56-16.html
37 46.165.16.184 1673099577 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/56-18.html
38 46.165.16.184 1673099598 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/56-19.html
39 46.165.16.184 1673101053 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/56-19.html
40 46.165.16.184 1673103952 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/56-19.html
41 46.165.16.184 1673103959 Firefox 10+ Linux https://tk-ligat.ru/
42 46.165.16.184 1673108139 Firefox 10+ Linux https://tk-ligat.ru/page/2
43 46.165.16.184 1673108468 Firefox 10+ Linux https://tk-ligat.ru/page/2
44 46.165.16.184 1673108513 Firefox 10+ Linux https://tk-ligat.ru/page/2
45 46.165.16.184 1673109147 Firefox 10+ Linux https://tk-ligat.ru/page/2
46 46.165.16.184 1673109163 Firefox 10+ Linux https://tk-ligat.ru/403/
47 46.165.16.184 1673109288 Firefox 10+ Linux https://tk-ligat.ru/
48 46.165.16.184 1673109758 Firefox 10+ Linux https://tk-ligat.ru/403/
49 46.165.16.184 1673109797 Firefox 10+ Linux https://tk-ligat.ru/403/
50 46.165.16.184 1673109861 Firefox 10+ Linux https://tk-ligat.ru/403/
51 46.165.16.184 1673109889 Firefox 10+ Linux https://tk-ligat.ru/
52 46.165.16.184 1673109924 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/1859
53 46.165.16.184 1673109940 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/12-0.html
54 46.165.16.184 1673109943 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/89-1.html
55 46.165.16.184 1673109946 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/3796
56 46.165.16.184 1673111736 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/60-1.html
57 46.165.16.184 1673114376 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/60-1.html
58 46.165.16.184 1673114416 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/13-1.html
59 46.165.16.184 1673114422 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/80-1.html
60 46.165.16.184 1673119744 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/13-1.html
61 46.165.16.184 1673119751 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/88-1.html

View File

@ -0,0 +1,20 @@
31.173.101.107;1673153311;Firefox 10+;Linux;https://tk-ligat.ru/login/;
88.83.200.111;1673156936;Chrome 10+;Windows;https://tk-ligat.ru/login/;
79.173.90.130;1673156962;Chrome 10+;Windows;https://tk-ligat.ru/;
46.165.16.184;1673159366;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673159369;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673159372;Firefox 10+;Linux;https://tk-ligat.ru/login/;
46.165.16.184;1673161296;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/88-1.html;
46.165.16.184;1673161307;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673161319;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/35-1.html;
46.165.16.184;1673161322;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/36-1.html;
46.165.16.184;1673161366;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/36-4.html;
46.165.16.184;1673161379;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/36-3.html;
46.165.16.184;1673161679;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/36-3.html;
46.165.16.184;1673182037;Firefox 10+;Linux;https://tk-ligat.ru/login/;
80.80.108.36;1673190475;Chrome 70+;Windows;http://webspros.ru/chat.php?invite=pc&member=tk-ligat.ru&pg=21&check=ok;
80.80.108.36;1673190536;Chrome 70+;Windows;http://webspros.ru/chat.php?invite=pc&member=tk-ligat.ru&pg=21&check=ok;
46.165.16.184;1673192291;Firefox 10+;Linux;https://tk-ligat.ru/login/;
46.165.16.184;1673196584;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673196592;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.16.184;1673196595;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/61-1.html;
1 31.173.101.107 1673153311 Firefox 10+ Linux https://tk-ligat.ru/login/
2 88.83.200.111 1673156936 Chrome 10+ Windows https://tk-ligat.ru/login/
3 79.173.90.130 1673156962 Chrome 10+ Windows https://tk-ligat.ru/
4 46.165.16.184 1673159366 Firefox 10+ Linux https://tk-ligat.ru/
5 46.165.16.184 1673159369 Firefox 10+ Linux https://tk-ligat.ru/
6 46.165.16.184 1673159372 Firefox 10+ Linux https://tk-ligat.ru/login/
7 46.165.16.184 1673161296 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/88-1.html
8 46.165.16.184 1673161307 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
9 46.165.16.184 1673161319 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/35-1.html
10 46.165.16.184 1673161322 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/36-1.html
11 46.165.16.184 1673161366 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/36-4.html
12 46.165.16.184 1673161379 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/36-3.html
13 46.165.16.184 1673161679 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/36-3.html
14 46.165.16.184 1673182037 Firefox 10+ Linux https://tk-ligat.ru/login/
15 80.80.108.36 1673190475 Chrome 70+ Windows http://webspros.ru/chat.php?invite=pc&member=tk-ligat.ru&pg=21&check=ok
16 80.80.108.36 1673190536 Chrome 70+ Windows http://webspros.ru/chat.php?invite=pc&member=tk-ligat.ru&pg=21&check=ok
17 46.165.16.184 1673192291 Firefox 10+ Linux https://tk-ligat.ru/login/
18 46.165.16.184 1673196584 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
19 46.165.16.184 1673196592 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/5-1.html
20 46.165.16.184 1673196595 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/61-1.html

View File

@ -0,0 +1,129 @@
95.29.225.49;1673218023;Chrome 10+;Windows;https://tk-ligat.ru/;
46.165.16.184;1673233223;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/61-1.html;
178.46.89.210;1673239577;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673239607;Chrome 10+;Windows;https://tk-ligat.ru/login/;
178.46.89.210;1673239640;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673239643;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673239652;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/1-1.html;
178.46.89.210;1673239661;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/4-1.html;
178.46.89.210;1673239689;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/4-1.html;
178.46.89.210;1673239691;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/4-1.html;
178.46.89.210;1673239703;Chrome 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673239723;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673239741;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673239745;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/7-1.html;
178.46.89.210;1673239819;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/7-1.html;
178.46.89.210;1673239821;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/7-1.html;
178.46.89.210;1673239823;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/67-1.html;
178.46.89.210;1673239849;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673239854;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/6-1.html;
178.46.89.210;1673239861;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673239869;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/12-1.html;
178.46.89.210;1673239880;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673239882;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
178.46.89.210;1673239899;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/72-1.html;
178.46.89.210;1673239902;Chrome 10+;Windows;https://tk-ligat.ru/tovar_show/21921;
178.46.89.210;1673239982;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673239985;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
178.46.89.210;1673240253;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673240281;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673240283;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673240287;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673240291;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/30-1.html;
178.46.89.210;1673240294;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/31-1.html;
178.46.89.210;1673240304;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/31-15.html;
178.46.89.210;1673240323;Chrome 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673240335;Chrome 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673240344;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673240348;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/10-1.html;
178.46.89.210;1673240352;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673240388;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/9-1.html;
178.46.89.210;1673240392;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/53-1.html;
178.46.89.210;1673240449;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673240453;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/35-1.html;
178.46.89.210;1673240458;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/44-1.html;
46.165.49.31;1673256140;Firefox 10+;Windows;https://tk-ligat.ru/;
46.165.49.31;1673256143;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.49.31;1673256145;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/7-1.html;
46.165.49.31;1673256148;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/41-1.html;
46.165.49.31;1673256158;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/41-1.html;
46.165.49.31;1673256260;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/41-1.html;
46.165.49.31;1673256263;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/41-1.html;
46.165.49.31;1673256309;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/41-1.html;
46.165.49.31;1673256319;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/41-1.html;
46.165.49.31;1673256340;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/41-1.html;
46.165.49.31;1673256452;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/7-1.html;
46.165.49.31;1673256453;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/54-1.html;
46.165.49.31;1673256456;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/7-1.html;
46.165.49.31;1673256458;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/67-1.html;
46.165.49.31;1673256464;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258017;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673258037;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258040;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
178.46.89.210;1673258047;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/50-1.html;
178.46.89.210;1673258077;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/62-1.html;
178.46.89.210;1673258097;Chrome 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673258104;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258108;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
178.46.89.210;1673258112;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/62-1.html;
178.46.89.210;1673258178;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/62-2.html;
178.46.89.210;1673258196;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/62-3.html;
178.46.89.210;1673258239;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673258307;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258311;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/6-1.html;
178.46.89.210;1673258319;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258323;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/9-1.html;
178.46.89.210;1673258326;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/53-1.html;
178.46.89.210;1673258341;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/53-2.html;
178.46.89.210;1673258352;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/53-3.html;
46.165.49.31;1673258428;Firefox 10+;Windows;https://tk-ligat.ru/;
46.165.49.31;1673258434;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.49.31;1673258436;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258438;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/50-1.html;
46.165.49.31;1673258440;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/50-1.html;
46.165.49.31;1673258442;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/50-1.html;
178.46.89.210;1673258447;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258450;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258541;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/50-1.html;
46.165.49.31;1673258543;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258546;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/62-1.html;
46.165.49.31;1673258548;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258550;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/50-1.html;
46.165.49.31;1673258552;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/50-1.html;
178.46.89.210;1673258593;Chrome 10+;Windows;https://tk-ligat.ru/;
46.165.49.31;1673258645;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258647;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/51-1.html;
46.165.49.31;1673258648;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258654;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/68-1.html;
46.165.49.31;1673258656;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258659;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/72-1.html;
46.165.49.31;1673258671;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258675;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/62-1.html;
46.165.49.31;1673258677;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.49.31;1673258680;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/61-1.html;
46.165.49.31;1673258705;Firefox 10+;Windows;https://tk-ligat.ru/new_find/;
46.165.49.31;1673258713;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.49.31;1673258727;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/12-1.html;
46.165.49.31;1673258750;Firefox 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673258778;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673258781;Chrome 10+;Windows;https://tk-ligat.ru/;
178.46.89.210;1673258799;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258810;Chrome 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673258828;Chrome 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673258832;Chrome 10+;Windows;https://tk-ligat.ru/new_find/;
178.46.89.210;1673258842;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258845;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/6-1.html;
178.46.89.210;1673258851;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673258853;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/12-1.html;
178.46.89.210;1673258861;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/29-1.html;
178.46.89.210;1673258873;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/26-1.html;
178.46.89.210;1673258898;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/78-1.html;
178.46.89.210;1673259118;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
178.46.89.210;1673259124;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/1-1.html;
178.46.89.210;1673259127;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/96-1.html;
178.46.89.210;1673259137;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/3-1.html;
178.46.89.210;1673259152;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/3-2.html;
37.204.10.28;1673268518;Chrome 10+;Windows;https://tk-ligat.ru/login/;
46.165.16.184;1673274975;Firefox 10+;Linux;https://tk-ligat.ru/login/;
46.165.16.184;1673274977;Firefox 10+;Linux;https://tk-ligat.ru/login/;
46.165.16.184;1673274981;Firefox 10+;Linux;https://tk-ligat.ru/;
1 95.29.225.49 1673218023 Chrome 10+ Windows https://tk-ligat.ru/
2 46.165.16.184 1673233223 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/61-1.html
3 178.46.89.210 1673239577 Chrome 10+ Windows https://tk-ligat.ru/
4 178.46.89.210 1673239607 Chrome 10+ Windows https://tk-ligat.ru/login/
5 178.46.89.210 1673239640 Chrome 10+ Windows https://tk-ligat.ru/
6 178.46.89.210 1673239643 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
7 178.46.89.210 1673239652 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/1-1.html
8 178.46.89.210 1673239661 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/4-1.html
9 178.46.89.210 1673239689 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/4-1.html
10 178.46.89.210 1673239691 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/4-1.html
11 178.46.89.210 1673239703 Chrome 10+ Windows https://tk-ligat.ru/new_find/
12 178.46.89.210 1673239723 Chrome 10+ Windows https://tk-ligat.ru/
13 178.46.89.210 1673239741 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
14 178.46.89.210 1673239745 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/7-1.html
15 178.46.89.210 1673239819 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/7-1.html
16 178.46.89.210 1673239821 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/7-1.html
17 178.46.89.210 1673239823 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/67-1.html
18 178.46.89.210 1673239849 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
19 178.46.89.210 1673239854 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/6-1.html
20 178.46.89.210 1673239861 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
21 178.46.89.210 1673239869 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/12-1.html
22 178.46.89.210 1673239880 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
23 178.46.89.210 1673239882 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
24 178.46.89.210 1673239899 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/72-1.html
25 178.46.89.210 1673239902 Chrome 10+ Windows https://tk-ligat.ru/tovar_show/21921
26 178.46.89.210 1673239982 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
27 178.46.89.210 1673239985 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
28 178.46.89.210 1673240253 Chrome 10+ Windows https://tk-ligat.ru/
29 178.46.89.210 1673240281 Chrome 10+ Windows https://tk-ligat.ru/
30 178.46.89.210 1673240283 Chrome 10+ Windows https://tk-ligat.ru/
31 178.46.89.210 1673240287 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
32 178.46.89.210 1673240291 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/30-1.html
33 178.46.89.210 1673240294 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/31-1.html
34 178.46.89.210 1673240304 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/31-15.html
35 178.46.89.210 1673240323 Chrome 10+ Windows https://tk-ligat.ru/new_find/
36 178.46.89.210 1673240335 Chrome 10+ Windows https://tk-ligat.ru/new_find/
37 178.46.89.210 1673240344 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
38 178.46.89.210 1673240348 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/10-1.html
39 178.46.89.210 1673240352 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
40 178.46.89.210 1673240388 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/9-1.html
41 178.46.89.210 1673240392 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/53-1.html
42 178.46.89.210 1673240449 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
43 178.46.89.210 1673240453 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/35-1.html
44 178.46.89.210 1673240458 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/44-1.html
45 46.165.49.31 1673256140 Firefox 10+ Windows https://tk-ligat.ru/
46 46.165.49.31 1673256143 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
47 46.165.49.31 1673256145 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/7-1.html
48 46.165.49.31 1673256148 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/41-1.html
49 46.165.49.31 1673256158 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/41-1.html
50 46.165.49.31 1673256260 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/41-1.html
51 46.165.49.31 1673256263 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/41-1.html
52 46.165.49.31 1673256309 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/41-1.html
53 46.165.49.31 1673256319 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/41-1.html
54 46.165.49.31 1673256340 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/41-1.html
55 46.165.49.31 1673256452 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/7-1.html
56 46.165.49.31 1673256453 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/54-1.html
57 46.165.49.31 1673256456 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/7-1.html
58 46.165.49.31 1673256458 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/67-1.html
59 46.165.49.31 1673256464 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
60 178.46.89.210 1673258017 Chrome 10+ Windows https://tk-ligat.ru/
61 178.46.89.210 1673258037 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
62 178.46.89.210 1673258040 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
63 178.46.89.210 1673258047 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/50-1.html
64 178.46.89.210 1673258077 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/62-1.html
65 178.46.89.210 1673258097 Chrome 10+ Windows https://tk-ligat.ru/new_find/
66 178.46.89.210 1673258104 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
67 178.46.89.210 1673258108 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
68 178.46.89.210 1673258112 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/62-1.html
69 178.46.89.210 1673258178 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/62-2.html
70 178.46.89.210 1673258196 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/62-3.html
71 178.46.89.210 1673258239 Chrome 10+ Windows https://tk-ligat.ru/
72 178.46.89.210 1673258307 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
73 178.46.89.210 1673258311 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/6-1.html
74 178.46.89.210 1673258319 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
75 178.46.89.210 1673258323 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/9-1.html
76 178.46.89.210 1673258326 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/53-1.html
77 178.46.89.210 1673258341 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/53-2.html
78 178.46.89.210 1673258352 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/53-3.html
79 46.165.49.31 1673258428 Firefox 10+ Windows https://tk-ligat.ru/
80 46.165.49.31 1673258434 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
81 46.165.49.31 1673258436 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
82 46.165.49.31 1673258438 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/50-1.html
83 46.165.49.31 1673258440 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/50-1.html
84 46.165.49.31 1673258442 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/50-1.html
85 178.46.89.210 1673258447 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
86 178.46.89.210 1673258450 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
87 46.165.49.31 1673258541 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/50-1.html
88 46.165.49.31 1673258543 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
89 46.165.49.31 1673258546 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/62-1.html
90 46.165.49.31 1673258548 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
91 46.165.49.31 1673258550 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/50-1.html
92 46.165.49.31 1673258552 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/50-1.html
93 178.46.89.210 1673258593 Chrome 10+ Windows https://tk-ligat.ru/
94 46.165.49.31 1673258645 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
95 46.165.49.31 1673258647 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/51-1.html
96 46.165.49.31 1673258648 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
97 46.165.49.31 1673258654 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/68-1.html
98 46.165.49.31 1673258656 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
99 46.165.49.31 1673258659 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/72-1.html
100 46.165.49.31 1673258671 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
101 46.165.49.31 1673258675 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/62-1.html
102 46.165.49.31 1673258677 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/5-1.html
103 46.165.49.31 1673258680 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/61-1.html
104 46.165.49.31 1673258705 Firefox 10+ Windows https://tk-ligat.ru/new_find/
105 46.165.49.31 1673258713 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
106 46.165.49.31 1673258727 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/12-1.html
107 46.165.49.31 1673258750 Firefox 10+ Windows https://tk-ligat.ru/new_find/
108 178.46.89.210 1673258778 Chrome 10+ Windows https://tk-ligat.ru/
109 178.46.89.210 1673258781 Chrome 10+ Windows https://tk-ligat.ru/
110 178.46.89.210 1673258799 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
111 178.46.89.210 1673258810 Chrome 10+ Windows https://tk-ligat.ru/new_find/
112 178.46.89.210 1673258828 Chrome 10+ Windows https://tk-ligat.ru/new_find/
113 178.46.89.210 1673258832 Chrome 10+ Windows https://tk-ligat.ru/new_find/
114 178.46.89.210 1673258842 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
115 178.46.89.210 1673258845 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/6-1.html
116 178.46.89.210 1673258851 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
117 178.46.89.210 1673258853 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/12-1.html
118 178.46.89.210 1673258861 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/29-1.html
119 178.46.89.210 1673258873 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/26-1.html
120 178.46.89.210 1673258898 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/78-1.html
121 178.46.89.210 1673259118 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
122 178.46.89.210 1673259124 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/1-1.html
123 178.46.89.210 1673259127 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/96-1.html
124 178.46.89.210 1673259137 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/3-1.html
125 178.46.89.210 1673259152 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/3-2.html
126 37.204.10.28 1673268518 Chrome 10+ Windows https://tk-ligat.ru/login/
127 46.165.16.184 1673274975 Firefox 10+ Linux https://tk-ligat.ru/login/
128 46.165.16.184 1673274977 Firefox 10+ Linux https://tk-ligat.ru/login/
129 46.165.16.184 1673274981 Firefox 10+ Linux https://tk-ligat.ru/

View File

@ -0,0 +1,10 @@
46.165.16.184;1673318791;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673318799;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.16.184;1673318803;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/51-1.html;
46.165.16.184;1673318807;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/5-1.html;
46.165.16.184;1673318811;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/61-1.html;
46.165.16.184;1673358589;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673360982;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673374412;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673374420;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/1-1.html;
46.165.16.184;1673374424;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/3-1.html;
1 46.165.16.184 1673318791 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
2 46.165.16.184 1673318799 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/5-1.html
3 46.165.16.184 1673318803 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/51-1.html
4 46.165.16.184 1673318807 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/5-1.html
5 46.165.16.184 1673318811 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/61-1.html
6 46.165.16.184 1673358589 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
7 46.165.16.184 1673360982 Firefox 10+ Linux https://tk-ligat.ru/
8 46.165.16.184 1673374412 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
9 46.165.16.184 1673374420 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/1-1.html
10 46.165.16.184 1673374424 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/3-1.html

View File

@ -0,0 +1,66 @@
46.165.16.184;1673406667;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673406675;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/7-1.html;
46.165.16.184;1673406678;Chrome 10+;Linux;https://tk-ligat.ru/tovar_cat/67-1.html;
13.89.200.136;1673410552;Safari 10+;Mac OS;;
188.17.169.8;1673423628;Chrome 10+;Windows;https://tk-ligat.ru/;
188.17.169.8;1673423632;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/0-1.html;
188.17.169.8;1673423636;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/1-1.html;
188.17.169.8;1673423640;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/3-1.html;
188.17.169.8;1673423661;Chrome 10+;Windows;https://tk-ligat.ru/tovar_cat/4-1.html;
188.17.169.8;1673423696;Chrome 10+;Windows;https://tk-ligat.ru/;
46.165.16.184;1673445262;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673445270;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673445273;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673445275;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673448691;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673448701;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673448744;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673448773;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673448788;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673448837;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673448934;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673449000;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673449054;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673449055;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/16360;
46.165.16.184;1673449061;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449193;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449272;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449279;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449612;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449636;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449851;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449861;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449945;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673449948;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/2945;
46.165.16.184;1673452178;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452334;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452354;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452364;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452374;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452440;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452495;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452556;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452567;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452575;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452630;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452647;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452657;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452683;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452694;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452728;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452739;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452744;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452846;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452881;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452928;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673452955;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453014;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453042;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453065;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453100;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453131;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453137;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453249;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453269;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453284;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673453489;Firefox 10+;Linux;https://tk-ligat.ru/;
1 46.165.16.184 1673406667 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
2 46.165.16.184 1673406675 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/7-1.html
3 46.165.16.184 1673406678 Chrome 10+ Linux https://tk-ligat.ru/tovar_cat/67-1.html
4 13.89.200.136 1673410552 Safari 10+ Mac OS
5 188.17.169.8 1673423628 Chrome 10+ Windows https://tk-ligat.ru/
6 188.17.169.8 1673423632 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/0-1.html
7 188.17.169.8 1673423636 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/1-1.html
8 188.17.169.8 1673423640 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/3-1.html
9 188.17.169.8 1673423661 Chrome 10+ Windows https://tk-ligat.ru/tovar_cat/4-1.html
10 188.17.169.8 1673423696 Chrome 10+ Windows https://tk-ligat.ru/
11 46.165.16.184 1673445262 Firefox 10+ Linux https://tk-ligat.ru/
12 46.165.16.184 1673445270 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
13 46.165.16.184 1673445273 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
14 46.165.16.184 1673445275 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
15 46.165.16.184 1673448691 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
16 46.165.16.184 1673448701 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
17 46.165.16.184 1673448744 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
18 46.165.16.184 1673448773 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
19 46.165.16.184 1673448788 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
20 46.165.16.184 1673448837 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
21 46.165.16.184 1673448934 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
22 46.165.16.184 1673449000 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
23 46.165.16.184 1673449054 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
24 46.165.16.184 1673449055 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/16360
25 46.165.16.184 1673449061 Firefox 10+ Linux https://tk-ligat.ru/
26 46.165.16.184 1673449193 Firefox 10+ Linux https://tk-ligat.ru/
27 46.165.16.184 1673449272 Firefox 10+ Linux https://tk-ligat.ru/
28 46.165.16.184 1673449279 Firefox 10+ Linux https://tk-ligat.ru/
29 46.165.16.184 1673449612 Firefox 10+ Linux https://tk-ligat.ru/
30 46.165.16.184 1673449636 Firefox 10+ Linux https://tk-ligat.ru/
31 46.165.16.184 1673449851 Firefox 10+ Linux https://tk-ligat.ru/
32 46.165.16.184 1673449861 Firefox 10+ Linux https://tk-ligat.ru/
33 46.165.16.184 1673449945 Firefox 10+ Linux https://tk-ligat.ru/
34 46.165.16.184 1673449948 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/2945
35 46.165.16.184 1673452178 Firefox 10+ Linux https://tk-ligat.ru/
36 46.165.16.184 1673452334 Firefox 10+ Linux https://tk-ligat.ru/
37 46.165.16.184 1673452354 Firefox 10+ Linux https://tk-ligat.ru/
38 46.165.16.184 1673452364 Firefox 10+ Linux https://tk-ligat.ru/
39 46.165.16.184 1673452374 Firefox 10+ Linux https://tk-ligat.ru/
40 46.165.16.184 1673452440 Firefox 10+ Linux https://tk-ligat.ru/
41 46.165.16.184 1673452495 Firefox 10+ Linux https://tk-ligat.ru/
42 46.165.16.184 1673452556 Firefox 10+ Linux https://tk-ligat.ru/
43 46.165.16.184 1673452567 Firefox 10+ Linux https://tk-ligat.ru/
44 46.165.16.184 1673452575 Firefox 10+ Linux https://tk-ligat.ru/
45 46.165.16.184 1673452630 Firefox 10+ Linux https://tk-ligat.ru/
46 46.165.16.184 1673452647 Firefox 10+ Linux https://tk-ligat.ru/
47 46.165.16.184 1673452657 Firefox 10+ Linux https://tk-ligat.ru/
48 46.165.16.184 1673452683 Firefox 10+ Linux https://tk-ligat.ru/
49 46.165.16.184 1673452694 Firefox 10+ Linux https://tk-ligat.ru/
50 46.165.16.184 1673452728 Firefox 10+ Linux https://tk-ligat.ru/
51 46.165.16.184 1673452739 Firefox 10+ Linux https://tk-ligat.ru/
52 46.165.16.184 1673452744 Firefox 10+ Linux https://tk-ligat.ru/
53 46.165.16.184 1673452846 Firefox 10+ Linux https://tk-ligat.ru/
54 46.165.16.184 1673452881 Firefox 10+ Linux https://tk-ligat.ru/
55 46.165.16.184 1673452928 Firefox 10+ Linux https://tk-ligat.ru/
56 46.165.16.184 1673452955 Firefox 10+ Linux https://tk-ligat.ru/
57 46.165.16.184 1673453014 Firefox 10+ Linux https://tk-ligat.ru/
58 46.165.16.184 1673453042 Firefox 10+ Linux https://tk-ligat.ru/
59 46.165.16.184 1673453065 Firefox 10+ Linux https://tk-ligat.ru/
60 46.165.16.184 1673453100 Firefox 10+ Linux https://tk-ligat.ru/
61 46.165.16.184 1673453131 Firefox 10+ Linux https://tk-ligat.ru/
62 46.165.16.184 1673453137 Firefox 10+ Linux https://tk-ligat.ru/
63 46.165.16.184 1673453249 Firefox 10+ Linux https://tk-ligat.ru/
64 46.165.16.184 1673453269 Firefox 10+ Linux https://tk-ligat.ru/
65 46.165.16.184 1673453284 Firefox 10+ Linux https://tk-ligat.ru/
66 46.165.16.184 1673453489 Firefox 10+ Linux https://tk-ligat.ru/

View File

@ -0,0 +1,12 @@
95.161.221.29;1673495025;Chrome 10+;Windows;https://tk-ligat.ru/login/;
88.83.200.151;1673495054;Chrome 10+;Windows;https://tk-ligat.ru/;
46.165.49.31;1673523882;Firefox 10+;Windows;https://tk-ligat.ru/tovar_cat/56-3.html;
46.165.16.184;1673534873;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673534888;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673534894;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673535113;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673537791;Firefox 10+;Linux;https://tk-ligat.ru/new_find/;
46.165.16.184;1673538135;Firefox 10+;Linux;https://tk-ligat.ru/new_find/;
46.165.16.184;1673538198;Firefox 10+;Linux;https://tk-ligat.ru/new_find/;
46.165.16.184;1673538251;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/7911;
46.165.16.184;1673538298;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/22983;
1 95.161.221.29 1673495025 Chrome 10+ Windows https://tk-ligat.ru/login/
2 88.83.200.151 1673495054 Chrome 10+ Windows https://tk-ligat.ru/
3 46.165.49.31 1673523882 Firefox 10+ Windows https://tk-ligat.ru/tovar_cat/56-3.html
4 46.165.16.184 1673534873 Firefox 10+ Linux https://tk-ligat.ru/
5 46.165.16.184 1673534888 Firefox 10+ Linux https://tk-ligat.ru/
6 46.165.16.184 1673534894 Firefox 10+ Linux https://tk-ligat.ru/
7 46.165.16.184 1673535113 Firefox 10+ Linux https://tk-ligat.ru/
8 46.165.16.184 1673537791 Firefox 10+ Linux https://tk-ligat.ru/new_find/
9 46.165.16.184 1673538135 Firefox 10+ Linux https://tk-ligat.ru/new_find/
10 46.165.16.184 1673538198 Firefox 10+ Linux https://tk-ligat.ru/new_find/
11 46.165.16.184 1673538251 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/7911
12 46.165.16.184 1673538298 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/22983

View File

@ -0,0 +1,2 @@
46.165.16.184;1673625411;Firefox 10+;Linux;https://tk-ligat.ru/new_find/;
46.165.16.184;1673625418;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/22042;
1 46.165.16.184 1673625411 Firefox 10+ Linux https://tk-ligat.ru/new_find/
2 46.165.16.184 1673625418 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/22042

View File

@ -0,0 +1,47 @@
205.169.39.63;1673683825;Chrome 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673695589;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673695594;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/18548;
46.165.16.184;1673702699;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/18548;
46.165.16.184;1673705155;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/18548;
46.165.16.184;1673705159;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673705166;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673705173;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673705229;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673705259;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/15973;
46.165.16.184;1673705262;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/15973;
46.165.16.184;1673705267;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/15973;
46.165.16.184;1673705270;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673705282;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673705294;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/3560;
46.165.16.184;1673705729;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/3560;
46.165.16.184;1673705735;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673705824;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673705827;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673705836;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/1124;
46.165.16.184;1673705862;Firefox 10+;Linux;https://tk-ligat.ru/new_find/;
46.165.16.184;1673705950;Firefox 10+;Linux;https://tk-ligat.ru/new_find/;
46.165.16.184;1673707234;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673707243;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673707396;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673707857;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/4905;
46.165.16.184;1673707899;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
46.165.16.184;1673707922;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
46.165.16.184;1673707925;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/4905;
46.165.16.184;1673707939;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
185.149.41.41;1673708116;Firefox 10+;Windows;https://tk-ligat.ru/;
46.165.16.184;1673708835;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
46.165.16.184;1673708844;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
46.165.16.184;1673708990;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
46.165.16.184;1673709060;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673709066;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/3559;
46.165.16.184;1673709552;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673709605;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
46.165.16.184;1673709955;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/3559;
46.165.16.184;1673709985;Firefox 10+;Linux;https://tk-ligat.ru/cart/;
46.165.16.184;1673710008;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673710094;Firefox 10+;Linux;https://tk-ligat.ru/tovar_cat/0-1.html;
46.165.16.184;1673710112;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/2919;
46.165.16.184;1673710121;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673710126;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/15576;
46.165.16.184;1673711562;Firefox 10+;Linux;https://tk-ligat.ru/;
46.165.16.184;1673712736;Firefox 10+;Linux;https://tk-ligat.ru/tovar_show/17030;
1 205.169.39.63 1673683825 Chrome 10+ Linux https://tk-ligat.ru/
2 46.165.16.184 1673695589 Firefox 10+ Linux https://tk-ligat.ru/
3 46.165.16.184 1673695594 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/18548
4 46.165.16.184 1673702699 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/18548
5 46.165.16.184 1673705155 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/18548
6 46.165.16.184 1673705159 Firefox 10+ Linux https://tk-ligat.ru/
7 46.165.16.184 1673705166 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
8 46.165.16.184 1673705173 Firefox 10+ Linux https://tk-ligat.ru/
9 46.165.16.184 1673705229 Firefox 10+ Linux https://tk-ligat.ru/
10 46.165.16.184 1673705259 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/15973
11 46.165.16.184 1673705262 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/15973
12 46.165.16.184 1673705267 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/15973
13 46.165.16.184 1673705270 Firefox 10+ Linux https://tk-ligat.ru/
14 46.165.16.184 1673705282 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
15 46.165.16.184 1673705294 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/3560
16 46.165.16.184 1673705729 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/3560
17 46.165.16.184 1673705735 Firefox 10+ Linux https://tk-ligat.ru/
18 46.165.16.184 1673705824 Firefox 10+ Linux https://tk-ligat.ru/
19 46.165.16.184 1673705827 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
20 46.165.16.184 1673705836 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/1124
21 46.165.16.184 1673705862 Firefox 10+ Linux https://tk-ligat.ru/new_find/
22 46.165.16.184 1673705950 Firefox 10+ Linux https://tk-ligat.ru/new_find/
23 46.165.16.184 1673707234 Firefox 10+ Linux https://tk-ligat.ru/
24 46.165.16.184 1673707243 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
25 46.165.16.184 1673707396 Firefox 10+ Linux https://tk-ligat.ru/
26 46.165.16.184 1673707857 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/4905
27 46.165.16.184 1673707899 Firefox 10+ Linux https://tk-ligat.ru/cart/
28 46.165.16.184 1673707922 Firefox 10+ Linux https://tk-ligat.ru/cart/
29 46.165.16.184 1673707925 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/4905
30 46.165.16.184 1673707939 Firefox 10+ Linux https://tk-ligat.ru/cart/
31 185.149.41.41 1673708116 Firefox 10+ Windows https://tk-ligat.ru/
32 46.165.16.184 1673708835 Firefox 10+ Linux https://tk-ligat.ru/cart/
33 46.165.16.184 1673708844 Firefox 10+ Linux https://tk-ligat.ru/cart/
34 46.165.16.184 1673708990 Firefox 10+ Linux https://tk-ligat.ru/cart/
35 46.165.16.184 1673709060 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
36 46.165.16.184 1673709066 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/3559
37 46.165.16.184 1673709552 Firefox 10+ Linux https://tk-ligat.ru/
38 46.165.16.184 1673709605 Firefox 10+ Linux https://tk-ligat.ru/cart/
39 46.165.16.184 1673709955 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/3559
40 46.165.16.184 1673709985 Firefox 10+ Linux https://tk-ligat.ru/cart/
41 46.165.16.184 1673710008 Firefox 10+ Linux https://tk-ligat.ru/
42 46.165.16.184 1673710094 Firefox 10+ Linux https://tk-ligat.ru/tovar_cat/0-1.html
43 46.165.16.184 1673710112 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/2919
44 46.165.16.184 1673710121 Firefox 10+ Linux https://tk-ligat.ru/
45 46.165.16.184 1673710126 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/15576
46 46.165.16.184 1673711562 Firefox 10+ Linux https://tk-ligat.ru/
47 46.165.16.184 1673712736 Firefox 10+ Linux https://tk-ligat.ru/tovar_show/17030

View File

@ -1 +1 @@
1672767443 1673374412
1 1672767443 1673374412

View File

@ -1,146 +1,150 @@
1657832400;2;2;;15.07.2022.csv; 1673298000;7;1;2;
1662411600;1;1;;06.09.2022.csv; 1657832400;2;2;2;
1664571600;2;2;;01.10.2022.csv; 1662411600;1;1;1;
1660338000;1;1;;13.08.2022.csv; 1664571600;2;2;2;
1662584400;2;2;;08.09.2022.csv; 1660338000;1;1;1;
1671570000;43;4;;21.12.2022.csv; 1662584400;2;2;2;
1666386000;13;2;;22.10.2022.csv; 1671570000;43;4;3;
1665867600;3;2;;16.10.2022.csv; 1666386000;13;2;2;
1662498000;5;5;;07.09.2022.csv; 1673211600;129;5;3;
1661202000;5;3;;23.08.2022.csv; 1665867600;3;2;2;
1671310800;10;2;;18.12.2022.csv; 1662498000;5;5;4;
1670878800;7;3;;13.12.2022.csv; 1661202000;5;3;3;
1658350800;1;1;;21.07.2022.csv; 1671310800;10;2;2;
1662843600;7;2;;11.09.2022.csv; 1670878800;7;3;3;
1672952400;141;3;;06.01.2023.csv; 1658350800;1;1;1;
1666126800;5;2;;19.10.2022.csv; 1662843600;7;2;3;
1671051600;45;3;;15.12.2022.csv; 1672952400;197;7;10;
1660597200;14;2;;16.08.2022.csv; 1666126800;5;2;2;
1671915600;176;3;;25.12.2022.csv; 1671051600;45;3;2;
1657314000;3;2;;09.07.2022.csv; 1660597200;14;2;2;
1671742800;2;1;;23.12.2022.csv; 1671915600;176;3;4;
1666818000;1;1;;27.10.2022.csv; 1657314000;3;2;2;
1661029200;18;3;;21.08.2022.csv; 1671742800;2;1;1;
1660251600;1;1;;12.08.2022.csv; 1666818000;1;1;1;
1656277200;10;5;;27.06.2022.csv; 1661029200;18;3;3;
1663621200;10;6;;20.09.2022.csv; 1660251600;1;1;1;
1658091600;2;2;;18.07.2022.csv; 1656277200;10;5;4;
1671483600;67;3;;20.12.2022.csv; 1663621200;10;6;5;
1672434000;50;2;;31.12.2022.csv; 1658091600;2;2;2;
1656968400;15;4;;05.07.2022.csv; 1671483600;67;3;2;
1672088400;240;3;;27.12.2022.csv; 1672434000;50;2;2;
1657400400;2;2;;10.07.2022.csv; 1656968400;15;4;4;
1660078800;1;1;;10.08.2022.csv; 1672088400;240;3;4;
1660165200;2;2;;11.08.2022.csv; 1657400400;2;2;2;
1657141200;15;4;;07.07.2022.csv; 1660078800;1;1;1;
1657746000;2;2;;14.07.2022.csv; 1660165200;2;2;2;
1671829200;45;4;;24.12.2022 (conflicted copy 2022-12-24 194548).csv; 1657141200;15;4;4;
1665954000;2;1;;17.10.2022.csv; 1657746000;2;2;2;
1660510800;15;6;;15.08.2022.csv; 1671829200;45;4;3;
1661806800;4;4;;30.08.2022.csv; 1665954000;2;1;1;
1658005200;2;2;;17.07.2022.csv; 1660510800;15;6;4;
1659992400;1;1;;09.08.2022.csv; 1661806800;4;4;4;
1666299600;6;2;;21.10.2022.csv; 1658005200;2;2;2;
1672866000;74;5;;05.01.2023.csv; 1659992400;1;1;1;
1666645200;3;3;;25.10.2022.csv; 1666299600;6;2;2;
1661374800;6;3;;25.08.2022.csv; 1672866000;74;5;6;
1662066000;3;3;;02.09.2022.csv; 1666645200;3;3;3;
1656363600;9;4;;28.06.2022.csv; 1661374800;6;3;4;
1656622800;1;1;;01.07.2022.csv; 1662066000;3;3;2;
1663362000;1;1;;17.09.2022.csv; 1656363600;9;4;4;
1672174800;177;3;;28.12.2022.csv; 1656622800;1;1;1;
1672261200;84;3;;29.12.2022.csv; 1663362000;1;1;1;
1664226000;3;1;;27.09.2022.csv; 1672174800;177;3;5;
1659301200;2;2;;01.08.2022.csv; 1672261200;84;3;5;
1667250000;1;1;;01.11.2022.csv; 1664226000;3;1;1;
1663880400;9;2;;23.09.2022.csv; 1659301200;2;2;2;
1659214800;1;1;;31.07.2022.csv; 1667250000;1;1;1;
1664744400;1;1;;03.10.2022.csv; 1663880400;9;2;1;
1659646800;2;2;;05.08.2022.csv; 1659214800;1;1;1;
1663707600;2;1;;21.09.2022.csv; 1664744400;1;1;1;
1657227600;3;3;;08.07.2022.csv; 1659646800;2;2;2;
1661547600;2;2;;27.08.2022.csv; 1663707600;2;1;1;
1656795600;56;1;;03.07.2022.csv; 1657227600;3;3;3;
1659560400;1;1;;04.08.2022.csv; 1661547600;2;2;2;
1672002000;120;2;;26.12.2022.csv; 1656795600;56;1;1;
1665176400;6;1;;08.10.2022.csv; 1659560400;1;1;1;
1662152400;2;2;;03.09.2022.csv; 1672002000;120;2;5;
1671829200;9;4;;24.12.2022.csv; 1665176400;6;1;1;
1661893200;1;1;;31.08.2022.csv; 1662152400;2;2;2;
1663189200;2;2;;15.09.2022.csv; 1671829200;9;4;3;
1656882000;2;2;;04.07.2022.csv; 1661893200;1;1;1;
1670965200;2;1;;14.12.2022.csv; 1663189200;2;2;2;
1672520400;228;2;;01.01.2023.csv; 1656882000;2;2;2;
1660424400;1;1;;14.08.2022.csv; 1670965200;2;1;1;
1658955600;1;1;;28.07.2022.csv; 1672520400;228;2;3;
1659042000;1;1;;29.07.2022.csv; 1660424400;1;1;1;
1658610000;1;1;;24.07.2022.csv; 1658955600;1;1;1;
1662325200;2;2;;05.09.2022.csv; 1673125200;20;5;6;
1666472400;13;3;;23.10.2022.csv; 1659042000;1;1;1;
1658696400;1;1;;25.07.2022.csv; 1658610000;1;1;1;
1659387600;1;1;;02.08.2022.csv; 1662325200;2;2;2;
1666904400;7;4;;28.10.2022.csv; 1666472400;13;3;3;
1657918800;1;1;;16.07.2022.csv; 1658696400;1;1;1;
1667336400;3;1;;02.11.2022.csv; 1659387600;1;1;1;
1656450000;2;2;;29.06.2022.csv; 1666904400;7;4;4;
1658782800;3;3;;26.07.2022.csv; 1657918800;1;1;1;
1672693200;147;4;;03.01.2023.csv; 1667336400;3;1;1;
1663102800;1;1;;14.09.2022.csv; 1656450000;2;2;2;
1659474000;1;1;;03.08.2022.csv; 1658782800;3;3;2;
1660683600;15;4;;17.08.2022.csv; 1672693200;147;4;8;
1658178000;1;1;;19.07.2022.csv; 1663102800;1;1;1;
1656190800;7;1;;26.06.2022.csv; 1659474000;1;1;1;
1663534800;269;5;;19.09.2022.csv; 1660683600;15;4;4;
1660942800;1;1;;20.08.2022.csv; 1658178000;1;1;1;
1665781200;16;13;;15.10.2022.csv; 1656190800;7;1;1;
1671656400;8;5;;22.12.2022.csv; 1663534800;269;5;5;
1661115600;1;1;;22.08.2022.csv; 1660942800;1;1;1;
1671397200;193;5;;19.12.2022.csv; 1665781200;16;13;5;
1664398800;1;1;;29.09.2022.csv; 1671656400;8;5;4;
1661461200;2;2;;26.08.2022.csv; 1661115600;1;1;1;
1657054800;7;4;;06.07.2022.csv; 1671397200;193;5;6;
1665262800;9;1;;09.10.2022.csv; 1664398800;1;1;1;
1657573200;1;1;;12.07.2022.csv; 1661461200;2;2;2;
1659906000;1;1;;08.08.2022.csv; 1657054800;7;4;3;
1663016400;3;3;;13.09.2022.csv; 1665262800;9;1;1;
1665694800;2;2;;14.10.2022.csv; 1657573200;1;1;1;
1665349200;3;2;;10.10.2022.csv; 1659906000;1;1;1;
1658523600;2;2;;23.07.2022.csv; 1673038800;61;1;5;
1666213200;3;1;;20.10.2022.csv; 1663016400;3;3;3;
1665608400;1;1;;13.10.2022.csv; 1665694800;2;2;2;
1667077200;6;2;;30.10.2022.csv; 1665349200;3;2;2;
1660770000;1;1;;18.08.2022.csv; 1658523600;2;2;2;
1662930000;7;4;;12.09.2022.csv; 1666213200;3;1;1;
1671224400;295;1;;17.12.2022.csv; 1665608400;1;1;1;
1659128400;1;1;;30.07.2022.csv; 1667077200;6;2;2;
1663275600;3;3;;16.09.2022.csv; 1660770000;1;1;1;
1661979600;1;1;;01.09.2022.csv; 1662930000;7;4;4;
1662238800;1;1;;04.09.2022.csv; 1671224400;295;1;1;
1667509200;1;1;;04.11.2022.csv; 1659128400;1;1;1;
1666731600;1;1;;26.10.2022.csv; 1663275600;3;3;3;
1662670800;1;1;;09.09.2022.csv; 1661979600;1;1;1;
1661288400;5;3;;24.08.2022.csv; 1662238800;1;1;1;
1661720400;2;1;;29.08.2022.csv; 1667509200;1;1;1;
1659819600;3;3;;07.08.2022.csv; 1666731600;1;1;1;
1659733200;1;1;;06.08.2022.csv; 1662670800;1;1;1;
1671138000;15;4;;16.12.2022.csv; 1661288400;5;3;2;
1663448400;4;2;;18.09.2022.csv; 1661720400;2;1;1;
1658869200;1;1;;27.07.2022.csv; 1659819600;3;3;2;
1666558800;2;1;;24.10.2022.csv; 1659733200;1;1;1;
1667422800;2;2;;03.11.2022.csv; 1671138000;15;4;3;
1672606800;99;8;;02.01.2023.csv; 1663448400;4;2;2;
1672779600;450;6;;04.01.2023.csv; 1658869200;1;1;1;
1664053200;2;2;;25.09.2022.csv; 1666558800;2;1;1;
1665090000;24;3;;07.10.2022.csv; 1667422800;2;2;2;
1657659600;5;5;;13.07.2022.csv; 1672606800;99;8;6;
1664312400;6;3;;28.09.2022.csv; 1672779600;450;6;6;
1662757200;1;1;;10.09.2022.csv; 1664053200;2;2;1;
1665003600;1;1;;06.10.2022.csv; 1665090000;24;3;3;
1660856400;6;6;;19.08.2022.csv; 1657659600;5;5;4;
1658437200;5;4;;22.07.2022.csv; 1664312400;6;3;3;
1656709200;21;3;;02.07.2022.csv; 1662757200;1;1;1;
1672347600;13;2;;30.12.2022.csv; 1665003600;1;1;1;
1656536400;2;2;;30.06.2022.csv; 1660856400;6;6;3;
1666040400;2;2;;18.10.2022.csv; 1658437200;5;4;1;
1657486800;3;3;;11.07.2022.csv; 1656709200;21;3;3;
1664139600;6;4;;26.09.2022.csv; 1672347600;13;2;4;
1656536400;2;2;2;
1666040400;2;2;1;
1657486800;3;3;3;
1664139600;6;4;4;

1 1657832400 1673298000 7 2 1 2 15.07.2022.csv
2 1662411600 1657832400 2 1 2 1 2 06.09.2022.csv
3 1664571600 1662411600 1 2 1 2 1 01.10.2022.csv
4 1660338000 1664571600 2 1 2 1 2 13.08.2022.csv
5 1662584400 1660338000 1 2 1 2 1 08.09.2022.csv
6 1671570000 1662584400 2 4 2 43 2 21.12.2022.csv
7 1666386000 1671570000 43 2 4 13 3 22.10.2022.csv
8 1665867600 1666386000 13 2 2 3 2 16.10.2022.csv
9 1662498000 1673211600 129 5 5 5 3 07.09.2022.csv
10 1661202000 1665867600 3 3 2 5 2 23.08.2022.csv
11 1671310800 1662498000 5 2 5 10 4 18.12.2022.csv
12 1670878800 1661202000 5 3 3 7 3 13.12.2022.csv
13 1658350800 1671310800 10 1 2 1 2 21.07.2022.csv
14 1662843600 1670878800 7 2 3 7 3 11.09.2022.csv
15 1672952400 1658350800 1 3 1 141 1 06.01.2023.csv
16 1666126800 1662843600 7 2 2 5 3 19.10.2022.csv
17 1671051600 1672952400 197 3 7 45 10 15.12.2022.csv
18 1660597200 1666126800 5 2 2 14 2 16.08.2022.csv
19 1671915600 1671051600 45 3 3 176 2 25.12.2022.csv
20 1657314000 1660597200 14 2 2 3 2 09.07.2022.csv
21 1671742800 1671915600 176 1 3 2 4 23.12.2022.csv
22 1666818000 1657314000 3 1 2 1 2 27.10.2022.csv
23 1661029200 1671742800 2 3 1 18 1 21.08.2022.csv
24 1660251600 1666818000 1 1 1 1 12.08.2022.csv
25 1656277200 1661029200 18 5 3 10 3 27.06.2022.csv
26 1663621200 1660251600 1 6 1 10 1 20.09.2022.csv
27 1658091600 1656277200 10 2 5 2 4 18.07.2022.csv
28 1671483600 1663621200 10 3 6 67 5 20.12.2022.csv
29 1672434000 1658091600 2 2 2 50 2 31.12.2022.csv
30 1656968400 1671483600 67 4 3 15 2 05.07.2022.csv
31 1672088400 1672434000 50 3 2 240 2 27.12.2022.csv
32 1657400400 1656968400 15 2 4 2 4 10.07.2022.csv
33 1660078800 1672088400 240 1 3 1 4 10.08.2022.csv
34 1660165200 1657400400 2 2 2 2 11.08.2022.csv
35 1657141200 1660078800 1 4 1 15 1 07.07.2022.csv
36 1657746000 1660165200 2 2 2 2 14.07.2022.csv
37 1671829200 1657141200 15 4 4 45 4 24.12.2022 (conflicted copy 2022-12-24 194548).csv
38 1665954000 1657746000 2 1 2 2 17.10.2022.csv
39 1660510800 1671829200 45 6 4 15 3 15.08.2022.csv
40 1661806800 1665954000 2 4 1 4 1 30.08.2022.csv
41 1658005200 1660510800 15 2 6 2 4 17.07.2022.csv
42 1659992400 1661806800 4 1 4 1 4 09.08.2022.csv
43 1666299600 1658005200 2 2 2 6 2 21.10.2022.csv
44 1672866000 1659992400 1 5 1 74 1 05.01.2023.csv
45 1666645200 1666299600 6 3 2 3 2 25.10.2022.csv
46 1661374800 1672866000 74 3 5 6 25.08.2022.csv
47 1662066000 1666645200 3 3 3 3 02.09.2022.csv
48 1656363600 1661374800 6 4 3 9 4 28.06.2022.csv
49 1656622800 1662066000 3 1 3 1 2 01.07.2022.csv
50 1663362000 1656363600 9 1 4 1 4 17.09.2022.csv
51 1672174800 1656622800 1 3 1 177 1 28.12.2022.csv
52 1672261200 1663362000 1 3 1 84 1 29.12.2022.csv
53 1664226000 1672174800 177 1 3 3 5 27.09.2022.csv
54 1659301200 1672261200 84 2 3 2 5 01.08.2022.csv
55 1667250000 1664226000 3 1 1 1 01.11.2022.csv
56 1663880400 1659301200 2 2 2 9 2 23.09.2022.csv
57 1659214800 1667250000 1 1 1 1 31.07.2022.csv
58 1664744400 1663880400 9 1 2 1 03.10.2022.csv
59 1659646800 1659214800 1 2 1 2 1 05.08.2022.csv
60 1663707600 1664744400 1 1 1 2 1 21.09.2022.csv
61 1657227600 1659646800 2 3 2 3 2 08.07.2022.csv
62 1661547600 1663707600 2 2 1 2 1 27.08.2022.csv
63 1656795600 1657227600 3 1 3 56 3 03.07.2022.csv
64 1659560400 1661547600 2 1 2 1 2 04.08.2022.csv
65 1672002000 1656795600 56 2 1 120 1 26.12.2022.csv
66 1665176400 1659560400 1 1 1 6 1 08.10.2022.csv
67 1662152400 1672002000 120 2 2 2 5 03.09.2022.csv
68 1671829200 1665176400 6 4 1 9 1 24.12.2022.csv
69 1661893200 1662152400 2 1 2 1 2 31.08.2022.csv
70 1663189200 1671829200 9 2 4 2 3 15.09.2022.csv
71 1656882000 1661893200 1 2 1 2 1 04.07.2022.csv
72 1670965200 1663189200 2 1 2 2 14.12.2022.csv
73 1672520400 1656882000 2 2 2 228 2 01.01.2023.csv
74 1660424400 1670965200 2 1 1 1 14.08.2022.csv
75 1658955600 1672520400 228 1 2 1 3 28.07.2022.csv
76 1659042000 1660424400 1 1 1 1 29.07.2022.csv
77 1658610000 1658955600 1 1 1 1 24.07.2022.csv
78 1662325200 1673125200 20 2 5 2 6 05.09.2022.csv
79 1666472400 1659042000 1 3 1 13 1 23.10.2022.csv
80 1658696400 1658610000 1 1 1 1 25.07.2022.csv
81 1659387600 1662325200 2 1 2 1 2 02.08.2022.csv
82 1666904400 1666472400 13 4 3 7 3 28.10.2022.csv
83 1657918800 1658696400 1 1 1 1 16.07.2022.csv
84 1667336400 1659387600 1 1 1 3 1 02.11.2022.csv
85 1656450000 1666904400 7 2 4 2 4 29.06.2022.csv
86 1658782800 1657918800 1 3 1 3 1 26.07.2022.csv
87 1672693200 1667336400 3 4 1 147 1 03.01.2023.csv
88 1663102800 1656450000 2 1 2 1 2 14.09.2022.csv
89 1659474000 1658782800 3 1 3 1 2 03.08.2022.csv
90 1660683600 1672693200 147 4 4 15 8 17.08.2022.csv
91 1658178000 1663102800 1 1 1 1 19.07.2022.csv
92 1656190800 1659474000 1 1 1 7 1 26.06.2022.csv
93 1663534800 1660683600 15 5 4 269 4 19.09.2022.csv
94 1660942800 1658178000 1 1 1 1 20.08.2022.csv
95 1665781200 1656190800 7 13 1 16 1 15.10.2022.csv
96 1671656400 1663534800 269 5 5 8 5 22.12.2022.csv
97 1661115600 1660942800 1 1 1 1 22.08.2022.csv
98 1671397200 1665781200 16 5 13 193 5 19.12.2022.csv
99 1664398800 1671656400 8 1 5 1 4 29.09.2022.csv
100 1661461200 1661115600 1 2 1 2 1 26.08.2022.csv
101 1657054800 1671397200 193 4 5 7 6 06.07.2022.csv
102 1665262800 1664398800 1 1 1 9 1 09.10.2022.csv
103 1657573200 1661461200 2 1 2 1 2 12.07.2022.csv
104 1659906000 1657054800 7 1 4 1 3 08.08.2022.csv
105 1663016400 1665262800 9 3 1 3 1 13.09.2022.csv
106 1665694800 1657573200 1 2 1 2 1 14.10.2022.csv
107 1665349200 1659906000 1 2 1 3 1 10.10.2022.csv
108 1658523600 1673038800 61 2 1 2 5 23.07.2022.csv
109 1666213200 1663016400 3 1 3 3 20.10.2022.csv
110 1665608400 1665694800 2 1 2 1 2 13.10.2022.csv
111 1667077200 1665349200 3 2 2 6 2 30.10.2022.csv
112 1660770000 1658523600 2 1 2 1 2 18.08.2022.csv
113 1662930000 1666213200 3 4 1 7 1 12.09.2022.csv
114 1671224400 1665608400 1 1 1 295 1 17.12.2022.csv
115 1659128400 1667077200 6 1 2 1 2 30.07.2022.csv
116 1663275600 1660770000 1 3 1 3 1 16.09.2022.csv
117 1661979600 1662930000 7 1 4 1 4 01.09.2022.csv
118 1662238800 1671224400 295 1 1 1 04.09.2022.csv
119 1667509200 1659128400 1 1 1 1 04.11.2022.csv
120 1666731600 1663275600 3 1 3 1 3 26.10.2022.csv
121 1662670800 1661979600 1 1 1 1 09.09.2022.csv
122 1661288400 1662238800 1 3 1 5 1 24.08.2022.csv
123 1661720400 1667509200 1 1 1 2 1 29.08.2022.csv
124 1659819600 1666731600 1 3 1 3 1 07.08.2022.csv
125 1659733200 1662670800 1 1 1 1 06.08.2022.csv
126 1671138000 1661288400 5 4 3 15 2 16.12.2022.csv
127 1663448400 1661720400 2 2 1 4 1 18.09.2022.csv
128 1658869200 1659819600 3 1 3 1 2 27.07.2022.csv
129 1666558800 1659733200 1 1 1 2 1 24.10.2022.csv
130 1667422800 1671138000 15 2 4 2 3 03.11.2022.csv
131 1672606800 1663448400 4 8 2 99 2 02.01.2023.csv
132 1672779600 1658869200 1 6 1 450 1 04.01.2023.csv
133 1664053200 1666558800 2 2 1 2 1 25.09.2022.csv
134 1665090000 1667422800 2 3 2 24 2 07.10.2022.csv
135 1657659600 1672606800 99 5 8 5 6 13.07.2022.csv
136 1664312400 1672779600 450 3 6 6 28.09.2022.csv
137 1662757200 1664053200 2 1 2 1 10.09.2022.csv
138 1665003600 1665090000 24 1 3 1 3 06.10.2022.csv
139 1660856400 1657659600 5 6 5 6 4 19.08.2022.csv
140 1658437200 1664312400 6 4 3 5 3 22.07.2022.csv
141 1656709200 1662757200 1 3 1 21 1 02.07.2022.csv
142 1672347600 1665003600 1 2 1 13 1 30.12.2022.csv
143 1656536400 1660856400 6 2 6 2 3 30.06.2022.csv
144 1666040400 1658437200 5 2 4 2 1 18.10.2022.csv
145 1657486800 1656709200 21 3 3 3 11.07.2022.csv
146 1664139600 1672347600 13 4 2 6 4 26.09.2022.csv
147 1656536400 2 2 2
148 1666040400 2 2 1
149 1657486800 3 3 3
150 1664139600 6 4 4

View File

@ -1,109 +1,109 @@
# jQuery File Upload Plugin # jQuery File Upload Plugin
## Demo ## Demo
[Demo File Upload](http://blueimp.github.io/jQuery-File-Upload/) [Demo File Upload](http://blueimp.github.io/jQuery-File-Upload/)
## Description ## Description
File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery. File Upload widget with multiple file selection, drag&amp;drop support, progress bars, validation and preview images, audio and video for jQuery.
Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads. Supports cross-domain, chunked and resumable file uploads and client-side image resizing. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
## Setup ## Setup
* [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup) * [How to setup the plugin on your website](https://github.com/blueimp/jQuery-File-Upload/wiki/Setup)
* [How to use only the basic plugin (minimal setup guide).](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin) * [How to use only the basic plugin (minimal setup guide).](https://github.com/blueimp/jQuery-File-Upload/wiki/Basic-plugin)
## Support ## Support
* **[Support Forum](https://groups.google.com/d/forum/jquery-fileupload)** * **[Support Forum](https://groups.google.com/d/forum/jquery-fileupload)**
**Support requests** and **general discussions** about the File Upload plugin can be posted to the official **Support requests** and **general discussions** about the File Upload plugin can be posted to the official
[Support Forum](https://groups.google.com/d/forum/jquery-fileupload). [Support Forum](https://groups.google.com/d/forum/jquery-fileupload).
If your question is not directly related to the File Upload plugin, you might have a better chance to get a reply by posting to [Stack Overflow](http://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload). If your question is not directly related to the File Upload plugin, you might have a better chance to get a reply by posting to [Stack Overflow](http://stackoverflow.com/questions/tagged/blueimp+jquery+file-upload).
* Bugs and Feature requests * Bugs and Feature requests
**Bugs** and **Feature requests** can be reported using the [issues tracker](https://github.com/blueimp/jQuery-File-Upload/issues). **Bugs** and **Feature requests** can be reported using the [issues tracker](https://github.com/blueimp/jQuery-File-Upload/issues).
Please read the [issue guidelines](https://github.com/blueimp/jQuery-File-Upload/blob/master/CONTRIBUTING.md) before posting. Please read the [issue guidelines](https://github.com/blueimp/jQuery-File-Upload/blob/master/CONTRIBUTING.md) before posting.
## Features ## Features
* **Multiple file upload:** * **Multiple file upload:**
Allows to select multiple files at once and upload them simultaneously. Allows to select multiple files at once and upload them simultaneously.
* **Drag & Drop support:** * **Drag & Drop support:**
Allows to upload files by dragging them from your desktop or filemanager and dropping them on your browser window. Allows to upload files by dragging them from your desktop or filemanager and dropping them on your browser window.
* **Upload progress bar:** * **Upload progress bar:**
Shows a progress bar indicating the upload progress for individual files and for all uploads combined. Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
* **Cancelable uploads:** * **Cancelable uploads:**
Individual file uploads can be canceled to stop the upload progress. Individual file uploads can be canceled to stop the upload progress.
* **Resumable uploads:** * **Resumable uploads:**
Aborted uploads can be resumed with browsers supporting the Blob API. Aborted uploads can be resumed with browsers supporting the Blob API.
* **Chunked uploads:** * **Chunked uploads:**
Large files can be uploaded in smaller chunks with browsers supporting the Blob API. Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
* **Client-side image resizing:** * **Client-side image resizing:**
Images can be automatically resized on client-side with browsers supporting the required JS APIs. Images can be automatically resized on client-side with browsers supporting the required JS APIs.
* **Preview images, audio and video:** * **Preview images, audio and video:**
A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs. A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.
* **No browser plugins (e.g. Adobe Flash) required:** * **No browser plugins (e.g. Adobe Flash) required:**
The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins. The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.
* **Graceful fallback for legacy browsers:** * **Graceful fallback for legacy browsers:**
Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers. Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.
* **HTML file upload form fallback:** * **HTML file upload form fallback:**
Allows progressive enhancement by using a standard HTML file upload form as widget element. Allows progressive enhancement by using a standard HTML file upload form as widget element.
* **Cross-site file uploads:** * **Cross-site file uploads:**
Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects. Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.
* **Multiple plugin instances:** * **Multiple plugin instances:**
Allows to use multiple plugin instances on the same webpage. Allows to use multiple plugin instances on the same webpage.
* **Customizable and extensible:** * **Customizable and extensible:**
Provides an API to set individual options and define callBack methods for various upload events. Provides an API to set individual options and define callBack methods for various upload events.
* **Multipart and file contents stream uploads:** * **Multipart and file contents stream uploads:**
Files can be uploaded as standard "multipart/form-data" or file contents stream (HTTP PUT file upload). Files can be uploaded as standard "multipart/form-data" or file contents stream (HTTP PUT file upload).
* **Compatible with any server-side application platform:** * **Compatible with any server-side application platform:**
Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads. Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.
## Requirements ## Requirements
* [jQuery](http://jquery.com/) v. 1.6+ * [jQuery](http://jquery.com/) v. 1.6+
* [jQuery UI widget factory](http://api.jqueryui.com/jQuery.widget/) v. 1.9+ (included) * [jQuery UI widget factory](http://api.jqueryui.com/jQuery.widget/) v. 1.9+ (included)
* [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) (included) * [jQuery Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) (included)
* [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates) v. 2.2.1+ (optional) * [JavaScript Templates engine](https://github.com/blueimp/JavaScript-Templates) v. 2.2.1+ (optional)
* [JavaScript Load Image function](https://github.com/blueimp/JavaScript-Load-Image) v. 1.7.3+ (optional) * [JavaScript Load Image function](https://github.com/blueimp/JavaScript-Load-Image) v. 1.7.3+ (optional)
* [JavaScript Canvas to Blob function](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 2.0.6+ (optional) * [JavaScript Canvas to Blob function](https://github.com/blueimp/JavaScript-Canvas-to-Blob) v. 2.0.6+ (optional)
* [Bootstrap CSS Toolkit](https://github.com/twitter/bootstrap/) v. 2.3+ (optional) * [Bootstrap CSS Toolkit](https://github.com/twitter/bootstrap/) v. 2.3+ (optional)
The jQuery UI widget factory is a requirement for the basic File Upload plugin, but very lightweight without any other dependencies. The jQuery UI widget factory is a requirement for the basic File Upload plugin, but very lightweight without any other dependencies.
The jQuery Iframe Transport is required for [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support). The jQuery Iframe Transport is required for [browsers without XHR file upload support](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
The UI version of the File Upload plugin also requires the JavaScript Templates engine as well as the JavaScript Load Image and JavaScript Canvas to Blob functions (for the image previews and resizing functionality). These dependencies are marked as optional, as the basic File Upload plugin can be used without them and the UI version of the plugin can be extended to override these dependencies with alternative solutions. The UI version of the File Upload plugin also requires the JavaScript Templates engine as well as the JavaScript Load Image and JavaScript Canvas to Blob functions (for the image previews and resizing functionality). These dependencies are marked as optional, as the basic File Upload plugin can be used without them and the UI version of the plugin can be extended to override these dependencies with alternative solutions.
The User Interface is built with Twitter's [Bootstrap](https://github.com/twitter/bootstrap/) Toolkit. This enables a CSS based, responsive layout and fancy transition effects on modern browsers. The demo also includes the [blueimp Gallery](https://github.com/blueimp/Gallery). Both of these components are optional and not required. The User Interface is built with Twitter's [Bootstrap](https://github.com/twitter/bootstrap/) Toolkit. This enables a CSS based, responsive layout and fancy transition effects on modern browsers. The demo also includes the [blueimp Gallery](https://github.com/blueimp/Gallery). Both of these components are optional and not required.
The repository also includes the [jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js), which enables Cross-domain AJAX requests (GET and POST only) in Microsoft Internet Explorer >= 8. However, the XDomainRequest object doesn't support file uploads and the plugin is only used by the [Demo](http://blueimp.github.io/jQuery-File-Upload/) for Cross-domain requests to delete uploaded files from the demo file upload service. The repository also includes the [jQuery XDomainRequest Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/cors/jquery.xdr-transport.js), which enables Cross-domain AJAX requests (GET and POST only) in Microsoft Internet Explorer >= 8. However, the XDomainRequest object doesn't support file uploads and the plugin is only used by the [Demo](http://blueimp.github.io/jQuery-File-Upload/) for Cross-domain requests to delete uploaded files from the demo file upload service.
[Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) using the [Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) require a redirect back to the origin server to retrieve the upload results. The [example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js) makes use of [result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html) as a static redirect page for the origin server. [Cross-domain File Uploads](https://github.com/blueimp/jQuery-File-Upload/wiki/Cross-domain-uploads) using the [Iframe Transport plugin](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/jquery.iframe-transport.js) require a redirect back to the origin server to retrieve the upload results. The [example implementation](https://github.com/blueimp/jQuery-File-Upload/blob/master/js/main.js) makes use of [result.html](https://github.com/blueimp/jQuery-File-Upload/blob/master/cors/result.html) as a static redirect page for the origin server.
## Browsers ## Browsers
### Desktop browsers ### Desktop browsers
The File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions: The File Upload plugin is regularly tested with the latest browser versions and supports the following minimal versions:
* Google Chrome * Google Chrome
* Apple Safari 4.0+ * Apple Safari 4.0+
* Mozilla Firefox 3.0+ * Mozilla Firefox 3.0+
* Opera 11.0+ * Opera 11.0+
* Microsoft Internet Explorer 6.0+ * Microsoft Internet Explorer 6.0+
### Mobile browsers ### Mobile browsers
The File Upload plugin has been tested with and supports the following mobile browsers: The File Upload plugin has been tested with and supports the following mobile browsers:
* Apple Safari on iOS 6.0+ * Apple Safari on iOS 6.0+
* Google Chrome on iOS 6.0+ * Google Chrome on iOS 6.0+
* Google Chrome on Android 4.0+ * Google Chrome on Android 4.0+
* Default Browser on Android 2.3+ * Default Browser on Android 2.3+
* Opera Mobile 12.0+ * Opera Mobile 12.0+
### Supported features ### Supported features
For a detailed overview of the features supported by each browser version please have a look at the [Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support). For a detailed overview of the features supported by each browser version please have a look at the [Extended browser support information](https://github.com/blueimp/jQuery-File-Upload/wiki/Browser-support).
## License ## License
Released under the [MIT license](http://www.opensource.org/licenses/MIT). Released under the [MIT license](http://www.opensource.org/licenses/MIT).
## Donations ## Donations
jQuery File Upload is free software, but you can donate to support the developer, Sebastian Tschan: jQuery File Upload is free software, but you can donate to support the developer, Sebastian Tschan:
Flattr: [![Flattr](https://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/thing/286433/jQuery-File-Upload-Plugin) Flattr: [![Flattr](https://api.flattr.com/button/flattr-badge-large.png)](https://flattr.com/thing/286433/jQuery-File-Upload-Plugin)
PayPal: [![PayPal](https://www.paypalobjects.com/WEBSCR-640-20110429-1/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PYWYSYP77KL54) PayPal: [![PayPal](https://www.paypalobjects.com/WEBSCR-640-20110429-1/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=PYWYSYP77KL54)

View File

View File

Before

Width:  |  Height:  |  Size: 723 B

After

Width:  |  Height:  |  Size: 723 B

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,185 +1,185 @@
/* /*
* jQuery Iframe Transport Plugin 1.6.1 * jQuery Iframe Transport Plugin 1.6.1
* https://github.com/blueimp/jQuery-File-Upload * https://github.com/blueimp/jQuery-File-Upload
* *
* Copyright 2011, Sebastian Tschan * Copyright 2011, Sebastian Tschan
* https://blueimp.net * https://blueimp.net
* *
* Licensed under the MIT license: * Licensed under the MIT license:
* http://www.opensource.org/licenses/MIT * http://www.opensource.org/licenses/MIT
*/ */
/*jslint unparam: true, nomen: true */ /*jslint unparam: true, nomen: true */
/*global define, window, document */ /*global define, window, document */
(function (factory) { (function (factory) {
'use strict'; 'use strict';
if (typeof define === 'function' && define.amd) { if (typeof define === 'function' && define.amd) {
// Register as an anonymous AMD module: // Register as an anonymous AMD module:
define(['jquery'], factory); define(['jquery'], factory);
} else { } else {
// Browser globals: // Browser globals:
factory(window.jQuery); factory(window.jQuery);
} }
}(function ($) { }(function ($) {
'use strict'; 'use strict';
// Helper variable to create unique names for the transport iframes: // Helper variable to create unique names for the transport iframes:
var counter = 0; var counter = 0;
// The iframe transport accepts three additional options: // The iframe transport accepts three additional options:
// options.fileInput: a jQuery collection of file input fields // options.fileInput: a jQuery collection of file input fields
// options.paramName: the parameter name for the file form data, // options.paramName: the parameter name for the file form data,
// overrides the name property of the file input field(s), // overrides the name property of the file input field(s),
// can be a string or an array of strings. // can be a string or an array of strings.
// options.formData: an array of objects with name and value properties, // options.formData: an array of objects with name and value properties,
// equivalent to the return data of .serializeArray(), e.g.: // equivalent to the return data of .serializeArray(), e.g.:
// [{name: 'a', value: 1}, {name: 'b', value: 2}] // [{name: 'a', value: 1}, {name: 'b', value: 2}]
$.ajaxTransport('iframe', function (options) { $.ajaxTransport('iframe', function (options) {
if (options.async) { if (options.async) {
var form, var form,
iframe, iframe,
addParamChar; addParamChar;
return { return {
send: function (_, completeCallback) { send: function (_, completeCallback) {
form = $('<form style="display:none;"></form>'); form = $('<form style="display:none;"></form>');
form.attr('accept-charset', options.formAcceptCharset); form.attr('accept-charset', options.formAcceptCharset);
addParamChar = /\?/.test(options.url) ? '&' : '?'; addParamChar = /\?/.test(options.url) ? '&' : '?';
// XDomainRequest only supports GET and POST: // XDomainRequest only supports GET and POST:
if (options.type === 'DELETE') { if (options.type === 'DELETE') {
options.url = options.url + addParamChar + '_method=DELETE'; options.url = options.url + addParamChar + '_method=DELETE';
options.type = 'POST'; options.type = 'POST';
} else if (options.type === 'PUT') { } else if (options.type === 'PUT') {
options.url = options.url + addParamChar + '_method=PUT'; options.url = options.url + addParamChar + '_method=PUT';
options.type = 'POST'; options.type = 'POST';
} else if (options.type === 'PATCH') { } else if (options.type === 'PATCH') {
options.url = options.url + addParamChar + '_method=PATCH'; options.url = options.url + addParamChar + '_method=PATCH';
options.type = 'POST'; options.type = 'POST';
} }
// javascript:false as initial iframe src // javascript:false as initial iframe src
// prevents warning popups on HTTPS in IE6. // prevents warning popups on HTTPS in IE6.
// IE versions below IE8 cannot set the name property of // IE versions below IE8 cannot set the name property of
// elements that have already been added to the DOM, // elements that have already been added to the DOM,
// so we set the name along with the iframe HTML markup: // so we set the name along with the iframe HTML markup:
iframe = $( iframe = $(
'<iframe src="javascript:false;" name="iframe-transport-' + '<iframe src="javascript:false;" name="iframe-transport-' +
(counter += 1) + '"></iframe>' (counter += 1) + '"></iframe>'
).bind('load', function () { ).bind('load', function () {
var fileInputClones, var fileInputClones,
paramNames = $.isArray(options.paramName) ? paramNames = $.isArray(options.paramName) ?
options.paramName : [options.paramName]; options.paramName : [options.paramName];
iframe iframe
.unbind('load') .unbind('load')
.bind('load', function () { .bind('load', function () {
var response; var response;
// Wrap in a try/catch block to catch exceptions thrown // Wrap in a try/catch block to catch exceptions thrown
// when trying to access cross-domain iframe contents: // when trying to access cross-domain iframe contents:
try { try {
response = iframe.contents(); response = iframe.contents();
// Google Chrome and Firefox do not throw an // Google Chrome and Firefox do not throw an
// exception when calling iframe.contents() on // exception when calling iframe.contents() on
// cross-domain requests, so we unify the response: // cross-domain requests, so we unify the response:
if (!response.length || !response[0].firstChild) { if (!response.length || !response[0].firstChild) {
throw new Error(); throw new Error();
} }
} catch (e) { } catch (e) {
response = undefined; response = undefined;
} }
// The complete callback returns the // The complete callback returns the
// iframe content document as response object: // iframe content document as response object:
completeCallback( completeCallback(
200, 200,
'success', 'success',
{'iframe': response} {'iframe': response}
); );
// Fix for IE endless progress bar activity bug // Fix for IE endless progress bar activity bug
// (happens on form submits to iframe targets): // (happens on form submits to iframe targets):
$('<iframe src="javascript:false;"></iframe>') $('<iframe src="javascript:false;"></iframe>')
.appendTo(form); .appendTo(form);
form.remove(); form.remove();
}); });
form form
.prop('target', iframe.prop('name')) .prop('target', iframe.prop('name'))
.prop('action', options.url) .prop('action', options.url)
.prop('method', options.type); .prop('method', options.type);
if (options.formData) { if (options.formData) {
$.each(options.formData, function (index, field) { $.each(options.formData, function (index, field) {
$('<input type="hidden"/>') $('<input type="hidden"/>')
.prop('name', field.name) .prop('name', field.name)
.val(field.value) .val(field.value)
.appendTo(form); .appendTo(form);
}); });
} }
if (options.fileInput && options.fileInput.length && if (options.fileInput && options.fileInput.length &&
options.type === 'POST') { options.type === 'POST') {
fileInputClones = options.fileInput.clone(); fileInputClones = options.fileInput.clone();
// Insert a clone for each file input field: // Insert a clone for each file input field:
options.fileInput.after(function (index) { options.fileInput.after(function (index) {
return fileInputClones[index]; return fileInputClones[index];
}); });
if (options.paramName) { if (options.paramName) {
options.fileInput.each(function (index) { options.fileInput.each(function (index) {
$(this).prop( $(this).prop(
'name', 'name',
paramNames[index] || options.paramName paramNames[index] || options.paramName
); );
}); });
} }
// Appending the file input fields to the hidden form // Appending the file input fields to the hidden form
// removes them from their original location: // removes them from their original location:
form form
.append(options.fileInput) .append(options.fileInput)
.prop('enctype', 'multipart/form-data') .prop('enctype', 'multipart/form-data')
// enctype must be set as encoding for IE: // enctype must be set as encoding for IE:
.prop('encoding', 'multipart/form-data'); .prop('encoding', 'multipart/form-data');
} }
form.submit(); form.submit();
// Insert the file input fields at their original location // Insert the file input fields at their original location
// by replacing the clones with the originals: // by replacing the clones with the originals:
if (fileInputClones && fileInputClones.length) { if (fileInputClones && fileInputClones.length) {
options.fileInput.each(function (index, input) { options.fileInput.each(function (index, input) {
var clone = $(fileInputClones[index]); var clone = $(fileInputClones[index]);
$(input).prop('name', clone.prop('name')); $(input).prop('name', clone.prop('name'));
clone.replaceWith(input); clone.replaceWith(input);
}); });
} }
}); });
form.append(iframe).appendTo(document.body); form.append(iframe).appendTo(document.body);
}, },
abort: function () { abort: function () {
if (iframe) { if (iframe) {
// javascript:false as iframe src aborts the request // javascript:false as iframe src aborts the request
// and prevents warning popups on HTTPS in IE6. // and prevents warning popups on HTTPS in IE6.
// concat is used to avoid the "Script URL" JSLint error: // concat is used to avoid the "Script URL" JSLint error:
iframe iframe
.unbind('load') .unbind('load')
.prop('src', 'javascript'.concat(':false;')); .prop('src', 'javascript'.concat(':false;'));
} }
if (form) { if (form) {
form.remove(); form.remove();
} }
} }
}; };
} }
}); });
// The iframe transport returns the iframe content document as response. // The iframe transport returns the iframe content document as response.
// The following adds converters from iframe to text, json, html, and script: // The following adds converters from iframe to text, json, html, and script:
$.ajaxSetup({ $.ajaxSetup({
converters: { converters: {
'iframe text': function (iframe) { 'iframe text': function (iframe) {
return iframe && $(iframe[0].body).text(); return iframe && $(iframe[0].body).text();
}, },
'iframe json': function (iframe) { 'iframe json': function (iframe) {
return iframe && $.parseJSON($(iframe[0].body).text()); return iframe && $.parseJSON($(iframe[0].body).text());
}, },
'iframe html': function (iframe) { 'iframe html': function (iframe) {
return iframe && $(iframe[0].body).html(); return iframe && $(iframe[0].body).html();
}, },
'iframe script': function (iframe) { 'iframe script': function (iframe) {
return iframe && $.globalEval($(iframe[0].body).text()); return iframe && $.globalEval($(iframe[0].body).text());
} }
} }
}); });
})); }));

File diff suppressed because it is too large Load Diff

View File

12614
api/soft/tinymce/4.3.12/plugins/image/bootstrap/css/bootstrap.css vendored Normal file → Executable file

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 424 B

After

Width:  |  Height:  |  Size: 424 B

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -1,349 +1,349 @@
//fgnass.github.com/spin.js#v1.3 //fgnass.github.com/spin.js#v1.3
/** /**
* Copyright (c) 2011-2013 Felix Gnass * Copyright (c) 2011-2013 Felix Gnass
* Licensed under the MIT license * Licensed under the MIT license
*/ */
(function(root, factory) { (function(root, factory) {
/* CommonJS */ /* CommonJS */
if (typeof exports == 'object') module.exports = factory() if (typeof exports == 'object') module.exports = factory()
/* AMD module */ /* AMD module */
else if (typeof define == 'function' && define.amd) define(factory) else if (typeof define == 'function' && define.amd) define(factory)
/* Browser global */ /* Browser global */
else root.Spinner = factory() else root.Spinner = factory()
} }
(this, function() { (this, function() {
"use strict"; "use strict";
var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */ var prefixes = ['webkit', 'Moz', 'ms', 'O'] /* Vendor prefixes */
, animations = {} /* Animation rules keyed by their name */ , animations = {} /* Animation rules keyed by their name */
, useCssAnimations /* Whether to use CSS animations or setTimeout */ , useCssAnimations /* Whether to use CSS animations or setTimeout */
/** /**
* Utility function to create elements. If no tag name is given, * Utility function to create elements. If no tag name is given,
* a DIV is created. Optionally properties can be passed. * a DIV is created. Optionally properties can be passed.
*/ */
function createEl(tag, prop) { function createEl(tag, prop) {
var el = document.createElement(tag || 'div') var el = document.createElement(tag || 'div')
, n , n
for(n in prop) el[n] = prop[n] for(n in prop) el[n] = prop[n]
return el return el
} }
/** /**
* Appends children and returns the parent. * Appends children and returns the parent.
*/ */
function ins(parent /* child1, child2, ...*/) { function ins(parent /* child1, child2, ...*/) {
for (var i=1, n=arguments.length; i<n; i++) for (var i=1, n=arguments.length; i<n; i++)
parent.appendChild(arguments[i]) parent.appendChild(arguments[i])
return parent return parent
} }
/** /**
* Insert a new stylesheet to hold the @keyframe or VML rules. * Insert a new stylesheet to hold the @keyframe or VML rules.
*/ */
var sheet = (function() { var sheet = (function() {
var el = createEl('style', {type : 'text/css'}) var el = createEl('style', {type : 'text/css'})
ins(document.getElementsByTagName('head')[0], el) ins(document.getElementsByTagName('head')[0], el)
return el.sheet || el.styleSheet return el.sheet || el.styleSheet
}()) }())
/** /**
* Creates an opacity keyframe animation rule and returns its name. * Creates an opacity keyframe animation rule and returns its name.
* Since most mobile Webkits have timing issues with animation-delay, * Since most mobile Webkits have timing issues with animation-delay,
* we create separate rules for each line/segment. * we create separate rules for each line/segment.
*/ */
function addAnimation(alpha, trail, i, lines) { function addAnimation(alpha, trail, i, lines) {
var name = ['opacity', trail, ~~(alpha*100), i, lines].join('-') var name = ['opacity', trail, ~~(alpha*100), i, lines].join('-')
, start = 0.01 + i/lines * 100 , start = 0.01 + i/lines * 100
, z = Math.max(1 - (1-alpha) / trail * (100-start), alpha) , z = Math.max(1 - (1-alpha) / trail * (100-start), alpha)
, prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase() , prefix = useCssAnimations.substring(0, useCssAnimations.indexOf('Animation')).toLowerCase()
, pre = prefix && '-' + prefix + '-' || '' , pre = prefix && '-' + prefix + '-' || ''
if (!animations[name]) { if (!animations[name]) {
sheet.insertRule( sheet.insertRule(
'@' + pre + 'keyframes ' + name + '{' + '@' + pre + 'keyframes ' + name + '{' +
'0%{opacity:' + z + '}' + '0%{opacity:' + z + '}' +
start + '%{opacity:' + alpha + '}' + start + '%{opacity:' + alpha + '}' +
(start+0.01) + '%{opacity:1}' + (start+0.01) + '%{opacity:1}' +
(start+trail) % 100 + '%{opacity:' + alpha + '}' + (start+trail) % 100 + '%{opacity:' + alpha + '}' +
'100%{opacity:' + z + '}' + '100%{opacity:' + z + '}' +
'}', sheet.cssRules.length) '}', sheet.cssRules.length)
animations[name] = 1 animations[name] = 1
} }
return name return name
} }
/** /**
* Tries various vendor prefixes and returns the first supported property. * Tries various vendor prefixes and returns the first supported property.
*/ */
function vendor(el, prop) { function vendor(el, prop) {
var s = el.style var s = el.style
, pp , pp
, i , i
if(s[prop] !== undefined) return prop if(s[prop] !== undefined) return prop
prop = prop.charAt(0).toUpperCase() + prop.slice(1) prop = prop.charAt(0).toUpperCase() + prop.slice(1)
for(i=0; i<prefixes.length; i++) { for(i=0; i<prefixes.length; i++) {
pp = prefixes[i]+prop pp = prefixes[i]+prop
if(s[pp] !== undefined) return pp if(s[pp] !== undefined) return pp
} }
} }
/** /**
* Sets multiple style properties at once. * Sets multiple style properties at once.
*/ */
function css(el, prop) { function css(el, prop) {
for (var n in prop) for (var n in prop)
el.style[vendor(el, n)||n] = prop[n] el.style[vendor(el, n)||n] = prop[n]
return el return el
} }
/** /**
* Fills in default values. * Fills in default values.
*/ */
function merge(obj) { function merge(obj) {
for (var i=1; i < arguments.length; i++) { for (var i=1; i < arguments.length; i++) {
var def = arguments[i] var def = arguments[i]
for (var n in def) for (var n in def)
if (obj[n] === undefined) obj[n] = def[n] if (obj[n] === undefined) obj[n] = def[n]
} }
return obj return obj
} }
/** /**
* Returns the absolute page-offset of the given element. * Returns the absolute page-offset of the given element.
*/ */
function pos(el) { function pos(el) {
var o = { x:el.offsetLeft, y:el.offsetTop } var o = { x:el.offsetLeft, y:el.offsetTop }
while((el = el.offsetParent)) while((el = el.offsetParent))
o.x+=el.offsetLeft, o.y+=el.offsetTop o.x+=el.offsetLeft, o.y+=el.offsetTop
return o return o
} }
// Built-in defaults // Built-in defaults
var defaults = { var defaults = {
lines: 12, // The number of lines to draw lines: 12, // The number of lines to draw
length: 7, // The length of each line length: 7, // The length of each line
width: 5, // The line thickness width: 5, // The line thickness
radius: 10, // The radius of the inner circle radius: 10, // The radius of the inner circle
rotate: 0, // Rotation offset rotate: 0, // Rotation offset
corners: 1, // Roundness (0..1) corners: 1, // Roundness (0..1)
color: '#000', // #rgb or #rrggbb color: '#000', // #rgb or #rrggbb
direction: 1, // 1: clockwise, -1: counterclockwise direction: 1, // 1: clockwise, -1: counterclockwise
speed: 1, // Rounds per second speed: 1, // Rounds per second
trail: 100, // Afterglow percentage trail: 100, // Afterglow percentage
opacity: 1/4, // Opacity of the lines opacity: 1/4, // Opacity of the lines
fps: 20, // Frames per second when using setTimeout() fps: 20, // Frames per second when using setTimeout()
zIndex: 2e9, // Use a high z-index by default zIndex: 2e9, // Use a high z-index by default
className: 'spinner', // CSS class to assign to the element className: 'spinner', // CSS class to assign to the element
top: 'auto', // center vertically top: 'auto', // center vertically
left: 'auto', // center horizontally left: 'auto', // center horizontally
position: 'relative' // element position position: 'relative' // element position
} }
/** The constructor */ /** The constructor */
function Spinner(o) { function Spinner(o) {
if (typeof this == 'undefined') return new Spinner(o) if (typeof this == 'undefined') return new Spinner(o)
this.opts = merge(o || {}, Spinner.defaults, defaults) this.opts = merge(o || {}, Spinner.defaults, defaults)
} }
// Global defaults that override the built-ins: // Global defaults that override the built-ins:
Spinner.defaults = {} Spinner.defaults = {}
merge(Spinner.prototype, { merge(Spinner.prototype, {
/** /**
* Adds the spinner to the given target element. If this instance is already * Adds the spinner to the given target element. If this instance is already
* spinning, it is automatically removed from its previous target b calling * spinning, it is automatically removed from its previous target b calling
* stop() internally. * stop() internally.
*/ */
spin: function(target) { spin: function(target) {
this.stop() this.stop()
var self = this var self = this
, o = self.opts , o = self.opts
, el = self.el = css(createEl(0, {className: o.className}), {position: o.position, width: 0, zIndex: o.zIndex}) , el = self.el = css(createEl(0, {className: o.className}), {position: o.position, width: 0, zIndex: o.zIndex})
, mid = o.radius+o.length+o.width , mid = o.radius+o.length+o.width
, ep // element position , ep // element position
, tp // target position , tp // target position
if (target) { if (target) {
target.insertBefore(el, target.firstChild||null) target.insertBefore(el, target.firstChild||null)
tp = pos(target) tp = pos(target)
ep = pos(el) ep = pos(el)
css(el, { css(el, {
left: (o.left == 'auto' ? tp.x-ep.x + (target.offsetWidth >> 1) : parseInt(o.left, 10) + mid) + 'px', left: (o.left == 'auto' ? tp.x-ep.x + (target.offsetWidth >> 1) : parseInt(o.left, 10) + mid) + 'px',
top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : parseInt(o.top, 10) + mid) + 'px' top: (o.top == 'auto' ? tp.y-ep.y + (target.offsetHeight >> 1) : parseInt(o.top, 10) + mid) + 'px'
}) })
} }
el.setAttribute('role', 'progressbar') el.setAttribute('role', 'progressbar')
self.lines(el, self.opts) self.lines(el, self.opts)
if (!useCssAnimations) { if (!useCssAnimations) {
// No CSS animation support, use setTimeout() instead // No CSS animation support, use setTimeout() instead
var i = 0 var i = 0
, start = (o.lines - 1) * (1 - o.direction) / 2 , start = (o.lines - 1) * (1 - o.direction) / 2
, alpha , alpha
, fps = o.fps , fps = o.fps
, f = fps/o.speed , f = fps/o.speed
, ostep = (1-o.opacity) / (f*o.trail / 100) , ostep = (1-o.opacity) / (f*o.trail / 100)
, astep = f/o.lines , astep = f/o.lines
;(function anim() { ;(function anim() {
i++; i++;
for (var j = 0; j < o.lines; j++) { for (var j = 0; j < o.lines; j++) {
alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity) alpha = Math.max(1 - (i + (o.lines - j) * astep) % f * ostep, o.opacity)
self.opacity(el, j * o.direction + start, alpha, o) self.opacity(el, j * o.direction + start, alpha, o)
} }
self.timeout = self.el && setTimeout(anim, ~~(1000/fps)) self.timeout = self.el && setTimeout(anim, ~~(1000/fps))
})() })()
} }
return self return self
}, },
/** /**
* Stops and removes the Spinner. * Stops and removes the Spinner.
*/ */
stop: function() { stop: function() {
var el = this.el var el = this.el
if (el) { if (el) {
clearTimeout(this.timeout) clearTimeout(this.timeout)
if (el.parentNode) el.parentNode.removeChild(el) if (el.parentNode) el.parentNode.removeChild(el)
this.el = undefined this.el = undefined
} }
return this return this
}, },
/** /**
* Internal method that draws the individual lines. Will be overwritten * Internal method that draws the individual lines. Will be overwritten
* in VML fallback mode below. * in VML fallback mode below.
*/ */
lines: function(el, o) { lines: function(el, o) {
var i = 0 var i = 0
, start = (o.lines - 1) * (1 - o.direction) / 2 , start = (o.lines - 1) * (1 - o.direction) / 2
, seg , seg
function fill(color, shadow) { function fill(color, shadow) {
return css(createEl(), { return css(createEl(), {
position: 'absolute', position: 'absolute',
width: (o.length+o.width) + 'px', width: (o.length+o.width) + 'px',
height: o.width + 'px', height: o.width + 'px',
background: color, background: color,
boxShadow: shadow, boxShadow: shadow,
transformOrigin: 'left', transformOrigin: 'left',
transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)', transform: 'rotate(' + ~~(360/o.lines*i+o.rotate) + 'deg) translate(' + o.radius+'px' +',0)',
borderRadius: (o.corners * o.width>>1) + 'px' borderRadius: (o.corners * o.width>>1) + 'px'
}) })
} }
for (; i < o.lines; i++) { for (; i < o.lines; i++) {
seg = css(createEl(), { seg = css(createEl(), {
position: 'absolute', position: 'absolute',
top: 1+~(o.width/2) + 'px', top: 1+~(o.width/2) + 'px',
transform: o.hwaccel ? 'translate3d(0,0,0)' : '', transform: o.hwaccel ? 'translate3d(0,0,0)' : '',
opacity: o.opacity, opacity: o.opacity,
animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + ' ' + 1/o.speed + 's linear infinite' animation: useCssAnimations && addAnimation(o.opacity, o.trail, start + i * o.direction, o.lines) + ' ' + 1/o.speed + 's linear infinite'
}) })
if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'})) if (o.shadow) ins(seg, css(fill('#000', '0 0 4px ' + '#000'), {top: 2+'px'}))
ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)'))) ins(el, ins(seg, fill(o.color, '0 0 1px rgba(0,0,0,.1)')))
} }
return el return el
}, },
/** /**
* Internal method that adjusts the opacity of a single line. * Internal method that adjusts the opacity of a single line.
* Will be overwritten in VML fallback mode below. * Will be overwritten in VML fallback mode below.
*/ */
opacity: function(el, i, val) { opacity: function(el, i, val) {
if (i < el.childNodes.length) el.childNodes[i].style.opacity = val if (i < el.childNodes.length) el.childNodes[i].style.opacity = val
} }
}) })
function initVML() { function initVML() {
/* Utility function to create a VML tag */ /* Utility function to create a VML tag */
function vml(tag, attr) { function vml(tag, attr) {
return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr) return createEl('<' + tag + ' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">', attr)
} }
// No CSS transforms but VML support, add a CSS rule for VML elements: // No CSS transforms but VML support, add a CSS rule for VML elements:
sheet.addRule('.spin-vml', 'behavior:url(#default#VML)') sheet.addRule('.spin-vml', 'behavior:url(#default#VML)')
Spinner.prototype.lines = function(el, o) { Spinner.prototype.lines = function(el, o) {
var r = o.length+o.width var r = o.length+o.width
, s = 2*r , s = 2*r
function grp() { function grp() {
return css( return css(
vml('group', { vml('group', {
coordsize: s + ' ' + s, coordsize: s + ' ' + s,
coordorigin: -r + ' ' + -r coordorigin: -r + ' ' + -r
}), }),
{ width: s, height: s } { width: s, height: s }
) )
} }
var margin = -(o.width+o.length)*2 + 'px' var margin = -(o.width+o.length)*2 + 'px'
, g = css(grp(), {position: 'absolute', top: margin, left: margin}) , g = css(grp(), {position: 'absolute', top: margin, left: margin})
, i , i
function seg(i, dx, filter) { function seg(i, dx, filter) {
ins(g, ins(g,
ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}), ins(css(grp(), {rotation: 360 / o.lines * i + 'deg', left: ~~dx}),
ins(css(vml('roundrect', {arcsize: o.corners}), { ins(css(vml('roundrect', {arcsize: o.corners}), {
width: r, width: r,
height: o.width, height: o.width,
left: o.radius, left: o.radius,
top: -o.width>>1, top: -o.width>>1,
filter: filter filter: filter
}), }),
vml('fill', {color: o.color, opacity: o.opacity}), vml('fill', {color: o.color, opacity: o.opacity}),
vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change vml('stroke', {opacity: 0}) // transparent stroke to fix color bleeding upon opacity change
) )
) )
) )
} }
if (o.shadow) if (o.shadow)
for (i = 1; i <= o.lines; i++) for (i = 1; i <= o.lines; i++)
seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)') seg(i, -2, 'progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)')
for (i = 1; i <= o.lines; i++) seg(i) for (i = 1; i <= o.lines; i++) seg(i)
return ins(el, g) return ins(el, g)
} }
Spinner.prototype.opacity = function(el, i, val, o) { Spinner.prototype.opacity = function(el, i, val, o) {
var c = el.firstChild var c = el.firstChild
o = o.shadow && o.lines || 0 o = o.shadow && o.lines || 0
if (c && i+o < c.childNodes.length) { if (c && i+o < c.childNodes.length) {
c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild c = c.childNodes[i+o]; c = c && c.firstChild; c = c && c.firstChild
if (c) c.opacity = val if (c) c.opacity = val
} }
} }
} }
var probe = css(createEl('group'), {behavior: 'url(#default#VML)'}) var probe = css(createEl('group'), {behavior: 'url(#default#VML)'})
if (!vendor(probe, 'transform') && probe.adj) initVML() if (!vendor(probe, 'transform') && probe.adj) initVML()
else useCssAnimations = vendor(probe, 'animation') else useCssAnimations = vendor(probe, 'animation')
return Spinner return Spinner
})); }));

12
api/soft/tinymce/4.3.12/plugins/image/bootstrap/js/bootstrap.min.js vendored Normal file → Executable file

File diff suppressed because one or more lines are too long

16
api/soft/tinymce/4.3.12/plugins/image/bootstrap/js/html5shiv.js vendored Normal file → Executable file
View File

@ -1,8 +1,8 @@
/* /*
HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/ */
(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); (function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>"; a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); "undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document); for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);

8
api/soft/tinymce/4.3.12/plugins/image/bootstrap/js/jquery.js vendored Normal file → Executable file

File diff suppressed because one or more lines are too long

View File

@ -1,80 +1,80 @@
/** /**
* Copyright (c) 2011-2013 Felix Gnass * Copyright (c) 2011-2013 Felix Gnass
* Licensed under the MIT license * Licensed under the MIT license
*/ */
/* /*
Basic Usage: Basic Usage:
============ ============
$('#el').spin(); // Creates a default Spinner using the text color of #el. $('#el').spin(); // Creates a default Spinner using the text color of #el.
$('#el').spin({ ... }); // Creates a Spinner using the provided options. $('#el').spin({ ... }); // Creates a Spinner using the provided options.
$('#el').spin(false); // Stops and removes the spinner. $('#el').spin(false); // Stops and removes the spinner.
Using Presets: Using Presets:
============== ==============
$('#el').spin('small'); // Creates a 'small' Spinner using the text color of #el. $('#el').spin('small'); // Creates a 'small' Spinner using the text color of #el.
$('#el').spin('large', '#fff'); // Creates a 'large' white Spinner. $('#el').spin('large', '#fff'); // Creates a 'large' white Spinner.
Adding a custom preset: Adding a custom preset:
======================= =======================
$.fn.spin.presets.flower = { $.fn.spin.presets.flower = {
lines: 9 lines: 9
length: 10 length: 10
width: 20 width: 20
radius: 0 radius: 0
} }
$('#el').spin('flower', 'red'); $('#el').spin('flower', 'red');
*/ */
(function(factory) { (function(factory) {
if (typeof exports == 'object') { if (typeof exports == 'object') {
// CommonJS // CommonJS
factory(require('jquery'), require('spin')) factory(require('jquery'), require('spin'))
} }
else if (typeof define == 'function' && define.amd) { else if (typeof define == 'function' && define.amd) {
// AMD, register as anonymous module // AMD, register as anonymous module
define(['jquery', 'spin'], factory) define(['jquery', 'spin'], factory)
} }
else { else {
// Browser globals // Browser globals
if (!window.Spinner) throw new Error('Spin.js not present') if (!window.Spinner) throw new Error('Spin.js not present')
factory(window.jQuery, window.Spinner) factory(window.jQuery, window.Spinner)
} }
}(function($, Spinner) { }(function($, Spinner) {
$.fn.spin = function(opts, color) { $.fn.spin = function(opts, color) {
return this.each(function() { return this.each(function() {
var $this = $(this), var $this = $(this),
data = $this.data(); data = $this.data();
if (data.spinner) { if (data.spinner) {
data.spinner.stop(); data.spinner.stop();
delete data.spinner; delete data.spinner;
} }
if (opts !== false) { if (opts !== false) {
opts = $.extend( opts = $.extend(
{ color: color || $this.css('color') }, { color: color || $this.css('color') },
$.fn.spin.presets[opts] || opts $.fn.spin.presets[opts] || opts
) )
data.spinner = new Spinner(opts).spin(this) data.spinner = new Spinner(opts).spin(this)
} }
}) })
} }
$.fn.spin.presets = { $.fn.spin.presets = {
tiny: { lines: 8, length: 2, width: 2, radius: 3 }, tiny: { lines: 8, length: 2, width: 2, radius: 3 },
small: { lines: 8, length: 4, width: 3, radius: 5 }, small: { lines: 8, length: 4, width: 3, radius: 5 },
large: { lines: 10, length: 8, width: 4, radius: 8 } large: { lines: 10, length: 8, width: 4, radius: 8 }
} }
})); }));

0
api/soft/tinymce/4.3.12/plugins/image/cache/index.html vendored Normal file → Executable file
View File

View File

View File

@ -4,12 +4,20 @@ session_start();
/** Full path to the folder that images will be used as library and upload. Include trailing slash */ /** Full path to the folder that images will be used as library and upload. Include trailing slash */
#define('LIBRARY_FOLDER_PATH', $_SERVER['DOCUMENT_ROOT'] . 'uploads/'); #define('LIBRARY_FOLDER_PATH', $_SERVER['DOCUMENT_ROOT'] . 'uploads/');
define('LIBRARY_FOLDER_PATH', $_SERVER['DOCUMENT_ROOT'] . '/img/users/' . $_SESSION['user_id'] . '/'); define('LIBRARY_FOLDER_PATH', $_SERVER['DOCUMENT_ROOT'] . '/img/' . $_SERVER['SERVER_NAME'] . '/pages/user/' . $_SESSION['user_id'] . '/');
define('LIBRARY_FOLDER_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/img/users/' . $_SESSION['user_id'] . '/'); define('LIBRARY_FOLDER_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/img/' . $_SERVER['SERVER_NAME'] . '/pages/user/' . $_SESSION['user_id'] . '/');
@mkdir( $_SERVER['DOCUMENT_ROOT'] . '/img/users/', 0777);
@mkdir( LIBRARY_FOLDER_PATH, 0777);
@mkdir( $_SERVER['DOCUMENT_ROOT'] . '/img', 0700);
@mkdir( $_SERVER['DOCUMENT_ROOT'] . '/img/' . $_SERVER['SERVER_NAME'], 0700);
@mkdir( $_SERVER['DOCUMENT_ROOT'] . '/img/' . $_SERVER['SERVER_NAME'] . '/pages', 0700);
@mkdir( $_SERVER['DOCUMENT_ROOT'] . '/img/' . $_SERVER['SERVER_NAME'] . '/pages/user', 0700);
@mkdir( $_SERVER['DOCUMENT_ROOT'] . '/img/' . $_SERVER['SERVER_NAME'] . '/pages/user/' . $_SESSION['user_id'], 0700);
//@mkdir( $_SERVER['DOCUMENT_ROOT'] . '/img/users/', 0777);
//@mkdir( LIBRARY_FOLDER_PATH, 0777);
/** Full URL to the folder that images will be used as library and upload. Include trailing slash and protocol (i.e. http://) */ /** Full URL to the folder that images will be used as library and upload. Include trailing slash and protocol (i.e. http://) */
//define('LIBRARY_FOLDER_URL', ''); //define('LIBRARY_FOLDER_URL', '');
@ -17,7 +25,7 @@ define('LIBRARY_FOLDER_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/img/users/'
/** The extensions for to use in validation */ /** The extensions for to use in validation */
define('ALLOWED_IMG_EXTENSIONS', 'gif,jpg,jpeg,png,jpe'); define('ALLOWED_IMG_EXTENSIONS', 'gif,jpg,jpeg,png,jpe');
/** Use these 3 functions to check cookies and sessions for permission. /* Use these 3 functions to check cookies and sessions for permission.
Simply write your code and return true or false */ Simply write your code and return true or false */

186
api/soft/tinymce/4.3.12/plugins/image/contents.php Normal file → Executable file
View File

@ -1,93 +1,93 @@
<?php <?php
//require_once('config.php'); //require_once('config.php');
if(isset($_SESSION['tinymce_toggle_view'])){ if(isset($_SESSION['tinymce_toggle_view'])){
$view = $_SESSION['tinymce_toggle_view']; $view = $_SESSION['tinymce_toggle_view'];
}else{ }else{
$view = 'grid'; $view = 'grid';
} }
$current_folder_content = scandirSorted($current_folder); $current_folder_content = scandirSorted($current_folder);
if(count($current_folder_content) > 0 AND CanAcessLibrary()){ if(count($current_folder_content) > 0 AND CanAcessLibrary()){
$html = ''; $html = '';
foreach($current_folder_content as $c){ foreach($current_folder_content as $c){
if($view == 'list'){ if($view == 'list'){
if($c['is_file'] == false){ if($c['is_file'] == false){
$html .= '<tr> $html .= '<tr>
<td> <td>
<i class="icon-folder-open"></i>&nbsp; <i class="icon-folder-open"></i>&nbsp;
<a class="lib-folder" href="" rel="'. urlencode($c['path']).'" title="'. $c['name'] .'"> <a class="lib-folder" href="" rel="'. urlencode($c['path']).'" title="'. $c['name'] .'">
'. TrimText($c['name'], 50) .' '. TrimText($c['name'], 50) .'
</a> </a>
</td> </td>
<td width="20%"> <td width="20%">
'. $c['i'] .' Items '. $c['i'] .' Items
</td> </td>
<td width="10%"> <td width="10%">
<a href="" class="transparent change-folder" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a>&nbsp;&nbsp; <a href="" class="transparent change-folder" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a>&nbsp;&nbsp;
<a href="" class="transparent delete-folder" rel="'. urlencode($c['path']).'" title="Delete"><i class="icon-trash"></i></a> <a href="" class="transparent delete-folder" rel="'. urlencode($c['path']).'" title="Delete"><i class="icon-trash"></i></a>
</td> </td>
</tr>'; </tr>';
}else{ }else{
$html .= '<tr> $html .= '<tr>
<td> <td>
<i class="icon-picture"></i>&nbsp; <i class="icon-picture"></i>&nbsp;
<a href="" class="img-thumbs" rel="' .$c['path'] . '" title="'. $c['name'] .'"> <a href="" class="img-thumbs" rel="' .$c['path'] . '" title="'. $c['name'] .'">
'. TrimText($c['name'], 50) .' '. TrimText($c['name'], 50) .'
</a> </a>
</td> </td>
<td width="20%"> <td width="20%">
'. formatSizeUnits($c['s']) .' '. formatSizeUnits($c['s']) .'
</td> </td>
<td width="10%"> <td width="10%">
<a href="" class="transparent change-file" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a>&nbsp;&nbsp; <a href="" class="transparent change-file" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a>&nbsp;&nbsp;
<a href="" class="transparent delete-file" rel="'. urlencode($c['p']).'" title="Delete"><i class="icon-trash"></i></a> <a href="" class="transparent delete-file" rel="'. urlencode($c['p']).'" title="Delete"><i class="icon-trash"></i></a>
</td> </td>
</tr>'; </tr>';
} }
}else{ }else{
if($c['is_file'] == false){ if($c['is_file'] == false){
$html .= '<div class="item"> $html .= '<div class="item">
<a class="lib-folder" href="" rel="'. urlencode($c['path']).'" title="'. $c['name'] .'"> <a class="lib-folder" href="" rel="'. urlencode($c['path']).'" title="'. $c['name'] .'">
<img src="bootstrap/img/130x90.png" class="img-polaroid" width="130" height="90"> <img src="bootstrap/img/130x90.png" class="img-polaroid" width="130" height="90">
</a> </a>
<div> <div>
<a href="" class="pull-left transparent change-folder" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a> <a href="" class="pull-left transparent change-folder" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a>
<small> <small>
'. $c['name'] .'</small> '. $c['name'] .'</small>
<a href="" class="pull-right transparent delete-folder" rel="'. urlencode($c['path']).'" title="Delete"> <a href="" class="pull-right transparent delete-folder" rel="'. urlencode($c['path']).'" title="Delete">
<i class="icon-trash"></i></a> <i class="icon-trash"></i></a>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div>'; </div>';
}else{ }else{
$html .= '<div class="item"> $html .= '<div class="item">
<a href="" class="img-thumbs" rel="' .$c['path'] . '" title="'. $c['name'] .'"> <a href="" class="img-thumbs" rel="' .$c['path'] . '" title="'. $c['name'] .'">
<img src="timthumb.php?src=' . $c['path'] . '&w=130&h=90" class="img-polaroid" width="130" height="90"> <img src="timthumb.php?src=' . $c['path'] . '&w=130&h=90" class="img-polaroid" width="130" height="90">
</a> </a>
<div> <div>
<a href="" class="pull-left transparent change-file" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a> <a href="" class="pull-left transparent change-file" title="Change Name" rel="'. $c['name'] .'"><i class="icon-pencil"></i></a>
<a href="" class="pull-right transparent delete-file" rel="'. urlencode($c['p']).'" title="Delete"><i class="icon-trash"></i></a> <a href="" class="pull-right transparent delete-file" rel="'. urlencode($c['p']).'" title="Delete"><i class="icon-trash"></i></a>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
</div>'; </div>';
} }
} }
} }
if($html != ''){ if($html != ''){
if($view == 'list'){ if($view == 'list'){
$html = '<br/><table class="table">' . $html . '</table>'; $html = '<br/><table class="table">' . $html . '</table>';
} }
$output["html"] = $html; $output["html"] = $html;
}else{ }else{
$output["html"] = '<center>No images in the folder.</center>'; $output["html"] = '<center>No images in the folder.</center>';
} }
}else{ }else{
$output["html"] = '<center>No images in the folder.</center>'; $output["html"] = '<center>No images in the folder.</center>';
} }

186
api/soft/tinymce/4.3.12/plugins/image/delete_file.php Normal file → Executable file
View File

@ -1,93 +1,93 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/delete_file\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/delete_file\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
$output["msg"] = ""; $output["msg"] = "";
if(isset($_GET["path"]) AND $_GET["path"] != ""){ if(isset($_GET["path"]) AND $_GET["path"] != ""){
$current_folder = urldecode(clean($_GET["path"])); $current_folder = urldecode(clean($_GET["path"]));
}else{ }else{
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
} }
if(!CanDeleteFiles()){ if(!CanDeleteFiles()){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You don not have permission to delete files."; $output["msg"] = "You don not have permission to delete files.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(isset($_GET["file"]) AND $_GET["file"] != ""){ if(isset($_GET["file"]) AND $_GET["file"] != ""){
$file = urldecode(clean($_GET["file"])); $file = urldecode(clean($_GET["file"]));
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The file name is required."; $output["msg"] = "The file name is required.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!startsWith($file, LIBRARY_FOLDER_PATH)){ if(!startsWith($file, LIBRARY_FOLDER_PATH)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You can not delete this file"; $output["msg"] = "You can not delete this file";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!file_exists($file)){ if(!file_exists($file)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The file does not exist."; $output["msg"] = "The file does not exist.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!is_file($file)){ if(!is_file($file)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "That is not a file."; $output["msg"] = "That is not a file.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!unlink($file)){ if(!unlink($file)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The file could not be deleted."; $output["msg"] = "The file could not be deleted.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
include 'contents.php'; include 'contents.php';
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

176
api/soft/tinymce/4.3.12/plugins/image/delete_folder.php Normal file → Executable file
View File

@ -1,88 +1,88 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/delete_folder\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/delete_folder\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
$output["msg"] = ""; $output["msg"] = "";
if(isset($_GET["path"]) AND $_GET["path"] != ""){ if(isset($_GET["path"]) AND $_GET["path"] != ""){
$current_folder = urldecode(clean($_GET["path"])); $current_folder = urldecode(clean($_GET["path"]));
}else{ }else{
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
} }
if(!CanDeleteFolder()){ if(!CanDeleteFolder()){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You don not have permission to delete folders."; $output["msg"] = "You don not have permission to delete folders.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(isset($_GET["folder"]) AND $_GET["folder"] != ""){ if(isset($_GET["folder"]) AND $_GET["folder"] != ""){
$folder = urldecode(clean($_GET["folder"])); $folder = urldecode(clean($_GET["folder"]));
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The folder name is required."; $output["msg"] = "The folder name is required.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!startsWith($folder, LIBRARY_FOLDER_PATH)){ if(!startsWith($folder, LIBRARY_FOLDER_PATH)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You can not delete this folder"; $output["msg"] = "You can not delete this folder";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!file_exists($folder)){ if(!file_exists($folder)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The folder does not exist."; $output["msg"] = "The folder does not exist.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!is_dir($folder)){ if(!is_dir($folder)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "That is not a folder."; $output["msg"] = "That is not a folder.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
lc_delete($folder); lc_delete($folder);
include 'contents.php'; include 'contents.php';
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

542
api/soft/tinymce/4.3.12/plugins/image/functions.php Normal file → Executable file
View File

@ -1,271 +1,271 @@
<?php <?php
function Dirtree($path, $name = "Upload to: Home", $prefix = "") { function Dirtree($path, $name = "Upload to: Home", $prefix = "") {
if(isset($_SESSION["tinymce_upload_directory"]) AND $_SESSION["tinymce_upload_directory"] == $path){ if(isset($_SESSION["tinymce_upload_directory"]) AND $_SESSION["tinymce_upload_directory"] == $path){
$list = '<option value="'.$path.'" selected="selected">'.$prefix.''.$name.'</option>'; $list = '<option value="'.$path.'" selected="selected">'.$prefix.''.$name.'</option>';
}else{ }else{
$list = '<option value="'.$path.'">'.$prefix.''.$name.'</option>'; $list = '<option value="'.$path.'">'.$prefix.''.$name.'</option>';
} }
$dircont = scandir($path); $dircont = scandir($path);
if(count($dircont) > 0){ if(count($dircont) > 0){
foreach($dircont as $file){ foreach($dircont as $file){
if(is_file($path . $file)){ if(is_file($path . $file)){
//do nothing //do nothing
}elseif($file !== '.' && $file !== '..'){ }elseif($file !== '.' && $file !== '..'){
$list .= Dirtree($path . $file . '/', $file, $prefix . '&hellip; '); $list .= Dirtree($path . $file . '/', $file, $prefix . '&hellip; ');
} }
} }
} }
return $list; return $list;
} }
function startsWith($haystack,$needle,$case=true) { function startsWith($haystack,$needle,$case=true) {
if($case){return (strcmp(substr($haystack, 0, strlen($needle)),$needle)===0);} if($case){return (strcmp(substr($haystack, 0, strlen($needle)),$needle)===0);}
return (strcasecmp(substr($haystack, 0, strlen($needle)),$needle)===0); return (strcasecmp(substr($haystack, 0, strlen($needle)),$needle)===0);
} }
function lc_delete($targ) { function lc_delete($targ) {
if(is_dir($targ)){ if(is_dir($targ)){
$files = glob($targ . '*', GLOB_MARK); //GLOB_MARK adds a slash to directories returned $files = glob($targ . '*', GLOB_MARK); //GLOB_MARK adds a slash to directories returned
foreach($files as $file){ foreach($files as $file){
lc_delete($file); lc_delete($file);
} }
rmdir($targ); rmdir($targ);
}else{ }else{
unlink($targ); unlink($targ);
} }
} }
function scandirSorted($path) { function scandirSorted($path) {
$sortedData = array(); $sortedData = array();
$dircont = scandir($path); $dircont = scandir($path);
if(count($dircont) > 0){ if(count($dircont) > 0){
foreach($dircont as $file){ foreach($dircont as $file){
if(is_file($path . $file)){ if(is_file($path . $file)){
if(ValidFileExtension($file)){ if(ValidFileExtension($file)){
array_push($sortedData, array('is_file'=>true, 'name'=>$file, 'path'=>PathToUrl($path) . $file, 'p'=>$path . $file, 's'=> filesize($path . $file))); array_push($sortedData, array('is_file'=>true, 'name'=>$file, 'path'=>PathToUrl($path) . $file, 'p'=>$path . $file, 's'=> filesize($path . $file)));
} }
}elseif($file !== '.' && $file !== '..'){ }elseif($file !== '.' && $file !== '..'){
$count = count(scandirSorted($path . $file . '/')); $count = count(scandirSorted($path . $file . '/'));
array_unshift($sortedData, array('is_file'=>false, 'name'=>$file, 'path'=>$path . $file . '/', 'i'=>$count)); array_unshift($sortedData, array('is_file'=>false, 'name'=>$file, 'path'=>$path . $file . '/', 'i'=>$count));
} }
} }
} }
return $sortedData; return $sortedData;
} }
function SearchFiles($path){ function SearchFiles($path){
$sortedData = array(); $sortedData = array();
$dircont = scandir($path); $dircont = scandir($path);
if(count($dircont) > 0){ if(count($dircont) > 0){
foreach($dircont as $file){ foreach($dircont as $file){
if(is_file($path . $file)){ if(is_file($path . $file)){
if(ValidFileExtension($file)){ if(ValidFileExtension($file)){
$sortedData[] = array(0=>PathToUrl($path) . $file, 1=>$file); $sortedData[] = array(0=>PathToUrl($path) . $file, 1=>$file);
} }
}elseif($file !== '.' && $file !== '..'){ }elseif($file !== '.' && $file !== '..'){
array_merge($sortedData, SearchFiles($path . $file . '/')); array_merge($sortedData, SearchFiles($path . $file . '/'));
} }
} }
} }
return $sortedData; return $sortedData;
} }
function PathToUrl($path){ function PathToUrl($path){
if($path == LIBRARY_FOLDER_PATH){ if($path == LIBRARY_FOLDER_PATH){
return LIBRARY_FOLDER_URL; return LIBRARY_FOLDER_URL;
}else{ }else{
$url = str_replace(LIBRARY_FOLDER_PATH,"",$path); $url = str_replace(LIBRARY_FOLDER_PATH,"",$path);
//array_shift($url);// Remove root of lib //array_shift($url);// Remove root of lib
if($url != ""){ if($url != ""){
return LIBRARY_FOLDER_URL . $url; return LIBRARY_FOLDER_URL . $url;
}else{ }else{
return LIBRARY_FOLDER_URL; return LIBRARY_FOLDER_URL;
} }
} }
} }
function ValidFileExtension($name){ function ValidFileExtension($name){
$allowed_extensions = explode(',', ALLOWED_IMG_EXTENSIONS); $allowed_extensions = explode(',', ALLOWED_IMG_EXTENSIONS);
$extension = strtolower(GetExtension($name)); $extension = strtolower(GetExtension($name));
if (in_array($extension, $allowed_extensions, TRUE)){ if (in_array($extension, $allowed_extensions, TRUE)){
return true; return true;
} else { } else {
return false; return false;
} }
} }
function GetExtension($filename){ function GetExtension($filename){
$x = explode('.', $filename); $x = explode('.', $filename);
return end($x); return end($x);
} }
function clean($str) { function clean($str) {
if(is_array($str)){ if(is_array($str)){
$return = array(); $return = array();
foreach($str as $k=>$v){ foreach($str as $k=>$v){
$return[clean($k)] = clean($v); $return[clean($k)] = clean($v);
} }
return $return; return $return;
}else{ }else{
$str = @trim($str); $str = @trim($str);
return $str; return $str;
} }
} }
function set_filename($path, $filename){ function set_filename($path, $filename){
$filename = clean_file_name($filename); $filename = clean_file_name($filename);
$file_ext = GetExtension($filename); $file_ext = GetExtension($filename);
if ( ! file_exists($path.$filename)){ if ( ! file_exists($path.$filename)){
return $filename; return $filename;
} }
$new_filename = str_replace('.'.$file_ext, '', $filename); $new_filename = str_replace('.'.$file_ext, '', $filename);
for ($i = 1; $i < 300; $i++){ for ($i = 1; $i < 300; $i++){
if ( ! file_exists($path.$new_filename.'_'.$i.'.'.$file_ext)){ if ( ! file_exists($path.$new_filename.'_'.$i.'.'.$file_ext)){
$new_filename .= '_'.$i.'.'.$file_ext; $new_filename .= '_'.$i.'.'.$file_ext;
break; break;
} }
} }
return $new_filename; return $new_filename;
} }
function clean_file_name($filename){ function clean_file_name($filename){
$invalid = array("<!--","-->","'","<",">",'"','&','$','=',';','?','/',"%20","%22","%3c","%253c","%3e","%0e","%28","%29","%2528","%26","%24","%3f","%3b", "%3d"); $invalid = array("<!--","-->","'","<",">",'"','&','$','=',';','?','/',"%20","%22","%3c","%253c","%3e","%0e","%28","%29","%2528","%26","%24","%3f","%3b", "%3d");
$filename = str_replace($invalid, '', $filename); $filename = str_replace($invalid, '', $filename);
$filename = preg_replace("/\s+/", "_", $filename); $filename = preg_replace("/\s+/", "_", $filename);
return stripslashes($filename); return stripslashes($filename);
} }
function MBToBytes($number){ function MBToBytes($number){
return $number*pow(1024,2); return $number*pow(1024,2);
} }
function DoUpload($field = 'userfile'){ function DoUpload($field = 'userfile'){
$output = array(); $output = array();
$output["success"] = true; $output["success"] = true;
if(isset($_SESSION["tinymce_upload_directory"]) AND $_SESSION["tinymce_upload_directory"] != ""){ if(isset($_SESSION["tinymce_upload_directory"]) AND $_SESSION["tinymce_upload_directory"] != ""){
$current_folder = $_SESSION["tinymce_upload_directory"]; $current_folder = $_SESSION["tinymce_upload_directory"];
}else{ }else{
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
} }
if(!CanAcessUploadForm()){ if(!CanAcessUploadForm()){
$output["reason"] = "No permission to upload."; $output["reason"] = "No permission to upload.";
$output["success"] = false; $output["success"] = false;
return $output; return $output;
} }
if(!isset($_FILES[$field])){ if(!isset($_FILES[$field])){
$output["reason"] = "File not selected."; $output["reason"] = "File not selected.";
$output["success"] = false; $output["success"] = false;
return $output; return $output;
} }
if(!is_uploaded_file($_FILES[$field]['tmp_name'])){ if(!is_uploaded_file($_FILES[$field]['tmp_name'])){
$error = (!isset($_FILES[$field]['error'])) ? 4 : $_FILES[$field]['error']; $error = (!isset($_FILES[$field]['error'])) ? 4 : $_FILES[$field]['error'];
$output["success"] = false; $output["success"] = false;
switch($error){ switch($error){
case 1: // UPLOAD_ERR_INI_SIZE case 1: // UPLOAD_ERR_INI_SIZE
$output["reason"] = "File exceeds limit size."; $output["reason"] = "File exceeds limit size.";
break; break;
case 2: // UPLOAD_ERR_FORM_SIZE case 2: // UPLOAD_ERR_FORM_SIZE
$output["reason"] = "File exceeds limit size."; $output["reason"] = "File exceeds limit size.";
break; break;
case 3: // UPLOAD_ERR_PARTIAL case 3: // UPLOAD_ERR_PARTIAL
$output["reason"] = "File uploaded partially."; $output["reason"] = "File uploaded partially.";
break; break;
case 4: // UPLOAD_ERR_NO_FILE case 4: // UPLOAD_ERR_NO_FILE
$output["reason"] = "File not selected."; $output["reason"] = "File not selected.";
break; break;
case 6: // UPLOAD_ERR_NO_TMP_DIR case 6: // UPLOAD_ERR_NO_TMP_DIR
$output["reason"] = "No temp directory."; $output["reason"] = "No temp directory.";
break; break;
case 7: // UPLOAD_ERR_CANT_WRITE case 7: // UPLOAD_ERR_CANT_WRITE
$output["reason"] = "Unable to write the file."; $output["reason"] = "Unable to write the file.";
break; break;
case 8: // UPLOAD_ERR_EXTENSION case 8: // UPLOAD_ERR_EXTENSION
$output["reason"] = "Invalid extension."; $output["reason"] = "Invalid extension.";
break; break;
default : default :
$output["reason"] = "File not selected."; $output["reason"] = "File not selected.";
break; break;
} }
return $output; return $output;
} }
if(!ValidFileExtension($_FILES[$field]['name'])){ if(!ValidFileExtension($_FILES[$field]['name'])){
$output["reason"] = "Invalid extension."; $output["reason"] = "Invalid extension.";
$output["success"] = false; $output["success"] = false;
return $output; return $output;
} }
$file_name = set_filename($current_folder, $_FILES[$field]['name']); $file_name = set_filename($current_folder, $_FILES[$field]['name']);
if(!@copy($_FILES[$field]['tmp_name'], $current_folder.$file_name)){ if(!@copy($_FILES[$field]['tmp_name'], $current_folder.$file_name)){
if(!@move_uploaded_file($_FILES[$field]['tmp_name'], $current_folder.$file_name)){ if(!@move_uploaded_file($_FILES[$field]['tmp_name'], $current_folder.$file_name)){
$output["reason"] = "Could not move file."; $output["reason"] = "Could not move file.";
$output["success"] = false; $output["success"] = false;
return $output; return $output;
} }
} }
if(!isset($_SESSION['SimpleImageManager'])){ if(!isset($_SESSION['SimpleImageManager'])){
$_SESSION['SimpleImageManager'] = array(); $_SESSION['SimpleImageManager'] = array();
} }
$_SESSION['SimpleImageManager'][] = PathToUrl($current_folder).$file_name; $_SESSION['SimpleImageManager'][] = PathToUrl($current_folder).$file_name;
$output["file"] = PathToUrl($current_folder).$file_name; $output["file"] = PathToUrl($current_folder).$file_name;
return $output; return $output;
} }
function is_url_exist($url){ function is_url_exist($url){
$ch = curl_init($url); $ch = curl_init($url);
curl_setopt($ch, CURLOPT_NOBODY, true); curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch); curl_exec($ch);
$code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($code == 200){ if($code == 200){
$status = true; $status = true;
}else{ }else{
$status = false; $status = false;
} }
curl_close($ch); curl_close($ch);
return $status; return $status;
} }
function TrimText($input, $length) { function TrimText($input, $length) {
$input = strip_tags($input); $input = strip_tags($input);
if (strlen($input) <= $length) { if (strlen($input) <= $length) {
return $input; return $input;
} }
$trimmed_text = substr($input, 0, $length); $trimmed_text = substr($input, 0, $length);
$trimmed_text .= ' &hellip;'; $trimmed_text .= ' &hellip;';
return $trimmed_text; return $trimmed_text;
} }
function formatSizeUnits($bytes){ function formatSizeUnits($bytes){
if ($bytes >= 1073741824){ if ($bytes >= 1073741824){
$bytes = number_format($bytes / 1073741824, 2) . ' GB'; $bytes = number_format($bytes / 1073741824, 2) . ' GB';
}elseif($bytes >= 1048576){ }elseif($bytes >= 1048576){
$bytes = number_format($bytes / 1048576, 2) . ' MB'; $bytes = number_format($bytes / 1048576, 2) . ' MB';
}elseif($bytes >= 1024){ }elseif($bytes >= 1024){
$bytes = number_format($bytes / 1024, 2) . ' KB'; $bytes = number_format($bytes / 1024, 2) . ' KB';
}elseif($bytes > 1){ }elseif($bytes > 1){
$bytes = $bytes . ' bytes'; $bytes = $bytes . ' bytes';
}elseif($bytes == 1){ }elseif($bytes == 1){
$bytes = $bytes . ' byte'; $bytes = $bytes . ' byte';
}else{ }else{
$bytes = '0 bytes'; $bytes = '0 bytes';
} }
return $bytes; return $bytes;
} }

2046
api/soft/tinymce/4.3.12/plugins/image/image.php Normal file → Executable file

File diff suppressed because it is too large Load Diff

114
api/soft/tinymce/4.3.12/plugins/image/lib.php Normal file → Executable file
View File

@ -1,57 +1,57 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/lib\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/lib\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
if(isset($_GET["toggle"]) AND $_GET["toggle"] != ""){ if(isset($_GET["toggle"]) AND $_GET["toggle"] != ""){
if(isset($_SESSION['tinymce_toggle_view'])){ if(isset($_SESSION['tinymce_toggle_view'])){
if($_SESSION['tinymce_toggle_view'] == 'grid'){ if($_SESSION['tinymce_toggle_view'] == 'grid'){
$_SESSION['tinymce_toggle_view'] = 'list'; $_SESSION['tinymce_toggle_view'] = 'list';
}else{ }else{
$_SESSION['tinymce_toggle_view'] = 'grid'; $_SESSION['tinymce_toggle_view'] = 'grid';
} }
}else{ }else{
$_SESSION['tinymce_toggle_view'] = 'list'; $_SESSION['tinymce_toggle_view'] = 'list';
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
if(isset($_GET["path"]) AND $_GET["path"] != ""){ if(isset($_GET["path"]) AND $_GET["path"] != ""){
if(!startsWith(urldecode($_GET["path"]), LIBRARY_FOLDER_PATH)){ if(!startsWith(urldecode($_GET["path"]), LIBRARY_FOLDER_PATH)){
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
}else{ }else{
$current_folder = urldecode(clean($_GET["path"])); $current_folder = urldecode(clean($_GET["path"]));
} }
}else{ }else{
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
} }
include 'contents.php'; include 'contents.php';
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

190
api/soft/tinymce/4.3.12/plugins/image/new_folder.php Normal file → Executable file
View File

@ -1,95 +1,95 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/new_folder\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/new_folder\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
$output["msg"] = ""; $output["msg"] = "";
if(isset($_GET["path"]) AND $_GET["path"] != ""){ if(isset($_GET["path"]) AND $_GET["path"] != ""){
$current_folder = urldecode(clean($_GET["path"])); $current_folder = urldecode(clean($_GET["path"]));
}else{ }else{
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
} }
if(!is_writable($current_folder)){ if(!is_writable($current_folder)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The current folder is not writable."; $output["msg"] = "The current folder is not writable.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!CanCreateFolders()){ if(!CanCreateFolders()){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You don not have permission to create folders."; $output["msg"] = "You don not have permission to create folders.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(isset($_GET["folder"]) AND $_GET["folder"] != ""){ if(isset($_GET["folder"]) AND $_GET["folder"] != ""){
$new_folder = $current_folder . '/' . clean($_GET["folder"]); $new_folder = $current_folder . '/' . clean($_GET["folder"]);
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The new folder name is required."; $output["msg"] = "The new folder name is required.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(file_exists($new_folder)) { if(file_exists($new_folder)) {
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "Another folder with the same name exists. Please select another name."; $output["msg"] = "Another folder with the same name exists. Please select another name.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!strpbrk($_GET["folder"], "\\/?%*:|\"<>") === FALSE){ if(!strpbrk($_GET["folder"], "\\/?%*:|\"<>") === FALSE){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The folder name is invalid."; $output["msg"] = "The folder name is invalid.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
$old = umask(0); $old = umask(0);
if(!mkdir($new_folder, 0777)){ if(!mkdir($new_folder, 0777)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The folder could not be created."; $output["msg"] = "The folder could not be created.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
umask($old); umask($old);
include 'contents.php'; include 'contents.php';
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

296
api/soft/tinymce/4.3.12/plugins/image/plugin.js Normal file → Executable file
View File

@ -1,148 +1,148 @@
/*global tinymce:true */ /*global tinymce:true */
tinymce.PluginManager.add('image', function(editor, url) { tinymce.PluginManager.add('image', function(editor, url) {
function showDialog() { function showDialog() {
var win, data, dom = editor.dom, imgElm = editor.selection.getNode(); var win, data, dom = editor.dom, imgElm = editor.selection.getNode();
var width, height, query_str = ""; var width, height, query_str = "";
if(imgElm.nodeName == "IMG" && !imgElm.getAttribute('data-mce-object')){ if(imgElm.nodeName == "IMG" && !imgElm.getAttribute('data-mce-object')){
query_str = "?title=" + dom.getAttrib(imgElm, 'title') + "&alt=" + dom.getAttrib(imgElm, 'alt') + "&width=" + dom.getAttrib(imgElm, 'width') + "&height=" + dom.getAttrib(imgElm, 'height') + "&src=" + encodeURIComponent(dom.getAttrib(imgElm, 'src')); query_str = "?title=" + dom.getAttrib(imgElm, 'title') + "&alt=" + dom.getAttrib(imgElm, 'alt') + "&width=" + dom.getAttrib(imgElm, 'width') + "&height=" + dom.getAttrib(imgElm, 'height') + "&src=" + encodeURIComponent(dom.getAttrib(imgElm, 'src'));
if(dom.getStyle(imgElm, 'float')){ if(dom.getStyle(imgElm, 'float')){
query_str += "&align=" + dom.getStyle(imgElm, 'float'); query_str += "&align=" + dom.getStyle(imgElm, 'float');
} }
}else{ }else{
imgElm = null; imgElm = null;
} }
function GetTheHtml(){ function GetTheHtml(){
var html = ''; var html = '';
if(imgElm){ if(imgElm){
html += '<input type="hidden" name="src" id="src" value="' + dom.getAttrib(imgElm, "src") + '"/>'; html += '<input type="hidden" name="src" id="src" value="' + dom.getAttrib(imgElm, "src") + '"/>';
html += '<input type="hidden" name="alt" id="alt" value="' + dom.getAttrib(imgElm, "alt") + '"/>'; html += '<input type="hidden" name="alt" id="alt" value="' + dom.getAttrib(imgElm, "alt") + '"/>';
html += '<input type="hidden" name="title" id="title" value="' + dom.getAttrib(imgElm, "title") + '"/>'; html += '<input type="hidden" name="title" id="title" value="' + dom.getAttrib(imgElm, "title") + '"/>';
html += '<input type="hidden" name="width" id="width" value="' + dom.getAttrib(imgElm, "width") + '"/>'; html += '<input type="hidden" name="width" id="width" value="' + dom.getAttrib(imgElm, "width") + '"/>';
html += '<input type="hidden" name="height" id="height" value="' + dom.getAttrib(imgElm, "height") + '"/>'; html += '<input type="hidden" name="height" id="height" value="' + dom.getAttrib(imgElm, "height") + '"/>';
html += '<input type="hidden" name="linkURL" id="linkURL" />'; html += '<input type="hidden" name="linkURL" id="linkURL" />';
html += '<input type="hidden" name="target" id="target" />'; html += '<input type="hidden" name="target" id="target" />';
html += '<input type="hidden" name="align" id="align" value="' + dom.getStyle(imgElm, 'float') + '"/>'; html += '<input type="hidden" name="align" id="align" value="' + dom.getStyle(imgElm, 'float') + '"/>';
html += '<iframe src="'+ url + '/image.php'+ query_str + '&' + new Date().getTime() + '" frameborder="0"></iframe>'; html += '<iframe src="'+ url + '/image.php'+ query_str + '&' + new Date().getTime() + '" frameborder="0"></iframe>';
}else{ }else{
html += '<input type="hidden" name="src" id="src" />'; html += '<input type="hidden" name="src" id="src" />';
html += '<input type="hidden" name="alt" id="alt" />'; html += '<input type="hidden" name="alt" id="alt" />';
html += '<input type="hidden" name="title" id="title" />'; html += '<input type="hidden" name="title" id="title" />';
html += '<input type="hidden" name="width" id="width" />'; html += '<input type="hidden" name="width" id="width" />';
html += '<input type="hidden" name="height" id="height" />'; html += '<input type="hidden" name="height" id="height" />';
html += '<input type="hidden" name="linkURL" id="linkURL" />'; html += '<input type="hidden" name="linkURL" id="linkURL" />';
html += '<input type="hidden" name="target" id="target" />'; html += '<input type="hidden" name="target" id="target" />';
html += '<input type="hidden" name="align" id="align" />'; html += '<input type="hidden" name="align" id="align" />';
html += '<iframe src="'+ url + '/image.php'+ '?' + new Date().getTime() + '" frameborder="0"></iframe>'; html += '<iframe src="'+ url + '/image.php'+ '?' + new Date().getTime() + '" frameborder="0"></iframe>';
} }
return html; return html;
} }
function BuildDom(src, alt, w, h, title, linkURL, target, float){ function BuildDom(src, alt, w, h, title, linkURL, target, float){
if(imgElm){ if(imgElm){
if(src){ if(src){
dom.setStyle(imgElm, 'float', float); dom.setStyle(imgElm, 'float', float);
dom.setAttribs(imgElm, { dom.setAttribs(imgElm, {
'src': src, 'src': src,
'alt': alt ? alt : null, 'alt': alt ? alt : null,
'width': w ? w : null, 'width': w ? w : null,
'height': h ? h : null, 'height': h ? h : null,
'title': title ? title : null 'title': title ? title : null
}); });
} }
}else{ }else{
var markup = ''; var markup = '';
if(src){ if(src){
markup += '<img src="' + src + '"'; markup += '<img src="' + src + '"';
if(alt){ if(alt){
markup += ' alt="' + alt + '"'; markup += ' alt="' + alt + '"';
} }
if(title){ if(title){
markup += ' title="' + title + '"'; markup += ' title="' + title + '"';
} }
if(h){ if(h){
markup += ' height="' + h + '"'; markup += ' height="' + h + '"';
} }
if(w){ if(w){
markup += ' width="' + w + '"'; markup += ' width="' + w + '"';
} }
if(float){ if(float){
if(!linkURL){ if(!linkURL){
markup += ' style="float: ' + float + '"'; markup += ' style="float: ' + float + '"';
} }
} }
markup += ' />'; markup += ' />';
if(linkURL){ if(linkURL){
var thelink = '<a href="' + linkURL + '"'; var thelink = '<a href="' + linkURL + '"';
if(target){ if(target){
thelink += ' target="' + target + '"'; thelink += ' target="' + target + '"';
} }
if(float){ if(float){
thelink += ' style="float: ' + float + '"'; thelink += ' style="float: ' + float + '"';
} }
thelink += '>'; thelink += '>';
markup = thelink + markup + '</a>'; markup = thelink + markup + '</a>';
} }
editor.insertContent(markup); editor.insertContent(markup);
} }
} }
} }
win = editor.windowManager.open({ win = editor.windowManager.open({
title: "Manage Image", title: "Manage Image",
width : 885, width : 885,
height : 475, height : 475,
html: GetTheHtml(), html: GetTheHtml(),
buttons: [ buttons: [
{ {
text: 'Insert Image', text: 'Insert Image',
subtype: 'primary', subtype: 'primary',
onclick: function(e) { onclick: function(e) {
BuildDom(document.getElementById("src").value, BuildDom(document.getElementById("src").value,
document.getElementById("alt").value, document.getElementById("alt").value,
document.getElementById("width").value, document.getElementById("width").value,
document.getElementById("height").value, document.getElementById("height").value,
document.getElementById("title").value, document.getElementById("title").value,
document.getElementById("linkURL").value, document.getElementById("linkURL").value,
document.getElementById("target").value, document.getElementById("target").value,
document.getElementById("align").value); document.getElementById("align").value);
this.parent().parent().close(); this.parent().parent().close();
} }
}, },
{ {
text: 'Cancel', text: 'Cancel',
onclick: function() { onclick: function() {
this.parent().parent().close(); this.parent().parent().close();
} }
}] }]
}); });
} }
editor.addButton('image', { editor.addButton('image', {
icon: 'image', icon: 'image',
tooltip: 'Insert/edit image', tooltip: 'Insert/edit image',
onclick: showDialog, onclick: showDialog,
stateSelector: 'img:not([data-mce-object])' stateSelector: 'img:not([data-mce-object])'
}); });
editor.addMenuItem('image', { editor.addMenuItem('image', {
icon: 'image', icon: 'image',
text: 'Insert image', text: 'Insert image',
onclick: showDialog, onclick: showDialog,
context: 'insert', context: 'insert',
prependToContext: true prependToContext: true
}); });
}); });

296
api/soft/tinymce/4.3.12/plugins/image/plugin.min.js vendored Normal file → Executable file
View File

@ -1,148 +1,148 @@
/*global tinymce:true */ /*global tinymce:true */
tinymce.PluginManager.add('image', function(editor, url) { tinymce.PluginManager.add('image', function(editor, url) {
function showDialog() { function showDialog() {
var win, data, dom = editor.dom, imgElm = editor.selection.getNode(); var win, data, dom = editor.dom, imgElm = editor.selection.getNode();
var width, height, query_str = ""; var width, height, query_str = "";
if(imgElm.nodeName == "IMG" && !imgElm.getAttribute('data-mce-object')){ if(imgElm.nodeName == "IMG" && !imgElm.getAttribute('data-mce-object')){
query_str = "?title=" + dom.getAttrib(imgElm, 'title') + "&alt=" + dom.getAttrib(imgElm, 'alt') + "&width=" + dom.getAttrib(imgElm, 'width') + "&height=" + dom.getAttrib(imgElm, 'height') + "&src=" + encodeURIComponent(dom.getAttrib(imgElm, 'src')); query_str = "?title=" + dom.getAttrib(imgElm, 'title') + "&alt=" + dom.getAttrib(imgElm, 'alt') + "&width=" + dom.getAttrib(imgElm, 'width') + "&height=" + dom.getAttrib(imgElm, 'height') + "&src=" + encodeURIComponent(dom.getAttrib(imgElm, 'src'));
if(dom.getStyle(imgElm, 'float')){ if(dom.getStyle(imgElm, 'float')){
query_str += "&align=" + dom.getStyle(imgElm, 'float'); query_str += "&align=" + dom.getStyle(imgElm, 'float');
} }
}else{ }else{
imgElm = null; imgElm = null;
} }
function GetTheHtml(){ function GetTheHtml(){
var html = ''; var html = '';
if(imgElm){ if(imgElm){
html += '<input type="hidden" name="src" id="src" value="' + dom.getAttrib(imgElm, "src") + '"/>'; html += '<input type="hidden" name="src" id="src" value="' + dom.getAttrib(imgElm, "src") + '"/>';
html += '<input type="hidden" name="alt" id="alt" value="' + dom.getAttrib(imgElm, "alt") + '"/>'; html += '<input type="hidden" name="alt" id="alt" value="' + dom.getAttrib(imgElm, "alt") + '"/>';
html += '<input type="hidden" name="title" id="title" value="' + dom.getAttrib(imgElm, "title") + '"/>'; html += '<input type="hidden" name="title" id="title" value="' + dom.getAttrib(imgElm, "title") + '"/>';
html += '<input type="hidden" name="width" id="width" value="' + dom.getAttrib(imgElm, "width") + '"/>'; html += '<input type="hidden" name="width" id="width" value="' + dom.getAttrib(imgElm, "width") + '"/>';
html += '<input type="hidden" name="height" id="height" value="' + dom.getAttrib(imgElm, "height") + '"/>'; html += '<input type="hidden" name="height" id="height" value="' + dom.getAttrib(imgElm, "height") + '"/>';
html += '<input type="hidden" name="linkURL" id="linkURL" />'; html += '<input type="hidden" name="linkURL" id="linkURL" />';
html += '<input type="hidden" name="target" id="target" />'; html += '<input type="hidden" name="target" id="target" />';
html += '<input type="hidden" name="align" id="align" value="' + dom.getStyle(imgElm, 'float') + '"/>'; html += '<input type="hidden" name="align" id="align" value="' + dom.getStyle(imgElm, 'float') + '"/>';
html += '<iframe src="'+ url + '/image.php'+ query_str + '&' + new Date().getTime() + '" frameborder="0"></iframe>'; html += '<iframe src="'+ url + '/image.php'+ query_str + '&' + new Date().getTime() + '" frameborder="0"></iframe>';
}else{ }else{
html += '<input type="hidden" name="src" id="src" />'; html += '<input type="hidden" name="src" id="src" />';
html += '<input type="hidden" name="alt" id="alt" />'; html += '<input type="hidden" name="alt" id="alt" />';
html += '<input type="hidden" name="title" id="title" />'; html += '<input type="hidden" name="title" id="title" />';
html += '<input type="hidden" name="width" id="width" />'; html += '<input type="hidden" name="width" id="width" />';
html += '<input type="hidden" name="height" id="height" />'; html += '<input type="hidden" name="height" id="height" />';
html += '<input type="hidden" name="linkURL" id="linkURL" />'; html += '<input type="hidden" name="linkURL" id="linkURL" />';
html += '<input type="hidden" name="target" id="target" />'; html += '<input type="hidden" name="target" id="target" />';
html += '<input type="hidden" name="align" id="align" />'; html += '<input type="hidden" name="align" id="align" />';
html += '<iframe src="'+ url + '/image.php'+ '?' + new Date().getTime() + '" frameborder="0"></iframe>'; html += '<iframe src="'+ url + '/image.php'+ '?' + new Date().getTime() + '" frameborder="0"></iframe>';
} }
return html; return html;
} }
function BuildDom(src, alt, w, h, title, linkURL, target, float){ function BuildDom(src, alt, w, h, title, linkURL, target, float){
if(imgElm){ if(imgElm){
if(src){ if(src){
dom.setStyle(imgElm, 'float', float); dom.setStyle(imgElm, 'float', float);
dom.setAttribs(imgElm, { dom.setAttribs(imgElm, {
'src': src, 'src': src,
'alt': alt ? alt : null, 'alt': alt ? alt : null,
'width': w ? w : null, 'width': w ? w : null,
'height': h ? h : null, 'height': h ? h : null,
'title': title ? title : null 'title': title ? title : null
}); });
} }
}else{ }else{
var markup = ''; var markup = '';
if(src){ if(src){
markup += '<img src="' + src + '"'; markup += '<img src="' + src + '"';
if(alt){ if(alt){
markup += ' alt="' + alt + '"'; markup += ' alt="' + alt + '"';
} }
if(title){ if(title){
markup += ' title="' + title + '"'; markup += ' title="' + title + '"';
} }
if(h){ if(h){
markup += ' height="' + h + '"'; markup += ' height="' + h + '"';
} }
if(w){ if(w){
markup += ' width="' + w + '"'; markup += ' width="' + w + '"';
} }
if(float){ if(float){
if(!linkURL){ if(!linkURL){
markup += ' style="float: ' + float + '"'; markup += ' style="float: ' + float + '"';
} }
} }
markup += ' />'; markup += ' />';
if(linkURL){ if(linkURL){
var thelink = '<a href="' + linkURL + '"'; var thelink = '<a href="' + linkURL + '"';
if(target){ if(target){
thelink += ' target="' + target + '"'; thelink += ' target="' + target + '"';
} }
if(float){ if(float){
thelink += ' style="float: ' + float + '"'; thelink += ' style="float: ' + float + '"';
} }
thelink += '>'; thelink += '>';
markup = thelink + markup + '</a>'; markup = thelink + markup + '</a>';
} }
editor.insertContent(markup); editor.insertContent(markup);
} }
} }
} }
win = editor.windowManager.open({ win = editor.windowManager.open({
title: "Manage Image", title: "Manage Image",
width : 885, width : 885,
height : 475, height : 475,
html: GetTheHtml(), html: GetTheHtml(),
buttons: [ buttons: [
{ {
text: 'Insert Image', text: 'Insert Image',
subtype: 'primary', subtype: 'primary',
onclick: function(e) { onclick: function(e) {
BuildDom(document.getElementById("src").value, BuildDom(document.getElementById("src").value,
document.getElementById("alt").value, document.getElementById("alt").value,
document.getElementById("width").value, document.getElementById("width").value,
document.getElementById("height").value, document.getElementById("height").value,
document.getElementById("title").value, document.getElementById("title").value,
document.getElementById("linkURL").value, document.getElementById("linkURL").value,
document.getElementById("target").value, document.getElementById("target").value,
document.getElementById("align").value); document.getElementById("align").value);
this.parent().parent().close(); this.parent().parent().close();
} }
}, },
{ {
text: 'Cancel', text: 'Cancel',
onclick: function() { onclick: function() {
this.parent().parent().close(); this.parent().parent().close();
} }
}] }]
}); });
} }
editor.addButton('image', { editor.addButton('image', {
icon: 'image', icon: 'image',
tooltip: 'Insert/edit image', tooltip: 'Insert/edit image',
onclick: showDialog, onclick: showDialog,
stateSelector: 'img:not([data-mce-object])' stateSelector: 'img:not([data-mce-object])'
}); });
editor.addMenuItem('image', { editor.addMenuItem('image', {
icon: 'image', icon: 'image',
text: 'Insert image', text: 'Insert image',
onclick: showDialog, onclick: showDialog,
context: 'insert', context: 'insert',
prependToContext: true prependToContext: true
}); });
}); });

114
api/soft/tinymce/4.3.12/plugins/image/recent.php Normal file → Executable file
View File

@ -1,57 +1,57 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/recent\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/recent\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
if(isset($_SESSION['SimpleImageManager']) AND count($_SESSION['SimpleImageManager']) > 0){ if(isset($_SESSION['SimpleImageManager']) AND count($_SESSION['SimpleImageManager']) > 0){
$html = ''; $html = '';
foreach($_SESSION['SimpleImageManager'] as $s){ foreach($_SESSION['SimpleImageManager'] as $s){
$me = false; $me = false;
$exists = is_url_exist($s); $exists = is_url_exist($s);
$url_host = parse_url($s, PHP_URL_HOST); $url_host = parse_url($s, PHP_URL_HOST);
if($url_host == $_SERVER['HTTP_HOST']){ if($url_host == $_SERVER['HTTP_HOST']){
$me = true; $me = true;
} }
if($me){ if($me){
$html .= '<div class="item"><a href="" class="img-thumbs" rel="' .$s . '"><img src="timthumb.php?src=' . $s . '&w=130&h=90" class="img-polaroid" width="130" height="90"></a></div>'; $html .= '<div class="item"><a href="" class="img-thumbs" rel="' .$s . '"><img src="timthumb.php?src=' . $s . '&w=130&h=90" class="img-polaroid" width="130" height="90"></a></div>';
}elseif($exists){ }elseif($exists){
$html .= '<div class="item"><a href="" class="img-thumbs" rel="' .$s . '"><img src="' . $s . '" class="img-polaroid" width="130" height="90"></a></div>'; $html .= '<div class="item"><a href="" class="img-thumbs" rel="' .$s . '"><img src="' . $s . '" class="img-polaroid" width="130" height="90"></a></div>';
} }
} }
if($html != ''){ if($html != ''){
$output["html"] = $html; $output["html"] = $html;
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
} }
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
} }
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

View File

@ -1,34 +1,34 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/refresh_dir_list\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/refresh_dir_list\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
$output["html"] = Dirtree(LIBRARY_FOLDER_PATH);; $output["html"] = Dirtree(LIBRARY_FOLDER_PATH);;
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

212
api/soft/tinymce/4.3.12/plugins/image/rename_file.php Normal file → Executable file
View File

@ -1,106 +1,106 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/rename_file\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/rename_file\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
$output["msg"] = ""; $output["msg"] = "";
if(isset($_GET["path"]) AND $_GET["path"] != ""){ if(isset($_GET["path"]) AND $_GET["path"] != ""){
$current_folder = urldecode(clean($_GET["path"])); $current_folder = urldecode(clean($_GET["path"]));
}else{ }else{
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
} }
if(!CanRenameFiles()){ if(!CanRenameFiles()){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You don not have permission to rename files."; $output["msg"] = "You don not have permission to rename files.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(isset($_GET["new_name"]) AND $_GET["new_name"] != ""){ if(isset($_GET["new_name"]) AND $_GET["new_name"] != ""){
$new_name = clean($_GET["new_name"]); $new_name = clean($_GET["new_name"]);
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The new name is required."; $output["msg"] = "The new name is required.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(isset($_GET["current_name"]) AND $_GET["current_name"] != ""){ if(isset($_GET["current_name"]) AND $_GET["current_name"] != ""){
$current_name = clean($_GET["current_name"]); $current_name = clean($_GET["current_name"]);
$file = $current_folder . $current_name; $file = $current_folder . $current_name;
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The current name is required."; $output["msg"] = "The current name is required.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!startsWith($file, LIBRARY_FOLDER_PATH)){ if(!startsWith($file, LIBRARY_FOLDER_PATH)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You can not edit this file"; $output["msg"] = "You can not edit this file";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!file_exists($file)){ if(!file_exists($file)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The file does not exist."; $output["msg"] = "The file does not exist.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!is_file($file)){ if(!is_file($file)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "That is not a file."; $output["msg"] = "That is not a file.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(file_exists(($current_folder . $new_name))){ if(file_exists(($current_folder . $new_name))){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The new name is already in use."; $output["msg"] = "The new name is already in use.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
rename(($current_folder . $current_name), ($current_folder . $new_name)); rename(($current_folder . $current_name), ($current_folder . $new_name));
include 'contents.php'; include 'contents.php';
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

212
api/soft/tinymce/4.3.12/plugins/image/rename_folder.php Normal file → Executable file
View File

@ -1,106 +1,106 @@
<?php <?php
require_once('config.php'); require_once('config.php');
require_once('functions.php'); require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/'); define('LIBRARY_FOLDER_PATH', 'uploads/');
} }
if(!defined('LIBRARY_FOLDER_PATH')){ if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http'; $pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){ if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s"; $pageURL .= "s";
} }
$pageURL .= "://"; $pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){ if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{ }else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
} }
if(preg_match("/(.*)\/rename_folder\.php/",$pageURL,$matches)){ if(preg_match("/(.*)\/rename_folder\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/'); define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
} }
} }
$output = array(); $output = array();
$output["success"] = 1; $output["success"] = 1;
$output["msg"] = ""; $output["msg"] = "";
if(isset($_GET["path"]) AND $_GET["path"] != ""){ if(isset($_GET["path"]) AND $_GET["path"] != ""){
$current_folder = urldecode(clean($_GET["path"])); $current_folder = urldecode(clean($_GET["path"]));
}else{ }else{
$current_folder = LIBRARY_FOLDER_PATH; $current_folder = LIBRARY_FOLDER_PATH;
} }
if(!CanRenameFolder()){ if(!CanRenameFolder()){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You don not have permission to rename folders."; $output["msg"] = "You don not have permission to rename folders.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(isset($_GET["new_name"]) AND $_GET["new_name"] != ""){ if(isset($_GET["new_name"]) AND $_GET["new_name"] != ""){
$new_name = clean($_GET["new_name"]); $new_name = clean($_GET["new_name"]);
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The new name is required."; $output["msg"] = "The new name is required.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(isset($_GET["current_name"]) AND $_GET["current_name"] != ""){ if(isset($_GET["current_name"]) AND $_GET["current_name"] != ""){
$current_name = clean($_GET["current_name"]); $current_name = clean($_GET["current_name"]);
$folder = $current_folder . $current_name; $folder = $current_folder . $current_name;
}else{ }else{
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The current name is required."; $output["msg"] = "The current name is required.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!startsWith($folder, LIBRARY_FOLDER_PATH)){ if(!startsWith($folder, LIBRARY_FOLDER_PATH)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "You can not rename this folder"; $output["msg"] = "You can not rename this folder";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!file_exists($folder)){ if(!file_exists($folder)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The folder does not exist."; $output["msg"] = "The folder does not exist.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(!is_dir($folder)){ if(!is_dir($folder)){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "That is not a folder."; $output["msg"] = "That is not a folder.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
if(file_exists(($current_folder . $new_name))){ if(file_exists(($current_folder . $new_name))){
$output["success"] = 0; $output["success"] = 0;
$output["msg"] = "The new name is already in use."; $output["msg"] = "The new name is already in use.";
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();
} }
rename(($current_folder . $current_name), ($current_folder . $new_name)); rename(($current_folder . $current_name), ($current_folder . $new_name));
include 'contents.php'; include 'contents.php';
header("Content-type: text/plain;"); header("Content-type: text/plain;");
echo json_encode($output); echo json_encode($output);
exit(); exit();

View File

@ -0,0 +1,30 @@
<?php
require_once('config.php');
require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/');
}
if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s";
}
$pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
if(preg_match("/(.*)\/search\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
}
}
$output = SearchFiles(LIBRARY_FOLDER_PATH);
header("Content-type: text/plain;");
echo json_encode($output);
exit();

View File

@ -0,0 +1,49 @@
<?php
require_once('config.php');
require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/');
}
if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s";
}
$pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
if(preg_match("/(.*)\/set_upload_directory\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
}
}
$output = array();
$output["success"] = 1;
$output["msg"] = "";
if(isset($_GET["path"]) AND $_GET["path"] != ""){
$current_folder = urldecode(clean($_GET["path"]));
}else{
$current_folder = LIBRARY_FOLDER_PATH;
}
if(!startsWith($current_folder, LIBRARY_FOLDER_PATH)){
$output["success"] = 0;
$output["msg"] = "You can not upload to this folder";
header("Content-type: text/plain;");
echo json_encode($output);
exit();
}
$_SESSION["tinymce_upload_directory"] = $current_folder;
header("Content-type: text/plain;");
echo json_encode($output);
exit();

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,36 @@
<?php
require_once('config.php');
require_once('functions.php');
if(!defined('LIBRARY_FOLDER_PATH')){
define('LIBRARY_FOLDER_PATH', 'uploads/');
}
if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s";
}
$pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
if(preg_match("/(.*)\/update_recent\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
}
}
if(isset($_POST["src"]) AND is_url_exist(clean($_POST["src"]))){
if(!isset($_SESSION['SimpleImageManager'])){
$_SESSION['SimpleImageManager'] = array();
$_SESSION['SimpleImageManager'][] = clean($_POST["src"]);
}else{
if(!in_array(clean($_POST["src"]), $_SESSION['SimpleImageManager'])){
$_SESSION['SimpleImageManager'][] = clean($_POST["src"]);
}
}
}

View File

@ -0,0 +1,30 @@
<?php
require_once('config.php');
require_once('functions.php');
//echo LIBRARY_FOLDER_PATH;
if(!defined('LIBRARY_FOLDER_PATH')){
// define('LIBRARY_FOLDER_PATH', 'uploads/');
}
/*
if(!defined('LIBRARY_FOLDER_PATH')){
$pageURL = 'http';
if(isset($_SERVER["HTTPS"]) AND $_SERVER["HTTPS"] == "on"){
$pageURL .= "s";
}
$pageURL .= "://";
if($_SERVER["SERVER_PORT"] != "80"){
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
}else{
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
if(preg_match("/(.*)\/upload\.php/",$pageURL,$matches)){
define('LIBRARY_FOLDER_URL', $matches[1] . '/uploads/');
}
}
*/
$output = DoUpload('upl');
header("Content-type: text/plain;");
echo json_encode($output);
exit();

View File

@ -0,0 +1,150 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>User Guide &middot; TinyMCE 4 Image Manager</title>
<link href="bootstrap/css/bootstrap.css" rel="stylesheet" media="screen">
<script src="bootstrap/js/jquery.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<style type="text/css">
body {
padding-top: 20px;
padding-bottom: 40px;
}
/* Custom container */
.container-narrow {
margin: 0 auto;
max-width: 700px;
}
.container-narrow > hr {
margin: 30px 0;
}
/* Main marketing message and sign up button */
.jumbotron {
margin: 60px 0;
text-align: center;
}
.jumbotron h1 {
font-size: 72px;
line-height: 1;
}
.jumbotron .btn {
font-size: 21px;
padding: 14px 24px;
}
/* Supporting marketing content */
.marketing {
margin: 60px 0;
}
.marketing p + h4 {
margin-top: 28px;
}
</style>
</head>
<body>
<div class="container-narrow">
<div class="masthead">
<ul class="nav nav-pills pull-right">
<li><a href="mailto:robertnduati.karanja@gmail.com">robertnduati.karanja@gmail.com</a></li>
</ul>
<h3 class="muted">TinyMCE 4 Image Manager</h3>
</div>
<hr>
<h2>About</h2>
<p>This is a TinyMCE plugin that replaces the default one that comes with the editor and makes that editor more useful in CSMs by adding features to it. It makes it easier to added images when using the popular wysiwyg editor. This plugin only works with the updated and stylish TinyMCE 4 versions.</p>
<p><span class="label">tinymce</span>&nbsp;<span class="label">plugin</span>&nbsp;<span class="label">wysiwyg</span>&nbsp;<span class="label">html editor</span>&nbsp;<span class="label">Images</span>&nbsp;<span class="label">Manage Images</span>&nbsp;<span class="label">CMS</span></p>
<br/>
<h2>Features:</h2>
<ul>
<li><b>Image Preview</b>: When adding an image from a link, the plugin will retrieve the image and show a preview so that you are sure of the image that you are adding.</li>
<li><b>Permission</b>: The plugin has a configuration file <code>config.php</code> that you can use to determine who can upload images or view the defined library of images. User with no permissions can only insert images from links.</li>
<li><b>Multiple Uploads</b>: You will be able to upload multiple images at once by selecting them or draging and dropping.</li>
<li><b>Ajax Upload</b>: The upload feature uses ajax and so no page refreshing when uploading.</li>
<li><b>Recent List of Files</b>: When you insert images from an url or upload the or get them from the library, the plugin in saves them in a session and you can be able to view them the next time you open the dialog for the plugin.</li>
<li><b>Define an Image Library</b>: During installation you will be able to define a path to an image library. This will be a folder with images that you can access from the plugin and also the folder to which files are uploaded to.</li>
<li><b>Traverse the Library Subfolder</b>: If the library folder has nested subfolders the plugin will be able to handle them.</li>
<li><b>Search the Library</b>: This plugin has a search feature for the library that allows you to search it and the subfolders for an image using the image's name.</li>
<li><b>Bootstrap CSS and HTML</b>: If you wish to change any of the styling and are familiar with the Twitter Bootstrap framework, you will have no difficulty.</li>
<li><b>Image Alignment</b>: When inserting images, you will be able to define the alignment relative to the text around it. The plugin in uses float rather than the align(deprecated in HTML5)</li>
<li><b>Wrap Images in a Link</b>: You can easily choose to wrap an image in a link when adding it.</li>
<li><b>Image Dimensions</b>: When you add an image it is possible to define the dimension that it will be added with. You can easily keep the image's aspec ratio.</li>
<li><b>Quick Install</b>: Just modify the configuration file(if you want) and then upload to the tinymce plugins' folder. That is it.</li>
<li><b>Source Code</b>: Nothing is hidden.</li>
</ul>
<hr>
<h2>Installation</h2>
<ol>
<li>Unzip the file</li>
<li>Open the file <code>config.php</code> and define the library path and url and also the permissions. There are comments in the php file to help you with this.</li>
<li>Upload the files to the tinymce plugins' folder replacing the default image plugin</li>
</ol>
<hr>
<h2>Usage</h2>
<p>When using the editor, click on the <i class="icon-picture"></i> icon to activate the dialog for this plugin.</p>
<h4>1. Insert from Url</h4>
<p>When you click on the icon to select this plugin you will be presented with a form like the one below.</p>
<p><img src="userguide_files/img1.jpg"></p>
<ul>
<li><b>URL</b>: this is the url to the img that you want to add. Please use a full url that includes the protocol.</li>
<li><b>Title</b>: this is the text that will be displayed when the image is hovered.</li>
<li><b>Description</b>: this is the alternative text that will be displayed if the image can not be loaded.</li>
<li><b>Width and Height</b>: these are the dimensions that the image will be added with. When you provide a URL these fields are automatically populated. You can change them.</li>
<li><b>Force original aspect ratio</b>: when this is check and you change either the width or height, the other dimension will be calculated based in the original aspect ratio of the image.</li>
<li><b>Alignment</b>: this is the url to the image that you want to add. Please use a full url that includes the protocol.</li>
<li><b>Wrap image in a link</b>: check this if you want to link the image to something.</li>
<li><b>Link URL</b>: this is the url to link the image too.</li>
<li><b>Target</b>: if the image is wrapped in a link, this determines if the link will be opened in a new window or not when clicked</li>
<li><b>Preview</b>: when you input an image url in the first field, the image will be loaded here for preview.</li>
</ul>
<br/>
<h4>2. Get from Library</h4>
<p>When you click on the tab titled "Get from Library" you will be presented with the following.</p>
<p><img src="userguide_files/img2.jpg"></p>
<ul>
<li><b>Folders</b>: when you click on a folder thumbnail, the content of the folder will be displayed.</li>
<li><b>Images</b>: when you click on an image you will be taken to the page for inserting it..</li>
<li><b>Back</b>: there is a "Back" button at the top left. When you are in a folder use this to go back up one level at a time.</li>
<li><b>Search</b>: you can search for images using the input at the top right. Just type the term you want to search using.</li>
<li><b>Refresh</b>: when you click the <i class="icon-refresh"></i> icon, the contents of the current folder are refreshed.</li>
</ul>
<br/>
<h4>3. Upload Now</h4>
<p>When you click on the tab titled "Upload Now" you will be presented with the following.</p>
<p><img src="userguide_files/img3.jpg"></p>
<ul>
<li><b>Uploading</b>: click on the button or drag and drop the files in the area with a dotted boarder</li>
<li><b>Errors</b>: errors appear in red under the upload are and the reason is in square brackets.</li>
<li><b>Success</b>: when an image is uploaded successfully, its thumbnail is displayed under the upload area. You will then need to click on the image and you will be taken to the form for inserting the image.</li>
</ul>
<br/>
<h4>4. Recent</h4>
<p>These are images that you have uploaded or inserted from URL during the current session.</p>
<p>When you click on the tab titled "Recent" you will be presented with the following.</p>
<p><img src="userguide_files/img4.jpg"></p>
<hr>
<div class="footer">
<p>&copy; robertnduati 2013</p>
</div>
</div> <!-- /container -->
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -1,34 +1,17 @@
<?php <?php
namespace start; namespace start;
$start_site = microtime(true); $start_site = microtime(true);
function compress($buffer) {
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
return $buffer;
}
header('Content-type: text/html'); header('Content-type: text/html');
header("Cache-Control: public"); header("Cache-Control: public");
header("Expires: " . date("r", time() + 86400)); header("Expires: " . date("r", time() + 86400));
ob_start("compress");
ini_set('display_errors', 0 ); ini_set('display_errors', 0 );
require_once 'redirect.php'; require_once 'redirect.php';
require_once('api/php/db.php'); require_once('api/php/db.php');
require_once('api/php/json.php'); require_once('api/php/json.php');
require_once('api/php/core.php'); require_once('api/php/core.php');
require_once('api/php/clean.php'); require_once('api/php/clean.php');
require 'set/' . $_SERVER['SERVER_NAME'] . '.php'; require 'set/' . $_SERVER['SERVER_NAME'] . '.php';
#if (file_exists('set/install/install_' . $db['type'] . '.php'))require_once 'set/install/install_' . $db['type'] . '.php'; //if (file_exists('set/install/install_' . $db['type'] . '.php'))require_once 'set/install/install_' . $db['type'] . '.php';
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
09.12.2022 09.12.2022
Выбираем модуль по умолчанию Выбираем модуль по умолчанию
@ -57,16 +40,10 @@ if ( !@$_SESSION['user_id'] ) \core::loginCookies();
17.12.2022 17.12.2022
Берем данные корзины Берем данные корзины
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
$cart=\core::getCart(); $cart=\core::getCart();
$smarty -> assign( 'cart', $cart ); $smarty -> assign( 'cart', $cart );
/*
function compress($buffer) {
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
return $buffer;
}
ob_start('compress');
*/
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
09.12.2022 09.12.2022
Выбираем шаблон модуля Выбираем шаблон модуля
@ -79,7 +56,28 @@ else
$user_id = ( $_SESSION['user_id'] ? $_SESSION['user_id'] : session_id() ); $user_id = ( $_SESSION['user_id'] ? $_SESSION['user_id'] : session_id() );
$time_site = round( microtime(true) - $start_site, 5 ); $time_site = round( microtime(true) - $start_site, 5 );
\DB::add( "INSERT INTO `site_speed` ( `t`, `mod`, `mod_id`, `speed`, `user_id` ) VALUES ( ?, ?, ?, ?, ? )", array( time(), MOD, $_GET['id'], $time_site, $user_id ) ); \DB::add( "INSERT INTO `site_speed` ( `t`, `mod`, `mod_id`, `speed`, `user_id` ) VALUES ( ?, ?, ?, ?, ? )", array( time(), MOD, $_GET['id'], $time_site, $user_id ) );
/*if ($_SERVER['SERVER_NAME']=='tk-ligat.ru'){
ob_end_flush(); \DB::$type='mysql';
//ob_end_flush(); \DB::$dsn='mysql:dbname=tk-ligat;host=127.0.0.1';
\DB::$user='admin';
\DB::$pass='32143214';
\DB::set("CREATE TABLE `tovar` (
`id` int NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(400) NULL,
`txt` longtext NULL,
`keywords` longtext NULL,
`artikul` varchar(10) NULL,
`description` longtext NULL,
`tovar_id_1c` varchar(50) NULL,
`tovar_cat_1c` varchar(50) NULL,
`status` int(1) NULL,
`category` int(10) NULL,
`countImg` int(10) NULL,
`partner` varchar(400) NULL,
`json` longtext NULL,
`brand_id` int(10) NULL,
`check_img` int(1) NULL,
`code` varchar(10) NULL
) ENGINE='InnoDB' COLLATE 'utf8_general_ci';");
}*/
?> ?>

View File

@ -1,6 +1,41 @@
<?php <?php
/*
mysql -u admin -p tk-ligat < adminer.sql
*/
\DB::set("CREATE TABLE IF NOT EXISTS `tovar` (
`id` int(10)NULL,
`title` varchar(300) NULL,
`txt` longtext NULL,
`keywords` longtext NULL,
`artikul` varchar(50) NULL,
`description` longtext NULL,
`tovar_id_1c` varchar(100) NULL,
`tovar_cat_1c` varchar(100) NULL,
`status` int(1)NULL,
`category` int(10)NULL,
`countImg` int(2)NULL,
`partner` varchar(100) NULL,
`json` longtext NULL,
`brand_id` int(10)NULL,
`check_img` int(1)NULL,
`code` varchar(30) NULL);");
\DB::set("CREATE TABLE IF NOT EXISTS `tovar_img` (
`id` int(10)NULL,
`filename` varchar(30) NULL,
`tovar_id` int(10)NULL,
`md5` varchar(30) NULL,
`title` varchar(300) NULL,
`alt` varchar(300) NULL);");
/*
\DB::set("CREATE TABLE IF NOT EXISTS `blog_category` ( \DB::set("CREATE TABLE IF NOT EXISTS `blog_category` (
`id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, `id` int(10) NOT NULL AUTO_INCREMENT PRIMARY KEY,
`title` varchar(250) NULL, `title` varchar(250) NULL,
@ -52,4 +87,6 @@
`user_id` int(10) NULL, `user_id` int(10) NULL,
`reyt` int(10) NULL DEFAULT '0', `reyt` int(10) NULL DEFAULT '0',
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE='InnoDB' COLLATE 'utf8_general_ci';"); ) ENGINE='InnoDB' COLLATE 'utf8_general_ci';");
*/

View File

@ -299,6 +299,8 @@
\DB::alterTable("ALTER TABLE `tovar_category` ADD `keywords` TEXT"); \DB::alterTable("ALTER TABLE `tovar_category` ADD `keywords` TEXT");
\DB::alterTable("ALTER TABLE `tovar_category` ADD `description` TEXT"); \DB::alterTable("ALTER TABLE `tovar_category` ADD `description` TEXT");
\DB::alterTable("ALTER TABLE `site_speed` ADD `user_id` TEXT"); \DB::alterTable("ALTER TABLE `site_speed` ADD `user_id` TEXT");
\DB::alterTable("ALTER TABLE `pages` ADD `d` TEXT");
// \DB::alterTable("ALTER TABLE `tovar_brand` ADD `description` TEXT"); // \DB::alterTable("ALTER TABLE `tovar_brand` ADD `description` TEXT");

View File

@ -2,9 +2,9 @@
/* /*
Настройки подключения к БД Настройки подключения к БД
*/ */
$db['type']='sqlite3'; $db['type']='mysql';
$db['host']='127.0.0.1'; $db['host']='127.0.0.1';
$db['db']='p007'; $db['db']='tk-ligat';
$db['user']='admin'; $db['user']='admin';
$db['password']='32143214'; $db['password']='32143214';
$db['path']=''; $db['path']='';

View File

@ -27,78 +27,20 @@
<div class="row"> <div class="row">
<div class="col-12 d-flex justify-content-between align-items-center"> <div class="col-12 d-flex justify-content-between align-items-center">
<!-- Start Logo --> <!-- Start Logo -->
<div class="header__logo">
<a href="/" class="header__logo-link img-responsive" style="font-size: 16pt;color:#000;">Торговая компания Лигат</a>
</div>
<!-- End Logo --> <!-- End Logo -->
<!-- Start Header Menu --> <!-- Start Header Menu -->
<div class="header-menu"> <div class="header-menu">
<nav>
<ul class="header__nav">
<!--Start Single Nav link-->
{* п1 *}
<li class="header__nav-item pos-relative">
<a href="/" class="header__nav-link">Главная</a>
</li>
{* п2 *}
<li class="header__nav-item pos-relative">
<a href="/tovar_cat/0-1.html" class="header__nav-link">Каталог</a>
</li>
<!-- End Single Nav link-->
<!--Start Single Nav link-->
<li class="header__nav-item pos-relative">
<a href="#" class="header__nav-link">Контакты <i class="fal fa-chevron-down"></i></a>
<!-- Megamenu Menu-->
<ul class="mega-menu pos-absolute">
<li class="mega-menu__box">
<!--Single Megamenu Item Menu-->
<div class="mega-menu__item-box">
<span class="mega-menu__title">Women Is Clothes & Fashion</span>
<ul class="mega-menu__item">
<li>
<p>Shop Women Is Clothing And Accessories And Get Inspired By The Latest Fashion Trends.</p>
</li>
</ul>
</div>
<!--Single Megamenu Item Menu-->
</li>
<!--Megamenu Item Banner-->
<li class="mega-menu__banner m-t-30">
<a href="product-single-default.html" class="mega-menu__banner-link">
<img src="assets/img/banner/menu-banner-2.png" alt="" class="mega-menu__banner-img mega-menu__banner-img--horaizontal">
</a>
</li>
<!--Megamenu Item Banner-->
</ul>
<!-- Megamenu Menu-->
</li>
<!-- Start Single Nav link-->
</ul>
</nav>
</div> </div>
<!-- End Header Menu --> <!-- End Header Menu -->
<!-- Start Wishlist-AddCart --> <!-- Start Wishlist-AddCart -->
<ul class="header__user-action-icon">
<!-- Start Header Wishlist Box -->
<li>
<a href="/lk/">
<i class="icon-users"></i>
</a>
</li>
<!-- End Header Wishlist Box -->
<!-- Start Header Add Cart Box -->
<li>
<a href="/cart/" class="offcanvas-toggle" id="cart_icon">
<i class="icon-shopping-cart"></i>
<span class="wishlist-item-count pos-absolute">3</span>
</a>
</li>
<!-- End Header Add Cart Box -->
</ul>
</div> </div>
</div> </div>
</div> </div>
@ -108,7 +50,44 @@
<!-- Start Header bottom area --> <!-- Start Header bottom area -->
<div class="header__bottom p-tb-30" style="background-color: #fff;"> <div class="header__bottom p-tb-30" style="background-color: #fff;">
<div class="container"> <div class="container">
<div class="row justify-content-between align-items-center mb-3">
<div class="header__logo col-xl-3 col-lg-3">
<a href="/" class="header__logo-link img-responsive" style="font-size: 14pt;color:#000;">Торговая компания Лигат</a>
</div>
<div class="col-xl-4 col-lg-5">
<form class="header-search" action="/new_find/" method="post">
<div class="header-search__content pos-relative">
<input type="search" name="txt" value="{$smarty.post.txt}" placeholder="Поиск" required style="border: 1px solid black; border-radius: 10px;">
<button class="pos-absolute" type="submit"><i class="icon-search"></i></button>
</div>
</form>
</div>
<div class="col-xl-3 col-lg-3">
<div class="header-phone text-right"><span>+7 (3435) 40-55-50<br>+7 (3435) 40-55-05</span></div>
</div>
<div class="col-xl-2 col-lg-2">
<ul class="header__user-action-icon">
<li>
<a href="/lk/">
<i class="icon-users"></i>
</a>
</li>
<li>
<a href="/cart/" class="offcanvas-toggle" id="cart_icon">
<i class="icon-shopping-cart"></i>
<span class="wishlist-item-count pos-absolute">3</span>
</a>
</li>
</ul>
</div>
</div>
<div class="row justify-content-between align-items-center"> <div class="row justify-content-between align-items-center">
<div class="col-xl-3 col-lg-3"> <div class="col-xl-3 col-lg-3">
<div class="header-menu-vertical pos-relative"> <div class="header-menu-vertical pos-relative">
<h4 class="menu-title link--icon-left"><i class="far fa-align-left"></i>Ассортимент</h4> <h4 class="menu-title link--icon-left"><i class="far fa-align-left"></i>Ассортимент</h4>
@ -123,18 +102,45 @@
</ul> </ul>
</div> </div>
</div> </div>
<div class="col-xl-7 col-lg-6">
<form class="header-search" action="/new_find/" method="post">
<div class="header-search__content pos-relative"> <div class="col-xl-9 col-lg-9">
<input type="search" name="txt" value="{$smarty.post.txt}" placeholder="Поиск" required>
<button class="pos-absolute" type="submit"><i class="icon-search"></i></button> <nav style="margin: 0px; padding: 0px;">
</div> <ul class="header__nav" style="background-color: #2D9CEE; border-radius: 20px; padding-left: 20px; padding-bottom: 3px; padding-top: 3px;">
</form>
</div> {* п1 *}
<div class="col-xl-2 col-lg-3"> <li class="header__nav-item pos-relative" style="border-right: 1px solif #fff;">
<div class="header-phone text-right"><span>Тел: +7 3435 *** ***</span></div> <a href="/" class="header__nav-link" style="color:#fff;line-height:42px;">Главная</a>
</li>
{* п1 *}
<li class="header__nav-item pos-relative" style="border-right: 1px solif #fff;">
<a href="/" class="header__nav-link" style="color:#fff;line-height:42px;">О копании</a>
</li>
{* п1 *}
<li class="header__nav-item pos-relative" style="border-right: 1px solif #fff;">
<a href="/" class="header__nav-link" style="color:#fff;line-height:42px;">Доставка</a>
</li>
<li class="header__nav-item pos-relative" style="border-right: 1px solif #fff;">
<a href="/" class="header__nav-link" style="color:#fff;line-height:42px;">Скачать прайс-лист</a>
</li>
{* п2 *}
<li class="header__nav-item pos-relative">
<a href="/tovar_cat/0-1.html" class="header__nav-link" style="color:#fff;line-height:42px;">Каталог</a>
</li>
</ul>
</nav>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- End Header bottom area --> <!-- End Header bottom area -->

View File

@ -0,0 +1,50 @@
<!-- :::::: Start Hero Section :::::: -->
{include file=$header h1="Доступ запрещен" title="Доступ к странице запрещен"}
<!-- :::::: Start Breadcrumb Section :::::: -->
<div class="page-breadcrumb" style="background-image: url(/img/{$smarty.server.SERVER_NAME}/tovar_cat/{$catImg}.jpg); background-position: -40%; background-size: 100%; margin-bottom: 0px;">
<div class="container">
<div class="row">
<div class="col-12">
<!--ul class="page-breadcrumb__menu">
<li class="page-breadcrumb__nav"><a href="/">Главная</a></li>
<li class="page-breadcrumb__nav active">{$page_info[0].title}</li>
</ul -->
</div>
</div>
</div>
</div>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Главная</a></li>
{section name=customer loop=$Breadcrumb}{if ($Breadcrumb[customer].id && $Breadcrumb[customer].id!=$smarty.get.id)}
<li class="breadcrumb-item"><a href="/tovar_cat/{$Breadcrumb[customer].id}-1.html">{$Breadcrumb[customer].title}</a></li>
{/if}{/section}
<li class="breadcrumb-item active" aria-current="page">Доступ к странице запрещен</li>
</ol>
</nav>
<!-- :::::: End Breadcrumb Section :::::: -->
<!-- :::::: Start Main Container Wrapper :::::: -->
<main id="main-container" class="main-container">
<div class="container">
<div class="row">
<h1>Доступ к запрашиваемой странице запрещен!</h1>
<img src="/img/tk-ligat.ru/pages/user/1/24857433-privacy-concept-pixelated-words-access-denied-on-digital-background-3d-render.jpg" style="width: 100%; margin-bottom: 30px;">
</div>
</div>
</main>
<!-- :::::: End MainContainer Wrapper :::::: -->
{include file=$footer}

View File

@ -0,0 +1,55 @@
<!-- :::::: Start Hero Section :::::: -->
{include file=$header h1=$page[0].title title=$page[0].title keywords=$page[0].keywords description=$page[0].description}
<!-- :::::: Start Breadcrumb Section :::::: -->
<div class="page-breadcrumb" style="background-image: url(/img/{$smarty.server.SERVER_NAME}/tovar_cat/{$catImg}.jpg); background-position: -40%; background-size: 100%; margin-bottom: 0px;">
<div class="container">
<div class="row">
<div class="col-12">
<!--ul class="page-breadcrumb__menu">
<li class="page-breadcrumb__nav"><a href="/">Главная</a></li>
<li class="page-breadcrumb__nav active">{$page_info[0].title}</li>
</ul -->
</div>
</div>
</div>
</div>
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="/">Главная</a></li>
{section name=customer loop=$Breadcrumb}{if ($Breadcrumb[customer].id && $Breadcrumb[customer].id!=$smarty.get.id)}
<li class="breadcrumb-item"><a href="/tovar_cat/{$Breadcrumb[customer].id}-1.html">{$Breadcrumb[customer].title}</a></li>
{/if}{/section}
<li class="breadcrumb-item active" aria-current="page">{$page[0].title}</li>
</ol>
</nav>
<!-- :::::: End Breadcrumb Section :::::: -->
<!-- :::::: Start Main Container Wrapper :::::: -->
<main id="main-container" class="main-container">
<div class="container">
<div class="row">
<!-- Start Rightside - Content -->
<!--div class="img-responsive">
<img src="assets/img/banner/size-wide/banner-shop-1-img-1-wide.jpg" alt="">
</div -->
<!-- :::::: Start Sort Box Section :::::: -->
<h1 class="text-center">{$page[0].title}</h1>
<div>{$page[0].txt}</div>
</div>
</div>
</main>
<!-- :::::: End MainContainer Wrapper :::::: -->
{include file=$footer}

View File

@ -46,7 +46,7 @@
<h3>Категории</h3> <h3>Категории</h3>
<div class="row"> <div class="row">
{section name=customer loop=$list}{if $list[customer].id} {section name=customer loop=$list}{if $list[customer].id}
<div class="col-xxl-3 col-xl-3 col-lg-2 col-md-2 col-sm-6 col-12"> <div class="col-xxl-3 col-xl-3 col-lg-2 col-md-3 col-sm-3 col-12">
<!-- Start Single Default Product --> <!-- Start Single Default Product -->
<div class="product__box product__default--single text-center"> <div class="product__box product__default--single text-center">
<!-- Start Product Image --> <!-- Start Product Image -->
@ -79,7 +79,7 @@
<h3>Продукция</h3> <h3>Продукция</h3>
<div class="row"> <div class="row">
{section name=customer loop=$list2}{if $list2[customer].img} {section name=customer loop=$list2}{if $list2[customer].img}
<div class="col-xxl-3 col-xl-3 col-lg-2 col-md-2 col-sm-6 col-12"> <div class="col-xxl-3 col-xl-3 col-lg-3 col-md-3 col-sm-6 col-12">
<!-- Start Single Default Product --> <!-- Start Single Default Product -->
<div class="product__box product__default--single text-center"> <div class="product__box product__default--single text-center">

View File

@ -283,4 +283,35 @@
<!-- :::::: End MainContainer Wrapper :::::: --> <!-- :::::: End MainContainer Wrapper :::::: -->
{*
<div itemscope itemtype="https://schema.org/Product">
<img itemprop="image" src="dell-30in-lcd.jpg" alt="A Dell UltraSharp monitor"/>
<span itemprop="name">Dell UltraSharp 30" LCD Monitor</span>
<div itemprop="aggregateRating"
itemscope itemtype="https://schema.org/AggregateRating">
<span itemprop="ratingValue">87</span>
out of <span itemprop="bestRating">100</span>
based on <span itemprop="ratingCount">24</span> user ratings
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/AggregateOffer">
<span itemprop="lowPrice">$1250</span>
to <span itemprop="highPrice">$1495</span>
from <span itemprop="offerCount">8</span> sellers
Sellers:
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<a itemprop="url" href="save-a-lot-monitors.com/dell-30.html">
Save A Lot Monitors - $1250</a>
</div>
<div itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<a itemprop="url" href="jondoe-gadgets.com/dell-30.html">
Jon Doe's Gadgets - $1350</a>
</div>
</div>
...
</div>
*}
{include file=$footer} {include file=$footer}