+6.49
Рейтинг
17.23
Сила

"Чудом" удалось залогиниться (проблема логина решена)

Друзья, товарисчи!

Уже недели 3-4 на этот сайт практически невозможно залогиниться.
Сейчас каким-то чудом залогинился через Yandex браузер. Пользуясь случаем, пишу этот топик.

Большая просьба ко всем — у кого есть проблемы с логином, отпишитесь pls в этом тикете

Upd (23.06.2021)

В Chrome v91 убрали флаг same-site-by-default-cookies
Но можно запустить Chrome с командной строки.
Для Win10:
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-features=SameSiteByDefaultCookies
Для OSX:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome --disable-features=SameSiteByDefaultCookies

Upd (25.02.2021)
Вобщем выяснил наконец причину!

Дело в том, что начиная с 80-й версии chrome-based браузеров появилась защита от межсайстовой передачи куков (межсайтовых POST-запросов). А на LS сейчас именно такая система используется: passport.livestreetcms.com редиректит на livestreet.ru, передавая куки

«Вылечить» можно так:
1. Заходим по адресу chrome://flags/#same-site-by-default-cookies
2. Устанавливаем для свойства SameSite by default cookies значение Disabled
3. Перезапускаем браузер и все работает

Иными славами для файлов (в т.ч. куков) добавлено новое свойство: SameSite. У которого возможно 3 значения:
SameSite=Strict — куки передаются только в пределах одного сайта
SameSite=Lax (именно такое значение задается кукам по дефолту, если оно не задано явно) — куки передаются между сайтами только в пределах одного домена
SameSite=None — ограничения на передачу куков отсутствуют

Подробнее здесь и здесь.

Глобально решить проблему можно, задав для куков авторизации свойство SameSite со значением None (SameSite=None; Secure). И при этом необходимо чтобы и livestreet.ru также был на https.

Сделать это можно примерно так:
Для php < 7.3 (через установку заголовков):
header('Set-Cookie: cross-site-cookie=name; SameSite=None; Secure');
Для php ≥ 7.3:
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);

Или поставить примерно такую либу.

Но это может сделать только Макс, если захочет ;)

Решение — кросс-пост с тикета на github

Lazy Loading на самом деле не совсем Lazy

На сайте подключена библиотека для ленивой загрузки изображений (Lazy Loading).
Таких js-библиотек достаточное количество на github-е. Вот одна из популярных.
Как правило, для задействования либы требуется:
a) — наличие у тега img определенного класса
b) — наличие у тега img атрибута data-original (или data-src) c указанием ссылки на изображения.
Примерно так:
<img data-original="site.com/uploads/.../img.jpg"/>

Атрибут src может быть не задан вовсе, либо в нем должна быть ссылка на «заглушку».
Чтобы не «ковырять» редактор и/или текстовый парсер было решено сделать в js так:
$('#content .topic-type-topic img').each(function () {
    $(this).addClass('lazy');
    $(this).attr('data-original', $(this).attr('src'));
    $(this).removeAttr('src');
});

$("img.lazy").lazyload({
    effect: "fadeIn"
});

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

Недавно заглянул в консоль и увидел, что картинки при загрузке страницы все равно загружаются все разом, а эффект ленивой подгрузки лишь визуальный, т.к. никакой экономии трафика не происходит. Причина загрузки всех изображений в том, что обработка атрибутов тега img происходит ПОСЛЕ загрузки дерева DOM, в частности после загрузки всех картинок и jQuery.

В идеале конечно обработать img в самом движке — добавить правила Jevix, подправить редактор и/или текстовый парсер, затем все имеющиеся топики прогнать через все это.
Можно ли обработать тег img на лету до загрузки страницы? (через модуль Viewer?)

Гугл предложил еще вариант — заменить js-обработку тега img с jQuery на чистый JavaScript и вставить её в head. Кто знает как это сделать — прошу помочь, а я протестирую этот вариант.

Добавлена поддержка РНР 7.4 для LiveStreet CMS

Обновил движки как первой так и второй версии для поддержки РНР 7.4. Плюс исправил некоторые ошибки. Можете написать, что ещё надо поправить.

LiveStreet 1.0.3
github.com/sersar/livestreet-1/tree/3fa6ae9d441092cd1b7b0e256e4ef7fc76431dbd

LiveStreet 2.1.0
github.com/livestreet/livestreet
github.com/sersar/livestreet-framework
(возможно позже внесут изменения в официальную ветку)

Просьба в комментариях ответить на вопросы:
  1. Будете ли обновлять движок до совместимости с РНР 7.4?
  2. Хотели бы внести какие-нибудь поправки в движок? Обновить библиотеки?
  3. Интересует адаптация/разработка плагинов в складчину?

P.S. Пишите по делу! Без больших постов и «умных» мыслей.

Желающим поддержать финансово можно здесь.

Вставка видео через ссылку Youtube, mp4, avi, webm, flv и т.д.(Готовое решение)

Поддержка видео для таких сайтов как:
  • youtube.com
  • vimeo.com
  • rutube.ru
  • coub.com
  • ok.ru
  • vk.com
  • dailymotion.com

Для: LS 1.0.3

В /engine/modules/text/Text.class.php

Меняем функцию public function VideoParser($sText)

На это:
public function VideoParser($sText) {
		
		// Размеры и атрибуты окна вставленного видео.
        $iWidth = 620;
        $iHeight = 360;
        $iAlign = "center";
        $sIframeAttr = 'frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen="allowfullscreen"';
		/**
         * youtube.com fixed
         */
        $sText = preg_replace(
        '/<video>(?:http(?:s|):|)(?:\/\/|)(?:www\.|m.|)youtu(?:\.|)be(?:-nocookie|)(?:\.com|)\/(?:e(?:mbed|)\/|v\/|watch\?(?:.+&|)v=|)([a-zA-Z0-9_\-]+?)(&.+)?<\/video>/Ui',
        '<div align="'.$iAlign.'"><iframe width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.' src="//www.youtube.com/embed/$1?modestbranding=1&" frameborder="0" allowfullscreen ></iframe></div>',
        $sText
        );
		/**
         * vimeo.com fixed
         */
        $sText = preg_replace(
		    '/<video>http(?:s|):\/\/(?:www\.|)vimeo\.com\/(\d+).*<\/video>/i',
            '<div align="'.$iAlign.'"><iframe src="//player.vimeo.com/video/$1" width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.'></iframe></div>',
            $sText
        );
		/**
         * rutube.ru fixed
         */
        $sText = preg_replace(
            '/<video>http(?:s|):\/\/(?:www\.|)rutube\.ru\/tracks\/(\d+)\.html.*<\/video>/Ui',
            '<div align="'.$iAlign.'"><iframe src="//rutube.ru/play/embed/$1" width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.'></iframe></div>',
            $sText
        );
        $sText = preg_replace(
            '/<video>http(?:s|):\/\/(?:www\.|)rutube\.ru\/video\/(\w+)\/?<\/video>/Ui',
            '<div align="'.$iAlign.'"><iframe src="//rutube.ru/play/embed/$1" width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.'></iframe></div>',
            $sText
        );
		/**
	    * coub.com fixed
	    */
	    $sText = preg_replace(
		    '/<video>http(?:s|):\/\/(?:www\.|)coub\.com\/view\/(\w+).*<\/video>/i', 
		    '<div align="'.$iAlign.'"><iframe src="//coub.com/embed/$1?muted=false&autostart=false&originalSize=false&hideTopBar=false&noSiteButtons=false&startWithHD=false" width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.'></iframe></div>', 
		$sText
		);
		/**
	    * ok.ru fixed
	    */
	    $sText = preg_replace(
		    '/<video>http(?:s|):\/\/(?:www\.|)ok\.ru\/video\/(\w+).*<\/video>/i', 
		    '<div align="'.$iAlign.'"><iframe src="//ok.ru/videoembed/$1" width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.'></iframe></div>', 
		$sText
		);
		/**
	    * vk.com HASH not working, embeded link only
	    */
		$sText = preg_replace(
		    '/<video>(https:\/\/(?:www\.|)vk\.com\/video_ext\.php.*)<\/video>/i', 
			'<div align="'.$iAlign.'"><iframe src="$1" width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.'></iframe></div>', 
		$sText
		);
            /**
	    * dailymotion.com fixed
	    */
	    $sText = preg_replace(
		    '/<video>http(?:s|):\/\/(?:www\.|)dai\.ly\/(\w+).*<\/video>/i', 
		    '
<div align="'.$iAlign.'"><iframe src="//dailymotion.com/embed/video/$1" width="'.$iWidth.'" height="'.$iHeight.'" '.$sIframeAttr.'></iframe></div>', 
		$sText
		);
		return $sText;
	}

Конечно же в /config/jevix.php добавляем нехватающие сайты.

Свои параметры сюда:
// Размеры и атрибуты окна вставленного видео.
        $iWidth = 620;
        $iHeight = 360;
        $iAlign = "center";
        $sIframeAttr = 'frameborder="0" webkitAllowFullScreen mozallowfullscreen allowfullscreen="allowfullscreen"';


Готово!

Закон о персональных данных от 27.07.2006 года N 152-ФЗ и приведение сайта к его требованиям

Добрый день. В связи с вступлением в силу изменений в Федеральный закон от 27 июля 2006 года N 152-ФЗ «О персональных данных» появилось желание привести сайт в соответствие с требованиями данного закона. Отсюда несколько вопросов:

1. как разместить на сайте всплывающую информацию о сборе cookies? Есть какое-то решение, доступное даже для таких чайников как я?)

2. В политике конфиденциальности есть раздел, описывающий какие данные собираются автоматически. В той версии политики что я нашел, этот раздел выглядит так:
3.3. Сайт защищает Данные, которые автоматически передаются в процессе просмотра страниц, на которых установлен статистический скрипт системы («пиксель»):
IP адрес;
информация из cookies;
информация о браузере (или иной программе, которая осуществляет доступ к показу рекламы);
время доступа;
адрес страницы, на которой расположен рекламный блок;
реферер (адрес предыдущей страницы);
геолокации;
Можете прокомментировать с технической точки зрения что в этом фрагменте не так, что убрать/добавить?

Делаю конкурента Reddit, 9GAG.

Эти сайты очень популярные в Америке. Поэому в дальнейшем я считаю такие сайты будут забирать аудиторию в соц сетях ибо они более интересны благодаря своей технологией сортировки контента — популярное, новое, горячое. В соц сетях тебе предлагают только новое.



Вот статистика Вконтакте за последние 3 года, если тенденция будет оставатся неизменной то через 5-6 лет Вконтакте утратит свое первенство в лучшем случае. Така же ситуация и в других соц сетях.

Поэтому и я решил ухватить свой пирог и создал Чирекс. Cheerex.com Эта платформа показалась мне наилучшим вариантом из всех присущих на рынке. Только со временем понял как много недостатков и багов у нее. Ну ниче.
Что посоветуете на счет сайта в плане дизайна, функционала, и прежде всего в раскрутке?.. Ибо я не знаю как привлеч пользователей.

Спасибо.

Плагин "Simple Open Graph" - простенькая поддержка Open Graph для LS 1.0.X

Привет друзья!

Плагин добавляет мета-данные Open Graph. Без особых наворотов.

Что такое Open Graph?
1. ogp.me/
2. yandex.ru/support/webmaster/open-graph/intro-open-graph.html

И каков результат?
Для страницы топика результат выглядит примерно так:
<meta property="og:site_name" content="ММОзговед"/>
<meta property="og:locale" content="ru_RU" />
<meta property="og:title" content="Почему развивать MMO на основе платных дополнений - плохая идея / Теория MMO / ММОзговед" />
<meta property="og:url" content="https://mmozg.net/theory/2017/04/28/pochemu-razvivat-mmo-na-osnove-platnyh-dopolneniy-plohaya-ideya.html" />
<meta property="og:type" content="article"/>
<meta property="og:description" content="Сегодня по формальным признакам можно назвать термином MMO большинство форм онлайновых развлечений. Дискуссии ведутся разве что вокруг двойной “M” — достаточно ли массовый мультиплеер. Но и здесь можно найти множество формальных лазеек. Я же считаю, что без единого цельного мира со свободным взаимод"/>
<meta property="og:image" content="https://mmozg.net/uploads/images/00/00/01/2017/04/28/6e5fac.jpg" />
<meta property="article:section" content="Теория MMO"/>
<meta property="article:published_time" content="2017-04-28T14:09:31+03:00"/>
<meta property="article:tag" content="теория ММО" />
<meta property="article:tag" content="buy-to-play" />
<meta property="article:tag" content="дополнение" />
<meta property="article:tag" content="Elite: Dangerous" />
<meta property="article:tag" content="Guild Wars 2" />


Читать дальше →

Mail Tester - Тестируем письма на попадание в спам


Бывает, что при регистрации на сайте, письмо с активацией уч. записи пользователя попадает в спам, или вовсе не доходит… Чтобы заблаговременно проверить отправку и убедиться, что все ок! как раз таки и существуют эти сервисы.

Читать дальше →