Обновить
341.92

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга

Всех приветствую! Вышел релиз MoonShine 2.18.0 (админ-панелm для Laravel) с кодовым названием “Mango Tango”. 🌙

Подробности в статье.

Давайте кратко расскажу что нового:

  • @dissnik добавил режим sticky для таблиц ресурса.

class PostResource extends ModelResource { 
  // ...
  protected bool $stickyTable = true; 
  // ...
}
  • Появилась возможность заменить шаблонную заглушку аватара профиля на свою

Profile::make()->defaultAvatar("https://ui-avatars.com/api/?name=$name")
  • Большие улучшения для импорта и экспорта Просто взгляните на пример трансформации enum в строку при экспорте и обратно при импорте

Enum::make('Enum') 
    ->attach(ColorEnum::class) 
    ->useOnImport(fromRaw: static fn(string $raw, Enum $ctx) => ColorEnum::tryFrom($raw))
    ->showOnExport(modifyRawValue: static fn(ColorEnum $raw, Enum $ctx) => $raw->value)
  • @djnew добавил режим поиска для компонента Dropdown

Dropdown::make()->searchable()->searchPlaceholder('Search...')
  • asyncSearch с флагом для замены query builder

Чтобы asyncSearchQuery полностью заменял билдер

asyncSearch(asyncSearchQuery: fn($q) => $q->where(..., ...), replaceQuery: true)

Рубрика BugBusters 🐛

  • Метрики на небольших экранах

  • Скролл в сайдбаре

  • Метод onBoot

Новости MoonShine 3.0

  • Ядро уже почти готово

  • Прошли тесты на реальном проекте с пакетом tenancy (с выходом 3 версии нас ждет новая демка)

  • Сейчас идут тесты интеграции MoonShine в Symfony

  • После Symfony переходим на фичи 3.0, документацию и всякое вкусное к релизу

Теги:
Всего голосов 5: ↑4 и ↓1+5
Комментарии3

Запустили серию интервью в преддверии Ural Digital Weekend 2024. Приглашаем в гости спикеров и организаторов, рассказываем про их опыт и делимся секретами подготовки конференции.

В первом выпуске встретились с Еленой Березкиной, руководителем проектов в GreenData и членом Программного комитета секции «Управление разработкой» UDW2024. Ссылка на интервью: https://www.youtube.com/watch?v=olVhzLFILWY

Лена делится своим опытом в организации сообщества project-менеджеров в Перми, раскрывает секреты комфортной работы в команде и рассказывает о программе конференции.

Билеты для посещения конференции уже могут приобрести все желающие на сайте Ural Digital Weekend 2024 — https://ural-digital-weekend.ru/. А по промокоду BEREZKINAGIFT10 можно получить приятную скидку.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Вышла новая версия Quantum Manager - популярного медиа и файлового менеджера под Joomla 4/5. Отличительной особенностью данного релиза является включение в ядро дистрибутива библиотеки lib_fields (ранее тянулась из внешнего источника при установке), а также интеграция с AcyMailing (компонент для e-mail рассылок). Также исправлены некоторые ошибки.

Что нового?

  • [добавлено] - Интеграция с AcyMailing. Это компонент для e-mail рассылок. Теперь можно при формировании писем вызывать медиа поле с Quantum.

  • [изменение] - Библиотека lib_fields, теперь часть пакета. Это позволит поставить компонент локально, без Интернет, а также решает проблему блокировки Github в
    некоторых регионах.

  • [исправлено] - Создание пустых папок при открытии менеджера, когда добавлялась область "Директория поля».

  • [исправлено] - Отображение название областей в конфигурации.

  • [добавлено] - Показывается id наименование области в конфигурации.

Quantum Manager работает на Joomla 4 и Joomla 5 (без плагина обратной совместимости), проверен на PHP 8.2+ и полностью бесплатен.

Работа с Quantum Manager
Работа с Quantum Manager

Ссылки:

Также добро пожаловать в Телеграм чат Joomla для профессионалов.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Некоммерческий удостоверяющий центр Let's Encrypt объявил о переходе на использование NTP-сервера ntpd-rs на языке Rust. Проект распространяется под лицензиями Apache 2.0 и MIT, полностью поддерживает протоколы NTP и NTS (Network Time Security) на уровне клиента и сервера, и может использоваться в качестве замены NTP-серверам chrony, ntpd и NTPsec.

Пакет ntpd-rs разработан в рамках проекта Prossimo, развивающегося под эгидой организации ISRG (Internet Security Research Group), которая является учредителем Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета. Помимо ntpd-rs проект также ведёт разработку TLS-библиотеки Rustls, DNS-сервера Hickory, обратного прокси River, утилиты sudo-rs и компонентов для ядра Linux на языке Rust.

Использование ntpd-rs повысит защищённость инфраструктуры Let’s Encrypt и снизит вероятность появления уязвимостей, вызванных ошибками при работе с памятью. Кроме того, безопасность и надёжность системы синхронизации точного времени важна, так как манипуляции злоумышленников с установкой неверного времени могут использоваться для нарушения безопасности протоколов, учитывающих время, таких как TLS и интерпретации данных о действии TLS-сертификатов.

Let's Encrypt ежедневно генерирует более четырёх миллионов новых сертификатов. Число активных сертификатов составляет 372 млн (сертификат действует три месяца).

Источник: OpenNET.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Согласно исследованию экспертов «МегаФона» и «Яндекс Браузера», свыше 70% фишинговых ссылок в сети приходится сегодня на поддельные сайты компаний, сервисов инвестиций и известных брендов. Большой популярностью у мошенников также пользуется создание фейковых розыгрышей призов и конкурсов, рассказали Хабру в «Яндексе».

По данным профильной аналитики, более 60% выявленных за полгода фишинговых ресурсов имитируют интерфейсы популярных сервисов для инвестиций. Ещё 10% — это фейковые веб-сайты, маскирующиеся под известный бренд или компанию. При этом злоумышленники часто используют доменное имя, схожее с настоящим адресом, например: www.[название бренда].id4007[.]ru.

Остальные 30% фишинговых сайтов относятся к различным категориям. Специалисты по ИБ часто обнаруживают сайты, имитирующие соцсети, ресурсы с призывом проголосовать за друзей, фейковые сайты по продаже билетов на массовые мероприятия, а также поддельные ссылки под видом личного кабинета онлайн-банков и государственных порталов. Кроме того, мошенники часто создают сайты по обмену криптовалюты и с несуществующими розыгрышами призов.

Аналитики «МегаФона» и «Яндекс Браузера» отметили, что активным каналом распространения фишинговых ссылок являются электронные письма и мессенджеры, через которые мошенники устраивают спам-атаки. 

Ранее «МегаФон» и «Яндекс Браузер» запустили проект по обмену найденными фишинговыми ссылками. Специалисты обеих компаний ежемесячно отрабатывают список из нескольких тысяч подозрительных ресурсов.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии2

WT CDEK library для Joomla

Скриншот настроек в плагине. Joomla 5.1.
Скриншот настроек в плагине. Joomla 5.1.

Небольшая нативная PHP Joomla библиотека для работы с API службы доставки CDEK. Пакет состоит из плагина для хранения настроек, PHP-библиотеки и виджета карты для выбора пунктов выдачи заказа. Поддерживается Joomla 4.2.7 и выше.

Библиотека представляет собой клиент для подключения и авторизации в API CDEK и несколько методов для работы с ним с предварительной проверкой структуры данных, а также обработку ошибок при запросе. Для работы с библиотекой под рукой необходимо иметь официальную документацию CDEK API.

Данное расширение предназначено для Joomla-разработчиков. Они могут использовать его в качестве зависимости при разработке своих расширений для Joomla. Pull Requests welcome со стороны Joomla разработчиков!

В составе библиотеки методы для получения списка ПВЗ, регионов, городов, 2 метода для расчета стоимости доставки и другие.

Виджет выбора типа доставки от CDEK (карта с выбором ПВЗ)

В состав библиотеки включен виджет карты ПВЗ последней на данный момент версии: 3.10.2. Javascript виджета оформлен как Joomla Web Asset. В своём коде подключаем его с помощью WebAssetManager.

По умолчанию в комплекте с виджетом идёт файл service.php, который является точкой входа для ajax-запроса. В данной библиотеке функционал этого файла (получение списка ПВЗ и калькуляции тарифов) перенесён в системный плагин Joomla.

Страница расширения и примеры кода.

GitHub репозиторий WT CDEK Library

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии2

«Сбер» обновил стартовую страницу для входа в веб‑версию приложения «СберБанк Онлайн» и добавил ещё один способ входа — по номеру карты. Это упрощает процедуру работы с сервисами «Сбера» для тех пользователей, кто периодически забывает свой логин и пароль.

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

Кроме того, сам вид стартовой страницы веб‑версии стал более лаконичным, простым и удобным. Вместо кнопок «Изменить пароль» и «Восстановить доступ» появилась одна кнопка «Забыли логин или пароль?», которая ведёт на восстановление доступа по номеру карты или логину.

Ксения Баринова, директор дивизиона «СберБанк Онлайн» Сбербанка:

«Мы развиваем не только мобильное приложение, но и веб-версию "СберБанк Онлайн". Сегодня веб-версией ежемесячно пользуются 5,5 млн человек, поэтому мы продолжим улучшать её, чтобы всем нашим клиентам было удобнее и проще получать доступ к привычным сервисам с телефона, компьютера или планшета».

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии3

Разбор доклада Артёма Арутюняна про Архитектуру и Реактивное Программирование

Топ перлов:

  • Реактивное программирование - это программирование на событиях.

  • Реактивность нужна между модулями, а внутри - не нужна.

  • По одному лишь графу связей можно понять правильно произведена декомпозиция или нет.

Мета: Копилка благодарностей, Новости, Форум

Теги:
Всего голосов 7: ↑4 и ↓3+1
Комментарии9

WT Telegram bot - отправка данных из Joomla в Telegram-бота

Вышел комплект плагинов WT Telegram bot, состоящий из 2-х плагинов:

  • WT Telegram bot - основной плагин

  • WT Telegram bot - Content - плагин для материалов Joomla

Плагин WT Telegram bot. Служит для отправки данных в Telegram. В его параметрах указываются токен Telegram API и основной chat id / channel id, куда бот будет отправлять сообщения. Данный плагин сам по себе бесполезен, если вы не Joomla-разработчик. Разработчики могут создавать плагины-провайдеры, которые будут отправлять сообщения с нужными данными. Также разработчики могут отправлять другие chat id в коде, кроме основного. В базе данных хранится таблица связей отправленных сущностей Joomla и id сообщений для каждого чата, что может оказаться полезно при разработке собственных расширений.

Документация и скачать

WT Telegram bot - Content. Плагин позволяет отправлять в Telegram чат или канал материалы из интерфейса Joomla. На данный момент вручную с помощью кнопки на тулбаре в списке статей или при редактировании статьи. Для его работы необходим первый плагин

Документация и скачать

Оба плагина бесплатные. Системные требования: Joomla 4.3+ PHP 8+.

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Приветствую вас, муншайнеры!?

Сегодня мы зарелизили важный патч. Давайте поговорим о том что изменилось

  1. HasMany оптимизирован и теперь страницы где он присутствуют будут работать на 200% быстрее (к сожалению был не очень приятный артефакт из-за которого мы хранили в памяти все формы элементов)

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

  3. Важно Number больше не наследует Text но его поведение не поменялось, тоже самое касается Date и Range

Важно Сегодня в 19-00 по мск будет стрим по нашему любимому MoonShine! Всех жду: https://youtube.com/live/ssxmIDdFv8Y?feature=share

По традиции поговорим про 3 версию MoonShine и я покажу новую структуру проекта, а также взглянем и обсудим последние релизы и патчи.

Также расскажу про курс API который давно ждут, объясню с чем связана задержка и будет ли он.

Теги:
Всего голосов 4: ↑3 и ↓1+5
Комментарии0

Стоит ли становиться тимлидом?

Привет, на связи Spectr! Опубликовали запись круглого стола «Стоит ли становиться тимлидом?» с митапа DevTalks.

Получится отличный круглый стол и очень полезная и конструктивная дискуссия. И вот почему:

  • очень крутая модерация круглого стола Виктором Корейша;

  • очень классный состав участников в разрезе ролей, который позволил рассмотреть вопрос с разных сторон: CTO, ТимЛид, руководитель отдела и рядовой разработчик;

  • очень вовлеченный в дискуссию зал: было очень много полезных комментариев и взглядов;

  • благодаря вовлеченности зала смогли посмотреть не вопрос еще и в разрезе разных компаний и отраслей: мнения людей из ИТ-гигантов и от представителей аутсорс-разработки.

Какими качествами должен обладать тимлид? Как проходят собеседования на должность руководителя? Как все успеть и не растерять навыки разработчика? На эти и многие другие вопросы ответили:
— Виктор Корейша (Ozon, руководитель отдела MessageBus и Storage; ведущий подкаста о жизни в IT «Кода кода»)
— Максим Харитонов (Ozon, руководитель группы разработки Storage)
— Никита Ильин (Spectr, backend-разработчик)
— Олег Казаков (Spectr, CTO)

Теги:
Всего голосов 3: ↑3 и ↓0+5
Комментарии1

Во Vue 3 есть важная и нередко используемая конструкция, у которой нет имени. Это то, что обычно называют "композабл с глобальными рефами".

Но:

  1. Это не композабл по определению

  2. Там не обязательно рефы

  3. Они не "глобальны"

В общем случае структура данного объекта - экспортируемые из ES модуля реактивные данные и функции для работы с ними.

Функционально они заменяют "сторы" Pinia. Называть их тоже stores - двусмысленно и нелогично. Вообще, молиться на "глобальный стейт" после появления идеи JavaScript signals и их всевозможных реализаций, включая Vue Reactivity API, архаично.

Мне кажется, самое подходящее название для данной конструкции - [реактивный] бизнес объект (РБО) или Vue Business Object (VBO). В них инкапсулируется логика предметной области и приложения, они не привязаны к конкретным компонентам, и по аналогии с другими языками и фреймворками, этот паттерн - Business Object, - выглядит вполне подходящим.

Техническая реализация может быть через ES классы, ES модули, closures, Pinia stores, с использованием singleton или DI.

Кроме того, позиционирование именно как "бизнес объект" будет требовать явного отделения от него презентационного и инфраструктурного слоев - работы с Backend API, например. То есть, стимулировать использование лучших практик и наработок из других сфер разработки ПО, еще более переводя Vue.js из фреймворка для небольших проектов в разряд enterprise level решений.

--------------

Telegram-канал о Vue и фронтенд-разработке: @vuefaq и вебсайт: Vue‑FAQ.org.

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Генератор плагина для Joomla 4 и Joomla 5

Данный генератор для Joomla-разработчиков помогает создать болванку плагина по структуре файлов и классов Joomla 4 и Joomla 5. Создаётся сервис-провайдер, основной класс плагина, языковые файлы для русского языка.

Созданный плагин будет не совместим с Joomla 3. Также автор генератора предупреждает, что версия Joomla 4 должна быть не ниже 4.4.4, хотя судя по генерируемому коду всё должно быть ОК. В любом случае разработчик разберется что с этим делать и может сэкономить время.

Генератор болванки плагина для Joomla 4 / Joomla 5

Также добро пожаловать в Telegram-чат русскоязычного Joomla сообщества

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

Ближайшие события

Google Firebase сдался и добавил в свои сервисы SQL базу данных (облачную PostgreSQL) в форме Firebase Data Connect.

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

Вряд ли Google с такими политиками сможет конкурировать с Supabase.На данный момент это две основные площадки, с которыми фронтендер или мобильный разработчик может без излишних усилий сделать удобный облачный бэкенд, как без логики (просто CRUD доступ), так и с ней (Functions), и оставаясь в рамках стандартов (не сильно привязываясь к проприетарным решениям сервисов).

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Привет всем! ?

Сегодня в 19:00 (мск) у нас запланирован стрим по Moonshine. Обсудим обновления и изменения за последний месяц, а также покажу как проходит работа по MoonShine v3.

Если у вас есть какие-либо вопросы или комментарии по MoonShine, можете задать их сейчас.

Заходите - https://www.youtube.com/watch?v=bM-rgGFnO88 . Будет интересно!

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

10 мая 2024 года Cloudflare представила второй публичный релиз открытого проекта Pingora v0.2.0. Это асинхронный многопоточный фреймворк на Rust, который помогает создавать прокси-сервисы HTTP. Проект используется для создания сервисов, обеспечивающих значительную часть трафика в Cloudflare (вместо применения Nginx). Исходный код Pingora опубликован на GitHub под лицензией Apache 2.0.

Pingora предоставляет библиотеки и API для создания сервисов поверх HTTP/1 и HTTP/2, TLS или просто TCP/UDP. В качестве прокси-сервера он поддерживает сквозное проксирование HTTP/1 и HTTP/2, gRPC и WebSocket. (Поддержка HTTP/3 — в планах). Pingora также включает в себя настраиваемые стратегии балансировки нагрузки и аварийного переключения. Чтобы соответствовать требованиям и безопасности он поддерживает как широко используемые библиотеки OpenSSL, так и BoringSSL, которые соответствуют требованиям FIPS (федеральных стандартов обработки информации США) и пост-квантового шифрования.

Изменения в новой версии:

  • добавлена поддержка установки фильтров для дополнительных заголовков HTTP/2;

  • добавлена возможность изменения размера буфера входящих пакетов для TCP;

  • добавлена функция body_bytes_read();

  • добавлен фильтр cache_not_modified_filter;

  • добавлена возможность ведения лога TLS-ключей;

  • добавлена callback-функция purge_response.

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

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии0

Профессиональный плагин формы обратной связи Radical Form совместим с Joomla 5

Профессиональный плагин-обработчик форм обратной связи Radical Form получил совместимость с Joomla 5 с релизом 3.1.5. Особенность плагина в том, что он позволяет отправлять абсолютно любые формы: стандартные callback формы, квизы, опросы и т.д., но не предоставляет готового фронтенда.

Такой подход предоставляет разработчикам практически неограниченную гибкость в разработке, но при этом требует от них определенного уровня знаний и умений. Radical Form даёт возможность сторонним разработчикам обрабатывать данные форм в момент отправки с помощью плагинов, что позволяет очень удобно и быстро интегрировать его со сторонними сервисами. Для плагина существуют сторонние плагины для интеграции Radical Form с Битрикс 24 и AmoCRM.

Разработчик Radical Form - @progreccor

Страница расширения GitHub расширения

Также добро пожаловать в Telegram-чат русскоязычного Joomla-сообщества

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии0

? Вышел релиз MoonShine v.2.13.0 с кодовым именем "Red Velvet"!?

Напомню, что MoonShine это open-source админ-панель для проектов на Laravel.

Давайте взглянем на самое интересное в этом обновлении!

Возможноcть изменить query builder у HasMany

HasMany::make()->modifyBuilder(fn(Builder $q) => $q->where('active', 1));

Улучшения для BelongsTo/BelongsToMany полей

Получение значений для BelongsTo/BelongsToMany полей приведено к единому виду и теперь для них всегда доступен valuesQuery и при большом запросе вы сможете самостоятельно его оптимизировать

BelongsTo::make(
    __('moonshine::ui.resource.role'),
    'moonshineUserRole',
    formatted: static fn (MoonshineUserRole $model) => $model->name,
    resource: MoonShineUserRoleResource::class,
)
    ->valuesQuery(fn(Builder $q) => $q->select(['id', 'name']))

Обновилось поле MoonShine Layouts

  • Исправлена проблема ререндера предыдущих шаблонов

  • Исправлена проблема исключения декораций

Еще ряд изменений:

  • Логотип на 404 странице теперь выводится из конфига и если есть желание вывести на 404 логотип отличающийся от дефолтного, то воспользуйтесь ключом logo404

  • Исправили реактивность внутри HasOne/HasMany

  • Исправили morphMap для морф полей

  • Исправили удаление файла при замене и удалении

Сайт MoonShine - https://moonshine-laravel.com

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Apple подготовила свой сайт к предстоящему «специальному мероприятию» под названием Let loose, которое состоится 7 мая и сопровождается рисунком Apple Pencil, что позволяет предположить, что в центре внимания будет обновлённые iPad Air, iPad Pro и аксессуары для планшетов, включая Magic Keyboard и стилус Apple Pencil с новым жестом сжатия с тактильной обратной связью.

В рамках этого ивента на сайте Apple курсор мышки — это ластик, которым пользователь может стирать разноцветные вариации фигур, вписанных в логотип Apple.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии1

Обновление модуля WT Quick links v.2.2.0 для Joomla 4 / Joomla 5

Модуль позволяет создавать быстрые наборы элементов: ссылки на различные сущности на сайте Joomla: категории материалов, Virtuemart, JoomShopping, пункт меню или пользовательскую ссылку. Есть условия для исключений показа элементов списка.

Вы можете создавать собственные макеты вывода модуля, создавая таким образом почти всё, что угодно: от простого списка ссылок до стены фотографий на главную страницу или ссылки-теги для перелинковки категорий интернет-магазина. Модуль позволяет выводить изображения, адаптивные изображения, видео, адаптивные видео. Также это могут быть не только ссылки, но и список вопросов FAQ, элементы Bootstrap Tabs, Accordion и т.д.

v.2.2.0 Что нового?

  • Атрибут Onclick. Добавлена возможность указания атрибута onclick. Его можно использовать для указания целей систем аналитики или же для собственного js-кода.

  • Wrapped Editor. Поле редактора для дополнительного текста занимало большую часть экрана, что доставляло неудобство при работе с большим количеством элементов. Теперь поле редактора спрятано за Bootstrap Accordion.

  • Поддержка тёмной темы Joomla 5. Исправлены случаи неверного отображения при использовании тёмной темы в Joomla 5.

  • Рефакторинг кода. Проведена небольшая чистка кода.

Страница расширения GitHub

Также добро пожаловать в Telegram-чат русскоязычного Joomla-сообщества

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Вклад авторов