php条件语句在magento中不起作用

php条件语句在magento中不起作用,php,magento,Php,Magento,所以我在我的网站上有一个电子时事通讯弹出窗口,这样用户就可以保持联系并了解我们的最新情况。我只希望弹出窗口出现在主页上,我已经整理了一个简单的速记条件语句,如下所示: <?php if(Mage::getSingleton('cms/page')->getPageId() == '2' && Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms') : ?>

所以我在我的网站上有一个电子时事通讯弹出窗口,这样用户就可以保持联系并了解我们的最新情况。我只希望弹出窗口出现在主页上,我已经整理了一个简单的速记条件语句,如下所示:

<?php if(Mage::getSingleton('cms/page')->getPageId() == '2' && Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms') : ?>    

<div id="newsletter_sign_up" style="display:none;" >

<div style="padding:20px;" >
<form action="<?php echo($this->getUrl('newsletter/subscriber/new')) ?>" method="post" >
  <div class="fieldset">

    <h1 style="color: #28ced7; text-align: left; font-family: Arial, Helvetica, sans-serif; font-size: 28px;">verbiage goes here</h1>

    <h2 class="legend" style="text-align:left; font-family: Arial, Helvetica, sans-serif; font-size: 13px;">verbiage goes here</h2>
    <!--end-->
    <ul class="form-list">
      <li class="fields">
        <div class="customer-name">
          <div class="field name-firstname">
            <label class="required" for="firstname" style="text-align:left;"><em>*</em>First Name</label>
            <div class="input-box">
              <input type="text" class="input-text required-entry" maxlength="255" title="First Name" value="" name="firstname" id="firstname" autocomplete="off"/>
            </div>
          </div>
          <div class="field name-lastname">
            <label class="required" for="lastname" style="text-align:left;"><em>*</em>Last Name</label>
            <div class="input-box">
              <input type="text" class="input-text required-entry" maxlength="255" title="Last Name" value="" name="lastname" id="lastname" autocomplete="off"/>
            </div>
          </div>
        </div>
      </li>
      <li>
        <label class="required" for="email_address"  style="text-align:left;"><em>*</em>Email Address</label>
        <div class="input-box">

          <input type="text" class="input-text validate-email required-entry" title="Email Address" value="" id="email_address" name="email" autocomplete="off"/>

      <input class="pop_newsletter_source" name="source" type="hidden" value="3" />

        </div>
      </li>
    </ul>
  </div>
  <div class="buttons-set form-buttons">
    <button onclick="pop_newsletter.submit(); return false;" title="Submit" class="button" type="submit" autocomplete="off" style="position: relative; right: 140px;"><span><span>Submit</span></span></button>
  </div>
  <p class="required">* Required Fields</p>

  <h2 style="text-align: left; font-size: 10px;">Email Privacy Statement:</h2>
  <p style="font-family: Arial, Helvetica, sans-serif; font-size: 10px; text-align: left;">more verbiage</p>
  <!--//end-->
</form>
</div>

</div>

<?php endif; ?>


确切地说,
“中断”是什么?你是说页面不再加载了?或者表单永远不会出现?此外,即使您使用的是松散的比较,我还是建议将其设置为
2
,而不是
'2
,因为您无论如何都在比较int类型,所以最好是内聚的。:)它在每一页上加载,很抱歉我不得不刷新缓存。它会加载,但它会加载到每个页面上。啊,你知道吗……我认为
getRouteName()
实际上是错误的。您是否可以转储它并验证它是否返回
cms
,而不是像
page
product
catalog
?啊。。我想你已经明白了。。当我打印时,我遇到了一个致命错误:致命错误:调用C:\inetpub\xampp\htdocs\public\u html\App\design\frontend\enterprise\lsd\template\page\html\footer.phtml中未定义的方法Mage\u Core\u Model\u App::getRouteName(),第245行的方法看起来实际上属于
Mage\u Core\u Controller\u varient\u Front
<?php echo "<pre>"; print_r(Mage::getSingleton('cms/page')->getPageId()); echo "</pre>"; ?>