מבנה הריפו

מה יושב בכל תיקייה בריפו wizzo50_core, מה מהריפו מגיע לאתר בפועל, ומה בו אינו חלק מהליבה אלא שאריות, מסמכי תכנון או חומר שיווקי.

⏱ 6 דק' קריאה 1061 מילים ערוך דף זה ב-GitHub

הריפו 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>/בניית פאנל
כל קובץ ב-controllers נגיש מהרשת

כל קובץ שנכנס ל-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).

ראו גם#

מצאתם טעות או חוסר? תקנו את הדף או פתחו Issue בריפו. התיעוד נכתב מתוך הקוד של ליבה 5.0.115.