Мысли о переходе на https

Столкнулся с некоторыми проблемами при переходе на https. Все решилось правкой ссылок.

Я подумал возможно все сделать универсально, чтобы не было зависимости от протокола и вот какие мысли возникли:

1. Конфиг.
Наличие протокола https можно «забирать» прямо в php ($_SERVER['HTTPS']). Поэтому в конфиге прописал вот такую строку (переопределяем в config.local.php эту строку):
if (isset($_SERVER['HTTP_HOST'])) {
    if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
        $config['path']['root']['web'] = 'https://'.$_SERVER['HTTP_HOST'];
    } else {
        $config['path']['root']['web'] = 'http://'.$_SERVER['HTTP_HOST'];
    }
} else {
    // for CLI scripts. or you can append "HTTP_HOST=http://yoursite.url" before script run command
    $config['path']['root']['web']        = null;
}

или одной строкой:

$config['path']['root']['web'] = isset($_SERVER['HTTP_HOST']) ? ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] : null;

Выглядит непрезентабельно, и возможно неоптимально, но вроде работает. В зависимости от протокола по которому зашли, меняется конфиг {Config::Get('path.root.web')}

2. Ссылки на изображения.
На github-е уже предлагалось при загрузке изображений в редактор подставлять относительные ссылки.
src="http://site.com/uploads/images/.../img.jpg" -> src="/uploads/images/.../img.jpg"
Это дает универсальность и независимость от протокола. Но возникает проблема с RSS, т.к. в RSS потоке относительные ссылки не работают. По всей видимости, если переходить на относительные ссылки, то необходимо в ActionRSS делать replace для относительных ссылок и добавлять к ним {Config::Get('path.root.web')}

3. Внутренние ссылки в контенте.
Для внутренних ссылок существует универсальный способ href="http://site.com/..." -> href="//site.com/...". В данном случае протокол у ссылки будет задействован тот, в котором открыта страница со ссылкой. Решение универсальное, но распространяется только на внутренние ссылки. Вероятно, возможно применить это, делая replace в контенте при условии что это внутренняя ссылка.

Восстановление базы

Случайно подпортил базу на проекте. Благо есть недавний backup.
Есть база ls103 -> в ней таблица prefix_topic_content -> в ней поле topic_text_source
Вот это поле и «подпортилось».
Помогите, кто знает каким запросом заменить данные в этом поле из базы ls103_backup?

Т.е. нужно заменить все данные в поле topic_text_source, в том случае если в этой строке совпадает значение поля topic_id

Как добавить простой плеер в топик

У меня имеется код плеера с видео которое мне нужно. И мне это видео интегрировать в топик (именно в 1 нужный топик). Я добавляю код — но как я понимаю livestreet съедает некоторые теги. Помогите мне пожалуйста! Та же проблема и с добавлением pdf ридера в топик.

Жду Вашей помощи, многоуважаемое комьюнити!

edit: Я думаю сделать это через iframe. Делю все как в других постах сказано, но нифига.

Решено. Как решал:


открыл файл /application/config/jevix.php

Добавил код:
array(
               'iframe',
                array( 'src' => array('#domain'=>array('youtube.com', 'voidboost.net', 'rutube.ru','vimeo.com','protectorat.cc')), 'width' => '#int', 'height' => '#int',  'frameborder' => '#int', 'allowfullscreen' )
            ),


Ровно перед этим фрагментом:
),
        // Теги с обязательными параметрами
        'cfgSetTagParamDefault'     => array(

Добавлена поддержка РНР 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. Пишите по делу! Без больших постов и «умных» мыслей.

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

Прокачка LS версии 1. Добавляем html5 тэг

С выходом новой версии стандарта HTML5 появились новые дополнительные тэги, призванные улучшить семантическую структуру веб страницы. Как раз один из таких тэгов пятой версии — figure, я и решил добавить в проект.
Для этого нужно внести изменения в два файла лайвстрита.


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

Как получить настройки из конфига вывода блока?

Имеется плагин, который выводит блок через свой конфиг:
Config::Set('block.rule_somerule', array (
    'action'  => array (
        'index',
        'feed'
    ),
    'blocks' => array (
        'right' => array (
            'block_someblock.tpl'=> array (
                'params' => array ( 'plugin' => 'someplugin' ),
                'priority' => 101,
            )
        )
    ),
));


Помогите указать в шаблоне условие, что текущий action ($sAction) соответствует action из настроек вывода блока.

К примеру, такая конструкция не работает:
{if in_array($sAction, Config::Get('plugin.someplugin.block.rule_somerule.action')}
    ...
{/if}

Изменение контента топиков после редактирования конфига Jevix

После редактирования конфига Jevix новые правила обработки текста применяются если войти в режим редактирования топика и сохранить его.

Существует ли способ «прогнать» через новые правила все топики одним разом?

Где аналог Livestreet?

Неужели так и не появился аналог Livestreet? Всего-то нужно:

Авторизация/Регистрация
Постинг постов всеми пользователями
Рубрики (они же блоги)
Рейтинг постов и пользователей
Комментарии

И чтобы это просто работало из коробки.