Skip to content

Instantly share code, notes, and snippets.

@darylteo
Last active November 12, 2019 02:07
Show Gist options
  • Select an option

  • Save darylteo/0fb8cc59dbcc62c90d1b81502408b7c4 to your computer and use it in GitHub Desktop.

Select an option

Save darylteo/0fb8cc59dbcc62c90d1b81502408b7c4 to your computer and use it in GitHub Desktop.

Revisions

  1. darylteo revised this gist Nov 12, 2019. 1 changed file with 6 additions and 0 deletions.
    6 changes: 6 additions & 0 deletions Custom_Controller_Plugin_Layout.php
    Original file line number Diff line number Diff line change
    @@ -26,19 +26,25 @@ public function postDispatch(Zend_Controller_Request_Abstract $request)

    $obStartLevel = ob_get_level();
    try {
    // hack to output header first
    $layout->setLayout('layout2018head');
    $fullContent = $layout->render();

    // set it back to original value for original behaviour.
    $layout->setLayout('layout2018');
    } catch (Exception $e) {
    while (ob_get_level() > $obStartLevel) {
    $fullContent .= ob_get_clean();
    }
    $request->setParam('layoutFullContent', $fullContent);
    $request->setParam('layoutContent', $layout->content);
    $response->setBody(null);
    throw $e;
    }

    ob_end_flush();

    // output header immediately
    echo $fullContent;
    flush();
    }
  2. darylteo revised this gist Nov 12, 2019. 1 changed file with 35 additions and 34 deletions.
    69 changes: 35 additions & 34 deletions Custom_Controller_Plugin_Layout.php
    Original file line number Diff line number Diff line change
    @@ -1,43 +1,44 @@
    <?php
    public function postDispatch(Zend_Controller_Request_Abstract $request)
    {
    $layout = Zend_Layout::getMvcInstance();

    // Return early if forward detected
    if (!$request->isDispatched()
    || $this->getResponse()->isRedirect()
    || ($layout->getMvcSuccessfulActionOnly()
    && (!empty($helper) && !$helper->isActionControllerSuccessful())))
    {
    $layout = Zend_Layout::getMvcInstance();
    return;
    }

    // Return early if forward detected
    if (!$request->isDispatched()
    || $this->getResponse()->isRedirect()
    || ($layout->getMvcSuccessfulActionOnly()
    && (!empty($helper) && !$helper->isActionControllerSuccessful())))
    {
    return;
    }
    // Return early if layout has been disabled
    if (!$layout->isEnabled()) {
    return;
    }

    // Return early if layout has been disabled
    if (!$layout->isEnabled()) {
    return;
    }

    if ($layout->getLayout() !== 'layout2018') {
    return;
    }
    if ($layout->getLayout() !== 'layout2018') {
    return;
    }

    $response = $this->getResponse();
    $fullContent = null;
    $response = $this->getResponse();
    $fullContent = null;

    $obStartLevel = ob_get_level();
    try {
    $layout->setLayout('layout2018head');
    $fullContent = $layout->render();
    $layout->setLayout('layout2018');
    } catch (Exception $e) {
    while (ob_get_level() > $obStartLevel) {
    $fullContent .= ob_get_clean();
    }
    $response->setBody(null);
    throw $e;
    $obStartLevel = ob_get_level();
    try {
    $layout->setLayout('layout2018head');
    $fullContent = $layout->render();
    $layout->setLayout('layout2018');
    } catch (Exception $e) {
    while (ob_get_level() > $obStartLevel) {
    $fullContent .= ob_get_clean();
    }
    $response->setBody(null);
    throw $e;
    }

    ob_end_flush();
    ob_end_flush();

    echo $fullContent;
    flush();
    }
    echo $fullContent;
    flush();
    }
  3. darylteo created this gist Nov 12, 2019.
    43 changes: 43 additions & 0 deletions Custom_Controller_Plugin_Layout.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,43 @@
    public function postDispatch(Zend_Controller_Request_Abstract $request)
    {
    $layout = Zend_Layout::getMvcInstance();

    // Return early if forward detected
    if (!$request->isDispatched()
    || $this->getResponse()->isRedirect()
    || ($layout->getMvcSuccessfulActionOnly()
    && (!empty($helper) && !$helper->isActionControllerSuccessful())))
    {
    return;
    }

    // Return early if layout has been disabled
    if (!$layout->isEnabled()) {
    return;
    }

    if ($layout->getLayout() !== 'layout2018') {
    return;
    }

    $response = $this->getResponse();
    $fullContent = null;

    $obStartLevel = ob_get_level();
    try {
    $layout->setLayout('layout2018head');
    $fullContent = $layout->render();
    $layout->setLayout('layout2018');
    } catch (Exception $e) {
    while (ob_get_level() > $obStartLevel) {
    $fullContent .= ob_get_clean();
    }
    $response->setBody(null);
    throw $e;
    }

    ob_end_flush();

    echo $fullContent;
    flush();
    }