基于 level_id for SocialEngine 4.x/Zend 框架的回显文本

Echo text based on level_id for SocialEngine 4.x/Zend Framework

我必须承认,我对在 javascript 块中使用 php 还很陌生。作为一个临时修复,直到我可以写出更动态的东西,我需要根据用户级别传递文本,如果他们没有登录,我使用 else 来识别。我在 javascript 块中有一个名为 member_level 的变量,我在下面的双引号内有以下代码,但它不喜欢这种格式。我只是看不出有什么问题。如果这个问题措辞有误,我很抱歉,就在我最后一根蜡烛上,看不出我做错了什么

    var chat_role = "<?php if($this->viewer()->level_id == '1'){
                echo Super Admin;
  } else if($this->viewer()->level_id == '3'){
                echo Moderator;
  } else if($this->viewer()->level_id == '4'){
                echo Free;
  } else if($this->viewer()->level_id == '5'){
                echo Public;
  } else if($this->viewer()->level_id == '9'){
                echo Premium;
  } else if($this->viewer()->level_id == '13'){
                echo Corporate;
  } else if($this->viewer()->level_id == '15'){
                echo Lifetime;
  } else if($this->viewer()->level_id == '16'){
                echo Standard Admin;
  } else if($this->viewer()->level_id == '17'){
                echo New Member;
  } else {
                echo Non Logged In;
  }
endif ?>
";

我错过了什么?我真的不是要别人写代码,只是让我知道我哪里出错了。

改用此代码:

var chat_role = "<?php echo (isset($this->viewer()->level_id) && $this->viewer()->level_id > 0 ? Engine_Api::_()->getItem('authorization_level', $this->viewer()->level_id)->getTitle(): 'Non Logged In'); ?>";