אתרים ודפים — קריאה
שלושת הכלים כאן הם קריאה בלבד, והם הצעד הראשון בכל משימת בנייה.
Get-Sites
Section titled “Get-Sites”מחזיר את רשימת האתרים באפליקציה. אין לו פרמטרים.
{}התשובה היא מערך, אובייקט אחד לכל אתר:
[{ "siteId": "6a8a95b63cd0a41edaebecfc", "siteName": "SITE for MyBusiness", "siteUrl": "https://<tenant>.mbapps.co.il/" }]מתי בכלל צריך siteId
Section titled “מתי בכלל צריך siteId”כמעט כל כלי בחבילת הבנייה מקבל siteId כפרמטר רשות, ובחיבור לאפליקציה עם אתר אחד משמיטים אותו והשרת בוחר את האתר של החיבור. Get-Sites נחוץ רק כשהאפליקציה מחזיקה יותר מאתר אחד, ואז מעבירים siteId מפורש לכל כלי דפים.
Get-Site-Pages
Section titled “Get-Site-Pages”מחזיר את כל דפי המערכת.
| הפרמטר | טיפוס | חובה | המשמעות |
|---|---|---|---|
siteId |
String | האתר שממנו לשלוף את הדפים. בהשמטה — האתר של החיבור |
{}לכל דף חוזרים _id, name (הנתיב, למשל apps/mybusiness/Task) ו‑isMasterPage.
במערכת vanilla חוזרים כ‑220 דפים, כולל apps/mybooks/*, apps/mycampaigns/* ו‑apps/mychat/* ולא רק apps/mybusiness/*. סננו לפי הקידומת.
לקרוא את שמות הדפים
Section titled “לקרוא את שמות הדפים”השם הוא נתיב, והוא מקודד את תפקיד הדף:
| הדפוס | מה זה | דוגמה |
|---|---|---|
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 |
דפי מאסטר
Section titled “דפי מאסטר”דף רגיל נושא masterPageId, והתוכן שלו הוא אובייקט שממופתח לפי אזורי התוכן של המאסטר. השניים ממוזגים בזמן ריצה.
| המאסטר | מי משתמש בו | ההתנהגות |
|---|---|---|
CRMmaster |
דפי רשימה, דשבורדים | מסגרת ניווט מלאה |
MasterTicket |
כרטיסי הישויות המובנות (לקוח, מכירה, פנייה) | מסגרת כרטיס; עובד גם בכתובת ישירה (?oid=) |
NewMaster |
כל דף ש‑Create-Form-Page יוצר |
מאסטר של חלון מודאלי: עובד בתוך סרגל צד iframe למשתמש מחובר. בכתובת ישירה עם ?oid=<id> בלבד מציג שדות ריקים; עם ?oid=<id>&cls=<Class>&Mode=Ticket — הפורמט שהמוצר עצמו משתמש בו — הרשומה נטענת |
PortalMaster / Mobile-* |
פורטל לקוחות / דפי מובייל | כמעט לא מותאמים |
אזורי התוכן — _MPID
Section titled “אזורי התוכן — _MPID”התוכן של דף שיושב על מאסטר הוא אובייקט שהמפתחות שלו הם אזורי המאסטר:
| האזור | מה יש בו | מי ממלא |
|---|---|---|
_MPID0 |
התוכן הראשי — הטופס, הסקשנים, השדות, הטבלאות המקושרות | אתם. כל בניית הדף קורית כאן |
_MPID1 |
הסרגל העליון — כפתור חזרה, כותרת דינמית | נוצר אוטומטית |
_MPID2 |
הסרגל התחתון — כפתורי שמירה ומחיקה | נוצר אוטומטית |
_MPID3 |
אזור נוסף, ריק בדפים המובנים | — |
לא כל דף נושא את כל האזורים: דף על NewMaster מחזיר _MPID0 ו‑_MPID1 בלבד, דשבורד על CRMmaster — _MPID0 ו‑_MPID1. כותבים תמיד ל‑_MPID0.
Get-Page-Content
Section titled “Get-Page-Content”מחזיר את ה‑HTML (ואת ה‑CSS/JS) של דף.
| הפרמטר | טיפוס | חובה | המשמעות |
|---|---|---|---|
pageId |
String | * | מזהה הדף (_id בן 24 תווים) |
pageName |
String | * | הנתיב, למשל apps/mybusiness/Sale |
minimal |
Boolean | true = רק מבנה HTML בסיסי. ברירת מחדל false |
|
siteId |
String | האתר |
* נדרש pageId או pageName.
// ניתוח מבנה — מהיר, קריא, וקוטע חלק מהאלמנטים{ "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() → מוצאים את הדף לפי השם, לוקחים את _id2. Get-Page-Content(pageId, minimal:false) → מזהים שורות, עמודות ואלמנטים קיימים3. Get-Schema(className) → מאמתים ששדה שרוצים להציג באמת קייםסוכן שמדלג על השלב השני ומנחש rowId יוצר אלמנט במקום הלא נכון, ומכיוון שאין כלי מחיקת אלמנט התיקון הוא הסתרה ב‑CSS או שחזור גרסה.
מה אין בשכבה הזו
Section titled “מה אין בשכבה הזו”- אין
Delete-Page. דף שלא רוצים מסתירים או משנים לו את השם ל‑_old_*דרךSet-Page-Settings. - אין יצירת דף ריק על מאסטר לבחירתכם. כל דף חדש מתחיל מ‑
Create-Form-Page(עלNewMaster) או משכפול דף קיים. - אין כלי ליצירת טופס חיפוש (
form.dbFormQuery) ואין עריכה של השדות שבתוכו. הדרך היחידה היא לשכפל דף שכבר יש בו אחד, או JS בדף. - אין נעילה בין העורך הוויזואלי ל‑MCP. שניהם עורכים את אותו ארטיפקט, ועריכה במקביל מאבדת את הצד האחד בשקט. תאמו עם מי שפתוח לו ה‑Simbla.
- עריכת דפים ואלמנטים — מה עושים עם המזהים שמצאתם כאן
- הגדרות דף, קוד וגרסאות — מטא‑דאטה, הרשאות פתיחה, וגיבוי לפני שינוי
- אלמנטי דשבורד · טבלאות תצוגה ודפי רשימה
- כלי סכימה — טבלאות ושדות — השדה חייב להתקיים לפני שהוא מגיע לדף
- אינדקס הכלים המלא · שרת ה‑MCP