View Full Version : Support System
Tribal-Dolphin
16th August 2005, 22:09
Hi all,
I'm working on support system and I have some question.
Why the sys_user table don't have the user email address ? (in my ISPConfig install, it's always @ispconfig.de)
The field 'userid' (on sys_user table) of a resseller contains the 'doc_id' of the admin and for a client, it contains the resseller creator's doc_id (or the admin doc_id). I'm right ?
Can I modify the go_info.inc.php file to add the 'userid' field of sys_user table ?
Thanks.
Tribal-Dolphin
till
17th August 2005, 00:14
Why the sys_user table don't have the user email address ? (in my ISPConfig install, it's always @ispconfig.de)
Thats a good question :confused: The Field was there from another application that used the same framework. It is a good idea to use it in ISPConfig too, so we have to modify the isp_isp_kunde.inc.php and the isp_isp_reseller.inc.php to write the correct email address when creating a new controlpanel user.
The field 'userid' (on sys_user table) of a resseller contains the 'doc_id' of the admin and for a client, it contains the resseller creator's doc_id (or the admin doc_id). I'm right ?
Yes, thats right.
The external relations are:
ID Relations Resellers:
sys_user.doc_id => isp_isp_reseller.reseller_userid
ID Relations Clients:
sys_user.doc_id => isp_isp_kunde.webadmin_userid
Can I modify the go_info.inc.php file to add the 'userid' field of sys_user table ?
Yes, but i think in most cases you need the doc_id of the user. This is needed to check the permissions against the *_nodes tables. The doc_id of the user is alredy part of the $go_info array.
Tribal-Dolphin
17th August 2005, 08:33
It is a good idea to use it in ISPConfig too, so we have to modify the isp_isp_kunde.inc.php and the isp_isp_reseller.inc.php to write the correct email address when creating a new controlpanel user.
Ok, i'll go to modify this files.
Yes, but i think in most cases you need the doc_id of the user. This is needed to check the permissions against the *_nodes tables. The doc_id of the user is alredy part of the $go_info array.
I need the creator's ID for sent the support question to him. I've take a look to the *_nodes tables and i don't find how to retrieve the creator's ID.
Can you help me for that ?
till
17th August 2005, 12:27
I need the creator's ID for sent the support question to him. I've take a look to the *_nodes tables and i don't find how to retrieve the creator's ID.
Can you help me for that ?
Who do you mean with creator? The client that sends a support question to the admin / reseller?
General explanation: If a user saves a form that was build with the form generator, the contents of the form are stored in the form specific table, the user and permission information is stored in the *_nodes table.
Example for isp_nodes and isp_isp_web:
isp_nodes.tree_id = unique index field of the nodes table.
isp_nodes.userid => sys_user.doc_id // Sorry, i know that this is a bit misleading with the userid column in sys_user, but doc_id is always the name of the primary index field of an table.
isp_nodes.groupid => groups.groupid
isp_nodes.parent => this field is for building the tree view, it can contain the tree ID of the parent item (folder) or the string group[GROUPID] when it is not in a folder and belongs to a group with the ID [GROUPID].
isp_nodes.type => contains 'n' if it is a folder, or 'i' if it is form document.
isp_nodes.doctype_id => isp_isp_web.doctype_id => doctype.doctype_id // in the doctype table are the form definitions stored that are made with the foem designer
isp_nodes.doc_id => isp_isp_web.doc_id // The doc_id's are the primary index fields of the content tables
isp_nodes.status // 1 = active, 0 = Deleted / stored in the trash
isp_nodes.icon // may contain the name of the icon file, if it is empty, a default icon is used
isp_nodes.modul // not used in ISPConfig
isp_nodes.title // The title that is displayed in the tree view, if the form is from the type that is displayed in the tree.
Tribal-Dolphin
17th August 2005, 12:38
The Creator is the person who have created the reseller/client account.
I'll need to know if the question is for admin, Reseller1, Reseller2, ......
I don't find this file : isp_isp_kunde.inc.php and the isp_isp_reseller.inc.php. Where they are ?
falko
17th August 2005, 12:49
I don't find this file : isp_isp_kunde.inc.php and the isp_isp_reseller.inc.php. Where they are ?
Actually it's ispconfig_isp_kunde.lib.php and ispconfig_isp_reseller.lib.php. They are in /home/admispconfig/ispconfig/lib/classes.
till
17th August 2005, 13:13
The Creator is the person who have created the reseller/client account.
I'll need to know if the question is for admin, Reseller1, Reseller2, ......
I assume you have the sys_user.doc_id of the reseller/client and want to get the sys_user.doc_id of the creator. First we will find out if it is a reseller or a client. When it is a reseller, the support requests have to be send to the admin:
$groups = $go_api->groups->myGroups();
if(is_array($groups)) {
//This user is a reseller, because clients do not have a group!
} else {
// This must be a client, now get the sys_user.doc_id of the reseller
$reseller = $go_api->db->queryOneRecord("SELECT doc_id FROM sys_user WHERE userid = $client_sys_doc_id");
$reseller_sys_doc_id = $reseller["doc_id"];
}
I don't find this file : isp_isp_kunde.inc.php and the isp_isp_reseller.inc.php. Where they are ?
Sorry, i posted the wrong filenames:
in /home/admispconfig/ispconfig/web/lib/classes/
ispconfig_isp_kunde.lib.php
ispconfig_isp_reseller.lib.php
Every class contains functions that are called when an event like insert update or delete happens for a form. The functions are:
*_insert($doc_id, $doctype_id, $die_on_error = '1')
*_update($doc_id, $doctype_id, $die_on_error = '1')
*_delete($doc_id, $doctype_id, $die_on_error = '1')
Tribal-Dolphin
17th August 2005, 19:41
I'll try to modify the two class (ispconfig_isp_kunde.lib.php & ispconfig_isp_reseller.lib.php) for insert into sys_user table the field name, vorname, email, domain, ..... but it don't works.
Can anyone can tell me where (the line) I can add my code.
Thanks a lot
Exemple of code I'll try to insert into ispconfig_isp_kunde.lib.php at the line 105 (insert new client) :
$kunde = $go_api->db->queryOneRecord("SELECT * FROM isp_isp_kunde where webadmin_userid = '$userid'");
$vorname = $kunde["kunde_vorname"];
$name = $kunde["kunde_name"];
$strasse = $kunde["kunde_strasse"];
$plz = $kunde["kunde_plz"];
$ort = $kunde["kunde_ort"];
$telefon = $kunde["kunde_telefon"];
$fax = $kunde["kunde_fax"];
$kunde_email = explode("@", $kunde["kunde_email"]); $email=$kunde_email[0]; $domain=$kunde_email[1];
$land = $kunde["kunde_land"];
$sql = "UPDATE sys_user (vorname,name,strasse,plz,ort,telefon,fax,email,do main,land) VALUES ('$vorname','$name','$strasse','$plz','$ort','$tel efon','$fax','$email','$domain','$land') WHERE doc_id = '$userid'";
$go_api->db->query($sql);
--------------------------------------------------------------
EDIT :
Otherwise, I have another idea.
Why do not to modify the file go_info.inc.php to get back the information unavailable in the table sys_user.
What do you think of it?
falko
17th August 2005, 22:08
You have an error here:
$sql = "UPDATE sys_user (vorname,name,strasse,plz,ort,telefon,fax,email,do main,land) VALUES ('$vorname','$name','$strasse','$plz','$ort','$tel efon','$fax','$email','$domain','$land') WHERE doc_id = '$userid'";
Tribal-Dolphin
17th August 2005, 23:47
This error isn't in my file. it's an error of copy/paste.
Sorry :o
till
18th August 2005, 12:27
Otherwise, I have another idea.
Why do not to modify the file go_info.inc.php to get back the information unavailable in the table sys_user.
What do you think of it?
I think thats a good idea, so we dont have to duplicate the information in two locations.
Tribal-Dolphin
18th August 2005, 20:44
Hello,
I've another question :o
Does a classe have a function which allows to know if sys_user.doc_id is a reseller or a customer?
If not, in wich classe can I add it ?
Thanks.
till
18th August 2005, 21:42
Hello,
I've another question :o
Does a classe have a function which allows to know if sys_user.doc_id is a reseller or a customer?
No.
If not, in wich classe can I add it ?
I think the auth class is the best location for this function.
falko
23rd August 2005, 01:27
Hi all,
I'm working on support system
Hi Tribal-Dolphin,
can you describe how your support ticket system works? I found it under Help, but don't know how to use it.
Tribal-Dolphin
23rd August 2005, 11:14
I attach a little manual in HTML.
till
23rd August 2005, 12:01
I attach a little manual in HTML.
This looks really nice! :)
falko
23rd August 2005, 12:25
I attach a little manual in HTML.
The menu item "New Ticket" is missing on my system... :( I only have "Opened Tickets" and "Closed Tickets".
Tribal-Dolphin
23rd August 2005, 12:39
Because you're connected as Admin. The admin can no send ticket. He only can answer to Reseller/Client ticket.
Connect to ISPConfig as Reseller or Client, the "New Ticket" menu appears.
Thanks.
falko
24th August 2005, 01:38
Because you're connected as Admin. The admin can no send ticket. He only can answer to Reseller/Client ticket.
Connect to ISPConfig as Reseller or Client, the "New Ticket" menu appears.
Thanks.
Ok, it's working! :) One thing: Can you format the Unix timestamps behind "Date:" into a human readable format? Like 24/08/2005 or 24.08.2005 or 24-08-2005 (I think in the U.S. it's 08/24/2005 but I'll never get used to that... :D ).
vBulletin® v3.8.4, Copyright ©2000-2010, Jelsoft Enterprises Ltd.