Чистильщик для двойки

3379
Установщик обновлён 13 августа в 19:00

""


Находит и удаляет изображения, которые не были использованы ни в одном типе контента и комментариях, а также, выявляет отсутствующие изображения.

Модульная архитектура позволяет быстро добавить новый функционал. Поддерживается ступенчатая работа.

Используйте только "Изображения контента 2", ибо он работает быстро у большинства пользователей. "Изображения контента" работает по другому принципу и его использование оправдано, если будет производится поиск малого количества изображений в очень большом количестве контента.

Важно добавить в файл index.php в папках /system/controllers/lcleaner/cleaners/content_images и content_images_2 названия установленных у вас сторонних полей:
Код PHP:
  1.  
  2. $ctypes = array('comments'=>array('content_html')); // здесь нестандартные таблицы и их поля
  3. foreach($content_model->getContentTypesNames() as $ctype_name){
  4. $fields = $content_model->selectOnly('i.name', 'name')->
  5. filterIn('type', array('images','image','html'))-> // здесь названия полей
  6.  
Возможно, в след версиях это можно будет делать в настройках.

Используйте с осторожностью, дабы не удалить изображения из нестандартных компонентов и полей!

Скриншот работы

""

Скачать

В планах

Код TXT:
  1. прогресс бар
  2. галерея найденных изображений в лайтбоксе
  3. выбор пользователя помимо группы
  4. сортировка таблиц
Парсер Avito "AviPars" для двойки | Обновление парсера Авито для icms2 - AviPars 3
Комментарии (45)
Evanescence 10 августа 2015 в 13:46 +4
small user social cms
Спасибо, полезная вещь!!!
Kreator 10 августа 2015 в 14:18 +2
small user social cms
Теперь постараюсь то написать:
- Неплохобы превьюшку увидеть при наведении на ссылку найденной картинки
- Вывод даты создания картинки и сортировку по дате

Чтоб не рубить с плеча можно еще фильтр по пользователю, или все кроме какого то пользователя. Папки же созданы по пользователям.
lokanaft 10 августа 2015 в 16:09 +6
small user social cms
Ну пока только по группам. Добавлю пользователей позже и дату. Об сортировке я уже думал.
Если выводить хинт, то будет слишком хлопотно наводить на каждую строку при большом кол-ве, ведь задача проверить именно каждую в итоге. Поэтому минигалерея будет немного удобнее.
Если он нашёл другие размеры превьюшки - значит их нет в базе, а это значит, что они никогда не смогут быть использованы. В базе хранятся пути до всех размеров, которые учтены, даже если не использованы.

Просто вся фишка в том, что изображений много лишь в первый раз, затем следить за ними будет проще и лишние функции будут ни к чему.
Kreator 10 августа 2015 в 16:40 0
small user social cms
Добавлю пользователей позже и дату
Ну тогда и размер картинки добавте в таблицу, чтоб лучше понимать откуда ноги растут
Kreator 10 августа 2015 в 16:24 +2
small user social cms
Не суть важно конечно, но тоже деталь: проверять не только по типам контента и профилю пользователя. Там тоже могут использоваться фото. (Хотя может у вас это сделано?)
lokanaft 10 августа 2015 в 17:52 +3
small user social cms
Про стену в профиле не подумал, сейчас добавлю.
lokanaft 10 августа 2015 в 18:39 +1
small user social cms
Архив обновил. Теперь учитываются стены и аватар. Также добавил столбики с размером картинки и датой последнего изменения.
Kreator 10 августа 2015 в 18:41 0
small user social cms
Тем кто ставил перезалить просто? или с в БД тоже изменения?
lokanaft 10 августа 2015 в 18:44 0
small user social cms
Просто поставить поверх или перезалить, не забыть про другие шаблоны, помимо дефолта.
Val 10 августа 2015 в 19:34 +4
small user social cms
lokanaft, СУПЕР! Тоже вынашивал в отдалённых планах подобное дополнение, а тут такой подарок!!! dance
Огромное вам спасибо!
Val 10 августа 2015 в 19:35 +1
small user social cms
жаль не могу поставить +1 в карму(((
lezginka.ru 11 августа 2015 в 12:21 0
small user social cms
+
Алексей Тимофеев 11 августа 2015 в 13:18 0
small user social cms
Отличная штука +Попробовал!
Александр 13 августа 2015 в 18:41 +2
no avatar
Если поставить бакграунд-картинку в профиле, то "чистильщик" тоже считает картинку за неиспользуемую
lokanaft 13 августа 2015 в 19:05 +3
small user social cms
Спасибо за находку!

Чтобы исправить, надо в указанных в посте файлах в строке:
Код PHP:
  1. $ctypes = array('comments'=>array('content_html'), 'wall_entries'=>array('content_html'), '{users}'=>array('avatar')); // нестандартные таблицы и их поля
Добавить так:
Код PHP:
  1. $ctypes = array('comments'=>array('content_html'), 'wall_entries'=>array('content_html'), '{users}'=>array('avatar','theme')); // нестандартные таблицы и их поля
Либо заново скачать архив установщика.
Xamle 16 августа 2015 в 14:12 +1
small user social cms
Не активная кнопка "Очистить" scratch что может быть не так
Спойлер
lokanaft 16 августа 2015 в 14:30 0
small user social cms
Значит ещё не завершился процесс анализа
Xamle 16 августа 2015 в 14:43 +1
small user social cms
и как долго он будет вести анализ ?! у меня уже минут 15 весит
lokanaft 16 августа 2015 в 15:42 0
small user social cms
Значит сервер прервал запрос, а скрипт всё ещё ждёт ответ.
Xamle 16 августа 2015 в 16:15 0
small user social cms
можно это как то исправить sad , сижу на виртуалке, выделенный пока не зачем
MegaRostov 16 августа 2015 в 14:55 0
small user social cms
Будьте осторожны в выборе удаления изображения! Я по не знанию много чего удалил НУЖНОГО! (Предупреждение!) Хороший компонент+++++. Мне пригодился!
Андрей 18 августа 2015 в 00:07 0
small user social cms
А я поставил, у меня он установился, зашёл в него, вижу две кнопки, АНАЛИЗ и ОЧИСТКА пожамкал их - реакции ноль, скажите ЧЯДНТ?
lokanaft 18 августа 2015 в 13:47 0
small user social cms
Значит у вас недефолтный шаблон и вы не залили в него файлы из установщика.
Андрей 18 августа 2015 в 14:30 -1
small user social cms
да у меня мой шаблон. Просто другие компоненты как бы устанавливаются, а почему ваш нет?
lokanaft 18 августа 2015 в 14:34 +1
small user social cms
Значит там как бы нет скриптов или они как бы подключаются всегда через. дефолт
Андрей 18 августа 2015 в 14:40 -1
small user social cms
ну как бы это минус пока - для меня. Проще когда установил компонент и он работает без лишних телодвижений scratch
lokanaft 18 августа 2015 в 14:44 0
small user social cms
Я мог бы вообще не двигаться и не делать его. Копировать шаблоны в папки своих шаблонов - это нормально, пока нет более совершенного установщика.
Андрей 18 августа 2015 в 17:05 0
small user social cms
я не говорил что компонент плохой или не нужен, мне как раз он очень понравился. v
Андрей 18 августа 2015 в 14:36 -1
small user social cms
например компоненты crystalchat, биллинг2, кнопка вверх вниз - они же не требуют доп действий.
lokanaft 18 августа 2015 в 14:42 +3
small user social cms
Ещё раз. Там подключается например так:
Код PHP:
  1. <?php $this->addCSS('templates/default/css/updownscroll.css'); ?>
  2. <?php $this->addJS('templates/default/js/updownscroll.js'); ?>
И какой бы ни был шаблон, скрипт всегда подключится из default, что неправильно.
Fenix 18 августа 2015 в 20:21 0
small user social cms
Можно по подробнее? - А какая разница, откуда подключится скрипт? главное, что подключиться. А если использовать несколько шаблонов? - дублировать js в каждый?
Fuze 18 августа 2015 в 21:30 +3
small user social cms
Большая разница откуда подключается скрипт js.
В вашем шаблоне вообще может не использоваться jquery (если используется другой js фреймворк например).
В вашем шаблоне разметка css может отличаться от той, которая в дефолтном шаблоне и css нужно будет немного адаптировать под ваш шаблон. И это нормальная практика, так и должно быть.
В чем проблема скопировать пару файлов согласно инструкции, я не понимаю. Наверное лишь бы написать что-нибудь не думая.
Fenix 18 августа 2015 в 21:45 0
small user social cms
В чем проблема скопировать пару файлов согласно инструкции
Да в общем ни каких :)
Просто была интересна суть подключения, так, как все прописывают пути по разнмоу
Код PHP:
  1. <?php $this->addJS('templates/default/js/updownscroll.js'); ?>
  2. или
  3. <?php $this->addJS('templates/{$this->name}/js/updownscroll.js'); ?>
Вот и хотел узнать какой вариант лучше - подключать из используемого шаблона или из дефолта.
Fuze 18 августа 2015 в 22:44 +1
small user social cms
Вот и хотел узнать какой вариант лучше - подключать из используемого шаблона или из дефолта.
лучше так, чтобы не править файлы
Код PHP:
  1. $this->addJS("templates/{$this->name}/js/updownscroll.js");
Александр 3 сентября 2015 в 20:06 0
no avatar
Создал в редактировании пользователя поле, фото. Пользователь загружает фото, оно используется. Но "Чистильщик" хочет его удалить
lokanaft 3 сентября 2015 в 20:44 0
small user social cms
Вы пост читали? Там же написано, куда и что добавлять, когда у вас есть нестандартные поля.
jorgovich 15 ноября 2015 в 18:31 0
small user social cms
Собираюсь почистить один боевой сайт, на версии 2.3.0 корректно работает?
lokanaft 15 ноября 2015 в 18:36 0
small user social cms
Вы прежде чем нажимать "Удалить" смотрите, что там за фотки то.
jorgovich 15 ноября 2015 в 18:41 0
small user social cms
Да я пока еще не ставил даже, посмотрю обязательно, только 12 гигов фоток сложно будет отсмотреть, попробую на следующих выходных, зарезервируюсь, потом поэксперементирую
Root77 1 марта 2016 в 04:47 0
small user social cms
Не всегда, неиспользуемые картинки - ненужны. Все таки лучше, если была бы превью картинки. По ссылке не понятно, что это за картинка такая.
В templates\ваш шаблон\controllers\lcleaner\js\cleaners\content_images_2.js и content_images.js, строку:

Код PHP:
  1.  
  2. $('#lcl_res_tbl_content_images tbody').append('<tr id="lcl_content_images_res_'+(++lcl.res_cnt)+'" class="lcl_st1"><td><input type="hidden" value="'+(lcl.res_cnt)+'" name="'+name+'[id]['+(lcl.res_cnt)+']" /><img style="width:50px;display: inline-block; position: relative;" src='+res[i].src+' />&nbsp;&nbsp;<a href="'+res[i].src+'" target="_blank">'+res[i].src+'</a></td><td>'+res[i].size+'</td><td><input name="'+name+'[src]['+(lcl.res_cnt)+']" value="'+res[i].src+'" type="checkbox" checked /></td></tr>');
  3.  
Дополнить этим:
Код PHP:
  1.  
  2. $('#lcl_res_tbl_content_images tbody').append('<tr id="lcl_content_images_res_'+(++lcl.res_cnt)+'" class="lcl_st1"><td><input type="hidden" value="'+(lcl.res_cnt)+'" name="'+name+'[id]['+(lcl.res_cnt)+']" />[b]<img style="width:50px;display: inline-block; position: relative;" src='+res[i].src+' />&nbsp;&nbsp;[/b]<a href="'+res[i].src+'" target="_blank">'+res[i].src+'</a></td><td>'+res[i].size+'</td><td><input name="'+name+'[src]['+(lcl.res_cnt)+']" value="'+res[i].src+'" type="checkbox" checked /></td></tr>');
  3.  
Root77 1 марта 2016 в 04:50 0
small user social cms
Код PHP:
  1.  
  2. <img style="width:50px;display: inline-block; position: relative;margin-right:20px;" src='+res[i].src+' />
  3.  
Pocus 4 июля 2017 в 20:30 0
small user social cms
Что-то не получается у меня добавить нестандартное поле (слайдер) в стандартном типе контента (con_news)
Поясните пожалуйста, этот компонент ищет неиспользуемые изображения только в тегах <img scr=.....>?
А как быть с такими записями в полях?
Код SQL:
  1. ---
  2. -
  3. normal: 000/u22/011/8f1749a9.jpg
  4. preview: 000/u22/011/b1153e1e.jpg
  5. -
  6. normal: 000/u22/011/2a824bc3.jpg
  7. preview: 000/u22/011/5afd6b61.jpg
Pocus 5 июля 2017 в 18:38 0
small user social cms
Что я делаю не так?
Добавляю поле "photoslider" (пример содержимого выше), но чистильщик упорно не видит эти записи и предлагает удалить изображения.
Код PHP:
  1.  
  2. $ctypes = array( // нестандартные таблицы и их поля
  3. 'comments'=>array('content_html'),
  4. 'wall_entries'=>array('content_html'),
  5. '{users}'=>array('avatar','theme'),
  6. 'con_news'=>array('photoslider')
  7. );
  8. foreach($content_model->getContentTypesNames() as $ctype_name){
  9. $fields = $content_model->selectOnly('i.name', 'name')->
  10. filterIn('type', array( // сюда надо добавить названия нестандартных полей в стандартных типах контента
  11. 'images',
  12. 'image',
  13. 'html',
  14. 'photoslider'
  15. ))->
  16.  
Евгений 18 февраля 2018 в 03:15 0
small user social cms
а будет обновление до версий инстанта 2.8.2 и 2.9.0
Pocus 18 февраля 2018 в 08:07 0
small user social cms
Так он работает на 2.8.2 и на 2.9 должен, в них структура БД и папок не изменилась.
А вот просто устранить недоработки не мешало бы. Что, впрочем, маловероятно.
Я пол-года назад спрашивал об этом lokanaft-а, ссылается на нехватку времени (читай, желания)
Упрекать автора нельзя, компонент-то бесплатный, хотите - пользуйтесь, хотите - нет.
Мне он реально помогал на начальном этапе, когда я засирал систему своими неумелыми экспериментами, а инстант еще не умел сам удалять файлы вместе с контентом.
Сейчас это не слишком актуально. Но Ris готовит нам какой-то сюрприз. Ждем-с.