Jump to content

Я вернулcя в Webdev и начал делать новую разработку - Flextype


Recommended Posts

Доброго времени суток!

После 8 лет работы в вебдеве я ушел из него и вообще от программерской деятельности в сентябре 2017-го, но вот сейчас ко мне обратился один фотограф, который попросил сделать для него сайт портфолио, я согласился. Посмотрев на разные движки, и особенно WP. Понял что все эти тяжелые движки не годятся - боль от их использования. Решил взять наработки с моей Монстры и Фансоро и стартовал новый проект Flextype!

Flextype - это новая генерация движка Monstra и Fansoro. Flextype максимально простой и расширяемый движок, практически любую задачу можно будет реализовать плагинами, так как движок предоставляет потрясающе простое API для разработчиков плагинов и тем оформлений. Страницы в Flextype - это простые файлы написанные с использованием YAML и Markdown синтаксиса, которые хранятся в папке: /site/pages

Ключевые особенности движка Flextype: 

ПРОСТОТА 
Система очень простая в установке, обновлении и использовании! Достаточно просто скопировать файлы движка на сервер и это все!

СКОРОСТЬ
Flextype очень легкий и быстрый движок!
Никакой базы данных, только файлы!

РАСШИРЯЕМОСТЬ
Плагины, Темы, Шорткоды и многие другие вещи позволяют легко расширять сайт!

MARKDOWN СИНТАКСИС
Вы можете использовать любой редактор для редактирования страниц используя Markdown синтаксис.

ДИНАМИЧНЫЙ ТИП КОНТЕНТА
Flextype позволяет создавать страницы практически любой сложности. Благодаря YAML страницы могут иметь любые необходимые поля!

СВОБОДНОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Flextype - это свободное программное обеспечение с открытым исходным кодом и распространяется под лицензией MIT!

C помощью Flextype можно создать:
- сайт визитку
- домашнюю страничку
- сайт-портфолио
- лендинг-страницы
- блог

Но на самом деле применение Flextype не ограничивается тем, что перечислено выше. Так как это универсальная CMS, которая легко расширяется плагинами!

Цели на ближайшее будущее:
- Улучшить ядро движка, рефакторинг, новые фичи и умное кеширование.
- Улучшить юзабилити сайта движка и улучшить документацию.
- Сфокусироваться на разработке плагинов и тем оформлений.
- К релизу 1.0.0 выпустить стабильный плагин Админки.

Официальный сайт: http://flextype.org

Организация на GitHub: https://github.com/flextype

Цель Создания топика:
- Привлечение разработчиков к Open Source проекту.
- Оценка Flextype: критика, пожелания, предложения.

  • Like 1
Link to post
Share on other sites

Дорогие Друзья!

Открылся сайт и форум русского сообщества Flextype! 
Сайт: http://flextype.ru
Форум: http://forum.flextype.ru

p.s.
сайт в процессе перевода и наполнения

Link to post
Share on other sites
  • 2 months later...

Flextype 0.5.0  

Новая версия Flextype более гибкая и расширяемая! 
Идем по пути разделения функционала на компоненты и плагины - это позволит не загружать CMS ненужным функционалом из коробки и позволит собрать систему индивидуально для своего проекта!

На сегодняшний день уже разработано 25 плагинов! 
GitHub: https://github.com/flextype-plugins

Изменения в Flextype 0.5.0:
- Удалена директория site/data
- Удалена директория site/accounts
- Удалена директория site/cache
- Удалена директория site/blocks
- Удалена директория site/logs
- Константы accounts, blocks, data - удалены
- Flextype: добавлен новый метод setSiteConfig()
- Flextype: добавлен новый метод setErrorHandler()
- Content: добавлен новый метод initParsers()
- Content: функционал для Blocks удален - используем Block плагин.
- Content: функционал Section - удален - используем Section плагин.
- Content: функционал Site Url - удален - используем Site Url плагин.
- Content: функционал Registry - удален - используем Registry плагин.
- Content: Markdown парсер больше не создает самостоятельно ссылки
- Content: удален метод registerDefaultShortcodes() 

Новость на офф. сайте: http://flextype.org/blog/flextype-0-5-0-release

Link to post
Share on other sites
  • 2 weeks later...

 

Flextype 0.6.0 

В новой версии Flextype было принято решение отказаться от Markdown разметки и вынести Markdown парсер в отдельный самостоятельный плагин. Теперь страницы можно без проблем оформлять с помощью нативного HTML + Flextype Shortcodes (по типу WP Shortcodes). Если есть необходимость какой-то текст обработать каким либо специфическим парсером - это легко сделать, подключив плагин ?

На сегодняшний день уже разработано более 30-ти плагинов! ? 
GitHub: https://github.com/flextype/plugins

Изменения в Flextype 0.6.0: 
- Content: Markdown(Parsedown) удален! 
- Theme Simple: Cross-site scripting фиксы! 
- Улучшения в главном .htaccess 
- Рефакторинг кода.

Новость на офф. сайте: http://flextype.org/blog/flextype-0-6-0-release

Планы на Июнь:

Улучшения ядра системы и разработка плагинов. Множество простых но полезных плагинов уже сделано и еще предстоит сделать. Каждый разработанный плагин помогает понять слабые и сильные стороны системы, которые должны быть улучшены. Другая важная часть - это "документация". Хорошая документация позволит привлечь сторонних разработчиков плагинов и тем, а это важно для Open Source проекта, которым является Flextype.

Основная цель на ближайшее время это привлечь как можно больше сторонних разработчиков в проект.

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

Если у вас есть желание сделать какой нибудь полезный плагин для Flextype и у вас нет идей какой плагин сделать, посмотрите какие плагины уже реализованы для других систем, например для Wordpress и сделайте такой же для Flextype.

 

Link to post
Share on other sites

Некоторые задают такой вопрос: 

почему такие простые плагины и почему эта функциональность не идет из коробки ?

Философия Flextype заключается в том, что ты собираешь индивидуальную систему для своей задачи, нужна админка - ставишь плагин админки, нужен блог - ставишь плагин с функционалом для блога, нужен каталог - ставишь плагин каталога и тд. Нет необходимости все и сразу включать в сборку для всех! 

Посмотрите на успешный проект Gulp - потоковый сборщик проектов на JS - в нем абсолютно все расширяется плагинами, поэтому он такой маленький и быстрый, так как человек ставит только нужный ему функционал ?

Link to post
Share on other sites

@Awilum

Тогда, возможно, стоит добавить автоматическую сборку? Типо settings.json с автоматически устанавливаемыми/обновляемыми плагинами.

Link to post
Share on other sites
3 часа назад, sigma77 сказал:

@Awilum

Тогда, возможно, стоит добавить автоматическую сборку? Типо settings.json с автоматически устанавливаемыми/обновляемыми плагинами.

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

Link to post
Share on other sites
  • 5 months later...

Доброго времени суток!

Развитие проекта все долго ждали и плагина админки еще больше!
И вот рад вам сообщить о том что я вновь вернулся к разработке проекта! 

Основные изменения по проекту:

Принято решение закрыть русский и английский форум поддержки, чтобы упростить общение, поддержку и получение информации по проекту, были выбраны две ключевые соц. площадки DISCORD и ВКОНТАКТЕ с отличным соц. функционалом и мобильными приложениями для общения!

?? АНГЛИЙСКИЙ (международный)
? DISCORD - https://discord.gg/CCKPKVG

Преимущества возможности и удобства:

1. Создание различных комнат (чатов), с различными правами доступа к ним
2. Закрепление любого количества важных сообщений (высвечиваются отдельным списком)
3. Возможность упоминать ник члена группы в важных сообщениях, и быть уверенным, что оно не потеряется в ленте...
4. Групповые и личные чаты среди участников канала в один клик на нике участника...
5. Создание ролей с различными допусками к комнатам канала...
6. Возможность дать свою оценку сообщению в чате, оставив под ним любое количество смайллов
7. Голосовой чат как общий, так и закрытый, с любым количеством участников канала!
8. Интерактивные ссылки с предпросмотром видео, изображений и анимации...
9. Синхронизация с телеграмм
10. Создание открытых, или публичных каналов используя одноразовую, или многоразовую инвайт ссылку
11. Добавление ботов в чат!

?? РУССКИЙ
? ВКОНТАКТЕ - https://vk.com/flextype

Универсальное средство для общения и поиска друзей/коллег на территории СНГ ?


Долгожданный релиз Flextype 0.7.0[0.7.1] и Admin 0.1.0[0.1.2] ?

Основные изменения в Flextype!
- Symfony YAML обновлен до версии 4.1.1
- Text Component обновлен до версии 1.1.0
- Session Component обновлен до версии 1.1.1
- Doctrine Cache обновлен до 1.8.0
- I18n Component обновлен до 1.1.0
- Token Component обновлен до 1.2.0
- Content: поле published заменено на visibility
- Plugins: теперь плагины подключаются автоматически, достаточно просто положить плагин в папку plugins!
- Plugins: добавлена возможность подключать файл settings.yaml для плагинов
- Добавлен system.yaml для системных настроек
- Themes: добавлена возможность подключать файл settings.yaml для тем оформления
- Themes: теперь конфигурация темы хранится в theme-name/settings.yaml file
- Plugins: Добавлен новый метод getLocales()
- Content: Теперь можно игнорировать парсинг шорткодов контента в методе processPage()

На официальном сайте можно будет скачать Flextype с плагином Админки и без него (http://flextype.org/download). Админка пока очень простая, но начало положено! Планов на ближайшее будущее очень много! На все это нужно время. Сайт, плагины, переводы, документация, и прочие задачи по проекту... Работы по проекту Flextype очень много и проекту нужна ваша помощь!

Flextype - проект с открытым исходным кодом и распространяется под лицензией MIT. Поддержка проекта очень важна для его роста и успеха!

Несколько способов поддержать проект:
- Создавать и поддерживать плагины.
- Создавать и поддерживать темы оформления.
- Находить баги и сообщать о них на форуме или GitHub-e.
- Стать спонсором проекта, поддержать денежкой, для оплаты хостинга, и часов разработки.

Стать спонсором проекта!
Sberbank: 5469 1300 1053 3949
QIWI: +79805359141
PayPal: abygelr@gmail.com

Спонсоры c активной ссылкой на сайт будут отображаться в разделе спонсоров и на главной странице сайта!

Link to post
Share on other sites
  • 2 weeks later...

Звезды на гитхабе помогают проекту продвигаться в результатах поиска, поэтому, Ребята, кто ещё не поставил на GitHub-е звезду для Flextype, самое время поставить звездочку вот тут: https://github.com/flextype/flextype 

Link to post
Share on other sites
  • 2 weeks later...

Дорогие Друзья!

Рад вам сообщить о выходе новой версии движка Flextype и обновленном плагине Admin (Flextype 0.7.3 + Admin 0.3.0) ?

Это серьезное обновление для Flextype! Множество новых возможностей и фиксов улучшающие стабильность и производительность системы! 

За эти 19 дней было потрачено более 100 часов на разработку и тестирование, запушено более 300 коммитов в репозитории проекта ?

Изменения в Flextype 0.7.3: 
- Flextype Компонент I18n обновлен до 1.2.0
- Flextype Компонент Filesystem обновлен до 1.1.3
- Symfony YAML Компонент обновлен до 4.2.1
- Настройки теперь хранятся в одном settings.yaml файле
- Content: добавлена возможность создавать скрытые страницы.

Изменения в Admin 0.3.0:
- Новая красивая админка в темном стиле! 
(светлая тема будет в след. релизах)
- Information: Страница информации отображает версию ядра и версию плагина админки
- Users: теперь будут создаваться более безопасные пароли используя php функции password_hash и password_verify
- Files manager: заменен на новый Media manager.
- Pages Manager: улучшен функционал клонирования страниц. Теперь клонируется вся папка со страницей.
- Pages Manager: исправлена бага с переименованием страниц #26 
- Pages Manager: поле ссылки удалено из таблицы с страницами
- Pages Manager: в быстрые экшена добавлена возможность просмотра страниц, ссылка открывает страницу в новом окне браузера.
- Pages Manager: улучшено отображение вложенных страниц! теперь более наглядно отображаются вложенные страницы.
- Pages Manager: исправлена бага с ссылкой на страницу по умолчанию, которая далее ломала логику работы с клонированными странницами.
- Pages Manager: исправлена бага с пустым полем template
- Pages Manager: добавлена возможность выбирать тему страниц при ее создании.
- Pages Manager: много улучшений и исправлений в функционале по работе с страницами.
- Pages Manager: Новый редактор страниц, редактор схемы (индивидуальные поля), редактор шаблона, редактор исходника страницы!
- Plugins Manager: для плагина админки выключатель отключен, но отображается.
- General: используется новые I18n 1.2.0 компонент.
- General: используется новые Filesystem 1.1.3 компонент.
- General: добавлена библиотека Gajus Dindent HTML для форматирование HTML кода, это позволяет сохранять красивый HTML после редактора!
- General: добавлен Assets Manager для Javascript 
- General: добавлен Animate.css для анимаций.
- General: Fontawesome обновлен до 5.6.0 
- General: Twitter Bootstrap обновлен до 4.1.3
- General: Codemirror добавлен для лучшей работы с кодом.
- General: es6-promise обновлен до 4.2.5
- General: popper.js обновлен до 1.14.6
- General: gulp-autoprefixer обновлен до 6.0.0
- General: добавлена система отображения оповещений #41 
- General: добавлена валидация форм jquery.form-validator.js
- General: добавлено форматирование YAML файлов при их сохранении.
- General: много общих улучшений архитектуры и скорости!
- General: обновленная и улучшенная навигация!
- Translates: много исправлений и улучшений в переводах. 
Спасибо: Hmelex, AndiLeni, diomed

Скачать Flextype 0.7.3
https://github.com/flextype/flextype/releases/download/v0.7.3/flextype-0.7.3.zip

Скачать Flextype 0.7.3 + Admin 0.3.0
https://github.com/flextype/flextype/releases/download/v0.7.3/flextype-0.7.3-admin-0.3.0.zip

Если у вас есть предложения по улучшению Админки и Ядра системы, пишите в комментариях и на официальном DISCORD сервере: https://discord.gg/tjEHXWD

 

Link to post
Share on other sites
  • 8 months later...

Дорогие Друзья!

Flextype номинирована на лучший проект 2019-го года в категории: 
Best Flat File CMS.

CMS Critic Awards - это уникальная возможность в распространние информации о проекте Flextype и возможность роста сообщества Flextype. 

Как и любой другой проект с открытым исходным кодом, успех Flextype в значительной степени зависит вклада своего сообщества.

CMS Critic Awards помогает нам представить Flextype большему количеству людей, в том числе сторонним разработчикам плагинов, дизайнерам, которые могут помочь повысить ценность платформы и ее пользователей.

Пожалуйста, уделите немного времени, чтобы ваш голос был услышан, перейдя на CMSCritic.com и проголосовав за Flextype. Ваш голос важен для нас! 

Большое спасибо за то, что вы являетесь частью сообщества Flextype!

С уважением, 
Сергей Романенко 
Founder and Lead developer of Flextype 

Голосовать: https://www.cmscritic.com/awards/

Link to post
Share on other sites

Дорогие Друзья!

Рад вам сообщить о выходе новой версии движка Flextype 0.9.4!

Было пересмотренно ранее принятое решение о целесообразности использования JSON формата для хранения данных. Пришел к выводу, о том что JSON крайне неудобный формат для Flat File CMS. 

JSON формат только усложняет работу с контентом. Начиная с Flextype 0.9.4 — возвращаемся к работе в Jekyll подобному формату и работаем с другими форматами только по необходимости с помощью Parser. Также в Flextype 0.9.4 множество других важных изменений и улучшений, подробнее: 

Добавлено
- Flextype Core: Добавлена возможность работать с разными типами контента по требованию. Доступы - MARKDOWN, YAML и JSON парсеры.
- Flextype Core: Добавлен новый фильтр `tr` для I18nTwigExtension
- Flextype Core: Добавлен MARKDOWN, YAML и JSON парсер.
- Flextype Core: Добавлен YamlTwigExtension
- Flextype Core: Добавлен ResponseTime Middleware
- Flextype Core: Добавлен UUID (universally unique identifier) для всех записей
- Flextype Core: Добавлено сообщение для Glide если изображения не найдено.
- Flextype Core: Добавлен victorjonsson/markdowndocs для генрации API документации в формате `MARKDOWN`
- Flextype Core: Добавлен custom callable resolver, для работы с PSR-15 middlewares. 
- Flextype Core: Добавлен git commit message convention.
- Flextype Core: Добавлен AuthMiddleware глобально.
- Flextype Core: Добавлены новые настройки `debug` `charset` `cache` для шаблонизатора Twig.
- Flextype Core: Добавлено новое поле `tags`
- Flextype Core: Добавлено новое поле `datetimepicker` 
- Flextype Core: Добавлена блокировка прямого доступа к файлам .md в .htaccess
- Flextype Core: Добавлена блокировка прямого доступа к специфичиским пользовательским файлам в .htaccess
- Flextype Core: Добавлена новая опция `date_display_format`
- Flextype Admin Panel: Добавлена возможность просмотра HTML кода в Trumbowyg.
- Flextype Admin Panel: Добавлена секция tail в base.html шаблоне.
- Flextype Admin Panel: Добавлено новое собоытие `onAdminThemeFooter` в base.html шаблоне.
- Flextype Admin Panel: Добавлены новые поля в записях `published_at`, `created_at` 
- Flextype Admin Panel: Добавлена возможность записи `created_by`, `published_by` для всех записей.
- Flextype Site Plugin: Добавлена возможность рабоать с query параметрами в twig шаблонах
- Flextype Site Plugin: Добавлена возможность получения записей в формате JSON, если в конце запроса дописать `?format=json`
- Flextype Default Theme: Добавлена возможность рабоать с тегами.

Исправлено 
- Flextype Core: Исправлен баг в ShortcodesTwigExtension с null значением переменой.
- Flextype Core: Исправлена баг с выражением bind_where для Entries fetchAll метода.
- Flextype Core: Исправлена баг с выражением and_where для Entries fetchAll метода.
- Flextype Core: Исправлена баг с выражением or_where для Entries fetchAll метода.
- Flextype Admin Panel: Исправление стилей для темной и светлой темы админки.

Изменено 
- Flextype Core: Минимальная необходимая версия PHP 7.2!
- Flextype Core: JsonParserTwigExtension переименован в JsonTwigExtension 
- Flextype Core: Twig json_parser_decode переименован в json_decode
- Flextype Core: Twig json_parser_encode переименован в json_encode 
- Flextype Core: Default theme - обновлена сборка и GULP обновлен до 4
- Flextype Core: Default theme - theme.json конвертирован в theme.yaml
- Flextype Core: Default theme - settings.json конвертирован в settings.yaml 
- Flextype Core: Site entries конвертирован JSON в FRONTMATTER (MD)
- Flextype Core: Entries - используется getDirTimestamp для fetchAll метода
- Flextype Core: Entries - приватный метод `_file_location()` перименован в публичный `getFileLocation()`
- Flextype Core: Entries - приватный метод `_dir_location()` перименован в публичный getDirLocation()`
- Flextype Core: Snippets - приватный метод `_file_location()` перименован в публичный `getFileLocation()`
- Flextype Core: Snippets - приватный метод `_dir_location()` перименован в публичный `getDirLocation()`
- Flextype Core: Fieldsets - приватный метод `_file_location()` перименован в публичный `getFileLocation()`
- Flextype Core: Fieldsets - приватный метод `_dir_location()` перименован в публичный getDirLocation()`
- Flextype Core: Обновлнен.gitignore
- Flextype Core: Обновлена информация о копирайтах.
- Flextype Core: Обновлена библиотека flextype-components/filesystem до версии 2.0.6
- Flextype Core: Обновлена библиотека flextype-components/date до версии 1.1.0
- Flextype Core: Обновлена библиотека zeuxisoo/slim-whoops до версии 0.6.5
- Flextype Core: Обновлена библиотека doctrine/collections до версии 1.6.2
- Flextype Core: Обновлена библиотека slim/slim до версии 3.12.2
- Flextype Core: Обновлена библиотека respect/validation до версии 1.1.31
- Flextype Core: Обновлена библиотека monolog/monolog до версии 2.0.0
- Flextype Core: Обновлена библиотека symfony/yaml до версии 4.3.4
- Flextype Site Plugin: settings.json конвертирован в settings.yaml
- Flextype Site Plugin: plugin.json конвертирован в plugin.yaml 
- Flextype Site Plugin: en_US.json и ru_RU.json конвертированы в en_US.yaml и ru_RU.yaml
- Flextype Admin Panel: Улучшения интерфейса страницы настроек.
- Flextype Admin Panel: Улучшение интерфейса страницы установки.
- Flextype Admin Panel: Улучшение интерфейса редактора записей.
- Flextype Admin Panel: settings.json конвертирован в settings.yaml
- Flextype Admin Panel: plugin.json конвертирован в plugin.yaml 
- Flextype Admin Panel: en_US.json и ru_RU.json конвертирован в en_US.yaml и ru_RU.yaml
- Flextype Admin Panel: JS вынесен из шаблона base.html в отдельные шаблоны.
- Flextype Admin Panel: Поле `editor` переименовано в `html`

Удалено
- Flextype Core: Удалено поле записей `date`
- Flextype Admin Panel: Удалена кнопка сохранить на странице — Медиа.
- Flextype Admin Panel: Удалено большое количество неиспользуемого CSS и JS кода.

Скачать: https://github.com/flextype/flextype/releases/tag/v0.9.4

Link to post
Share on other sites
  • 2 weeks later...

Дорогие Друзья!

Рад вам сообщить о выходе новой версии движка Flextype 0.9.5!

Исправлено
- core: исправлена проблема с кешем в Entries API — fetchAll()
- core: исправлена проблема c генерацией Cache ID для Themes API
- core: исравлена пролема с emitter twig функцией
- admin-plugin: исправлены стили для кнопок Менеджера Тем
- admin-plugin: исправления переводов
- admin-plugin: исправлена ошибка возникающая если $query['format'] пустой

Рефакторинг
- core: удалена переменная $response из Forms render метода
- core: добавлена свойство forms в Flextype\EntriesController

Скачать
https://github.com/flextype/flextype/releases/tag/v0.9.5

Edited by Awilum
Link to post
Share on other sites
  • 9 months later...

Flat File CMS, что с ними не так! 

 

Flat File CMS — это система управления контентом на базе простых статических файлов. Сайт с подобной системой не использует реляционных систем управления базами данными, например MySQL.

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


Непонятно почему разработчики таких систем, думают что Flat File CMS должна работать как типичная CMS c СУБД и начинают изобретать свои велосипеды для работы с файлами так как если бы это была СУБД, по сути воссоздавая СУБД на файлах, и тем самым стреляя себе в ногу, так как разработка такой системы крайне сложна и практически бесполезна. Потому что, если необходимо, то в проект можно подключить СУБД например плагином и при этом не тратить невероятное количество человеко-часов на изобретение своей СУБД на файлах.

Подробнее в статье: https://vk.com/@flextype-flat-file-cms-i-chto-s-nimi-ne-tak

Link to post
Share on other sites
  • 3 weeks later...

Дорогие Друзья!

Рад вам сообщить о выходе новой версии движка Flextype 0.9.9!

В Flextype 0.9.9 достаточно много важных изменений определяющих — то как будет выглядеть финальная версия Flextype 1.0.0, к которой я иду уже более двух лет!

Были пересмотрены, обновлены и переписаны ключевые моменты ядра, ответственные за работу с Записями, Коллекциями, Кешем и Rest API.

Подробнее в статье: https://vk.com/@flextype-flextype-099-reliz

Большое спасибо всем за то, что вы являетесь частью сообщества Flextype!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By html__noob
      Ребята, всем доброго времени суток, выручайте, делаю свой первый сайт и понимаю ничего:) Сабж, у меня есть главная страница, index.php, на ней есть разделы-анкоры, всякие там "О компании", "Услуги" и.т.д. Менюшка сверху, соответственно, их повторяет. По клику на менюшку, страница скроллится до нужного анкора. Просто-таки шоколад. Но в чем проблема. Менюшка одинакова на всех страницах и мне надо сделать так, чтобы с других страниц по клику на пункт меню открывало мой index.php на нужном анкоре. Собсна, мои познания во всем этом очень неочень. Первое что пришло в голову, прописать в менюшке href="/index.php/#box1" вместо просто #box1, но работает криво, перекидывает на анкор, но все ломается. Нагуглить решение не удалось:( Выручайте, что делать или куда гуглить? Прикрепляю скрин своего index.php и менюшки
       
       
    • By SuperSaimon
      Добрый день! Я начал изучать этот бандл. И столкнулся с непониманием логики заполнения статических страниц на сайте (информация на которых не меняется: "о нас", "контакты" и т.д.). Возникло сразу несколько вопросов: 1. Нужно ли создавать сущности для записи в бд данных с  этих страниц? Если с другим контентом на сайте я понимаю  что надо писать в бд(товары, категории и т.д.) , то тут я в замешательстве. 2. Если на странице имеется описание чего - либо со списком, то как это записать в бд и потом отобразить в твиге? Зарание спасибо и извиняюсь за глупый вопросы, если что. 
    • By Super_Saimon
      Добрый день! Есть задание - игра в города. Нужно из бд взять перечень городов и в момент ответа компьютера или игрока сравнивать города из списка, взятого из базы. Все, вроде, понятно, но столкнулся с проблемой, что некорректно удаляются города из массива, в котором хранится список городов из базы. Я использую этот массив чтобы знать когда игра закончилась и не повторялись города в ответах. Собственно, сам код без файла с подключением в бд. Там проблем я не обнаружил, массив городов функция возвращает корректный. Но удаление уже выбранных городов - проблема, которую никак не могу решить, вернее, понять в чем суть самой проблемы. Извиняюсь что выкладываю код в таком виде, не нашел аналога jsfiddle для php

       
      session_start();
      if(!empty($_GET['restart'])) {
          unset($_SESSION['cities']);
          unset($_SESSION['answer']);
          unset($_SESSION['incorrect_city']);
          unset($_SESSION['game_over']);
          header('Location: ./form.php');
          exit;
      }
      define('HOST', 'localhost');
      define('USER', 'root');
      define('PASSWORD', '');
      define('DATABASE', 'gamecity');
      $connect = mysqli_connect(HOST, USER, PASSWORD, DATABASE);
      function getCityFromDB($dbconfig) {
          $listOfCities = "SELECT * FROM city ORDER BY city_id ASC";
          $query = mysqli_query($dbconfig, $listOfCities);
          while($res[] = mysqli_fetch_assoc($query)) {
              $cities = $res;
          }
          foreach($cities as $key => $val) {
              foreach($val as $key2 => $val2) {
                  if($key2 == 'city_name') {
                      $city[] = $val2;
                  }
              }
          }
          return $city;
      }
      if (empty($_SESSION['cities'])) {
          $_SESSION['cities'] = getCityFromDB($connect);
      }
      if(!empty($_POST['send'])) {
          if (findCity($_POST['city'], $_SESSION['cities'])) {
              if (empty($_SESSION['answer'])) {
                  $_SESSION['answer'] = firstStep($_POST['city'], $_SESSION['cities']);
                  $temp = deleteCity($_SESSION['answer'], $_SESSION['cities']);
              }else {
                  $answer = answer($_POST['city'], $_SESSION['answer'], $_SESSION['cities']);
                  if($answer) {
                      $_SESSION['answer'] = $answer;
                      $temp = deleteCity($_SESSION['answer'], $_SESSION['cities']);
                  }else {
                      $_SESSION['game_over'] = 2;
                  }
              }
              if(!$temp){
                  $_SESSION['game_over'] = 1;
              }else {
                  $_SESSION['cities'] = $temp;
              }
          }else {
              $_SESSION['incorrect_city'] = 'Некорректный город';
          }
          header('Location: /form.php');
          exit;
      }
      function firstStep($userCity, $arrayOfCities) {
          $temp = '';
          if(!empty($userCity)) {
              foreach ($arrayOfCities as $key => $val) {
                  if(mb_strtoupper(mb_substr($userCity, -1, 1, 'utf-8')) == mb_substr($val, 0, 1, 'utf-8')) {
                      $temp .= $userCity . ',' . $val;
                      return $temp;
                  }
              }
          }
          return false;
      }
      function findCity ($city, $listCities) {
          foreach($listCities as $key => $val) {
              if($val == $city) {
                  return true;
              }
          }
          return false;
      }
      function answer($city, $answer, $arrayOfCities) {
          if(mb_substr($city, 0, 1, 'utf-8' ) == mb_strtoupper(mb_substr($answer, -1, 1, 'utf-8'))) {
              $char = mb_strtoupper(mb_substr($city, -1, 1, 'utf-8'));
              foreach($arrayOfCities as $key => $val) {
                  $temp = mb_strpos($val, $char, 0,'utf-8');
                  if ($temp !== false) {
                      $answer .= ',' . $city . ',' . $val;
                      break;
                  }
              }
              return $answer;
          }
          return false;
      }
      function deleteCity($town, $cities) {
          if (count($cities) > 0) {
              $town = explode(',', $town);
              $cities = array_values($cities);
              for($i = 0; $i < count($town); $i++) {
                  for($j = 0; $j < count($cities); $j++) {
                      if($town[$i] == $cities[$j]) {
                          unset($cities[$j]);
                      }
                  }
              }
              return $cities;
          }
          return false;
      }
  • Member Statistics

    46,944
    Total Members
    1,451
    Most Online
    alexnik197
    Newest Member
    alexnik197
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Свежие Темы

  • Последние сообщения

    • Уважаемые форумчане! Спешим сообщить, что в сентябре мы запустили защиту от ботов, которая построена на базе распределенных центров очистки, что позволяет быстро отвести трафик для очистки, отрезать нелегитимный и так же быстро вернуть легитимный трафик на Ваш сайт. Вы платите только за чистый трафик, полученный на защищенные сайты. Движок защиты от ботов выполняет анализ поведения посетителя сайта, формирует его «цифровой отпечаток» и сохраняет результаты проверки в базе данных. База данных содержит миллионы цифровых отпечатков браузеров, что позволяет нам быстро и с большой точностью идентифицировать большинство ботов и хакерских атак. База данных формируется динамически, а также постоянно расширяется исследовательской командой и специалистами по безопасности. Для большинства посетителей вашего сайта ничего не изменится, они будут посещать ваш сайт как обычно. Благодаря чему Вы получаете: * Снижение нагрузки на сервер; * Улучшение SEO; * Точную веб аналитику; * Защиту от взлома и спама; * Защиту от кражи контента и влияния конкурентов. Зарегистрироваться и заказать услугу несложно: кликните на странице https://m-hoster.com/guard.php на кнопку "Сделать заказ!" Так же рекомендуем прочитать FAQ по данной услуге - https://m-hoster.com/billing.php?do=faq&group=10 Приятной Вам работы, будьте всегда защищены. С уважением, команда M-Hoster.com
    • Обрыв соединения с сервером. Трассировка и пинг «Ааа, помогите, все пропало!» – если ваш внутренний голос реагирует на обрыв соединения с сервером примерно так, этот материал точно для вас. :) Безусловно, со своей стороны мы каждый день делаем все возможное, чтобы ничто не мешало вашей работе в облаке, но случись форс-мажор – будем разбираться. А чтобы быстрее сориентироваться в ситуации и понять, на чьей стороне ошибка, вот вам задача-минимум – во время обрыва первым делом выполните трассировку маршрута и пинг промежуточных узлов. Как все это сделать читайте в нашей статье.  
    • https://webref.ru/css/value/media
  • Popular Contributors

    Nobody has received reputation this week.

×
×
  • Create New...