dev Мобильная версия сайта ...


Вы здесь: Форумы fantlab.ru > Форум «Техподдержка и развитие сайта» > Тема «[dev] Мобильная версия сайта (nano.fantlab.ru)»

[dev] Мобильная версия сайта (nano.fantlab.ru)

 автор  сообщение


миротворец

Ссылка на сообщение 11 января 2019 г. 14:54  
Хм. Со смарта логин и пароль сайт не принимает. Ни обычная версия ни мобильная. Хотя вот тут, с обычного компа, сижу под своим логином без проблем.
Есть какая-то хитрость?
–––
Полки "продаю" с непроставленными ценами на книги как вариант для покупки не рассматриваю.


магистр

Ссылка на сообщение 11 января 2019 г. 20:20  

цитата MarchingCat

Есть какая-то хитрость?


Нет хитрости.

Попробуйте в режиме инкогнито.
Если получиться — дело в куках — почистите их.
Если не получиться — другой браузер попробуйте
–––
ϝʟ * Никаких компромиссов, даже перед лицом армагеддона (Роршах)


философ

Ссылка на сообщение 11 декабря 2019 г. 02:28  
Для тех, кого также задолбал скролл вверх на nano.fantlab.ru с телефона: добавьте в блоклист своего адблока скрипт js/standart.js. На моём ublock это строка:
||fantlab.ru/js/standart.js$script,1p

P.S. Продолжаю делать свою тёмную тему для stylus'а. Переделки стилей в ближайшее время не предвидится? Сейчас много заинлайненных стилей и есть расхождения между форумом и лабораторией (например спойлеры в отзывах и комментариях на форуме).
–––
волю память и весло
слава небу унесло


философ

Ссылка на сообщение 11 декабря 2019 г. 08:06  

цитата Опоссум

добавьте в блоклист своего адблока скрипт js/standart.js


Только там и другие функции отключатся. Например, логин и пароль придётся всё время вводить вручную, в куках они перестанут запоминаться (функции как раз в standart.js находятся).

Лучше тем же адблоком убрать сам скролл, а не весь standart.js.

Как вариант, немного исправить standart.js и заменить стандартный на свою версию. Адблок это умеет.

Полоса эта действительно очень мешает. Очень много места занимает. Если бы вместо неё сделать небольшую кнопку быстрого действия, как в Opera Touch (под iOS), тогда проблема бы и решилась:
https://help.opera.com/ru/touch/fast-acti...
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


философ

Ссылка на сообщение 11 декабря 2019 г. 11:54  

цитата ziza

Только там и другие функции отключатся. Например, логин и пароль придётся всё время вводить вручную, в куках они перестанут запоминаться (функции как раз в standart.js находятся).

Не проверил ещё ¯\_(ツ)_/¯. Скролл как элемент есть только на основной версии сайта. На nano я нашёл только скрипт в standart.js, который сам за handler настраивает глобально, без привязки к какому-либо элементу. Попробую свою версию подсунуть, спасибо за идею.

Upd: проверил сессию с телефона, никаких отклонений не заметил. Вход/выход работают как раньше.
–––
волю память и весло
слава небу унесло


философ

Ссылка на сообщение 11 декабря 2019 г. 14:59  
И вообще, почему бы не перенести багтрекер с форума на гитхаба (а заодно и сам сайт, хотя бы фронтенд)?
–––
волю память и весло
слава небу унесло


философ

Ссылка на сообщение 11 декабря 2019 г. 15:38  

цитата Опоссум

Вход/выход работают как раньше.


Куки надо стереть, тогда логин и пароль будут запрашиваться.

Там из логина и пароля делается специальный код, который записывается в куки. При запросе страницы сервер через HTTP получает эти куки, сравнивает со своей таблицей и, если находит, продолжает эту сессию без запроса логина и пароля. Куки имеют ограниченный срок действия и через некоторое время стираются, поэтому, если долго не заходить на сайт, логин и пароль будут спрашиваться.

В общедоступном API Фантлаба это всё описано. Он на Гитхабе выложен.
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


философ

Ссылка на сообщение 11 декабря 2019 г. 16:38  
ziza, положим, я знаю как работают куки и сессии. К слову, получение кук по HTTP и через JS — это разные вещи. Спасибо за гитхаб, но
1) Я по-прежнему не вижу упоминания standart.js/setCookie во всех репах фантлаба.
2) Не вникая в детали API, всё же предположу, что js не участвует, иначе нафиг такой API нужен?
3) И вообще:

цитата

$ wget -H -N -k -p --exclude-domains google.com --no-check-certificate https://nano.fantlab.ru
$ grep setCookie ./ -Rn
./fantlab.ru/js/sections.js?t=1559993816:71: setCookie('hidden_sections',cookie,0);
./fantlab.ru/js/sections.js?t=1559993816:87: setCookie('hidden_sections',cookie,0);
./fantlab.ru/js/standart.js?t=1559993816:16:function setCookie(cookieName, cookieContent, cookieExpireTime)
./fantlab.ru/js/standart.js?t=1559993816:106:    setCookie("topadworkdisable",1,0);

В standart.js я вижу только одну функцию выставляющую куки: setCookie. Судя по грепу, это не сессионные куки. Судя по экспериментам, всё хорошо. Короче, не вижу причины не выключать standart.js на мобилках.

цитата

И вообще, почему бы не перенести багтрекер с форума на гитхаба (а заодно и сам сайт, хотя бы фронтенд)?

Честно говоря, фронтенда Лаборатории на гитхабе всё равно что нет.
–––
волю память и весло
слава небу унесло


философ

Ссылка на сообщение 11 декабря 2019 г. 22:37  

цитата Опоссум

Я по-прежнему не вижу упоминания standart.js/setCookie во всех репах фантлаба.


setCookie использовался, когда устройство определялось как мобильное и предлагался переход на нано-версию. В предлагаемой ссылке по клику вызывалась функция setCookie.

Но это со стороны сервера (серверный скрипт генерирует такую html-страницу и включает в неё JS-скрипт с вызовом setCookie). Есть и ещё несколько таких мест.

А в клиентских JS-скриптах эта функция вызывается только в sections.js:

цитата


function plus_hidden(work_type_id)
{
var cookie = Get_Cookie('hidden_sections');
if ((cookie == null) || (cookie.match(/NaN/)) )
cookie = '';
var pattern = new RegExp('_'+work_type_id.toString()+'_','');
if (!cookie.match(pattern))
cookie = cookie + '_'+work_type_id.toString()+'_';

setCookie('hidden_sections',cookie,0);
send_sections(work_type_id,1);
}


и ещё в standart.js:

цитата


function DisableTopadvertWork()
{
if (confirm("Закрыть и не показывать больше этот блок?")) {
   document.getElementById("topadvertworkdiv").style.disp lay = "none";
   setCookie("topadworkdisable",1,0);
}
}


Так что лучше заменить standart.js на пользовательский скрипт (например, при помощи Tampermonkey или аналогичного дополнения браузера).

цитата Опоссум

Судя по грепу, это не сессионные куки


Сессионные куки из JS и не получатся. Они с доступом только с HTTP, то есть из серверных скриптов. Попробуйте в Google Chrome посмотреть эти куки, там это написано. Настройки/Дополнительные/Настройки сайта/Файлы cookie и данные сайтов/Все файлы cookie и данные сайтов/fantlab.ru. И посмотрите кук fl_s. У него в поле "Доступно для скрипта" стоит "Нет (HttpOnly)". Это как раз и есть сессионный кук, сформированный из логина и пароля. От скрипта его спрятали ради безопасности, чтобы никто чужой сессионный кук не стащил при помощи скрипта и не получил доступ под чужим логином. Вполне разумное решение. А сервер доступ имеет.

В описании API это описано:
https://github.com/FantLab/FantLab-API/bl...
и там тот же кук можно получить через X-Session. То есть если хотите через API работать, например, со своими личными книжными полками или с другими личными ресурсами, то надо сначала получить кук или X-Session через авторизацию (POST /login, задав свой логин и пароль), а потом этот кук передавать при доступе к ресурсам. Я пробовал, получается.
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


философ

Ссылка на сообщение 11 декабря 2019 г. 22:59  

цитата Опоссум

Честно говоря, фронтенда Лаборатории на гитхабе всё равно что нет.


А зачем? Скрипты на JS можно и так скачать.

Об ошибках все посетители пишут, но гитхабом большинству пользоваться неудобно.
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


философ

Ссылка на сообщение 12 декабря 2019 г. 00:06  

цитата ziza

А зачем? Скрипты на JS можно и так скачать.

Об ошибках все посетители пишут, но гитхабом большинству пользоваться неудобно.

Я, например, хотел бы послать пулл-реквест в стили, чтобы это безобразие убрать. Потом есть, шаблоны страниц, какие-то потайные ссылки, локализация, куча всего, что скачать проблематично. Ну и вообще, публичный репозиторий здорово дисциплинирует.
–––
волю память и весло
слава небу унесло


философ

Ссылка на сообщение 12 декабря 2019 г. 05:57  

цитата Опоссум

Я, например, хотел бы послать пулл-реквест в стили, чтобы это безобразие убрать.


С этим та же самая проблема, что с администрированием. Администраторы и программисты давно уже даже свои форумы убрали из публичного доступа. База данных является собственностью Фантлаба, ПО, видимо, тоже. То есть в настоящее время это не свободное программное обеспечение. База данных правится только по присланным заявкам и только администраторами, а для ПО даже и системы заявок нет, только тема на форуме.

Чтобы послать пулл-реквест, действительно требуется, чтобы фронтенд (html+js+css) был на гитхабе и чтобы была возможность делать свои форки, вносить в них изменения и затем уже посылать пулл-реквесты.

Но поскольку есть причины не делать движок Фантлаба свободным ПО, это навряд ли возможно. Надо другие способы искать.

цитата Опоссум

шаблоны страниц


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

Стили можно поправить, например, с помощью Greasemonkey, но действовать эти изменения будут не глобально для всех пользователей, а только для себя.

Я бы лучше предложил не делать гитхаб, а вынести все эти возможности (включая добавление пользовательских скриптов, стилей и шаблонов страниц) в API. Когда-то планировалось, что и весь фронтенд будет переписан при помощи API. В этом варианте все желаемые изменения можно было бы делать не глобально, а только в своём клиенте.

Мне API и тех возможностей, что уже есть, вполне хватает. Сравните обзоры новинок у antilia и у меня:
https://fantlab.ru/blogarticle63934
https://fantlab.ru/blogarticle63830

antilia для оформления использует стандартные возможности (BBCode). У меня же кроме BBCode используется HTML, и стили немного подправлены, и стандартный кат я заменил при помощи JS-скрипта.

А зачем сделали скролл в мобильной версии, мне непонятно. Вроде бы на мобильных устройствах (по крайней мере на iPhone, браузер Сафари), скролл делается обычным кликом в верхней части окна. Посетители просили его сделать, но хорошо бы в настройках добавить возможность его включать/выключать, а по умолчанию чтобы был выключен. Скролл очень много места на экране занимает. Иногда хочешь кликнуть по ссылке в левой части экрана (перейти на другую страницу в списке сообщений подфорума) и попадаешь вместо того в этот скролл.
–––
Джентльмен — это человек, который знает, как играть на пианино, но не умеет этого делать
Je suis Ziza


авторитет

Ссылка на сообщение 12 декабря 2019 г. 16:43  

цитата Опоссум

И вообще, почему бы не перенести багтрекер с форума на гитхаба (а заодно и сам сайт, хотя бы фронтенд)?

Уж много лет репа там, и баги там. Но репа приватная и в паблик не пойдёт.
Отдельной репы по фронту нет, возможно появится, обещать не стану.
Учитывая то, что сайт во многих местах — это всё еще CGI обёрнутый в Mojolicious, то там нет ни шаблонов, ни стилей, увы.
А самой печальное — нехватка рабочих рук. Хотите помочь — стучитесь к Creator, если одобрит то и доступ будет.
–––
...и вам того же...вдвойне!


гранд-мастер

Ссылка на сообщение 3 августа 2022 г. 14:31  
Только у меня перестал работать нано фантлаб?


гранд-мастер

Ссылка на сообщение 3 августа 2022 г. 15:30  
DragonXXI после очистки кэша в браузере телефона, нано у меня заработал
Страницы: 12345678    🔍 поиск

Вы здесь: Форумы fantlab.ru > Форум «Техподдержка и развитие сайта» > Тема «[dev] Мобильная версия сайта (nano.fantlab.ru)»

 
  Новое сообщение по теме «[dev] Мобильная версия сайта (nano.fantlab.ru)»
Инструменты   
Сообщение:
 

Внимание! Чтобы общаться на форуме, Вам нужно пройти авторизацию:

   Авторизация

логин:
пароль:
регистрация | забыли пароль?



⇑ Наверх