سؤال

بينما أجد أن إطار PHP Symfony رائع بالنسبة للعديد من الأشياء، أجد صعوبة في إنشاء قوائم ديناميكية قابلة للتحجيم بسهولة لموقع الويب.

أتساءل كيف تناولت مطورو Symfony الآخرين هناك هذه المشكلة. سأقدم مثالا بسيطا لما سأطلبه.

إذا انتقل إلى www.fool.com سترى أن لديهم إعداد قائمة نموذجية. قائمة من الفئات مع واحد منهم هي النشطة التي يتم تمييزها بطريقة ما ب CSS.

ما سيكون وسيلة جيدة لجعل هذا تم إنشاؤه ديناميكيا في مشروع Symfony. تمرير المتغيرات من نوع ما من الوحدة إلى الوحدة النمطية. لم أجد حلا أنيقا بعد.

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

المحلول

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

$this->menu = array(
    'Home' => array('default', 'index'),
    'About Us' => array('default', 'aboutUs'),
    'Products' => array('products', 'index')
);

بعد ذلك، استخدم أساليب Getactingname's Controller و GetMethodName لتحديد العنصر في القائمة الخاصة بي هو الوحيد الحالي:

$this->current = array_search(array($this->getModuleName(), $this->getActionName()), $this->menu);

ثم يمكنني التكرار من قائمة $، من داخل القالب، لبناء القائمة. ويمكنني مقارنة العناصر بتيار $، لتحديد ما إذا كان يجب علي تعيين فئة "الحالية" في عنصر القائمةu003Cli style=";text-align:right;direction:rtl"> وبعد

مثال Fool.com الذي تقدمه هو أكثر تعقيدا قليلا، لأنه مستويين. في هذه الحالة، من المحتمل أنك تريد أن تقوم بإنشاء شجرة القائمة من قاعدة بيانات، وربما الاستفادة من دعم STES المتداخلة في PROPEL.

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