דלגו לתוכן

או התחילו מנקודה בטוחה: אינדקס הכלים המלא · מפת הטבלאות המרכזיות

מערכת חדשה — 14 יום חינם

אתרים ודפים — קריאה

עודכן 23.08.2026

לפני שעורכים דף צריך למצוא אותו, ולפני שמוסיפים אלמנט צריך לדעת לאיזה מזהה. שלושת הכלים בעמוד הזה הם קריאה בלבד, והם הצעד הראשון בכל משימת בנייה.

מחזיר את רשימת האתרים באפליקציה. אין לו פרמטרים.

JSON
{}

התשובה היא מערך, אובייקט אחד לכל אתר:

JSON
[{ "siteId": "6a8a95b63cd0a41edaebecfc",
"siteName": "SITE for MyBusiness",
"siteUrl": "https://<tenant>.mbapps.co.il/" }]

כמעט כל כלי בחבילת הבנייה מקבל siteId כפרמטר רשות. בחיבור רגיל — אפליקציה אחת עם אתר אחד — משמיטים אותו והשרת בוחר את האתר של החיבור. Get-Sites נחוץ רק כשהאפליקציה מחזיקה יותר מאתר אחד, ואז מעבירים siteId מפורש לכל כלי דפים.

מחזיר את כל דפי המערכת.

הפרמטר טיפוס חובה המשמעות
siteId String האתר שממנו לשלוף את הדפים. בהשמטה — האתר של החיבור
JSON
{}

לכל דף חוזרים _id, name (הנתיב, למשל apps/mybusiness/Task) ו‑isMasterPage.

במערכת vanilla חוזרים כ‑220 דפים — כולל דפי apps/mybooks/*, apps/mycampaigns/* ו‑apps/mychat/*, לא רק apps/mybusiness/*. סננו לפי הקידומת.

השם הוא נתיב, והוא מקודד את תפקיד הדף:

הדפוס מה זה דוגמה
apps/mybusiness/<Name>sרבים דף רשימה (טבלת תצוגה) apps/mybusiness/Accounts
apps/mybusiness/<Name>יחיד דף כרטיס (טופס רשומה) apps/mybusiness/Account
Mobile-* גרסת המובייל של אותו דף apps/mybusiness/Mobile-Sale
Dashboard* דשבורד apps/mybusiness/DashboardSales
apps/mybusiness/System-Tables-* דף ניהול לטבלת lookup מערכתית apps/mybusiness/System-Tables-Sale-Statuses
isMasterPage: true דף מאסטר — מחזיק את מסגרת הניווט apps/mybusiness/CRMmaster

המוסכמה הזו היא הכלי היעיל ביותר לאיתור דף. מחפשים את כרטיס המכירה? apps/mybusiness/Sale. את דף הרשימה? apps/mybusiness/Sales.

דף רגיל אינו עומד לבד: הוא נושא masterPageId, והתוכן שלו הוא אובייקט שממופתח לפי אזורי התוכן של המאסטר. השניים ממוזגים בזמן ריצה.

המאסטר מי משתמש בו ההתנהגות
CRMmaster דפי רשימה, דשבורדים מסגרת ניווט מלאה
MasterTicket כרטיסי הישויות המובנות (לקוח, מכירה, פנייה) מסגרת כרטיס; עובד גם בכתובת ישירה (?oid=)
NewMaster כל דף ש‑Create-Form-Page יוצר מאסטר של חלון מודאלי: עובד בתוך סרגל צד iframe למשתמש מחובר. בכתובת ישירה עם ?oid=<id> בלבד מציג שדות ריקים; עם ?oid=<id>&cls=<Class>&Mode=Ticket — הפורמט שהמוצר עצמו משתמש בו — הרשומה נטענת
PortalMaster / Mobile-* פורטל לקוחות / דפי מובייל כמעט לא מותאמים

התוכן של דף שיושב על מאסטר הוא אובייקט שהמפתחות שלו הם אזורי המאסטר:

האזור מה יש בו מי ממלא
_MPID0 התוכן הראשי — הטופס, הסקשנים, השדות, הטבלאות המקושרות אתם. כל בניית הדף קורית כאן
_MPID1 הסרגל העליון — כפתור חזרה, כותרת דינמית נוצר אוטומטית
_MPID2 הסרגל התחתון — כפתורי שמירה ומחיקה נוצר אוטומטית
_MPID3 אזור נוסף, ריק בדפים המובנים

לא כל דף נושא את כל האזורים: דף על NewMaster מחזיר _MPID0 ו‑_MPID1 בלבד, דשבורד על CRMmaster_MPID0 ו‑_MPID1. כותבים תמיד ל‑_MPID0.

מחזיר את ה‑HTML (ואת ה‑CSS/JS) של דף.

הפרמטר טיפוס חובה המשמעות
pageId String * מזהה הדף (_id בן 24 תווים)
pageName String * הנתיב, למשל apps/mybusiness/Sale
minimal Boolean true = רק מבנה HTML בסיסי. ברירת מחדל false
siteId String האתר

* נדרש pageId או pageName — אחד מהשניים.

JSON
// ניתוח מבנה — מהיר, קריא, וקוטע חלק מהאלמנטים
{ "pageName": "apps/mybusiness/Sale", "minimal": true }
// גילוי אלמנטים אינטראקטיביים — האמת המלאה
{ "pageId": "69bfd6c945604bc0d35674fb", "minimal": false }

התשובה נושאת _id, name, isMasterPage, masterPageId, publishedAt, content (אובייקט אזורי ה‑_MPID — ראו למעלה), cssCode, jsCode ו‑isRtl. ב‑minimal: true ה‑content אינו HTML אלא עץ טקסטואלי מקוצר (tag / id / class / children, בסגנון YAML) — קריא לניתוח מבנה, לא לחיפוש מחרוזות HTML.

לדף שיש לו masterPageId, גם המאפיין isRtl חוזר — הוא נורש מהמאסטר. במערכת עברית הוא true, ואז עמודה 0 מרונדרת בצד ימין.

מודל הדף — מה מחפשים ב‑HTML

Section titled “מודל הדף — מה מחפשים ב‑HTML”
form.dbForm (data-simbla-class="Suppliers") ← מה שקושר את הטופס למחלקה ב‑DB
└── div.rDivider ← שורה. זה מה ש‑Edit-Page מכנה row
└── div.sDivider.col-md-N ← עמודה בגריד של 12
└── div.form-group → <label> + <input> ← שדה
מה שרואים ב‑HTML מה זה לאיזה פרמטר זה נכנס
div.rDivider עם data-title="Row" שורה בגריד toExistingRow, newRowAfterRow, rowId, insertAfterRow
div.sDivider עם data-title="Column" עמודה בשורה, 0‑based toExistingColumn, columnNumber
data-simbla-class על הטופס המחלקה שהטופס כותב אליה tableClassName ב‑Edit-Table-View
מזהה אלמנט (P272, P113) האלמנט עצמו elemId, intoExistingElemId, tableId, afterElement
מחלקה simblaEL אלמנט שניתן לשכפול elemId ב‑Duplicate-Element
מחלקה ai-placeHolder שורה ריקה שממתינה למילוי דף טרי מ‑Create-Form-Page נולד עם אחת כזו

שלושת הצעדים שכל משימת בנייה מתחילה בהם

Section titled “שלושת הצעדים שכל משימת בנייה מתחילה בהם”
1. Get-Site-Pages() → מוצאים את הדף לפי השם, לוקחים את _id
2. Get-Page-Content(pageId, minimal:false) → מזהים שורות, עמודות ואלמנטים קיימים
3. Get-Schema(className) → מאמתים ששדה שרוצים להציג באמת קיים

רק אחרי שלושת אלה כותבים. סוכן שמדלג על השלב השני ומנחש rowId יוצר אלמנט במקום הלא נכון — ומכיוון שאין כלי מחיקת אלמנט, התיקון הוא הסתרה ב‑CSS או שחזור גרסה.

  • אין Delete-Page. דף שלא רוצים מסתירים או משנים לו את השם ל‑_old_* דרך Set-Page-Settings.
  • אין יצירת דף ריק על מאסטר לבחירתכם — כל דף חדש מתחיל מ‑Create-Form-Page (על NewMaster) או משכפול דף קיים.
  • אין כלי ליצירת טופס חיפוש (form.dbFormQuery) ואין עריכה של השדות שבתוכו. הדרך היחידה היא לשכפל דף שכבר יש בו אחד, או JS בדף.
  • אין נעילה בין העורך הוויזואלי ל‑MCP — שניהם עורכים את אותו ארטיפקט. עריכה במקביל מאבדת את הצד האחד בשקט. תאמו עם מי שפתוח לו ה‑Simbla.