我建立一個應用程序,允許應用程序打一個ACT URL,然後觸發模塊的方法來創建一個使用ExpressionEngine API的新條目記錄用戶的最佳方式。但是,由於沒有用戶登錄/登錄,因此不允許向頻道提交條目。什麼是編程中ExpressionEngine
什麼是做到這一點的最好辦法。繞過EE API和手動提交該條目,或登錄progamatically..but用戶又如何會與會話等等等等工作?
如果答案是「登錄用戶」這將是非常高興看到一個代碼示例如果可能的話。
謝謝!
我建立一個應用程序,允許應用程序打一個ACT URL,然後觸發模塊的方法來創建一個使用ExpressionEngine API的新條目記錄用戶的最佳方式。但是,由於沒有用戶登錄/登錄,因此不允許向頻道提交條目。什麼是編程中ExpressionEngine
什麼是做到這一點的最好辦法。繞過EE API和手動提交該條目,或登錄progamatically..but用戶又如何會與會話等等等等工作?
如果答案是「登錄用戶」這將是非常高興看到一個代碼示例如果可能的話。
謝謝!
至於你提到,有2種方式來添加新條目:
的主要區別是其條目使用API添加將:
手動添加條目對於簡單的通道是相當容易的,但如果您使用使用附加表的第三方字段類型會變得更加複雜。
要登錄一個成員,你應該只需要:
// Get the member's id (the member must have permissions to post entries)
$member_id = 1;
// Create session
$this->EE->session->create_new_session($member_id);
使用通道條目API添加的條目,然後:
// Log user back out
$this->EE->session->destroy();
當您完成。
乾杯安德魯,真的很感謝你的回覆! – bjohnb
沒問題。如果您有任何問題,請告訴我。 –
您將要看看./system/libraries/Auth.php中的Auth.php類。這個類是認證API的抽象,並且允許你完全按照你想要的來做。 「作爲用戶登錄」功能使用這些相同的方法,以及成員模塊。
您也可以看看的身份驗證模塊(這是免費的),所以你得到的別人如何與驗證工作類的想法。
https://objectivehtml.com/authenticate
下面是一些僞代碼供您使用:
// Fetch the member from the DB using whatever logic you need
$this->EE->db->where('username', 'some-username');
$member = $this->EE->db->get('members');
$this->EE->load->library('auth');
// Load a new Auth_result object which logs in the member
$authed = new Auth_result($member->row());
$authed->start_session($cp_session = FALSE);
$member->free_result();
此代碼應該工作,但我沒有沒有時間去執行它,這就是爲什麼它被認爲是僞碼。
我還要補充一點,我不知道這即使是最好的方式來解決你的問題。我只是回答「如何以編程方式登錄用戶而不知道密碼並且未提交登錄表單」的問題。
啊,是的,我忘記了所有關於登錄作爲用戶的方法。所以,出於好奇,採用什麼方法解決這個問題最好?我都是耳朵! – bjohnb
只是讓你知道我們關於EE特定網站的建議(如果你已經在支持它,你需要鏈接你的帳戶,這樣你的聲望就可以接近它)http://area51.stackexchange.com/proposals/46387/expressionengine –
您可以在API調用中傳遞一個'member_id'(作爲$ data'的一部分)嗎? –
不,它不會讓我張貼該條目由於用戶許可的事情,所以不會工作,我害怕。感謝您的回覆!! – bjohnb