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

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

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

Всего: 1347 Доступных коммитов | Отфильтровано: 1347 Коммиты | Страница: 78 из 135
15.04.2026
Style: add <title> block to bare layout in all frontend themes
Автор: Eduard Laas | Дата: 13:18 15.04.2026

Insert a <title> block into bare.html for default, lite, and simple themes so that bare-layout pages (e.g. print, iframe, standalone views) render a proper document title. Also update the config fingerprint to reflect the changed template layer.

Core changes:

  1. templates/default/layouts/bare.html
  2. templates/lite/layouts/bare.html
  3. templates/simple/layouts/bare.html:
  • Added <title> tag with block/fallback pattern before {{{ meta }}}: <title>{% block title %}{% if title %}{{ title }}{% else %}{{ sitename }}{% endif %}{% endblock %}</title>
  1. config/local.php:
  • base_fingerprint updated to reflect new template state

Benefits:

  • Bare-layout pages pass HTML validation (title is required)
  • Consistent title rendering across all layout types

Technical notes:

  • Admin theme bare.html not included (managed separately)
  • Pattern matches existing block structure in main.html and app.html
Chore: remove unused language constants from all locale files
Автор: Eduard Laas | Дата: 13:18 15.04.2026

Delete constants that are no longer referenced anywhere in the codebase after the getTpl* refactoring and admin UI cleanup. All 6 locales (de/en/fr/pl/ru/uk) updated in sync.

Core changes:

  1. admin/lang/*.php (6 locales) — 18 constants removed per locale:
  • _BOTTOM, _CALENDAR, _CENTER, _INDEX
  • _INFO_NO, _INFO_NULL
  • _IP_CIDR_EX, _LISTING, _LOGGED
  • _NAVI, _PAGENUM, _PRINTS, _STYLE
  • _TCLOSE, _TMESS, _TOPEN, _TTITLE, _TWARNING
  1. lang/*.php (6 locales) — 3 constants removed per locale:
  • _RATE2, _RATE4, _SPOILER
  1. modules/changelog/admin/lang/*.php (6 locales) — 1 constant removed:
  • _CHLOG_ERR_TOKEN (moved to inline validation; no longer a translatable string)

Benefits:

  • Lang files contain only constants that are actively used
  • Reduces risk of accidental reuse of stale identifiers

Technical notes:

  • No PHP logic changes — constants only
  • All locales kept in sync; no locale-specific differences
Test: update AdminPreviewBridgeFlowTest — stub fields_out → getTplFieldsOut
Автор: Eduard Laas | Дата: 13:17 15.04.2026

Replace the test double for fields_out() with one for getTplFieldsOut() to match the renamed function in helpers.php. The stub behaviour is identical; only the function name changes.

Core changes:

  1. tests/Unit/AdminPreviewBridgeFlowTest.php:
  • Stub function_exists guard: 'fields_out' → 'getTplFieldsOut'
  • Stub function name: fields_out() → getTplFieldsOut()

Benefits:

  • Test suite matches the current public API
  • No risk of false-pass from stale stub name

Technical notes:

  • Stub return value logic unchanged
Refactor: update all call sites to getTpl* naming convention
Автор: Eduard Laas | Дата: 13:17 15.04.2026

Replace all legacy function calls throughout admin modules, frontend modules, and templates with the new getTpl* names established in helpers.php. No logic changes — pure rename at every call site.

Core changes:

  1. admin/modules/ (6 files):
  • cat_modul() → getTplCategoryModule()
  • getTplCategorySelect() (image picker) → getTplImageSelect()
  • getcat() → getTplCategorySelect()
  • language() → getTplLanguageOptions()
  • naviTabsLink/Content/Wrap → getTplTabLink/Content/Wrap
  • categoryRow, categoryTextLink → getTplCatRow, getTplCatText
  1. modules/ (24 files) + core/user.php:
  • new_graphic() → getTplNewGraphic()
  • gender() → getGenderText()
  • get_gender() → getTplGenderSelect()
  • fields_out() → getTplFieldsOut()
  • fields_in() → getTplFieldsIn()
  • catlink() → getTplCategoryTrail()
  • getcat() → getTplCategorySelect()
  • title_tip() → getTplTitleTip()
  • editorFilePreview → getTplEditorPreview()
  • editorInsertAction → getTplEditorInsert()
  • commentActionLink/Js/Delete/Menu → getTplCommentLink/Js/Delete/Menu
  • votingActionLink/Delete/Menu → getTplVotingLink/Delete/Menu
  • pagerLink/Current/Dots → getTplPagerLink/Current/Dots()
  • getAsyncPagerLink → unchanged signature, still resolves correctly
  1. templates/lite/index.php:
  • catlink() → getTplCategoryTrail()

Benefits:

  • All call sites consistent with getTpl* convention
  • No ambiguity between old legacy names and new helpers
  • Codebase-wide rename is complete after this commit

Technical notes:

  • No template fragments were changed
  • No behavior changes — pure rename at call sites
Refactor: consolidate getTpl* helpers — migrate and rename from system.php
Автор: Eduard Laas | Дата: 13:17 15.04.2026

Move all legacy template-helper functions out of system.php and helpers-old.php into helpers.php, applying the getTpl* naming convention and SLAED variable-naming rules. Removes the last large block of mixed-concern render functions from system.php.

Core changes:

  1. core/helpers.php — new getTpl* functions added:
  • getTplNewGraphic, getTplRadioForm, getTplGenderSelect, getGenderText
  • getTplTitleTip, getTplFieldsOut, getTplSearchResultTitle, getTplMoneyCalcForm
  • getTplEditorPreview, getTplEditorInsert, getTplEditorMenu, getTplEditorRow, getTplEditorTable
  • getTplCommentLink, getTplCommentJs, getTplCommentDelete, getTplCommentMenu
  • getTplCommentMeta, getTplCommentColor, getTplCommentAvatar, getTplCommentRank, getTplCommentSign
  • getTplAlphaLink, getTplAlphaText
  • getTplTabLink, getTplTabContent, getTplTabWrap
  • getTplPagerLink, getTplPagerCurrent, getTplPagerDots, getAsyncPagerLink
  • getTplCatIcon, getTplCatIconText, getTplCatTitle, getTplCatText, getTplCatTitleText
  • getTplCatSubitem, getTplCatRow, getTplCategorySelect (image variant renamed to getTplImageSelect)
  • getTplBlockPosition, getTplBlockRefresh, getTplBlockAction, getTplBlockView
  • getTplAdminHintLabel, getTplAdminSmallNote, getTplAdminTipLine, getTplAdminInfoLine
  • getTplAdminTableHead, getTplAdminTableCells, getTplAdminStatusBadge, getTplAdminLangHint
  • getTplAdminListForm, getTplAdminSubmitButton, getTplAdminSection
  • getTplCatPermRow, getTplCatTab, getTplCatSubmitRow, getTplAdminConfSave, getTplCatForm
  • getTplAdminAccountSearch, getTplAdminBlockGrid, getTplAdminSearchDrop, getTplAdminCatSearch
  • getTplVotingLink, getTplVotingDelete, getTplVotingMenu, getRatingAsync
  1. core/system.php — corresponding legacy functions removed:
  • new_graphic, radio_form, get_gender, gender
  • editorFilePreview, editorInsertAction, editorActionMenu, editorFilesRow, editorFilesTable
  • commentActionLink, commentActionJs, commentActionDelete, commentActionMenu
  • commentMetaText, commentMetaColor, commentAvatar, commentRankImage, commentSignature
  • alphaNavLink, alphaNavText, naviTabsLink, naviTabsContent, naviTabsWrap
  • pagerLink, pagerCurrent, pagerDots, getAsyncPagerLink (old signature)
  • categoryIconLink, categoryIconText, categoryTitleLink, categoryTextLink
  • categoryTitleText, categorySubItem, categoryRow, categorySelect, categorySelectOption
  • breadcrumbLink, getRatingAsync (old location)
  • getCommentAsyncAction, getEditorAsyncAction (moved)
  1. core/helpers-old.php — removed duplicates/superseded functions:
  • getTplAdminAjaxAction, getTplSearchResultTitle (old version)
  • getTplCatPermRow, getTplCatTab, getTplCatSubmitRow, getTplAdminConfSave, getTplCatForm
  • getTplAdminAccountSearch, getBlockModules, getTplAdminBlockGrid, getTplAdminSearchDrop
  • getTplAdminCatSearch, getTplCategorySelect (image variant), getTplBlockPosition/Refresh/Action/View
  • getTplAdminHintLabel, getTplAdminSmallNote, getTplAdminTipLine, getTplAdminInfoLine
  • getTplAdminTableHead, getTplAdminTableCells, getTplAdminStatusBadge, getTplAdminLangHint
  • getTplMoneyCalcForm, getTplAdminListForm, getTplAdminSubmitButton, getTplAdminSection
  1. core/admin.php — edit_list() removed (superseded by getTplAdminListForm)

Benefits:

  • system.php focuses on runtime logic; all render helpers live in helpers.php
  • Consistent getTpl* naming across the entire codebase
  • Variable names comply with SLAED 2–8 char lowercase rule

Technical notes:

  • getTplCategorySelect (image picker) renamed to getTplImageSelect to avoid collision with the new getTplCategorySelect (category dropdown)
  • All moved functions retain identical template fragment calls
  • No fragment files changed in this commit
Refactor: template fragments and layouts — form controls, CSS, admin cleanup
Автор: Eduard Laas | Дата: 12:04 15.04.2026

Align all 4 themes (default, lite, simple, admin) with the new template layer: update shared fragment markup to use sl-* CSS classes, sync layout partials, and remove admin-* fragments from frontend themes (default/lite/simple) that belong exclusively to the admin theme.

Core changes:

  1. Account forms (default/lite/simple):
  • account-login-form, account-edit-form, account-newuser-form, account-passlost-form, account-password-form, account-privat-message-form, account-rss-select-form, account-rss-url-form, account-avatar-upload updated to current markup conventions
  1. Layouts (all 4 themes):
  • app.html, main.html, home.html, bare.html synced across themes
  1. CSS (default, admin):
  • new.css: sl-* class additions for new fragment layer
  • system.css: cleanup in default and admin themes
  1. Fragment updates (all themes):
  • form-add.html, form-select.html, contact-form.html, login.html
  • editor-code-panel.html, editor-text-panel.html
  • block-login-form.html, block-search-form.html, block-languages-select.html
  • files-add-input-row.html, files-add-upload-row.html
  • media-form-add.html, media-link-row.html
  • shop-kasse-form.html, shop-partners-form.html
  • recommend-form.html, rss-info-form.html, rss-read-forms.html
  • whois-add-form.html, whois-domain-form.html, whois-license-form.html
  • pager-dots.html, button.html, money-calculator-form.html (admin)
  • partials: changelog.html, contact-block.html
  1. Admin fragment cleanup (default/lite/simple — 120 files deleted):
  • Removed all admin-* fragments from non-admin themes; they are only rendered in the admin theme and must not exist in frontend themes

Benefits:

  • Themes stay in sync; no stale admin markup in frontend
  • CSS class naming consistent with sl-* convention
  • Fragment structure aligned with new/ template layer

Technical notes:

  • Admin theme retains all admin-* fragments unchanged
  • No PHP changes in this commit
Feat: add template fragments — new/ namespace, system UI, code rendering
Автор: Eduard Laas | Дата: 12:02 15.04.2026

Add all new template fragments required by the HTML-in-PHP removal refactor and the new/ namespace for reusable form controls and UI components. All fragments are added to all 4 themes (default, lite, simple, admin).

Core changes:

  1. new/ namespace — form controls (all 4 themes):
  • input.html, textarea.html, select.html, select-option.html
  • hidden.html, button.html, form-submit.html, form-add.html, form-field-row.html
  • ajax-textarea-form.html
  1. new/ namespace — layout and UI (all 4 themes):
  • grid.html, card.html, div-hr.html, cat-navi.html
  • related.html, related-item.html, graphic.html
  • msg-center.html, alert.html (new/)
  1. new/ namespace — code rendering (all 4 themes):
  • code-block.html, code-row.html, code-table.html, code-hljs.html
  1. System UI fragments (root level, all 4 themes):
  • comment-avatar.html, comment-num-link.html, comment-text.html
  • comment-list-form.html, alpha-nav-link.html, alpha-nav-text.html
  • navi-tab-link.html, navi-tab-content.html, pager-dots.html
  • category-sub-item.html, rating-wrap.html, warning-list.html
  • debug-section.html, admin-block-links.html, geo-ip-flag.html
  1. Shared UI fragments (root level, all 4 themes):
  • button.html, ajax-textarea-form.html, checkbox-input.html
  • file-input.html, multi-select.html, radio-option.html, select-option.html

Benefits:

  • All HTML output from PHP helper functions now has a fragment counterpart
  • new/ namespace provides reusable form controls for all frontend modules
  • Theme-specific overrides possible for any fragment independently

Technical notes:

  • new/ fragments are identical across all 4 themes by default
  • Root-level fragments match existing PHP function output exactly
  • pager-dots.html added to root level (used by both old pagerDots() and getTplPager())
Refactor: modules and blocks — convert textarea/pager/hidden call sites
Автор: Eduard Laas | Дата: 11:59 15.04.2026

Replace all legacy function calls across modules and blocks with the new array-based getTpl* API. Includes mass-converted textarea() → getTplTextarea() call sites and related API updates.

Core changes:

  1. textarea() → getTplTextarea([]) (all modules):
  • Converted 31 files via balanced-paren argument parser
  • All positional args mapped to named array keys: id, name, value, mod, rows, placeholder, required
  1. getAjaxTextarea() → getTplAjaxTextarea([]) (modules/forum, user):
  • Updated call sites with named array parameters
  1. getTplHiddenInput() positional → array API:
  • modules/forum/index.php: subject, id, fid, pid, cat hidden inputs
  • modules/help/index.php: pid, catid, posttype hidden inputs
  1. fields_in() → getTplFieldsIn([]) (modules/news/index.php):
  • New div-based field rows instead of legacy <tr><td> table layout
  1. Other module updates:
  • modules/content/index.php: migrated to new/ template fragments
  • modules/news/index.php: getTplTextInput class sl_field (no inline style)
  • blocks/block-login.php, block-user_info.php: API updates

Benefits:

  • No module code references deprecated textarea() or getAjaxTextarea()
  • Consistent named-array call convention throughout all modules
  • getTplFieldsIn() replaces table-based fields_in() for new layouts

Technical notes:

  • textarea() and getAjaxTextarea() remain in system.php as deprecated wrappers
  • fields_in() unchanged — still used for legacy table forms (forum, account)
Refactor: editor and parser classes — template-based rendering, new API
Автор: Eduard Laas | Дата: 11:59 15.04.2026

Migrate Editor::getSelect() and all editor drivers to use template fragments and the new getTplTextarea() array API. Parser refactored with private helper methods for image normalization.

Core changes:

  1. Editor class (core/classes/editor.php):
  • Editor::getSelect(): removed inline <select>/<option> HTML
    • Now uses new/select + new/select-option fragments
    • Added $selectAttr parameter for OnChange and other attributes
  1. Editor drivers (plugins/editors/*/driver.php):
  • All drivers: textarea() → getTplTextarea(['id', 'name', ...]) array call
  • bbcode/driver.php: removed legacy textarea() call
  • ckeditor, codemirror, plain, tinymce, toastui: updated call signatures
  1. Parser class (core/classes/parser.php):
  • Extracted getRootPath(), getFallbackImage(), buildImageError(), normalizeImageSource(), normalizeHtmlImages() as private helpers
  • checkbox-input fragment used for checklist rendering

Benefits:

  • Editor select rendering is now theme-switchable via new/select fragment
  • Consistent array API across all driver implementations
  • Parser logic split into focused private methods

Technical notes:

  • Editor::getSelect() signature: added optional $selectAttr = '' parameter
  • All editor drivers call getTplTextarea() — textarea() no longer used
Refactor: system.php — remove inline HTML, migrate all output to fragments
Автор: Eduard Laas | Дата: 11:59 15.04.2026

Replace all inline HTML string construction in PHP with $tpl->getHtmlFrag() calls. No HTML is built directly in PHP code anymore — all output is delegated to template fragments.

Core changes:

  1. HTML-in-PHP removal — standalone helper functions (core/system.php):
  • new_graphic(): spans → new/graphic fragment
  • user_geo_ip(): img/a → geo-ip-flag + link-btn-blank fragments
  • adminblock(): table/hr → admin-block-links fragment
  • user_info(): anchor → breadcrumb-link fragment
  • warnings(): ol/li → warning-list + action-menu-item fragments
  • commentMetaColor/Avatar/RankImage/Signature(): → dedicated fragments
  • alphaNavLink/Text(): → alpha-nav-link/text fragments
  • naviTabsLink/Content(): → navi-tab-link/content fragments
  • pagerDots(): → pager-dots fragment
  • categorySubItem(): → category-sub-item fragment
  • breadcrumbLink(): → breadcrumb-link fragment
  • debugSection(): → debug-section fragment
  • ratingWrap(): → rating-wrap fragment
  • add_menu(): → editor-action-menu + action-menu-item fragments
  • renderFootControls(): → foot-controls fragment
  • editorActionMenu/commentActionMenu/votingActionMenu(): li wrapping → action-menu-item
  1. HTML-in-PHP removal — larger functions (core/system.php):
  • encode_php(): table/tr/td/pre/code/div → code-row/table/hljs/block fragments
  • render_blocks(): div.sl_center → msg-center fragment
  • ashowcom(): form/span/a/div → comment-list-form/date/num-link/text fragments
  • updateVotingResult(): meta refresh × 3 → meta-refresh fragment
  1. API updates (core/admin.php, core/user.php):
  • getTplMoveControls(): positional → array call sites updated
  • textarea()/getAjaxTextarea() → getTplTextarea/getTplAjaxTextarea array API
  • getTplHiddenInput(): legacy positional call → array call
  • Editor::getSelect(): + $selectAttr param, inline HTML removed

Benefits:

  • Zero inline HTML in core PHP files — full separation of logic and markup
  • All rendering is theme-switchable via fragment overrides
  • Consistent $tpl->getHtmlFrag() pattern throughout

Technical notes:

  • comment-list-form fragment wraps admin bulk-action form
  • ashowcom $hclass remains as data attribute string (passed to comment.html)
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код

Предварительный просмотр