Записки динозавра

от
до
Ris
Не знаю, как нормальных людей, но меня всё время мучает вопрос, зачем для размещения небольшого сайта на виртуальном сервере я вынужден устанавливать серьёзную операционную систему типа centos, ubuntu или debian? Почему я должен тратить вполне реальные деньги на аренду мощностей, которые не используются даже на 10% ? Неужели для функционирования вебсервера, интерпретатора php и сервера базы данных необходима операционка, занимающая места в сотни раз больше, чем сами файлы сайта и его база вместе взятые? Этот вопрос не давал мне покоя, пока IamB не прислал ссылку на Alpine linux. При анализе возможностей Альпайна выяснилось, что это не только платформа под докер, но и вполне самостоятельный дистрибутив, у которого есть вполне серьезный функционал, вполне серьезный набор пакетов, который поддерживается вполне многлюдным сообществом разработчиков. Немного изучив имеющиеся возможности Альпайна и поэкспериментировав на кошечках на виртуалбоксе, смог изобразить себе вполне работоспособный сервер размером в 533 мегабайта, большую часть которого занимает mariadb. Без неё весь сервер весит 202 Мб.
+23
3.62K
Ris
По многочисленным просьбам изготовил новый инструмент для изменения администратором сайта рейтинга и кармы пользователей. Также можно изменять рейтинг контента и фотографий. Иногда такие действия требуются с целью поощрения пользователей и повышения социальности сайта. Инструмент выполнен в виде компонента, который содержит три хука, три измененных шаблона редактирования и настройки в админке, где всё это можно отключать и включать. Ни один системный файл не менялся. Удалить компонент можно в админке и затем удалить папку /system/controllers/addrating.
+23
1.86K
Ris
InstantCMS 2.X
Представляю уважаемому сообществу небольшое дополнение для доработки авторизации вашего сайта, а также для интеграции двух сайтов на Instantcms друг с другом. Дополнение выполнено в виде отдельного компонента "Расширенная авторизация" с системным именем authplus. Дополнение состоит из двух хуков и набора опций в админке для управления работой этих хуков. Принцип работы дополнения примерно следующий:
+21
2.67K
Ris
Вашему вниманию предлагается утилита для очистки папки upload от неиспользуемых изображений. Написана @fazer на языке PERL. Все благодарности и плюсы в карму сюда: @fazer Так как @fazer не имеет пока достаточно кармы для своего блога, выкладываю эту разработку по его просьбе в своем блоге. Благодаря использованию перла, поиск в базе теперь не приводит к падению сервера mysql на больших таблицах. Утилита представляет из себя файл написанный на перле, который срабатывает по заданию планировщика или вручную из админки. В настройках компонента можно настроить расширения, которые будут удаляться, поля в базе, в которых будут искаться ссылки на картинки, папки в которых будет производиться поиск ненужных файлов и папки, которые не участвуют в поиске. Лишние файлы переносятся в папку /upload/deleted, которую можно очистить потом. Также при работе скрипта создается лог удаляемых файлов cleaner_files.txt в папке upload.
+21
3.2K
Ris
InstantCMS 2.X
Давно хотел предложить на гитхабе немного расширить возможности сортировки и фильтрации в датасетах. То есть дать продвинутым администраторам сайта самим создавать нужные фильтры и сортировки для датасетов, путем прописывания mysql в настройках набора в админке, а не выбирать из предложенных вариантов. Но потом подумал, что разработчики не станут вводить это в коробку, так как этот функционал придется поддерживать и каким-то образом разъяснять пользователям, как им пользоваться. А кому это нужно, учить людей извращениям. Но, после этой темы на форуме, я увидел, что такой функционал может быть востребован у людей, разбирающихся в mysql. Поэтому решил сделать маленькое дополнение, состоящее из двух хуков, которое позволяет прямо из админки прописывать сложносочиненные фильтры и сортировки датасетов. Первый хук изменяет форму настройки датасетов в админке. Второй добавляет эти нестандартные фильтры и сортировки в модель при получении списка типа контента в наборе. Ни один системный файл не подвергался правке.
+32
1.8K
Ris
Пост неактуален. Весь функционал уже есть в версии 2.12.2 Небольшой хук, срабатывающий по хрону раз в день. Время и частоту срабатывания можно настроить. Пользователям приходят уведомления такого вида: Спойлер На почту приходят такие письма: Спойлер Быстро проверить работоспособность компонента можно так: Спойлер Компонент доработан. Работает теперь на версиях начиная с 2.9.0 Скачать компонент уведомлений
+23
2.23K
Ris
Сто раз на форуме поднималась тема про сведение событий на сайте и комментариев в один виджет. Многие (и я в том числе) пытались заносить в ленту активности новые события при добавлении комментария, но этот метод имеет несколько недостатков: "распухание" таблицы cms_activity и появление в ленте активности битых ссылок при удалении комментариев. Проблему можно решить с помощью виджета "Активность и комментарии", который будет доступен во вкладке Все виджеты - Активность.
+27
2.5K
Ris
Обратите внимание, что настройка кнопок редактора в версии 2.12.2 уже есть в коробке.Очередная доработка нашего редактора. Добавлено несколько кнопок и настройка кнопок тулбара для каждой группы пользователей. После установки выбрать в настройках типов контента нужный тип контента, выбрать нужное поле (напимер текст новости) и установить для этого поля редактор iredactor. После этого обязательно в настройках в компоненте "имперави редактор" настроить опции и доступ к кнопкам для групп пользователей.
+32
3.05K
Ris
С удивлением обнаружил, что не все знают, как сохранять бэкапы базы данных. Это требует знаний команд bash и умения работать в консоли сервера. Для облегчения и автоматизации данного процесса сделал утилиту, которая делает бэкапы базы по расписанию планировщика. Она представляет из себя один хук \system\controllers\backup\hooks\cron_backup.php, который стартует по хрону или вручную из планировщика в админке. Он создает папку, название которой должен придумать админ, создает бэкап базы данных и пакует его в gz. После этого удаляются архивы старше заданного времени. Перед запуском задания "Бэкап базы" нужно зайти в компоненты, выбрать компонент "Бэкап базы данных", задать там имя папки с архивами, срок хранения архивов и нажать "Сохранить".
+23
3.28K
Ris
InstantCMS 2.X
В продолжение темы про удаление пустых папок, сделал утилиту для глобальной очистки папки upload. Запускается из админки. 1. Сканирует в полях всех таблиц базы (имена нужных полей можно добавлять через запятую в опциях) все ссылки на файлы изображений и записывает результат в файл /upload/links.json. 2. Сканирует файлы в папке upload и записывает результаты в файл /upload/files.json 3. Преобразует оба файла в массивы, сравнивает второй с первым и заносит результат в файл /upload/compare.json 4. Снова сканирует папку upload и файлы, совпадающие именами с содержимым /upload/compare.json, переносит с сохранением подпапок и путей в папку /deleted/upload/ 5. Бонусом (если поставить галку) удаляет пустые папки и в upload и в deleted. 6. Пакует папку deleted в zip и вывешивает ссылку на скачивание.
+40
5.58K
Ris
InstantCMS 2.X
Сделал задание планировщика, которое запускает хук \system\controllers\files\hooks\cron_clear_upload.php, который сканирует папку upload и удаляет пустые папки. Установка обычным способом. После установки появляется задача хрона, которая будет срабатывать в 4 часа и под покровом ночи удалять пустые каталоги. Если вам не терпится посмотреть утилиту в работе - перейдите в Панель урправления - Настройки - Планировщик и стартаните вручную задание "Удаление пустых папок в Upload". Имена удаленных папок будут выведены на экран.
+35
4.21K
Ris
Для быстрой, удобной и безопасной в экспериментах, работы с сайтами да используйте люди Open Server Panel ! Это поистине удобнейший инструмент специально создан для вебмастеров и иже с ними. Почитать про все возможности и ништяки можно прямо на главной странице официального сайта: https://ospanel.io/ В чем смысл: Open Server Panel создает на вашем локальном компьютере вебсервер, на котором можно размещать и тестировать вебсайты. Файлы размещенных на опенсервере сайтов доступны для поиска и правки прямо в проводнике и любом виндовом файлменеджере (totalcomander, far, doublecomander и т.д.).
+32
8.99K
Ris
Хочу поделиться своим опытом по организации простого виртуального сервера на линуксе на локальном компьютере. Зачем это нужно? Для тестирования своих проектов на совершенно бесплатном своем вебсервере на линуксе, который к тому же можно в течении минимального времени вернуть к любому нужному состоянию и продолжить эксперименты. Вы скажете, а как же Опенпанель, Денвер, Ксампп, Вингинкс и т.д? Всё это, безусловно, очень удобно и хорошо. Создателям этих инструментов надо поставить памятник! Но иногда требуется протестировать работу сайтов и приложений на реальном линукс-сервере. Со всеми установками веб-панели, работой в консоли по SSH, с правами на папки, установленными расширениями и прочими нюансами. Можно, конечно, за 150 рублей в месяц найти вполне нормальный VDS, но это опять зависимость от воли хостера и доброжелательности техподдержки. Можно и вообще ничего не тестировать, не экспериментировать, а задавать вопросы на форуме в надежде, что подскажут товарищи, у которых есть площадка для экспериментов. Но это какой-то растительный метод существования. А человек должен мыслить и развиваться! Инструкция рассчитана на самых неискушенных в линуксе людей, как и я сам.
+32
6.46K
Ris
InstantCMS 1.X
В первой ветке всегда не хватало уведомлений об ответах на комментарий, записях на стене и других действиях на сайте. Недавно @Dina поднимала эту тему на форуме: http://instantcms.ru/forum/thread28110-1.html Для нее был написан плагин, который по просьбе заказчика выкладываю для всеобщего пользования. Функционал плагина простой. Пользователю приходят в личку уведомления о:
+22
4.13K
Ris
InstantCMS 2.X
Когда-то по заказу Sam Hain делал поле для загрузки и проигрывания аудиофайлов стандартным аудиоплеером html прямо в окне просмотра записи. Так как заказчик не против, чтобы я поделился этой разработкой, выкладываю здесь. Смысл следующий: в нужном типе контента создается новое поле с системным именем audio, и при добавлении или редактировании контента, если загрузить аудиофайл, запись о его названии приводится хуком к виду типа: --- id: 4 url_key: 64fea947 name: '<audio controls="controls"><source src="/upload/000/u1/b0/a4/music.mp3"></audio>' size: 12085334 path: 000/u1/b0/a4/music.mp3
+35
6.19K
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.