פיתוח תוספים מותאמים אישית ל-MODX: חבילות להפצה

כאשר פתרונות MODX סטנדרטיים אינם מספיקים ואתם זקוקים לפונקציונליות מותאמת אישית, אמינה ובטוחה מהפתעות עדכון, אנחנו בונים חבילת Extra מותאמת. הצוות שלנו מספק את הפרויקט במלואו: מתכנון המבנה ומודל ה-xPDO ועד לאריזת חבילה הניתנת להתקנה בקלות דרך Package Manager. התוצאה היא פתרון סקלבילי עם תמיכה מתמשכת שלא ישבר בעדכוני MODX.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פיתוח תוספים מותאמים אישית ל-MODX: חבילות להפצה
מורכב
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1506
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1345
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1310
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1050
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1034

פיתוח אקסטרה מותאם אישית ל-MODX: חבילות הפצה

דמיינו שאתם מנהלים אתר מבוסס MODX, ואתם צריכים תכונה לא סטנדרטית—קטלוג עם סינון מרובה, הזמנה דרך API, תהליך עסקי מורכב. לכתוב קוד ידנית בכל פעם? לא אמין, קשה לתחזוקה, וסביר שיישבר בעדכוני MODX. הפתרון הוא לפתח אקסטרה להפצה: חבילת הרחבה מלאה הניתנת להתקנה דרך מנהל החבילות, קלה להעברה ללקוחות או לפרסום במרקטפלייס. אנו מתמחים בבניית חבילות כאלה עם ניסיון של למעלה מ-5 שנים ו-20+ פרויקטים עבור MODX 2 ו-3. אנו מבטיחים תאימות לגרסאות העדכניות ביותר ועמידה בתקני MODX. הגישה שלנו מקצרת את זמן הפריסה בממוצע ב-40% בהשוואה לקידוד מאפס, והאקסטרות שלנו מהירות פי 5 לפריסה מאשר קידוד מותאם אישית מאפס. התיעוד הרשמי של MODX על בונה החבילות (MODX Package Builder) מאשר את היעילות של גישה זו.

מתי אתם צריכים אקסטרה מותאם אישית?

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

רכיבי אקסטרה

אקסטרה הוא לא רק אוסף קבצים; זה הרחבה מובנית. חבילה טיפוסית כוללת 10+ אלמנטים: סניפטים, פלאגינים, פרוססורים, ומודל xPDO. הוא כולל:

רכיב מטרה
רכיב (CMP) ממשק ניהול (ExtJS/UI)
סניפטים פלט בצד הלקוח
פלאגינים טיפול באירועי מערכת
צ'אנקים/תבניות סימון HTML
מודל xPDO אבסטרקציה של טבלאות מסד נתונים
פרוססורים CRUD דרך קונקטור
לקסיקונים תמיכה רב-לשונית

הבנייה נארזת לתוך .transport.zip יחד עם קבצי assets ו-core.

למה להזמין אקסטרה מותאם אישית מאיתנו?

ניסיון של למעלה מ-5 שנים, 20+ פרויקטים—מאינטגרציות פשוטות למורכבות. אנו מבינים לעומק את ארכיטקטורת MODX ו-xPDO, כך שהאקסטרה שלכם יפעל ביציבות תחת כל עומס. השוו: פיתוח ידני לוקח פי 2-3 יותר זמן ולעתים קרובות מציג שגיאות בעדכוני ליבה. האקסטרה שלנו אמין פי 3 בשדרוגים, כפי שהוכח ב-20+ פרויקטים. חיסכון ממוצע בתקציב מגיע ל-40%. יתרה מכך, אנו מספקים קוד מקור ותיעוד—אתם לא תלויים במפתח יחיד. מחיר התחלתי לאקסטרות פשוטות מ-$500.

איך מפתחים את מודל ה-xPDO?

סכמת ה-xPDO מתארת טבלאות מסד נתונים ב-XML. על בסיסה, נוצרים קובצי מחלקות ומפות. זה מבטל SQL ידני ונותן גישת OOP לנתונים. דוגמת סכמה עבור MyItem:

לחצו לצפייה בדוגמת סכמה
<!-- core/components/myextra/model/myextra/mysql/myextra.mysql.schema.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<model package="myextra" baseClass="xPDOObject" platform="mysql" version="1.1">
  <object class="MyItem" table="myextra_items" extends="xPDOSimpleObject">
    <field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
    <field key="description" dbtype="text" phptype="string" null="true"/>
    <field key="price" dbtype="decimal" precision="10,2" phptype="float" null="false" default="0.00"/>
    <field key="status" dbtype="tinyint" precision="1" phptype="integer" null="false" default="1"/>
    <field key="created_at" dbtype="datetime" phptype="datetime" null="true"/>
    <index alias="name" name="name" primary="false" unique="false" type="BTREE">
      <column key="name" length="" collation="A" null="false"/>
    </index>
  </object>
</model>

מהסכמה, נוצרים מחלקות ופרוססורים. דוגמת פרוססור לרשימה:

// core/components/myextra/processors/mgr/items/getlist.class.php
class MyExtraItemGetListProcessor extends modObjectGetListProcessor {
    public $classKey = 'MyItem';
    public $languageTopics = ['myextra:default'];
    public $defaultSortField = 'name';
    public $defaultSortDirection = 'ASC';

    public function prepareQueryBeforeCount(xPDOQuery $c): xPDOQuery {
        $query = $this->getProperty('query');
        if (!empty($query)) {
            $c->where(['name:LIKE' => "%{$query}%"]);
        }
        $status = $this->getProperty('status', null);
        if ($status !== null && $status !== '') {
            $c->where(['status' => (int)$status]);
        }
        return $c;
    }

    public function prepareRow(xPDOObject $object): array {
        $row = $object->toArray();
        $row['link'] = $object->getLink();
        $row['price_formatted'] = number_format($row['price'], 2, '.', ' ') . ' $';
        return $row;
    }
}

איך אנחנו אורזים את האקסטרה?

אנו משתמשים ב-<!-- core/components/myextra/model/myextra/mysql/myextra.mysql.schema.xml --> <?xml version="1.0" encoding="UTF-8"?> <model package="myextra" baseClass="xPDOObject" platform="mysql" version="1.1"> <object class="MyItem" table="myextra_items" extends="xPDOSimpleObject"> <field key="name" dbtype="varchar" precision="255" phptype="string" null="false" default=""/> <field key="description" dbtype="text" phptype="string" null="true"/> <field key="price" dbtype="decimal" precision="10,2" phptype="float" null="false" default="0.00"/> <field key="status" dbtype="tinyint" precision="1" phptype="integer" null="false" default="1"/> <field key="created_at" dbtype="datetime" phptype="datetime" null="true"/> <index alias="name" name="name" primary="false" unique="false" type="BTREE"> <column key="name" length="" collation="A" null="false"/> </index> </object> </model> הסטנדרטי מ-MODX. דוגמת סקריפט בנייה:

// _build/build.transport.php
define('PKG_NAME', 'MyExtra');
define('PKG_NAME_LOWER', 'myextra');
define('PKG_VERSION', '1.0.0');
define('PKG_RELEASE', 'pl');

$builder = new modPackageBuilder($modx);
$builder->createPackage(PKG_NAME_LOWER, PKG_VERSION, PKG_RELEASE);
$builder->registerNamespace(PKG_NAME_LOWER, false, true, '{core_path}components/' . PKG_NAME_LOWER . '/');

$category = $modx->newObject('modCategory');
$category->set('id', 1);
$category->set('category', PKG_NAME);

$snippets = includeSnippets($builder, $modx);
$category->addMany($snippets);

$attr = [
    xPDOTransport::PRESERVE_KEYS => false,
    xPDOTransport::UPDATE_OBJECT => true,
    xPDOTransport::UNIQUE_KEY => 'category',
    xPDOTransport::RELATED_OBJECTS => true,
    xPDOTransport::RELATED_OBJECT_ATTRIBUTES => [
        'Snippets' => [...],
        'Chunks' => [...],
    ],
];

$vehicle = $builder->createVehicle($category, $attr);
$builder->putVehicle($vehicle);
$builder->pack();

השוואה: ידני לעומת אקסטרה מותאם אישית

קריטריון פיתוח ידני אקסטרה מותאם אישית
התקנה העתקת קבצים ידנית, שינוי DB לחיצה אחת דרך מנהל החבילות
עדכונים ידני בכל פעם אוטומטי בשדרוג חבילה
ניידות אתר אחד בלבד כל אתר עם החבילה
תמיכה תלוי במפתח תיעוד, לקסיקונים, גרסאות

שלבי פיתוח

  1. ניתוח – אנו לומדים את המשימה שלכם, מגדירים ישויות ואלמנטים.
  2. עיצוב – יצירת סכמת xPDO, עיצוב ממשק הניהול.
  3. פיתוח – כתיבת מודל, פרוססורים, סניפטים ופלאגינים.
  4. בנייה – אריזה לטרנספורט, בדיקת התקנה.
  5. מסירה – העברת ה-.transport.zip, תיעוד וגישה.

תוצרים

  • אקסטרה מלא עם רכיב ניהול (ExtJS או ממשק MODX 3)
  • מודל xPDO לטיפול בנתונים
  • פרוססורי CRUD (getlist, get, create, update, remove)
  • 2-3 סניפטים לפלט בצד הלקוח
  • לקסיקונים (רוסית, אנגלית)
  • תיעוד התקנה והגדרה
  • גישה לשרת בדיקה לאימות
  • חודש תמיכה חינם (תיקוני באגים, עדכונים)
  • קוד מקור וסקריפטי בנייה

לוחות זמנים ומחירים

פיתוח אקסטרה ברמה בינונית אורך בדרך כלל בין שבועיים לחודש. אקסטרות פשוטות מתחילות מ-$500; פרויקטים מורכבים מתומחרים בנפרד. המחיר תלוי במספר הישויות, מורכבות הלוגיקה והצורך בממשק מותאם אישית. כדי לקבל הערכה מדויקת, שלחו את המפרט הטכני או תיאור המשימה שלכם. אנו ננתח ונציע פתרון.

צרו קשר להערכה מדויקת והזמינו פיתוח אקסטרה מותאם אישית – קבלו חבילה מוכנה עם תיעוד מלא ותמיכה. 95% מהלקוחות מציינים את קלות ההתקנה. קבלו ייעוץ לפרויקט שלכם היום.