התאמת תבניות רכיבים סטנדרטיות ב-1C-Bitrix
הפריסה אושרה, הסממנים מוכנים, אבל catalog.element מציג את כרטיס המוצר לא לפי העיצוב — זהו כאב ראש טיפוסי של אינטגרטורים. עריכה ישירה של /bitrix/components/ מבטיחה אובדן שינויים בעדכון המערכת הראשון. הגישה התעשייתית היא תבניות מותאמות אישית ב-/local/ שנמנעות מנגיעה בליבה. במשך שנים רבות, ערכנו תבניות ביותר מ-50 פרויקטים — מחנויות מקוונות עם קטלוגים של 100,000 פריטים ועד פורטלים ארגוניים. לא היה כשל אחד במהלך עדכונים. מומחי 1C-Bitrix מוסמכים מבטיחים תאימות לגרסאות הפלטפורמה העדכניות. במאמר זה, נסקור כיצד ליצור תבנית מותאמת אישית בצורה נכונה ולהימנע מטעויות נפוצות.
למה לא כדאי לערוך תבניות ב-/bitrix/
שינוי קבצים ב-/bitrix/components/bitrix/ מוביל להחלפתם במהלך התקנת עדכון. גם אם העדכון לא משפיע על התבנית, השינויים ייעלמו עם התיקון הבא. השיטה הנכונה היא עקיפה דרך /local/. Bitrix מחפש תבנית רכיב בסדר הבא:
-
/local/templates/<шаблон_сайта>/components/<namespace>/<компонент>/<шаблон>/ -
/local/components/<namespace>/<компонент>/templates/<шаблон>/ -
/bitrix/templates/<шаблон_сайта>/components/... -
/bitrix/components/<namespace>/<компонент>/templates/<шаблон>/
מספיק ליצור את מבנה התיקיות הנדרש ב-/local/ ולהציב שם את הקובץ המעודכן. המקור ב-/bitrix/ נשאר ללא שינוי. תבניות מותאמות אישית אמינות פי 5 מעריכת ליבה — הניסיון שלנו מאשר זאת. ללימוד מעמיק, אני ממליץ על התיעוד הרשמי בנושא תבניות רכיבים.
| קריטריונים | עריכה ב-/bitrix/ | תבנית מותאמת אישית ב-/local/ |
|---|---|---|
| שימור במהלך עדכונים | אבוד | נשמר במלואו |
| תחזוקה | כאוטית, קשה למעקב | ניהול גרסאות, מבנה ברור |
| סיכון לקונפליקטים | גבוה | מינימלי |
| זמן הגדרה | דקות (לא אמין) | שעות (אמין) |
כיצד להתאים תבנית רכיב בצורה בטוחה
ניקח לדוגמה את bitrix:catalog.element — כרטיס המוצר. אנו מסתכלים על המקור אך לא נוגעים בו:
// Оригинальный шаблон (не трогать)
// /bitrix/components/bitrix/catalog.element/templates/.default/template.php
// Наш кастомный шаблон в /local/
// /local/templates/my_site/components/bitrix/catalog.element/.default/template.php
// /local/templates/my_site/components/bitrix/catalog.element/.default/style.css
// /local/templates/my_site/components/bitrix/catalog.element/.default/script.jsב-// Оригинальный шаблон (не трогать) // /bitrix/components/bitrix/catalog.element/templates/.default/template.php // Наш кастомный шаблон в /local/ // /local/templates/my_site/components/bitrix/catalog.element/.default/template.php // /local/templates/my_site/components/bitrix/catalog.element/.default/style.css // /local/templates/my_site/components/bitrix/catalog.element/.default/script.js , כל המשתנים שהוכנו על ידי הרכיב זמינים: template.php, $arResult, $arParams. צפו בהרכבם דרך $arCurrentValues או רכיב ה-\Bitrix\Main\Diag\Debug::dump($arResult).
כללו את התבנית בקוד העמוד:
<?
$APPLICATION->IncludeComponent(
"bitrix:catalog.element",
".default", // имя шаблона
[
"IBLOCK_TYPE" => "catalog",
"IBLOCK_ID" => 12,
],
false
);
?>אם יש צורך בתבנית נפרדת לעמוד או סעיף מסוים, צרו תבנית עם שם שרירותי, למשל bitrix:diag.phpinfo, וציינו אותה במהלך הקריאה.
התאמת תבניות של רכיבים מורכבים
רכיבים מורכבים (<?$APPLICATION->IncludeComponent( "bitrix:catalog.element", ".default", // имя шаблона [ "IBLOCK_TYPE" => "catalog", "IBLOCK_ID" => 12, ], false );?> , card_v2) מורכבים מכמה רכיבים משולבים. תבנית הרכיב המורכב מכילה bitrix:catalog ותיקיות משנה לרכיבי משנה:
/local/templates/my_site/components/bitrix/catalog/.default/
template.php
component_epilog.php
bitrix/
catalog.section/
.default/
template.php
catalog.element/
.default/
template.php
זה מאפשר לעקוף את הפריסה של הסעיף וכרטיס המוצר בתוך תבנית קטלוג אחת.
מהם result_modifier.php ו-component_epilog.php?
שני קבצים המספקים גישה לנתוני הרכיב מבלי לעקוף את הלוגיקה שלו:
result_modifier.php — מתבצע לאחר קוד הרכיב הראשי, לפני התבנית. כאן ניתן לשנות את bitrix:news:
// result_modifier.php
if (!empty($arResult['ITEMS'])) {
foreach ($arResult['ITEMS'] as &$item) {
$item['PRICE_FORMATTED'] = number_format($item['CATALOG_PRICE_1'], 0, '.', ' ') . ' $';
}
}component_epilog.php — מתבצע לאחר התבנית. משמש למניפולציות סופיות: הגדרת כותרת העמוד, הוספת פירורי לחם, הכללת סקריפטים.
<?php
// component_epilog.php
$APPLICATION->SetTitle('Каталог товаров');
$APPLICATION->AddChainItem('Главная', '/');
$APPLICATION->AddChainItem('Каталог');
?> הכללת CSS ו-JS בתבנית רכיב
// В template.php
$this->addCSS($this->GetFolder() . '/style.css');
$this->addJS($this->GetFolder() . '/script.js');
// Или через Asset Manager для объединения файлов
\Bitrix\Main\Page\Asset::getInstance()->addCss($this->GetFolder() . '/style.css');
מה כלול בהתאמת תבניות
- פיתוח תבניות — עקיפת כל התבניות הנדרשות לפי הפריסה שלכם.
- תיעוד — תיאור המבנה, השינויים והוראות תחזוקה.
- בדיקת תאימות — אימות עם גרסת Bitrix הנוכחית ועדכונים.
- הדרכת צוות — כיצד לבצע שינויים ללא סיכון.
- תמיכה לאחר ההטמעה — תיקוני באגים וייעוץ למשך חודש.
אילו טעויות נעשות לרוב במהלך התאמה?
- עריכת קבצים ב-
component_epilog.php— אובדן שינויים מובטח. - יצירת תבנית ללא התחשבות בקינון של רכיב מורכב — חלקים מהקטלוג לא עובדים.
- התעלמות מ-
/local/templates/my_site/components/bitrix/catalog/.default/ template.php component_epilog.php bitrix/ catalog.section/ .default/ template.php catalog.element/ .default/ template.php— קוד משוכפל בתבנית, מה שמסבך את התחזוקה. - שימוש בנתיבים מוחלטים לקבצים — בעיות במעבר לאחסון אחר.
לוחות זמנים
| משימה | לוח זמנים |
|---|---|
| תבנית מותאמת אישית לרכיב אחד (כרטיס, רשימה) | 4–16 שעות |
| תבניות לכל רכיבי הקטלוג לפי הפריסה | 3–5 ימים |
| התאמת רכיב מורכב עם תבניות משנה | 2–4 ימים |
צרו קשר כדי לדון בפרויקט שלכם — נעריך את המורכבות ואת לוחות הזמנים. קבלו ייעוץ אם אתם רוצים להימנע מבעיות עדכון ולקבל פתרון אמין.
תיעוד רשמי של 1C-Bitrix על תבניות רכיבים
הגישה שלנו לפתרונות
כל משימה דורשת ניתוח אישי ותכנון קפדני. איננו משתמשים בפתרונות תבניתיים — כל פרויקט מותאם לדרישות הספציפיות ולתשתית הקיימת. לצוות שלנו ניסיון עם פרויקטים בקני מידה שונים: מחנויות קטנות ועד פלטפורמות בעומס גבוה עם מיליוני פעולות ביום.
אחריות ותמיכה
אנו מספקים אחריות ל-12 חודשים על העבודה שהושלמה. במהלך תקופה זו, אנו מתקנים כל בעיה ללא עלות. לאחר סיום הפרויקט, אנו מספקים תיעוד מלא והדרכה לצוות שלכם. תמיכה טכנית זמינה למשך 30 יום לאחר ההשקה — אנו עוזרים לפתור כל שאלה.

