[WT] [Архив]  [Поиск] Главная Управление
[Совместно с Ычаном]
[Назад] [Вся нить] [Последние 50 сообщений]
Ответ в нить
Имя
Animapcha image [@] [?]
Тема   ( ответ в 15850)
Сообщение flower
Файл 
Пароль  (для удаления файлов и сообщений)
Параметры   
  • Прежде чем постить, ознакомьтесь с правилами.
  • Поддерживаются файлы типов 7Z, BZ, BZ2, GIF, GZ, JPG, MO, MP3, OGG, PDF, PNG, PSD, RAR, SVG, SWF, TXT, XCF, ZIP размером до 10000 кБ.
  • Ныне 2536 unique user posts. Посмотреть каталог
  • Максимальное количество бампов нити: 500
Файл: 148897178963.png-(34.62KB, 355×585, 1383852009227.png)
15850
No. 15850 watch    
Данная нить сделана по согласованию с администрацией Ычана.

У администрации Ычана появилось желание добавить некоторые функции в стандартный пользовательский интерфейс, что требует доработки местного JS. Поскольку специалистов в этой сфере на примете нет, было решено обратиться к сообществу.
Какие функции нужны:
  • Скрытие тредов. Видимо, с использованием localstorage. Учитывайте возможность развернуть тред обратно.
  • Разворот картинки на странице по нажатию на уменьшенную копию. Большие картинки должны разворачиваться не в натуральную величину, а с учётом ширины и высоты окна. По повторному нажатию сворачиваться обратно. Учитывайте, что иногда вместо уменьшенной копии бывает заглушка спойлера, а в огороженном разделе /gf/ есть флэшь-файлы, которые этак разворачивать смысла нет.
Желательно, чтобы скрипты были достаточно легковесны, чтобы помещаться в wakaba.js. Минимальными должны быть и предлагаемые правки вёрстки самих страниц (радикально никто ничего перепиливать не будет).
Предпочтительная лицензия скриптов — общественное достояние (public domain), как у самой «Вакабы».

Пока всё. Администрация не рассматривает идеи подключения куклоскриптов или чего-то подобного тяжеловесного целиком, так как стремится сохранить минимализм интерфейса сайта. Также пока не рассматриваются предложения по неким другим функциям.
Развернуть все изображения
No. 15851    
А что, sarcastic cat таки забил на перепиливание движка?
No. 15853    
Файл: 148897385541.png-(233.06KB, 750×600, 1311882065415.png)
15853
>>15851
Если бы кто-то чем-то занимался, то этого треда бы не было.
No. 15854    
>Скрытие тредов
Скрытие тредов сделать будет проще всего. Собственно, это можно реализовать как на 410м, добавить плашку-плейсхолдер для скрытых тредов, и кнопочку скрытия. Для браузеров у которых нет локалстореджа можно сделать фоллбек на куки.

>Большие картинки должны разворачиваться не в натуральную величину, а с учётом ширины и высоты окна.
Тут придётся выбрать, по ширине или по высоте. Не скукоживать же макрос до высоты окна смартфона, например. Но в целом, если не будет стилевых конфликтов это ограничение возможно сделать css-средствами. Если, конечно, нет ограничений по версии CSS. И тут подходим к главному:

Вы не назвали целевые браузеры для отображения. Базово, насколько олдскульно всё нужно сделать? Потому что мне кажется, что текущий ычан можно вообще открывать на чем угодно и использовать без яваскрипта, например. Т.е. хотелось бы понять, к насколько старым версиям JS и CSS мы стремимся
No. 15855    
Файл: 148898009749.jpg-(20.18KB, 219×300, 7114643.jpg)
15855
>>15854
Куки не хотят, чтобы не раздувать оные куки всякой лабудой.
Браузеры актуальные, костыли для всякого старья не нужны. Просто с отключенными/неподдерживаемыми скриптами оно должно работать как работает сейчас.
В чём проблема скукоживать на смартфоне? Там всё равно будет удобнее в новой вкладке открыть.
No. 15856    
>>15855
>Просто с отключенными/неподдерживаемыми скриптами оно должно работать как работает сейчас.
Т.е. я правильно понимаю, что хочется вообще никаких изменений в вёрстку не вносить, и необходимые элементы интерфейса тоже добавлять скриптами?

>В чём проблема скукоживать на смартфоне?
Читать будет неудобно же. Это сейчас для смартфона всё классно, нажал - открылась картинка в новой вкладке. А с этим скриптом - уже нет, будет подгоняться прямо в текущем DOM под экран. Ну, если не делать специально чтобы на смарфтонах всё было по-старому.
No. 15857    
Файл: 148898100986.jpg-(515.01KB, 595×841, 9387484.jpg)
15857
>>15856
>Т.е. я правильно понимаю, что хочется вообще никаких изменений в вёрстку не вносить, и необходимые элементы интерфейса тоже добавлять скриптами?
Что-то уровня кнопок скрытия можно добавить. Главное, чтобы эти не мешали пользоваться сайтом тем, у кого это не работает. По-моему, это самоочевидно.
Если можно разворачивалку картинок на мелких экранах подавить, то лучше подавить.
No. 15858    
>>15857
Ок, I'll see what I can do.
Если что, запощу предлагаемое решение прямо сюда.
No. 15859    
Файл: 148898847756.png-(70.90KB, 469×346, hide.png)
15859
Полчаса в блокноте http://pastebin.com/qdDGcMjB
No. 15860    
>>15859
Ну и картинки http://pastebin.com/1M1TE13U
No. 15861    
Родное скрытие тредов? Вот это поворот.
No. 15862    
>>15861
Это будет не нативное скрытие, а лабуда какая-то. Нативное скрытие — это когда сервер отправляет тебе только нескрытые треды для отображения на нулевой, динамически формируя эту самую нулевую для каждой сессии. Здесь же предлагается решить всё на стороне браузера. Нет, для тех, кто не использует сторонние юзерскрипты, это будет лучше, чем ничего, конечно...
No. 15863    
>>15862
Для тех кто не использует? Лол. После выше описанной ситуации те кто не использует начнут использовать принудительно скрипты же. И единственный способ отключить их будет в отключении JS на корню. Особенно если все функции в один файл запихают.
No. 15864    
Файл: 148899757712.zip-(1.04MB, iithread_collapse_threads.zip)
15864
>>15850

Альтернативное решение, написанное более старо и с некоторыми проверками. В отличие от предыдущего автора требует впиливание в вёрстку.

В хедер нужно добавить сам скрипт:
<script type="text/javascript" src="rm_files/iithread.js"></script>

Потом нужно добавить перед каждым div с тредом плейсхолдер:
<div id="thread-placeholder-73380" style="display:none;">Тред <a href="http://iichan.hk/rm/res/73380.html">73380</a> скрыт. &nbsp; [<a href="#" onclick="javascript:iiexpandthread('rm', 73380); return false;">Раскрыть</a>]</a><br/></div>

В каждом треде нужно добавить кнопку скрытия после кнопки [Ответ]
 &nbsp; [<a href="#" onclick="javascript:iicollapsethread('rm', 73380); return false;">Скрыть</a>]

В конце страницы добавить вызов убирания ранее скрытых тредов (для повторных заходов и перезагрузок страницы):

<script type="text/javascript">iicollapseuserhiddenthreads('rm')</script>


Зипрелейтед - сохраненная страничка с уже вставленным всем, в качестве примера того как это работает.
No. 15865    
>>15864
Вместо 'rm' и 73380 подставляются имя доски и номер треда соответственно.
No. 15866    
>>15854
Через стили можно реализовать всё, кроме запоминания скрытия. У кого работать не будет, у того просто не будет работать. Но без запоминания теряется смысл. А вообще >>15862 господин прав, и в /d/ ычана всё это много раз обсуждалось. Всё что не на сервере = костыли, а в данном случае ещё и костыли принудительно вставленные. И так уже гуглозонд нам вставили. Выбора пользователю никто не даёт. Сейчас конечно модно всё за других людей решать. Но по человечески эгоистично всё это. Лучше дайте нормальный инструмент по подключению всех этих функций к браузеру для технически не подкованных людей. Хотя бы однокнопочный однострочный скрипт по подключению куклы. А то армейским способом кусабите. Ссылки на куклу во фрейме нет? Каталога браузерных расширений там же нет? Конструктора расширенного функционала нет? Нативной серверной поддержки нет? Зато будем принуждать всех парсить жабокостылями сраницы. Потому что новички тупые и им лень. Да любому нормальному человеку будет лень, если он не гик-линуксоид. Но это же не повод в самом деле!
No. 15867    
Файл: 14889979967.png-(703.94KB, 1151×642, 12345678.png)
15867
>>15862
>>15866
Напишите сначала нормальный движок с динамическими страницами, а потом будете продвигать ваши блестящие идеи.
No. 15868    
>>15867
Блестящая идея заключается в том чтобы дать людям выбор. А то меняете мыло на шило. Даже хуже. Раньше скриптов почти не было, но их можно было основательно погугля найти и подключить. Теперь всё будет включено как в метроотеле, опять же принудительно, а на выбор только отключить JS. Зачем обязательно впадать в крайности и устраивать из их выбора драму? Я не понимаю. Кому надо - тот подключит. Хотите помочь им? Положите на видное место и упростите процесс. Нет же, нужно тех кого всё устраивает упрекать в том что они не пилят новый движок, а тех кому нужен падающий снег и webm что не могут сидеть на голой вакабе. Всё через садо-мазо, чесслово.

Банально куклу прикрутите через .innerHTML = и повесьте бинарный переключатель на кнопку. Я не знаю что может быть проще ссылок во фрейме и кнопки делающей звездато.

Я бы может и раз запилить движок для АИБ и давно сам мечтаю. И опыт у меня есть, аж по написанию движка для полноценного форума... правда он накрылся недописанный вместе с хардом больше 10 ле назад. Но только меня всё устраивает и даже после отключения JS будет по большому счёту устраивать, а время незаметно всё куда то уходит, уходит и кажется что даже от части на пользу Ычану, а мир всё так же катится по маршруту автобуса. И логика в нём.
No. 15869    
>>15868
> Блестящая идея
Блестящая она конечно потому, что твоя.
No. 15870    
>>15867
Котоба жи!
No. 15871    
>>15869
Не понял сарказма. Мой был в том чтобы назвать "блестящей идеей" что то из очевидного и извечного. Если право выбора было твоей идеей, я не против, коперайти.
No. 15874    
Файл: 148901949186.png-(217.55KB, 523×639, .png)
15874
>>15867
https://github.com/ololoepepe/ololord
https://github.com/ololoepepe/ololord.js
https://github.com/rngnrs/tumbach
No. 15875    
>>15874
Страницы не динамические, алло. И не могут они быть динамическими при хоть сколько-то заметной посещаемости, разоришься на серверах каждый раз рендерить их.
No. 15876    
>>15875
Тогда го в твиттер, максимум динамики и кто-то умудряется в его убыточность до сих пор инвестировать.
No. 15877    
>>15876
Попробуй его без JavaScript открыть для начала. Там на стороне клиента делается ВСЕ, что только можно, и это правильно.
No. 15879    
>>15877
Всё, кроме собственно генерирования уникальной ленты для каждого юзера, его уведомлений, меншенов, а также листов. Потому он и лёг во время одного из оскаров, когда зрители пошли ретвитить один твит.
Алсо твитдек раньше позволял ленту любого неприватного аккаунта смотреть, но потом это убрали.
No. 15880    
>>15876
Ты конечно сравнил, молодец. Чего не с гуглом сразу?
No. 15881    
А Доброчан-онии-тян почему не отжат^H^H^H^H^H попросить? У неё же это всё есть.
No. 15882    
Файл: 148906062240.png-(3.92KB, 252×60, 2017-03-09_14-56-16.png)
15882
>>15850
Ага, знаем мы эти желания.
No. 15884    
>>15881
Во-первых, там очень тяжёлый движок, который потребует апгрейда всего что можно. Во-вторых (на самом деле во-первых), с чего бы его Рус кому-то давал?
No. 15887    
А что вообще должна делать серверная сторона имиджборда? Сететвую составляющую по разграничению прав доступа тоже можно выгрузить на аутсорс другому ресурсу. Остаются одни операции над базой данных? Не знаю как вам, а мне кажется что выдавать заранее сформированные закешированные шаблону куда быстрее чем каждый раз копаться в базе данных по запросам АПИ. Другое дело, если приходится пересобирать всю доску при каждой отправке очередного поста. Включая давно забамплимиченный тред куда он постится... кхм, извините увлёкся, похоже обсуждение ушло куда то не по теме.
No. 15891    
Это всё хорошо, но что с предложенными вариантами скрытия тредов? Запостили сюда два, они были рассмотрены?
No. 15892    
Файл: 148914130784.jpg-(390.26KB, 925×1133, 7117048.jpg)
15892
>>15891
Ждите, это ж Ычан.
No. 15893    
Вобщем, запилил я разворот картинки. Получилось очень неинвазивно, достаточно просто подключить скрипт и вызвать инициализацию в конце страницы, всё. Спойлерон работает, /gf/ отсекается по критерию "ссылка заканчивается на .swf", допустимая ширина картинки берется из эффективной ширины поста. Остается один вопрос - как детектить мобилочки? Страшно, по юзер-агенту, или по-простецки, всё что меньше 800х600 записывать в мобилочки?
No. 15894    
>>15893
>Остается один вопрос - как детектить мобилочки? Страшно, по юзер-агенту, или по-простецки, всё что меньше 800х600 записывать в мобилочки?
Может по соотношению сторон окна или по dpi экрана.
>по юзер-агенту
Он же для этой цели создавался.
No. 15897    
Предлагаю какому-нибудь ОПу создать на автобусе филиал этих
http://iichan.hk/b/res/3953348.html
http://iichan.hk/b/res/3762663.html
http://iichan.hk/b/arch/res/2452321.html
тредов. А так же (не)оффициальный храм куклоскрипта.
No. 15898    
Файл: 148926891621.zip-(1.97MB, iithumb_expand_thumbs.zip)
15898
>>15850
>>15857
Сделал вам разворачивалку с учетом мобилочек решил таки по юзер-агенту их определять В архиве примеры с досками /a/ (включая спойлерон) и /gf/. Это самая простая реализация, если она будет принята в целом, я могу подзаморочиться и улучшить визуальную отзывчивость сейчас для пользователя ничего не происходит пока картинка не загрузится, потому что принудительно не изменяется размер элемента img. В примерах из архива большие картинки грузятся прямо с ычана.

Подключается просто. В хедер нужно добавить сам скрипт:
<script type="text/javascript" src="a_files/iithumb.js"></script>

В конце страницы добавить вызов для инициализации:
<script type="text/javascript">iithumbinit()</script>

No. 15899    
> в конец страницы добавить
Ну что за колхоз? В сам скрипт вставляешь:
window.addEventListener('load', function () { your init function });

No. 15900    
>>15899
Скрипты по-хорошему добавляюься не в head, а как раз перед </body>, так они не замедляют время рендеринга страницы.
No. 15901    
>>15900
Но у нас тут не кружок разработки веб-приложений, а вполне конкретное ТЗ. Скрипты будут добавляться в wakaba.js, ибо надо, чтобы работало и в архивных нитях. А там своих функций хватает. Приведенный выше метод позволяет вообще вставлять копипастом, не трогая другие места скрипта.
No. 15902    
Короче вот:
https://github.com/WagonOfDoubt/iichan-extensions
No. 15903    
>>15899
>>load
Ага, и жди когда загрузятся все картинки. Отказ же.
Там надо было бы по хорошему тогда мультибраузерный ready запилить, но опять таки, допилить что-то если ычановцы попросят не тяжело.
No. 15904    
Алсо
>Кроля
>разбирается в JS на уровне "детектить колхоз"
Зачем вообще создавать этот тред тогда, если разработчик у вас уже есть?
No. 15905    
>>15903
Ну тогда
DOMContentLoaded
используй.

>>15904
Никто ничего не спрашивает, а я им через libastral что-то должен делать?
No. 15908    
>>15899
Ты лучше посмотри как тут на автобусе адаптивная капча и слежение за тредами реализовано. Какие эвенты? Всё прямо во время парсинга DOM-дерева запускается (inline script'ы).
No. 15909    
Файл: 148944315683.jpg-(131.63KB, 801×900, 8401643.jpg)
15909
>>15908
Почему его должен волновать местный код?
No. 15910    
Мысли насчёт разворачивалок: при наведении на картинку в углу поверх неё показывать кнопку для раз/сворачивания, а клик по самой картинке как обычно в новой вкладке, чем мобилки и будут пользоваться. И выбор тогда в наличии (в идеале конечно меню настроек, как на форчане).

Кнопку не в левом верхнем углу, а например правом, и отключать ссылку на развёрнутой картинке, для чего достаточно превратить её в
javascript:void('изначальный_адрес');
, чтобы легко потом вернуть обратно. Это к тому, что у меня иногда левый клик на мышке 2 или 3 раза при нажатии в одну точку срабатывает, inb4 купи новую. Нынешний интерфейс вполне устраивает, wakaba.js отключен, костыли сам себе пишу.

Как вариант, в порядке бреда, кнопка разворачивания при наведении — размером ровно с тумбнейл.
No. 15911    
Наверное, самое спартанское решение.
http://codepen.io/anon/pen/vxJLOz

Разворачивалка картинок, перетаскивание не поддерживается
Скрытие тредов, хранение в localstorage

Деплой:
65 строк js
20 css
В отдаваемой верстке нужно добавить элемент .thread-hider. В примере выше это простой span с текстом [X], можно сделать любым - button, image, anything-more-with-background-image...

Поддержка IE: 9+
No. 15912    
>>15911
Негодяй-codepen минифицировал js

Вот сырой http://pastebin.com/jQ96wZec

Размер 2.2К
No. 15913    
>>15912
А, ну и отключение разворачивалки на мобилках по user-agent.

В целом все это больше на css работает, чем на js - скрытие, максимальный размер картинки, етц. Js только классы переключает и события вешает.
Для широкоформатных мониторов тестировать удобнее так http://codepen.io/anon/pen/vxJLOz/left/
No. 15914    
Файл: 148950246986.png-(104.40KB, 1382×685, Безымянный.png)
15914
Возможно, также придется по вкусу css-стакование скрытых тредов
http://codepen.io/anon/pen/ryzjGa/left/
No. 15922    
Ну вот, получился конкурс какой-то. Лушче б взяли что-то одно за основу и допилили.
No. 15924    
>>15922
Сдается мне, никто ничего впиливать в ычан не будет.
В этом треде только 2 типа: одни против каких-либо изменений и вообще скрипты зло нужно сидеть через диал-ап, пользоваться нетскейп навигатором и гуглить в альтависте #вернитемнедевяностовосьмой; и второй - те, кто запилили свои костыли за 5 минут (а больше и не надо) и ждут, что Соус Мод-тян обрадуется и запилит их скрипт на ычан за те же 5 минут.
Ну и есть наверно третий тип, малочисленный, они сидят на ычане и не знают разницы между window.onload и addEventListener, про куклоскрипт не слышали и им и так хорошо, они ждут продолжения "лета".
No. 15925    
Файл: 14896116352.jpg-(52.80KB, 233×500, 1262613729552.jpg)
15925
>>15924
Если бы никто ничего не собирался впиливать, этого треда бы не было.
Чего кого-то теперь нетерплячка бьёт, я не знаю. Это Ычан, дела быстро не делаются, к сожалению. До лета впилят, я думаю, но точнее сроков никто не назовёт.
No. 15937    
Файл: 148977599697.png-(115.39KB, 497×270, slow.png)
15937
Э… там рак на горе свистнул? С чего вдруг такие предложения?
No. 15938    
Повторю ещё раз - js нужен только для сохранения результатов действий пользователя. В куках или локальном хранилище, не важно. Всё остальное умеют стили. В том числе скрывать и раскрывать по наведению\клику и прочий интерактив. Причём вешать можно уже на имеющиеся классы.
No. 15940    
>>15938
>умеют стили. В том числе скрывать и раскрывать по наведению\клику и прочий интерактив
По наведению, понятно, :hover, а вот про то, что стили умеют что-то скрывать по клику, слышу впервые. Нет, в теории, можно впиливать невидимый checkbox перед тредом, а тред обернуть в label, и повесить стиль на :checked+блок_треда, но это настолько костыль, что нет, спасибо.
Так что js должен отвечать за сохранение И за скрытие. За одменистрацией только остался выбор стратегии скрытия, выше есть варианты - js просто добавляет класс, и стиль скрывает тред, или более продвинутые, где происходит модификация содержимого, чтобы, например, выводить текст поста, если тема не заполнена. Если так радеете за аскетичность, первый вариант вполне подходит.
No. 15941    
>>15940
>а тред обернуть в label
Спать пора. Кнопку скрытия обернуть в label. Но тут потребуется автогенерация id в чекбоксе и прописывание for в label'e, чтоб они связывались. А это уже не простое впиливание в верстку, а полноценный кодинг на серверной стороне. Оно вам надо?
No. 15942    
Мое решение для вас. Убейте вакабу, она давно этого просит.
No. 15943    
>>15938
Предлагается картинки раскрывать тоже цссом? Если да, то это будет худшее нововведение Иичана эвар.
No. 15944    
>>15938
Как же забавляют такие теоретики, которые лучше всех знают как надо, но не имеющие представления как это сделать.
No. 15945    
>Сперва добейся!
Ага, конечно, даже не почешусь. Иначе тогда уж брать и в самом деле готовый проект предлагать.
Кому интересно сами нагуглите. Кому не интересно - можете дальше гореть. Единственное что, повторюсь, результат не запоминается. А значит совсем без js бесполезно.
No. 15946    
>>15945
Повторюсь, повторяя еще раз, как я уже говорил, повторяя вышесказанное, повторяю что я повторял, хватит писать глупости, если не имеешь представления.
No. 15967    
Вы бы что-ли новости какие-то сообщили.
No. 15968    
>>15967

>>15925
No. 15970    
Буду признателен если вы пришьете вакабе нормальный tomorrow.
No. 15974    
Я тут упоролся и сделал es6-only версию: https://github.com/WagonOfDoubt/iichan-extensions/tree/bells-and-whistles
No. 15975    
Я знаю!
М-тян впилит нововведения аккурат к юбилею! Чтобы сырны могли с гордостью вспоминать этот день, говоря, что ждали этого момента 10 лет.
No. 15985    
>>15911
Тут это... Добавил свертывание картинки по клику вне ее.
http://codepen.io/anon/pen/qrJbYo/left/
No. 15986    
>>15985
> 11 Use '!==' to compare with 'null'. (Google it)
> 12 Don't make functions within a loop. (Google it)
> 18 Don't make functions within a loop. (Google it)
> 47 Use '===' to compare with 'null'. (Google it)
> 70 Missing semicolon. (Google it)
> 3 Don't use IDs in selectors. (Google it)
> 13 Don't use IDs in selectors. (Google it)
No. 15988    
>>15986
Спасибо за конструктивную критику, поправил.
С функциями вне цикла получилось на несколько строк больше. Про id в селекторе - сомнительно, т.к. там селектор дочерних элементов. Делать getById а потом на нем выбирать дочерние элементы имхо излишнее усложнение.
No. 16010    
>>15974
Слил все в master: https://github.com/WagonOfDoubt/iichan-extensions
Решил оставить es6-версию потому как все актуальные браузеры поддерживают es6, а пользователям Оперы Престо, Эксплорера и телефонов со старым андроидом меньше всего нужны какие либо нововведения. У них скрипт просто не выполнится и все будут довольны. Поддержка оставшихся 5% в приоритет не входит.
No. 16058    
Так кто победил в конкурсе? >>16010-кун?
No. 16078    
>>16058
Ждем программиста, предсказанного Пророчеством - на белом коне и с большими усами, который сделает
>js нужен только для сохранения
>Всё остальное умеют стили
No. 16455    
>>16078

И явится программист на чёрном моноколесе и с большими усами, и имя ему будет Мицгол.

たぶん。
No. 16462    
А как насчет того, чтобы на чиочане такую же раскрывалку картинок запилить?
No. 16465    
>>16462
Она есть с основания. Только надо на ссылку над файлом нажимать.
No. 16556    
А зачем на div с тредом добавлять class="iichan-thread-hidden", если достаточно стилизовать не
.iichan-thread-hidden {display: none}
а
.iichan-hidden-thread-placeholder+div {display: none}
, тем паче что именно через + сделано "раскрытие по наведению". А то получается, скрываем по классу, а раскрываем по другой-класс+див, ну и добавление такого класса выглядит избыточным, не?

Объясните любознательной баке в образовательных целях.
No. 16746    
Больно нужно это скрытие. Лучше бы карту постов добавили.
[Назад] [Вся нить] [Последние 50 сообщений]
Удалить сообщение []
Пароль  
[Mod]