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

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

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

Всего: 500 Доступных коммитов | Отфильтровано: 500 Коммиты | Страница: 1 / 50
Сегодня (15.05.2026)
Style: extend sl-hover-* token set and apply across theme.css
Автор: Eduard Laas | Дата: 12:05 15.05.2026
Style: add sl-hover-* CSS tokens; normalize theme.css indentation
Автор: Eduard Laas | Дата: 11:52 15.05.2026
Chore: relocate demo HTML files from docs/ to demo/
Автор: Eduard Laas | Дата: 11:52 15.05.2026
Вчера (14.05.2026)
Feature: Bootstrap Icons in admin sidebar blocks and top-menu links
Автор: Eduard Laas | Дата: 22:53 14.05.2026

Wire icon_name into the block-sidebar partial and top-menu link fragment so every admin sidebar panel and toolbar entry carries a contextual Bootstrap Icon. Add --sl-color-primary-hover-soft token and a dedicated .sl-admin-shell sidebar skin with tight spacing, rounded tiles, and per-block-id header colour overrides.

Core changes:

  1. Template (block-sidebar.html):
  2. Render <i class="bi bi-{{ icon_name }}"> in h3 when icon_name is set
  3. Icon wiring — PHP (admin/index.php, core/admin.php, core/system.php):
  4. Pass icon_name to all eight block-sidebar calls (shield-lock, puzzle, stars, hourglass-split, pencil-square, eye)
  5. Add icon key to every top-menu item array; forward as icon_name to getHtmlFrag('link')
  6. CSS tokens (base.css):
  7. Add --sl-color-primary-hover-soft: #58a0c8
  8. Link :hover uses soft token and drops underline
  9. CSS sidebar skin (theme.css):
  10. .sl-wrapper.sl-admin-shell .sl-admin-sidebar: tight CSS variables, rounded headers, icon sizing, per-block colour overrides
  11. Menu grid: border/shadow moved from link to item wrapper; link reset to transparent/no-shadow
  12. Toolbar links: gap + padding added, .bi icon sizing rules, padding removed from inner b
  13. .sl-wrapper a:hover scoped soft-colour override
  14. Sidebar block base: gradient bg, lighter border (border not border-strong)

Benefits: - Sidebar blocks are visually identifiable by icon without reading the title - Top-menu entries gain icon context for faster scanning - Tight-shell skin aligns sidebar spacing with the updated layout

Technical notes: - icon_name is optional — partial renders nothing when absent (backward-compatible) - No database or API changes

Эта неделя (13.05.2026)
Style: login separator — primary-center token, tighter margins; refresh demos
Автор: Eduard Laas | Дата: 22:06 13.05.2026

Introduce a dedicated --sl-color-primary-center (#174372) token for the login header gradient midpoint and narrow the separator side offsets from 10 px to 5 px for a crisper edge. Replace two statistic demo pages with the admin left-blocks layout demo.

Core changes:

  1. Login header separator (base.css, theme.css):
  2. Add --sl-color-primary-center: #174372 CSS variable * Replaces --sl-color-primary at the 47.5–52.5 % gradient stops

  3. Tighten right/left from 10 px to 5 px
  4. Demo docs (docs/):
  5. Remove statistic-browser-analysis-demo.html and statistic-monitor-dashboard.html
  6. Add admin-left-blocks-demo.html
  7. Config (config/local.php):
  8. Routine base_fingerprint update

Benefits: - Separator midpoint color is independently tunable without affecting primary usages elsewhere - Narrower margins align separator precisely with the login form card edges

Technical notes: - Purely presentational — no functional or API changes

Style: admin layout — remove sidebar fixed width, simplify content spacing
Автор: Eduard Laas | Дата: 15:29 13.05.2026

Removes the fixed width from .sl-block-sidebar, trims padding and background gradient from .sl-admin-sidebar, removes margin/padding from .sl-admin-content, and adjusts .sl-admin-content-inner and .sl-toolbar spacing for a cleaner fluid layout.

Core changes:

  1. Admin sidebar block (theme.css — .sl-block-sidebar):
  2. Removed width: 275px; block now sizes via its flex/grid parent
  3. Admin sidebar column (theme.css — .sl-admin-sidebar):
  4. padding: 13px 11px 15px 11px → 8px 0px
  5. Removed multi-stop background gradient (now inherits parent bg)
  6. Admin content area (theme.css — .sl-admin-content):
  7. Removed margin: 8px 6px 15px 0
  8. Removed padding: 0 0 15px 0
  9. Admin content inner (theme.css — .sl-admin-content-inner):
  10. padding: 0 var(--sl-space-lg) 15px → 0px 0px 0px 8px
  11. Toolbar (theme.css — .sl-toolbar):
  12. margin: 0 10px 0 5px → 0 0 0 12px

Benefits: - Sidebar width adapts to container; no overflow on narrow viewports - Content area padding controlled at inner level, not duplicated on outer

Technical notes: - No new CSS classes; all changes are targeted property updates - No HTML structure changes required

Feature: template constant syntax {{ _CONST }} with runtime defined() check
Автор: Eduard Laas | Дата: 15:29 13.05.2026

Adds filterConst() to the Template compiler pipeline so that {{ _UPPER_SNAKE }} tokens are compiled into defined()-guarded PHP echoes instead of being silently dropped or mishandled by filterEcho(). Documents the new syntax in TEMPLATES.md.

Core changes:

  1. Template compiler (core/classes/template.php — filterConst()):
  2. Matches {{ _NAME }} where NAME is UPPER_SNAKE with _ prefix, 1-11 chars
  3. Compiles to: <?= defined('_NAME') ? $this->getSafe(_NAME) : ''; ?>
  4. Runs before filterEcho() so constant tokens are consumed first
  5. Negative lookahead/lookbehind prevents matching {{{ _RAW }}} raw tags
  6. Docs (docs/TEMPLATES.md):
  7. Added one-line entry for {{ _CONST }} syntax under the runtime features list

Benefits: - Language constants can be used directly in .html fragment files - Compiled output is cache-safe: defined() checked at render time, not compile time - No change to existing {{ var }} or {{{ raw }}} behavior

Technical notes: - Regex: /(?<!\{)\{\{\s([A-Z][A-Z0-9]{0,10})\s\}\}(?!\})/ - getSafe() HTML-escapes the constant value before output - filterConst() is inserted before filterEcho() in the compile() pipeline

Feature: extended statistics panel in admin statistic module
Автор: Eduard Laas | Дата: 15:29 13.05.2026

Adds getStatExtPanel() which reads fields 8-16 from the statistic log, aggregates them across all rows of the selected archive or current period, and renders an inline dashboard with ring charts, bar charts, and an hourly hit chart. Panel is appended after the existing statistic table.

Core changes:

  1. getStatExtPanel() (admin/modules/statistic.php):
  2. Reads days.log + statistic.log (current) or an archive file
  3. Aggregates counter fields 8-12, 14-16 via getCounterField() and sums the 24-slot hours field (index 13)

  4. Ring charts (SVG): Human Traffic %, Mobile Share %, Return Depth %, Search Share % — 4-up grid, responsive 2-col on narrow viewports

  5. Bar charts (2-col grid): Browsers, OS, Devices, Countries, Refcat, New/Returning, Depth, Duration — sorted by count, preserves order where a canonical key order is specified (Devices, Refcat, etc.)

  6. Hourly hits bar chart (SVG, 24 bars, x-axis labels every 3 hours)
  7. Falls back to a plain "not available" notice when field 8 is absent
  8. statistic() (admin/modules/statistic.php):
  9. Added echo getStatExtPanel($file) after the existing statistic table

Benefits: - One-screen overview of browser/device/geo/session metrics per period - No extra DB queries; reads the same log files as the existing counter - Inline <style> scoped to sl-statx-* classes; no theme.css modifications needed

Technical notes: - Ring chart: uses SVG stroke-dashoffset on a r=38 circle (circumference 238.76) - Bar chart labels truncated at 120px via CSS text-overflow - getStatExtPanel() uses CSS custom properties from the admin theme (--bg, --line, --shadow, --soft, --muted, --blue2, --green, --purple, --orange)

Feature: extended statistics tracking — browser, OS, device, country, session
Автор: Eduard Laas | Дата: 15:29 13.05.2026

Extends updateStatsTrack() to collect per-hit UA breakdowns, GeoIP country, referral category, hourly distribution, and sliding session state (new/returning, depth, duration). All new data is written as additional pipe-separated fields (indices 8-16) appended to the existing statistic.log line format.

Core changes:

  1. UA parser (core/system.php — getAgentInfo()):
  2. Detects browser (Chrome, Firefox, Edge, Opera, Safari, IE), OS (Windows, Android, iOS, macOS, Linux), and device (desktop, mobile, tablet, bot)

  3. Bot detection via UA regex; guest===1 always maps to Bot
  4. Counter field helpers (core/system.php):
  5. getCounterField(): parses "key:count,key:count" field into a map
  6. updateCounterField(): increments a key, keeps top-10 + Other overflow bucket
  7. Hourly distribution (core/system.php — updateHoursField()):
  8. Maintains a 24-slot comma-separated hit count per hour
  9. Session tracking (core/system.php — updateSessionState()):
  10. File-based sliding window (1800s) keyed by stats_id cookie
  11. Tracks first-visit, last-visit, hit depth per session
  12. Returns is_new, depth, duration for the current hit
  13. Bucket classifiers (core/system.php):
  14. getSessionDepthBucket(): maps depth to 1 / 2-3 / 4-7 / 8+
  15. getSessionDurationBucket(): maps seconds to <30s / 30s-3m / 3m-15m / 15m+
  16. Referral category (core/system.php — getRefCategory()):
  17. Classifies referer into direct, search, social, or referrer
  18. updateStatsTrack() extended (core/system.php):
  19. Gathers agent info, refcat, GeoIP country, session state before write
  20. Sets fields [8..16] on the statistic.log line in all three write paths

Benefits: - Rich per-day analytics available without changing the core log file structure - Session tracking uses httponly cookie with 1-year TTL, no DB required - All new fields are backward-compatible (absent = treated as empty)

Technical notes: - stats_id cookie set via setcookie() only when headers not yet sent - Fields 8-16 extend the existing 0-7 statistic.log schema non-destructively - Geoip::getCountry() used only if the Geoip class exists (class_exists check)

Эта неделя (12.05.2026)
Docs: add statistic monitor and browser analysis demo files
Автор: Eduard Laas | Дата: 15:34 12.05.2026

Adds four standalone HTML demo files to docs/ for the statistics subsystem: a browser analysis demo, a monitor dashboard, and two etalon/reference variants. These files are design references and are not loaded by the CMS at runtime.

Core changes:

  1. Demo files (docs/):
  2. statistic-browser-analysis-demo.html — browser/UA analysis visualization
  3. statistic-monitor-dashboard.html — statistics monitor dashboard layout
  4. statistic-monitor-etalon-demo.html — etalon reference demo
  5. statistic-monitor-etalon-v2.html — etalon reference v2

Benefits: - Design references available alongside the codebase for review - No runtime impact; files are not referenced from any CMS module

Technical notes: - Standalone HTML; no CMS dependencies or includes - Located in docs/ which is not served by the web root

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

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

Технологии

PHP MySQL HTML 5 CSS 3 jQuery jQuery UI

Контакты

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

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