diff --git a/src/messenger/webim/libs/getcode.php b/src/messenger/webim/libs/getcode.php new file mode 100644 index 00000000..61c121b8 --- /dev/null +++ b/src/messenger/webim/libs/getcode.php @@ -0,0 +1,113 @@ + getlocal("page_getcode.tab.image"), 'link' => "$webimroot/operator/getcode.php"), + array('title'=> getlocal("page_getcode.tab.text"), 'link' => "$webimroot/operator/gettextcode.php"), + ); +} + +function generate_button($title,$locale,$style,$group,$inner,$showhost,$forcesecure,$modsecurity) { + $link = get_app_location($showhost,$forcesecure)."/client.php"; + if($locale) + $link = append_query($link, "locale=$locale"); + if($style) + $link = append_query($link, "style=$style"); + if($group) + $link = append_query($link, "group=$group"); + + $modsecfix = $modsecurity ? ".replace('http://','').replace('https://','')" : ""; + $jslink = append_query("'".$link,"url='+escape(document.location.href$modsecfix)+'&referrer='+escape(document.referrer$modsecfix)"); + $temp = get_popup($link, "$jslink", + $inner, $title, "webim", "toolbar=0,scrollbars=0,location=0,status=1,menubar=0,width=640,height=480,resizable=1" ); + return "".$temp.""; +} + +function get_style_list($stylesfolder) { + $stylelist = array("" => getlocal("page.preview.style_default")); + if($handle = opendir($stylesfolder)) { + while (false !== ($file = readdir($handle))) { + if (preg_match("/^\w+$/", $file) && is_dir("$stylesfolder/$file")) { + $stylelist[$file] = $file; + } + } + closedir($handle); + } + return $stylelist; +} + +function verifyparam_groupid($paramid) { + global $settings, $errors; + $groupid = ""; + if($settings['enablegroups'] == '1') { + $groupid = verifyparam($paramid, "/^\d{0,8}$/", ""); + if($groupid) { + $group = group_by_id($groupid); + if(!$group) { + $errors[] = getlocal("page.group.no_such"); + $groupid = ""; + } + } + } + return $groupid; +} + +function get_groups_list() { + global $settings; + $result = array(); + if($settings['enablegroups'] == '1') { + $link = connect(); + $allgroups = get_all_groups($link); + mysql_close($link); + $result[] = array('groupid' => '', 'vclocalname' => getlocal("page.gen_button.default_group")); + foreach($allgroups as $g) { + $result[] = $g; + } + } + return $result; +} + +function get_image_locales_map($localesdir) { + $imageLocales = array(); + $allLocales = get_available_locales(); + foreach($allLocales as $curr) { + $imagesDir = "$localesdir/$curr/button"; + if($handle = @opendir($imagesDir)) { + while (false !== ($file = readdir($handle))) { + if (preg_match("/^(\w+)_on.gif$/", $file, $matches) + && is_file("$imagesDir/".$matches[1]."_off.gif")) { + $image = $matches[1]; + if( !isset($imageLocales[$image]) ) { + $imageLocales[$image] = array(); + } + $imageLocales[$image][] = $curr; + } + } + closedir($handle); + } + } + return $imageLocales; +} + +?> \ No newline at end of file diff --git a/src/messenger/webim/locales/en/properties b/src/messenger/webim/locales/en/properties index e87634fc..180edc52 100644 --- a/src/messenger/webim/locales/en/properties +++ b/src/messenger/webim/locales/en/properties @@ -279,6 +279,8 @@ page.gen_button.modsecurity=Compatibility with mod_security (modsecurity.org), t page.gen_button.sample=Example page.gen_button.secure_links=Use secure links (https) page.gen_button.title=Button HTML code generation +page_getcode.tab.image=Image +page_getcode.tab.text=Text page.group.create_new=Here you can create new group. page.group.duplicate_name=Please choose another name, because group with entered name already exists. page.group.intro=On this page you can edit group details. diff --git a/src/messenger/webim/operator/getcode.php b/src/messenger/webim/operator/getcode.php index c96c9ff2..3ea2053e 100644 --- a/src/messenger/webim/operator/getcode.php +++ b/src/messenger/webim/operator/getcode.php @@ -22,76 +22,27 @@ require_once('../libs/common.php'); require_once('../libs/operator.php'); require_once('../libs/groups.php'); - -function generate_button($title,$locale,$style,$group,$inner,$showhost,$forcesecure,$modsecurity) { - $link = get_app_location($showhost,$forcesecure)."/client.php"; - if($locale) - $link = append_query($link, "locale=$locale"); - if($style) - $link = append_query($link, "style=$style"); - if($group) - $link = append_query($link, "group=$group"); - - $modsecfix = $modsecurity ? ".replace('http://','').replace('https://','')" : ""; - $jslink = append_query("'".$link,"url='+escape(document.location.href$modsecfix)+'&referrer='+escape(document.referrer$modsecfix)"); - $temp = get_popup($link, "$jslink", - $inner, $title, "webim", "toolbar=0,scrollbars=0,location=0,status=1,menubar=0,width=640,height=480,resizable=1" ); - return "".$temp.""; -} +require_once('../libs/getcode.php'); $operator = check_login(); loadsettings(); -$imageLocales = array(); -$allLocales = get_available_locales(); -foreach($allLocales as $curr) { - $imagesDir = "../locales/$curr/button"; - if($handle = @opendir($imagesDir)) { - while (false !== ($file = readdir($handle))) { - if (preg_match("/^(\w+)_on.gif$/", $file, $matches) - && is_file("$imagesDir/".$matches[1]."_off.gif")) { - $image = $matches[1]; - if( !isset($imageLocales[$image]) ) { - $imageLocales[$image] = array(); - } - $imageLocales[$image][] = $curr; - } - } - closedir($handle); - } -} - +$imageLocales = get_image_locales_map("../locales"); $image = verifyparam(isset($_GET['image']) ? "image" : "i", "/^\w+$/", "webim"); +if(!isset($imageLocales[$image])) { + $errors[] = "Unknown image: $image"; + $avail = array_keys($imageLocales); + $image = $avail[0]; +} $image_locales = $imageLocales[$image]; -$stylelist = array("" => getlocal("page.preview.style_default")); -$stylesfolder = "../styles"; -if($handle = opendir($stylesfolder)) { - while (false !== ($file = readdir($handle))) { - if (preg_match("/^\w+$/", $file) && is_dir("$stylesfolder/$file")) { - $stylelist[$file] = $file; - } - } - closedir($handle); -} - +$stylelist = get_style_list("../styles"); $style = verifyparam("style","/^\w*$/", ""); if($style && !in_array($style, $stylelist)) { $style = ""; } -$groupid = ""; -if($settings['enablegroups'] == '1') { - $groupid = verifyparam( "group", "/^\d{0,8}$/", ""); - if($groupid) { - $group = group_by_id($groupid); - if(!$group) { - $errors[] = getlocal("page.group.no_such"); - $groupid = ""; - } - } -} - +$groupid = verifyparam_groupid("group"); $showhost = verifyparam("hostname","/^on$/", "") == "on"; $forcesecure = verifyparam("secure","/^on$/", "") == "on"; $modsecurity = verifyparam("modsecurity","/^on$/", "") == "on"; @@ -114,17 +65,7 @@ $page['buttonCode'] = generate_button("",$lang,$style,$groupid,$message,$showhos $page['availableImages'] = array_keys($imageLocales); $page['availableLocales'] = $image_locales; $page['availableStyles'] = $stylelist; - -if($settings['enablegroups'] == '1') { - $link = connect(); - $allgroups = get_all_groups($link); - mysql_close($link); - $page['groups'] = array(); - $page['groups'][] = array('groupid' => '', 'vclocalname' => getlocal("page.gen_button.default_group")); - foreach($allgroups as $g) { - $page['groups'][] = $g; - } -} +$page['groups'] = get_groups_list(); $page['formgroup'] = $groupid; $page['formstyle'] = $style; @@ -135,6 +76,7 @@ $page['formsecure'] = $forcesecure; $page['formmodsecurity'] = $modsecurity; prepare_menu($operator); +setup_getcode_tabs(0); start_html_output(); require('../view/getcode_image.php'); ?> \ No newline at end of file diff --git a/src/messenger/webim/operator/gettextcode.php b/src/messenger/webim/operator/gettextcode.php new file mode 100644 index 00000000..a5933f5a --- /dev/null +++ b/src/messenger/webim/operator/gettextcode.php @@ -0,0 +1,66 @@ + \ No newline at end of file diff --git a/src/messenger/webim/view/getcode_image.php b/src/messenger/webim/view/getcode_image.php index b1e28050..6683f867 100644 --- a/src/messenger/webim/view/getcode_image.php +++ b/src/messenger/webim/view/getcode_image.php @@ -20,6 +20,7 @@ */ require_once("inc_menu.php"); +require_once("inc_tabbar.php"); $page['title'] = getlocal("page.gen_button.title"); $page['menuid'] = "getcode"; @@ -34,6 +35,8 @@ require_once('inc_errors.php'); ?>
+
+
@@ -45,14 +48,6 @@ require_once('inc_errors.php');
-
-
-
- -
-
-
-
@@ -61,6 +56,14 @@ require_once('inc_errors.php');
+
+ +
+
+
+ +
+
@@ -113,6 +116,7 @@ require_once('inc_errors.php');
+
+ + +
+
+ + +
+
+ +
+ +
+ +
+
+
+ +
+
+ + +
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ +
+
+
+ onchange="this.form.submit();"/> +
+
+ + + +
+
+
+ onchange="this.form.submit();"/> +
+
+ +
+ +
+
+
+ onchange="this.form.submit();"/> +
+
+ +
+
+
+ +
+
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ + \ No newline at end of file