הריפו wizzo-products/wizzo50_core מכיל את ליבת WIZZO CMS ועוד כמה דברים שאינם הליבה. הדף עובר על כל תיקייה ואומר מה היא, מי משתמש בה, ומה אפשר להתעלם ממנו. הוא מתאר את מצב הריפו בגרסה 5.0.115 (אוקטובר 2026).
עיקרון אחד שכדאי לזכור מההתחלה: רק api/core/ ו-api/js/ מגיעים לאתרים. כל השאר הוא כלי עבודה, תיעוד או חומר צדדי.
מבט על#
wizzo50_core/
├── api/
│ ├── core/ הליבה: מה שנפרס ל-<site>/system/core
│ └── js/ ארבעה קבצי JS משותפים: נפרסים ל-<site>/system/js
├── publish_scripts/ סקריפטי העלאה (Node) וסקריפטי בניית מובייל
├── website/ אתר התיעוד הזה (cms.wizzo.market)
├── docs/ מסמכי ביקורת פנימיים
├── promo_video*/ פרויקטי סרטוני פרומו (לא קשורים לליבה)
├── assets/ שלושה קבצי תמונה שנשארו בטעות
├── package.json תלויות של סקריפטי הפריסה
└── *.md מסמכי אפיון ויומני עבודה בשורש
api/core: הליבה#
כל מה שבתיקייה הזו נפרס לאתר כ-system/core/. היא בנויה מתיקיות לפי תפקיד:
| תיקייה | תוכן | מי טוען אותה |
|---|---|---|
core.php | נקודת הכניסה. טוענת את כל קבצי collections/*.php ב-glob, מריצה את ה-boot ומחזירה את העמוד. | index.php של האתר, ב-require |
version.txt | מספר הגרסה (5.0.115). מקור האמת היחיד לגרסה. | מנגנון העדכון, core_ping ועוד |
composer.json | שש תלויות. אין composer.lock ואין vendor/. | ידנית, ראו חבילות Composer |
collections/ | המחלקות הסטטיות הגלובליות: CONFIG, DB, PAGE, ROUTER, MODULE, ADMIN, LOGIN, COOKIES, CRYPT, MISC, FILES, STORAGE, cache_engine, SEO, MASK, PARAMS, LANGS, SESSION, WIZZO_KEY, WIZZO_NET, CronLogger, theme, ו-STORAGEOLD (ישן, נטען עדיין בכל בקשה). | core.php, אוטומטית |
controllers/ | קונטרולרי המערכת, נגישים ב-/system/<name>/<action>: check_version, core_ping, cron_runner, mcp, agent_mcp, connector, minify ועוד. | הנתב, לפי כתובת |
admin/ | פאנלי הניהול של הליבה, כל קובץ מחלקה ADMINMODULE_<name>: wizzo_update, db_manager, file_manager, cron_manager, platforms, Params ועוד. | AdminModule, לפי כתובת |
libraries/ | ספריות: panel_table.php, AdminModule.php, FileManager.php, ספריות SEO, market_service.php, ו-forms/ עם מערכת הטפסים (Form, FormInput_*). | $this->load->library("name") |
addons/ | קוד צד שלישי שהועתק לריפו ידנית: Smarty (גרסה 5, בשימוש), PHPMailer, scssphp-master, JShrink-master, simplehtmldom, Mobile_Detect, zend_db, aws, Google, PHPExcel, ושני עותקים מיושנים (Smarty_v4_backup, PHPExcel/OLD). | require_once ממקומות מפורשים |
assets/ | JS, CSS ו-SCSS של פאנל הניהול והרכיבים: fontawesome, ckeditor, wzeditor, panel_table_vue, file_manager, תיקיית נכסים לכל שדה FormInput_*, וספריות צד שלישי. | הדפדפן, דרך הנתב |
themes/ | ערכות הנושא של מסכי הניהול: admin_login ו-admin_panel. | פאנל הניהול |
views/ | תבניות Smarty של פאנלי הליבה (admin/, charts/, pdf_viewer/). | system_view() |
ערכות הנושא של האתר עצמו (themes/<name>/), הקונטרולרים, התצוגות והפאנלים שלו (application/) ותיקיית ה-storage/ יושבים באתר ולא בריפו הליבה. ראו מבנה התיקיות של אתר.
איפה מוסיפים קוד חדש בליבה#
| מה בונים | איפה | דף מדריך |
|---|---|---|
קונטרולר מערכת (כתובת /system/<name>) | api/core/controllers/<name>.php, מחלקה <name> extends bgl_controller | קונטרולרי מערכת |
| פאנל ניהול של הליבה | api/core/admin/<name>.php, מחלקה ADMINMODULE_<name> | בניית פאנל |
| ספרייה | api/core/libraries/<name>.php | ה-Collections |
| מחלקה סטטית חדשה | api/core/collections/<NAME>.php | ה-Collections |
| תבנית של פאנל | api/core/views/admin/<panel>/ | בניית פאנל |
כל קובץ שנכנס ל-api/core/controllers/ הופך לכתובת ציבורית /system/<name>, וכל מתודה ציבורית בו לפעולה. אם הקונטרולר לא בודק הרשאה בעצמו, כל אחד יכול להפעיל אותו. פרטים ב-מודל האבטחה.
api/js#
ארבעה קבצים: MISC.js, analytics.js, jquery.min.js, system.js. הם נפרסים ל-<site>/system/js/ ומופצים לצי בנפרד מהליבה: ה-master מגיש אותם כ-ZIP נפרד, והאתר מחליף את system/js (עם גיבוי js_bup_<timestamp>) בכל עדכון גרסה. תיאור הקבצים ב-ה-JS שנטען בכל עמוד.
publish_scripts#
סקריפטי Node להעלאת קבצים לשרת, ועוד סקריפטים של בניית אפליקציית מובייל.
| קובץ | תפקיד | רלוונטי לליבה |
|---|---|---|
publish.generic.js | העלאת תיקייה ב-FTP או SFTP, מלאה או רק קבצים שהשתנו | כן |
watch-api.js | צפייה ב-api/ והעלאה אוטומטית בכל שמירה | כן |
wizzoagent-deploy.js | הפריסה האוטומטית אחרי merge | כן |
deploy-api.js | העלאה מלאה חד-פעמית של api/ (כפול ל-publish:api) | חלקי |
publish-web.js | העלאת dist/ של אפליקציית Vue שאינה בריפו | לא |
build.ps1, build_publish.ps1, build-publish-ios.sh, publish-android.js | בניית אפליקציה ופרסום לחנויות | לא |
שימוש וחוקי הסביבה ב-סביבת פיתוח ופריסה.
website#
אתר התיעוד והתדמית הסטטי (cms.wizzo.market), שנבנה מהריפו כדי שהתיעוד יישאר צמוד לקוד. מקורות הדפים הם קבצי Markdown ב-website/docs-src/, והמבנה ב-website/docs-src/nav.json. בונים עם npm run build:site משורש הריפו, ומועלים עם npm run publish:site. הכללים לכתיבת דף ב-website/README.md. כשמשנים התנהגות בקוד, מעדכנים את הדף המתאים באותו PR (ראו תרומת קוד ו-PR).
docs#
תיקיית מסמכים פנימיים. כרגע מכילה את audit-2026-10-01/, ביקורת העומק של הליבה (גרסה 5.0.114), שממנה נגזרה מפת הדרכים. הדוחות שם מתארים חולשות בפירוט ולכן אינם מיועדים לפרסום.
קבצים בשורש שאינם תיעוד של הליבה#
| קובץ או תיקייה | מה זה באמת |
|---|---|
package.json, package-lock.json | תלויות הסקריפטים (basic-ftp, ssh2-sftp-client, chokidar, dotenv) ושאריות של אפליקציית Vue/Cordova. הגרסה 0.1.0 לא קשורה לגרסת הליבה. |
.eslintrc.js, jsconfig.json | הגדרות של אפליקציית Vue שאינה בריפו. |
AI_AGENTS_SPEC.md, AGENTS_BUILD_LOG.md, SEO_COLLECTOR_SPEC.md, FILE_MANAGER_PLAN.md | מסמכי אפיון ויומני עבודה היסטוריים. חלקם מתארים תכנון ולא את מה שמומש, וחלקם מפנים לקבצים שכבר לא קיימים. |
DB_MANAGER_README.md | מדריך למשתמש של פאנל db_manager. תיעוד עדכני יותר ב-מנהל מסד הנתונים. |
promo_video/, promo_video_mcp/, promo_video_mcp_tutorial/, promo_video_stream/ | פרויקטי Puppeteer ו-ffmpeg לסרטוני פרומו, כולל קבצי וידאו ואודיו. בסך הכול עשרות מגה-בייטים שלא קשורים לליבה. |
assets/ | שלושה קבצי PNG שנשמרו בטעות, ושמם נגזר מנתיב מקומי של עורך. |
README.md | כולל כיום רק את שם הריפו. ההסבר על האתר ב-website/README.md. |
.env, .mcp.json | קבצי הגדרות מקומיים של סביבת העבודה. לא נוגעים בהם ולא מעתיקים אותם. |
חלק מהקבצים האלה (חומר שיווקי כבד, קבצי הגדרות מקומיים שלא היו אמורים להיכנס ל-git, קוד צד שלישי ישן) הם חוב ידוע. הם מופיעים ב-מפת הדרכים כחלק מ"ריפו שמפתח חיצוני יכול לשכפל ולהריץ". עד אז: אל תוסיפו קבצים בינאריים כבדים, ואל תעשו commit לקבצי סביבה.
כללי אצבע לעבודה בריפו#
- שינוי בליבה נוגע ב-
api/core/בלבד. שינוי ב-website/אינו מגיע לאף אתר, ושינוי ב-docs/או בשורש אינו מגיע גם הוא. - אל תערכו קבצים תחת
addons/אוassets/של ספריות צד שלישי. אם צריך תיקון, תעדו אותו בהערה בקובץ, כדי שמי שיעדכן את הספרייה ידע לשחזר אותו. - הליבה בנויה על טעינה ב-
globו-require_once: אין namespaces ואין autoload. קובץ חדש ב-collections/נטען אוטומטית, קובץ ב-libraries/נטען ב-$this->load->library(). - שם המחלקה זהה לשם הקובץ (
class check_versionב-check_version.php,ADMINMODULE_wizzo_updateב-wizzo_update.php).