Скрытие аттачей
После некоторых размышлений, сделал следующее.
Инструкция по добавлению возможности скрывать аттачи в модификацию "Скрытый текст v3".
http://deja-vu.su/priv_attach.txt
После того, как один-два человека опробуют, это дополнение будет включено в основную инструкцию.
Как скрыть аттач?
При написании сообщения загружаем файл обычным способом. На панели аттачей видим выпадающий список "Управление текущими файлами". Нажимаем на него, затем нажимаем на имя только что загруженного файла. В текст сообщения будет вставлена особая ссылка, которая указывает, в каком месте прикреплённый файл будет отображаться в сообщении.
Вот эту ссылку и нужно заключить в теги приватного текста. Тогда она будет скрыта.
Пример:
[priv="reg"][attachment=10:sign_lock.JPG][/priv]
Можно ли получить доступ к скрытому таким образом аттачу через перебор его id в act=attach&type=post&id=X?
Нет. К каждому аттачу приписываются такие же условия отображения, как и для приватного текста, внутри которого он был помещён. Если пользователь соответсвует указанным условиям, то он увидит аттач. Если не соответсвует - увидит стандартную ошибку.
Можно ли вручную прописать ссылку на чужой аттач в своём посте и получить таким образом доступ хотя бы к его "превью" (в случае с картинкой) или имени файла (в случае с обычным аттачем)?
Нельзя. Перед сохранением пост проверяется на наличие ссылок на чужие скрытые аттачи. Если таковые будут найдены - они будут насильно убраны.
Можно ли процитировать пост со скрытым аттачем и увидеть его "превью"?
Нет.
Как обстоят дела со "скрепкой"?
Из неё убрано отображение всех аттачей, которые были скрыты. Независимо от того, можете ли конкретно вы их увидеть, или нет.
+++++
Рискну предположить, что это наилучшее возможное решение проблемы аттачей.
+++++
Технические моменты.
1. Для каждого скрытого аттача сохраняется копия условий, на основании которых он был скрыт. При прямом обращении к аттачу условия проверяются.
2. Все аттачи, которые были скрыты, не попадают в $final_blocks, соответсвенно их "превью" не выводятся в конце поста, если нет конкретной метки.
3. В механизме парсинга аттачей есть хитрая особенность, которая позволяет показать "превью" аттача ДАЖЕ в чужом посте, если оригинал находится в другом сообщении на той же странице. Потому все ссылки на скрытые аттачи, владельцем которых является НЕ автор поста, насильно убираются.
20 комментариев
Рекомендуемые комментарии