הדף הזה הוא המפה של מסד הנתונים: כל טבלה שהקוד של הליבה (api/core, מותקן באתר ב-system/) קורא, כותב או יוצר, מקובצת לפי תחום. לכל טבלה מופיעים התפקיד, עמודות המפתח, הקוד שכותב אליה והקוד שקורא ממנה. הדף הוא רפרנס לחיפוש: להבנה כללית של שכבת ה-DB התחילו ב-סקירת שכבת ה-DB.
קידומת: ה-builder מול SQL גולמי#
כל הטבלאות מתחילות ב-CRM_ (הערך של CONFIG::$db_fullprefix, שנגזר מ-CONFIG_USER::$db_prefix). הכלל חשוב ונשבר בקלות:
| API | שם הטבלה | דוגמה |
|---|---|---|
ה-builder: DB::query, DB::update, DB::get_val, DB::delete | בלי CRM_ | DB::query("cron_tasks") |
SQL גולמי: DB::sql, DB::get_all, DB::get_row | עם הקידומת המלאה | "SELECT * FROM " . CONFIG::$db_fullprefix . "cron_tasks" |
// builder: שם בלי קידומת
$tasks = DB::query("cron_tasks", ["is_active" => "1"], "next_run ASC")->get_all();
// SQL גולמי: עם CONFIG::$db_fullprefix, וקלט חיצוני תמיד דרך DB::escape
$row = DB::get_row("SELECT id, admin_id FROM " . CONFIG::$db_fullprefix . "adminPanel_sessions
WHERE token = '" . DB::escape($token) . "' AND expires_at > NOW()");
CONFIG::init() מריץ SELECT * FROM CRM_platforms עם הקידומת כתובה בקוד, ועוד עשרות מקומות בליבה כותבים CRM_ קשיח. הגדרת $db_prefix לערך אחר שבור את האתר. השתמשו ב-CRM.מוסכמות משותפות#
id: כל טבלה שעוברת דרך ה-builder היא עםid INT AUTO_INCREMENT PRIMARY KEY(DB::delete,->update($id)ו-DB::get_val($table, 5)מניחים אותה).<טבלה>_content: אם קיימת טבלה בשםX_content(עמודותparentId,langIdועמודות התוכן), ה-builder מצרף אותה אוטומטית.langIdהואidשל שורה ב-CRM_platforms. פירוט ב-רב-לשוניות ב-DB.platform: בטבלאות ה-SEO קיימת עמודתplatform INTלאתרים עם כמה פלטפורמות.ord: עמודת סדר.panel_tableעםorder_managerמוסיף אותה לבד (ALTER TABLE) אם חסרה.
מי יוצר את הטבלאות#
אין קובץ SQL שמתקין את הכול. הטבלאות מגיעות מארבעה מקורות, וכל שורה בקטלוג למטה מציינת איזה:
| מקור | משמעות |
|---|---|
| ידני / שלד | הטבלה נדרשת מההתקנה. שלד CREATE TABLE משוחזר מופיע ב-SQL להקמה, והמבנה המלא ב-סכמת ה-DB |
| lazy | הקוד יוצר אותה בעצמו בפעם הראשונה שהוא צריך אותה (ensure_table, ensure_schema, CREATE TABLE IF NOT EXISTS) |
| סנכרון מהמאסטר | wizzo_update::update_db() מושך את מבנה הטבלאות מאתר המאסטר של Wizzo (check_version/db_structure) ויוצר חסרות, מוסיף עמודות ואינדקסים. הוא לא מוחק ולא משנה קיימות. ראו עדכון גרסה |
| פאנל יוצר | כלי ניהול כמו create_table ו-db_manager יוצרים טבלאות לפי בקשת המפתח, ראו מנהל ה-DB |
check_version::db_structure מדלג על כל טבלת CRM_trg_*, על CRM_users ועל טבלאות legacy של buttons* ו-newsletter_*. אתר שצריך אותן מקים אותן בעצמו.שלד האתר#
הטבלאות שהאתר לא עולה בלעדיהן. platforms נקראת כבר ב-CONFIG::init, params ב-PARAMS::init, modules בניתוב.
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
platforms | פלטפורמות ודומיינים. "שפה" באתר היא שורה בטבלה הזו | id (הוא CONFIG::$lang ו-langId), domain, allowed_domains, name, direction, ord, seo_title, seo_keywords, seo_description, deftheme, allowads, logo, logo_1, flag | פאנל platforms | CONFIG::init (cache platforms), SEO::tags_summary, Form, SeoPlatform | ידני |
params | פרמטרי מערכת, מפתח וערך | id, sysName (צריך להיות UNIQUE), value, description, perm_developer | פאנל Params, wizzo_update, cron_manager, שירותי Market, ספריות SEO | PARAMS::init (cache params), PARAMS::get, cron_runner, check_version, Todo, market_service | ידני |
modules | המודולים (קונטרולרים) הפעילים באתר | id, moduleName, active | פאנל Modules | MISC::get_modules_tbl (cache modules_lang<lang>), MODULE | ידני |
modules_content | ערכת עיצוב למודול | parentId, langId, template | פאנל Modules (שדה template נשמר כ-content) | לא נקרא ע"י MODULE. נדרש רק כדי שהטופס Modules/insert יעבוד | ידני |
seoUrl | כתובות ידידותיות ו-regex | id, sysname, pageurl, regularexp, ord | פאנל Seo, שדה FormInput_SEO / SeoUrl בטפסים | ROUTER::get_seo_tbl (cache seoUrl_tbl), ROUTER::get_by_url, ROUTER::get_by_friendly | ידני |
redirections | הפניות 301 | id, url_from, url_to | פאנל redirections | ROUTER::redirections (cache redirections), SeoSiteChecks | ידני |
langs_words | מילון ממשק: מפתח המילה | id, sysName, group_id | פאנל ui_langs_legacy | LANGS::get_word | ידני |
langs_words_content | הערך של מילה בכל שפה | parentId, langId, value | פאנל ui_langs_legacy | LANGS | ידני |
langs_words_groups | קבוצות של מילים | id, name | פאנל ui_langs_legacy | פאנל ui_langs_legacy | ידני |
scripts | תגיות סקריפט שמוזרקות לאתר | id, name, is_active, area (head, body_start, body_end), script, ord | פאנל Scripts | PAGE (cache scripts, שאילתה על is_active = 1 לפי ord) | ידני |
pages | עמודי תוכן | id, noDelete | פאנל Pages, chat_actions | פאנל Pages, ניתוב דרך seoUrl.pageurl = pages/<id> | ידני |
pages_content | תוכן העמוד לפי שפה | parentId, langId, title, text | פאנל Pages | פאנל Pages | ידני |
tree | עץ ערכים כללי | id, pid, topID, value | פאנל Tree | פאנל Tree | ידני |
tree_content | שם הצומת לפי שפה | parentId, langId, name | פאנל Tree | פאנל Tree | ידני |
seo_center | מטא-תגיות לפי עמוד או כתובת | id, page_key, is_by_url, title_include_sitename, meta_title, meta_description, meta_keywords, og_title, og_description, og_image, scripts | פאנל seo_center, שדה FormInput_SEO | SEO::tags_summary: קודם page_key = הנתיב עם is_by_url = 1, אחר כך SEO::$page_key עם is_by_url = 0 | ידני |
minify_groups | קבוצות נכסים (JS/CSS) | id, type, area, async, theme | פאנל minify | PAGE, controllers/minify.php | ידני |
minify_files | קבצי הנכסים בכל קבוצה | id, url, group_id | פאנל minify | PAGE, controllers/minify.php | ידני |
tag_manager_groups | קבוצות של תגי מערכת | id, name | פאנל tag_manager | controllers/minify.php | ידני |
tag_manager | תגי מערכת (למשל GTM) שמוגשים ב-tag_manager.js | id, group_id, is_active, is_after_done, environment, name, area, page_key, script, ord | פאנל tag_manager | controllers/minify.php (tag_manager, cache tag_manager) | ידני |
quick_actions | כפתורי קיצור בדף הבית של האדמין | id, title, icon, link | פאנל quick_actions | פאנל home (בתוך try/catch, הטבלה אופציונלית) | ידני |
mail_tpl | תבניות מייל | id, name, sysName, from, fromName, cc, bcc, replay, subject, msg | פאנל MailTpl | Mail_Tpl / mail_tpl::get_tpl_data (לפי sysName) | ידני |
seoUrl ו-pageurl באותיות קטנות
חלק מהקוד כותב pageUrl ו-sysName וחלק pageurl ו-sysname. MySQL לא רגיש לרישיות בשמות עמודות, אבל שמרו על pageurl ו-sysname ב-DDL כדי להתאים ל-ROUTER. פירוט על הניתוב ב-ניתוב, כתובות SEO ו-הפניות.params מכילה גם מפתחות שהליבה עצמה כותבת, למשל attaches_version (גרסת נכסים, Tools::delete_cache מגדיל אותה), log_sql, cron_runner_token, cron_runner_heartbeat, wizzo_market_api_key, mcp_gateway, seo_engine. הרשימה והמשמעות ב-פרמטרים ושפות.אדמין והרשאות#
מבנה תפריט הניהול, המנהלים והקבוצות. ההרשאות נשמרות כ-JSON בקבוצה, ראו הרשאות ו-כניסה לניהול.
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
adminPanel_admins | מנהלי המערכת | id, uname, password (bcrypt), name, email, phone, group_id, allow_ip, skip_otp, auth_provider, external_id, developer_token, last_login, phone_last_code, phone_last_code_date | פאנל Admins, admin_login (קוד OTP), ADMIN (last_login), wizzo_auth (developer_token), יצירת מנהלי bot ב-ai_agents_lib וב-admin_mcp_tools | ADMIN, admin_login, mcp, wizzo_update | ידני. auth_provider ו-external_id מתווספות lazily ב-ADMIN::ensure_sessions_table |
adminPanel_admins_groups | קבוצות הרשאות | id, name, perms (הערך -1 = הכול, אחרת JSON) | פאנל Admins | ADMIN (has_perms), תפריט האדמין, admin_mcp_tools | ידני |
adminPanel_admins_bad_attempts | ניסיונות כניסה שנכשלו | id, uname, password (מקודד), ip, date_created | ADMIN | ADMIN: חסימה אחרי 5 ניסיונות לשם משתמש או 15 ל-IP ב-10 דקות. ניקוי רשומות מעל 24 שעות | ידני |
adminPanel_panels_categories | קטגוריות בתפריט הניהול | id, name, ord | פאנלים PanelList, panel_registry, התקנות | תפריט האדמין, check_version::panel | ידני |
adminPanel_panels | הפאנלים עצמם | id, category, panel_name, text, icon, ord, perm_developer, extra_perms. אופציונלי: view_count | PanelList, panel_registry, todo, install_file_manager, create_table, wizzo_update | AdminModule, תפריט האדמין, admin_panel_views | ידני, תוכן מסונכרן מהמאסטר |
adminPanel_panels_options | תת-עמודים של פאנל שאפשר להגביל בהרשאות | id, panelId, filename (שם המתודה), name, ord | PanelList, install_file_manager, wizzo_update | ADMIN, תפריט האדמין | ידני |
panel_table_order | סדר חיצוני לרשימות panel_table | type, item_id, item_ord. נדרש UNIQUE על type ו-item_id | panel_table (INSERT ... ON DUPLICATE KEY UPDATE) | panel_table (JOIN) | ידני. נדרשת רק עם order_manager_external_tbl |
panel_name רגיש לרישיות
adminPanel_panels.panel_name הוא שם קובץ ושם מחלקה (ADMINMODULE_<panel_name>). בלינוקס Pages ו-pages הם קבצים שונים. רישום פאנל חדש מתואר ב-בניית פאנל וב-פאנלי הליבה.adminPanel_admins_bad_attempts דורשת DEFAULT CURRENT_TIMESTAMP על date_created: ה-INSERT של ADMIN לא כותב אותה.סשנים וטוקנים#
מה שמזהה מי מחובר: סשן האדמין, טוקני MCP, וכניסת משתמשי האתר.
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
adminPanel_sessions | סשני אדמין. הטוקן הוא העוגייה CRM_admin_session | id, admin_id, token (UNIQUE), ip, user_agent, device_label, created_at, last_active_at, expires_at, is_impersonated, impersonated_by | ADMIN (כניסה, הארכה, יציאה), admin_mcp_tools::mint_session ו-agent_mcp (סשנים של MCP) | ADMIN (טעינת הסשן, "המכשירים שלי") | lazy: ADMIN::ensure_sessions_table |
adminPanel_mcp_tokens | טוקני Bearer ל-POST /system/mcp | id, admin_id, name, token (UNIQUE), created_at, last_used_at. בשימוש גם: expires_at, agent_id, run_id, allowed_tools | external_mcp (טוקן השער של Market), ai_agents_lib (טוקן קצר לריצת סוכן) | controllers/mcp.php (אימות ועדכון last_used_at) | lazy: admin_mcp_tools::ensure_tokens_table |
users | משתמשי אתר (כניסת אתר ציבורי). השם הוא LOGIN::$table | id, username, password, active | האתר עצמו (טפסי הרשמה של הפרויקט) | LOGIN::login_by_details, LOGIN::login | אופציונלי, לא מיוצא מהמאסטר |
users_logins | טוקני כניסה פעילים של users | id, uid, token, ip | LOGIN::login | LOGIN::get_token (עד LOGIN::$max_devices האחרונים), LOGIN::logout מוחק | אופציונלי |
adminPanel_mcp_tokens נוצרת בלי כל העמודות
ה-DDL המקומי יוצר רק את עמודות הבסיס. expires_at, agent_id, run_id ו-allowed_tools מגיעות מסנכרון המבנה מהמאסטר. אתר שלא עבר update_db() ייכשל ב-ai_agents_lib וב-mcp.php שמסתמכים עליהן. הטוקנים הם סודות: אל תרשמו אותם ללוגים.פרטים על העוגיות והסשן ב-עוגיות וסשן ועל משתמשי האתר ב-משתמשי אתר.
SEO#
טבלאות ה-SEO שבנויות מהגדרות ה-meta (seo_center, seoUrl, redirections) מופיעות ב"שלד האתר". כאן טבלאות ה-suite, והן נוצרות כולן lazily ע"י הספריות ולא דורשות התקנה. בכולן יש platform INT לתמיכה בכמה פלטפורמות.
| טבלה | תפקיד | עמודות מפתח | כותב | קורא |
|---|---|---|---|---|
seo_findings | ממצא אחד לכל סיבת שורש | finding_key (UNIQUE), check_id, root_cause_key, scope, fix_mode, severity, title_he, evidence, affected_count, affected_traffic, effort, destination, ticket_id, state, answer, accepted_signature, owner_note, first_seen, last_seen, resolved_at | SeoFindings (upsert, קבלה, תשובה, הערה), SeoTickets | SeoContent, SeoTickets, seo_runner, seo_indexnow, SeoHosted::export |
seo_occurrences | העמודים שבהם הממצא מופיע | finding_key, url, url_hash, detail, traffic, first_seen, last_seen, resolved_at. UNIQUE על finding_key ו-url_hash | SeoFindings | SeoContent, SeoTickets, seo_runner, SeoHosted::export |
seo_profile | עובדות שנצברו על האתר | topic, fact, signature, source, finding_key, is_active | SeoFindings | SeoFindings, SeoHosted::export |
seo_runs | שורה לכל ריצת איסוף | ran_at, site_traffic, traffic_days, findings, collector_version | אין כותב בליבה הנוכחית | SeoHosted::export |
seo_metrics | שורה לכל משיכת Search Console | pulled_at, range_start, range_end, impressions, clicks, position, brand_clicks, nonbrand_clicks, discover_impressions, findings_open | אין כותב בליבה הנוכחית | SeoFindings (בסיס להשוואה), SeoHosted::export |
seo_changes | הצעות שינוי, אישור והחזרה | finding_key, panel, row_id, field, headline, context, url, before_value, after_value, before_metrics, after_metrics, measured_at, state, approved_by, created_at, applied_at | SeoContent (נוצרת גם עם ALTER לעמודות שהתווספו מאוחר) | SeoContent, SeoMcp, agent_mcp, SeoHosted::export |
seo_bot_hits | ביקורי בוטים של מנועי חיפוש ו-AI לפי יום | day, bot, hits. UNIQUE על day, bot, platform | SeoBots::track (נקרא מ-PAGE בכל טעינה) | SeoBots |
seo_indexnow_sent | כתובות שכבר הוכרזו ב-IndexNow | url_hash, first_sent. UNIQUE על url_hash ו-platform | SeoIndexNow | SeoIndexNow |
seo_runs ו-seo_metrics הן היסטוריה
בגרסה הנוכחית אף קוד בליבה לא כותב אליהן. הן נוצרות עם שאר הטבלאות, אתרים ישנים מחזיקים בהן שורות, והן נקראות רק לצורכי הייצוא ובסיס ההשוואה. כשהפרמטר seo_engine הוא hosted, המנוע החיצוני מחזיק את המצב ו-SeoHosted::export מעתיק אליו את הטבלאות פעם אחת בהגירה.המשך ב-ה-suite של ה-SEO, ממצאים, IndexNow ו-SEO למפתחים.
AI, MCP וסוכנים#
הטבלאות מתחלקות לשלושה מנגנונים: סוכני אוטומציה (ai_agents*), צ'אט המנהל (ai_chat_*, admin_chat*) ומאגר הפרומפטים. ראו סוכני AI, צ'אט AI ו-סקירת MCP.
סוכנים#
כל שבע הטבלאות נוצרות lazily ב-ai_agents_lib::ensure_schema() (CREATE TABLE IF NOT EXISTS, בתוספת stream_agent_id ל-ai_agents ו-stream_run_id ל-ai_agents_runs).
| טבלה | תפקיד | עמודות מפתח | כותב | קורא |
|---|---|---|---|---|
ai_agents | הגדרת סוכן | id, title, slug (UNIQUE), goal, system_prompt, tools, panels, model, trigger_type, crontime, event_key, approval_mode, bot_admin_id, limits, notify, status, is_active, next_run, last_run | ai_agents_lib, ai_agent_runner | ai_agent_runner, ai_agents_lib, admin_mcp_tools |
ai_agents_runs | ריצות | id, agent_id, parent_run_id, trigger_src, idempotency_key (UNIQUE), status, run_secret, started_at, finished_at, steps_count, tokens_in, tokens_out, credits_cost, summary, error, dry_run | ai_agents_lib, ai_agent_runner | ai_agent_runner, פאנלי הצ'אט |
ai_agents_run_steps | צעדי ריצה | run_id, step_num, type, tool_call_id, tool_name, tool_args, tool_result, duration_ms, narration. UNIQUE על run_id ו-tool_call_id | ai_agent_runner | ai_agent_runner |
ai_agents_memory | זיכרון הסוכן | agent_id, kind (work, episode, insight, feedback, playbook), mem_key, mem_value, source_run_id, reinforced_count | ai_agents_lib, admin_mcp_tools (הכלי remember) | ai_agents_lib, admin_mcp_tools |
ai_agents_approvals | פעולות כתיבה שממתינות לאישור | run_id, agent_id, action_type, panel, record_id, payload, record_snapshot, status, decided_by, decided_at | admin_mcp_tools, ai_agents_lib | ai_agents_lib, admin_mcp_tools |
ai_agents_tool_ledger | אידמפוטנטיות של קריאות כלי | run_id, tool_call_id, result. UNIQUE על run_id ו-tool_call_id | admin_mcp_tools | admin_mcp_tools |
ai_agents_versions | גרסאות הגדרה של סוכן | agent_id, definition, created_by, created_at | אין כותב בקוד (טבלה שמורה) | אין |
צ'אט המנהל, פרומפטים וכלים#
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
admin_chat | צ'אט פנימי בין מנהלים | id, admin_id, message, file_url, file_name, date_created | פאנל admin_chat, הכלי notify_admin, ai_agents_lib | פאנל admin_chat | lazy: admin_chat::ensure_table |
admin_chat_read | מצב קריאה לכל מנהל | admin_id (PK), last_read_id | פאנל admin_chat | פאנל admin_chat | lazy |
ai_chat_conversations | שיחות הצ'אט של המנהל | id, admin_id, title, model, system_prompt, is_pinned, is_archived, last_message_at, created_at, updated_at | פאנל ai_chat | פאנל ai_chat | סנכרון מהמאסטר |
ai_chat_messages | הודעות בשיחה | id, conversation_id, role, content, message_type, tool_call_id, tool_name, tool_data, metadata, attachments, created_at | פאנל ai_chat | פאנל ai_chat | סנכרון מהמאסטר |
ai_chat_memory | זיכרון קבוע לכל מנהל | id, admin_id, category, memory_key, memory_value, source_conversation_id, created_at, updated_at | פאנל ai_chat | פאנל ai_chat | סנכרון מהמאסטר |
ai_chat_instructions | הנחיות שמוזרקות ל-system prompt | id, title, content, panel_name, is_active, ord, created_at, updated_at | פאנל ai_chat_settings | פאנל ai_chat | lazy: ai_chat_settings::ensure_table |
ai_chat_automations | חוקי אוטומציה על שמירת טפסים | id, slug (UNIQUE), title, instruction, rules, behavior, confidence_threshold, watch_fields, fail_policy, is_active, ord | פאנל ai_chat_automations_settings | פאנל ai_chat | lazy |
ai_commands | פעולות מוכנות לצ'אט | id, title, icon, description, json_schema, examples, api_url, is_active, sort_order | פאנל ai_commands | פאנל ai_commands, תפריט האדמין (בודק עם SHOW TABLES) | סנכרון מהמאסטר |
ai_prompts | מאגר פרומפטים לפי שם | id, sysname, content, model, version | פאנל ai_prompts, storage_ai_prompts_seed | wizzo_ai::get_prompt (לפי sysname) | סנכרון מהמאסטר |
ai_prompts_versions | היסטוריית גרסאות לפרומפט | id, prompt_id, version_number, content, model, created_by, is_current | פאנל ai_prompts | פאנל ai_prompts (שחזור גרסה) | סנכרון מהמאסטר |
ai_tools | מנגנון ישן: כלי AI מתוזמנים מ-application/ai_tools/ | id, sys_name, crontime, next_run, last_run, is_active | אין פאנל בליבה | controllers/ai_cron.php | legacy |
safe_sql_log | לוג הרצות SQL בפאנל ושל קריאות MCP | id, admin_id, admin_name, sql_query, success, details, ip_address, created_at | פאנל safe_sql, mcp, agent_mcp | פאנל safe_sql | lazy: safe_sql::create_log_table |
ai_chat_* ו-ai_prompts בלי DDL מקומי
הקוד של הליבה לא מכיל CREATE TABLE לשלוש טבלאות הצ'אט, ל-ai_commands, ל-ai_prompts ול-ai_prompts_versions. אתר שלא הריץ update_db() לא יכיל אותן. פירוט על ההרצה ב-עדכון גרסה.ai_agents_versions ו-ai_tools
ai_agents_versions נוצרת אבל לא נכתבת. ai_tools שייכת למנגנון ה-cron הישן, והחלופה היא ai_agents. הסבר על כלי MCP ב-כלי MCP.Cron, ריצות ועדכונים#
תזמון משימות, יומני ריצה ובריאות המערכת. ראו cron, אבחון ו-בריאות וביצועים.
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
cron_categories | תיקיות של משימות | id, name, is_active. id = 1 שמור ל"מערכת" | פאנל cron_manager, wizzo_update | cron_runner (JOIN), SystemHealth | סנכרון מהמאסטר |
cron_tasks | המשימות המתוזמנות | id, category_id, title, url, params, crontime, is_active, next_run, last_run, runs_count | פאנל cron_manager, cron_runner (מעדכן next_run, last_run, runs_count), wizzo_update | cron_runner, cron_manager, SystemHealth | סנכרון מהמאסטר |
cron_logs | יומן הרצות | id, task_id, url, params, status (running, ok, error), started_at, finished_at, duration_ms, output, error_message | CronLogger (פותח שורה running, סוגר בסיום, וגוזם לאחרונות לכל משימה) | פאנל cron_manager, SystemHealth | סנכרון מהמאסטר |
wizzo_update_log | יומן עדכוני גרסה | id, date_created, admin_id (0 = אוטומטי), status, error_text, from_version, to_version, head_sha, prev_sha, commits_count, ai_summary, ai_summary_date | wizzo_update (ensure_schema, log_update) | wizzo_update, agent_mcp | lazy |
system_health_reports | דוחות בריאות שמורים | (אין DDL ואין כותב בליבה) | אין | OlegAgent (מייצא עד 50 אחרונים) | ללא בעלים בקוד הנוכחי |
ה-runner נקרא כל דקה (php index.php url=system/cron_runner tk=<cron_runner_token>), והטוקן והדופק נשמרים ב-params (cron_runner_token, cron_runner_heartbeat). פרטים מלאים ב-cron.
מייל והודעות#
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
emails_queue | תור שליחת מיילים כש-CONFIG::$mail_queue פעיל | id, data (אובייקט PHPMailer בהמרת serialize), mail_tpl, priority, pid, is_sent, log, send_date | MISC::add_mail_to_queue | Tools::cron_emails_queue (שולף עד 250 עם is_sent = 0, מסמן, שולח, ומוחק נשלחות מעל 24 שעות) | אופציונלי |
push_manager | הודעות פוש מתוזמנות לרשומה | id, item_type, item_id, title, content, date_send, is_send | FormInput_PushManager | FormInput_PushManager. השליחה עצמה בשירות POOSH, לא בליבה | אופציונלי |
wzcontact | פניות מהאתר | id, email, subject, content, display_name | m_wzcontact | פאנל wzcontact, m_wzcontact | אופציונלי |
wzcontact_messages | הודעות בשרשור של פנייה | id, contact_id, content, is_system_message, is_read | m_wzcontact (תשובה שולחת גם מייל) | פאנל wzcontact, m_wzcontact | אופציונלי |
emails_queue.data הוא serialize של אובייקט
התור שומר אובייקט PHPMailer שלם ומשחזר אותו ב-unserialize בעת השליחה. אל תכתבו אליו מקור שאינו הקוד של הליבה. פירוט ב-מייל.אנליטיקס#
מונה אירועים פנימי ודשבורד. ראו את הפאנל analytics ב-פאנלי הליבה.
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
analytics | ספירה יומית לפי פריט ואירוע | item_type, item_id, event, stat_date, total, total_unique. נדרש UNIQUE על item_type, item_id, event, stat_date | m_analytics (INSERT ... ON DUPLICATE KEY UPDATE) | פאנל analytics | ידני |
analytics_realtime | אותה ספירה בדיוק של דקה | אותן עמודות. stat_date בפורמט Y-m-d H:i | m_analytics | פאנל analytics (get_real_time) | ידני |
analytics_events | רשימת האירועים המותרים | id, event | פאנל analytics | m_analytics (cache analytics_events): אירוע שלא ברשימה נדחה | ידני |
analytics_tokens | מבקרים פעילים (טוקן, זמן, כתובת) | token, last_login, url | m_analytics (לכל היותר פעם ב-10 דקות לדפדפן) | פאנל analytics (מנקה רשומות מעל שעה) | ידני |
analytics_tokens_sum | סיכומי מבקרים לאורך זמן | total, stat_date | פאנל analytics | פאנל analytics | ידני |
trg_banners, trg_banner_groups, trg_campaigns | נתוני שירות TARGET של Market | (הפאנל קורא trg_banners בשאילתת JOIN עם trg_banner_groups) | שירות TARGET | פאנל analytics | לא מיוצאות מהמאסטר |
פירוט על שירותי Market ב-סקירת Market וב-קטלוג השירותים.
קבצים ומדיה#
| טבלה | תפקיד | עמודות מפתח | כותב | קורא | מקור |
|---|---|---|---|---|---|
storage | רשומה לכל קובץ מדיה | id, uuid, name, ext, path, remote, data (JSON), tumb, uploaded_by, ord, object_type, object_id, copyrights, description, folder_id, filename_type, label, tags, is_hide. אופציונלית: file_hash (נבדקת ב-is_column_exists) | STORAGE::add ושאר מתודותיה, פאנל storage, כלי ה-MCP לייבוא מדיה | STORAGE, פאנל storage, שדות FormInput_drop ו-VGallery, search_media | ידני |
storage_folders | תיקיות בספריית המדיה | id, pid, name, tags | פאנל storage | פאנל storage | ידני |
file_manager_log | יומן פעולות של מנהל הקבצים | id, admin_id, action, path, bytes, note, ip, user_agent, created | פאנל file_manager | פאנל file_manager | lazy: install_file_manager::ensureLogTable |
המשך ב-אחסון, אבטחת העלאות ו-מנהל הקבצים.
שאריות, שמות שאינם טבלאות וטבלאות של Market#
| שם | מה זה |
|---|---|
langs | טבלה ישנה. נקראת רק ב-DB_UPDATE_CLASS::copyToAllLangs, ושם היא שבורה. "שפה" מיוצגת היום ב-platforms |
buttons, buttons_categories ועוד _content שלהן, ו-newsletter_messages, newsletter_messages_track, newsletter_recipients, newsletter_types, newsletter_unsubscribe | שאריות legacy. הליבה לא משתמשת בהן, והיא רק מוציאה אותן מייצוא המבנה ב-check_version::db_structure |
mcp_connections | טבלה בצד של Market ולא של האתר. הקוד מזכיר אותה רק בהערה של external_mcp |
admin_logged, admin_session | לא טבלאות: אלה העוגיות CRM_admin_logged ו-CRM_admin_session. ראו עוגיות וסשן |
Calendar | לא טבלה: תיקיית הנכסים assets/CRM_Calendar/ של שדה התאריך הישן |
ראו גם#
- סכמת ה-DB: העמודות, האינדקסים והסוגים של טבלאות השלד
- SQL להקמה: שלד
CREATE TABLEלהקמת אתר חדש - סקירת שכבת ה-DB ו-רב-לשוניות ב-DB
- הרשאות אדמין: מבנה ה-JSON ב-
adminPanel_admins_groups.perms - עדכון גרסה: איך הסנכרון מהמאסטר יוצר טבלאות