Skip to content

BixBite - система для оперативного развертывания простейших сайтов на shared хостингах на базе Laravel. Стадия разработки - потыкать, пощелкать.

master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
app
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Система рассчитана на оперативное развертывание простейших сайтов на shared хостингах. Расширяема благодаря использованию Laravel в качестве ядра.

Содержание:

  1. Доступно или запланировано
  2. Требования
  3. Набор инструментов
  4. Установка BixBite
  5. Подготовка файлов
  6. Персонализация тем
  7. Перенос на хостинг
  8. Тестирование
  9. О Laravel
  10. Лицензия

Доступно или запланировано

Генераторы RSS-лент

Генераторы включают в себя Карты сайта /sitemap.xml и турбо страницы яндекс /amp/articles.xml:

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

Записи

  • Создание, редактирование, удаление записей в админ. панели.
  • Задание категорий, тегов записи, статуса записи (черновик, на модерации, опубликована), прикрепление основного изображения записи, задание своих meta (description, keywords, robots), время публикации, разрешение/запрет комментирования, добавление в избранное, отображение/скрытие с главной страницы, прикрепление на главной, прикрепление в категории.
  • Запись без категории всегда остается в черновиках.
  • При удалении пользователя, все его записи удаляются.
  • При удалении записи удаляется прикрепленные изображения и файлы, все комментарии к записи.
  • Вставка изображений в запись при создании/редактировании.
  • Прикрепление файлов к записи при создании/редактировании.
  • Поддержка shortcodes, включая доп.поля в контенте записи.
  • Создать раздел или настройки в записях для управления шорткодами.
  • Создать ссылки на шорткоды в визуальном редакторе.

Категории

  • Создание, редактирование, удаление категорий в админ. панели.
  • Вложенность, изменение позиций, отображение/скрытие из меню, прикрепление изображения, задание своих meta (description, keywords), отображение информации о категории на первой странице категории, выбор количества выводимых записей в категории, а также способ и направление сортировки, индивидуальные шаблоны для категорий/записей. См. директорию custom_views.
  • Категория, содержащая записи, не удаляется.

Теги

  • Задание разделителя, кириллические теги, мета тег robots: noindex, follow для страницы тегов и страниц по тегу. А то яша, как бык помои их жрет.
  • Удаление неиспользуемых тегов из настроек плагина.
  • Создать учет количества просмотров для сортировки по популярности, например, для виджета Популярные теги.

Пользователи

  • Создание, редактирование, удаление пользователей в админ. панели.
  • Группы пользователей и привилегии для групп, регистрация пользователей, редактирование своего профиля, стена пользователя с возможностью оставлять комментарии другими пользователями, там же, ссылка на страницу с записями пользователя.
  • Восстановление пароля.

Комментарии

  • Редактирование, удаление комментариев в админ. панели и без входа в админ. панель.
  • Древовидные комментарии.
  • При удалении комментария, все дочерние комментарии удаляются. При удалении пользователя, все его комментарии остаются, но как от незарегистрированного пользователя.
  • Добавить оповещение автора записи и других заинтересованных лиц об оставленном комментарии. Добавить выбор многостраничного отображения комментариев к записи. Тормозит сам вид ЧПУ ссылки. Премодерация с возможностью из почтового ящика при переходе по ссылке удалить/одобрить коммент.

Файлы

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

Виджеты

  • Кэширование. Задание шаблона, заголовка.
  • Виджет Популярные записи.
    • выбор категории, id записей, пользователя, за последние дни, из избранных, количество выводимых записей, способ и направление сортировки, по состоянию (опубликованные и т.д.);
  • Виджет Соседние записи.
    • просто вывод ссылок;
    • добавить возможность выбора только из текущей категории.
  • Виджет Похожие записи.
    • выбор количества выводимых записей, способ и направление сортировки.
    • добавить выбор критерии схожести: теги, релевантность.
  • Виджет Архив записей.
    • просто вывод ссылок по месяцу и году;
    • выбор количества выводимых записей.
  • Виджет Обсуждения (последние комментарии к записям).
  • Виджет Теги.
    • выбор количества выводимых записей, способ и направление сортировки.

Опросы

  • Потрачено.

Доп. поля

  • 2018-07-14 Реализованы доп.поля для Записей, категорий, пользователей.

Динамический фильтр записей

  • Ничего не сделано, но должно быть на vue.js.

Требования

Во время установки производится проверка по минимальным требованиям:

  • ✓ PHP >= 7.3.0
  • ✓ PDO mySql/MariaDB
  • ✓ OpenSSL
  • ✓ GD
  • ✓ Fileinfo
  • ✓ Mbstring
  • ✓ Tokenizer
  • ✓ Ctype
  • ✓ JSON
  • ✓ XML
  • ✓ ZLib

Установка BixBite

Данный раздел предназначен прежде всего для новичка, который не знаком с менеджерами пакетов, такими как Node и Composer или по каким-то причинам сталкивался с проблемами по их использованию. Для остальных:

composer create-project russsiq/bixbite blog -s dev

Установка BixBite на локальном хостинге

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

Необходимый набор инструментов

Предостережение: выполняйте установку программного обеспечения и команды только поэтапно, не выполняйте всё разом! Не забывайте перезагрузить операционную систему перед пунктом Установка зависимостей пакетных менеджеров.

Ссылки на некоторые ресурсы (XAMPP, Atom) носят субъективный характер.

  • XAMPP - локальная среда веб разработки;
  • Composer - пакетный менеджер для PHP;
  • npm - пакетный менеджер node.js;
  • Atom - текстовый редактор с поддержкой управления Git.

Небольшой список рекомендуемых пакетов для редактора Atom: atom-beautify, atom-ide-ui, docblockr, emmet, file-icons, highlight-selected, ide-php, language-blade, html-to-css, language-vue.

Словари русского языка, необходимые для пакета spell-check редактора Atom, доступны в архиве формата *.oxt по ссылке. После скачивания расширения, которое предназначено для LibreOffice, откройте его архиватором и извлеките необходимые файлы: ru_RU.aff, ru_RU.dic. В настройках Packages -> Spell Check укажите директорию, содержащую извлеченные файлы словарей в пункте Locale paths. Там же укажите значение en-US, ru-RU в пункте Locales.

Настройка виртуального хостинга XAMPP

Нам нужно настроить виртуальный хост XAMPP, чтобы корректно задать корневую директорию проекта Laravel, а также назначить имя проекту, по которому мы будем обращаться через браузер.

Откройте файл C:\xampp\apache\conf\extra\httpd-vhosts.conf и добавьте следующую запись виртуального хоста в этот файл:

<VirtualHost blog.local:80>
    DocumentRoot "C:\xampp\htdocs\blog\public"
    ServerAdmin blog.local
    <Directory "C:\xampp\htdocs\blog">
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Откройте файл C:\Windows\System32\drivers\etc\hosts и добавьте следующую запись в этот файл:

127.0.0.1 blog.local

Установка зависимостей пакетных менеджеров Composer и Node

Запустить командную строку с правами администратора, выполнить:

cd C:\xampp\htdocs
composer create-project russsiq/bixbite blog -s dev
cd blog
npm install --no-bin-links

При появлении запроса Do you want to remove the existing VCS (.git, .svn..) history? [Y,n]?, выбрать n для сохранения системы контроля версий. Аргумент --no-bin-links необходим при использовании операционной системы Windows.

При возникновении сложностей на данном этапе выполнить команды:

npm i -f
npm i -g cross-env
npm i -g webpack@latest
npm audit fix

Создание БД и установка системы

Создать БД http://localhost/phpmyadmin/ с кодировкой utf8_unicode_ci. Перейти по ссылке http://blog.local/ и следовать инструкциям мастера установки. На завершающем этапе при использовании на локальном хостинге рекомендуется выставить галочку Заполнить тестовыми данными и снять Использовать оригинальную тему.

Важно При первом посещении админ. панели выполните настройки системы и модулей и обязательно Комплексную оптимизацию.

По завершению установки узнать название вашей темы, располагающейся в директории /resources/themes/. Как правило, название темы - транслитерированное название сайта. Тему default можете удалить, дабы не вводила в заблуждения.

Подготовка файлов

Отредактировать файлы:

  • .htaccess - прежде всего переадресация на протокол https, если таковой будет использоваться. Добавить в исключения верификационные файлы поисковых систем (yandex, например) или социальных сетей (pinterest, например) - это всегда можно выполнить позже.
  • robots.txt - разрешить доступ поисковым роботам к директории public вашей темы, заменив {theme} на название вашей темы, а {site} на ваш домен, с учетом будущего протокола.
  • webpack.mix.js - при использовании иконочных шрифтов, отличных от указанных, установить их предварительно и указать пути к ним для копирования по подобию как это сделано для font-awesome.

На localhost для настройки почтового клиента воспользуйтесь сервисом Mailtrap:

  • создайте почтовый ящик в данном сервисе;
  • в настройках во вкладке SMTP Settings в выпадающем списке выберите PHP -> Laravel;
  • скопируйте каждую из строк предложенных настроек в файл .env корня сайта.

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

Пример настроек, предлагаемых сервисом Mailtrap:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=секретные_буквы_цифры
MAIL_PASSWORD=секретные_буквы_цифры
MAIL_FROM_ADDRESS=from@example.com
MAIL_FROM_NAME=Example

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

APP_DEBUG=true
APP_ENV=dev

Персонализация тем

... или гремучая смесь "зоопарка технологий".

Выполнить в командной строке npm run watch – это есть запуск наблюдения за изменениями файлов в /resources/themes/{theme}/assets/. Чтобы прервать наблюдение можете использовать сочетание клавиш Ctrl+C.

Отредактировать тему. Редактируем, редактируем, сутки, вторые, третьи.

По завершению редактирования выполнить npm run prod для сжатия и компиляции стилей и скриптов.

Перенос дистрибутива на shared хостинг

Для переноса воспользуйтесь функционалом Ассистента приложения:

  • перейдите в раздел Архивация, подраздел Создать резервную копию;
  • выберите необходимые опции;
  • нажмите Далее.

В директории storage/app/backups будет создана резервная копия вашего приложения.

Перенесите её на хостинг, распакуйте и переместите в директорию storage/app/backups вашего хостинга.

Повторно выполните установку приложения на сервере вашего хостинга. В заполнении БД фиктивными данными, на этот раз, нет необходимости. На завершающем этапе выбрать созданную вами тему.

При первом посещении админ. панели выполните настройки системы и модулей и обязательно Комплексную оптимизацию.

Для восстановления резервной копии БД воспользуйтесь функционалом Ассистента приложения:

  • перейдите в раздел Архивация, подраздел Восстановление из архива;
  • выберите только одну опцию Дамп базы данных;
  • нажмите Далее.

После восстановления резервной копии БД выполните Комплексную оптимизацию в разделе Очистка Ассистента приложения.

После восстановления резервной копии БД, возможно, потребуется повторная авторизация в системе.

Тестирование

Для успешного запуска тестов обязательным пунктом является очистка кэша конфигурации приложения. Нижеуказанные в этом разделе команды уже включают в себя предварительную очистку данного кэша. Повторное же кэширование конфигурации не предусмотрено этими командами.

Для запуска тестов используйте команду:

composer run-script test

Для запуска тестов под Windows 7 используйте команду:

composer run-script test-win7

Для формирования agile-документации, генерируемой в HTML-формате и записываемой в файл tests/testdox.html, используйте команду:

composer run-script testdox

Несколько англоязычных абзацев о фреймворке Laravel

Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects.

Laravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework, making it a breeze to get started learning the framework.

If you're not in the mood to read, Laracasts contains over 1100 video tutorials on a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library.

Лицензия

BixBite - программное обеспечение с открытым исходным кодом, распространяющееся по лицензии MIT.

About

BixBite - система для оперативного развертывания простейших сайтов на shared хостингах на базе Laravel. Стадия разработки - потыкать, пощелкать.

Topics

Resources

License

Packages

No packages published
You can’t perform that action at this time.