【问题标题】:Yii::app()->lang doesn't work sometimes with LimeSurveyYii::app()->lang 有时不适用于 LimeSurvey
【发布时间】:2013-05-09 07:11:46
【问题描述】:

我正在编写一个自定义脚本来自动发送邀请和提醒。我的一切工作正常,直到某一点。我发送邀请的函数如下所示:

function sendInvites($iSurveyID) {
    $oSurvey = Survey::model()->findByPk($iSurveyID);

    if (!isset($oSurvey)) {
        die("could not load survey");
    }

    if(!tableExists("{{tokens_$iSurveyID}}")) {
        die("survey has no tokens or something");
    }

    $SQLemailstatuscondition = "emailstatus = 'OK'";
    $SQLremindercountcondition = '';
    $SQLreminderdelaycondition = '';
    $iMaxEmails = (int)Yii::app()->getConfig("maxemails");
    $iMaxReminders = 1;

    if(!is_null($iMaxReminders)) {
        $SQLremindercountcondition = "remindercount < " . $iMaxReminders;
    }

    $oTokens = Tokens_dynamic::model($iSurveyID);
    $aResultTokens = $oTokens->findUninvited(false, $iMaxEmails, true, $SQLemailstatuscondition, $SQLremindercountcondition, $SQLreminderdelaycondition);

    if (empty($aResultTokens)) {
        die("No tokens to send invites to");
    }

    $aResult = emailTokens($iSurveyID, $aResultTokens, 'invite');
}

我还有一个启动 Yii 的简单小文件:

Yii::createApplication('LSYii_Application', APPPATH . 'config/config' . EXT);
Yii::app()->loadHelper('admin/token');
Yii::app()->loadHelper('common');

在我真正尝试向令牌发送电子邮件之前,一切都按预期工作。我已经将问题追踪到以下问题,在 emailTokens 调用的函数中有这个:

$clang = Yii::app()->lang;

$aBasicTokenFields=array('firstname'=>array(
    'description'=>$clang->gT('First name'),
    'mandatory'=>'N',
    'showregister'=>'Y'
    ),

Yii::app()->lang 部分似乎引起了问题,因为那时 php 无法调用 gT 方法。然而,当 LimeSurvey “正常”运行时,这永远不会发生。我什至无法在 LimeSurvey 源中找到“lang”的位置。

我该怎么做才能让它发挥作用?

【问题讨论】:

    标签: php yii limesurvey


    【解决方案1】:

    你为什么对自己这么苛刻而不使用 RemoteControl2 API? 见http://manual.limesurvey.org/wiki/RemoteControl_2_API#invite_participants

    在该页面上,您还将找到一个 PHP 示例脚本。

    【讨论】:

      【解决方案2】:

      也许

      Yii::import('application.libraries.Limesurvey_lang');
      $clang = new Limesurvey_lang($oTokens->language);
      

      【讨论】:

        猜你喜欢
        • 2011-11-20
        • 1970-01-01
        • 2018-01-22
        • 1970-01-01
        • 2019-11-16
        • 2014-04-26
        • 1970-01-01
        • 1970-01-01
        • 2017-01-27
        相关资源
        最近更新 更多