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
Thats a good question 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. 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 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.
Ok, i'll go to modify this files. 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.
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 ?
Actually it's ispconfig_isp_kunde.lib.php and ispconfig_isp_reseller.lib.php. They are in /home/admispconfig/ispconfig/lib/classes.
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"]; } 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')
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) : Code: $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,domain,land) VALUES ('$vorname','$name','$strasse','$plz','$ort','$telefon','$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?
Hello, I've another question 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.
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.
The menu item "New Ticket" is missing on my system... I only have "Opened Tickets" and "Closed Tickets".
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... ).