Contributions > Plugins, tips, and tricks
Using webim on several sites with one central operator console
simplyfat:
i have two companies with one common backoffice/callcenter. there is no obvious relation between these two, so customers of company 1 should not see company name 2 in the live chat window and vice versa. the operators should not have to login into seperate consoles for each companies.
so here is my hack:
1) create a file called "custom.php" somewhere
--- Code: --- function text_verwursten($key, $val, $locale) {
$company = getCompanyDetails();
switch ($key) {
case 'chat.window.title.agent': case 'chat.window.title.user': case 'site.title':
return $company['name'];
case 'mail.user.history.subject':
return $company['name'] . ': ' . ($locale == 'de' ? 'Chat-Protokoll' : 'dialog history');
case 'site.url':
return $company['url'];
default:
return $val;
}
}
function settings_verwursten($key, $val) {
$company = getCompanyDetails();
switch ($key) {
case 'hosturl':
return $company['url'];
case 'title':
return $company['name'];
case 'logo':
return $company['logo'];
case 'email':
return $company['email'];
case 'chattitle':
return $company['name'] . ' ' . $val;
default:
return $val;
}
}
function getCompanyDetails() {
$ret = array();
switch ($_SERVER['SERVER_NAME']) {
case 'support.company1.com':
$ret['name'] = 'Company 1';
$ret['url'] = 'http://www.company1.com/';
$ret['email'] = 'mail@company1.com';
$ret['logo'] = 'http://www.company1.com/images/logo.jpg';
break;
default:
$ret['name'] = 'Company 2';
$ret['url'] = 'http://www.company2.com/';
$ret['email'] = 'mail@company2.com';
$ret['logo'] = 'http://www.company2.com/images/logo.jpg';
}
return $ret;
}
--- End code ---
2) go to webim/libs/common.php
3) add "require_once('/path/to/custom.php');" at the top
4) change one line in "load_messages"-function (see comment "CUSTOM")
--- Code: ---function load_messages($locale) {
global $messages, $webim_encoding, $output_encoding;
$hash = array();
$current_encoding = $webim_encoding;
$fp = fopen(dirname(__FILE__)."/../locales/$locale/properties", "r");
while (!feof($fp)) {
$line = fgets($fp, 4096);
$keyval = split("=", $line, 2 );
if( isset($keyval[1]) ) {
$keyval[1] = text_verwursten($keyval[0], $keyval[1], $locale); // CUSTOM
if($keyval[0] == 'encoding') {
$current_encoding = trim($keyval[1]);
} else if($keyval[0] == 'output_encoding') {
$output_encoding[$locale] = trim($keyval[1]);
} else if( $current_encoding == $webim_encoding ) {
$hash[$keyval[0]] = str_replace("\\n", "\n",trim($keyval[1]));
} else {
$hash[$keyval[0]] = myiconv($current_encoding, $webim_encoding, str_replace("\\n", "\n",trim($keyval[1])));
}
}
}
fclose($fp);
$messages[$locale] = $hash;
}
--- End code ---
5) change one line in "loadsettings"-function (see comment "CUSTOM")
--- Code: ---function loadsettings() {
global $settingsloaded, $settings_in_db, $settings;
if($settingsloaded) {
return;
}
$settingsloaded = true;
$link = connect();
$sqlresult = mysql_query('select vckey,vcvalue from chatconfig',$link) or die(' Query failed: '.mysql_error().": ".$query);
while ($row = mysql_fetch_array($sqlresult, MYSQL_ASSOC)) {
$name = $row['vckey'];
$settings[$name] = settings_verwursten($name, $row['vcvalue']); // CUSTOM
$settings_in_db[$name] = true;
}
mysql_free_result($sqlresult);
mysql_close($link);
}
--- End code ---
spencer:
Thanks for sharing the above mentioned codes.
wilson:
Hi
that is a very interesting hack no doubt :-)
So using your hack, with just one installation of webim we could attend "n" diferent sites?
And if so, how we could generate diferent codes to put the on/off line imagens on those sites?
Thanks
simplyfat:
this hack does only work with 1 company which has n different brandings. however you can use the group feature to have different on-/offline realms.
it is NOT suitable for a hosted solution or similar where many different companies use the service, because every operator can see each other.
r1:
Hello,
I need this feature for my clients. I am having few projects, and own operators. I need separated per domain site but every data are in one domain (satellite).
Does anyone can write that for money? Regards.
Navigation
[0] Message Index
[#] Next page
Go to full version