Есть вопрос. Помогите.

Модератор: mike

Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Android test
Скрытый текст:
venice.jpg
Браузер Chrome
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
alvaar
Expert
Expert
Сообщения: 1684
Зарегистрирован: 06 мар 2006 21:04

Есть вопрос. Помогите.

Сообщение alvaar »

Написал сообщение, где хотел скрыть под спойлер фотографии, добавленные как вложение. Написал, посмотрел, при выполненном входе на форум всё было нормально, вид сообщения был такой, какой я и планировал :
Сообщение_со_входом.jpg
Сейчас увидел сообщение без входа на форум. То что хотел скрыть, видно внизу сообщения:
Сообщение_без_входа.jpg
Так и должно быть?
Homo homini lupus est.
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

alvaar писал(а):Так и должно быть?
В теории нет
Надо будет посмотреть, спасибо за подсказку.

А чего мы хотим добиться, чтоб в спойлере оставался или чтоб не показывался нерегистреным?
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
alvaar
Expert
Expert
Сообщения: 1684
Зарегистрирован: 06 мар 2006 21:04

Есть вопрос. Помогите.

Сообщение alvaar »

Хорошо было бы, если вложения-картинки были бы либо не видны внизу сообщения, ни при выполненном входе в форум, ни при просмотре без входа, либо чтобы они были видны всегда в виде значков, а для просмотра их нужен будет вход в форум. В крайнем случае, пусть они будут видны всегда, тогда хоть можно будет знать, чего ожидать.
Homo homini lupus est.
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

alvaar писал(а):Хорошо было бы, если вложения-картинки были бы либо не видны внизу сообщения
вроде поправил. (тремя постами выше мой пост с такой конструкцией)
Только сообщения надо отредактировать - убрать спойлер - сохранить и потом снова его убрать под спойлер. А то в посте старый код так и будет
Кстати криво работал только "простой" спойлер, а с заголовком почему-то вел себя прилично.
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Строго говоря, смысла особого прятать картинки под спойлер нет т.к. картинка все равно грузится, просто прячется пока не ткнешь в спойлер. Чтоб она грузилась только после нажатия на спойлер потребует прикрутить в форум какой-нибудь фреймворк еще килобайт эдак на 100.
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):прикрутить в форум какой-нибудь фреймворк еще килобайт эдак на 100.
Там фреймворка не надо никакого - лишь в теги img нужно атрибут не src писать, а data-src, значение которого при первой визуализации писать в src
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):значение которого при первой визуализации писать в src
ну jquery то все равно надо?


ps: ну и в движке система описания bbcode довольно ограничена, чтоб туда парсеры втыкать :)
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):jquery то все равно надо?
Не нужен. От JS требуется лишь повесить событие на открытие слайдера, прочитать значение одного атрибута, изменить значение другого атрибута. jquery для этого использовать не целесообразно

getElementsByTagName
addEventListener|attachEvent
setAttribute
getAttribute

Все, больше не надо ничего
mike писал(а):чтоб туда парсеры втыкать :)
Триггер на слайдер есть какой-то, вот там одной регуляркой и поменять src на data-src у тегов img перед отображением
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Ну не все так просто. там же при публикации картинки формируется обычный img src т.е. и при окучивании его спойлером надо достать из src содержимое и сформировать другой код картинки. А при убирании спойлера все наоборот. :)
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):достать из src содержимое и сформировать другой код картинки. А при убирании спойлера все наоборот. :)
Зачем же так сложно? Триггер нужно повесить в самом конце, после формирования html-кода, и там уже без сохранения просто написать что-то типа:

Код: Выделить всё

$html = preg_replace('/<img(.*?)src="([^"]+)"/m', '<img$1data-src="$2"', $html);
И при открытии спойлера писать в цикле по всем img с пустым или отсутствущим src="" внутри него типа

Код: Выделить всё

element.src = element.dataset.src;
Обратное действие не требуется, т.к. после первого преобразования изображение уже было сохранено в кэше браузера и смысл такой манипуляции с атрибутами пропадает
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):Триггер нужно повесить в самом конце, после формирования html-кода
триггер должен как-то сообразить, что его потом bb-спойлером окучат. :)
Там эти процедуры разнесены по разным обработчикам. Просто формирование html и затем обработка bb-кодов...
Tarsius писал(а):Обратное действие не требуется
не-не - имеелось в виду не захлопывание спойлера, а удаление его при редактировании поста.. Но если прикрутить постобработку, то тогда да, не надо будет.
Ну в общем я покручу эту идею с data-src как время будет, но пока весь концепт выглядит очень проблематично...
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):Но если прикрутить постобработку, то тогда да, не надо будет.
Но вот триггер с самым-самым высоким приоритетом, который вызывается уже непосредственно перед выводом сформированного html-кода
mike писал(а):пока весь концепт выглядит очень проблематично...
Он уже 100 раз должен быть обсужден на тематических форумах, но не в контексте спойлеров, а в загрузке изображений по мере прокрутки страницы к ним - технически тоже самое

Кстати, там же рядом будут темы автопрокрутки страниц (одностраничные темы), если развернуть сортировку по дате наоборот - было бы удобнее, это типа ленты фейсбуко-контакто-твиттеров :-)
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):Но вот триггер с самым-самым высоким приоритетом, который вызывается уже непосредственно перед выводом сформированного html-кода
Все картинки в посте? А если они не в спойлере, а просто воткнуты кодом [ img ]?
Или после формирования уже готовой к выдаче html-ки прям вот все картинки в странице заменить? :)

Есть решения для phpbb, но сделаны они не такими простыми средствами.
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):Или после формирования уже готовой к выдаче html-ки прям вот все картинки в странице заменить? :)
Вот в этом месте, когда весь html готов к отправке клиенту, вот лишь тогда найти все спойлеры - и поменять внутри них все теги img. Для этого достаточно одной регулярки на поиск положений подстрок (начало/конец спойлера), затем внутри них замена (как выше написал), и затем замена подстрок исходя из найденных позиций на новые и отправка этого всего клиенту
mike писал(а):но сделаны они не такими простыми средствами.
Готовые решения пишутся под все случаи жизни, типа пьяного деда мороза в полнолуние на крыше дома с замерзшими пальцами, который захочет вниз головой воспользоваться форумом... Исходя из этого их использовать по возможности не стоит :-D
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

не-не, извини такие странные хаки через ммм... одно место я не буду применять :)
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):не-не, извини такие странные хаки через ммм... одно место я не буду применять :)
Ну это не совсем хак, а лишь пост-обработка, особенно если есть в системе соответствующие триггеры специально для таких случаев :-)
Аватара пользователя
Андрей221
Флудеролог со стажем
Сообщения: 42897
Зарегистрирован: 17 июн 2009 13:58
Откуда: Подольск, Литейная

Есть вопрос. Помогите.

Сообщение Андрей221 »

ребят, вы о чем? :fear: :? :D
Наблюдаю за всем......

Решаем проблемы. Стараемся везде не волноваться...
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):Ну это не совсем хак, а лишь пост-обработка
в данном случае эта глобальная постобработка и есть хак в рамках концепции форумного движка. Там нет унивесального последнего триггера.
Есть методы которые обрабатывают отдельные функциональные фичи форума. Обработчик темплейтов-скинов -> перед ним обработчик bbкодов -> перед ним обработчик постов до их публикации в html...
Ты сейчас предлагаешь фактически написать парсер постов и воткнуть его в функцию натягивающую темплейты на выдачу. :)
И еще не забыть потом согласовать его с описателем bbкода спойлера, который вообще не в коде форума лежит, а редактируется в базе. :)
Ну кривота жеж блин какая-то получится... аццкий хак :)

Андрей221 писал(а):ребят, вы о чем?
забей мы меряемся... :)
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):Обработчик темплейтов-скинов -> перед ним обработчик bbкодов -> перед ним обработчик постов до их публикации в html...
А разве нет триггера конкретно на тег spoiler после его разворачивания? Форум-то модульный все-таки

Ну или
mike писал(а):с описателем bbкода спойлера
на свой заменить
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):А разве нет триггера конкретно на тег spoiler после его разворачивания?
нет конечно. Более того в выдаче и понятия spoiler нет :)
Вся хрень преобразуется в кучку div'ов, один из которых открывается инлайн подстановкой скрипта по onCliсk
Tarsius писал(а):на свой заменить
так он и есть свой :)
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):нет конечно
Что-то я был лучшего мнения о движке...
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):Что-то я был лучшего мнения о движке..
ему примерно сто лет уже :)
Тега спойлер в нем не было - это реализация его некоторого аналога через bbкод

да собственно вот такое там работает
берется вот это

Код: Выделить всё

[spoiler]{TEXT}[/spoiler]
и меняется на такую конструкцию

Код: Выделить всё

<div style="margin:5px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px"><b>Скрытый текст</b>: <input type="button" value="Показать" 
style="width:65px;font-size:10px;margin:0px;padding:0px;color:#333;background-color:#eee;border:1px solid #669;" 
onClick="if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = '';      
this.innerText = ''; this.value = 'Спрятать'; } 
else 
{ this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerText = ''; this.value = 'Показать'; }">
</div>
<div class="alt2" style="margin: 0px; padding: 0px; border: 0px;">
<div style="display: none;margin: 0px; padding: 3px 5px 3px 5px; border: 1px #cccccc solid;background-color:#f0f0f0;">
{TEXT}
</div>
</div>
</div>
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):

Код: Выделить всё

<div style="display: none;margin: 0px; padding: 3px 5px 3px 5px; border: 1px #cccccc solid;background-color:#f0f0f0;">
{TEXT}
</div>
В идеале вот как раз изменив {TEXT} на {NO_IMG_TEXT} с последующим анализом можно добиться нужного эффекта, но погуглил исходники - там печально так в код все шаблоны зашиты...
Последний раз редактировалось Tarsius 25 дек 2013 16:10, всего редактировалось 1 раз.
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):В идеале вот как раз модифицируя {TEXT}
ну так я это и имел в виду, что без фреймворков написать что-то компактное в инлайн код проблематично.
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Tarsius
Super expert
Super expert
Сообщения: 8854
Зарегистрирован: 29 дек 2008 22:54
Откуда: Тридевятое царство

Есть вопрос. Помогите.

Сообщение Tarsius »

mike писал(а):без фреймворков написать что-то компактное в инлайн код проблематично.

Код: Выделить всё

<input type="button" value="Показать" style="..." onclick="...">
Биндить на input типа button со значением "Показать", хотя код - жесть, конечно
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Tarsius писал(а):хотя код - жесть, конечно
чо? нормальный код. :)
Ну если подумать наверное можно упростить, но... да какая нафиг? работает и нормально. :)
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Karella
Pro Member
Pro Member
Сообщения: 804
Зарегистрирован: 15 мар 2010 14:25

Есть вопрос. Помогите.

Сообщение Karella »

Не могу вставить фото через "Вложения" в Объявлениях в Семья и дети. Почему?
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

Karella писал(а):Не могу вставить фото через "Вложения" в Объявлениях в Семья и дети. Почему?
скорее всего размер большой
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
Karella
Pro Member
Pro Member
Сообщения: 804
Зарегистрирован: 15 мар 2010 14:25

Есть вопрос. Помогите.

Сообщение Karella »

mike писал(а):
Karella писал(а):Не могу вставить фото через "Вложения" в Объявлениях в Семья и дети. Почему?
скорее всего размер большой
Я не могу вообще выбрать файл. Не открывается ничего. Размер 400*400, 15,9Кб.
То есть, нажимаю Выбрать файл и все, ничего не происходит.
P.S. Извините, ложная тревога. Ребенок что-то понажимал.
Аватара пользователя
shinapodolsk
Expert
Expert
Сообщения: 1703
Зарегистрирован: 28 авг 2008 15:17
Откуда: шиномонтаж-подольск.рф
Контактная информация:

Есть вопрос. Помогите.

Сообщение shinapodolsk »

mike
Тут такая проблема:
Пытаюсь добавить опрос в тему "покатушки на горелом", но не получается почему-то. Форум привязывает какие-то старые опросы,а если их удалить и сохранить, то получается, варианты ответов начинают размножаться
что я делаю не так?

Спасибо :)
шиномонтаж-подольск.рф
Аватара пользователя
mike
Администратор
Администратор
Сообщения: 10624
Зарегистрирован: 24 янв 2001 15:30

Есть вопрос. Помогите.

Сообщение mike »

shinapodolsk писал(а):что я делаю не так?
Думаю, что какой-то косяк видимо в базе был. Зачистил старые опросники.
Попробуйте теперь создать - заготовка есть, просто надо отредактировать.
Elvis Has Left the Building
(а если вы видите и эту надпись, вам не нужны очки)
Аватара пользователя
shinapodolsk
Expert
Expert
Сообщения: 1703
Зарегистрирован: 28 авг 2008 15:17
Откуда: шиномонтаж-подольск.рф
Контактная информация:

Есть вопрос. Помогите.

Сообщение shinapodolsk »

mike писал(а):
shinapodolsk писал(а):что я делаю не так?
Думаю, что какой-то косяк видимо в базе был. Зачистил старые опросники.
Попробуйте теперь создать - заготовка есть, просто надо отредактировать.
Спасибо :)
шиномонтаж-подольск.рф
Аватара пользователя
Линка
Легенда форума
Легенда форума
Сообщения: 13615
Зарегистрирован: 23 окт 2009 12:21
Откуда: Подольск

Есть вопрос. Помогите.

Сообщение Линка »

:help:
Что значит "для вашего ай пи вход невозможен"
Тая войти не может на форум!
Нет пошлых фраз — есть пошлые уши.
А с теми, кто не в теме нечего делить - наши тропы к разным полюсам..
Аватара пользователя
летучка
Модератор
Модератор
Сообщения: 42332
Зарегистрирован: 17 дек 2004 11:07

Есть вопрос. Помогите.

Сообщение летучка »

Линка
ай-пи ее офиса заблокирован из-за спама или еще чего-то нехорошего
Ответить

Вернуться в «Новости форума»