Модификация шаблона Developer-Kit от Kitsune Solar

Привет всем!

Хочу поблагодарить vOFFka за создание такого прекрасного шаблона, как Developer-Kit:
catalog.livestreetcms.com/addon/view/299/

Я решил на текущей кодовой базе этого шаблона выпустить свою модификацию. Сначала модификация разрабатывалась исключительно для личных проектов, но позже решил выложить в открытый доступ. Сам я с ЛС познакомился в его версии 0.4, но более плотно им занялся только сейчас. Мне нравится ЛС и я бы хотел внести свой вклад в развитие сообщества. Пусть даже он будет таким не большим. Посмотреть «демо-версию» можно на моём блоге: kitsune.solar.

Модификация для сообщества была портирована с моих рабочих проектов, возможно в коде я оставил какие-то свои личные хаки, но вроде бы всё подчистил.

Моя версия отличается следующими параметрами:

  • Чтобы не править оригинальную тему «default», была создана новая — «system».
  • Добавлены иконки Font Awesome для верхней навигации и выпадающей панели пользователя.
  • Добавлены кнопки обновления прямого эфира и списка блогов. В оригинальной версии эти кнопки отсутствуют.
  • Twitter Bootstrap обновлён до версии 3.3.5
  • Добавлена директория custom/, в которой располагаются дополнительные шаблоны.
  • Код названия сайта вынесен в отдельный шаблон sitename.tpl и размещён в директории custom/.
  • Статистика производительности отображается только для основного администратора с ID = 1.

Также в ходе разработки модифицированной версии были сделаны следующие изменения:

  • Добавлен атрибут alt="..." для всех изображений. Атрибут имеет правильное содержимое (описание блога, логин пользователя и т.п.)
  • Добавлены иконки для ссылок на популярные сетевые ресурсы.
  • Исправлено название сайта. Теперь на главной странице название сайта помещается в тег h1, а при чтении топика помещается в теги span, потому что заголовок топика уже в теге h1. Два тега h1 на одной странице семантически неправильно.
  • Откорректированные информационные сообщения.
  • Тег b заменён на strong.
  • Символ "&" заменён на его аналог amp.
  • Символ "·" заменён на его аналог middot.
  • Тег small убран. За место него используется класс ".small".
  • Изображения добавляемых материалов во всплывающем окне заменены на их аналоги из Font Awesome.
  • Добавлены мета-теги разметки для социальных сетей в секцию header.
  • Мета-теги социальных сетей разделены на отдельные файлы: для блога, для топика и для профиля пользователя. Эти файлы автоматически подключаются в зависимости от страницы, на которой находится пользователь или поисковый робот.
  • Исправлено отображение надписей кнопки «добавить в избранное». Раньше даже когда статья была уже добавлена в избранное, надпись «добавить в избранное» всё равно отображалось. Теперь же есть две надписи «добавить в избранное» и «удалить из избранного». Надписи меняются в зависимости от состояния кнопки.
  • Шрифт в редакторе изменён на sans-serif. Monospace больше не используется.
  • Страницы с отсутствующей боковой панелью теперь имеют максимальную ширину.

Введены дополнительные настройки и фразы. Настройки позволяют включать/отключать отображение таких элементов, как:

  • ссылка входа;
  • ссылка регистрации;
  • блок со списком блогов;
  • блок прямого эфира;
  • блок со списком тегов;
  • блок со списком стран;
  • блок со списком городов;
  • блок статистики;
  • кнопки голосования пользователя;
  • кнопки голосования блога;
  • кнопки голосования топика;
  • кнопки голосования комментария.

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

Ссылки


Версию 1.6.5-MOD-1.5 можно получить по этой ссылке:
https://mega.nz/#!9AowwLBZ!YSH-rSBa53KC8AdGrdrq5QgNJ2OVvg4TrMZXtEOOnFM

(пароль от архива: webrepo.ru)

Новые версии я выкладываю у себя на форуме:
https://cyberspace.community/resources/667/

73 комментария

avatar
Вы в открытый доступ выложили платный шаблон ^_^
avatar
Ну вот зачем стращать?:
… шаблон можно изменять, распространять и продавать, но при условии сохранения моих копирайтов в том виде, в котором они сейчас прописаны в шаблоне.
source
avatar
Привет. Вообще нет, шаблон можно распространять свободно. Почитайте лицензию, под которой он выложен.

Шаблон распространяется по лицензии Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) по которой вы можете свободно:

делиться — копировать, распространять и передавать другим лицам данное произведение;
изменять (создавать производные произведения) — чтобы приспособить это произведение к своим задачам;
использовать произведение в коммерческих целях.

При обязательном соблюдении следующих условий:

Вы должны атрибутировать произведение (указывать автора и источник) в порядке, предусмотренном автором (прямая текстовая гиперссылка на мой блог, которая уже прописана в шаблоне).

Особо умные могут скачать релиз шаблона у автора с GitHub. Но рекомендую всё же купить, тем самым вы отблагодарите автора за проделанную работу.
avatar
Twitter Bootstrap обновлён до версии 3.3.5
а не опасно? )) там ведь требования к версии jQuery от 1.9.1
avatar
Знаю, но не опасно. Автор сам искал выход: livestreet.ru/blog/templates/17563.html#comment278790

В итоге, в версии 1.6.5 автор обновил Twitter Bootstrap до 3.3.4, но оставил старые JS библиотеки. Я пошёл таким же путём и обновил до 3.3.5.

Вопрос остаётся открытым. Сейчас я тоже, как и автор, в поиске решения проблемы. jQuery имеет способность подключать несколько своих версий:

stackoverflow.com/questions/1566595/can-i-use-multiple-versions-of-jquery-on-the-same-page

Но подобное решение также влечёт проблемы.

Вообще, предлагаю разработчикам ЛС выложить обновлённую версию с jQ 1.9. Если кто не знает, jQ 1.9 уже используется сейчас на этом сайте.
avatar
Настройки позволяют включать/отключать отображение… элементов...
С кнопками все понятно, но ведь блоки можно отключать через конфиг движка?

Кстати у вас (и на всех сайтах с developer-kit) glyphicons в IE Edge не отображаются, т.к. он использует svg-версию иконочного шрифта, а в смерженном CSS ссылка на svg «съедается». Починить можно так (движок!):
Вместо этого вставить это:
$aPath = explode('?', $sFilePathAbsolute, 2);
$sFilePathAbsolute = $aPath[0];
$aPartHash = explode('#', $sFilePathAbsolute, 2);
$sFilePathAbsolute = $aPartHash[0];
$sGetParams = isset($aPath[1]) ? $aPath[1] : '';
$sHashParams = isset($aPartHash[1]) ? $aPartHash[1] : '';
$sFilePathAbsolute = $this->GetRealpath($sDir.$sFilePathAbsolute).($sGetParams ? "?{$sGetParams}" : '') . ($sHashParams ? "#{$sHashParams}" : '');
$sFilePathAbsolute = $this->GetWebPath($sFilePathAbsolute);
По мотивам этого issue в LS2.0
avatar
И это помогает решить проблему с иконками? А то мне пришлось merge отключить, так как часть пользователей не видела иконок :(
avatar
да
avatar
Внес изменения в файл, включил merge, протестирую на пользователях.
avatar
С кнопками все понятно, но ведь блоки можно отключать через конфиг движка?
Нужно посмотреть подробнее большой конфиг. Возможно, я сделал дублирующие настройки. Тогда придётся откатываться.

Кстати у вас (и на всех сайтах с developer-kit) glyphicons в IE Edge не отображаются, т.к. он использует svg-версию иконочного шрифта, а в смерженном CSS ссылка на svg «съедается». Починить можно так (движок!):
Благодарю за поддержку. Может вынести подключение шрифта в отдельный CSS без слияния? Вообще, сейчас используется два шрифта: бутстраповские глифы и Font Awesome. Задумываю перейти полностью на Font Awesome. Как вы считаете?
avatar
Может вынести подключение шрифта в отдельный CSS без слияния?
это решит проблемы с отображением, но зачем когда можно «починить» и смержить?
Задумываю перейти полностью на Font Awesome
с точки зрения «веса» тогда логично было бы убрать из CSS подключение глифов, а так: на вкус и цвет… )
avatar
jQ 1.9 уже используется сейчас на этом сайте
Ага, причем 2 раза ))
avatar
Версия 1.6.5-MOD-1.5

— Исправлены ошибки.
— В настройки стиля добавлена возможность отключать отображение тегов топика.
— Изменено отображение блока статистики пользователей (см. рис.).

avatar
Лучше бы таблицей…
И разделить бы по группам (пол, активность)
avatar
Привет. Можешь набросать образец?
avatar
Все уже набросано до нас...))
avatar
Нет, это понятно. Я говорил про отображение таблицы в блоке статистики пользователей. Как она должна выглядеть? Если так же, как на рисунке, но тегом таблицы, то лучше мой вариант тегом ul.

Я не могу понять как это «разделить по группам». Как должна отображаться таблица, как она должна выглядеть?
avatar
Я не могу понять как это «разделить по группам».
нужно добавить пустую строку между 3-мя верхними и 3-мя нижними строками, imho…
avatar
Скоро будет новая версия шаблона. Основное отличие — интеграция schema.org

avatar
Более масштабной переделки не планируется?
avatar
Я не дизайнер. :)
Делаю фундамент, на основе которого можно строить свой шаблон.
avatar
Приветствую!

Сейчас чуточку подправляю стандартный дистрибутив LS v1.0.3.

В моём дистрибутиве:

Компрессор JSMin заменён на JSqueeze.
Компрессор CSSTidy-1.3 обновлён до CSSTidy-1.5.5.
Библиотека подсветки синтаксиса Prettify обновлена до актуальной версии.
Библиотека jQuery и ей плагины (jqModal, PoshyTip) обновлены до актуальных версий (jQuery = v1.11.3).
Добавлены дополнительные правила REGEX для VideoParser. *
Введён дополнительный метод, позволяющий вывести количество публикаций каждого пользователя на страницу пользователей. *
Исправлен и оптимизирован метод Cut модуля Text. *
Исправлена ошибка парсера, когда тот исправлял ©, ® и т.п. внутри тега CODE. *
Исправлена ошибка переноса, когда тире в конце предложения и перевод строки «сьедался». *
Тег VIDEO стал адаптивным (только для bootstrap-based шаблонов). *
Удалена страница перенаправления при выходе пользователя.
Отключено отображение ошибок PHP, тем самым предотвращено раскрытие путей на сервере. *

Благодарю lifecom и PSNet за предоставленные статьи!
avatar
Про jQuery очень крутая новость.
Скажите, каковы планы по выпуску дистрибутива?
avatar
Будет выпущен, как только я его полностью протестирую. По умолчанию, будет установлен шаблон Developer-Kit в моей интерпретации. По сути, ради него и задумался над обновлением дистрибутива, потому что, например, новые JS Bootstrap'а уже не работает на jquery 1.7. Хотя, в моём варианте нет полноценной поддержки JQ 1.11 — со старыми скриптами она работает через прослойку совместимости. Скрипты, которые позволяют себя безболезненно заменить, я стараюсь обновить до актуальных версий.

Кстати, заметил, что LS 2.0 использует JSqueeze. Поэтому, тоже решил его добавить в дистрибутив. Заодно, обновил CSSTidy. Там ещё много изменений небольших, например, поменял путь подключения кнопок Yandex.Share и сделал их независимыми от протокола (http / https), используемого на сайте.
avatar
Кстати, если не секрет, почему выбор пал на JSqueeze?
Не сравнивали к примеру с JShrink.
avatar
Сначала я интегрировал JShrink, но потом увидел, что LS2 использует JSqueeze. И решил интегрировать JSqueeze. :)
avatar
Я смотрю вы и flarum-ом «балуетесь»? ))
Как впечатления?
avatar
Да, решил поэкспериментировать. :)

Очень многообещающий движок. Но пока что в глубокой разработке. Я сделал его локализацию (есть на офф. сайте) и сделал русское сообщество (flarum.help). Пускай будет. Движок очень хороший, но ставить на постоянку пока не рекомендуется. Много работы предстоит сделать, чтобы вывести Flarum на уровень нормальных форумов.

Хотел заменить им свой блог на LS, но передумал. Сейчас хочу обратно вернуться на LS, но на уже обновлённый дистрибутив, который я сейчас «собираю».

Так же посмотрел AltoCMS, но при беглом взгляде не понравился. Сделан топорно, и имеются «бреши» в интерфейсе.
avatar
Тоже узнал о Flarum только у вас. Задумка класс. Интересно написан.
Так же посмотрел AltoCMS, но при беглом взгляде не понравился. Сделан топорно, и имеются «бреши» в интерфейсе.
Какие «бреши»?
avatar
Дефекты интерфейса. Например, вот:
github.com/altocms/altocms/issues/786

Это только первый, сразу обнаруженный мной.
avatar
По настоянию пользователей перешли на постоянное обновление (без альф/бэт). Поэтому ошибок много.
avatar
Слежу за esoTalk давно, есть собственный сайт на своей модификации (пришлось довольно много ошибок исправлять самостоятельно, т.к. владелец поддерживает эпизодически — и прямо об этом заявил, так что к нему никаких претензий). Тоби обещал что будут все инструменты перехода с esoTalk на Flarum. Поэтому я рекомендую если движок нравится брать последнюю версию esoTalk и делать на ней. Что-то масштабное, пока Flarum не превратится в стабильный продукт я бы строить не стал, но для форума вполне. Философия у них одна, хоть esoTalk и сильно проще. (Но и быстрее)
avatar
Что за дистрибутив собираете, если не секрет?
avatar
Мда, ребята…

Только начав плотно работать с LS 1.0.3 я понял, на сколько он уже устаревший.
Например, плагин catalog.livestreetcms.com/addon/view/226/ для работы Developer-Kit вообще не создаёт у меня изображения на php 5.6 (более старого нет). Проверил даже на не-модифицированном мной LS (думал, ошибку где-то допустил, либо конфликт скриптов). Но нет, просто не работает. При редактировании топика миниатура отображается, дескать, «да, она загружена, вот». А при просмотре списка топиков — от миниатуры остаётся только ошибка 404.

Вообще, компоненты в LS 1.0.3 сильно устарели. Я рекомендую использовать другой движок, например, тот же AltoCMS.
avatar
По поводу:
Например, плагин catalog.livestreetcms.com/addon/view/226/ для работы Developer-Kit вообще не создаёт у меня изображения на php 5.6 (более старого нет).
Погорячился. Всё работает нормально. Моя ошибка. Но остальные компоненты уже устаревшие.

Кстати, прошу помощи перевода LS 1.0.3 на Smarty 3.1.27. :)
avatar
Кстати, прошу помощи перевода LS 1.0.3 на Smarty 3.1.27. :)
Чем помочь?
avatar
Простой заменой папки Smarty тут не обойтись. Всё крэшится. Думаю, нужно менять код ЛС, либо Смарти адаптировать по ЛС. Но я туп как пень, Смарти мне не под силу внедрить. :(
avatar
Скинь, что у тебя получилось собрать. Посмотрю.
avatar
Я очень долго использую 1.0.3 на PHP 5.6, параллельно пробовал по мере разработки Alto и LS 2.0 (раз 5-10 уже точно).
И заметил одну вещь: на моем сайте на LS стоит огромная куча плагинов и все это генерируется менее чем за 150 миллисекунд.
На AltoCMS и LS2.0 из коробки на пустых сайтах такого значения добиться не удалось.
Так же, я параллельно люблю новые плагины ставить на тестовом сайте.
Перепробовал порядка 25 плагинов и никаких проблем не возникало с совместимостью почти.
От сюда и сделал вывод, что лучше 1.0.3 обновить библиотеки и сделать какую нибудь 1.5 или 1.1.
Ну и добавить чуть-чуть функционала, которого очень не хватает из коробки на данный момент.
avatar
LSuser да я понимаю…

LS2.0 тоже уже устарел. jQuery в нём старый. Smarty тоже старый. Остальные компоненты не смотрел, но думаю, они тоже уже устаревшие.
avatar
Да. Всё печально.
avatar
Ну и добавить чуть-чуть функционала, которого очень не хватает из коробки на данный момент.
Что надо сделать на Ваш взгляд?
avatar
Не хватает какого-нибудь RBAC или подобной ему штуки, ну и возможность блокирования пользователей, в остальном ЛС имхо идеален в плане функционала.
avatar
Smarty обновлён до версии 3.1.28 (недавно вышла). sersar и я проверили работоспособность.
avatar
Что далее? :-)
avatar
Чтобы временно исправить баг:
catalog.livestreetcms.com/addon/trac/299/view/3276/
Мне пришлось вынести форму загрузки выше формы добавления топика.

Теперь следующий шаг — обновить /engine/lib/external/phpMailer
Но опробовать его работу смогу только на основном сервере. На дев-сервере у меня нет почтовика, чтобы отправить письма через phpMailer. Если тебе не трудно и у тебя работет почта на серваке, можешь скачать phpMailer:

github.com/PHPMailer/PHPMailer

Заменить его в дистрибутиве и попробовать как LS отсылает письма на email пользователя.
avatar
Чтобы временно исправить баг:
catalog.livestreetcms.com/addon/trac/299/view/3276/
Попробуйте перенести id отсюда сюда (замените его там)
avatar
Нет, так некорректно. Не правильно. Идентификатор должен быть уникальный для каждого элемента и не должен повторяться. А если сделать так, как ты предлагаешь, то ID будут одинаковы и у формы и у её модального окна. Удалить ID у формы тоже нельзя. По нему эта форма работает.
avatar
Не нужно дублировать, надо перенести, автор видимо забыл это сделать
avatar
Удалить ID у формы тоже нельзя. По нему эта форма работает.
avatar
Этот ID используется только для вызова модальника.
Не хотите, прежде чем оспаривать, просто попробовать?
avatar
Форма ДОЛЖНА иметь либо name, либо ID. Это по стандартам. Давайте попробую…
avatar
Проверил. После переноса ID из формы в DIV, форма перестаёт загружать изображения. Также ошибка по стандартам WEB. О чём я и говорил.





ID форме необходим. ПО ID определяются «функции» формы, грубо говоря, мягко выражаясь…
avatar
Вы правы, этот id используется в движке для сабмита формы. Поэтому нужно модальнику задать свой id (например modal-photoset-upload) и в соответствие с ним вызывать модальник
avatar
Подожду пока фикса от Володи. Он рассмотрел багу. :)
avatar
В общем я решил так (работает!):
1. Вместо этого пишем:
$('#modal-photoset-upload').jqm({trigger: '#photoset-start-upload'});
ls.photoset.closeForm = function() {
    $('#modal-photoset-upload').jqmHide();
}

2. ID модальника здесь меняем на modal-photoset-upload:
<div class="modal" id="modal-photoset-upload">

3. Кнопку закрытия модальника здесь меняем на:
<button class="close" type="submit" onclick="ls.photoset.closeForm();">×</button>
avatar
Только хотел написать, чтоб про кнопку не забыли. :) Будет минутка, профикшу.
avatar
Не на ту кнопку подумал: верхний крестик работает, не работает сама кнопка «закрыть».
avatar
Кстати, по молчанию вроде должен работать flash-загрузчик, а не модальник.
Преимущества первого в том, что можно выбрать сразу несколько img's, а в модальнике только по одному.

Лично я перевел все модальники на bootstrap-овские, ковырял в свое время движок, теперь научился делать все в пределах js шаблона и надо будет вернуть движок в «девственный» вид.
avatar
Кстати, по молчанию вроде должен работать flash-загрузчик, а не модальник.

Я сильно не вникал откуда там и что растет но поведение у него такое: на компе срабатывает flash-загрузчик, на мобилке — модальник.
avatar
Там выше модальника скрипт, если его закамментить — будет всегда модальник.

Ещё я вынес все инлайновые модальники в папку modals (как в LS2.0), а затем инклудил их. Плюс перенес все остальные модальники туда. Вроде проблем с совместимостью нет.

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

P.S.: а modal fade in это на будущее? :)
avatar
можно ли в таком случае инклудить модальники как-бы асинхронно, т.е. чтобы они не висели на странице, а инклудились только когда их вызывают?

Честно? Фиг его знает :) — это к гуру надо обращаться, я — простой любитель. Возможно существующий вариант оказался проще и легче.

P.S.: а modal fade in это на будущее? :)

Я тоже сразу хотел модальники на Бутстрапоские перевести, обнаружил, что надо движок ковырять, оставил на потом.
avatar
Не работает :(
avatar
показать можете?
avatar
Что именно? Всё заработало. Моя забывчивость :)
avatar
Нет, вру. Опять забыл почистит папку компиляции.
avatar
А можете поделится решением?
avatar
Так подожди выпуска. Переход будет простой заменой файлов. :)
avatar
Комментарии почему то меняют своё расположение. vOFFka всё работает. Спасибо за дифф!
avatar
Я разобрался по якорям.
Пожалуйста!
avatar
Версия jQuery увеличена до 2.1.4.
Библиотека подсветки синтаксиса Prettify заменена на более совершенную highlight.js.

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.