2013-05-09 25 views
0

我正在使用自定義腳本來自動發出邀請和提醒。我有一切正常工作,直到一個點。我的函數來發送邀請看起來是這樣的:Yii :: app() - > lang有時與LimeSurvey無法正常工作

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 ::應用程序() - >郎部分似乎導致問題,因爲那麼PHP是無法調用gT方法。但是,當LimeSurvey正常運行時,這絕不會發生。我甚至無法找到LimeSurvey源代碼中的「lang」。

我能做些什麼來使它工作?

回答

0

也許

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