سؤال

كنت أقرأ الدليل استخدام العنصر النائب الأساسي, ولديه هذا المثال:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    // ...

    protected function _initSidebar()
    {
        $this->bootstrap('View');
        $view = $this->getResource('View');

        $view->placeholder('sidebar')
             // "prefix" -> markup to emit once before all items in collection
             ->setPrefix("<div class=\"sidebar\">\n    <div class=\"block\">\n")
             // "separator" -> markup to emit between items in a collection
             ->setSeparator("</div>\n    <div class=\"block\">\n")
             // "postfix" -> markup to emit once after all items in a collection
             ->setPostfix("</div>\n</div>");
    }

    // ...
}

أريد أن أنجز ذلك تقريبًا ، لكنني أود إضافة المزيد من قيم الفئة إلى التكرار divS ، في وقت التقديم إن أمكن ، عندما يكون كل المحتوى في العنصر النائب. شيء واحد أريد أن أفعله على وجه التحديد هو إضافة فئة "الأولى" إلى العنصر الأول و "الأخير" إلى العنصر الأخير. أفترض أنني سأضطر إلى تمديد Zend_View_Helper_Placeholder الفصل لإنجاز هذا.

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

المحلول

مجموعة السلسلة مع setSeparator() هو ما سيتم استخدامه لتفجير العناصر في حاوية. إما تعيينها على سلسلة فارغة أو فقط اترك المكالمة setSeparator() وأدخل divs منفصلة جنبا إلى جنب مع المحتوى الآخر الخاص بك:

  <?php $this->placeholder('sidebar')->captureStart(); ?>

  <?php if($userIsAdmin === TRUE) { ?>

      <div class="block admin-menu">
        <h4>User Administration</h4>
        <ul>
            <li> ... </li>
            <li> ... </li>
        </ul>
      </div> 

  <?php } ?>

      <div class="block other-stuff">      
          <h4>Non-Admin Stuff</h4>
          <ul>
              <li> ... </li>
              <li> ... </li>
          </ul>
       </div>

  <?php $this->placeholder('sidebar')->captureEnd() ?>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top