【问题标题】:Echo text based on level_id for SocialEngine 4.x/Zend Framework基于 level_id 的 SocialEngine 4.x/Zend 框架的回显文本
【发布时间】:2018-05-07 20:57:54
【问题描述】:

我必须承认,我对在 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 ?>
";

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

【问题讨论】:

    标签: javascript php zend-framework socialengine


    【解决方案1】:

    改用此代码:

    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'); ?>";
    

    【讨论】:

    • 我之前用过同样的代码。未登录的用户会发生 zend 错误。并且页面没有加载。
    • 尝试更新的,已应用 isset 先检查
    • 我已经完成了测试,为什么我不认为 isset 超出了我的范围 - 你的代码有效 - 我也将在今天晚些时候发布我想出的替代方案。但是,您的方法是更清洁,更有效的方法! - 谢谢!
    猜你喜欢
    • 2018-01-14
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-19
    相关资源
    最近更新 更多