פיתוח אתרים ב-Concrete CMS: אתרי תאגיד עם עריכה בהקשר
נאבקים בעדכוני תוכן שדורשים התערבות של מפתח? Concrete CMS מבטל את הצוואר בקבוק הזה עם יכולות העריכה המובנות שלו. מנהלי תוכן עורכים ישירות בעמוד ללא צורך בממשק ניהול נפרד. הארכיטקטורה מבוססת PHP עם רכיבי Symfony ו-Doctrine ORM. מערכת הבלוקים מאפשרת להרכיב עמודים מאלמנטים מוכנים ללא כתיבת קוד. אנו משתמשים ב-Concrete CMS לפרויקטים שבהם הלקוח מעדכן תוכן באופן עצמאי וזקוק לשליטה גמישה בהרשאות. במהלך השנים, סיפקנו יותר מ-20 פרויקטים על CMS זה, החל מפורטלי תאגיד ועד קטלוגים רב-לשוניים. לדוגמה, הגדרנו 12 סוגי עמודים עם הרשאות אישיות לעורכים ממחלקות שונות עבור חברה בינלאומית—וקיצצנו את זמן אישור התוכן פי שלושה. מנהלי תוכן חוסכים עד 70% מהזמן: עריכות מתבצעות בדקות, לא בשעות.
Concrete CMS שימושי במיוחד כאשר צוות הלקוח מנהל את התוכן בעצמו ומבנה העמוד חייב להשתנות ללא תכנות. בהשוואה ל-WordPress הקלאסי, הוא מציע כוונון הרשאות עדין יותר—עד לאזור ספציפי בעמוד. ובניגוד ל-Drupal, יש לו ממשק עריכה אינטואיטיבי ללא צורך בהבנת טקסונומיות. מערכת ה-ACL המובנית מוגדרת תוך 1–2 שעות, מהיר פי 2–3 מחלופות, ואינה דורשת תוספים נוספים.
למה לבחור ב-Concrete CMS?
הלקוח או הצוות שלו עורכים תוכן באופן עצמאי ללא ידע טכני. הם זקוקים למערכת עמודים גמישה עם פריסות שונות. נדרשת היררכיית אתר עם הרשאות שונות למקטעים שונים. הפרויקט כולל מערכת הרשאות מורכבת ברמת העמוד—Concrete CMS מכסה את כל התרחישים האלה ישירות מהקופסה.
כיצד מאורגנת ארכיטקטורת האתר?
Concrete CMS מארגן תוכן בעץ עמודים. לכל עמוד יש Page Type עם קבוצת Areas, ולכל אזור מתווספים בלוקים.
Сайт
├── Главная (page type: home)
│ ├── Area: Hero
│ │ └── Block: Image Slider
│ ├── Area: Content
│ │ ├── Block: HTML
│ │ └── Block: Feature List (кастомный)
│ └── Area: Sidebar
│ └── Block: Form
├── Услуги (page type: service-list)
│ ├── Разработка (page type: service-detail)
│ └── Дизайн (page type: service-detail)
└── Контакты (page type: basic-page) סוגי עמודים ותבניות
סוג עמוד נוצר ב-Сайт ├── Главная (page type: home) │ ├── Area: Hero │ │ └── Block: Image Slider │ ├── Area: Content │ │ ├── Block: HTML │ │ └── Block: Feature List (кастомный) │ └── Area: Sidebar │ └── Block: Form ├── Услуги (page type: service-list) │ ├── Разработка (page type: service-detail) │ └── Дизайн (page type: service-detail) └── Контакты (page type: basic-page) או דרך סוג מלא עם תבנית בערכת הנושא:
// application/single_pages/services.php // или packages/my-theme/themes/my-theme/page_types/service_detail.php
defined('C5_EXECUTE') or die('Access Denied.');
$view = View::getInstance();
?>
<div class="container">
<h1><?= $c->getCollectionName() ?></h1>
<?php $a = new Area('Main Content'); $a->display($c); ?>
<aside>
<?php $sidebar = new Area('Sidebar'); $sidebar->display($c); ?>
</aside>
</div> מאפייני עמוד והרשאות
מאפיינים הם מטא-דאטה של עמוד שאינו קשור לבלוקים. סוגי מאפיינים: טקסט, טקסט ארוך, בוליאני, בחירה, תמונה, קובץ, תאריך, מיקום גיאוגרפי, דירוג, URL. מערכת ה-ACL פועלת ברמת עמודים, סוגי עמודים, בלוקים וקבצים. דוגמה לשימוש משולב:
// Получить атрибут страницы и проверить права
$metaDesc = $c->getAttribute('meta_description');
$cp = new Permissions($c);
if ($cp->canEditPageContents()) {
// показать кнопку редактирования
}
// Закрыть страницу для гостей
if (!$u->isLoggedIn()) {
$response = Redirect::to('/login');
$response->send();
exit;
}
?>
<meta name="description" content="<?= h($metaDesc) ?>">
כיצד ליישם רב-לשוניות?
Concrete CMS תומך באתרים רב-לשוניים באמצעות Multilingual Sites. כל גרסת שפה היא תת-עץ נפרד:
/en/ /ru/ /de/ מעבר שפה מיושם באמצעות בלוק או תבנית:
$locales = Section::getList();
foreach ($locales as $section) {
$url = $section->getRelatedPageInLocale($c);
echo "<a href='{$url}'>{$section->getLanguageText()}</a>";
} כיצד ליצור סוג עמוד מותאם אישית?
- צור קובץ תבנית ב-
/application/single_pages/או דרך חבילה. - הגדר אזורים בתבנית ה-PHP.
- רשום את סוג העמוד בלוח הניהול (Dashboard → Pages & Themes → Page Types).
- הקצה הרשאות גישה לסוג החדש.
- הוסף מאפיינים אם יש צורך במטא-דאטה.
תהליך זה אורך כשעתיים עבור סוג פשוט. עבור סוגים מורכבים עם בלוקים מותאמים—עד יום אחד.
מהם Express Objects?
Express (מובנה מאז גרסה 8) הוא מנגנון דמוי-ORM לאחסון נתונים שאינו קשור לעץ העמודים. הוא מקביל ל-Custom Post Types אך עם יכולות יחסיות. ניתן לקשר רשומות Express לעמודים ולהציג אותן דרך בלוק Express Form. זה אידיאלי עבור קטלוגים, מדריכים וישויות חוזרות אחרות.
SEO וביצועים
עבור SEO, אנו משתמשים במאפיינים מותאמים: // application/single_pages/services.php // или packages/my-theme/themes/my-theme/page_types/service_detail.php defined('C5_EXECUTE') or die('Access Denied.'); $view = View::getInstance(); ?> <div class="container"> <h1><?= $c->getCollectionName() ?></h1> <?php $a = new Area('Main Content'); $a->display($c); ?> <aside> <?php $sidebar = new Area('Sidebar'); $sidebar->display($c); ?> </aside> </div> , // Получить атрибут страницы и проверить права $metaDesc = $c->getAttribute('meta_description'); $cp = new Permissions($c); if ($cp->canEditPageContents()) { // показать кнопку редактирования } // Закрыть страницу для гостей if (!$u->isLoggedIn()) { $response = Redirect::to('/login'); $response->send(); exit; } ?> <meta name="description" content="<?= h($metaDesc) ?>"> . מטמון עמודים מופעל ב-Dashboard → System → Cache. מטמון עמוד מלא מאיץ את הטעינה פי 5–10, ומפחית את ה-TTFB מ-500 אלפיות השנייה ל-50 אלפיות השנייה. Concrete CMS היא פלטפורמה בוגרת עם קהילה פעילה.
מבנה פרויקט טיפוסי
| רכיב | נתיב |
|---|---|
| ערכת נושא | /en/ /ru/ /de/ |
| בלוקים מותאמים | $locales = Section::getList(); foreach ($locales as $section) { $url = $section->getRelatedPageInLocale($c); echo "<a href='{$url}'>{$section->getLanguageText()}</a>"; } |
| תבניות בלוקים | application/single_pages/ |
| סוגי עמודים | meta_description |
| עמודים בודדים | seo_title |
מה כלול בפיתוח?
- התקנה והגדרה של CMS על אחסון
- יצירת ערכת נושא מותאמת (פריסה + אינטגרציה)
- פיתוח סוגי עמודים ובלוקים לפי משימות הפרויקט
- הגדרת זכויות גישה ורב-לשוניות
- ייבוא תוכן (במידת הצורך)
- הדרכת צוות הלקוח לעבודה עם העורך בהקשר
- אחריות על קוד ותיקונים חינמיים במהלך החודש הראשון
אנו נעריך את הפרויקט שלך ונציע לוחות זמנים משבועיים עבור אתר קטן ועד 3 חודשים עבור פורטל גדול. בקשו ייעוץ—נעזור לבחור את הארכיטקטורה האופטימלית ולפתח אתר מוכן לשימוש.
לוחות זמנים לפיתוח
| היקף | תיאור | לוח זמנים |
|---|---|---|
| אתר קטן | 5–8 סוגי עמודים, בלוקים סטנדרטיים | 2–4 שבועות |
| פורטל תאגידי | 10–15 סוגים, בלוקים מותאמים | 5–9 שבועות |
| אתר רב-לשוני | 3+ שפות, Express Objects | 8–14 שבועות |
רוצים לדון בפרויקט שלכם? קבלו ייעוץ—נעריך את המורכבות ונציע פתרון שחוסך עד 40% מזמן ניהול התוכן.







