ما هي أفضل طريقة لتخصيص / إضافة صفحات إلى مولد المسؤول؟

StackOverflow https://stackoverflow.com/questions/2522322

سؤال

أنا أستخدم Symfony 1.4 والعقيدة.

تم تصميم الواجهة الخلفية للتطبيق باستخدام مولد مسؤول Symfony. إنه يعمل بشكل رائع عندما أرغب في عرض الأشياء الأساسية.

لكن Tehre ليس الكثير من الوثائق حول كيفية تحسينه وإضافة صفحات جديدة.

دعنا نأخذ مثالاً: أريد سرد العناصر المنشورة على صفحة واحدة وعناصر منشورة على واحدة أخرى. لقد استخدمت عدة طرق لذلك في طلبي ولكن لا يمكنني معرفة ما هي أفضل طريقة:

  • اللعب مع المرشحات ثم تعديل القوالب اعتمادًا على مكانك؟
  • إنشاء وحدة أخرى تدعو إلى مختلف table_method?
  • بعض التقنيات الأخرى التي لا أعرف عنها؟

ما هي أفضل ممارسة هنا؟ كيف تفعلون عادة يا رفاق لتخصيص المشرف الخاص بك؟

هل كانت مفيدة؟

المحلول

الترويج الذاتي وقح هنا. لقد كتبت أ مشاركة مدونة هذا الأسبوع على تخصيص مولد المشرف - كان أحد الأشياء التي فعلتها هي إضافة صفحات جديدة وما إلى ذلك إلى المولد. الطريقة التي فعلت بها ربما تكون متشددة بعض الشيء ، لكنها تعمل بشكل جيد :-)

أفضل مكان للبدء في البحث هو فئة الإجراءات التي تم إنشاؤها تلقائيًا لوحدتك وتوسيعها في app/module/actions/actions.class.php ملف. على وجه الخصوص ، إجراء الفهرس الذي يضع Pager ORM. يجب أن تكون قادرًا على استخدام أي استعلام من ORM لتزويد ORM Pager بالبيانات - في الحالات التي احتجت إليها لتغييره ، أستخدم استعلام عقيدة تم إنشاؤه بنفس الطريقة المعتادة لتمريرها إلى النداء. هذا يعني أنه يمكنني تخصيص الحقول التي يتم عرضها ، بما في ذلك الحقول من الجداول الأخرى المنضمة في ETC في استعلام واحد. هذه هي "طريقة الجدول" المذكورة أعلاه.

ستعمل المرشحات أيضًا - يعتمد ذلك على حالة الاستخدام وما إذا كانت المرشحات مناسبة ، خاصة للعرض. إذا كنت تريد أ /showpublisheditems page, ، ثم سأذهب مع إجراء جديد والاستعلام الجديد للنادي. إذا كنت تريد التخصيص أثناء الطيران ، فانتقل مع خيار التصفية.

مستندات المرشح التي اعتقدت أنها تفتقر قليلاً إلى الأماكن أيضًا - نصيحة سريعة ، يبحثون عن أ addYourColumnNameColumnQuery() الطريقة في فئة المرشح العليا (LIB/FILTER/...) التي تأخذ استعلامًا تم تمريره ويستخدم على سبيل المثال addWhere("x.column_name = ?", $foo) إلى الاستعلام مرت.

بليه :-) آسف ، كان ذلك قليلاً من تفريغ الدماغ ، ولكن نأمل أن يساعد! :-)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top