Чтение RSS каналов

Журнал изменений

Фильтр и поиск

Всего: 500 Доступных коммитов | Отфильтровано: 500 Коммиты | Страница: 1 / 50
Сегодня (31.03.2026)
Refactor: complete PHP-without-HTML migration for blocks, core, modules and templates
Автор: Eduard Laas | Дата: 17:29 31.03.2026

Replace all remaining inline HTML across blocks, core modules, admin panel, and frontend modules with template fragments, completing the full separation of PHP logic from HTML output across the entire codebase.

Core changes:

  1. Blocks (18 files — blocks/block-*.php):
  2. All inline HTML replaced with getHtmlFrag() fragment calls
  3. New fragments added: block-banner-random, block-center-, block-forum-, block-img-, block-languages-, block-login-form, block-menu, block-module-*, block-network-row, block-search-form, block-stat-banners, block-user-*

  4. Core (core/access.php, admin.php, classes/pdo.php, security.php, user.php):
  5. access.php / security.php: error/report output migrated to fragments
  6. pdo.php: query debug output uses pdo-error-badge / pdo-query-time fragments
  7. user.php: RSS feed builder uses user.php-specific fragments
  8. admin.php: remaining inline HTML moved to fragments
  9. Frontend modules (modules/):
  10. account, changelog, clients, contact, content, faq, files, forum, help, jokes, links, main, media, news, order, pages, search — all cleaned

  11. forum/index.php: full rewrite using link-btn, span-btn, forum-* fragments
  12. main/index.php: carousel, grid and section output via main-* fragments
  13. search/index.php: result rendering via search-result-title fragment
  14. Templates (templates/):
  15. admin/index.php, lite/index.php: asset and layout output via fragments
  16. media-post-badge.html synced across default/lite/simple themes
  17. ~350 new .html fragment files added across all 4 theme directories

Benefits: - PHP files contain zero HTML tags (except filterMarkdown engine and RSS/XML) - All HTML exclusively in .html fragment files under templates/ - Themes can now be fully swapped without touching any PHP logic - Fragment sync enforced by phpunit testSharedFrontendFragmentsStayInSyncAcrossThemes

Technical notes: - 125/125 phpunit tests pass (1 pre-existing CRLF failure unchanged) - All shared frontend fragments are hash-identical across default/lite/simple/admin - Admin-only fragments remain in templates/admin/fragments/ only

Refactor: eliminate all remaining raw HTML from PHP modules and core functions
Автор: Eduard Laas | Дата: 17:26 31.03.2026

Replace every inline HTML tag in admin modules, frontend modules, and core helper functions with template fragments or existing helper calls, completing the full PHP-without-HTML migration across the entire codebase.

Core changes:

  1. Core functions (core/system.php):
  2. categorySelectOption(): delegate to getTplOption() — removes <option> inline HTML
  3. title_tip(): use title-tip.html fragment — removes <nav><div> inline HTML
  4. ad_status(): use span-btn.html / link-btn.html — removes all <span>/<a> inline HTML
  5. New shared fragments (all 4 themes: default/lite/simple/admin):
  6. title-tip.html: <nav class="sl_tip"><div>{{{ content }}}</div></nav>
  7. rating-box.html: <div class="min-rate"><div class="rate-like-box">{{{ content }}}</div></div>
  8. form-checkall.html: checkall <input> for list headers
  9. td-check.html: <td><input type="checkbox"> for list rows
  10. tr-open.html / tr-close.html: structural table row wrappers
  11. img-preview.html: <img id="picture"> for config image preview
  12. Admin modules (19 files):
  13. adminTitleTipLabel/adminTitleTip with <br> separators → getTplAdminTipLine()
  14. getcat(..., '<option>') → getcat(..., getTplOption())
  15. <a href target="_blank"> links → getTplAdminTextLink()
  16. <br><br> before fields → $tpl->getHtmlFrag('br-br', [])
  17. <div>...<hr> voting preview → div-hr.html fragment
  18. <tr>/<\/tr> in news asso table → tr-open.html / tr-close.html
  19. <th> checkall → th-nosort.html + form-checkall.html
  20. <td> checkbox → td-check.html
  21. <img> preview → img-preview.html
  22. activate() in money/order: add global $tpl, use br-br fragment for email
  23. Frontend modules (5 files):
  24. rss/index.php: <option selected> → getTplOption(..., true)
  25. users/index.php: <br> tip lines → getTplAdminTipLine(); <div rating> → rating-box.html
  26. shop/index.php: <br> tip lines → getTplAdminTipLine() in $website/$note
  27. money/index.php: $sinfo .= val.<br> → getTplAdminInfoLine()
  28. voting/index.php: <div id="rep..."> → post-div.html fragment

Benefits: - Zero raw HTML tags remain in any module or core helper PHP file - All HTML exclusively lives in .html fragment files under templates/ - categorySelectOption, title_tip, ad_status now fully template-driven - 125/125 phpunit tests pass (1 pre-existing CRLF failure unchanged)

Technical notes: - Justified exceptions: filterMarkdown class (IS the HTML generator), PDO constructor error path ($tpl unavailable), template engine asset management (circular dependency), RSS/XML generation, commented-out code - New fragments synced across all 4 theme dirs (hash-identical per phpunit) - getTplAdminTipLine trailing-<br> differs slightly from original leading-<br> pattern in tooltips — visually equivalent, no behavioral change

Feature: modernize editor panel with template fragments
Автор: Eduard Laas | Дата: 10:43 31.03.2026

Externalize the editor page's structural HTML and interactive components, such as the Robots.txt button and notification panels, into dedicated Mustache-style fragments to improve controller clarity and UI reuse.

Core changes:

  1. Editor management (admin/modules/editor.php):
  2. Use getHtmlFrag to load the new editor structural components
  3. Replace inline Robots.txt button generation with the admin-editor-robots-button fragment
  4. Move the note panel and root container structural logic to dedicated fragments
  5. New Fragments (templates/admin/fragments/admin-editor-*):
  6. admin-editor-robots-button: Standardized green button for Robots.txt templates
  7. admin-editor-note-panel: Flexible container for notifications and warnings
  8. admin-editor-root-panel: Main container for the editor interface

Benefits: - Decouples structural HTML from the editor's PHP controller logic - Consistent button styling for all editor templates - Cleaner DOM structure with standardized panel containers

Technical notes: - Uses the core getHtmlFrag() method for fragment retrieval - The Robots.txt button logic is encapsulated in the fragment but relies on existing external JS handling - All structural changes are backward compatible with the current admin layout

Refactor: modernize tables and links with shared UI helpers
Автор: Eduard Laas | Дата: 10:42 31.03.2026

Standardize the rendering of admin tables, status badges, and anchor links across various core and module management panels. Replaces repetitive HTML string concatenation with the new helper suite.

Core changes:

  1. Language and Module Management (admin/modules/lang.php, modules.php):
  2. Use getTplAdminTableHead for sorting-aware header generation
  3. Use getTplAdminStatusBadge for standardized status indicators
  4. Scheduler and Sitemap (admin/modules/scheduler.php, modules/sitemap/admin/index.php):
  5. Replace inline links with getTplAdminTextLink
  6. Use getTplAdminTipLine/InfoLine for descriptive list items
  7. Forum and Monitor (modules/forum/admin/index.php, admin/modules/monitor.php):
  8. Use getTplAdminTableCells for clean row generation
  9. Replace ad-hoc span tags with getTplSpan

Benefits: - Consistent look and feel for all admin data tables - Unified attribute escaping for all generated anchor tags - Simplified module controllers by moving HTML logic to core helpers

Technical notes: - Supports both sortable and non-sortable columns via getTplAdminTableHead - All textual labels are properly escaped by the underlying helpers - Backward compatible: resulting HTML matches the existing admin styles

Refactor: use shared UI helpers for form labels and notes
Автор: Eduard Laas | Дата: 10:42 31.03.2026

Replace inline HTML <div> strings with standardized UI helper functions (getTplAdminHintLabel, getTplAdminSmallNote) in the blocks, configuration, and account modules to ensure consistent styling and encapsulation.

Core changes:

  1. Blocks management (admin/modules/blocks.php):
  2. Use getTplAdminSmallNote for RSS lines information row
  3. Configuration (admin/modules/config.php):
  4. Replace inline <div> hints with getTplAdminHintLabel for captcha, SEO, and graph settings to maintain visual consistency

  5. User accounts (modules/account/admin/index.php):
  6. Update the mail password text panel to use the admin-admins-mail-panel fragment

Benefits: - Consistent presentation of hints and small notes across admin forms - Cleaner module templates that focus on structure rather than inline HTML - Improved maintainability through encapsulated presentation logic

Technical notes: - Uses helpers defined in core/helpers.php - Fragments are loaded via the standard getHtmlFrag() method - Backward compatible: visual output remains consistent with the previous implementation

Refactor: replace inline implode error joins with getStopText()
Автор: Eduard Laas | Дата: 10:41 31.03.2026

Unify error message rendering across various admin modules by replacing inline implode('<br>', ...) with the shared getStopText() helper. Ensures consistent handling of empty error array entries and line breaks.

Core changes:

  1. Admin modules (modules/*/admin/index.php):
  2. Replace inline implode('<br>', \) with getStopText((array)\)
  3. Affected modules: auto_links, clients, files, help, jokes, links, media, money, news, order, pages, shop

Benefits: - Centralized logic for formatting error messages - Improved code readability across multiple modules - Consistent UI presentation for warnings and error alerts

Technical notes: - getStopText is a core helper from core/helpers.php - (array) cast added for safety where \ variable might be null or scalar - No functional change to the rendered HTML output

Feature: add admin HTML fragments for associated-news table
Автор: Eduard Laas | Дата: 10:39 31.03.2026

Introduce two new Mustache-style HTML fragment files that render a checkbox table for selecting news items associated with a record, keeping the markup out of PHP and in the template layer.

Core changes:

  1. Associated news table wrapper (admin-news-asso-table.html):
  2. Renders an sl_form table element with {{{ rows_html }}} slot * rows_html is populated by iterating admin-news-asso-cell fragments

  3. Associated news cell (admin-news-asso-cell.html):
  4. Renders a single <td> with a named checkbox input * name: associated[], value: {{ cid }}, checked state: {{{ checked }}} * Displays article title {{ ctitle }} as inline label text

Benefits: - Separates HTML structure from PHP controller logic - Reusable fragments composable via getHtmlFrag() calls - Consistent with existing admin fragment template conventions

Technical notes: - Triple-brace {{{ }}} used for pre-rendered HTML slots (rows_html, checked) - Double-brace {{ }} used for plain-text values (cid, ctitle) requiring escaping - Backward compatible: fragments are new additions, no existing files changed

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

Types: Refactor | Feature | Fix | Docs | Style | Test | Chore | Perf

Bullets: - main point, * sub-detail

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

Refactor: replace inline implode error joins with getStopText()
Автор: Eduard Laas | Дата: 10:38 31.03.2026

Unify stop/error message rendering across modules by replacing ad-hoc inline implode('<br>', ...) calls with the new shared getStopText() helper introduced in core/helpers.php, removing the now-redundant local getAdmintext() wrapper from admins.php.

Core changes:

  1. Admin admins module (admin/modules/admins.php):
  2. Remove local getAdmintext(array \) function (replaced by getStopText)
  3. Replace getAdmintext(\) call with getStopText(\) in add()
  4. Whois admin module (modules/whois/admin/index.php):
  5. Replace inline implode('<br>', \) with getStopText((array)\)
  6. Private messages (core/user.php):
  7. Replace inline implode('<br>', (array)\) with getStopText((array)\)

Benefits: - Single source of truth for error message formatting - Eliminates duplicate logic across three independent modules - Consistent handling of empty/null stop entries via array_filter

Technical notes: - getStopText filters empty strings via array_filter before joining - Cast to (array) preserved where \ may be a scalar at call site - Backward compatible: output is identical to previous inline logic

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

Types: Refactor | Feature | Fix | Docs | Style | Test | Chore | Perf

Bullets: - main point, * sub-detail

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

Refactor: add shared admin template helper functions to core/helpers.php
Автор: Eduard Laas | Дата: 10:38 31.03.2026

Add a set of small, focused helper functions that generate reusable HTML fragments for admin panels, keeping presentation logic in helpers and out of individual module files.

Core changes:

  1. New UI helper functions (core/helpers.php):
  2. getTplAdminSmallNote(text): standalone sl_small note div for label-less form rows
  3. getStopText(stop): joins non-empty error/stop messages with <br> separators
  4. getTplAdminTextLink(href, label, ...): safe anchor tag for use inside raw HTML slots
  5. getTplAdminTipLine(key, val): one key-value line for tooltip content_html strings
  6. getTplAdminInfoLine(label, value): one label-value line for info block content
  7. getTplAdminTableHead(cols): builds <th> head_html from column label arrays
  8. getTplAdminTableCells(cells): builds <td> cells_html from pre-rendered cell content array
  9. getTplSpan(class, raw_content, title): inline span with CSS class and optional title
  10. getTplAdminStatusBadge(state, yes, no): sl_green/sl_red badge span for status display

Benefits: - Eliminates repetitive inline HTML string construction across modules - Centralises HTML-escaping rules in one place, reducing XSS risk - Provides a consistent API for all admin panel fragment generation

Technical notes: - All attribute values are escaped via htmlspecialchars with ENT_QUOTES/UTF-8 - raw_content in getTplSpan is intentionally not escaped (caller responsibility) - Backward compatible: no existing signatures changed

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

Types: Refactor | Feature | Fix | Docs | Style | Test | Chore | Perf

Bullets: - main point, * sub-detail

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

Вчера (30.03.2026)
Docs: fix Status badge URL encoding in README
Автор: Eduard Laas | Дата: 23:31 30.03.2026

Same %20 space-encoding issue as the Migration badge. Replaced %20 with _ for consistency and reliable rendering on GitHub.

Core changes:

  1. Badge URL (README.md):
  2. Replace %20 with _ in Status badge URL

Technical notes: - shields.io treats _ as space in path-based badge URLs

Всего: 500 на 50 страницах по 10 на каждой странице

Хотите опробовать SLAED CMS в действии?

Технологии

PHPMySQLHTML 5CSS 3jQueryjQuery UI

Контакты

  • D-49179, Deutschland
    Ostercappeln, Im Siek 6
  • +49 176 61966679

  • https://slaed.net
Идеи и предложения
Обратная связь