我在創造了一個昂貴的支付模塊來完成這樣的公司工作,但我可以給你提示了2種方法來實現這一;-)
1)隨着GenericHook 定製/模塊創建一個logic_hooks.php和YOURCHOICEHERE.php
在邏輯鉤創建UI鉤後
$hook_array['after_ui_frame'] = Array();
$hook_array['after_ui_frame'][] = Array(1, 'Display Javascript for Telephone','custom/modules/YOURCHOICEHERE.php','GenericHooks', 'displayTelephoneJS');
和YOURCHOICEHERE.php
class GenericHooks {
function displayTelephoneJS() {
if(!$_REQUEST['to_pdf']) echo '<div id=\"telephone_div\"></div>
<script type=\"text/javascript\" src=\"custom/somewherewhereyouwant/Telephone.js\"/></script>';
// you yould also add a stylesheet here
}
}
在Telephone.js你可以做你想做什麼都例如:
function Telephone_poll() {
$.post("some.php?poll=1,function(data){
if(data != 0)
{
var result= JSON.parse(data);
//HERE you can do manipulate your telephone_div and populate it with response data "result" from the call to some.php
$('#telephone_div').html("<span>HELLO<span>");
$('#telephone_div').show();
//Here you can also add styles and so on
}
setTimeout("Telephone_poll()", 1000); //restart the function every 1000ms
});
}
Telephone_poll(); //initial start of script
2)其他方法將創建從自身重新運行一個PHP文件妖/服務。 在這裏,您需要一些方法來識別用戶和電話,以確保彈出窗口顯示正確的用戶/電話。
感謝您的想法。最初我做的事情非常相似。所以我使用After UI掛鉤來插入我的CS和JS文件......但是我正在運行使用WebSockets的JS。所以我使用pusher.com爲我的WebSockets提供的服務......它到目前爲止效果很好,當我接到電話時,它最多在幾秒鐘內彈出!你對守護進程的想法很有意思,但我想知道更多有關這方面的信息,因爲我討厭依賴於第三方網站的WebSockets。 – JasonDavis
您的第一種方法似乎不會對性能有很大的好處,因爲它似乎每隔x秒就輪詢一次腳本。我之前有過不好的經歷,因爲它有時會消耗帶寬。 – JasonDavis