IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

如何在PrestaShop 1.3.7下‧整合osTicket 1.6

一個PrestaShop網站,售賣1件產品已經夠神奇,現在還要整合1個票務系統(Ticketing system)來做客戶支援,那產品應該可以賣到很好的價錢吧。

01. 在osTicket下載相關程式,今次整合是使用1.6版本。

02. 解壓檔案,將osticket_1.6.0/upload資料夾內檔案,複製到prestashop資料夾下面。假設Prestashop是安裝在/var/www/prestashop資料夾,那osticket_1.6.0/upload資料夾位置,會覆製為/var/www/prestashop/osticket。

sudo cp -R osticket_1.6.0/upload /var/www/prestashop/osticket

03. 安裝及設定好osticket。

04. 整合工作開始,要求是使用票務系統時,必須確認為PrestaShop用戶,而且,務求將PrestaShop用戶資料,帶到osTicket上。

05. 編輯login.php檔案。此作用為使用osTicket檢查票務時,用戶必須已登入PrestaShop。

sudo gedit /var/www/prestashop/osticket/login.php
將:
<?php
更改為:
<style type="text/css">
.err_content {
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
color: #F00;
}
</style>
<?php
include('../config/config.inc.php');
include('../init.php');
if (!$cookie->isLogged()) {
echo '<p class="err_content">Warning: you must login first before using our ticket system.</p>';
}
else {
將:
?>
更改為:
}
?>

06. 編輯open.php檔案。此作用為使用osTicket新增票務時,用戶必須已登入PrestaShop。

sudo gedit /var/www/prestashop/osticket/open.php
將:
<?php
更改為:
<style type="text/css">
.err_content {
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
color: #F00;
}
</style>
<?php
include('../config/config.inc.php');
include('../init.php');
if (!$cookie->isLogged()) {
echo '<p class="err_content">Warning: you must login first before using our ticket system.</p>';
}
else {
將:
?>
更改為:
}
?>

07. 編輯ticket.php檔案。此作用為使用者正在檢查票務時,但卻同時登出PrestaShop時,便終止其檢查動作。

sudo gedit /var/www/prestashop/osticket/ticket.php
將:
<?php
更改為:
<style type="text/css">
.err_content {
font-family: Arial, Helvetica, sans-serif;
font-size: 11pt;
color: #F00;
}
</style>
<?php
include('../config/config.inc.php');
include('../init.php');
if (!$cookie->isLogged()) {
echo '<p class="err_content">Warning: you must login first before using our ticket system.</p>';
}
else {
將:
?>
更改為:
}
?>

08. 編輯index.php檔案。此作用為使用osTicket主頁時,用戶必須已登入PrestaShop。

sudo gedit /var/www/prestashop/osticket/index.php
將:
<div id="index">
更改為:
<div id="index">
<?php
include('../config/config.inc.php');
include('../init.php');
if (!$cookie->isLogged()) {
echo "you must login first before using our ticket system";
}
else {
?>
將:
<?require(CLIENTINC_DIR.'footer.inc.php'); ?>
更改為:
<?php
}
?>
<?require(CLIENTINC_DIR.'footer.inc.php'); ?>

09. 完成登入檢查,開始更改osTicket內容。編輯include/client/資料夾下的login.inc.php檔案。此作用為使用osTicket檢查票務時,把PrestaShop內的電郵地址,加到osTicket相應的欄位內。

sudo gedit /var/www/prestashop/osticket/include/client/login.inc.php
將:
<td>E-Mail:</td><td><input type="text" name="lemail" size="25" value="<?=$e?>"></td>
更改為:
<td>E-Mail:</td><td><input type="text" name="lemail" size="25" value="<?=$cookie->email?>"></td>

10. 編輯include/client/資料夾下的open.inc.php檔案。此作用為使用osTicket新增票務時,把PrestaShop內的用戶姓名及電郵地址,加到osTicket相應的欄位內。

sudo gedit /var/www/prestashop/osticket/include/client/open.inc.php
將:
<input type="hidden" name="name" value="<?=$name?>"><?=$name?>
<?}else {?>
<input type="text" name="name" size="25" value="<?=$info['name']?>">
更改為:
<input type="hidden" name="name" value="<?=$cookie->customer_firstname.' '.$cookie->customer_lastname?>"><?=$cookie->customer_firstname.' '.$cookie->customer_lastname?>
<?}else {?>
<input type="text" name="name" size="25" value="<?=$cookie->customer_firstname.' '.$cookie->customer_lastname?>">
將:
<input type="hidden" name="email" size="25" value="<?=$email?>"><?=$email?>
<?}else {?>             
<input type="text" name="email" size="25" value="<?=$info['email']?>">
更改為:
<input type="hidden" name="email" size="25" value="<?=$cookie->email?>"><?=$cookie->email?>
<?}else {?>             
<input type="text" name="email" size="25" value="<?=$cookie->email?>">

11. 編輯include/client/資料夾下的header.inc.php檔案。此作用會令到osTicket目錄內,取消家及登出選項。

sudo gedit /var/www/prestashop/osticket/include/client/header.inc.php
將:
<li><a class="log_out" href="logout.php">Log Out</a></li>
<li><a class="my_tickets" href="tickets.php">My Tickets</a></li>
<?}else {?>
<li><a class="ticket_status" href="tickets.php">Ticket Status</a></li>
<?}?>
<li><a class="new_ticket" href="open.php">New Ticket</a></li>
<li><a class="home" href="index.php">Home</a></li>
更改為:
<li><a class="my_tickets" href="tickets.php">My Tickets</a></li>
<?}else {?>
<li><a class="ticket_status" href="tickets.php">Ticket Status</a></li>
<?}?>
<li><a class="new_ticket" href="open.php">New Ticket</a></li>

12. 為PrestaShop版面Info block內,加入osTicket新增票務及檢查票務連結。

13. 登入PrestaShop管理員版面。在上面目錄選『Tools』、『CMS』、再選『Add new』填上相關資料。

14. 在『Page content』一欄,選擇『HTML圖示』,在『HTML Source Editor』對話匣貼上以下內容,完成後按『Update』,再按最下面的『Save』。

<h2>Ticket system</h2>
<h3>Get help from us</h3>
<p><a class="thickbox" title="Open a new ticket" href="osticket/open.php?keepThis=true& TB_iframe=true&height=500&width=820">Open a new ticket</a></p>
<p><a class="thickbox" title="View ticket status" href="osticket/login.php?keepThis=true& TB_iframe=true&height=500&width=820">View ticket status</a></p>

15. 在上面目錄選『Modules』,再在『Blocks』中找『Info block v1.1』,安裝後再選『Configure』。

16. 將『Ticketing system』一欄打勾,再按『Update』。

17. PrestaShop本身已支援thickbox,但找很久也找不到檔案放在甚麼位置,固另外安裝一次,以用於osTicket上面。下載最下面的thickbox.zip檔案,解壓後放在/var/www/prestashop/thickbox資料夾內。

sudo unzip thickbox.zip -x /var/www/prestashop/

18. 編輯/var/www/prestashop/cms.php檔案。在檔案內容最上面加上以下內容。

sudo gedit /var/www/prestashop/cms.php
<script type="text/javascript" src="thickbox/jquery.js"></script>
<script type="text/javascript" src="thickbox/thickbox.js"></script>
<link rel="stylesheet" href="thickbox/thickbox.css" type="text/css" media="screen" />

19. 用瀏覽器打開PrestaShop網站,在『INFORMATION』位置會找到『Ticketing system』。

20. 登入Prestashop,按『Open a new ticket』或『View ticket status』會打開thickbox,再顯示osTicket內容。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *