Файловый менеджер — всё в одном файле

Denixxx

Мой дом здесь!
Регистрация
7 Фев 2014
Сообщения
244
Реакции
216
Привет, народ.
В состав ReloadCMS входит простой и функциональный файловый менеджер.
После нескольких лет разработки в нём есть почти всё, что может понадобиться для прямого редактирования файлов на сервере.
Я подумал — а почему бы не портировать его отдельно, тем более можно сделать его всего в 1 файл?

Встречайте — файловый менеджер «всё в одном файле», версия пока unstable 0.01.

Что может:
1. Создавать, переименовывать и удалять файлы и папки, причём папки — рекурсивно.
2. Ходить внутри файловой системы, просто кликая на названии папок — как мы все привыкли.
3. Менять права.
4. Редактировать файлы (при клике на файл — переходим к редактированию).
5. Скачивать файлы из любой папки.

Как нетрудно догадаться, данным продуктом удобно пользоваться как шеллом.

На что ещё следует обратить внимание? В начало файла я вынес локализацию — перевод англ/рус
Если кому-то захочется добавить переводы на украинский, испанский и пр., велком.
Не получится с Гитхабом — отпишитесь в теме.


В оригинальной версии, встроенной в ЦМС, можно ещё:
1. Просматривать картинки.
В данной версии эта возможность отключена, т.к. пришлось бы подгружать сторонние библиотеки, скрипты и картинки для работы увеличителя картинок
2. При редактировании файла работает подсветка.
В отдельном файловом менеджере подсветка отключена, чтобы, опять же, не грузить сторонние скрипты.

Скриншот:
244ae97a-7437-11e4-9fd1-26e01ae22741.png

Ссылка на проект:
Скрытое содержимое доступно для зарегистрированных пользователей!

Кому интересно — велком, подключайтесь.

Ссылка на релиз:
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Последнее редактирование:
уточню тогда момент - по ISO 639 - $language=='uk'
p.s. попробую на гитхаб
 
уточню тогда момент - по ISO 639 - $language=='uk'
p.s. попробую на гитхаб
Простите, не я один путаю. Обозначение домена страны другое, чем языка.
Надеюсь, поняли правильно.
Вот ещё и потому кстати носителю языка лучше делать переводы, чем через гугл.

Смержил.
 
Последнее редактирование:
Я честно говоря и сам это путаю иногда - просто по привычке :) и именно из за домена.
 
@Minor, договоримся об именовании релизов.
Версия выходит — сейчас 0.5, потом 0.6 и далее.
Версии публикую в релизах
Скрытое содержимое доступно для зарегистрированных пользователей!

Если к версии найдено/исправлено что-то по мелочи — в ридми добавляем rev01, rev02 и т.п. и дату правим на свежую.
Чтобы был порядок и сразу видно, что текущая ветка отличается от последнего релиза.
PS/ Вашу поправку смержил.
 
Последнее редактирование:
Filemanager очень понравился мне! Особенно актуально для тех у кого панель vestaCP, я в добавок добавил дополнительную защиту подключив к странице PHP Easy Lock 1.0.
 
Последнее редактирование модератором:
Filemanager очень понравился мне! Особенно актуально для тех у кого панель vestaCP, я в добавок добавил дополнительную защиту подключив к странице PHP Easy Lock 1.0.
Удалил ссылку на проект, не ставьте больше. Мы тут не рекламой занимаемся.
Напоминаю о Для просмотра ссылки Войди или Зарегистрируйся форума, что Вы нарушили.
1. Нельзя открывать ссылки из-под хайда ниже, чем у автора
2. Не надо писать «мне понравился», для этого есть кнопка.
Хоть Вы и новичок, не начинайте общение с нарушений.
Программами, Вами упоминаемыми, не пользовался.
Менеджер предназначен для более обширного круга задач и может быть интегрирован в любой проект на PHP.

PS/ Скоро будет новая версия, с украинским (спасибо @Minor) и немецким языками.
 
Последнее редактирование:
Новое обновление файлового менеджера, версия 0.6

Краткое описание обновления:
— Добавлены настройки, хранимые в куках;
— Добавлены немецкий и украинский (спасибо @Minor) языки;
— Немного подправлены стили.
fm_settings.png
На самом деле настроек немного больше, картинка была сделана «до того, как».
Ссылка на релиз:
Скрытое содержимое доступно для зарегистрированных пользователей!

Прошу подключиться знатоков языков, требуются переводы на испанский и китайский.
 
Последнее редактирование:
Объединить с Для просмотра ссылки Войди или Зарегистрируйся добавть пару фич и классная шелка получится.
Пока лениво, придется хранить настройки БД. Но в будущем возможно, почему нет.
У меня есть свои наработки в движке для вызова sql, там ещё хранятся «частые запросы».
Это настолько удобно — иметь под рукой консоль вызова sql с шаблонами, что я прям не представляю, как без неё админить.
Сама консоль с открытым списком шаблонов:
z_sql_console_1.png
Вставка шаблона в форму при выборе из списка:

z_sql_console_2.png
Да, это очень удобно. Но как хранить шаблоны? В куках можно только Для просмотра ссылки Войди или Зарегистрируйся.
Это мало, если учесть, что хотелось бы и шаблоны для PHP тоже хранить...
Мало того, если вдруг повезет и мы засунем туда скажем 50к, то это добро будет передаваться в заголовках с каждым запросом! Не айс.
Хранилище браузера? Хм...
Предлагайте варианты и реализации.

//UPD
To @stealthdebuger
Посмотрел phpminiadmin
Не буду я такое интегрировать.
Не нравится код: 90% надо будет переписывать.
Потому что:
1. Функции без префиксов могут встретиться в проекте, куда соберешься интегрировать.
2. Не нравится такой поток сознания:
PHP:
 if ($_REQUEST['rmb']){
    $tm=time()+60*60*24*30;
    newcookie("conn[db]",  $v['db'],$tm);
    newcookie("conn[user]",$v['user'],$tm);
    newcookie("conn[pwd]", $v['pwd'],$tm);
    newcookie("conn[host]",$v['host'],$tm);
    newcookie("conn[port]",$v['port'],$tm);
    newcookie("conn[chset]",$v['chset'],$tm);
}else{
    newcookie("conn[db]",  FALSE,-1);
    newcookie("conn[user]",FALSE,-1);
    newcookie("conn[pwd]", FALSE,-1);
    newcookie("conn[host]",FALSE,-1);
    newcookie("conn[port]",FALSE,-1);
    newcookie("conn[chset]",FALSE,-1);
}
}

// Allow httponly cookies, or the password is stored plain text in a cookie
function newcookie($n,$v,$e){$x;return setcookie($n,$v,$e,$x,$x,!!$x,!$x);}
Зачем изобретать функцию для установки кук?
Сэкономил пару строк, потерял в понятности.
И пять раз одинаковый вызов — так я не хранил бы, проще сериализовать массив и загнать в куки, хранить в одной куке, а не в пяти.
Ещё один плюс в том, что при сериализации массива участки установки и удаления кук не пришлось бы переписывать при добавлении любого параметра.
3. И ещё названия функций, такие как ex_w(), ex_hdr(), переменные — $ex_super, $ex_issrv. Экономия хорошо, но кроме автора трудно понять, что это.
4. Используется куча глобальных переменных— как шелл возможно, но интегрировать никуда нельзя, ибо будет пересечение имён.
Пример:
PHP:
global $dbh,$last_sth,$last_sql,$reccount,$out_message,$SQLq,$SHOW_T;
В другом месте:
PHP:
global $dbh,$DB,$sqldr,$reccount,$is_sht,$xurl,$is_sm;

Короче, писать будем, но своё, попроще и надо бы с шаблонами, но пока не знаю как их хранить. Собственно, саму SQL консоль вообще не проблема написать, даже думаю в следующем релизе сделаю. Но до написания SQL консоли желательно придумать яваскрипт-сортировку колонок таблиц, чтобы быстро видеть свежие файлы, например, или самые «жирные». И без jQuery, ибо жирно.

Также видимо не помещала бы разработка групповых операций над файлами/папками, например удалить/положить в архив. Но это не представляется срочным.
 
Последнее редактирование:
jquery на CDN же можно взять
 
Назад
Сверху