seiger/sarticles

Blog News and Articles Management Module for Evolution CMS admin panel.

Maintainers

Package info

github.com/Seiger/sArticles

Type:evolution-cms-module

pkg:composer/seiger/sarticles

Statistics

Installs: 158

Dependents: 0

Suggesters: 0

Stars: 3

Open Issues: 0

v1.2.0 2026-05-08 21:48 UTC

This package is auto-updated.

Last update: 2026-05-12 20:29:32 UTC


README

Latest Stable Version CMS Evolution PHP version License Issues Total Downloads

sArticles is a publications, news, and blog management module for the Evolution CMS manager.

The current manager interface is rebuilt on top of EvoUI and Livewire. It works as a responsive SPA-like manager module: tabs, filters, sorting, pagination, modal forms, inline actions, and content editing update through Livewire instead of full iframe reloads.

sArticles publications manager

Features

  • Publications with multiple configurable resource types.
  • EvoUI tables with table/list views, filters, search, sorting, pagination, selection, bulk-style actions, and session state.
  • Large modal article editor with main fields, relations, SEO fields, multilingual tabs, and a content builder.
  • Content builder blocks: RichText, SingleImg, Image and Text, YouTube, Quote, Note, ArticlePreview, Poll, Slider, Accordion, and File.
  • Authors, tags, tag texts, topics, features, comments, polls, and TV parameter management.
  • Native optional integrations with sSeo, sLang, eTinyMCE, and dTui.editor.
  • Publication comments, rating, poll votes, view tracking, aliases, and frontend helper API.
  • Configurable module settings stored in core/custom/config/seiger/settings/sArticles.php.

Screenshots

Article editor

sArticles article editor

Module settings

sArticles module settings

Requirements

  • PHP ^8.4
  • Evolution CMS ^3.5.7
  • evolution-cms/evo-ui ^1.0
  • Livewire, as provided by the Evolution CMS/EvoUI runtime

Optional packages:

  • seiger/sseo for SEO fields and sitemap metadata.
  • seiger/slang for multilingual content.
  • eTinyMCE or dTui.editor for rich text fields.

Installation

Run inside the Evolution CMS core directory.

php artisan package:installrequire seiger/sarticles "*"
php artisan vendor:publish --provider="Seiger\\sArticles\\sArticlesServiceProvider" --tag=sarticles
php artisan migrate

In Extras-based development environments the package can also be installed with the Evolution Extras command used by the project:

php artisan extras extras "sArticles"

After publishing, review:

core/custom/config/seiger/settings/sArticles.php

Upgrading From 1.x To 2.x

sArticles 2.x keeps the public sArticles:: facade API, but the alias is now registered by Seiger\sArticles\sArticlesServiceProvider at runtime.

If an older 1.x installation has the generated alias file below, remove it after upgrading:

core/custom/config/app/aliases/sArticles.php

The package no longer needs an extra.laravel.aliases entry in composer.json, and the alias file should not be copied or published manually. Provider discovery is still handled by extra.laravel.providers; use extra.laravel.priority only when a concrete provider load-order requirement appears.

Builder Render Customization

Builder block HTML is rendered through lowercase Laravel package views such as:

sarticles::render.richtext
sarticles::render.quote

To customize markup, copy only the needed package view into the site override path:

views/vendor/sarticles/render/richtext.blade.php
views/vendor/sarticles/render/quote.blade.php

Existing articles keep materialized HTML in the content column. After changing render views, refresh stored HTML explicitly:

php artisan sarticles:rerender --dry-run
php artisan sarticles:rerender --articles=123-10000 --chunk=200

Documentation

Localized documentation lives in docs/:

Each language contains a user guide and a developer guide.

Quick Frontend Usage

@php($articles = sArticles::all(10))

@foreach($articles as $article)
    <a href="{{ $article->link }}">{{ $article->pagetitle }}</a>
@endforeach

Useful facade methods:

  • sArticles::all($paginate = 30)
  • sArticles::comments($paginate = 30, $articleIds = [])
  • sArticles::getArticle($id)
  • sArticles::getArticleByAlias($alias)
  • sArticles::resolveArticleByUri($segments)
  • sArticles::trackView($article)
  • sArticles::showPoll($id)
  • sArticles::ratingVotes($id)
  • sArticles::setComment($id)
  • sArticles::publishArticle()
  • sArticles::config($key, $default = null)

Native Integrations

EvoUI + Livewire

sArticles registers an EvoUI module panel and table/form presets. The manager UI is driven by Livewire components and package config files:

  • config/articles/table.php
  • config/articles/modal.php
  • config/*/table.php
  • config/settings/form.php

sSeo

When sSeo is installed, sArticles stores SEO data for resource type article.

  • Without sLang, SEO fields are shown as a standalone SEO area in the article modal.
  • With sLang, SEO fields are attached to each language flow.

sLang

When sLang is installed, article modal tabs are generated from the language configuration. Shared article data remains global, while translated fields and content are saved per language.

Rich Text Editors

The module setting general.editor controls which editor sArticles uses:

  • system uses EVO which_editor.
  • A registered editor name, such as eTinyMCE or dTuiEditor, forces that editor inside sArticles.

Per-field editor selectors are intentionally hidden in sArticles forms to keep the article UI compact and predictable.

Development Notes

  • The new manager UI is config-driven and uses EvoUI/Livewire.
  • Legacy manager blades, scripts, and styles are removed from the new flow.
  • Use EVO_* constants for Evolution paths; old compatibility aliases should not be used in new code.
  • Keep module-specific hooks in sArticles, not in EvoUI.
  • Use table presets for manager lists and modal presets for edit/create flows.

License

GPL-3.0-or-later.