diff --git a/src/composer.json b/src/composer.json
index dab27a7b..a6716fcb 100644
--- a/src/composer.json
+++ b/src/composer.json
@@ -24,7 +24,8 @@
"symfony/config": "2.5.*",
"symfony/yaml": "2.5.*",
"symfony/translation": "2.5.*",
- "tedivm/stash": "0.12.*"
+ "tedivm/stash": "0.12.*",
+ "canteen/html5": "1.1.*"
},
"require-dev": {
"squizlabs/php_codesniffer": "1.*"
diff --git a/src/mibew/libs/classes/Mibew/Button/Generator/ImageGenerator.php b/src/mibew/libs/classes/Mibew/Button/Generator/ImageGenerator.php
index 507286e5..e478778b 100644
--- a/src/mibew/libs/classes/Mibew/Button/Generator/ImageGenerator.php
+++ b/src/mibew/libs/classes/Mibew/Button/Generator/ImageGenerator.php
@@ -19,6 +19,7 @@
namespace Mibew\Button\Generator;
+use Canteen\HTML5;
use Mibew\Asset\Generator\UrlGeneratorInterface as AssetUrlGeneratorInterface;
use Mibew\Routing\Generator\SecureUrlGeneratorInterface as RouteUrlGeneratorInterface;
use Mibew\Settings;
@@ -74,14 +75,20 @@ class ImageGenerator extends TextGenerator
'&',
$this->generateUrl('button', $image_link_args)
);
- $message = "
";
+ $image = HTML5\html('img');
+ $image->setAttributes(array(
+ 'src' => $image_url,
+ 'border' => 0,
+ 'alt' => '',
+ ));
- $button = ""
- . $this->getPopup($message)
- . $this->getWidgetCode()
- . "";
+ $button = HTML5\html('fragment');
+ $button->addChild(HTML5\html('comment', 'mibew button'));
+ $button->addChild($this->getPopup($image));
+ $button->addChild($this->getWidgetCode());
+ $button->addChild(HTML5\html('comment', '/ mibew button'));
- return $button;
+ return (string)$button;
}
/**
@@ -140,13 +147,20 @@ class ImageGenerator extends TextGenerator
// blocked
$widget_data['visitorCookieName'] = VISITOR_COOKIE_NAME;
- // Build additional button code
- return '
'
- . ''
- . '';
+ $markup = HTML5\html('fragment');
+ $markup->addChild(HTML5\html('div#mibewinvitation'));
+ $markup->addChild(
+ HTML5\html('script')->setAttributes(array(
+ 'type' => 'text/javascript',
+ 'src' => $this->generateAssetUrl('js/compiled/widget.js'),
+ ))
+ );
+ $markup->addChild(
+ HTML5\html('script')
+ ->setAttribute('type', 'text/javascript')
+ ->addChild('Mibew.Widget.init(' . json_encode($widget_data) . ')')
+ );
+
+ return $markup;
}
}
diff --git a/src/mibew/libs/classes/Mibew/Button/Generator/OperatorCodeGenerator.php b/src/mibew/libs/classes/Mibew/Button/Generator/OperatorCodeGenerator.php
index 29c83be6..c8898ef6 100644
--- a/src/mibew/libs/classes/Mibew/Button/Generator/OperatorCodeGenerator.php
+++ b/src/mibew/libs/classes/Mibew/Button/Generator/OperatorCodeGenerator.php
@@ -19,6 +19,8 @@
namespace Mibew\Button\Generator;
+use Canteen\HTML5;
+
/**
* Generates an Operator's Code field.
*/
@@ -29,19 +31,35 @@ class OperatorCodeGenerator extends AbstractGenerator implements GeneratorInterf
*/
public function generate()
{
- $js_link = $this->getChatUrlForJs();
- $popup_options = $this->getPopupOptions();
+ $form = HTML5\html('form');
+ $form->setAttributes(array(
+ 'action' => '',
+ 'onsubmit' => sprintf(
+ ("if(navigator.userAgent.toLowerCase().indexOf('opera') != -1 "
+ . "&& window.event.preventDefault) window.event.preventDefault();"
+ . "this.newWindow = window.open(%s + '&operator_code=' "
+ . "+ document.getElementById('mibewOperatorCodeField').value, 'mibew', '%s');"
+ . "this.newWindow.focus();"
+ . "this.newWindow.opener=window;"
+ . "return false;"),
+ $this->getChatUrlForJs(),
+ $this->getPopupOptions()
+ ),
+ 'id' => 'mibewOperatorCodeForm',
+ ));
+ $form->addChild(HTML5\html(
+ 'input',
+ array(
+ 'type' => 'text',
+ 'id' => 'mibewOperatorCodeField',
+ )
+ ));
- $form_on_submit = "if(navigator.userAgent.toLowerCase().indexOf('opera') != -1 "
- . "&& window.event.preventDefault) window.event.preventDefault();"
- . "this.newWindow = window.open({$js_link} + '&operator_code=' "
- . "+ document.getElementById('mibewOperatorCodeField').value, 'mibew', '{$popup_options}');"
- . "this.newWindow.focus();this.newWindow.opener=window;return false;";
+ $button = HTML5\html('fragment');
+ $button->addChild(HTML5\html('comment', 'mibew operator code field'));
+ $button->addChild($form);
+ $button->addChild(HTML5\html('comment', '/ mibew operator code field'));
- $temp = '';
-
- return "" . $temp . "";
+ return (string)$button;
}
}
diff --git a/src/mibew/libs/classes/Mibew/Button/Generator/TextGenerator.php b/src/mibew/libs/classes/Mibew/Button/Generator/TextGenerator.php
index be30a833..a6266482 100644
--- a/src/mibew/libs/classes/Mibew/Button/Generator/TextGenerator.php
+++ b/src/mibew/libs/classes/Mibew/Button/Generator/TextGenerator.php
@@ -19,6 +19,8 @@
namespace Mibew\Button\Generator;
+use Canteen\HTML5;
+
/**
* Generates a Text button.
*/
@@ -29,9 +31,12 @@ class TextGenerator extends AbstractGenerator implements GeneratorInterface
*/
public function generate()
{
- return ""
- . $this->getPopup($this->getOption('caption'))
- . "";
+ $button = HTML5\html('fragment');
+ $button->addChild(HTML5\html('comment', 'mibew text link'));
+ $button->addChild($this->getPopup($this->getOption('caption')));
+ $button->addChild(HTML5\html('comment', '/ mibew text link'));
+
+ return (string)$button;
}
/**
@@ -41,16 +46,29 @@ class TextGenerator extends AbstractGenerator implements GeneratorInterface
*/
protected function getPopup($message)
{
- $url = str_replace('&', '&', $this->getChatUrl());
- $js_url = $this->getChatUrlForJs();
- $options = $this->getPopupOptions();
- $title = $this->getOption('title');
+ $link = HTML5\html('a', $message);
- return "$message";
+ $link->setAttributes(array(
+ 'id' => 'mibewAgentButton',
+ 'href' => str_replace('&', '&', $this->getChatUrl()),
+ 'target' => '_blank',
+ 'onclick' =>sprintf(
+ ("if(navigator.userAgent.toLowerCase().indexOf('opera') != -1 "
+ . "&& window.event.preventDefault) window.event.preventDefault();"
+ . "this.newWindow = window.open(%s, 'mibew', '%s');"
+ . "this.newWindow.focus();"
+ . "this.newWindow.opener=window;"
+ . "return false;"),
+ $this->getChatUrlForJs(),
+ $this->getPopupOptions()
+ ),
+ ));
+
+ $title = $this->getOption('title');
+ if ($title) {
+ $link->setAttribute('title', $title);
+ }
+
+ return $link;
}
}