clipgenerator - Version 1.0.8

Version Notes

* Uninstall helper in configuration
* Version 1.0.8

Download this release

Release Info

Developer Trivid GmbH
Extension clipgenerator
Version 1.0.8
Comparing to
See all releases


Code changes from version 1.0.7 to 1.0.8

Files changed (45) hide show
  1. app/code/community/Trivid/Clipgenerator/Adminhtml/MassController.php +72 -0
  2. app/code/community/Trivid/Clipgenerator/Adminhtml/OrderformController.php +48 -0
  3. app/code/community/Trivid/Clipgenerator/Block/Adminhtml/System/Config/Form/Field/Contingentlabel.php +38 -0
  4. app/code/community/Trivid/Clipgenerator/Block/Adminhtml/System/Config/Form/Field/Musiclightbox.php +38 -0
  5. app/code/community/Trivid/Clipgenerator/Block/Catalog/Product/Helper/Form/Images.php +37 -0
  6. app/code/community/Trivid/Clipgenerator/Block/Catalog/Product/Helper/Form/music.php +37 -0
  7. app/code/community/Trivid/Clipgenerator/Block/InsertVideo.php +77 -0
  8. app/code/community/Trivid/Clipgenerator/Block/Video.php +40 -0
  9. app/code/community/Trivid/Clipgenerator/Helper/Data.php +341 -0
  10. app/code/community/Trivid/Clipgenerator/Helper/Data.php.orig +341 -0
  11. app/code/community/Trivid/Clipgenerator/Model/Adminhtml/System/Config/Source/Designs.php +58 -0
  12. app/code/community/Trivid/Clipgenerator/Model/Adminhtml/System/Config/Source/Musics.php +58 -0
  13. app/code/community/Trivid/Clipgenerator/Model/Mysql4/Setup.php +25 -0
  14. app/code/community/Trivid/Clipgenerator/Model/Observer.php +83 -0
  15. app/code/community/Trivid/Clipgenerator/Model/Source/Designs.php +41 -0
  16. app/code/community/Trivid/Clipgenerator/Model/Source/Musics.php +41 -0
  17. app/code/community/Trivid/Clipgenerator/controllers/Adminhtml/MassController.php +72 -0
  18. app/code/community/Trivid/Clipgenerator/controllers/Adminhtml/OrderformController.php +48 -0
  19. app/code/community/Trivid/Clipgenerator/etc/adminhtml.xml +3 -0
  20. app/code/community/Trivid/Clipgenerator/etc/config.xml +1 -1
  21. app/code/community/Trivid/Clipgenerator/etc/system.xml +146 -0
  22. app/code/community/Trivid/Clipgenerator/lib/clipgenerator/ClipgeneratorClient.php +584 -0
  23. app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Frame.php +89 -0
  24. app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Logo.php +71 -0
  25. app/code/community/Trivid/Clipgenerator/lib/clipgenerator/LowerThird.php +209 -0
  26. app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Picture.php +97 -0
  27. app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Video.php +572 -0
  28. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-0.1.0.php +196 -0
  29. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.0.php +200 -0
  30. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.2.php +202 -0
  31. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.3.php +202 -0
  32. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.4.php +202 -0
  33. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.5.php +202 -0
  34. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.6.php +202 -0
  35. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.7.php +202 -0
  36. app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.8.php +202 -0
  37. app/design/adminhtml/default/default/layout/clipgenerator.xml +10 -0
  38. app/design/adminhtml/default/default/template/clipgenerator/contingent.phtml +27 -0
  39. app/design/adminhtml/default/default/template/clipgenerator/images.phtml +108 -0
  40. app/design/adminhtml/default/default/template/clipgenerator/music.phtml +243 -0
  41. app/design/adminhtml/default/default/template/clipgenerator/orderform.phtml +288 -0
  42. app/design/adminhtml/default/default/template/clipgenerator/orderform.phtml.orig +279 -0
  43. app/etc/modules/Trivid_Clipgenerator.xml +9 -0
  44. app/locale/de_DE/Trivid_Clipgenerator.csv +10 -0
  45. package.xml +5 -5
app/code/community/Trivid/Clipgenerator/Adminhtml/MassController.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adminhtml Mass Controller
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Adminhtml_MassController
21
+ *
22
+ * catches mass instruction to activate or deactivate at least 10 product
23
+ * videos. After success the methods will return to list view.
24
+ * @package Trivid
25
+ */
26
+ class Trivid_Clipgenerator_Adminhtml_MassController extends Mage_Adminhtml_Controller_Action {
27
+
28
+ /**
29
+ * array of send products to mass controller.
30
+ * @var array $products
31
+ */
32
+ protected $products;
33
+
34
+ /**
35
+ * initializes the class, checks if the count of the given products
36
+ * is higher than the expected size of 10 and throws an error if
37
+ * happend.
38
+ *
39
+ * @return void
40
+ */
41
+ protected function init() {
42
+ $this->products = $this->getRequest()->getParam('product');
43
+ if (count($this->products) > 10) {
44
+ Mage::getSingleton('core/session')->addError(Mage::helper('clipgenerator')->__('Sie können maximal 10 Produkte gleichzeitig verarbeiten.'));
45
+ $this->_redirectUrl(Mage::helper('adminhtml')->getUrl('adminhtml/catalog_product/index'));
46
+ }
47
+ }
48
+
49
+ /**
50
+ * activates the given products by calling the clipgenerator helper
51
+ * which handle the activation request.
52
+ *
53
+ * @return void
54
+ */
55
+ public function activateAction() {
56
+ $this->init();
57
+ Mage::helper('clipgenerator')->activateVideos($this->products);
58
+ $this->_redirectUrl(Mage::helper('adminhtml')->getUrl('adminhtml/catalog_product/index'));
59
+ }
60
+
61
+ /**
62
+ * deactivates the given products by calling the clipgenerator helper
63
+ * which handle the deactivation request.
64
+ *
65
+ * @return void
66
+ */
67
+ public function deactivateAction() {
68
+ $this->init();
69
+ Mage::helper('clipgenerator')->deactivateVideos($this->products);
70
+ $this->_redirectUrl(Mage::helper('adminhtml')->getUrl('adminhtml/catalog_product/index'));
71
+ }
72
+ }
app/code/community/Trivid/Clipgenerator/Adminhtml/OrderformController.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Orderform Controller
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Adminhtml_OrderformController
21
+ *
22
+ * Handles the orderform view and request.
23
+ * @package Trivid
24
+ */
25
+ class Trivid_Clipgenerator_Adminhtml_OrderformController extends Mage_Adminhtml_Controller_Action {
26
+ /**
27
+ * User get the orderform if the api
28
+ * credentials not set anyway. On submitting the form to Trivid order web-
29
+ * service it receives the result via ajax and sets the return to the
30
+ * magento configuration.
31
+ * @return void
32
+ */
33
+ public function indexAction() {
34
+ $post = $this->getRequest()->getPost();
35
+ if($post['isAjax']) {
36
+ if($post['apiUser'] && $post['apiSecret']) {
37
+ $response_array['status'] = 'success';
38
+ echo json_encode($response_array);
39
+ Mage::getModel('core/config')->saveConfig('clipgenerator/general/clipgenerator_api_user_id', $post['apiUser']);
40
+ Mage::getModel('core/config')->saveConfig('clipgenerator/general/clipgenerator_api_secret', $post['apiSecret']);
41
+ Mage::getModel('core/config')->saveConfig('clipgenerator/general/clipgenerator_email', $post['email']);
42
+ Mage::getSingleton('core/session')->addSuccess(Mage::helper('clipgenerator')->__('Die Bestellung war erfolgreich!'));
43
+ }
44
+ die();
45
+ }
46
+ $this->loadLayout()->renderLayout();
47
+ }
48
+ }
app/code/community/Trivid/Clipgenerator/Block/Adminhtml/System/Config/Form/Field/Contingentlabel.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Contingent Field
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Block_Adminhtml_System_Config_Form_Field_Contingentlabel
21
+ *
22
+ * Contingent label handles contingent view in configuration.
23
+ * @package Trivid
24
+ */
25
+ class Trivid_Clipgenerator_Block_Adminhtml_System_Config_Form_Field_Contingentlabel extends Mage_Adminhtml_Block_System_Config_Form_Field {
26
+ /**
27
+ * Renders the contingent template with the given contingent information
28
+ * of the user.
29
+ * @return string
30
+ */
31
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
32
+ $block = Mage::getSingleton('core/layout')
33
+ ->createBlock('adminhtml/template', '', array('template' => 'clipgenerator/contingent.phtml'))
34
+ ->setIsRenderToJsTemplate(TRUE);
35
+
36
+ return $block->toHtml();
37
+ }
38
+ }
app/code/community/Trivid/Clipgenerator/Block/Adminhtml/System/Config/Form/Field/Musiclightbox.php ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * musiclightbox field
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Block_Adminhtml_System_Config_Form_Field_Musiclightbox
21
+ *
22
+ * Musiclightbox creates music chooser in configuration.
23
+ * @package Trivid
24
+ */
25
+ class Trivid_Clipgenerator_Block_Adminhtml_System_Config_Form_Field_Musiclightbox extends Mage_Adminhtml_Block_System_Config_Form_Field {
26
+ /**
27
+ * Renders music chooser for configuration view from music
28
+ * chooser tempalte.
29
+ * @return string
30
+ */
31
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element) {
32
+ $block = Mage::getSingleton('core/layout')
33
+ ->createBlock('adminhtml/template', '', array('template' => 'clipgenerator/music.phtml'))
34
+ ->setIsRenderToJsTemplate(TRUE);
35
+
36
+ return $block->toHtml();
37
+ }
38
+ }
app/code/community/Trivid/Clipgenerator/Block/Catalog/Product/Helper/Form/Images.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * images form helper
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Block_Catalog_Product_Helper_Form_Images
21
+ *
22
+ * Creates image chooser in product edit view.
23
+ * @package Trivid
24
+ */
25
+ class Trivid_Clipgenerator_Block_Catalog_Product_Helper_Form_Images extends Varien_Data_Form_Element_Text {
26
+ /**
27
+ * Renders the images chooser template and returns the html.
28
+ * @return string
29
+ */
30
+ public function getAfterElementHtml() {
31
+ $block = Mage::getSingleton('core/layout')
32
+ ->createBlock('adminhtml/template', '', array('template' => 'clipgenerator/images.phtml'))
33
+ ->setIsRenderToJsTemplate(TRUE);
34
+
35
+ return $block->toHtml();
36
+ }
37
+ }
app/code/community/Trivid/Clipgenerator/Block/Catalog/Product/Helper/Form/music.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * music form helper
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Block_Catalog_Product_Helper_Form_Music
21
+ *
22
+ * Creates the music chooser for the product edit view.
23
+ * @package Trivid
24
+ */
25
+ class Trivid_Clipgenerator_Block_Catalog_Product_Helper_Form_Music extends Varien_Data_Form_Element_Text {
26
+ /**
27
+ * Renders the music chooser template for editing products.
28
+ * @return string
29
+ */
30
+ public function getAfterElementHtml() {
31
+ $block = Mage::getSingleton('core/layout')
32
+ ->createBlock('adminhtml/template', '', array('template' => 'clipgenerator/music.phtml'))
33
+ ->setIsRenderToJsTemplate(TRUE);
34
+
35
+ return $block->toHtml();
36
+ }
37
+ }
app/code/community/Trivid/Clipgenerator/Block/InsertVideo.php ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * insert video block
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Block_InsertVideo
21
+ *
22
+ * Handles automatically output to the product detail view.
23
+ * @package Trivid
24
+ */
25
+ class Trivid_Clipgenerator_Block_InsertVideo extends Mage_Core_Block_Text {
26
+ /**
27
+ * Name of the new layout part.
28
+ * @var string
29
+ */
30
+ protected $_nameInLayout = 'clipgenerator.insertvideo';
31
+ /**
32
+ * Alias of the new layout part.
33
+ * @var string
34
+ */
35
+ protected $_alias = 'insertvideo';
36
+ /**
37
+ * Current video id.
38
+ * @var int
39
+ */
40
+ protected $videoId;
41
+ /**
42
+ * Products show option.
43
+ * @var boolean
44
+ */
45
+ protected $show;
46
+
47
+ /**
48
+ * Initializes the given product attributes videoid and show.
49
+ * @param null $videoId
50
+ * @param bool $show
51
+ */
52
+ function __construct($videoId = NULL, $show = FALSE) {
53
+ $this->videoId = $videoId;
54
+ $this->show = $show;
55
+ }
56
+
57
+ /**
58
+ * Expands the current transport part by adding the video iframe html.
59
+ * @param $transport
60
+ */
61
+ public function setPassingTransport($transport) {
62
+ $this->setData('text', $transport . $this->_insertVideoHtml());
63
+ }
64
+
65
+ /**
66
+ * Creates video iframe.
67
+ * @return string
68
+ */
69
+ private function _insertVideoHtml() {
70
+ $html = '';
71
+ if ($this->videoId && $this->show) {
72
+ $html = '<iframe id="clipgeneratorvideo" style="width:400px; height:300px; border:0px none;" src="http://data.clipgenerator.com/player/v3/Player.swf?autoplay=off&webcartURL=http%3A%2F%2Fcg-v3.clipgenerator.com%2FgetWebcart%3FvideoId%3D' . $this->videoId . '"></iframe>';
73
+ }
74
+
75
+ return $html;
76
+ }
77
+ }
app/code/community/Trivid/Clipgenerator/Block/Video.php ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * video block
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Block_Video
21
+ *
22
+ * Video block for individual inclusion.
23
+ * @package
24
+ */
25
+ class Trivid_Clipgenerator_Block_Video extends Mage_Core_Block_Text {
26
+ /**
27
+ * Generates the video iframe for the block include opiton.
28
+ * @return mixed|string
29
+ */
30
+ protected function _toHtml() {
31
+ $_product = Mage::registry('current_product');
32
+ $video = $_product->getData('clipgenerator_video_id');
33
+ $show = $_product->getData('clipgenerator_show');
34
+ if ($video && $show) {
35
+ $html = '<iframe id="clipgeneratorvideo" style="width:400px; height:300px; border:0px none;" src="http://data.clipgenerator.com/player/v3/Player.swf?autoplay=off&webcartURL=http%3A%2F%2Fcg-v3.clipgenerator.com%2FgetWebcart%3FvideoId%3D' . $video . '"></iframe>';
36
+ }
37
+
38
+ return $html;
39
+ }
40
+ }
app/code/community/Trivid/Clipgenerator/Helper/Data.php ADDED
@@ -0,0 +1,341 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Main Helper Class
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/ClipgeneratorClient.php');
20
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Video.php');
21
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Picture.php');
22
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Frame.php');
23
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Logo.php');
24
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/LowerThird.php');
25
+ /**
26
+ * Class Trivid_Clipgenerator_Helper_Data
27
+ *
28
+ * Main helper class for handling video generation, activation and so on.
29
+ * @package Trivid
30
+ */
31
+ class Trivid_Clipgenerator_Helper_Data extends Mage_Core_Helper_Abstract {
32
+
33
+ /**
34
+ * Instance of the clipgenerator client.
35
+ * @var ClipgeneratorClient
36
+ */
37
+ protected $clipgeneratorClient;
38
+
39
+ /**
40
+ * Initalize clipgenerator api with given api credentials from.
41
+ * clipgenerator konfiguration
42
+ * @return void
43
+ */
44
+ private function initClipgeneratorApi() {
45
+ $apiUserId = Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_user_id', Mage::app()->getStore());
46
+ $apiSecret = Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_secret', Mage::app()->getStore());
47
+ $apiId = 'magento-' . $apiUserId;
48
+ $apiUrl = 'http://cg-v3.clipgenerator.com/';
49
+ $this->clipgeneratorClient = new ClipgeneratorClient(
50
+ $apiId,
51
+ $apiSecret,
52
+ $apiUserId,
53
+ 'de',
54
+ $apiUrl
55
+ );
56
+ }
57
+
58
+ /**
59
+ * Method for calling requests to clipgenerator api direct via curl.
60
+ * @param $method
61
+ * @param array $params
62
+ * @return mixed
63
+ */
64
+ private function curlCall($method, $params = array()) {
65
+ if ($method) {
66
+ $apiCredentials = array(
67
+ 'userId' => Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_user_id', Mage::app()->getStore()),
68
+ 'apiSecret' => Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_secret', Mage::app()->getStore()),
69
+ 'apiId' => 'magento-' . Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_user_id', Mage::app()->getStore())
70
+ );
71
+ $params = array_merge($params, $apiCredentials);
72
+ $apiUrl = 'http://cg-v3.clipgenerator.com/';
73
+ $curl = $apiUrl . $method . '?' . http_build_query($params);
74
+ $ch = curl_init();
75
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
76
+ curl_setopt($ch, CURLOPT_URL, $curl);
77
+ curl_setopt($ch, CURLOPT_HEADER, 0);
78
+ $output = curl_exec($ch);
79
+ curl_close($ch);
80
+
81
+ return $output;
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Uploads the given picture url to the current api account.
87
+ * @param $file
88
+ * @return array|bool
89
+ */
90
+ public function uploadPicture($file) {
91
+ $this->initClipgeneratorApi();
92
+
93
+ return $this->clipgeneratorClient->uploadPicture($file);
94
+ }
95
+
96
+ /**
97
+ * Save the generated xml to the given video or creates a new video.
98
+ * @param $xml
99
+ * @return false
100
+ */
101
+ public function saveVideo($xml) {
102
+ $this->initClipgeneratorApi();
103
+
104
+ return $this->clipgeneratorClient->saveVideo($xml);
105
+ }
106
+
107
+ /**
108
+ * Returns a array of the clipgenerator designs.
109
+ * @return array
110
+ */
111
+ public function getDesigns() {
112
+ $this->initClipgeneratorApi();
113
+ $designs = $this->clipgeneratorClient->getDesigns();
114
+
115
+ return $designs;
116
+ }
117
+
118
+ /**
119
+ * Returns a array of the clipgenerator music.
120
+ * @return array
121
+ */
122
+ public function getMusic() {
123
+ $this->initClipgeneratorApi();
124
+ $designs = $this->clipgeneratorClient->getMusic();
125
+
126
+ return $designs;
127
+ }
128
+
129
+ /**
130
+ * Returns the current user if api credentials match.
131
+ * @return array
132
+ */
133
+ public function getUser() {
134
+ $this->initClipgeneratorApi();
135
+ $user = $this->clipgeneratorClient->getUser();
136
+
137
+ return $user;
138
+ }
139
+
140
+ /**
141
+ * Activates the given products.
142
+ * @param $products
143
+ * @return void
144
+ */
145
+ public function activateVideos($products) {
146
+ foreach ($products as $product_id) {
147
+ $product = Mage::getModel('catalog/product')->load($product_id);
148
+ $cid = $product->getData('clipgenerator_video_id');
149
+ if ($cid) {
150
+ $productIdArray[] = $product->getData('clipgenerator_video_id');
151
+ $productArray[$product->getData('clipgenerator_video_id')] = $product;
152
+ } else {
153
+ $product->setData('clipgenerator_show', 1);
154
+ $this->createVideo($product);
155
+ $productIdArray[] = $product->getData('clipgenerator_video_id');
156
+ $productArray[$product->getData('clipgenerator_video_id')] = $product;
157
+ }
158
+ }
159
+ if (!empty($productIdArray)) {
160
+ $params['idList'] = json_encode($productIdArray);
161
+ $params['visibility'] = 1;
162
+ $return = json_decode($this->curlCall('setClipVisibilityBulk', $params));
163
+ $success = $return->result->idList;
164
+ }
165
+ if (!empty($success)) {
166
+ $count = 0;
167
+ Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
168
+ foreach ($success as $id) {
169
+ $productArray[$id]->setData('clipgenerator_show', 1);
170
+ $productArray[$id]->save();
171
+ $count++;
172
+ }
173
+ Mage::getSingleton('core/session')->addSuccess(sprintf(Mage::helper('clipgenerator')->__('%s Video/s wurde/n aktivert.'), $count));
174
+ } else {
175
+ Mage::getSingleton('core/session')->addError(Mage::helper('clipgenerator')->__('Die gewählten Videos konnten nicht aktiviert werden. Bitte versuchen Sie es noch einmal.'));
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Deactivates the given products.
181
+ * @param $products
182
+ * @return void
183
+ */
184
+ public function deactivateVideos($products) {
185
+ foreach ($products as $product_id) {
186
+ $product = Mage::getModel('catalog/product')->load($product_id);
187
+ $cid = $product->getData('clipgenerator_video_id');
188
+ if ($cid) {
189
+ $productIdArray[] = $product->getData('clipgenerator_video_id');
190
+ $productArray[$product->getData('clipgenerator_video_id')] = $product;
191
+ }
192
+ }
193
+ if (!empty($productIdArray)) {
194
+ $params['idList'] = json_encode($productIdArray);
195
+ $params['visibility'] = 0;
196
+ $return = json_decode($this->curlCall('setClipVisibilityBulk', $params));
197
+ $success = $return->result->idList;
198
+ }
199
+ if (!empty($success)) {
200
+ $count = 0;
201
+ Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
202
+ foreach ($success as $id) {
203
+ $productArray[$id]->setData('clipgenerator_show', 0);
204
+ $productArray[$id]->save();
205
+ $count++;
206
+ }
207
+ Mage::getSingleton('core/session')->addSuccess(sprintf(Mage::helper('clipgenerator')->__('%s Video/s wurde/n deaktivert.'), $count));
208
+ } else {
209
+ Mage::getSingleton('core/session')->addError(Mage::helper('clipgenerator')->__('Die gewählten Videos konnten nicht deaktiviert werden.'));
210
+ }
211
+ }
212
+
213
+ /**
214
+ * Creates a video by the given product with the product configuration,
215
+ * if there are no settings given or missing, it sets randomized value.
216
+ * @param $_product
217
+ * @return void
218
+ */
219
+ public function createVideo($_product) {
220
+ $this->initClipgeneratorApi();
221
+ if ($_product->getData('clipgenerator_show') && $this->getUser()) {
222
+ $video = new Video($_product->getData('clipgenerator_title'));
223
+ //set video design
224
+ if ($_product->getData('clipgenerator_design')) {
225
+ $video->designId = $_product->getData('clipgenerator_design');
226
+ } else {
227
+ $designs = $this->getDesigns();
228
+ $dKey = array_rand($designs);
229
+ $video->designId = $designs[$dKey]['id'];
230
+ $_product->setData('clipgenerator_design', $designs[$dKey]['id']);
231
+ }
232
+ //set video song
233
+ if ($_product->getData('clipgenerator_song')) {
234
+ $video->songId = $_product->getData('clipgenerator_song');
235
+ } else {
236
+ $music = $this->getMusic();
237
+ $mKey = array_rand($music['songs']);
238
+ $video->designId = $music['songs'][$mKey]['id'];
239
+ $_product->setData('clipgenerator_design', $music['songs'][$mKey]['id']);
240
+ }
241
+ $video->keywords = $_product->getData('clipgenerator_keywords') ? $_product->getData('clipgenerator_keywords') : $_product->getData('meta_keywords');
242
+ $video->title = $_product->getData('clipgenerator_title') ? $_product->getData('clipgenerator_title') : $_product->getData('name');
243
+ $video->description = $_product->getData('clipgenerator_description') ? $_product->getData('clipgenerator_description') : $_product->getData('description');
244
+ $logoUrl = $_product->getData('clipgenerator_logo') ? $_product->getData('clipgenerator_logo') : Mage::getStoreConfig('clipgenerator/settings/clipgenerator_logo_url', Mage::app()->getStore());
245
+ $logoLink = Mage::getStoreConfig('clipgenerator/settings/clipgenerator_logo_link', Mage::app()->getStore());
246
+ $color = Mage::getStoreConfig('clipgenerator/settings/clipgenerator_player_bgcolor', Mage::app()->getStore());
247
+ if ($logoUrl) {
248
+ if ($logo = $this->clipgeneratorClient->uploadLogo($logoUrl)) {
249
+ $logoId = $logo['id'];
250
+ $logoUrl = $logo['url'];
251
+ $logo = Logo::fromXml('<logo width="0.2" height="0.2" alpha="1">
252
+ <id>' . $logoId . '</id>
253
+ <url>' . htmlspecialchars($logoUrl) . '</url>
254
+ <link>' . $logoLink . '</link>
255
+ <position verticalAlign="top" horizontalAlign="right" />
256
+ <showInStartPage>false</showInStartPage>
257
+ <showInEndPage>false</showInEndPage>
258
+ <showInTimeline>true</showInTimeline>
259
+ </logo>');
260
+ $video->logo = $logo;
261
+ }
262
+ }
263
+ $images = explode(';', trim($_product->getData('clipgenerator_images_select'), ';'));
264
+ $pImgs = $_product->getMediaGalleryImages();
265
+ $newImgSelect = '';
266
+ $imgCount = 0;
267
+ if ($_product->getData('clipgenerator_images_select')) {
268
+ foreach ($images as $img) {
269
+ foreach ($pImgs as $pImg) {
270
+ if ($pImg->getUrl() == $img) {
271
+ $pic = $this->clipgeneratorClient->uploadPicture($img);
272
+ $picture = new Picture($pic['id']);
273
+ // add new frame
274
+ $frame = new Frame($picture);
275
+ // set config bg color
276
+ $frame->backgroundColor = hexdec($color);
277
+ if ($pImg->getData('label')) {
278
+ $l3 = new LowerThird();
279
+ $l3->verticalAlign = 300;
280
+ $l3->setText($pImg->getData('label'));
281
+ $l3->textOutlineWidth = 2;
282
+ $l3->textOutlineColor = 0x333333;
283
+ $l3->link = $_product->getProductUrl();
284
+ $frame->addLowerThird($l3);
285
+ }
286
+ $video->addFrame($frame);
287
+ $newImgSelect .= ';' . $img;
288
+ $imgCount++;
289
+ break;
290
+ }
291
+ }
292
+ // limitation to 22 images
293
+ if ($imgCount == 22) {
294
+ break;
295
+ }
296
+ }
297
+ } else {
298
+ foreach ($pImgs as $pImg) {
299
+ $pic = $this->clipgeneratorClient->uploadPicture($pImg->getUrl());
300
+ $picture = new Picture($pic['id']);
301
+ $frame = new Frame($picture);
302
+ if ($pImg->getData('label')) {
303
+ $l3 = new LowerThird();
304
+ $l3->verticalAlign = 300;
305
+ $l3->setText($pImg->getData('label'));
306
+ $l3->textOutlineWidth = 2;
307
+ $l3->textOutlineColor = 0x333333;
308
+ $l3->link = $_product->getProductUrl();
309
+ $frame->addLowerThird($l3);
310
+ }
311
+ $video->addFrame($frame);
312
+ $newImgSelect .= ';' . $pImg->getUrl();
313
+ $imgCount++;
314
+ // limitation to 22 images
315
+ if ($imgCount == 22) {
316
+ break;
317
+ }
318
+ }
319
+ if ($newImgSelect) {
320
+ $_product->setData('clipgenerator_images_select', $newImgSelect);
321
+ }
322
+ }
323
+ $video->format = '360p';
324
+ if ($_product->getData('clipgenerator_video_id')) {
325
+ $video->id = $_product->getData('clipgenerator_video_id');
326
+ }
327
+ $videoXml = $video->asXml();
328
+ $videoId = $this->clipgeneratorClient->saveVideo($videoXml);
329
+ Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
330
+ if (!$_product->getData('clipgenerator_video_id')) {
331
+ $_product->setData('clipgenerator_video_id', $videoId);
332
+ $_product->save();
333
+ } else {
334
+ if ($newImgSelect != $_product->getData('clipgenerator_images_select')) {
335
+ $_product->setData('clipgenerator_images_select', $newImgSelect);
336
+ $_product->save();
337
+ }
338
+ }
339
+ }
340
+ }
341
+ }
app/code/community/Trivid/Clipgenerator/Helper/Data.php.orig ADDED
@@ -0,0 +1,341 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Main Helper Class
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/ClipgeneratorClient.php');
20
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Video.php');
21
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Picture.php');
22
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Frame.php');
23
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/Logo.php');
24
+ require_once(Mage::getModuleDir('', 'Trivid_Clipgenerator') . '/lib/clipgenerator/LowerThird.php');
25
+ /**
26
+ * Class Trivid_Clipgenerator_Helper_Data
27
+ *
28
+ * Main helper class for handling video generation, activation and so on.
29
+ * @package Trivid
30
+ */
31
+ class Trivid_Clipgenerator_Helper_Data extends Mage_Core_Helper_Abstract {
32
+
33
+ /**
34
+ * Instance of the clipgenerator client.
35
+ * @var ClipgeneratorClient
36
+ */
37
+ protected $clipgeneratorClient;
38
+
39
+ /**
40
+ * Initalize clipgenerator api with given api credentials from.
41
+ * clipgenerator konfiguration
42
+ * @return void
43
+ */
44
+ private function initClipgeneratorApi() {
45
+ $apiUserId = Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_user_id', Mage::app()->getStore());
46
+ $apiSecret = Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_secret', Mage::app()->getStore());
47
+ $apiId = 'magento-' . $apiUserId;
48
+ $apiUrl = 'http://cg-v3.clipgenerator.com/';
49
+ $this->clipgeneratorClient = new ClipgeneratorClient(
50
+ $apiId,
51
+ $apiSecret,
52
+ $apiUserId,
53
+ 'de',
54
+ $apiUrl
55
+ );
56
+ }
57
+
58
+ /**
59
+ * Method for calling requests to clipgenerator api direct via curl.
60
+ * @param $method
61
+ * @param array $params
62
+ * @return mixed
63
+ */
64
+ private function curlCall($method, $params = array()) {
65
+ if ($method) {
66
+ $apiCredentials = array(
67
+ 'userId' => Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_user_id', Mage::app()->getStore()),
68
+ 'apiSecret' => Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_secret', Mage::app()->getStore()),
69
+ 'apiId' => 'magento-' . Mage::getStoreConfig('clipgenerator/general/clipgenerator_api_user_id', Mage::app()->getStore())
70
+ );
71
+ $params = array_merge($params, $apiCredentials);
72
+ $apiUrl = 'http://cg-v3.clipgenerator.com/';
73
+ $curl = $apiUrl . $method . '?' . http_build_query($params);
74
+ $ch = curl_init();
75
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
76
+ curl_setopt($ch, CURLOPT_URL, $curl);
77
+ curl_setopt($ch, CURLOPT_HEADER, 0);
78
+ $output = curl_exec($ch);
79
+ curl_close($ch);
80
+
81
+ return $output;
82
+ }
83
+ }
84
+
85
+ /**
86
+ * Uploads the given picture url to the current api account.
87
+ * @param $file
88
+ * @return array|bool
89
+ */
90
+ public function uploadPicture($file) {
91
+ $this->initClipgeneratorApi();
92
+
93
+ return $this->clipgeneratorClient->uploadPicture($file);
94
+ }
95
+
96
+ /**
97
+ * Save the generated xml to the given video or creates a new video.
98
+ * @param $xml
99
+ * @return false
100
+ */
101
+ public function saveVideo($xml) {
102
+ $this->initClipgeneratorApi();
103
+
104
+ return $this->clipgeneratorClient->saveVideo($xml);
105
+ }
106
+
107
+ /**
108
+ * Returns a array of the clipgenerator designs.
109
+ * @return array
110
+ */
111
+ public function getDesigns() {
112
+ $this->initClipgeneratorApi();
113
+ $designs = $this->clipgeneratorClient->getDesigns();
114
+
115
+ return $designs;
116
+ }
117
+
118
+ /**
119
+ * Returns a array of the clipgenerator music.
120
+ * @return array
121
+ */
122
+ public function getMusic() {
123
+ $this->initClipgeneratorApi();
124
+ $designs = $this->clipgeneratorClient->getMusic();
125
+
126
+ return $designs;
127
+ }
128
+
129
+ /**
130
+ * Returns the current user if api credentials match.
131
+ * @return array
132
+ */
133
+ public function getUser() {
134
+ $this->initClipgeneratorApi();
135
+ $user = $this->clipgeneratorClient->getUser();
136
+
137
+ return $user;
138
+ }
139
+
140
+ /**
141
+ * Activates the given products.
142
+ * @param $products
143
+ * @return void
144
+ */
145
+ public function activateVideos($products) {
146
+ foreach ($products as $product_id) {
147
+ $product = Mage::getModel('catalog/product')->load($product_id);
148
+ $cid = $product->getData('clipgenerator_video_id');
149
+ if ($cid) {
150
+ $productIdArray[] = $product->getData('clipgenerator_video_id');
151
+ $productArray[$product->getData('clipgenerator_video_id')] = $product;
152
+ } else {
153
+ $product->setData('clipgenerator_show', 1);
154
+ $this->createVideo($product);
155
+ $productIdArray[] = $product->getData('clipgenerator_video_id');
156
+ $productArray[$product->getData('clipgenerator_video_id')] = $product;
157
+ }
158
+ }
159
+ if (!empty($productIdArray)) {
160
+ $params['idList'] = json_encode($productIdArray);
161
+ $params['visibility'] = 1;
162
+ $return = json_decode($this->curlCall('setClipVisibilityBulk', $params));
163
+ $success = $return->result->idList;
164
+ }
165
+ if (!empty($success)) {
166
+ $count = 0;
167
+ Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
168
+ foreach ($success as $id) {
169
+ $productArray[$id]->setData('clipgenerator_show', 1);
170
+ $productArray[$id]->save();
171
+ $count++;
172
+ }
173
+ Mage::getSingleton('core/session')->addSuccess(sprintf(Mage::helper('clipgenerator')->__('%s Video/s wurde/n aktivert.'), $count));
174
+ } else {
175
+ Mage::getSingleton('core/session')->addError(Mage::helper('clipgenerator')->__('Die gewählten Videos konnten nicht aktiviert werden. Bitte versuchen Sie es noch einmal.'));
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Deactivates the given products.
181
+ * @param $products
182
+ * @return void
183
+ */
184
+ public function deactivateVideos($products) {
185
+ foreach ($products as $product_id) {
186
+ $product = Mage::getModel('catalog/product')->load($product_id);
187
+ $cid = $product->getData('clipgenerator_video_id');
188
+ if ($cid) {
189
+ $productIdArray[] = $product->getData('clipgenerator_video_id');
190
+ $productArray[$product->getData('clipgenerator_video_id')] = $product;
191
+ }
192
+ }
193
+ if (!empty($productIdArray)) {
194
+ $params['idList'] = json_encode($productIdArray);
195
+ $params['visibility'] = 0;
196
+ $return = json_decode($this->curlCall('setClipVisibilityBulk', $params));
197
+ $success = $return->result->idList;
198
+ }
199
+ if (!empty($success)) {
200
+ $count = 0;
201
+ Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
202
+ foreach ($success as $id) {
203
+ $productArray[$id]->setData('clipgenerator_show', 0);
204
+ $productArray[$id]->save();
205
+ $count++;
206
+ }
207
+ Mage::getSingleton('core/session')->addSuccess(sprintf(Mage::helper('clipgenerator')->__('%s Video/s wurde/n deaktivert.'), $count));
208
+ } else {
209
+ Mage::getSingleton('core/session')->addError(Mage::helper('clipgenerator')->__('Die gewählten Videos konnten nicht deaktiviert werden.'));
210
+ }
211
+ }
212
+
213
+ /**
214
+ * Creates a video by the given product with the product configuration,
215
+ * if there are no settings given or missing, it sets randomized value.
216
+ * @param $_product
217
+ * @return void
218
+ */
219
+ public function createVideo($_product) {
220
+ $this->initClipgeneratorApi();
221
+ if ($_product->getData('clipgenerator_show') && $this->getUser()) {
222
+ $video = new Video($_product->getData('clipgenerator_title'));
223
+ //set video design
224
+ if ($_product->getData('clipgenerator_design')) {
225
+ $video->designId = $_product->getData('clipgenerator_design');
226
+ } else {
227
+ $designs = $this->getDesigns();
228
+ $dKey = array_rand($designs);
229
+ $video->designId = $designs[$dKey]['id'];
230
+ $_product->setData('clipgenerator_design', $designs[$dKey]['id']);
231
+ }
232
+ //set video song
233
+ if ($_product->getData('clipgenerator_song')) {
234
+ $video->songId = $_product->getData('clipgenerator_song');
235
+ } else {
236
+ $music = $this->getMusic();
237
+ $mKey = array_rand($music['songs']);
238
+ $video->designId = $music['songs'][$mKey]['id'];
239
+ $_product->setData('clipgenerator_design', $music['songs'][$mKey]['id']);
240
+ }
241
+ $video->keywords = $_product->getData('clipgenerator_keywords') ? $_product->getData('clipgenerator_keywords') : $_product->getData('meta_keywords');
242
+ $video->title = $_product->getData('clipgenerator_title') ? $_product->getData('clipgenerator_title') : $_product->getData('name');
243
+ $video->description = $_product->getData('clipgenerator_description') ? $_product->getData('clipgenerator_description') : $_product->getData('description');
244
+ $logoUrl = $_product->getData('clipgenerator_logo') ? $_product->getData('clipgenerator_logo') : Mage::getStoreConfig('clipgenerator/settings/clipgenerator_logo_url', Mage::app()->getStore());
245
+ $logoLink = Mage::getStoreConfig('clipgenerator/settings/clipgenerator_logo_link', Mage::app()->getStore());
246
+ $color = Mage::getStoreConfig('clipgenerator/settings/clipgenerator_player_bgcolor', Mage::app()->getStore());
247
+ if ($logoUrl) {
248
+ if ($logo = $this->clipgeneratorClient->uploadLogo($logoUrl)) {
249
+ $logoId = $logo['id'];
250
+ $logoUrl = $logo['url'];
251
+ $logo = Logo::fromXml('<logo width="0.2" height="0.2" alpha="1">
252
+ <id>' . $logoId . '</id>
253
+ <url>' . htmlspecialchars($logoUrl) . '</url>
254
+ <link>' . $logoLink . '</link>
255
+ <position verticalAlign="top" horizontalAlign="right" />
256
+ <showInStartPage>false</showInStartPage>
257
+ <showInEndPage>false</showInEndPage>
258
+ <showInTimeline>true</showInTimeline>
259
+ </logo>');
260
+ $video->logo = $logo;
261
+ }
262
+ }
263
+ $images = explode(';', trim($_product->getData('clipgenerator_images_select'), ';'));
264
+ $pImgs = $_product->getMediaGalleryImages();
265
+ $newImgSelect = '';
266
+ $imgCount = 0;
267
+ if ($_product->getData('clipgenerator_images_select')) {
268
+ foreach ($images as $img) {
269
+ foreach ($pImgs as $pImg) {
270
+ if ($pImg->getUrl() == $img) {
271
+ $pic = $this->clipgeneratorClient->uploadPicture($img);
272
+ $picture = new Picture($pic['id']);
273
+ // add new frame
274
+ $frame = new Frame($picture);
275
+ // set config bg color
276
+ $frame->backgroundColor = hexdec($color);
277
+ if ($pImg->getData('label')) {
278
+ $l3 = new LowerThird();
279
+ $l3->verticalAlign = 300;
280
+ $l3->setText($pImg->getData('label'));
281
+ $l3->textOutlineWidth = 2;
282
+ $l3->textOutlineColor = 0x333333;
283
+ $l3->link = $_product->getProductUrl();
284
+ $frame->addLowerThird($l3);
285
+ }
286
+ $video->addFrame($frame);
287
+ $newImgSelect .= ';' . $img;
288
+ $imgCount++;
289
+ break;
290
+ }
291
+ }
292
+ // limitation to 22 images
293
+ if ($imgCount == 22) {
294
+ break;
295
+ }
296
+ }
297
+ } else {
298
+ foreach ($pImgs as $pImg) {
299
+ $pic = $this->clipgeneratorClient->uploadPicture($pImg->getUrl());
300
+ $picture = new Picture($pic['id']);
301
+ $frame = new Frame($picture);
302
+ if ($pImg->getData('label')) {
303
+ $l3 = new LowerThird();
304
+ $l3->verticalAlign = 300;
305
+ $l3->setText($pImg->getData('label'));
306
+ $l3->textOutlineWidth = 2;
307
+ $l3->textOutlineColor = 0x333333;
308
+ $l3->link = $_product->getProductUrl();
309
+ $frame->addLowerThird($l3);
310
+ }
311
+ $video->addFrame($frame);
312
+ $newImgSelect .= ';' . $pImg->getUrl();
313
+ $imgCount++;
314
+ // limitation to 22 images
315
+ if ($imgCount == 22) {
316
+ break;
317
+ }
318
+ }
319
+ if ($newImgSelect) {
320
+ $_product->setData('clipgenerator_images_select', $newImgSelect);
321
+ }
322
+ }
323
+ $video->format = '360p';
324
+ if ($_product->getData('clipgenerator_video_id')) {
325
+ $video->id = $_product->getData('clipgenerator_video_id');
326
+ }
327
+ $videoXml = $video->asXml();
328
+ $videoId = $this->clipgeneratorClient->saveVideo($videoXml);
329
+ Mage::app()->setCurrentStore(Mage::getModel('core/store')->load(Mage_Core_Model_App::ADMIN_STORE_ID));
330
+ if (!$_product->getData('clipgenerator_video_id')) {
331
+ $_product->setData('clipgenerator_video_id', $videoId);
332
+ $_product->save();
333
+ } else {
334
+ if ($newImgSelect != $_product->getData('clipgenerator_images_select')) {
335
+ $_product->setData('clipgenerator_images_select', $newImgSelect);
336
+ $_product->save();
337
+ }
338
+ }
339
+ }
340
+ }
341
+ }
app/code/community/Trivid/Clipgenerator/Model/Adminhtml/System/Config/Source/Designs.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Design Source
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @author Another Author <another@example.com>
15
+ * @copyright 2013 Trivid GmbH
16
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
17
+ * @version 1.0.0
18
+ * @since File available since Release 1.0.0
19
+ */
20
+ /**
21
+ * Creates options for Clipgenerator Designs config value selection.
22
+ * @package Trivid
23
+ */
24
+ class Trivid_Clipgenerator_Model_Adminhtml_System_Config_Source_Designs {
25
+
26
+ /**
27
+ * Creates options array of the designs.
28
+ * @return array
29
+ */
30
+ public function toOptionArray() {
31
+ $designs = Mage::helper('clipgenerator')->getDesigns();
32
+ $designArr = array();
33
+ $designArr[] = array('value' => '', 'label' => '');
34
+ foreach ($designs as $k => $v) {
35
+ $designArr[] = array(
36
+ 'value' => $v['id'],
37
+ 'label' => $v['title']
38
+ );
39
+ }
40
+
41
+ return $designArr;
42
+ }
43
+
44
+ /**
45
+ * Creates options in "key-value" format of the designs.
46
+ * @return array
47
+ */
48
+ public function toArray() {
49
+ $designs = Mage::helper('clipgenerator')->getDesigns();
50
+ $designArr = array();
51
+ $designArr[0] = '';
52
+ foreach ($designs as $v) {
53
+ $designArr[$v['id']] = $v['title'];
54
+ }
55
+
56
+ return $designArr;
57
+ }
58
+ }
app/code/community/Trivid/Clipgenerator/Model/Adminhtml/System/Config/Source/Musics.php ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Music Source
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @author Another Author <another@example.com>
15
+ * @copyright 2013 Trivid GmbH
16
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
17
+ * @version 1.0.0
18
+ * @since File available since Release 1.0.0
19
+ */
20
+ /**
21
+ * Used in creating options for Clipgenerator Music config value selection.
22
+ * @package Trivid
23
+ */
24
+ class Trivid_Clipgenerator_Model_Adminhtml_System_Config_Source_Musics {
25
+
26
+ /**
27
+ * Creates options array of the music.
28
+ * @return array
29
+ */
30
+ public function toOptionArray() {
31
+ $music = Mage::helper('clipgenerator')->getMusic();
32
+ $musicArr = array();
33
+ $musicArr[] = array('value' => '', 'label' => '');
34
+ foreach ($music['songs'] as $k => $v) {
35
+ $musicArr[] = array(
36
+ 'value' => $v['id'],
37
+ 'label' => $v['title']
38
+ );
39
+ }
40
+
41
+ return $musicArr;
42
+ }
43
+
44
+ /**
45
+ * Creates options in "key-value" format of the music.
46
+ * @return array
47
+ */
48
+ public function toArray() {
49
+ $music = Mage::helper('clipgenerator')->getMusic();
50
+ $musicArr = array();
51
+ $musicArr[0] = '';
52
+ foreach ($music as $v) {
53
+ $musicArr[$v['id']] = $v['title'];
54
+ }
55
+
56
+ return $musicArr;
57
+ }
58
+ }
app/code/community/Trivid/Clipgenerator/Model/Mysql4/Setup.php ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Setup File
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Model_Mysql4_Setup
21
+ * @package Trivid
22
+ */
23
+ class Trivid_Clipgenerator_Model_Mysql4_Setup extends Mage_Catalog_Model_Resource_Eav_Mysql4_Setup {
24
+
25
+ }
app/code/community/Trivid/Clipgenerator/Model/Observer.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Module Observer
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Model_Observer
21
+ *
22
+ * @package Trivid
23
+ */
24
+ class Trivid_Clipgenerator_Model_Observer {
25
+ /**
26
+ * module name
27
+ */
28
+ const MODULE_NAME = 'Trivid_Clipgenerator';
29
+
30
+ /**
31
+ * Creates or updates video after saving new product information
32
+ * @param Varien_Event_Observer $observer
33
+ */
34
+ public function catalog_product_save_after(Varien_Event_Observer $observer) {
35
+ $_product = $observer->getProduct();
36
+ Mage::helper('clipgenerator')->createVideo($_product);
37
+ }
38
+
39
+ /**
40
+ * Inserts the video block html after the product description if activated in
41
+ * the magento clipgenerator configuration.
42
+ * @param Varien_Event_Observer $observer
43
+ * @return $this
44
+ */
45
+ public function insertVideo(Varien_Event_Observer $observer = NULL) {
46
+ if (!$observer) {
47
+ return;
48
+ }
49
+ $block = Mage::getStoreConfig('clipgenerator/settings/clipgenerator_block', Mage::app()->getStore());
50
+ $currentBlock = $observer->getEvent()->getBlock()->getNameInLayout();
51
+ if (($block == $currentBlock || ($block == '' && 'product.description' == $currentBlock)) && Mage::getStoreConfig('clipgenerator/settings/clipgenerator_output', Mage::app()->getStore())) {
52
+ if (!Mage::getStoreConfig('advanced/modules_disable_output/' . self::MODULE_NAME) && Mage::helper('clipgenerator')->getUser() && $observer->getEvent()->getBlock()->getProduct()->getData('clipgenerator_video_id') && $observer->getEvent()->getBlock()->getProduct()->getData('clipgenerator_show')) {
53
+ $event = $observer->getEvent();
54
+ $product = $event->getProduct();
55
+ $transport = $observer->getEvent()->getTransport();
56
+ $block = new Trivid_Clipgenerator_Block_InsertVideo($event->getBlock()->getProduct()->getData('clipgenerator_video_id'), $event->getBlock()->getProduct()->getData('clipgenerator_show'));
57
+ $block->setPassingTransport($transport['html']);
58
+ $block->toHtml();
59
+ }
60
+ }
61
+
62
+ return $this;
63
+ }
64
+
65
+ /**
66
+ * Creates mass action options to the product list dropdown
67
+ * and sets the url which will be called after choosing the action.
68
+ * @param $observer
69
+ */
70
+ public function addMassAction($observer) {
71
+ $block = $observer->getEvent()->getBlock();
72
+ if (Mage::helper('clipgenerator')->getUser() && get_class($block) == 'Mage_Adminhtml_Block_Widget_Grid_Massaction' && $block->getRequest()->getControllerName() == 'catalog_product') {
73
+ $block->addItem('video_activate', array(
74
+ 'label' => Mage::helper('clipgenerator')->__('Videos aktivieren'),
75
+ 'url' => Mage::helper("adminhtml")->getUrl("clipgenerator/adminhtml_mass/activate"),
76
+ ));
77
+ $block->addItem('video_deactivate', array(
78
+ 'label' => Mage::helper('clipgenerator')->__('Videos deaktivieren'),
79
+ 'url' => Mage::helper("adminhtml")->getUrl("clipgenerator/adminhtml_mass/deactivate"),
80
+ ));
81
+ }
82
+ }
83
+ }
app/code/community/Trivid/Clipgenerator/Model/Source/Designs.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Design Source
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Model_Source_Designs
21
+ * @package Trivid
22
+ */
23
+ class Trivid_Clipgenerator_Model_Source_Designs extends Mage_Eav_Model_Entity_Attribute_Source_Abstract {
24
+
25
+ /**
26
+ * Get all options of the clipgenerator designs.
27
+ * @return array
28
+ */
29
+ public function getAllOptions() {
30
+ $designs = Mage::helper('clipgenerator')->getDesigns();
31
+ $designArr = array();
32
+ foreach ($designs as $k => $v) {
33
+ $designArr[] = array(
34
+ 'value' => $v['id'],
35
+ 'label' => $v['title']
36
+ );
37
+ }
38
+
39
+ return $designArr;
40
+ }
41
+ }
app/code/community/Trivid/Clipgenerator/Model/Source/Musics.php ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Music Source
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Model_Source_Musics
21
+ * @package Trivid
22
+ */
23
+ class Trivid_Clipgenerator_Model_Source_Musics extends Mage_Eav_Model_Entity_Attribute_Source_Abstract {
24
+
25
+ /**
26
+ * Get all music options as array.
27
+ * @return array
28
+ */
29
+ public function getAllOptions() {
30
+ $music = Mage::helper('clipgenerator')->getMusic();
31
+ $musicArr = array();
32
+ foreach ($music['songs'] as $k => $v) {
33
+ $musicArr[] = array(
34
+ 'value' => $v['id'],
35
+ 'label' => $v['title']
36
+ );
37
+ }
38
+
39
+ return $musicArr;
40
+ }
41
+ }
app/code/community/Trivid/Clipgenerator/controllers/Adminhtml/MassController.php ADDED
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Adminhtml Mass Controller
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Adminhtml_MassController
21
+ *
22
+ * catches mass instruction to activate or deactivate at least 10 product
23
+ * videos. After success the methods will return to list view.
24
+ * @package Trivid
25
+ */
26
+ class Trivid_Clipgenerator_Adminhtml_MassController extends Mage_Adminhtml_Controller_Action {
27
+
28
+ /**
29
+ * array of send products to mass controller.
30
+ * @var array $products
31
+ */
32
+ protected $products;
33
+
34
+ /**
35
+ * initializes the class, checks if the count of the given products
36
+ * is higher than the expected size of 10 and throws an error if
37
+ * happens.
38
+ *
39
+ * @return void
40
+ */
41
+ protected function init() {
42
+ $this->products = $this->getRequest()->getParam('product');
43
+ if (count($this->products) > 10) {
44
+ Mage::getSingleton('core/session')->addError(Mage::helper('clipgenerator')->__('Sie können maximal 10 Produkte gleichzeitig verarbeiten.'));
45
+ $this->_redirectUrl(Mage::helper('adminhtml')->getUrl('adminhtml/catalog_product/index'));
46
+ }
47
+ }
48
+
49
+ /**
50
+ * activates the given products by calling the clipgenerator helper
51
+ * which handle the activation request.
52
+ *
53
+ * @return void
54
+ */
55
+ public function activateAction() {
56
+ $this->init();
57
+ Mage::helper('clipgenerator')->activateVideos($this->products);
58
+ $this->_redirectUrl(Mage::helper('adminhtml')->getUrl('adminhtml/catalog_product/index'));
59
+ }
60
+
61
+ /**
62
+ * deactivates the given products by calling the clipgenerator helper
63
+ * which handle the deactivation request.
64
+ *
65
+ * @return void
66
+ */
67
+ public function deactivateAction() {
68
+ $this->init();
69
+ Mage::helper('clipgenerator')->deactivateVideos($this->products);
70
+ $this->_redirectUrl(Mage::helper('adminhtml')->getUrl('adminhtml/catalog_product/index'));
71
+ }
72
+ }
app/code/community/Trivid/Clipgenerator/controllers/Adminhtml/OrderformController.php ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Orderform Controller
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Class Trivid_Clipgenerator_Adminhtml_OrderformController
21
+ *
22
+ * Handles the orderform view and request.
23
+ * @package Trivid
24
+ */
25
+ class Trivid_Clipgenerator_Adminhtml_OrderformController extends Mage_Adminhtml_Controller_Action {
26
+ /**
27
+ * User get the orderform if the api
28
+ * credentials not set anyway. On submitting the form to Trivid order web-
29
+ * service it receives the result via ajax and sets the return to the
30
+ * magento configuration.
31
+ * @return void
32
+ */
33
+ public function indexAction() {
34
+ $post = $this->getRequest()->getPost();
35
+ if($post['isAjax']) {
36
+ if($post['apiUser'] && $post['apiSecret']) {
37
+ $response_array['status'] = 'success';
38
+ echo json_encode($response_array);
39
+ Mage::getModel('core/config')->saveConfig('clipgenerator/general/clipgenerator_api_user_id', $post['apiUser']);
40
+ Mage::getModel('core/config')->saveConfig('clipgenerator/general/clipgenerator_api_secret', $post['apiSecret']);
41
+ Mage::getModel('core/config')->saveConfig('clipgenerator/general/clipgenerator_email', $post['email']);
42
+ Mage::getSingleton('core/session')->addSuccess(Mage::helper('clipgenerator')->__('Die Bestellung war erfolgreich!'));
43
+ }
44
+ die();
45
+ }
46
+ $this->loadLayout()->renderLayout();
47
+ }
48
+ }
app/code/community/Trivid/Clipgenerator/etc/adminhtml.xml ADDED
@@ -0,0 +1,3 @@
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ </config>
app/code/community/Trivid/Clipgenerator/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Trivid_Clipgenerator>
5
- <version>1.0.7</version>
6
  </Trivid_Clipgenerator>
7
  </modules>
8
  <global>
2
  <config>
3
  <modules>
4
  <Trivid_Clipgenerator>
5
+ <version>1.0.8</version>
6
  </Trivid_Clipgenerator>
7
  </modules>
8
  <global>
app/code/community/Trivid/Clipgenerator/etc/system.xml ADDED
@@ -0,0 +1,146 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <sections>
4
+ <clipgenerator translate="label" module="clipgenerator">
5
+ <label>Clipgenerator Optionen</label>
6
+ <tab>general</tab>
7
+ <sort_order>90</sort_order>
8
+ <show_in_default>1</show_in_default>
9
+ <show_in_website>1</show_in_website>
10
+ <show_in_store>1</show_in_store>
11
+ <groups>
12
+ <general translate="label">
13
+ <label>General</label>
14
+ <sort_order>1</sort_order>
15
+ <show_in_default>1</show_in_default>
16
+ <show_in_website>1</show_in_website>
17
+ <show_in_store>1</show_in_store>
18
+ <fields>
19
+ <clipgenerator_uninstall_view translate="label">
20
+ <label>Deinstallations Hilfe</label>
21
+ <frontend_type>label</frontend_type>
22
+ <frontend_model>trivid_clipgenerator_block_adminhtml_system_config_form_field_uninstallhelper</frontend_model>
23
+ <sort_order>1</sort_order>
24
+ <show_in_default>1</show_in_default>
25
+ <show_in_website>1</show_in_website>
26
+ <show_in_store>1</show_in_store>
27
+ </clipgenerator_uninstall_view>
28
+ <clipgenerator_contingent_view translate="label">
29
+ <label>Kontingentsanzeige</label>
30
+ <frontend_type>label</frontend_type>
31
+ <frontend_model>trivid_clipgenerator_block_adminhtml_system_config_form_field_contingentlabel</frontend_model>
32
+ <sort_order>2</sort_order>
33
+ <show_in_default>1</show_in_default>
34
+ <show_in_website>1</show_in_website>
35
+ <show_in_store>1</show_in_store>
36
+ </clipgenerator_contingent_view>
37
+ <clipgenerator_email translate="label">
38
+ <label>E-Mail</label>
39
+ <frontend_type>text</frontend_type>
40
+ <sort_order>10</sort_order>
41
+ <show_in_default>1</show_in_default>
42
+ <show_in_website>1</show_in_website>
43
+ <show_in_store>1</show_in_store>
44
+ </clipgenerator_email>
45
+ <clipgenerator_api_user_id translate="label">
46
+ <label>API USER ID</label>
47
+ <frontend_type>text</frontend_type>
48
+ <sort_order>20</sort_order>
49
+ <show_in_default>1</show_in_default>
50
+ <show_in_website>1</show_in_website>
51
+ <show_in_store>1</show_in_store>
52
+ </clipgenerator_api_user_id>
53
+ <clipgenerator_api_secret translate="label">
54
+ <label>API SECRET</label>
55
+ <frontend_type>text</frontend_type>
56
+ <sort_order>30</sort_order>
57
+ <show_in_default>1</show_in_default>
58
+ <show_in_website>1</show_in_website>
59
+ <show_in_store>1</show_in_store>
60
+ </clipgenerator_api_secret>
61
+ </fields>
62
+ </general>
63
+ <settings translate="label">
64
+ <label>Standard Settings</label>
65
+ <sort_order>2</sort_order>
66
+ <show_in_default>1</show_in_default>
67
+ <show_in_website>1</show_in_website>
68
+ <show_in_store>1</show_in_store>
69
+ <fields>
70
+ <!-- <clipgenerator_song>
71
+ <label>Song</label>
72
+ <frontend_type>select</frontend_type>
73
+ <source_model>trivid_clipgenerator_model_adminhtml_system_config_source_musics</source_model>
74
+ <sort_order>1</sort_order>
75
+ <show_in_default>1</show_in_default>
76
+ <show_in_website>1</show_in_website>
77
+ <show_in_store>1</show_in_store>
78
+ </clipgenerator_song>
79
+ <clipgenerator_music translate="label">
80
+ <label>erweiterte Song Auswahl</label>
81
+ <frontend_type>text</frontend_type>
82
+ <frontend_model>trivid_clipgenerator_block_adminhtml_system_config_form_field_musiclightbox</frontend_model>
83
+ <sort_order>10</sort_order>
84
+ <show_in_default>1</show_in_default>
85
+ <show_in_website>1</show_in_website>
86
+ <show_in_store>1</show_in_store>
87
+ </clipgenerator_music>
88
+ <clipgenerator_video_design translate="label">
89
+ <label>Video Design</label>
90
+ <frontend_type>select</frontend_type>
91
+ <source_model>trivid_clipgenerator_model_adminhtml_system_config_source_designs</source_model>
92
+ <sort_order>20</sort_order>
93
+ <show_in_default>1</show_in_default>
94
+ <show_in_website>1</show_in_website>
95
+ <show_in_store>1</show_in_store>
96
+ </clipgenerator_video_design>-->
97
+ <clipgenerator_logo_url translate="label">
98
+ <label>Logo URL</label>
99
+ <frontend_type>text</frontend_type>
100
+ <comment><![CDATA[(Für optimale Darstellung bitte nur freigestellte Logos im PNG-Format verwenden. Maximale Größe 100 x 100 Pixel.)]]></comment>
101
+ <sort_order>30</sort_order>
102
+ <show_in_default>1</show_in_default>
103
+ <show_in_website>1</show_in_website>
104
+ <show_in_store>1</show_in_store>
105
+ </clipgenerator_logo_url>
106
+ <clipgenerator_logo_link translate="label">
107
+ <label>Logo Link</label>
108
+ <frontend_type>text</frontend_type>
109
+ <comment><![CDATA[(Die Verlinkung Ihres Logos kann hier angegeben werden.)]]></comment>
110
+ <sort_order>35</sort_order>
111
+ <show_in_default>1</show_in_default>
112
+ <show_in_website>1</show_in_website>
113
+ <show_in_store>1</show_in_store>
114
+ </clipgenerator_logo_link>
115
+ <clipgenerator_player_bgcolor translate="label">
116
+ <label>Player Hintergrundfarbe (HEX)</label>
117
+ <frontend_type>text</frontend_type>
118
+ <sort_order>38</sort_order>
119
+ <show_in_default>1</show_in_default>
120
+ <show_in_website>1</show_in_website>
121
+ <show_in_store>1</show_in_store>
122
+ </clipgenerator_player_bgcolor>
123
+ <clipgenerator_output translate="label">
124
+ <label>Automatische Ausgabe</label>
125
+ <frontend_type>select</frontend_type>
126
+ <comment><![CDATA[Das Video wird unter dem Produkt-Beschreibungs Block(product.description) ausgegeben.]]></comment>
127
+ <source_model>adminhtml/system_config_source_yesno</source_model>
128
+ <sort_order>40</sort_order>
129
+ <show_in_default>1</show_in_default>
130
+ <show_in_website>1</show_in_website>
131
+ <show_in_store>1</show_in_store>
132
+ </clipgenerator_output>
133
+ <clipgenerator_block translate="label">
134
+ <label>Ausgabe Block</label>
135
+ <frontend_type>text</frontend_type>
136
+ <sort_order>50</sort_order>
137
+ <show_in_default>1</show_in_default>
138
+ <show_in_website>1</show_in_website>
139
+ <show_in_store>1</show_in_store>
140
+ </clipgenerator_block>
141
+ </fields>
142
+ </settings>
143
+ </groups>
144
+ </clipgenerator>
145
+ </sections>
146
+ </config>
app/code/community/Trivid/Clipgenerator/lib/clipgenerator/ClipgeneratorClient.php ADDED
@@ -0,0 +1,584 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // Copyright 2012 Trivid. All Rights Reserved.
3
+ //
4
+ // +---------------------------------------------------------------------------+
5
+ // | Clipgenerator PHP 5 Client |
6
+ // +---------------------------------------------------------------------------+
7
+ // | Copyright (c) 2012 Trivid GmbH |
8
+ // | All rights reserved. |
9
+ // | |
10
+ // | Redistribution and use in source and binary forms, with or without |
11
+ // | modification, are permitted provided that the following conditions |
12
+ // | are met: |
13
+ // | |
14
+ // | 1. Redistributions of source code must retain the above copyright |
15
+ // | notice, this list of conditions and the following disclaimer. |
16
+ // | 2. Redistributions in binary form must reproduce the above copyright |
17
+ // | notice, this list of conditions and the following disclaimer in the |
18
+ // | documentation and/or other materials provided with the distribution. |
19
+ // | |
20
+ // | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
21
+ // | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
22
+ // | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
23
+ // | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
24
+ // | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
25
+ // | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
26
+ // | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
27
+ // | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
28
+ // | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
29
+ // | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
30
+ // +---------------------------------------------------------------------------+
31
+ // | For help with this library, contact s.mueller@trivid.com |
32
+ // +---------------------------------------------------------------------------+
33
+
34
+ class ClipgeneratorClient {
35
+ const PACKAGE_TYPE_EDITOR = 'editor';
36
+ const PACKAGE_TYPE_MUSIC = 'music';
37
+ const PACKAGE_TYPE_DESIGN = 'design';
38
+
39
+ const VIDEO_FORMAT_MP4 = 'mp4';
40
+ const VIDEO_RESOLUTION_400x226 = '400x226';
41
+ const VIDEO_RESOLUTION_640x360 = '640x360';
42
+
43
+ const HTTP_CLIENT_ZEND = 'ZendClient';
44
+ const HTTP_CLIENT_CURL = 'Curl';
45
+
46
+ private $apiId;
47
+ private $apiSecret;
48
+ private $apiURL = 'http://api-v2.clipgenerator.com/';
49
+ private $lang = 'de';
50
+ private $error = null;
51
+ private $errorCode = 0;
52
+ private $debug = false;
53
+ private $debugData = array();
54
+ private $userId = null;
55
+ private $curlCookieFile = null;
56
+ private $callMethod = 'Curl';
57
+
58
+ /**
59
+ * Constructor
60
+ *
61
+ * @return
62
+ */
63
+
64
+ function __construct($apiId, $apiSecret, $userId=null, $lang='de', $apiURL = null, $curlCookieFile = null)
65
+ {
66
+ $this->apiId = $apiId;
67
+ $this->apiSecret = $apiSecret;
68
+ $this->userId = $userId;
69
+
70
+ if (!is_null($lang)) $this->lang = $lang;
71
+ if (!is_null($apiURL)) $this->apiURL = $apiURL;
72
+ if (!is_null($curlCookieFile)) $this->curlCookieFile = $curlCookieFile;
73
+ }
74
+
75
+ /**
76
+ * Sets the language for the current session. All subsequent api calls will return data in the configured language.
77
+ *
78
+ * @param $lang String The language identifier. Supported languages are 'en' for English and 'de' for German
79
+ */
80
+ public function setLang($lang)
81
+ {
82
+ $this->lang = $lang;
83
+ }
84
+
85
+ /**
86
+ * Configures the user id that is required to identify the user on the clipgenerator backend.
87
+ * Typically this user id will be a hash of a unique user name from the application that uses this api.
88
+ * @param $userId String User id that will uniquely identify the user inside the app.
89
+ */
90
+ public function setUserId($userId)
91
+ {
92
+ $this->userId = $userId;
93
+ }
94
+
95
+ /**
96
+ * Configures the http client that will be used for communication with the backend.
97
+ * The Zend Http Client is used as default.
98
+ *
99
+ * @param $callMethod String One 'ZendClient' or 'Curl'.
100
+ */
101
+ public function setCallMethod($callMethod)
102
+ {
103
+ if (in_array($callMethod, array('ZendClient', 'Curl')))
104
+ {
105
+ $this->callMethod = $callMethod;
106
+ }
107
+ }
108
+
109
+ /**
110
+ * Lists all videos of the current user
111
+ *
112
+ * @return bool false if error, list of videos otherwise.
113
+ * @todo: this call should be moved to the api and return the corresponding json structure
114
+ */
115
+
116
+ public function getVideos($videoIdFilter=null) {
117
+ $result = $this->call('getVideos', array(
118
+ 'videoIdFilter' => $videoIdFilter
119
+ ));
120
+ return $result;
121
+ }
122
+
123
+ /**
124
+ * Loads a video with the $videoId in the current context. If no $videoId is supplied the id of the currently
125
+ * loaded video will be used. In most cases this will reload the currently loaded video and reset all modifications
126
+ * if the video was not saved using saveVideo().
127
+ *
128
+ * @param null $videoId String The id of the video that should be loaded in the current context.
129
+ * If no $videoId is null the videoId of the current context will be used.
130
+ *
131
+ * @return false | xml string of the video webcart xml
132
+ */
133
+ public function loadVideo($videoId)
134
+ {
135
+ $result = $this->call('loadVideo', array(
136
+ 'videoId' => $videoId,
137
+ ));
138
+
139
+ if ($result !== false) {
140
+ return $result['video'];
141
+ }
142
+ return false;
143
+ }
144
+
145
+ /**
146
+ * Reads downloads pf the $videoId in the current context. If no $videoId is supplied then error.
147
+ *
148
+ * @param null $videoId String The id of the video that should be loaded in the current context.
149
+ * If no $videoId is null the videoId of the current context will be used.
150
+ *
151
+ * @return false | array of downloads with params (status, date, etc.)
152
+ */
153
+ public function getDownloads($videoId)
154
+ {
155
+ $result = $this->call('getDownloads', array(
156
+ 'videoId' => $videoId,
157
+ ));
158
+
159
+ if ($result !== false) {
160
+ return $result;
161
+ }
162
+ return false;
163
+ }
164
+
165
+ /**
166
+ * Saves the current video configuration on the clipgenerator backend. If no $videoId is supplied the backend
167
+ * will save the video as a new video using a new video id.
168
+ * Note: Saving a new video will increase the available video slots for the current user.
169
+ * @param null $videoId String Optional video id of an existing video that should be overwritten.
170
+ * @return false if the call failed, videoId: string if the call succeeded
171
+ * @todo fix the result handling
172
+ */
173
+
174
+ public function saveVideo($videoXmlString, $temporary = false)
175
+ {
176
+ $result = $this->call('saveVideo', array(
177
+ 'video' => $videoXmlString,
178
+ 'temporary' => $temporary ? 'true' : 'false',
179
+ )
180
+ );
181
+
182
+ if ($result !== false) {
183
+ $newVideoId = $result['id'];
184
+ return $newVideoId;
185
+ }
186
+ return false;
187
+ }
188
+
189
+ /**
190
+ * Deletes a video from the users video list.
191
+ * @param $videoId array Array of string ids of the videos that should be deleted.
192
+ * @return bool
193
+ * @todo barely tested.
194
+ * @todo add ids of the successfully deleted video to the response
195
+ */
196
+ public function deleteVideo($videoId)
197
+ {
198
+ $result = $this->call('deleteVideo', array('videoId' => $videoId));
199
+ return $result !== false ? true : false;
200
+ }
201
+
202
+ /**
203
+ * Uploads a local image file to the clipgenerator backend. The picture will be converted to
204
+ * different resolutions and an result array with an unique picture identifier and link will
205
+ * be returned.
206
+ * @param $filePath
207
+ * @return array|bool
208
+ * @todo move getting the file information to the backend
209
+ */
210
+ public function uploadPicture($filePath, $forceNewId=true)
211
+ {
212
+ if(strpos($filePath, "http://") !== false)
213
+ $result = $this->call('uploadPicture', array('forceNewId' => $forceNewId, 'pictureUrl' => $filePath));
214
+ else
215
+ $result = $this->call('uploadPicture', array('forceNewId' => $forceNewId), $filePath);
216
+ return $result;
217
+ }
218
+
219
+ public function uploadLogo($filePath, $forceNewId=true)
220
+ {
221
+ if(strpos($filePath, "http://") !== false)
222
+ $result = $this->call('uploadPicture', array('forceNewId' => $forceNewId, 'logoUrl' => $filePath));
223
+ else
224
+ $result = $this->call('uploadPicture', array('forceNewId' => $forceNewId), $filePath);
225
+ return $result;
226
+ }
227
+
228
+ /**
229
+ * Uploads a local mp3 file to the clipgenerator backend. An unique resource identifier and link will
230
+ * be returned.
231
+ * @param $filePath
232
+ * @return array|bool
233
+ * @todo move getting the file information to the backend
234
+ */
235
+ public function uploadMusic($filePath, $forceNewId=true)
236
+ {
237
+ $result = $this->call('uploadMusic', array('forceNewId' => $forceNewId), $filePath);
238
+ return $result;
239
+ }
240
+
241
+ /**
242
+ * Lists all pictures of the current user including their additional information.
243
+ * @throws Exception
244
+ * @todo implement this call in the backend.
245
+ * note: this call has the same name as an existing call. The existing call should be replaced by this call.
246
+ */
247
+
248
+ public function getPictures() {
249
+ throw new Exception('Not implemented yet: getPictures');
250
+ }
251
+
252
+ /**
253
+ * Deletes uploaded pictures on the clipgenerator backend.
254
+ * @param $pictureIds Array Array of picture ids that should be deleted.
255
+ * @throws Exception
256
+ * @todo implement this call in the backend.
257
+ */
258
+ public function deletePictures($pictureIds) {
259
+ throw new Exception('Not implemented yet: getPictures');
260
+ }
261
+
262
+ /**
263
+ * Lists all available video designs.
264
+ * @todo rename the server api call from getVideoDesign to getDesigns
265
+ * @todo not well tested yet
266
+ */
267
+ public function getDesigns()
268
+ {
269
+ $result = $this->call('getDesigns');
270
+ return $result;
271
+ }
272
+
273
+ /**
274
+ * Get packages, genres and songs lists. With filtering by package and genre ids if set
275
+ * @param package int (0,+)
276
+ * @param genre int (0,+)
277
+ *
278
+ * @return bool false if error, arrays of packages, genres, songs
279
+ * @TODO: rename the call in the backend to get
280
+ * @TODO: later. implement filters on the backend for.
281
+ * @TODO: package=x, only shows data for package x
282
+ * @TODO: mood=x, only shows data for mood x
283
+ * @TODO: speed=x, only shows data for speed x
284
+ * @TODO: genre=x, only shows data for genre x
285
+ * @TODO: song=x, only shows data for song x
286
+ * @TODO: include_songs=true, if false songs will be ommited
287
+ * @TODO: all filters should be combinable so package=x + mood=y would only return data that matches package x AND mood y
288
+ */
289
+ public function getMusic($purchasedOnly=false)
290
+ {
291
+ $result = $this->call('getMusic', array(
292
+ 'purchasedOnly' => $purchasedOnly
293
+ ));
294
+ return $result;
295
+ }
296
+
297
+ /**
298
+ *
299
+ * @param $user
300
+ * @return bool
301
+ */
302
+ public function createUser($userId, $email, $password, $firstName='', $lastName='', $company='',
303
+ $street='', $zipCode='', $city='', $country='', $isActive='true',
304
+ $vatId='')
305
+ {
306
+ $result = $this->call('createUser', array(
307
+ "userId" => $userId,
308
+ "email" => $email,
309
+ "password" => $password,
310
+ "firstName" => $firstName,
311
+ "lastName" => $lastName,
312
+ "company" => $company,
313
+ "street" => $street,
314
+ "zipCode" => $zipCode,
315
+ "city" => $city,
316
+ "country" => $country,
317
+ "isActive" => $isActive,
318
+ "vatId" => $vatId
319
+ ));
320
+ return $result !== false;
321
+ }
322
+
323
+ /**
324
+ * Get account current user information (based on $this->userId)
325
+ *
326
+ * @return array
327
+ */
328
+ public function getUser()
329
+ {
330
+ $user = $this->call('getUser');
331
+ return $user;
332
+ }
333
+
334
+ public function getUserList()
335
+ {
336
+ $userList = $this->call('getUserList');
337
+ return $userList;
338
+ }
339
+
340
+ /**
341
+ * Delete user information
342
+ *
343
+ * @return bool
344
+ */
345
+ public function deleteUser()
346
+ {
347
+ $result = $this->call('deleteUser');
348
+ return $result !== false ? true : false;
349
+ }
350
+
351
+ /**
352
+ * @depricated will be replaced by getMusic for music packages and getPlans() for complex application plans
353
+ * @TODO: think this through again
354
+ */
355
+ public function getPackages()
356
+ {
357
+ $result = $this->call('getPackages');
358
+ return $result;
359
+ }
360
+
361
+ /**
362
+ * Add package to user packages
363
+ * @param packageType string (editor | music)
364
+ * @param packageId int
365
+ * @return bool
366
+ * @depricated will be removed by activateMusicPackage() and activatePlan()
367
+ * @TODO: TBD
368
+ */
369
+ public function activatePackage($packageType, $packageId)
370
+ {
371
+ $result = $this->call('activatePackage', array(
372
+ 'packageType' => $packageType,
373
+ 'packageId' => $packageId,
374
+ ));
375
+ return $result !== false;
376
+ }
377
+
378
+ public function deactivatePackage($packageType, $packageId)
379
+ {
380
+ $result = $this->call('deactivatePackage', array(
381
+ 'packageType' => $packageType,
382
+ 'packageId' => $packageId,
383
+ ));
384
+ return $result !== false;
385
+ }
386
+
387
+ /**
388
+ *
389
+ * @param $videoId
390
+ * @param $params
391
+ * @return bool
392
+ */
393
+
394
+ public function scheduleDownloadJob($videoId, $resolution, $format, $playerVersion="")
395
+ {
396
+ $result = $this->call('scheduleDownloadJob', array(
397
+ 'videoId' => $videoId,
398
+ 'resolution' => $resolution,
399
+ 'format' => $format,
400
+ 'playerVersion' => $playerVersion
401
+ )
402
+ );
403
+
404
+ if ($result !== false) {
405
+ return $result;
406
+ }
407
+ return false;
408
+ }
409
+
410
+ /**
411
+ * Get list of picture pool services
412
+ *
413
+ * @return bool false if error, array of services names otherwise
414
+ */
415
+ public function getPicturePoolServices()
416
+ {
417
+ $result = $this->call('getPicturePoolServices');
418
+ return $result !== false ? $result['services'] : false;
419
+ }
420
+
421
+ /**
422
+ * Get list of picture pool service galleries
423
+ * @param service string
424
+ *
425
+ * @return bool false if error, array of galleries names otherwise
426
+ */
427
+ public function getPicturePoolGalleries($service)
428
+ {
429
+ $result = $this->call('getPicturePoolGalleries', array('service' => $service));
430
+ return $result !== false ? $result['galleries'] : false;
431
+ }
432
+
433
+ /**
434
+ * Get pictures from gallery
435
+ * @param service string
436
+ *
437
+ * @param gallery string
438
+ *
439
+ * @return bool false if error, array of pictures with different formats otherwise
440
+ */
441
+ public function getPicturePool($service, $gallery)
442
+ {
443
+ $result = $this->call('getPicturePool', array(
444
+ 'service' => $service,
445
+ 'gallery' => $gallery,
446
+ ));
447
+ return $result !== false ? $result['pictures'] : false;
448
+ }
449
+
450
+ /**
451
+ * Get error
452
+ *
453
+ * @return string error.
454
+ */
455
+ public function getError()
456
+ {
457
+ if (!empty($this->error)) {
458
+ return "({$this->errorCode}) {$this->error}";
459
+ } else {
460
+ return "Unknown error.";
461
+ }
462
+ }
463
+
464
+ /**
465
+ * Enable debug
466
+ *
467
+ */
468
+ public function enableDebug()
469
+ {
470
+ $this->debug = true;
471
+ }
472
+
473
+ /**
474
+ * Get debug data
475
+ *
476
+ * @return array debug data
477
+ */
478
+ public function getDebugData()
479
+ {
480
+ return $this->debugData;
481
+ }
482
+
483
+ private function call($controller, $params = array(), $postFilePath = '')
484
+ {
485
+ $url = $this->apiURL . $controller;
486
+ foreach ($params as $key => $value) {
487
+ // todo: remove the json part, it's strange
488
+ if (is_array($value)) $params[$key] = json_encode($value);
489
+ elseif (is_bool($value)) $params[$key] = $value == true ? '1' : '0';
490
+ }
491
+ $postFields = array_merge($params, array(
492
+ 'apiId' => $this->apiId,
493
+ 'apiSecret' => $this->apiSecret,
494
+ 'lang' => $this->lang,
495
+ ));
496
+
497
+ if (!is_null($this->userId))
498
+ $postFields['userId'] = $this->userId;
499
+
500
+ if ($this->debug) $this->debugData = array(
501
+ 'url' => $url,
502
+ 'postFields' => $postFields,
503
+ );
504
+
505
+ switch ($this->callMethod) {
506
+ case 'ZendClient':
507
+ $responce = $this->makeZendClientRequest($url, $postFields, $postFilePath);
508
+ break;
509
+ case 'Curl':
510
+ $responce = $this->makeCurlRequest($url, $postFields, $postFilePath);
511
+ break;
512
+ }
513
+
514
+ $result = json_decode($responce, true);
515
+
516
+ if (is_null($result)) {
517
+ $e = json_last_error();
518
+ $this->error = 'JSON ERROR: '.$e;
519
+ if ($e == JSON_ERROR_SYNTAX) {
520
+ $len = strlen($responce);
521
+ $this->error = "JSON_ERROR_SYNTAX " .$len;
522
+ }
523
+ return false;
524
+ }
525
+
526
+ if ($this->debug) $this->debugData['result'] = $result;
527
+ if ($result['code'] != 200) {
528
+ $this->error = isset($result['message']) ? $result['message'] : 'Unknown error.';
529
+ $this->errorCode = isset($result['code']) ? (int) $result['code'] : -1;
530
+ return false;
531
+ }
532
+ $this->error = null;
533
+ return isset($result['result']) ? $result['result'] : array();
534
+ }
535
+
536
+ private function makeCurlRequest($url, $postFields, $postFilePath = '')
537
+ {
538
+ if ($postFilePath != '') $postFields['postFile']='@'.$postFilePath;
539
+
540
+ $ch = curl_init($url);
541
+ curl_setopt_array($ch, array(
542
+ CURLOPT_HEADER => false,
543
+ CURLOPT_RETURNTRANSFER => true,
544
+ CURLOPT_POST => true,
545
+ CURLOPT_POSTFIELDS => $postFields,
546
+ ));
547
+ if (!is_null($this->curlCookieFile)) {
548
+ curl_setopt($ch, CURLOPT_COOKIEFILE, $this->curlCookieFile);
549
+ curl_setopt($ch, CURLOPT_COOKIEJAR, $this->curlCookieFile);
550
+ }
551
+ try {
552
+ $responce = curl_exec($ch);
553
+ } catch (Exception $e) {
554
+ $this->error = 'connection error';
555
+ if ($this->debug) $this->debugData['error'] = $e->getMessage();
556
+ return false;
557
+ }
558
+ if ($this->debug) $this->debugData['response'] = $responce;
559
+ curl_close($ch);
560
+ if (!$responce) {
561
+ $this->error = 'connection error';
562
+ if ($this->debug) $this->debugData['error'] .= ' curl_exec returns false';
563
+ return false;
564
+ }
565
+ return $responce;
566
+ }
567
+
568
+ private function makeZendClientRequest($url, $postFields, $postFilePath = '')
569
+ {
570
+ $client = new Zend_Http_Client($url);
571
+ $client->setCookieJar();
572
+ $client->setParameterPost($postFields);
573
+ if ($postFilePath != '') $client->setFileUpload($postFilePath, basename($postFilePath));
574
+ try {
575
+ $response = $client->request('POST');
576
+ } catch (Zend_Http_Client_Adapter_Exception $e) {
577
+ $this->error = 'connection error';
578
+ if ($this->debug) $this->debugData['error'] = $e->getMessage();
579
+ return false;
580
+ }
581
+ if ($this->debug) $this->debugData['response'] = $response->getBody();
582
+ return $response->getBody();
583
+ }
584
+ }
app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Frame.php ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Frame {
4
+ public $number = 0;
5
+ public $picture;
6
+ public $lowerThirds = array();
7
+ public $backgroundColor = null;
8
+ public $backgroundPicture = null;
9
+
10
+ function __construct(Picture $picture=null, $number=0) {
11
+ $this->picture = $picture;
12
+ $this->number = 0;
13
+ }
14
+
15
+ public static function withLowerThird(Picture $picture, LowerThird $lowerThird, $number = 0) {
16
+ $frame = new Frame($picture, $number);
17
+ $frame->addLowerThird($lowerThird);
18
+ return $frame;
19
+ }
20
+
21
+ public function addLowerThird(LowerThird $lowerThird) {
22
+ array_push($this->lowerThirds, $lowerThird);
23
+ }
24
+
25
+ public function getLowerThirds() {
26
+ return $this->lowerThirds;
27
+ }
28
+
29
+ public function clearLowerThirds() {
30
+ $this->lowerThirds = array();
31
+ }
32
+
33
+ public static function fromXml($xmlString) {
34
+ $frameElement = new SimpleXMLElement($xmlString);
35
+ $frame = new Frame();
36
+ $frame->number = (string) $frameElement->number;
37
+ $frame->backgroundColor = $frameElement->background ? (string)$frameElement->background->color : null;
38
+ $pictureXmlString = $frameElement->picture->asXml();
39
+ if (!empty($pictureXmlString)) {
40
+ $frame->picture = Picture::fromXml($pictureXmlString);
41
+ }
42
+
43
+ if($frameElement->lowerThirds && $frameElement->lowerThirds->count() > 0) {
44
+ foreach ($frameElement->lowerThirds->lowerThird as $lowerThirdElement) {
45
+ $lowerThirdString = $lowerThirdElement->asXml();
46
+ $lowerThird = LowerThird::fromXml($lowerThirdString);
47
+ $frame->addLowerThird($lowerThird);
48
+ }
49
+ }
50
+
51
+ return $frame;
52
+ }
53
+
54
+ public function asXml() {
55
+ $frame = new SimpleXMLElement('<frame></frame>');
56
+ $frame->addChild('number', $this->number);
57
+ if ($this->backgroundColor) {
58
+ $frame->addChild('background');
59
+ $frame->background->addChild('color', $this->backgroundColor);
60
+ }
61
+ $this->addChildFromString($frame, $this->picture->asXml());
62
+ $lowerThirds = $frame->addChild('lowerThirds');
63
+ foreach($this->lowerThirds as $lowerTrhid) {
64
+ $this->addChildFromString($lowerThirds, $lowerTrhid->asXml());
65
+ }
66
+ return $frame->asXML();
67
+ }
68
+
69
+ private function addChildFromString($parent, $childString) {
70
+ $domparent = dom_import_simplexml($parent);
71
+ $domchild = dom_import_simplexml(new SimpleXMLElement($childString));
72
+ $domchild = $domparent->ownerDocument->importNode($domchild, true);
73
+ $domparent->appendChild($domchild);
74
+ }
75
+ }
76
+ //
77
+ // <frame>
78
+ //<number>0</number>
79
+ //<picture width="1" height="1" alpha="1">
80
+ // <id></id>
81
+ //</picture>
82
+ //<lowerThirds>
83
+ // <lowerThird width="1" height="0.4" horizontalAlign="center" verticalAlign="bottom" alpha="0.7">
84
+ // <color>0</color>
85
+ // <link></link>
86
+ // <text color="16777215" fontSize="31" bold="false" italic="false" underline="false"></text>
87
+ // </lowerThird>
88
+ //</lowerThirds>
89
+ //</frame>
app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Logo.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Logo {
4
+ public $id;
5
+ public $width;
6
+ public $height;
7
+ public $alpha;
8
+ public $url;
9
+ public $link;
10
+ public $verticalPosition;
11
+ public $horizontalPosition;
12
+ public $showInStartPage;
13
+ public $showInEndPage;
14
+ public $showInTimeline;
15
+
16
+ public static function fromXml($xmlString) {
17
+ $element = new SimpleXMLElement($xmlString);
18
+ $logo = new Logo();
19
+ $logo->id = (string)$element->id;
20
+ $logo->width = $element['width'];
21
+ $logo->height = $element['height'];
22
+ $logo->alpha = $element['alpha'];
23
+
24
+ $logo->verticalPosition = $element->position['verticalAlign'];
25
+ $logo->horizontalPosition = $element->position['horizontalAlign'];
26
+
27
+ $logo->url = (string) $element->url;
28
+ $logo->link = (string) $element->link;
29
+ $logo->showInEndPage = strtolower((string) $element->showInEndPage ) == 'true' ? true : false;
30
+ $logo->showInStartPage = strtolower((string) $element->showInStartPage) == 'true' ? true : false;
31
+ $logo->showInTimeline = strtolower((string) $element->showInTimeline) == 'true' ? true : false;
32
+ return $logo;
33
+ }
34
+
35
+ public function asXml() {
36
+ $logo = new SimpleXMLElement('<logo></logo>');
37
+ //print_r($logo);
38
+ $logo->id = $this->id;
39
+ $width = (string)$this->width;
40
+ if($width=='') $width = 0;
41
+ $height = (string)$this->height;
42
+ if($height=='') $width = 0;
43
+ if (!is_null($this->width))
44
+ $logo->addAttribute('width', number_format($width, 4, '.', ''));
45
+ if (!is_null($this->height))
46
+ $logo->addAttribute('height', number_format($height, 4, '.', ''));
47
+ $logo->addAttribute('alpha', number_format((string)$this->alpha, 4, '.', ''));
48
+ $logo->url = $this->url;
49
+ $logo->link = $this->link;
50
+ $position = $logo->addChild('position');
51
+ $position->addAttribute('verticalAlign', $this->verticalPosition);
52
+ $position->addAttribute('horizontalAlign', $this->horizontalPosition);
53
+ $logo->addChild('showInStartPage', $this->showInStartPage ? 'true' : 'false');
54
+ $logo->addChild('showInEndPage', $this->showInEndPage ? 'true' : 'false');
55
+ $logo->addChild('showInTimeline', $this->showInTimeline ? 'true' : 'false');
56
+ $xmlString = $logo->asXML();
57
+ return $xmlString;
58
+ }
59
+ }
60
+
61
+
62
+
63
+ //<logo width="0.2" height="0.2" alpha="1">
64
+ // <id />
65
+ // <url />
66
+ // <link />
67
+ // <position verticalAlign="top" horizontalAlign="right" />
68
+ // <showInStartPage>false</showInStartPage>
69
+ // <showInEndPage>false</showInEndPage>
70
+ // <showInTimeline>true</showInTimeline>
71
+ //</logo>
app/code/community/Trivid/Clipgenerator/lib/clipgenerator/LowerThird.php ADDED
@@ -0,0 +1,209 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class LowerThird {
4
+ const ALIGN_LEFT = 'left';
5
+ const ALIGN_CENTER = 'center';
6
+ const ALIGN_RIGHT = 'right';
7
+ const ALIGN_TOP = 'top';
8
+ const ALIGN_MIDDLE = 'middle';
9
+ const ALIGN_BOTTOM = 'bottom';
10
+
11
+ const POSITION_TYPE_ABSOLUTE = 'absolute';
12
+ const POSITION_TYPE_ALIGN = 'align';
13
+
14
+ const COLOR_BLACK = 0x000000;
15
+ const COLOR_RED = 0xFF0000;
16
+ const COLOR_GREEN = 0x00FF00;
17
+ const COLOR_BLUE = 0x0000FF;
18
+ const COLOR_WHITE = 0xFFFFFF;
19
+
20
+ public $width;
21
+ public $height;
22
+ public $margin;
23
+ public $horizontalAlign;
24
+ public $verticalAlign;
25
+ public $alpha;
26
+ public $backgroundColor = LowerThird::COLOR_WHITE;
27
+ public $link = null;
28
+
29
+ public $xPosition = 0; // since 3.0.5
30
+ public $yPosition = 0; // since 3.0.5
31
+ public $positioningType = self::POSITION_TYPE_ALIGN; // since 3.0.5
32
+
33
+ public $text;
34
+ public $textColor;
35
+ public $textFontSize;
36
+ public $textFontFamily; // since 3.0.3
37
+ public $textFontWeight; // since 3.0.3
38
+ public $textFontStyle; // since 3.0.3
39
+ public $textIsBold; // replaced in 3.0.3 with fontWeight
40
+ public $textIsItalic; // replaced in 3.0.3 with fontStyle
41
+ public $textIsUnderline;
42
+ public $textIsHTML;
43
+
44
+ public $textHorizontalAlign = self::ALIGN_CENTER;
45
+ public $textVerticalAlign = self::ALIGN_MIDDLE;
46
+ public $textOutlineColor = LowerThird::COLOR_WHITE;
47
+ public $textOutlineWidth = 0;
48
+ public $textMinFontSize = 30;
49
+ public $textMargin = 0;
50
+
51
+ public $picture_id;
52
+
53
+ public $picture_width;
54
+ public $picture_height;
55
+ public $picture_alpha;
56
+
57
+ public $picture_url;
58
+ public $picture_thumbnailUrl;
59
+
60
+ public $picture_url_240p;
61
+ public $picture_url_360p;
62
+ public $picture_url_480p;
63
+ public $picture_url_720p;
64
+ public $picture_storage;
65
+
66
+ function __construct($width=1.0, $height=0.25, $horizontalAlign = LowerThird::ALIGN_CENTER, $verticalAlign = LowerThird::ALIGN_MIDDLE, $alpha = 0.6)
67
+ {
68
+ // width="0.0-1.0" height="0.0-1.0" horizontalAlign="left|center|right" verticalAlign="top|middle|bottom" alpha="0.0-1.0">
69
+ $this->width = $width;
70
+ $this->height = $height;
71
+ $this->horizontalAlign = $horizontalAlign;
72
+ $this->verticalAlign = $verticalAlign;
73
+ $this->alpha = $alpha;
74
+ $this->picture_url = '';
75
+
76
+ $this->textFontFamily = "cgFontDefault";
77
+ }
78
+
79
+ public function setText($text, $color=LowerThird::COLOR_WHITE, $size=30, $bold=false, $italic=false, $underline=false,
80
+ $horizontalAlign=LowerThird::ALIGN_CENTER, $verticalAlign=LowerThird::ALIGN_MIDDLE) {
81
+ $this->text = $text;
82
+ $this->textColor = $color;
83
+ $this->textFontSize = $size;
84
+ $this->textIsBold = $bold;
85
+ $this->textIsItalic = $italic;
86
+ $this->textIsUnderline = $underline;
87
+
88
+ $this->textFontWeight = $bold ? "bold" : "normal";
89
+ $this->textFontStyle = $italic ? "italic" : "normal";
90
+
91
+ $this->textHorizontalAlign = $horizontalAlign;
92
+ $this->textVerticalAlign = $verticalAlign;
93
+ }
94
+
95
+ public static function fromXml($xmlString) {
96
+ $element = new SimpleXMLElement($xmlString);
97
+
98
+ $lowerThird = new LowerThird();
99
+ $lowerThird->alpha = (string)$element['alpha'];
100
+ $lowerThird->width = (string)$element['width'];
101
+ $lowerThird->height = (string)$element['height'];
102
+ $xpos = (string)$element['xPosition'];
103
+ $ypos = (string)$element['yPosition'];
104
+ $lowerThird->xPosition = !empty($xpos) ? floatval($xpos) : 0.0;
105
+ $lowerThird->yPosition = !empty($ypos) ? floatval($ypos) : 0.0;
106
+ $lowerThird->positioningType = (string)$element['positioningType'];
107
+ if ($element['margin']) $lowerThird->margin = (string)$element['margin'];
108
+ $lowerThird->horizontalAlign = (string)$element['horizontalAlign'];
109
+ $lowerThird->verticalAlign = (string)$element['verticalAlign'];
110
+ $lowerThird->backgroundColor = (string)$element->color;
111
+ $lowerThird->text = (string)$element->text;
112
+ $lowerThird->link = (string)$element->link;
113
+ $lowerThird->textColor = (string)$element->text['color'];
114
+ $lowerThird->textFontSize = (string)$element->text['fontSize'];
115
+ if ($element->text['minFontSize']) $lowerThird->textMinFontSize = (string)$element->text['minFontSize'];
116
+ $lowerThird->textIsBold = (string)$element->text['bold'] == 'true' ? true : false;
117
+ $lowerThird->textIsItalic = (string)$element->text['italic'] == 'true' ? true : false;
118
+ $lowerThird->textIsUnderline = (string)$element->text['underline'] == 'true' ? true : false;
119
+ $lowerThird->textIsHTML = (string)$element->text['isHtml'] == 'false' ? false : true;
120
+
121
+ $lowerThird->textHorizontalAlign = (string)$element->text['horizontalAlign'];
122
+ $lowerThird->textVerticalAlign = (string)$element->text['verticalAlign'];
123
+ $lowerThird->textOutlineColor = (string)$element->text['outlineColor'];
124
+ $lowerThird->textOutlineWidth = (string)$element->text['outlineWidth'];
125
+
126
+ $lowerThird->textFontFamily = (string)$element->text['fontFamily'];
127
+ $lowerThird->textFontStyle = (string)$element->text['fontStyle'];
128
+ $lowerThird->textFontWeight = (string)$element->text['fontWeight'];
129
+
130
+ if ($element->text['margin']) $lowerThird->textMargin = (string)$element->text['margin'];
131
+
132
+ if($element->picture){
133
+ $lowerThird->picture_width = (string) $element->picture['width'];
134
+ $lowerThird->picture_height = (string) $element->picture['height'];
135
+ $lowerThird->picture_alpha = (string) $element->picture['alpha'];
136
+ $lowerThird->picture_url = (string) $element->picture->url;
137
+ $lowerThird->picture_thumbnailUrl = (string) $element->picture->thumb_url;
138
+ $lowerThird->picture_url_240p = (string) $element->picture->url_240p;
139
+ $lowerThird->picture_url_360p = (string) $element->picture->url_360p;
140
+ $lowerThird->picture_url_480p = (string) $element->picture->url_480p;
141
+ $lowerThird->picture_url_720p = (string) $element->picture->url_720p;
142
+ $lowerThird->picture_storage = (string) $element->picture->storage;
143
+ }
144
+
145
+ return $lowerThird;
146
+ }
147
+
148
+ public function asXml() {
149
+ $xml = new SimpleXMLElement('<lowerThird></lowerThird>');
150
+ $xml->addAttribute('positioningType', $this->positioningType);
151
+ $xml->addAttribute('xPosition', number_format($this->xPosition, 4, '.', ''));
152
+ $xml->addAttribute('yPosition', number_format($this->yPosition, 4, '.', ''));
153
+ $xml->addAttribute('width', number_format($this->width, 4, '.', ''));
154
+ $xml->addAttribute('height', number_format($this->height, 4, '.', ''));
155
+ $xml->addAttribute('alpha', number_format((float)$this->alpha, 4, '.', ''));
156
+ $xml->addAttribute('margin', number_format($this->margin, 4, '.', ''));
157
+ $xml->addAttribute('horizontalAlign', $this->horizontalAlign);
158
+ $xml->addAttribute('verticalAlign', $this->verticalAlign);
159
+ $xml->addChild('color', $this->backgroundColor);
160
+ $xml->addChild('link', $this->link);
161
+
162
+ $node = $xml->addChild('text'); // fix: add child does not automatically encode ampersands. meh.
163
+ $node = dom_import_simplexml($node);
164
+ $no = $node->ownerDocument;
165
+ $node->appendChild($no->createCDATASection($this->text));
166
+
167
+ $xml->text->addAttribute('color', $this->textColor);
168
+ $xml->text->addAttribute('fontSize', number_format(($this->textFontSize=='')?0:$this->textFontSize, 4, '.', ''));
169
+ $xml->text->addAttribute('minFontSize', number_format(($this->textMinFontSize=='')?0:$this->textMinFontSize, 4, '.', ''));
170
+ $xml->text->addAttribute('bold', $this->textIsBold ? 'true' : 'false');
171
+ $xml->text->addAttribute('italic', $this->textIsItalic ? 'true' : 'false');
172
+ $xml->text->addAttribute('underline', $this->textIsUnderline? 'true' : 'false');
173
+ $xml->text->addAttribute('isHtml', $this->textIsHTML? 'true' : 'false');
174
+
175
+ $xml->text->addAttribute('horizontalAlign', $this->textHorizontalAlign);
176
+ $xml->text->addAttribute('verticalAlign', $this->textVerticalAlign);
177
+
178
+ $xml->text->addAttribute('outlineColor', $this->textOutlineColor);
179
+ $xml->text->addAttribute('outlineWidth', number_format(($this->textOutlineWidth=='')?0:$this->textOutlineWidth, 4, '.', ''));
180
+ $xml->text->addAttribute('margin', number_format(($this->textMargin=='')?0:$this->textMargin, 4, '.', ''));
181
+
182
+ $xml->text->addAttribute('fontFamily', $this->textFontFamily);
183
+ $xml->text->addAttribute('fontWeight', $this->textFontWeight);
184
+ $xml->text->addAttribute('fontStyle', $this->textFontStyle);
185
+
186
+ if($this->picture_id > 0){
187
+ $xml->addChild('picture');
188
+ $xml->picture->addAttribute('width', number_format($this->picture_width, 4, '.', ''));
189
+ $xml->picture->addAttribute('height', number_format($this->picture_height, 4, '.', ''));
190
+ $xml->picture->addAttribute('alpha', number_format((float)$this->picture_alpha, 4, '.', ''));
191
+ $xml->picture->addChild('id', $this->picture_id);
192
+ $xml->picture->addChild('url', $this->picture_url);
193
+ $xml->picture->addChild('url_240p', $this->picture_url_240p);
194
+ $xml->picture->addChild('url_360p', $this->picture_url_360p);
195
+ $xml->picture->addChild('url_480p', $this->picture_url_480p);
196
+ $xml->picture->addChild('url_720p', $this->picture_url_720p);
197
+ $xml->picture->addChild('thumb_url', $this->picture_thumbnailUrl);
198
+ $xml->picture->addChild('storage', $this->picture_storage);
199
+ }
200
+
201
+ return $xml->asXml();
202
+ }
203
+ }
204
+
205
+ // <lowerThird width="1" height="0.4" horizontalAlign="center" verticalAlign="bottom" alpha="0.7">
206
+ // <color>0</color>
207
+ // <link></link>
208
+ // <text color="16777215" fontSize="31" bold="false" italic="false" underline="false"></text>
209
+ // </lowerThird>
app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Picture.php ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Picture
4
+ {
5
+ // using external picture urls is not implemented yet
6
+ const INTERNAL_STORAGE = 'internal';
7
+ const EXTERNAL_STORAGE = 'external';
8
+
9
+ public $id;
10
+
11
+ public $width;
12
+ public $height;
13
+ public $alpha;
14
+
15
+ public $url;
16
+ public $thumbnailUrl;
17
+ public $webUrl;
18
+
19
+ public $url_240p;
20
+ public $url_360p;
21
+ public $url_480p;
22
+ public $url_720p;
23
+
24
+ public $storage;
25
+
26
+ function __construct($pictureId = null, $width = 1.0, $height = 1.0, $alpha = 1.0)
27
+ {
28
+ $this->id = $pictureId;
29
+ $this->width = $width;
30
+ $this->height = $height;
31
+ $this->alpha = $alpha;
32
+ $this->storage = Picture::INTERNAL_STORAGE;
33
+ }
34
+
35
+ public static function withInternalId($pictureId, $width = 1.0, $height = 1.0, $alpha = 1.0)
36
+ {
37
+ $pic = new Picture($pictureId, $width, $height, $alpha);
38
+ $pic->setStorage(Picture::INTERNAL_STORAGE);
39
+ return $pic;
40
+ }
41
+
42
+ public static function withPublicUrl($publicUrl, $width = 1.0, $height = 1.0, $alpha = 1.0)
43
+ {
44
+ $pic = new Picture(null, $width, $height, $alpha);
45
+ $pic->storage = Picture::EXTERNAL_STORAGE;
46
+ $pic->url = $publicUrl;
47
+ }
48
+
49
+ public static function fromXml($xmlString) {
50
+ $pictureXml = new SimpleXMLElement($xmlString);
51
+ $picture = new Picture();
52
+ $picture->id = (string)$pictureXml->id;
53
+ $picture->width = (string) $pictureXml['width'];
54
+ $picture->height = (string) $pictureXml['height'];
55
+ $picture->alpha = (string) $pictureXml['alpha'];
56
+ $picture->url = (string) $pictureXml->url;
57
+ $picture->webUrl = (string) $pictureXml->web_url;
58
+ $picture->thumbnailUrl = (string) $pictureXml->thumb_url;
59
+ $picture->url_240p = (string) $pictureXml->url_240p;
60
+ $picture->url_360p = (string) $pictureXml->url_360p;
61
+ $picture->url_480p = (string) $pictureXml->url_480p;
62
+ $picture->url_720p = (string) $pictureXml->url_720p;
63
+ $picture->storage = (string) $pictureXml->storage;
64
+ return $picture;
65
+ }
66
+
67
+ public function asXml() {
68
+ $xml = new SimpleXMLElement('<picture></picture>');
69
+ $xml->addChild('id', $this->id);
70
+
71
+ $xml->addChild('url', $this->url);
72
+ $xml->addChild('thumb_url', $this->thumbnailUrl);
73
+ $xml->addChild('web_url', $this->webUrl);
74
+ $xml->addChild('url_240p', $this->url_240p);
75
+ $xml->addChild('url_360p', $this->url_360p);
76
+ $xml->addChild('url_480p', $this->url_480p);
77
+ $xml->addChild('url_720p', $this->url_720p);
78
+ $xml->addChild('storage', $this->storage);
79
+
80
+ $xml->addAttribute('height', number_format($this->height, 4, '.', ''));
81
+ $xml->addAttribute('width', number_format($this->width, 4, '.', ''));
82
+ $xml->addAttribute('alpha', number_format($this->alpha, 4, '.', ''));
83
+ return $xml->asXML();
84
+ }
85
+ }
86
+
87
+ // <picture width = "0.0-1.0" height = "0.0-1.0" alpha ="0.0-1.0" >
88
+ // <id > unique_id</id >
89
+ // <url > original_image_url</url >
90
+ // <thumb_url > thumb_image_url</thumb_url >
91
+ // <web_url > web_image_url</web_url >
92
+ // <url_240p > http://user-data.clipgenerator.com/.../1c79deac_240p.jpg</url_240p>
93
+ // <url_360p > http://user-data.clipgenerator.com/.../1c79deac_240p.jpg</url_360p>
94
+ // <url_480p > http://user-data.clipgenerator.com/.../1c79deac_240p.jpg</url_480p>
95
+ // <url_720p > http://user-data.clipgenerator.com/.../1c79deac_240p.jpg</url_720p>
96
+ // <storage > external |internal </storage >
97
+ // </picture >
app/code/community/Trivid/Clipgenerator/lib/clipgenerator/Video.php ADDED
@@ -0,0 +1,572 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Video
4
+ {
5
+ const FORMAT_240p = '240p';
6
+ const FORMAT_360p = '360p';
7
+ const FORMAT_480p = '480p';
8
+ const FORMAT_720p = '720p';
9
+
10
+ const RATIO_16x9 = '16x9';
11
+ const RATIO_4x3 = '4x3';
12
+
13
+ public $id;
14
+
15
+ // video metadata
16
+ public $title;
17
+ public $producer;
18
+ public $description;
19
+ public $keywords;
20
+ public $copyright;
21
+ public $content;
22
+ public $targetAudience;
23
+
24
+ // video configuration
25
+ public $songId;
26
+ public $songUrl;
27
+
28
+ public $designId;
29
+ public $designUrl;
30
+
31
+ public $filter;
32
+ public $maxClipLength;
33
+
34
+ // default font
35
+ public $defaultFontFamily = 'cgFontDefault';
36
+ public $defaultFontWeight = 'normal';
37
+ public $defaultFontStyle = 'normal';
38
+
39
+ // start page
40
+ public $startPageEnabled;
41
+ public $startPageDuration;
42
+ public $startPageShowLowerThirds;
43
+
44
+ // end page
45
+ public $endPageEnabled;
46
+ public $endPageDuration;
47
+ public $endPageShowLowerThirds;
48
+ public $endPageOnEndActionName;
49
+ public $endPageOnEndActionParameter;
50
+
51
+ // global lower thirds (will be shown on very frame)
52
+ public $globalLowerThirds;
53
+
54
+ // logo configuration
55
+ public $logo;
56
+
57
+ // video urls
58
+ public $downloadUrl;
59
+ public $thumbnailUrl;
60
+
61
+ public $format = Video::FORMAT_360p;
62
+ public $ratio = Video::RATIO_16x9;
63
+ public $frames = array();
64
+
65
+ public $fonts = array();
66
+
67
+ function __construct($title = null, $designId = null, $songId = null, $format = Video::FORMAT_360p, $ratio = Video::RATIO_16x9)
68
+ {
69
+ $this->title = $title;
70
+ $this->songId = $songId;
71
+ $this->designId = $designId;
72
+
73
+ $this->globalLowerThirds = array();
74
+
75
+ if (!empty($format)) $this->format = $format;
76
+ if (!empty($ratio)) $this->format = $ratio;
77
+ }
78
+
79
+ public function addGlobalLowerThird(LowerThird $lowerThird) {
80
+ array_push($this->globalLowerThirds, $lowerThird);
81
+ }
82
+
83
+ public function clearGlobalLowerThirds() {
84
+ $this->globalLowerThirds = array();
85
+ }
86
+
87
+ public function addFrame(Frame $frame)
88
+ {
89
+ array_push($this->frames, $frame);
90
+ }
91
+
92
+ public function clearFrames()
93
+ {
94
+ $this->log->debug("Clearing frames");
95
+ $this->frames = array();
96
+ }
97
+
98
+ public function addFont($fontFamily, $weight='normal', $style='normal', $src='') {
99
+ $font = array(
100
+ "fontFamily" => $fontFamily,
101
+ "fontWeight" => $weight,
102
+ "fontStyle" => $style,
103
+ "src" => $src
104
+ );
105
+ array_push($this->fonts, $font);
106
+ }
107
+
108
+ public static function fromXml($xmlString) {
109
+ $element = new SimpleXMLElement($xmlString);
110
+ $video = new Video();
111
+
112
+ // video id
113
+ $video->id = (string)$element->video->id;
114
+
115
+ // video metadata
116
+ $video->title = (string)$element->video->title;
117
+ $video->producer = (string)$element->video->producer;
118
+ $video->description = (string)$element->video->description;
119
+ $video->keywords = (string)$element->video->keywords;
120
+ $video->copyright = (string)$element->video->copyright;
121
+ $video->content = (string)$element->video->content;
122
+ $video->targetAudience = (string)$element->video->targetAudience;
123
+ $video->thumbnailUrl = (string)$element->video->thumbnail['url'];
124
+ $video->downloadUrl = (string)$element->video->download['url'];
125
+
126
+ // video timeline
127
+ $timeline = $element->timeline;
128
+ $config = $timeline->config;
129
+ $video->songId = (string)$config->song['id'];
130
+ $video->songUrl = trim((string)$config->song);
131
+ $video->designId = (string)$config->variation['id'];
132
+ $video->designUrl = trim((string)$config->variation);
133
+
134
+ $video->filter = (string)$config->filter;
135
+ $video->ratio = (string)$config->ratio;
136
+ $video->format = (string)$config->format['name'];
137
+
138
+ $video->maxClipLength = (string)$config->clipMaxLenght;
139
+
140
+ // start + end page
141
+ $video->startPageEnabled = strtolower((string)$config->startPage->enabled) == 'true' ? true : false;
142
+ $video->startPageShowLowerThirds = strtolower((string)$config->startPage->showLowerThirds) == 'true' ? true : false;
143
+ $video->startPageDuration = (string)$config->startPage->duration;
144
+
145
+ $video->endPageEnabled = strtolower((string)$config->endPage->enabled) == 'true' ? true : false;
146
+ $video->endPageShowLowerThirds = strtolower((string)$config->endPage->showLowerThirds) == 'true' ? true : false;
147
+ $video->endPageDuration = (string)$config->endPage->duration;
148
+ $video->endPageOnEndActionName = (string)$config->endPage->onEndAction['name'];
149
+ $video->endPageOnEndActionParameter = (string)$config->endPage->onEndAction['parameter'];
150
+
151
+ // read global lower thirds
152
+
153
+ if(isset($timeline->lowerThirds) && $timeline->lowerThirds->count() > 0) {
154
+ foreach ($timeline->lowerThirds->lowerThird as $lt) {
155
+ $lowerThirdString = $lt->asXml();
156
+ $lowerThird = LowerThird::fromXml($lowerThirdString);
157
+ $video->addGlobalLowerThird($lowerThird);
158
+ }
159
+ }
160
+
161
+ // read frames
162
+
163
+ if(isset($timeline->frames) && $timeline->frames->count() > 0) {
164
+ foreach ($timeline->frames->frame as $f) {
165
+ $frameString = $f->asXml();
166
+ $frame = Frame::fromXml($frameString);
167
+ $video->addFrame($frame);
168
+ }
169
+ }
170
+
171
+ // read logo
172
+ if(isset($element->logo)) {
173
+ $logoString = $element->logo->asXml();
174
+ $logo = Logo::fromXml($logoString);
175
+ $video->logo = $logo;
176
+ }
177
+
178
+ // read fonts
179
+ if(isset($element->fonts)) {
180
+ foreach ($element->fonts->font as $f) {
181
+ $video->addFont(
182
+ (string) $f['fontFamily'],
183
+ (string) $f['fontWeight'],
184
+ (string) $f['fontStyle'],
185
+ (string) $f['src']
186
+ );
187
+ }
188
+ }
189
+
190
+
191
+ return $video;
192
+ }
193
+
194
+
195
+ public function asXml() {
196
+ $xml = new SimpleXMLElement('<webcart version="2.0"></webcart>');
197
+
198
+ $video = $xml->addChild('video');
199
+ $video->addChild('id', $this->id);
200
+ $video->addChild('title', $this->title);
201
+ $video->addChild('producer', $this->producer);
202
+ $video->addChild('description', $this->description);
203
+ $video->addChild('keywords', $this->keywords);
204
+ $video->addChild('copyright', $this->copyright);
205
+ $video->addChild('content', $this->content);
206
+ $video->addChild('targetAudience', $this->targetAudience);
207
+ $video->addChild('thumbnail');
208
+ $video->thumbnail->addAttribute('url', $this->thumbnailUrl);
209
+ $video->addChild('download');
210
+ $video->download->addAttribute('url', $this->downloadUrl);
211
+
212
+ $timeline = $xml->addChild('timeline');
213
+ $config = $timeline->addChild('config');
214
+ $config->addChild('song', $this->songUrl);
215
+ $config->song->addAttribute('id', $this->songId);
216
+ $config->addChild('variation', $this->designUrl);
217
+ $config->variation->addAttribute('id', $this->designId);
218
+ $config->addChild('filter', $this->filter);
219
+
220
+ $config->addChild('format');
221
+ $config->format->addAttribute('name', $this->format);
222
+ $config->addChild('ratio', $this->ratio);
223
+
224
+ $startPage = $config->addChild('startPage');
225
+ $startPage->addChild('enabled', $this->startPageEnabled ? 'true' : 'false');
226
+ $startPage->addChild('showLowerThirds', $this->startPageShowLowerThirds ? 'true' : 'false');
227
+ $startPage->addChild('duration', $this->startPageDuration);
228
+
229
+ $endPage = $config->addChild('endPage');
230
+ $endPage->addChild('enabled', $this->endPageEnabled ? 'true' : 'false');
231
+ $endPage->addChild('showLowerThirds', $this->endPageShowLowerThirds ? 'true' : 'false');
232
+ $endPage->addChild('duration', $this->endPageDuration);
233
+ $endPage->addChild('onEndAction');
234
+ $endPage->onEndAction->addAttribute('name', $this->endPageOnEndActionName);
235
+ $endPage->onEndAction->addAttribute('parameter', $this->endPageOnEndActionParameter);
236
+
237
+ $config->addChild('clipMaxLenght', $this->maxClipLength);
238
+
239
+ // add global lower thirds
240
+ $lowerThirds = $timeline->addChild('lowerThirds');
241
+ foreach($this->globalLowerThirds as $lowerThird) {
242
+ $this->addChildFromString($lowerThirds, $lowerThird->asXml());
243
+ }
244
+
245
+ // add frames
246
+ $frames = $timeline->addChild('frames');
247
+ foreach($this->frames as $frame) {
248
+ $this->addChildFromString($frames, $frame->asXml());
249
+ }
250
+
251
+ // add logo
252
+ if (isset($this->logo))
253
+ $this->addChildFromString($xml, $this->logo->asXml());
254
+
255
+ // add fonts
256
+ $fontsElement = $xml->addChild('fonts');
257
+ $fontsElement->addAttribute("defaultFontFamily", $this->defaultFontFamily);
258
+ $fontsElement->addAttribute("defaultFontWeight", $this->defaultFontWeight);
259
+ $fontsElement->addAttribute("defaultFontStyle", $this->defaultFontStyle);
260
+
261
+ if (count($this->fonts) > 0) {
262
+ foreach($this->fonts as $font) {
263
+ $fontElement = $fontsElement->addChild("font");
264
+ $fontElement->addAttribute("fontFamily", $font['fontFamily']);
265
+ $fontElement->addAttribute("fontWeight", $font['fontWeight']);
266
+ $fontElement->addAttribute("fontStyle", $font['fontStyle']);
267
+ $fontElement->addAttribute("src", $font['src']);
268
+ }
269
+ }
270
+
271
+ // ignore formats, todo: really ignore this? formats will be injected by the backend when the xml is read
272
+ // so it does not affect the creation of clips at the moment
273
+
274
+ // todo: move this function to the backend, this is the wrong place
275
+ return $xml->asXML();
276
+ }
277
+
278
+ private function addChildFromString($parent, $childString) {
279
+ $domparent = dom_import_simplexml($parent);
280
+ $domchild = dom_import_simplexml(new SimpleXMLElement($childString));
281
+ $domchild = $domparent->ownerDocument->importNode($domchild, true);
282
+ $domparent->appendChild($domchild);
283
+ }
284
+
285
+ private function compactFonts($webcartXml) {
286
+ // list of system provided fonts
287
+ $SYSTEM_FONTS = array(
288
+ array('family'=> 'cgFontDefault', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/DefaultRegularFont.swf'),
289
+ array('family'=> 'cgFontDefault', 'weight'=>'bold', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/DefaultBoldFont.swf'),
290
+ array('family'=> 'cgFontDefault', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/DefaultItalicFont.swf'),
291
+ array('family'=> 'cgFontDefault', 'weight'=>'bold', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/DefaultBoldItalicFont.swf'),
292
+ array('family'=> 'cgFontActionMan', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/ActionManRegularFont.swf'),
293
+ array('family'=> 'cgFontActionMan', 'weight'=>'bold', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/ActionManBoldFont.swf'),
294
+ array('family'=> 'cgFontActionMan', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/ActionManItalicFont.swf'),
295
+ array('family'=> 'cgFontActionMan', 'weight'=>'bold', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/ActionManBoldItalicFont.swf'),
296
+ array('family'=> 'cgFontAnonymousPro', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/AnonymousProRegularFont.swf'),
297
+ array('family'=> 'cgFontAnonymousPro', 'weight'=>'bold', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/AnonymousProBoldFont.swf'),
298
+ array('family'=> 'cgFontAnonymousPro', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/AnonymousProItalicFont.swf'),
299
+ array('family'=> 'cgFontAnonymousPro', 'weight'=>'bold', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/AnonymousProBoldItalicFont.swf'),
300
+ array('family'=> 'cgFontSpecialElite', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/SpecialEliteRegularFont.swf'),
301
+ array('family'=> 'cgFontNobile', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/NobileRegularFont.swf'),
302
+ array('family'=> 'cgFontNobile', 'weight'=>'bold', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/NobileBoldFont.swf'),
303
+ array('family'=> 'cgFontNobile', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/NobileItalicFont.swf'),
304
+ array('family'=> 'cgFontNobile', 'weight'=>'bold', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/NobileBoldItalicFont.swf'),
305
+ array('family'=> 'cgFontAlegreya', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/AlegreyaRegularFont.swf'),
306
+ array('family'=> 'cgFontAlegreya', 'weight'=>'bold', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/AlegreyaBoldFont.swf'),
307
+ array('family'=> 'cgFontAlegreya', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/AlegreyaItalicFont.swf'),
308
+ array('family'=> 'cgFontAlegreya', 'weight'=>'bold', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/AlegreyaBoldItalicFont.swf'),
309
+ array('family'=> 'cgFontLeagueGothic', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/LeagueGothicRegularFont.swf'),
310
+ array('family'=> 'cgFontLeagueGothic', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/LeagueGothicItalicFont.swf'),
311
+ array('family'=> 'cgFontDancingScript', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/DancingScriptRegularFont.swf'),
312
+ array('family'=> 'cgFontClaireHand', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/ClaireHandRegularFont.swf'),
313
+ array('family'=> 'cgFontClaireHand', 'weight'=>'bold', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/ClaireHandBoldFont.swf'),
314
+ array('family'=> 'cgFontCicleGordita', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/CicleGorditaRegularFont.swf'),
315
+ array('family'=> 'cgFontCicleGordita', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/CicleGorditaItalicFont.swf'),
316
+ array('family'=> 'cgFontSortsMillGoudy', 'weight'=>'normal', 'style'=>'normal', 'src'=>'http://data.clipgenerator.com/fonts/v3/SortsMillGoudyRegularFont.swf'),
317
+ array('family'=> 'cgFontSortsMillGoudy', 'weight'=>'normal', 'style'=>'italic', 'src'=>'http://data.clipgenerator.com/fonts/v3/SortsMillGoudyItalicFont.swf'),
318
+ );
319
+
320
+ // create lookup list of system fonts
321
+ $systemFonts = array();
322
+ foreach ($SYSTEM_FONTS as $font) {
323
+ $key = $font['family'] . '.' . $font['weight'] . '.' . $font['style'] ;
324
+ $systemFonts[$key] = $font;
325
+ }
326
+
327
+ // create list of used fonts in the webcart
328
+ $usedFonts = array();
329
+ foreach ($webcartXml->xpath('//text') as $node) {
330
+ // todo: when isHTML is introduced in the backend, scan the insides of the text too.
331
+ $text = (string)$node;
332
+ $family = (string)$node['fontFamily'];
333
+ $weight = (string)$node['fontWeight'];
334
+ $style = (string)$node['fontStyle'];
335
+ $key = "$family.$weight.$style";
336
+ $font = array("family" => $family, "weight" => $weight, "style" => $style);
337
+ $usedFonts[$key] = $font;
338
+ }
339
+
340
+ // create list of already existing fonts in the webcart (may include custom fonts)
341
+ $suppliedFonts = array();
342
+ foreach ($webcartXml->xpath('/webcart/fonts//font') as $node) {
343
+ $family = (string)$node['fontFamily'];
344
+ $weight = (string)$node['fontWeight'];
345
+ $style = (string)$node['fontStyle'];
346
+ $src = (string)$node['src'];
347
+ $key = "$family.$weight.$style";
348
+ $font = array("family" => $family, "weight" => $weight, "style" => $style, "src" => $src);
349
+ $suppliedFonts[$key] = $font;
350
+ }
351
+
352
+ // check which font to include, and which not
353
+ $includeFonts = array();
354
+ foreach ($usedFonts as $key => $font) {
355
+ if (array_key_exists($key, $systemFonts)) {
356
+ array_push($includeFonts, $systemFonts[$key]);
357
+ } else if (array_key_exists($key, $suppliedFonts)) {
358
+ array_push($includeFonts, $suppliedFonts[$key]);
359
+ } else {
360
+ // ignore this case, if we cannot find the correct font, so it should be,
361
+ // in this case the player should fall back to the default font hopefully
362
+ // todo: log that a font was used that was not found
363
+ }
364
+ }
365
+
366
+ // actually modify the fonts element in webcart, to include
367
+ // new correct font list
368
+ $defaultFontFamily = $webcartXml->fonts['defaultFontFamily'];
369
+ $defaultFontWeight = $webcartXml->fonts['defaultFontWeight'];
370
+ $defaultFontStyle = $webcartXml->fonts['defaultFontStyle'];
371
+ // remove existing node
372
+ $webcartXml->fonts = null;
373
+ // add new one
374
+ $fontsNode = $webcartXml->addChild('fonts');
375
+ $fontsNode->addAttribute("defaultFontFamily", $defaultFontFamily);
376
+ $fontsNode->addAttribute("defaultFontWeight", $defaultFontWeight);
377
+ $fontsNode->addAttribute("defaultFontStyle", $defaultFontStyle);
378
+
379
+ foreach ($includeFonts as $font) {
380
+ $fontNode = $fontsNode->addChild('font');
381
+ $fontNode->addAttribute("fontFamily", $font['family']);
382
+ $fontNode->addAttribute("fontWeight", $font['weight']);
383
+ $fontNode->addAttribute("fontStyle", $font['style']);
384
+ $fontNode->addAttribute("src", $font['src']);
385
+ }
386
+
387
+ return $webcartXml;
388
+ }
389
+ }
390
+ //<webcart version="2.0">
391
+ // <video>
392
+ // <id>fzuUT5DsCG6b80xLC5B3s5iq4dfL4CLj</id>
393
+ // <title>super text</title>
394
+ // <producer>sergej</producer>
395
+ // <description>bezeichnung</description>
396
+ // <keywords>keywork</keywords>
397
+ // <copyright>copy</copyright>
398
+ // <content>inhalt</content>
399
+ // <targetAudience>zielgruppe</targetAudience>
400
+ // <thumbnail url="http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f_thumb.jpg"/>
401
+ // <download url=""/>
402
+ // </video>
403
+ // <timeline>
404
+ // <config>
405
+ // <song id="Land_aus_Glas_Clipgenerator_5_27_333.mp3" copyright="">
406
+ // http://data.clipgenerator.com/music/65/SUEp1qj3837vy3GH.mp3
407
+ // </song>
408
+ // <variation id="ce_showtime">http://data.clipgenerator.com/variations/v2/xml/ce_showtime.xml</variation>
409
+ // <filter>none</filter>
410
+ // <ratio>16x9</ratio>
411
+ // <format name="360p"/>
412
+ // <startPage>
413
+ // <enabled>false</enabled>
414
+ // <duration>5</duration>
415
+ // <showLowerThirds>false</showLowerThirds>
416
+ // </startPage>
417
+ // <endPage>
418
+ // <enabled>false</enabled>
419
+ // <duration>5</duration>
420
+ // <onEndAction name="showIntro" parameter=""/>
421
+ // <showLowerThirds>false</showLowerThirds>
422
+ // </endPage>
423
+ // <clipMaxLenght>0</clipMaxLenght>
424
+ // </config>
425
+ // <lowerThirds>
426
+ // <lowerThird width="0.3" height="0.1" horizontalAlign="left" verticalAlign="top" alpha="0.7">
427
+ // <color>0</color>
428
+ // <link>http://</link>
429
+ // <text color="16777215" fontSize="14" bold="false" italic="false" underline="false">SERGEJ</text>
430
+ // </lowerThird>
431
+ // </lowerThirds>
432
+ // <frames>
433
+ // <frame>
434
+ // <number>0</number>
435
+ // <picture width="1" height="1" alpha="1">
436
+ // <id>16441</id>
437
+ // <url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f.jpg</url>
438
+ // <thumb_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f_thumb.jpg
439
+ // </thumb_url>
440
+ // <web_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f_web.jpg</web_url>
441
+ // <url_240p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f_240p.jpg</url_240p>
442
+ // <url_360p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f_360p.jpg</url_360p>
443
+ // <url_480p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f_480p.jpg</url_480p>
444
+ // <url_720p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/07b0aa3f_720p.jpg</url_720p>
445
+ // </picture>
446
+ // <background>
447
+ // <color>65433</color>
448
+ // </background>
449
+ // <lowerThirds>
450
+ // <lowerThird width="0.45" height="0.39555555555556" horizontalAlign="center" verticalAlign="middle"
451
+ // alpha="0.7">
452
+ // <color>0</color>
453
+ // <link>http://</link>
454
+ // <text color="16777215" fontSize="31" bold="false" italic="false" underline="false">SUPER TEXT
455
+ // </text>
456
+ // </lowerThird>
457
+ // </lowerThirds>
458
+ // </frame>
459
+ // <frame>
460
+ // <number>1</number>
461
+ // <picture width="1" height="1" alpha="1">
462
+ // <id>18572</id>
463
+ // <url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/28f73d63.jpg</url>
464
+ // <thumb_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/28f73d63_thumb.jpg
465
+ // </thumb_url>
466
+ // <web_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/28f73d63_web.jpg</web_url>
467
+ // <url_240p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/28f73d63_240p.jpg</url_240p>
468
+ // <url_360p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/28f73d63_360p.jpg</url_360p>
469
+ // <url_480p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/28f73d63_480p.jpg</url_480p>
470
+ // <url_720p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/28f73d63_720p.jpg</url_720p>
471
+ // </picture>
472
+ // </frame>
473
+ // <frame>
474
+ // <number>2</number>
475
+ // <picture width="1" height="1" alpha="1">
476
+ // <id>18573</id>
477
+ // <url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/b84820f2.jpg</url>
478
+ // <thumb_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/b84820f2_thumb.jpg
479
+ // </thumb_url>
480
+ // <web_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/b84820f2_web.jpg</web_url>
481
+ // <url_240p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/b84820f2_240p.jpg</url_240p>
482
+ // <url_360p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/b84820f2_360p.jpg</url_360p>
483
+ // <url_480p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/b84820f2_480p.jpg</url_480p>
484
+ // <url_720p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/b84820f2_720p.jpg</url_720p>
485
+ // </picture>
486
+ // </frame>
487
+ // <frame>
488
+ // <number>3</number>
489
+ // <picture width="1" height="1" alpha="1">
490
+ // <id>18574</id>
491
+ // <url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/cf4f1064.jpg</url>
492
+ // <thumb_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/cf4f1064_thumb.jpg
493
+ // </thumb_url>
494
+ // <web_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/cf4f1064_web.jpg</web_url>
495
+ // <url_240p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/cf4f1064_240p.jpg</url_240p>
496
+ // <url_360p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/cf4f1064_360p.jpg</url_360p>
497
+ // <url_480p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/cf4f1064_480p.jpg</url_480p>
498
+ // <url_720p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/cf4f1064_720p.jpg</url_720p>
499
+ // </picture>
500
+ // <background>
501
+ // <color>204</color>
502
+ // </background>
503
+ // </frame>
504
+ // <frame>
505
+ // <number>4</number>
506
+ // <picture width="1" height="1" alpha="1">
507
+ // <id>18575</id>
508
+ // <url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/564641de.jpg</url>
509
+ // <thumb_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/564641de_thumb.jpg
510
+ // </thumb_url>
511
+ // <web_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/564641de_web.jpg</web_url>
512
+ // <url_240p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/564641de_240p.jpg</url_240p>
513
+ // <url_360p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/564641de_360p.jpg</url_360p>
514
+ // <url_480p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/564641de_480p.jpg</url_480p>
515
+ // <url_720p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/564641de_720p.jpg</url_720p>
516
+ // </picture>
517
+ // <background>
518
+ // <color>16711935</color>
519
+ // </background>
520
+ // </frame>
521
+ // <frame>
522
+ // <number>5</number>
523
+ // <picture width="1" height="1" alpha="1">
524
+ // <id>18576</id>
525
+ // <url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/d954d811.jpg</url>
526
+ // <thumb_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/d954d811_thumb.jpg
527
+ // </thumb_url>
528
+ // <web_url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/d954d811_web.jpg</web_url>
529
+ // <url_240p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/d954d811_240p.jpg</url_240p>
530
+ // <url_360p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/d954d811_360p.jpg</url_360p>
531
+ // <url_480p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/d954d811_480p.jpg</url_480p>
532
+ // <url_720p>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/picture/d954d811_720p.jpg</url_720p>
533
+ // </picture>
534
+ // <background>
535
+ // <color>65382</color>
536
+ // </background>
537
+ // </frame>
538
+ // </frames>
539
+ // </timeline>
540
+ // <logo width="0.1" height="0.1" alpha="1">
541
+ // <id>18194</id>
542
+ // <url>http://user-data.clipgenerator.com/l/g/5/j/127a00f2/logo/4ad842bc.png</url>
543
+ // <link>http://</link>
544
+ // <position verticalAlign="top" horizontalAlign="right"/>
545
+ // <showInStartPage>false</showInStartPage>
546
+ // <showInEndPage>false</showInEndPage>
547
+ // <showInTimeline>true</showInTimeline>
548
+ // </logo>
549
+ // <formats>
550
+ // <format name="240p" ratio="4x3" resolution="320x240" isPreviewVisible="true" canPreview="true"
551
+ // isDownloadVisible="true" canDownload="true"/>
552
+ // <format name="360p" ratio="4x3" resolution="480x360" isPreviewVisible="true" canPreview="true"
553
+ // isDownloadVisible="true" canDownload="true"/>
554
+ // <format name="480p" ratio="4x3" resolution="640x480" isPreviewVisible="true" canPreview="true"
555
+ // isDownloadVisible="true" canDownload="true"/>
556
+ // <format name="720p" ratio="4x3" resolution="960x720" isPreviewVisible="true" canPreview="true"
557
+ // isDownloadVisible="true" canDownload="true"/>
558
+ // <format name="1080p" ratio="4x3" resolution="1440x1080" isPreviewVisible="true" canPreview="true"
559
+ // isDownloadVisible="true" canDownload="true"/>
560
+ // <format name="240p" ratio="16x9" resolution="426x240" isPreviewVisible="true" canPreview="true"
561
+ // isDownloadVisible="true" canDownload="true"/>
562
+ // <format name="360p" ratio="16x9" resolution="640x360" isPreviewVisible="true" canPreview="true"
563
+ // isDownloadVisible="true" canDownload="true"/>
564
+ // <format name="480p" ratio="16x9" resolution="853x480" isPreviewVisible="true" canPreview="true"
565
+ // isDownloadVisible="true" canDownload="true"/>
566
+ // <format name="720p" ratio="16x9" resolution="1280x720" isPreviewVisible="true" canPreview="true"
567
+ // isDownloadVisible="true" canDownload="true"/>
568
+ // <format name="1080p" ratio="16x9" resolution="1920x1080" isPreviewVisible="false" canPreview="false"
569
+ // isDownloadVisible="true" canDownload="true"/>
570
+ // </formats>
571
+ // <branding branded="false"/>
572
+ //</webcart>
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-0.1.0.php ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Trivid GmbH
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+
8
+ * It is also available through the world-wide-web at this URL:
9
+ * http://
10
+ *
11
+ * @category Trivid
12
+ * @package Trivid
13
+ * @copyright Copyright (c) 2013 Trivid GmbH (http://www.trivid.com)
14
+ */
15
+
16
+ $installer = $this;
17
+ $installer->startSetup();
18
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
19
+ 'group' => 'Clipgenerator',
20
+ 'input' => 'text',
21
+ 'type' => 'varchar',
22
+ 'label' => 'Video Titel',
23
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
24
+ 'visible' => TRUE,
25
+ 'required' => FALSE,
26
+ 'user_defined' => TRUE,
27
+ 'searchable' => FALSE,
28
+ 'filterable' => FALSE,
29
+ 'comparable' => FALSE,
30
+ 'visible_on_front' => FALSE,
31
+ 'unique' => FALSE,
32
+ 'apply_to' => 'simple,configurable,bundle,grouped',
33
+ 'is_configurable' => FALSE,
34
+ ));
35
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
36
+ 'group' => 'Clipgenerator',
37
+ 'input' => 'textarea',
38
+ 'type' => 'varchar',
39
+ 'label' => 'Beschreibung',
40
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
41
+ 'visible' => TRUE,
42
+ 'required' => FALSE,
43
+ 'user_defined' => TRUE,
44
+ 'searchable' => FALSE,
45
+ 'filterable' => FALSE,
46
+ 'comparable' => FALSE,
47
+ 'visible_on_front' => FALSE,
48
+ 'unique' => FALSE,
49
+ 'apply_to' => 'simple,configurable,bundle,grouped',
50
+ 'is_configurable' => FALSE,
51
+ ));
52
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
53
+ 'group' => 'Clipgenerator',
54
+ 'input' => 'text',
55
+ 'type' => 'varchar',
56
+ 'label' => 'Video Keywords',
57
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
58
+ 'visible' => TRUE,
59
+ 'required' => FALSE,
60
+ 'user_defined' => TRUE,
61
+ 'searchable' => FALSE,
62
+ 'filterable' => FALSE,
63
+ 'comparable' => FALSE,
64
+ 'visible_on_front' => FALSE,
65
+ 'unique' => FALSE,
66
+ 'apply_to' => 'simple,configurable,bundle,grouped',
67
+ 'is_configurable' => FALSE,
68
+ ));
69
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
70
+ 'group' => 'Clipgenerator',
71
+ 'input' => 'text',
72
+ 'type' => 'varchar',
73
+ 'label' => 'Video Logo URL',
74
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
75
+ 'visible' => TRUE,
76
+ 'required' => FALSE,
77
+ 'user_defined' => TRUE,
78
+ 'searchable' => FALSE,
79
+ 'filterable' => FALSE,
80
+ 'comparable' => FALSE,
81
+ 'visible_on_front' => FALSE,
82
+ 'unique' => FALSE,
83
+ 'apply_to' => 'simple,configurable,bundle,grouped',
84
+ 'is_configurable' => FALSE,
85
+ ));
86
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
87
+ 'group' => 'Clipgenerator',
88
+ 'input' => 'boolean',
89
+ 'type' => 'int',
90
+ 'default' => 0,
91
+ 'label' => 'Video ausgeben',
92
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
93
+ 'visible' => TRUE,
94
+ 'required' => FALSE,
95
+ 'user_defined' => TRUE,
96
+ 'searchable' => FALSE,
97
+ 'filterable' => FALSE,
98
+ 'comparable' => FALSE,
99
+ 'visible_on_front' => FALSE,
100
+ 'unique' => FALSE,
101
+ 'apply_to' => 'simple,configurable,bundle,grouped',
102
+ 'is_configurable' => FALSE,
103
+ ));
104
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
105
+ 'group' => 'Clipgenerator',
106
+ 'input' => 'select',
107
+ 'type' => 'varchar',
108
+ 'label' => 'Design',
109
+ 'source' => 'trivid_clipgenerator_model_source_designs',
110
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
111
+ 'visible' => TRUE,
112
+ 'required' => FALSE,
113
+ 'user_defined' => TRUE,
114
+ 'searchable' => FALSE,
115
+ 'filterable' => FALSE,
116
+ 'comparable' => FALSE,
117
+ 'visible_on_front' => FALSE,
118
+ 'unique' => FALSE,
119
+ 'apply_to' => 'simple,configurable,bundle,grouped',
120
+ 'is_configurable' => FALSE,
121
+ ));
122
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
123
+ 'group' => 'Clipgenerator',
124
+ 'type' => 'text',
125
+ 'input' => 'text',
126
+ 'backend' => '',
127
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
128
+ 'label' => 'Bildauswahl',
129
+ 'class' => '',
130
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
131
+ 'visible' => TRUE,
132
+ 'required' => FALSE,
133
+ 'user_defined' => TRUE,
134
+ 'searchable' => FALSE,
135
+ 'filterable' => FALSE,
136
+ 'comparable' => FALSE,
137
+ 'visible_on_front' => FALSE,
138
+ 'unique' => FALSE,
139
+ 'apply_to' => 'simple,configurable,bundle,grouped',
140
+ 'is_configurable' => FALSE,
141
+ ));
142
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
143
+ 'group' => 'Clipgenerator',
144
+ 'input' => 'select',
145
+ 'type' => 'varchar',
146
+ 'label' => 'Musik',
147
+ 'source' => 'trivid_clipgenerator_model_source_musics',
148
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
149
+ 'visible' => TRUE,
150
+ 'required' => FALSE,
151
+ 'user_defined' => TRUE,
152
+ 'searchable' => FALSE,
153
+ 'filterable' => FALSE,
154
+ 'comparable' => FALSE,
155
+ 'visible_on_front' => FALSE,
156
+ 'unique' => FALSE,
157
+ 'apply_to' => 'simple,configurable,bundle,grouped',
158
+ 'is_configurable' => FALSE,
159
+ ));
160
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
161
+ 'group' => 'Clipgenerator',
162
+ 'type' => 'varchar',
163
+ 'backend' => '',
164
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
165
+ 'label' => 'erweiterte Auswahl',
166
+ 'class' => '',
167
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
168
+ 'visible' => TRUE,
169
+ 'required' => FALSE,
170
+ 'user_defined' => TRUE,
171
+ 'searchable' => FALSE,
172
+ 'filterable' => FALSE,
173
+ 'comparable' => FALSE,
174
+ 'visible_on_front' => FALSE,
175
+ 'unique' => FALSE,
176
+ 'apply_to' => 'simple,configurable,bundle,grouped',
177
+ 'is_configurable' => FALSE,
178
+ ));
179
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
180
+ 'group' => 'Clipgenerator',
181
+ 'input' => 'text',
182
+ 'type' => 'varchar',
183
+ 'label' => 'Video ID',
184
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
185
+ 'visible' => TRUE,
186
+ 'required' => FALSE,
187
+ 'user_defined' => TRUE,
188
+ 'searchable' => FALSE,
189
+ 'filterable' => FALSE,
190
+ 'comparable' => FALSE,
191
+ 'visible_on_front' => FALSE,
192
+ 'unique' => FALSE,
193
+ 'apply_to' => 'simple,configurable,bundle,grouped',
194
+ 'is_configurable' => FALSE,
195
+ ));
196
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.0.php ADDED
@@ -0,0 +1,200 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @author Another Author <another@example.com>
15
+ * @copyright 2013 Trivid GmbH
16
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
17
+ * @version 1.0.0
18
+ * @since File available since Release 1.0.0
19
+ */
20
+ $installer = $this;
21
+ $installer->startSetup();
22
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
23
+ 'group' => 'Clipgenerator',
24
+ 'input' => 'text',
25
+ 'type' => 'varchar',
26
+ 'label' => 'Video Titel',
27
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
28
+ 'visible' => TRUE,
29
+ 'required' => FALSE,
30
+ 'user_defined' => TRUE,
31
+ 'searchable' => FALSE,
32
+ 'filterable' => FALSE,
33
+ 'comparable' => FALSE,
34
+ 'visible_on_front' => FALSE,
35
+ 'unique' => FALSE,
36
+ 'apply_to' => 'simple,configurable,bundle,grouped',
37
+ 'is_configurable' => FALSE,
38
+ ));
39
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
40
+ 'group' => 'Clipgenerator',
41
+ 'input' => 'textarea',
42
+ 'type' => 'varchar',
43
+ 'label' => 'Beschreibung',
44
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
45
+ 'visible' => TRUE,
46
+ 'required' => FALSE,
47
+ 'user_defined' => TRUE,
48
+ 'searchable' => FALSE,
49
+ 'filterable' => FALSE,
50
+ 'comparable' => FALSE,
51
+ 'visible_on_front' => FALSE,
52
+ 'unique' => FALSE,
53
+ 'apply_to' => 'simple,configurable,bundle,grouped',
54
+ 'is_configurable' => FALSE,
55
+ ));
56
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
57
+ 'group' => 'Clipgenerator',
58
+ 'input' => 'text',
59
+ 'type' => 'varchar',
60
+ 'label' => 'Video Keywords',
61
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
62
+ 'visible' => TRUE,
63
+ 'required' => FALSE,
64
+ 'user_defined' => TRUE,
65
+ 'searchable' => FALSE,
66
+ 'filterable' => FALSE,
67
+ 'comparable' => FALSE,
68
+ 'visible_on_front' => FALSE,
69
+ 'unique' => FALSE,
70
+ 'apply_to' => 'simple,configurable,bundle,grouped',
71
+ 'is_configurable' => FALSE,
72
+ ));
73
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
74
+ 'group' => 'Clipgenerator',
75
+ 'input' => 'text',
76
+ 'type' => 'varchar',
77
+ 'label' => 'Video Logo URL',
78
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
79
+ 'visible' => TRUE,
80
+ 'required' => FALSE,
81
+ 'user_defined' => TRUE,
82
+ 'searchable' => FALSE,
83
+ 'filterable' => FALSE,
84
+ 'comparable' => FALSE,
85
+ 'visible_on_front' => FALSE,
86
+ 'unique' => FALSE,
87
+ 'apply_to' => 'simple,configurable,bundle,grouped',
88
+ 'is_configurable' => FALSE,
89
+ ));
90
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
91
+ 'group' => 'Clipgenerator',
92
+ 'input' => 'boolean',
93
+ 'type' => 'int',
94
+ 'default' => 0,
95
+ 'label' => 'Video ausgeben',
96
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
97
+ 'visible' => TRUE,
98
+ 'required' => FALSE,
99
+ 'user_defined' => TRUE,
100
+ 'searchable' => FALSE,
101
+ 'filterable' => FALSE,
102
+ 'comparable' => FALSE,
103
+ 'visible_on_front' => FALSE,
104
+ 'unique' => FALSE,
105
+ 'apply_to' => 'simple,configurable,bundle,grouped',
106
+ 'is_configurable' => FALSE,
107
+ ));
108
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
109
+ 'group' => 'Clipgenerator',
110
+ 'input' => 'select',
111
+ 'type' => 'varchar',
112
+ 'label' => 'Design',
113
+ 'source' => 'trivid_clipgenerator_model_source_designs',
114
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
115
+ 'visible' => TRUE,
116
+ 'required' => FALSE,
117
+ 'user_defined' => TRUE,
118
+ 'searchable' => FALSE,
119
+ 'filterable' => FALSE,
120
+ 'comparable' => FALSE,
121
+ 'visible_on_front' => FALSE,
122
+ 'unique' => FALSE,
123
+ 'apply_to' => 'simple,configurable,bundle,grouped',
124
+ 'is_configurable' => FALSE,
125
+ ));
126
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
127
+ 'group' => 'Clipgenerator',
128
+ 'type' => 'text',
129
+ 'input' => 'text',
130
+ 'backend' => '',
131
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
132
+ 'label' => 'Bildauswahl',
133
+ 'class' => '',
134
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
135
+ 'visible' => TRUE,
136
+ 'required' => FALSE,
137
+ 'user_defined' => TRUE,
138
+ 'searchable' => FALSE,
139
+ 'filterable' => FALSE,
140
+ 'comparable' => FALSE,
141
+ 'visible_on_front' => FALSE,
142
+ 'unique' => FALSE,
143
+ 'apply_to' => 'simple,configurable,bundle,grouped',
144
+ 'is_configurable' => FALSE,
145
+ ));
146
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
147
+ 'group' => 'Clipgenerator',
148
+ 'input' => 'select',
149
+ 'type' => 'varchar',
150
+ 'label' => 'Musik',
151
+ 'source' => 'trivid_clipgenerator_model_source_musics',
152
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
153
+ 'visible' => TRUE,
154
+ 'required' => FALSE,
155
+ 'user_defined' => TRUE,
156
+ 'searchable' => FALSE,
157
+ 'filterable' => FALSE,
158
+ 'comparable' => FALSE,
159
+ 'visible_on_front' => FALSE,
160
+ 'unique' => FALSE,
161
+ 'apply_to' => 'simple,configurable,bundle,grouped',
162
+ 'is_configurable' => FALSE,
163
+ ));
164
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
165
+ 'group' => 'Clipgenerator',
166
+ 'type' => 'varchar',
167
+ 'backend' => '',
168
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
169
+ 'label' => 'erweiterte Auswahl',
170
+ 'class' => '',
171
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
172
+ 'visible' => TRUE,
173
+ 'required' => FALSE,
174
+ 'user_defined' => TRUE,
175
+ 'searchable' => FALSE,
176
+ 'filterable' => FALSE,
177
+ 'comparable' => FALSE,
178
+ 'visible_on_front' => FALSE,
179
+ 'unique' => FALSE,
180
+ 'apply_to' => 'simple,configurable,bundle,grouped',
181
+ 'is_configurable' => FALSE,
182
+ ));
183
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
184
+ 'group' => 'Clipgenerator',
185
+ 'input' => 'text',
186
+ 'type' => 'varchar',
187
+ 'label' => 'Video ID',
188
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
189
+ 'visible' => TRUE,
190
+ 'required' => FALSE,
191
+ 'user_defined' => TRUE,
192
+ 'searchable' => FALSE,
193
+ 'filterable' => FALSE,
194
+ 'comparable' => FALSE,
195
+ 'visible_on_front' => FALSE,
196
+ 'unique' => FALSE,
197
+ 'apply_to' => 'simple,configurable,bundle,grouped',
198
+ 'is_configurable' => FALSE,
199
+ ));
200
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.2.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Creates all necessary product attributes.
21
+ */
22
+ $installer = $this;
23
+ $installer->startSetup();
24
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
25
+ 'group' => 'Clipgenerator',
26
+ 'input' => 'text',
27
+ 'type' => 'varchar',
28
+ 'label' => 'Video Titel',
29
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
30
+ 'visible' => TRUE,
31
+ 'required' => FALSE,
32
+ 'user_defined' => TRUE,
33
+ 'searchable' => FALSE,
34
+ 'filterable' => FALSE,
35
+ 'comparable' => FALSE,
36
+ 'visible_on_front' => FALSE,
37
+ 'unique' => FALSE,
38
+ 'apply_to' => 'simple,configurable,bundle,grouped',
39
+ 'is_configurable' => FALSE,
40
+ ));
41
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
42
+ 'group' => 'Clipgenerator',
43
+ 'input' => 'textarea',
44
+ 'type' => 'varchar',
45
+ 'label' => 'Beschreibung',
46
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
47
+ 'visible' => TRUE,
48
+ 'required' => FALSE,
49
+ 'user_defined' => TRUE,
50
+ 'searchable' => FALSE,
51
+ 'filterable' => FALSE,
52
+ 'comparable' => FALSE,
53
+ 'visible_on_front' => FALSE,
54
+ 'unique' => FALSE,
55
+ 'apply_to' => 'simple,configurable,bundle,grouped',
56
+ 'is_configurable' => FALSE,
57
+ ));
58
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
59
+ 'group' => 'Clipgenerator',
60
+ 'input' => 'text',
61
+ 'type' => 'varchar',
62
+ 'label' => 'Video Keywords',
63
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
64
+ 'visible' => TRUE,
65
+ 'required' => FALSE,
66
+ 'user_defined' => TRUE,
67
+ 'searchable' => FALSE,
68
+ 'filterable' => FALSE,
69
+ 'comparable' => FALSE,
70
+ 'visible_on_front' => FALSE,
71
+ 'unique' => FALSE,
72
+ 'apply_to' => 'simple,configurable,bundle,grouped',
73
+ 'is_configurable' => FALSE,
74
+ ));
75
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
76
+ 'group' => 'Clipgenerator',
77
+ 'input' => 'text',
78
+ 'type' => 'varchar',
79
+ 'label' => 'Video Logo URL',
80
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
81
+ 'visible' => TRUE,
82
+ 'required' => FALSE,
83
+ 'user_defined' => TRUE,
84
+ 'searchable' => FALSE,
85
+ 'filterable' => FALSE,
86
+ 'comparable' => FALSE,
87
+ 'visible_on_front' => FALSE,
88
+ 'unique' => FALSE,
89
+ 'apply_to' => 'simple,configurable,bundle,grouped',
90
+ 'is_configurable' => FALSE,
91
+ ));
92
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
93
+ 'group' => 'Clipgenerator',
94
+ 'input' => 'boolean',
95
+ 'type' => 'int',
96
+ 'default' => 0,
97
+ 'label' => 'Video ausgeben',
98
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
99
+ 'visible' => TRUE,
100
+ 'required' => FALSE,
101
+ 'user_defined' => TRUE,
102
+ 'searchable' => FALSE,
103
+ 'filterable' => FALSE,
104
+ 'comparable' => FALSE,
105
+ 'visible_on_front' => FALSE,
106
+ 'unique' => FALSE,
107
+ 'apply_to' => 'simple,configurable,bundle,grouped',
108
+ 'is_configurable' => FALSE,
109
+ ));
110
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
111
+ 'group' => 'Clipgenerator',
112
+ 'input' => 'select',
113
+ 'type' => 'varchar',
114
+ 'label' => 'Design',
115
+ 'source' => 'trivid_clipgenerator_model_source_designs',
116
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
117
+ 'visible' => TRUE,
118
+ 'required' => FALSE,
119
+ 'user_defined' => TRUE,
120
+ 'searchable' => FALSE,
121
+ 'filterable' => FALSE,
122
+ 'comparable' => FALSE,
123
+ 'visible_on_front' => FALSE,
124
+ 'unique' => FALSE,
125
+ 'apply_to' => 'simple,configurable,bundle,grouped',
126
+ 'is_configurable' => FALSE,
127
+ ));
128
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
129
+ 'group' => 'Clipgenerator',
130
+ 'type' => 'text',
131
+ 'input' => 'text',
132
+ 'backend' => '',
133
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
134
+ 'label' => 'Bildauswahl',
135
+ 'class' => '',
136
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
137
+ 'visible' => TRUE,
138
+ 'required' => FALSE,
139
+ 'user_defined' => TRUE,
140
+ 'searchable' => FALSE,
141
+ 'filterable' => FALSE,
142
+ 'comparable' => FALSE,
143
+ 'visible_on_front' => FALSE,
144
+ 'unique' => FALSE,
145
+ 'apply_to' => 'simple,configurable,bundle,grouped',
146
+ 'is_configurable' => FALSE,
147
+ ));
148
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
149
+ 'group' => 'Clipgenerator',
150
+ 'input' => 'select',
151
+ 'type' => 'varchar',
152
+ 'label' => 'Musik',
153
+ 'source' => 'trivid_clipgenerator_model_source_musics',
154
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
155
+ 'visible' => TRUE,
156
+ 'required' => FALSE,
157
+ 'user_defined' => TRUE,
158
+ 'searchable' => FALSE,
159
+ 'filterable' => FALSE,
160
+ 'comparable' => FALSE,
161
+ 'visible_on_front' => FALSE,
162
+ 'unique' => FALSE,
163
+ 'apply_to' => 'simple,configurable,bundle,grouped',
164
+ 'is_configurable' => FALSE,
165
+ ));
166
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
167
+ 'group' => 'Clipgenerator',
168
+ 'type' => 'varchar',
169
+ 'backend' => '',
170
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
171
+ 'label' => 'erweiterte Auswahl',
172
+ 'class' => '',
173
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
174
+ 'visible' => TRUE,
175
+ 'required' => FALSE,
176
+ 'user_defined' => TRUE,
177
+ 'searchable' => FALSE,
178
+ 'filterable' => FALSE,
179
+ 'comparable' => FALSE,
180
+ 'visible_on_front' => FALSE,
181
+ 'unique' => FALSE,
182
+ 'apply_to' => 'simple,configurable,bundle,grouped',
183
+ 'is_configurable' => FALSE,
184
+ ));
185
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
186
+ 'group' => 'Clipgenerator',
187
+ 'input' => 'text',
188
+ 'type' => 'varchar',
189
+ 'label' => 'Video ID',
190
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
191
+ 'visible' => TRUE,
192
+ 'required' => FALSE,
193
+ 'user_defined' => TRUE,
194
+ 'searchable' => FALSE,
195
+ 'filterable' => FALSE,
196
+ 'comparable' => FALSE,
197
+ 'visible_on_front' => FALSE,
198
+ 'unique' => FALSE,
199
+ 'apply_to' => 'simple,configurable,bundle,grouped',
200
+ 'is_configurable' => FALSE,
201
+ ));
202
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.3.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.0
17
+ * @since File available since Release 1.0.0
18
+ */
19
+ /**
20
+ * Creates all necessary product attributes.
21
+ */
22
+ $installer = $this;
23
+ $installer->startSetup();
24
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
25
+ 'group' => 'Clipgenerator',
26
+ 'input' => 'text',
27
+ 'type' => 'varchar',
28
+ 'label' => 'Video Titel',
29
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
30
+ 'visible' => TRUE,
31
+ 'required' => FALSE,
32
+ 'user_defined' => TRUE,
33
+ 'searchable' => FALSE,
34
+ 'filterable' => FALSE,
35
+ 'comparable' => FALSE,
36
+ 'visible_on_front' => FALSE,
37
+ 'unique' => FALSE,
38
+ 'apply_to' => 'simple,configurable,bundle,grouped',
39
+ 'is_configurable' => FALSE,
40
+ ));
41
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
42
+ 'group' => 'Clipgenerator',
43
+ 'input' => 'textarea',
44
+ 'type' => 'varchar',
45
+ 'label' => 'Beschreibung',
46
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
47
+ 'visible' => TRUE,
48
+ 'required' => FALSE,
49
+ 'user_defined' => TRUE,
50
+ 'searchable' => FALSE,
51
+ 'filterable' => FALSE,
52
+ 'comparable' => FALSE,
53
+ 'visible_on_front' => FALSE,
54
+ 'unique' => FALSE,
55
+ 'apply_to' => 'simple,configurable,bundle,grouped',
56
+ 'is_configurable' => FALSE,
57
+ ));
58
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
59
+ 'group' => 'Clipgenerator',
60
+ 'input' => 'text',
61
+ 'type' => 'varchar',
62
+ 'label' => 'Video Keywords',
63
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
64
+ 'visible' => TRUE,
65
+ 'required' => FALSE,
66
+ 'user_defined' => TRUE,
67
+ 'searchable' => FALSE,
68
+ 'filterable' => FALSE,
69
+ 'comparable' => FALSE,
70
+ 'visible_on_front' => FALSE,
71
+ 'unique' => FALSE,
72
+ 'apply_to' => 'simple,configurable,bundle,grouped',
73
+ 'is_configurable' => FALSE,
74
+ ));
75
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
76
+ 'group' => 'Clipgenerator',
77
+ 'input' => 'text',
78
+ 'type' => 'varchar',
79
+ 'label' => 'Video Logo URL',
80
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
81
+ 'visible' => TRUE,
82
+ 'required' => FALSE,
83
+ 'user_defined' => TRUE,
84
+ 'searchable' => FALSE,
85
+ 'filterable' => FALSE,
86
+ 'comparable' => FALSE,
87
+ 'visible_on_front' => FALSE,
88
+ 'unique' => FALSE,
89
+ 'apply_to' => 'simple,configurable,bundle,grouped',
90
+ 'is_configurable' => FALSE,
91
+ ));
92
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
93
+ 'group' => 'Clipgenerator',
94
+ 'input' => 'boolean',
95
+ 'type' => 'int',
96
+ 'default' => 0,
97
+ 'label' => 'Video ausgeben',
98
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
99
+ 'visible' => TRUE,
100
+ 'required' => FALSE,
101
+ 'user_defined' => TRUE,
102
+ 'searchable' => FALSE,
103
+ 'filterable' => FALSE,
104
+ 'comparable' => FALSE,
105
+ 'visible_on_front' => FALSE,
106
+ 'unique' => FALSE,
107
+ 'apply_to' => 'simple,configurable,bundle,grouped',
108
+ 'is_configurable' => FALSE,
109
+ ));
110
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
111
+ 'group' => 'Clipgenerator',
112
+ 'input' => 'select',
113
+ 'type' => 'varchar',
114
+ 'label' => 'Design',
115
+ 'source' => 'trivid_clipgenerator_model_source_designs',
116
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
117
+ 'visible' => TRUE,
118
+ 'required' => FALSE,
119
+ 'user_defined' => TRUE,
120
+ 'searchable' => FALSE,
121
+ 'filterable' => FALSE,
122
+ 'comparable' => FALSE,
123
+ 'visible_on_front' => FALSE,
124
+ 'unique' => FALSE,
125
+ 'apply_to' => 'simple,configurable,bundle,grouped',
126
+ 'is_configurable' => FALSE,
127
+ ));
128
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
129
+ 'group' => 'Clipgenerator',
130
+ 'type' => 'text',
131
+ 'input' => 'text',
132
+ 'backend' => '',
133
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
134
+ 'label' => 'Bildauswahl',
135
+ 'class' => '',
136
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
137
+ 'visible' => TRUE,
138
+ 'required' => FALSE,
139
+ 'user_defined' => TRUE,
140
+ 'searchable' => FALSE,
141
+ 'filterable' => FALSE,
142
+ 'comparable' => FALSE,
143
+ 'visible_on_front' => FALSE,
144
+ 'unique' => FALSE,
145
+ 'apply_to' => 'simple,configurable,bundle,grouped',
146
+ 'is_configurable' => FALSE,
147
+ ));
148
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
149
+ 'group' => 'Clipgenerator',
150
+ 'input' => 'select',
151
+ 'type' => 'varchar',
152
+ 'label' => 'Musik',
153
+ 'source' => 'trivid_clipgenerator_model_source_musics',
154
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
155
+ 'visible' => TRUE,
156
+ 'required' => FALSE,
157
+ 'user_defined' => TRUE,
158
+ 'searchable' => FALSE,
159
+ 'filterable' => FALSE,
160
+ 'comparable' => FALSE,
161
+ 'visible_on_front' => FALSE,
162
+ 'unique' => FALSE,
163
+ 'apply_to' => 'simple,configurable,bundle,grouped',
164
+ 'is_configurable' => FALSE,
165
+ ));
166
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
167
+ 'group' => 'Clipgenerator',
168
+ 'type' => 'varchar',
169
+ 'backend' => '',
170
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
171
+ 'label' => 'erweiterte Auswahl',
172
+ 'class' => '',
173
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
174
+ 'visible' => TRUE,
175
+ 'required' => FALSE,
176
+ 'user_defined' => TRUE,
177
+ 'searchable' => FALSE,
178
+ 'filterable' => FALSE,
179
+ 'comparable' => FALSE,
180
+ 'visible_on_front' => FALSE,
181
+ 'unique' => FALSE,
182
+ 'apply_to' => 'simple,configurable,bundle,grouped',
183
+ 'is_configurable' => FALSE,
184
+ ));
185
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
186
+ 'group' => 'Clipgenerator',
187
+ 'input' => 'text',
188
+ 'type' => 'varchar',
189
+ 'label' => 'Video ID',
190
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
191
+ 'visible' => TRUE,
192
+ 'required' => FALSE,
193
+ 'user_defined' => TRUE,
194
+ 'searchable' => FALSE,
195
+ 'filterable' => FALSE,
196
+ 'comparable' => FALSE,
197
+ 'visible_on_front' => FALSE,
198
+ 'unique' => FALSE,
199
+ 'apply_to' => 'simple,configurable,bundle,grouped',
200
+ 'is_configurable' => FALSE,
201
+ ));
202
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.4.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.4
17
+ * @since File available since Release 1.0.4
18
+ */
19
+ /**
20
+ * Creates all necessary product attributes.
21
+ */
22
+ $installer = $this;
23
+ $installer->startSetup();
24
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
25
+ 'group' => 'Clipgenerator',
26
+ 'input' => 'text',
27
+ 'type' => 'varchar',
28
+ 'label' => 'Video Titel',
29
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
30
+ 'visible' => TRUE,
31
+ 'required' => FALSE,
32
+ 'user_defined' => TRUE,
33
+ 'searchable' => FALSE,
34
+ 'filterable' => FALSE,
35
+ 'comparable' => FALSE,
36
+ 'visible_on_front' => FALSE,
37
+ 'unique' => FALSE,
38
+ 'apply_to' => 'simple,configurable,bundle,grouped',
39
+ 'is_configurable' => FALSE,
40
+ ));
41
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
42
+ 'group' => 'Clipgenerator',
43
+ 'input' => 'textarea',
44
+ 'type' => 'varchar',
45
+ 'label' => 'Beschreibung',
46
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
47
+ 'visible' => TRUE,
48
+ 'required' => FALSE,
49
+ 'user_defined' => TRUE,
50
+ 'searchable' => FALSE,
51
+ 'filterable' => FALSE,
52
+ 'comparable' => FALSE,
53
+ 'visible_on_front' => FALSE,
54
+ 'unique' => FALSE,
55
+ 'apply_to' => 'simple,configurable,bundle,grouped',
56
+ 'is_configurable' => FALSE,
57
+ ));
58
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
59
+ 'group' => 'Clipgenerator',
60
+ 'input' => 'text',
61
+ 'type' => 'varchar',
62
+ 'label' => 'Video Keywords',
63
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
64
+ 'visible' => TRUE,
65
+ 'required' => FALSE,
66
+ 'user_defined' => TRUE,
67
+ 'searchable' => FALSE,
68
+ 'filterable' => FALSE,
69
+ 'comparable' => FALSE,
70
+ 'visible_on_front' => FALSE,
71
+ 'unique' => FALSE,
72
+ 'apply_to' => 'simple,configurable,bundle,grouped',
73
+ 'is_configurable' => FALSE,
74
+ ));
75
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
76
+ 'group' => 'Clipgenerator',
77
+ 'input' => 'text',
78
+ 'type' => 'varchar',
79
+ 'label' => 'Video Logo URL',
80
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
81
+ 'visible' => TRUE,
82
+ 'required' => FALSE,
83
+ 'user_defined' => TRUE,
84
+ 'searchable' => FALSE,
85
+ 'filterable' => FALSE,
86
+ 'comparable' => FALSE,
87
+ 'visible_on_front' => FALSE,
88
+ 'unique' => FALSE,
89
+ 'apply_to' => 'simple,configurable,bundle,grouped',
90
+ 'is_configurable' => FALSE,
91
+ ));
92
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
93
+ 'group' => 'Clipgenerator',
94
+ 'input' => 'boolean',
95
+ 'type' => 'int',
96
+ 'default' => 0,
97
+ 'label' => 'Video ausgeben',
98
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
99
+ 'visible' => TRUE,
100
+ 'required' => FALSE,
101
+ 'user_defined' => TRUE,
102
+ 'searchable' => FALSE,
103
+ 'filterable' => FALSE,
104
+ 'comparable' => FALSE,
105
+ 'visible_on_front' => FALSE,
106
+ 'unique' => FALSE,
107
+ 'apply_to' => 'simple,configurable,bundle,grouped',
108
+ 'is_configurable' => FALSE,
109
+ ));
110
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
111
+ 'group' => 'Clipgenerator',
112
+ 'input' => 'select',
113
+ 'type' => 'varchar',
114
+ 'label' => 'Design',
115
+ 'source' => 'trivid_clipgenerator_model_source_designs',
116
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
117
+ 'visible' => TRUE,
118
+ 'required' => FALSE,
119
+ 'user_defined' => TRUE,
120
+ 'searchable' => FALSE,
121
+ 'filterable' => FALSE,
122
+ 'comparable' => FALSE,
123
+ 'visible_on_front' => FALSE,
124
+ 'unique' => FALSE,
125
+ 'apply_to' => 'simple,configurable,bundle,grouped',
126
+ 'is_configurable' => FALSE,
127
+ ));
128
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
129
+ 'group' => 'Clipgenerator',
130
+ 'type' => 'text',
131
+ 'input' => 'text',
132
+ 'backend' => '',
133
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
134
+ 'label' => 'Bildauswahl',
135
+ 'class' => '',
136
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
137
+ 'visible' => TRUE,
138
+ 'required' => FALSE,
139
+ 'user_defined' => TRUE,
140
+ 'searchable' => FALSE,
141
+ 'filterable' => FALSE,
142
+ 'comparable' => FALSE,
143
+ 'visible_on_front' => FALSE,
144
+ 'unique' => FALSE,
145
+ 'apply_to' => 'simple,configurable,bundle,grouped',
146
+ 'is_configurable' => FALSE,
147
+ ));
148
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
149
+ 'group' => 'Clipgenerator',
150
+ 'input' => 'select',
151
+ 'type' => 'varchar',
152
+ 'label' => 'Musik',
153
+ 'source' => 'trivid_clipgenerator_model_source_musics',
154
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
155
+ 'visible' => TRUE,
156
+ 'required' => FALSE,
157
+ 'user_defined' => TRUE,
158
+ 'searchable' => FALSE,
159
+ 'filterable' => FALSE,
160
+ 'comparable' => FALSE,
161
+ 'visible_on_front' => FALSE,
162
+ 'unique' => FALSE,
163
+ 'apply_to' => 'simple,configurable,bundle,grouped',
164
+ 'is_configurable' => FALSE,
165
+ ));
166
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
167
+ 'group' => 'Clipgenerator',
168
+ 'type' => 'varchar',
169
+ 'backend' => '',
170
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
171
+ 'label' => 'erweiterte Auswahl',
172
+ 'class' => '',
173
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
174
+ 'visible' => TRUE,
175
+ 'required' => FALSE,
176
+ 'user_defined' => TRUE,
177
+ 'searchable' => FALSE,
178
+ 'filterable' => FALSE,
179
+ 'comparable' => FALSE,
180
+ 'visible_on_front' => FALSE,
181
+ 'unique' => FALSE,
182
+ 'apply_to' => 'simple,configurable,bundle,grouped',
183
+ 'is_configurable' => FALSE,
184
+ ));
185
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
186
+ 'group' => 'Clipgenerator',
187
+ 'input' => 'text',
188
+ 'type' => 'varchar',
189
+ 'label' => 'Video ID',
190
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
191
+ 'visible' => TRUE,
192
+ 'required' => FALSE,
193
+ 'user_defined' => TRUE,
194
+ 'searchable' => FALSE,
195
+ 'filterable' => FALSE,
196
+ 'comparable' => FALSE,
197
+ 'visible_on_front' => FALSE,
198
+ 'unique' => FALSE,
199
+ 'apply_to' => 'simple,configurable,bundle,grouped',
200
+ 'is_configurable' => FALSE,
201
+ ));
202
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.5.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.5
17
+ * @since File available since Release 1.0.5
18
+ */
19
+ /**
20
+ * Creates all necessary product attributes.
21
+ */
22
+ $installer = $this;
23
+ $installer->startSetup();
24
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
25
+ 'group' => 'Clipgenerator',
26
+ 'input' => 'text',
27
+ 'type' => 'varchar',
28
+ 'label' => 'Video Titel',
29
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
30
+ 'visible' => TRUE,
31
+ 'required' => FALSE,
32
+ 'user_defined' => TRUE,
33
+ 'searchable' => FALSE,
34
+ 'filterable' => FALSE,
35
+ 'comparable' => FALSE,
36
+ 'visible_on_front' => FALSE,
37
+ 'unique' => FALSE,
38
+ 'apply_to' => 'simple,configurable,bundle,grouped',
39
+ 'is_configurable' => FALSE,
40
+ ));
41
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
42
+ 'group' => 'Clipgenerator',
43
+ 'input' => 'textarea',
44
+ 'type' => 'varchar',
45
+ 'label' => 'Beschreibung',
46
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
47
+ 'visible' => TRUE,
48
+ 'required' => FALSE,
49
+ 'user_defined' => TRUE,
50
+ 'searchable' => FALSE,
51
+ 'filterable' => FALSE,
52
+ 'comparable' => FALSE,
53
+ 'visible_on_front' => FALSE,
54
+ 'unique' => FALSE,
55
+ 'apply_to' => 'simple,configurable,bundle,grouped',
56
+ 'is_configurable' => FALSE,
57
+ ));
58
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
59
+ 'group' => 'Clipgenerator',
60
+ 'input' => 'text',
61
+ 'type' => 'varchar',
62
+ 'label' => 'Video Keywords',
63
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
64
+ 'visible' => TRUE,
65
+ 'required' => FALSE,
66
+ 'user_defined' => TRUE,
67
+ 'searchable' => FALSE,
68
+ 'filterable' => FALSE,
69
+ 'comparable' => FALSE,
70
+ 'visible_on_front' => FALSE,
71
+ 'unique' => FALSE,
72
+ 'apply_to' => 'simple,configurable,bundle,grouped',
73
+ 'is_configurable' => FALSE,
74
+ ));
75
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
76
+ 'group' => 'Clipgenerator',
77
+ 'input' => 'text',
78
+ 'type' => 'varchar',
79
+ 'label' => 'Video Logo URL',
80
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
81
+ 'visible' => TRUE,
82
+ 'required' => FALSE,
83
+ 'user_defined' => TRUE,
84
+ 'searchable' => FALSE,
85
+ 'filterable' => FALSE,
86
+ 'comparable' => FALSE,
87
+ 'visible_on_front' => FALSE,
88
+ 'unique' => FALSE,
89
+ 'apply_to' => 'simple,configurable,bundle,grouped',
90
+ 'is_configurable' => FALSE,
91
+ ));
92
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
93
+ 'group' => 'Clipgenerator',
94
+ 'input' => 'boolean',
95
+ 'type' => 'int',
96
+ 'default' => 0,
97
+ 'label' => 'Video ausgeben',
98
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
99
+ 'visible' => TRUE,
100
+ 'required' => FALSE,
101
+ 'user_defined' => TRUE,
102
+ 'searchable' => FALSE,
103
+ 'filterable' => FALSE,
104
+ 'comparable' => FALSE,
105
+ 'visible_on_front' => FALSE,
106
+ 'unique' => FALSE,
107
+ 'apply_to' => 'simple,configurable,bundle,grouped',
108
+ 'is_configurable' => FALSE,
109
+ ));
110
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
111
+ 'group' => 'Clipgenerator',
112
+ 'input' => 'select',
113
+ 'type' => 'varchar',
114
+ 'label' => 'Design',
115
+ 'source' => 'trivid_clipgenerator_model_source_designs',
116
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
117
+ 'visible' => TRUE,
118
+ 'required' => FALSE,
119
+ 'user_defined' => TRUE,
120
+ 'searchable' => FALSE,
121
+ 'filterable' => FALSE,
122
+ 'comparable' => FALSE,
123
+ 'visible_on_front' => FALSE,
124
+ 'unique' => FALSE,
125
+ 'apply_to' => 'simple,configurable,bundle,grouped',
126
+ 'is_configurable' => FALSE,
127
+ ));
128
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
129
+ 'group' => 'Clipgenerator',
130
+ 'type' => 'text',
131
+ 'input' => 'text',
132
+ 'backend' => '',
133
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
134
+ 'label' => 'Bildauswahl',
135
+ 'class' => '',
136
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
137
+ 'visible' => TRUE,
138
+ 'required' => FALSE,
139
+ 'user_defined' => TRUE,
140
+ 'searchable' => FALSE,
141
+ 'filterable' => FALSE,
142
+ 'comparable' => FALSE,
143
+ 'visible_on_front' => FALSE,
144
+ 'unique' => FALSE,
145
+ 'apply_to' => 'simple,configurable,bundle,grouped',
146
+ 'is_configurable' => FALSE,
147
+ ));
148
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
149
+ 'group' => 'Clipgenerator',
150
+ 'input' => 'select',
151
+ 'type' => 'varchar',
152
+ 'label' => 'Musik',
153
+ 'source' => 'trivid_clipgenerator_model_source_musics',
154
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
155
+ 'visible' => TRUE,
156
+ 'required' => FALSE,
157
+ 'user_defined' => TRUE,
158
+ 'searchable' => FALSE,
159
+ 'filterable' => FALSE,
160
+ 'comparable' => FALSE,
161
+ 'visible_on_front' => FALSE,
162
+ 'unique' => FALSE,
163
+ 'apply_to' => 'simple,configurable,bundle,grouped',
164
+ 'is_configurable' => FALSE,
165
+ ));
166
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
167
+ 'group' => 'Clipgenerator',
168
+ 'type' => 'varchar',
169
+ 'backend' => '',
170
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
171
+ 'label' => 'erweiterte Auswahl',
172
+ 'class' => '',
173
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
174
+ 'visible' => TRUE,
175
+ 'required' => FALSE,
176
+ 'user_defined' => TRUE,
177
+ 'searchable' => FALSE,
178
+ 'filterable' => FALSE,
179
+ 'comparable' => FALSE,
180
+ 'visible_on_front' => FALSE,
181
+ 'unique' => FALSE,
182
+ 'apply_to' => 'simple,configurable,bundle,grouped',
183
+ 'is_configurable' => FALSE,
184
+ ));
185
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
186
+ 'group' => 'Clipgenerator',
187
+ 'input' => 'text',
188
+ 'type' => 'varchar',
189
+ 'label' => 'Video ID',
190
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
191
+ 'visible' => TRUE,
192
+ 'required' => FALSE,
193
+ 'user_defined' => TRUE,
194
+ 'searchable' => FALSE,
195
+ 'filterable' => FALSE,
196
+ 'comparable' => FALSE,
197
+ 'visible_on_front' => FALSE,
198
+ 'unique' => FALSE,
199
+ 'apply_to' => 'simple,configurable,bundle,grouped',
200
+ 'is_configurable' => FALSE,
201
+ ));
202
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.6.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.6
17
+ * @since File available since Release 1.0.6
18
+ */
19
+ /**
20
+ * Creates all necessary product attributes.
21
+ */
22
+ $installer = $this;
23
+ $installer->startSetup();
24
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
25
+ 'group' => 'Clipgenerator',
26
+ 'input' => 'text',
27
+ 'type' => 'varchar',
28
+ 'label' => 'Video Titel',
29
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
30
+ 'visible' => TRUE,
31
+ 'required' => FALSE,
32
+ 'user_defined' => TRUE,
33
+ 'searchable' => FALSE,
34
+ 'filterable' => FALSE,
35
+ 'comparable' => FALSE,
36
+ 'visible_on_front' => FALSE,
37
+ 'unique' => FALSE,
38
+ 'apply_to' => 'simple,configurable,bundle,grouped',
39
+ 'is_configurable' => FALSE,
40
+ ));
41
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
42
+ 'group' => 'Clipgenerator',
43
+ 'input' => 'textarea',
44
+ 'type' => 'varchar',
45
+ 'label' => 'Beschreibung',
46
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
47
+ 'visible' => TRUE,
48
+ 'required' => FALSE,
49
+ 'user_defined' => TRUE,
50
+ 'searchable' => FALSE,
51
+ 'filterable' => FALSE,
52
+ 'comparable' => FALSE,
53
+ 'visible_on_front' => FALSE,
54
+ 'unique' => FALSE,
55
+ 'apply_to' => 'simple,configurable,bundle,grouped',
56
+ 'is_configurable' => FALSE,
57
+ ));
58
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
59
+ 'group' => 'Clipgenerator',
60
+ 'input' => 'text',
61
+ 'type' => 'varchar',
62
+ 'label' => 'Video Keywords',
63
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
64
+ 'visible' => TRUE,
65
+ 'required' => FALSE,
66
+ 'user_defined' => TRUE,
67
+ 'searchable' => FALSE,
68
+ 'filterable' => FALSE,
69
+ 'comparable' => FALSE,
70
+ 'visible_on_front' => FALSE,
71
+ 'unique' => FALSE,
72
+ 'apply_to' => 'simple,configurable,bundle,grouped',
73
+ 'is_configurable' => FALSE,
74
+ ));
75
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
76
+ 'group' => 'Clipgenerator',
77
+ 'input' => 'text',
78
+ 'type' => 'varchar',
79
+ 'label' => 'Video Logo URL',
80
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
81
+ 'visible' => TRUE,
82
+ 'required' => FALSE,
83
+ 'user_defined' => TRUE,
84
+ 'searchable' => FALSE,
85
+ 'filterable' => FALSE,
86
+ 'comparable' => FALSE,
87
+ 'visible_on_front' => FALSE,
88
+ 'unique' => FALSE,
89
+ 'apply_to' => 'simple,configurable,bundle,grouped',
90
+ 'is_configurable' => FALSE,
91
+ ));
92
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
93
+ 'group' => 'Clipgenerator',
94
+ 'input' => 'boolean',
95
+ 'type' => 'int',
96
+ 'default' => 0,
97
+ 'label' => 'Video ausgeben',
98
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
99
+ 'visible' => TRUE,
100
+ 'required' => FALSE,
101
+ 'user_defined' => TRUE,
102
+ 'searchable' => FALSE,
103
+ 'filterable' => FALSE,
104
+ 'comparable' => FALSE,
105
+ 'visible_on_front' => FALSE,
106
+ 'unique' => FALSE,
107
+ 'apply_to' => 'simple,configurable,bundle,grouped',
108
+ 'is_configurable' => FALSE,
109
+ ));
110
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
111
+ 'group' => 'Clipgenerator',
112
+ 'input' => 'select',
113
+ 'type' => 'varchar',
114
+ 'label' => 'Design',
115
+ 'source' => 'trivid_clipgenerator_model_source_designs',
116
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
117
+ 'visible' => TRUE,
118
+ 'required' => FALSE,
119
+ 'user_defined' => TRUE,
120
+ 'searchable' => FALSE,
121
+ 'filterable' => FALSE,
122
+ 'comparable' => FALSE,
123
+ 'visible_on_front' => FALSE,
124
+ 'unique' => FALSE,
125
+ 'apply_to' => 'simple,configurable,bundle,grouped',
126
+ 'is_configurable' => FALSE,
127
+ ));
128
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
129
+ 'group' => 'Clipgenerator',
130
+ 'type' => 'text',
131
+ 'input' => 'text',
132
+ 'backend' => '',
133
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
134
+ 'label' => 'Bildauswahl',
135
+ 'class' => '',
136
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
137
+ 'visible' => TRUE,
138
+ 'required' => FALSE,
139
+ 'user_defined' => TRUE,
140
+ 'searchable' => FALSE,
141
+ 'filterable' => FALSE,
142
+ 'comparable' => FALSE,
143
+ 'visible_on_front' => FALSE,
144
+ 'unique' => FALSE,
145
+ 'apply_to' => 'simple,configurable,bundle,grouped',
146
+ 'is_configurable' => FALSE,
147
+ ));
148
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
149
+ 'group' => 'Clipgenerator',
150
+ 'input' => 'select',
151
+ 'type' => 'varchar',
152
+ 'label' => 'Musik',
153
+ 'source' => 'trivid_clipgenerator_model_source_musics',
154
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
155
+ 'visible' => TRUE,
156
+ 'required' => FALSE,
157
+ 'user_defined' => TRUE,
158
+ 'searchable' => FALSE,
159
+ 'filterable' => FALSE,
160
+ 'comparable' => FALSE,
161
+ 'visible_on_front' => FALSE,
162
+ 'unique' => FALSE,
163
+ 'apply_to' => 'simple,configurable,bundle,grouped',
164
+ 'is_configurable' => FALSE,
165
+ ));
166
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
167
+ 'group' => 'Clipgenerator',
168
+ 'type' => 'varchar',
169
+ 'backend' => '',
170
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
171
+ 'label' => 'erweiterte Auswahl',
172
+ 'class' => '',
173
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
174
+ 'visible' => TRUE,
175
+ 'required' => FALSE,
176
+ 'user_defined' => TRUE,
177
+ 'searchable' => FALSE,
178
+ 'filterable' => FALSE,
179
+ 'comparable' => FALSE,
180
+ 'visible_on_front' => FALSE,
181
+ 'unique' => FALSE,
182
+ 'apply_to' => 'simple,configurable,bundle,grouped',
183
+ 'is_configurable' => FALSE,
184
+ ));
185
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
186
+ 'group' => 'Clipgenerator',
187
+ 'input' => 'text',
188
+ 'type' => 'varchar',
189
+ 'label' => 'Video ID',
190
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
191
+ 'visible' => TRUE,
192
+ 'required' => FALSE,
193
+ 'user_defined' => TRUE,
194
+ 'searchable' => FALSE,
195
+ 'filterable' => FALSE,
196
+ 'comparable' => FALSE,
197
+ 'visible_on_front' => FALSE,
198
+ 'unique' => FALSE,
199
+ 'apply_to' => 'simple,configurable,bundle,grouped',
200
+ 'is_configurable' => FALSE,
201
+ ));
202
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.7.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.6
17
+ * @since File available since Release 1.0.6
18
+ */
19
+ /**
20
+ * Creates all necessary product attributes.
21
+ */
22
+ $installer = $this;
23
+ $installer->startSetup();
24
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
25
+ 'group' => 'Clipgenerator',
26
+ 'input' => 'text',
27
+ 'type' => 'varchar',
28
+ 'label' => 'Video Titel',
29
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
30
+ 'visible' => TRUE,
31
+ 'required' => FALSE,
32
+ 'user_defined' => TRUE,
33
+ 'searchable' => FALSE,
34
+ 'filterable' => FALSE,
35
+ 'comparable' => FALSE,
36
+ 'visible_on_front' => FALSE,
37
+ 'unique' => FALSE,
38
+ 'apply_to' => 'simple,configurable,bundle,grouped',
39
+ 'is_configurable' => FALSE,
40
+ ));
41
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
42
+ 'group' => 'Clipgenerator',
43
+ 'input' => 'textarea',
44
+ 'type' => 'varchar',
45
+ 'label' => 'Beschreibung',
46
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
47
+ 'visible' => TRUE,
48
+ 'required' => FALSE,
49
+ 'user_defined' => TRUE,
50
+ 'searchable' => FALSE,
51
+ 'filterable' => FALSE,
52
+ 'comparable' => FALSE,
53
+ 'visible_on_front' => FALSE,
54
+ 'unique' => FALSE,
55
+ 'apply_to' => 'simple,configurable,bundle,grouped',
56
+ 'is_configurable' => FALSE,
57
+ ));
58
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
59
+ 'group' => 'Clipgenerator',
60
+ 'input' => 'text',
61
+ 'type' => 'varchar',
62
+ 'label' => 'Video Keywords',
63
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
64
+ 'visible' => TRUE,
65
+ 'required' => FALSE,
66
+ 'user_defined' => TRUE,
67
+ 'searchable' => FALSE,
68
+ 'filterable' => FALSE,
69
+ 'comparable' => FALSE,
70
+ 'visible_on_front' => FALSE,
71
+ 'unique' => FALSE,
72
+ 'apply_to' => 'simple,configurable,bundle,grouped',
73
+ 'is_configurable' => FALSE,
74
+ ));
75
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
76
+ 'group' => 'Clipgenerator',
77
+ 'input' => 'text',
78
+ 'type' => 'varchar',
79
+ 'label' => 'Video Logo URL',
80
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
81
+ 'visible' => TRUE,
82
+ 'required' => FALSE,
83
+ 'user_defined' => TRUE,
84
+ 'searchable' => FALSE,
85
+ 'filterable' => FALSE,
86
+ 'comparable' => FALSE,
87
+ 'visible_on_front' => FALSE,
88
+ 'unique' => FALSE,
89
+ 'apply_to' => 'simple,configurable,bundle,grouped',
90
+ 'is_configurable' => FALSE,
91
+ ));
92
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
93
+ 'group' => 'Clipgenerator',
94
+ 'input' => 'boolean',
95
+ 'type' => 'int',
96
+ 'default' => 0,
97
+ 'label' => 'Video ausgeben',
98
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
99
+ 'visible' => TRUE,
100
+ 'required' => FALSE,
101
+ 'user_defined' => TRUE,
102
+ 'searchable' => FALSE,
103
+ 'filterable' => FALSE,
104
+ 'comparable' => FALSE,
105
+ 'visible_on_front' => FALSE,
106
+ 'unique' => FALSE,
107
+ 'apply_to' => 'simple,configurable,bundle,grouped',
108
+ 'is_configurable' => FALSE,
109
+ ));
110
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
111
+ 'group' => 'Clipgenerator',
112
+ 'input' => 'select',
113
+ 'type' => 'varchar',
114
+ 'label' => 'Design',
115
+ 'source' => 'trivid_clipgenerator_model_source_designs',
116
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
117
+ 'visible' => TRUE,
118
+ 'required' => FALSE,
119
+ 'user_defined' => TRUE,
120
+ 'searchable' => FALSE,
121
+ 'filterable' => FALSE,
122
+ 'comparable' => FALSE,
123
+ 'visible_on_front' => FALSE,
124
+ 'unique' => FALSE,
125
+ 'apply_to' => 'simple,configurable,bundle,grouped',
126
+ 'is_configurable' => FALSE,
127
+ ));
128
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
129
+ 'group' => 'Clipgenerator',
130
+ 'type' => 'text',
131
+ 'input' => 'text',
132
+ 'backend' => '',
133
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
134
+ 'label' => 'Bildauswahl',
135
+ 'class' => '',
136
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
137
+ 'visible' => TRUE,
138
+ 'required' => FALSE,
139
+ 'user_defined' => TRUE,
140
+ 'searchable' => FALSE,
141
+ 'filterable' => FALSE,
142
+ 'comparable' => FALSE,
143
+ 'visible_on_front' => FALSE,
144
+ 'unique' => FALSE,
145
+ 'apply_to' => 'simple,configurable,bundle,grouped',
146
+ 'is_configurable' => FALSE,
147
+ ));
148
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
149
+ 'group' => 'Clipgenerator',
150
+ 'input' => 'select',
151
+ 'type' => 'varchar',
152
+ 'label' => 'Musik',
153
+ 'source' => 'trivid_clipgenerator_model_source_musics',
154
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
155
+ 'visible' => TRUE,
156
+ 'required' => FALSE,
157
+ 'user_defined' => TRUE,
158
+ 'searchable' => FALSE,
159
+ 'filterable' => FALSE,
160
+ 'comparable' => FALSE,
161
+ 'visible_on_front' => FALSE,
162
+ 'unique' => FALSE,
163
+ 'apply_to' => 'simple,configurable,bundle,grouped',
164
+ 'is_configurable' => FALSE,
165
+ ));
166
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
167
+ 'group' => 'Clipgenerator',
168
+ 'type' => 'varchar',
169
+ 'backend' => '',
170
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
171
+ 'label' => 'erweiterte Auswahl',
172
+ 'class' => '',
173
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
174
+ 'visible' => TRUE,
175
+ 'required' => FALSE,
176
+ 'user_defined' => TRUE,
177
+ 'searchable' => FALSE,
178
+ 'filterable' => FALSE,
179
+ 'comparable' => FALSE,
180
+ 'visible_on_front' => FALSE,
181
+ 'unique' => FALSE,
182
+ 'apply_to' => 'simple,configurable,bundle,grouped',
183
+ 'is_configurable' => FALSE,
184
+ ));
185
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
186
+ 'group' => 'Clipgenerator',
187
+ 'input' => 'text',
188
+ 'type' => 'varchar',
189
+ 'label' => 'Video ID',
190
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
191
+ 'visible' => TRUE,
192
+ 'required' => FALSE,
193
+ 'user_defined' => TRUE,
194
+ 'searchable' => FALSE,
195
+ 'filterable' => FALSE,
196
+ 'comparable' => FALSE,
197
+ 'visible_on_front' => FALSE,
198
+ 'unique' => FALSE,
199
+ 'apply_to' => 'simple,configurable,bundle,grouped',
200
+ 'is_configurable' => FALSE,
201
+ ));
202
+ $installer->endSetup();
app/code/community/Trivid/Clipgenerator/sql/clipgenerator_setup/mysql4-install-1.0.8.php ADDED
@@ -0,0 +1,202 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Install Script
4
+ *
5
+ * PHP version 5
6
+ *
7
+ * LICENSE: is available through the world-wide-web at the following URI:
8
+ * http://www.clipgenerator.com/static/public/legal.php If you did not receive a copy of
9
+ * the Clipgenerator - End User License Agreement and are unable to obtain it through the web, please
10
+ * send a note to info@trivid.com so we can mail you a copy immediately.
11
+ *
12
+ * @package Trivid
13
+ * @author Trivid GmbH <author@example.com>
14
+ * @copyright 2013 Trivid GmbH
15
+ * @license http://www.clipgenerator.com/static/public/legal.php Clipgenerator - End User License Agreement
16
+ * @version 1.0.6
17
+ * @since File available since Release 1.0.6
18
+ */
19
+ /**
20
+ * Creates all necessary product attributes.
21
+ */
22
+ $installer = $this;
23
+ $installer->startSetup();
24
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_title', array(
25
+ 'group' => 'Clipgenerator',
26
+ 'input' => 'text',
27
+ 'type' => 'varchar',
28
+ 'label' => 'Video Titel',
29
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
30
+ 'visible' => TRUE,
31
+ 'required' => FALSE,
32
+ 'user_defined' => TRUE,
33
+ 'searchable' => FALSE,
34
+ 'filterable' => FALSE,
35
+ 'comparable' => FALSE,
36
+ 'visible_on_front' => FALSE,
37
+ 'unique' => FALSE,
38
+ 'apply_to' => 'simple,configurable,bundle,grouped',
39
+ 'is_configurable' => FALSE,
40
+ ));
41
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_description', array(
42
+ 'group' => 'Clipgenerator',
43
+ 'input' => 'textarea',
44
+ 'type' => 'varchar',
45
+ 'label' => 'Beschreibung',
46
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
47
+ 'visible' => TRUE,
48
+ 'required' => FALSE,
49
+ 'user_defined' => TRUE,
50
+ 'searchable' => FALSE,
51
+ 'filterable' => FALSE,
52
+ 'comparable' => FALSE,
53
+ 'visible_on_front' => FALSE,
54
+ 'unique' => FALSE,
55
+ 'apply_to' => 'simple,configurable,bundle,grouped',
56
+ 'is_configurable' => FALSE,
57
+ ));
58
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_keywords', array(
59
+ 'group' => 'Clipgenerator',
60
+ 'input' => 'text',
61
+ 'type' => 'varchar',
62
+ 'label' => 'Video Keywords',
63
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
64
+ 'visible' => TRUE,
65
+ 'required' => FALSE,
66
+ 'user_defined' => TRUE,
67
+ 'searchable' => FALSE,
68
+ 'filterable' => FALSE,
69
+ 'comparable' => FALSE,
70
+ 'visible_on_front' => FALSE,
71
+ 'unique' => FALSE,
72
+ 'apply_to' => 'simple,configurable,bundle,grouped',
73
+ 'is_configurable' => FALSE,
74
+ ));
75
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_logo', array(
76
+ 'group' => 'Clipgenerator',
77
+ 'input' => 'text',
78
+ 'type' => 'varchar',
79
+ 'label' => 'Video Logo URL',
80
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
81
+ 'visible' => TRUE,
82
+ 'required' => FALSE,
83
+ 'user_defined' => TRUE,
84
+ 'searchable' => FALSE,
85
+ 'filterable' => FALSE,
86
+ 'comparable' => FALSE,
87
+ 'visible_on_front' => FALSE,
88
+ 'unique' => FALSE,
89
+ 'apply_to' => 'simple,configurable,bundle,grouped',
90
+ 'is_configurable' => FALSE,
91
+ ));
92
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_show', array(
93
+ 'group' => 'Clipgenerator',
94
+ 'input' => 'boolean',
95
+ 'type' => 'int',
96
+ 'default' => 0,
97
+ 'label' => 'Video ausgeben',
98
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
99
+ 'visible' => TRUE,
100
+ 'required' => FALSE,
101
+ 'user_defined' => TRUE,
102
+ 'searchable' => FALSE,
103
+ 'filterable' => FALSE,
104
+ 'comparable' => FALSE,
105
+ 'visible_on_front' => FALSE,
106
+ 'unique' => FALSE,
107
+ 'apply_to' => 'simple,configurable,bundle,grouped',
108
+ 'is_configurable' => FALSE,
109
+ ));
110
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_design', array(
111
+ 'group' => 'Clipgenerator',
112
+ 'input' => 'select',
113
+ 'type' => 'varchar',
114
+ 'label' => 'Design',
115
+ 'source' => 'trivid_clipgenerator_model_source_designs',
116
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
117
+ 'visible' => TRUE,
118
+ 'required' => FALSE,
119
+ 'user_defined' => TRUE,
120
+ 'searchable' => FALSE,
121
+ 'filterable' => FALSE,
122
+ 'comparable' => FALSE,
123
+ 'visible_on_front' => FALSE,
124
+ 'unique' => FALSE,
125
+ 'apply_to' => 'simple,configurable,bundle,grouped',
126
+ 'is_configurable' => FALSE,
127
+ ));
128
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_images_select', array(
129
+ 'group' => 'Clipgenerator',
130
+ 'type' => 'text',
131
+ 'input' => 'text',
132
+ 'backend' => '',
133
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_images', //definition of renderer
134
+ 'label' => 'Bildauswahl',
135
+ 'class' => '',
136
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
137
+ 'visible' => TRUE,
138
+ 'required' => FALSE,
139
+ 'user_defined' => TRUE,
140
+ 'searchable' => FALSE,
141
+ 'filterable' => FALSE,
142
+ 'comparable' => FALSE,
143
+ 'visible_on_front' => FALSE,
144
+ 'unique' => FALSE,
145
+ 'apply_to' => 'simple,configurable,bundle,grouped',
146
+ 'is_configurable' => FALSE,
147
+ ));
148
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_song', array(
149
+ 'group' => 'Clipgenerator',
150
+ 'input' => 'select',
151
+ 'type' => 'varchar',
152
+ 'label' => 'Musik',
153
+ 'source' => 'trivid_clipgenerator_model_source_musics',
154
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
155
+ 'visible' => TRUE,
156
+ 'required' => FALSE,
157
+ 'user_defined' => TRUE,
158
+ 'searchable' => FALSE,
159
+ 'filterable' => FALSE,
160
+ 'comparable' => FALSE,
161
+ 'visible_on_front' => FALSE,
162
+ 'unique' => FALSE,
163
+ 'apply_to' => 'simple,configurable,bundle,grouped',
164
+ 'is_configurable' => FALSE,
165
+ ));
166
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_music_select', array(
167
+ 'group' => 'Clipgenerator',
168
+ 'type' => 'varchar',
169
+ 'backend' => '',
170
+ 'input_renderer' => 'clipgenerator/catalog_product_helper_form_music', //definition of renderer
171
+ 'label' => 'erweiterte Auswahl',
172
+ 'class' => '',
173
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
174
+ 'visible' => TRUE,
175
+ 'required' => FALSE,
176
+ 'user_defined' => TRUE,
177
+ 'searchable' => FALSE,
178
+ 'filterable' => FALSE,
179
+ 'comparable' => FALSE,
180
+ 'visible_on_front' => FALSE,
181
+ 'unique' => FALSE,
182
+ 'apply_to' => 'simple,configurable,bundle,grouped',
183
+ 'is_configurable' => FALSE,
184
+ ));
185
+ $installer->addAttribute(Mage_Catalog_Model_Product::ENTITY, 'clipgenerator_video_id', array(
186
+ 'group' => 'Clipgenerator',
187
+ 'input' => 'text',
188
+ 'type' => 'varchar',
189
+ 'label' => 'Video ID',
190
+ 'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
191
+ 'visible' => TRUE,
192
+ 'required' => FALSE,
193
+ 'user_defined' => TRUE,
194
+ 'searchable' => FALSE,
195
+ 'filterable' => FALSE,
196
+ 'comparable' => FALSE,
197
+ 'visible_on_front' => FALSE,
198
+ 'unique' => FALSE,
199
+ 'apply_to' => 'simple,configurable,bundle,grouped',
200
+ 'is_configurable' => FALSE,
201
+ ));
202
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/clipgenerator.xml ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <clipgenerator_adminhtml_orderform_index>
4
+ <update handle="clipgenerator_ordeform_index"/>
5
+ <reference name="content">
6
+ <block type="adminhtml/template" name="orderform"
7
+ template="clipgenerator/orderform.phtml"/>
8
+ </reference>
9
+ </clipgenerator_adminhtml_orderform_index>
10
+ </layout>
app/design/adminhtml/default/default/template/clipgenerator/contingent.phtml ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php $user = Mage::helper('clipgenerator')->getUser(); ?>
2
+ <?php if($user): ?>
3
+ <div>
4
+ <label><?= Mage::helper('clipgenerator')->__('Verfügbare Video Slots') ?>
5
+ :</label>
6
+ <?= (int)$user['freeVideoSlots'] . " von " . (int)$user['availableVideoSlots'] ?>
7
+ </div>
8
+ <div>
9
+ <label><?= Mage::helper('clipgenerator')->__('Verfügbare Video Downloads') ?>
10
+ :</label>
11
+ <?php if ($user['renderJobsLeft']): ?>
12
+ <?= $user['renderJobsLeft'] ?>
13
+ <?php else: ?>
14
+ <?= Mage::helper('clipgenerator')->__('keine verfügbar') ?>
15
+ <?php endif; ?>
16
+ </div>
17
+ <?php else: ?>
18
+ <div>
19
+ <a href="<?=Mage::helper("adminhtml")->getUrl("clipgenerator/adminhtml_orderform/index");?>"><?=Mage::helper('clipgenerator')->__('Bestellen Sie sich jetzt Ihr Videopaket!')?></a>
20
+ </div>
21
+ <?php endif; ?>
22
+ <script type="text/javascript" src="/js/jscolor/jscolor.js"></script>
23
+ <script type="text/javascript">
24
+ document.observe('dom:loaded', function () {
25
+ var myPicker = new jscolor.color(document.getElementById('clipgenerator_settings_clipgenerator_player_bgcolor'), {});
26
+ });
27
+ </script>
app/design/adminhtml/default/default/template/clipgenerator/images.phtml ADDED
@@ -0,0 +1,108 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style type="text/css">
2
+ #picchooser {
3
+ width: 600px;
4
+ overflow: scroll;
5
+ height: 110px;
6
+ border: 4px solid #e5e5e5;
7
+ }
8
+
9
+ .url, .hidden {
10
+ display: none;
11
+ }
12
+
13
+ #picchooser div {
14
+ display: inline;
15
+ position:relative;
16
+ }
17
+ .pic { border:3px solid #fff; }
18
+ .pico { border:3px solid #999; }
19
+ .nr { position:absolute; top:-55px; left:55px; font-size:30px; }
20
+ </style>
21
+ <?php
22
+ $_product = Mage::registry('current_product');
23
+ $_images = $_product->getMediaGalleryImages();
24
+ $selected = $_product->getData('clipgenerator_images_select');
25
+ $selArr = explode(';', trim($selected, ';'));
26
+ ?>
27
+
28
+ <?php if ($_images): ?>
29
+ <div id="picchooser">
30
+ <?php foreach ($_images as $_image): ?>
31
+ <?php $pos = array_search($_image->getUrl(), $selArr); ?>
32
+ <div>
33
+ <span class="nr">
34
+ <?php if($pos !== false): ?>
35
+ <?=$pos+1?>
36
+ <?php endif; ?>
37
+ </span>
38
+ <?php if (strstr($selected, $_image->getUrl())): ?>
39
+ <img class="pico" src="<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail', $_image->getFile())->resize(80, 80); ?>" />
40
+ <?php else: ?>
41
+ <img class="pic" src="<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail', $_image->getFile())->resize(80, 80); ?>" />
42
+ <?php endif; ?>
43
+ <span class="url"><?= $_image->getUrl() ?></span>
44
+ </div>
45
+ <?php endforeach; ?>
46
+ </div>
47
+ <?php else: ?>
48
+ <?= Mage::helper('clipgenerator')->__('Bitte laden Sie zuerst Bilder hoch.'); ?>
49
+ <?php endif; ?>
50
+
51
+ <script type="text/javascript">
52
+ var title = "<?= str_replace('"', '\'', $_product->getName()) ?>";
53
+ var description = <?= json_encode(str_replace('"', '\'', strip_tags($_product->getDescription()))) ?>;
54
+ var keywords = <?= json_encode(str_replace(array("\r\n", "\r", "\n"), " ", $_product->getMetaKeyword())) ?>;
55
+ var vTitle = "<?=$_product->getData('clipgenerator_title')?>";
56
+ var vDesc = <?= json_encode($_product->getData('clipgenerator_description')) ?>;
57
+ var vKey = "<?= $_product->getData('clipgenerator_keywords')?>";
58
+ $('clipgenerator_images_select').addClassName('hidden');
59
+ document.observe('dom:loaded', function () {
60
+ if(title != '' && !vTitle) {
61
+ $('clipgenerator_title').writeAttribute('value', title);
62
+ }
63
+ if(description != '' && !vDesc) {
64
+ $('clipgenerator_description').innerHTML = description;
65
+ }
66
+ if(keywords != '' && !vKey) {
67
+ $('clipgenerator_keywords').writeAttribute('value', keywords);
68
+ }
69
+ $('clipgenerator_video_id').up().up().hide();
70
+ $$('.pico').each(function (el) {
71
+ el.setOpacity(0.5);
72
+ });
73
+ $('picchooser').observe('click', function (event) {
74
+ pic = Event.element(event);
75
+ if (pic.readAttribute('class') == 'pic') {
76
+ pic.setOpacity(0.5);
77
+ pic.addClassName('pico');
78
+ pic.removeClassName('pic');
79
+ addUrl = ';' + pic.up().select('.url')[0].innerHTML;
80
+ $('clipgenerator_images_select').writeAttribute('value', $('clipgenerator_images_select').readAttribute('value') + addUrl);
81
+ reCount();
82
+ } else if (pic.readAttribute('class') == 'pico') {
83
+ pic.addClassName('pic');
84
+ pic.removeClassName('pico');
85
+ pic.setOpacity(1);
86
+ rmUrl = ';' + pic.up().select('.url')[0].innerHTML;
87
+ $('clipgenerator_images_select').writeAttribute('value', $('clipgenerator_images_select').readAttribute('value').replace(rmUrl, ''));
88
+ pic.up().select('.nr')[0].innerHTML = '';
89
+ reCount();
90
+ }
91
+ });
92
+ });
93
+
94
+ function reCount() {
95
+ var arrImg = $('clipgenerator_images_select').readAttribute('value').split(';');
96
+ counter = 0;
97
+ arrImg.each(function(el) {
98
+ if(el) {
99
+ $$('.url').each(function(nel) {
100
+ if(nel.innerHTML == el) {
101
+ counter = counter + 1;
102
+ nel.up().select('.nr')[0].innerHTML = counter;
103
+ }
104
+ });
105
+ }
106
+ });
107
+ }
108
+ </script>
app/design/adminhtml/default/default/template/clipgenerator/music.phtml ADDED
@@ -0,0 +1,243 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <script type="text/javascript" src="/js/scriptaculous/sound.js"></script>
2
+ <?php
3
+ $clipgen = Mage::helper('clipgenerator');
4
+ $music = $clipgen->getMusic();
5
+ ?>
6
+ <style type="text/css">
7
+ #musicchoose {
8
+ width: 608px;
9
+ }
10
+
11
+ #songs {
12
+ width: 608px;
13
+ height: 300px;
14
+ overflow: scroll;
15
+ background-color: #d3d3d3;
16
+ }
17
+
18
+ #songs div {
19
+ width: 275px;
20
+ float: left;
21
+ padding: 5px;
22
+ margin: 5px;
23
+ background-color: #ffffff;
24
+ height: 50px;
25
+ }
26
+
27
+ #songs div img {
28
+ width: 50px;
29
+ height: 50px;
30
+ float: left;
31
+ padding-right: 5px;
32
+ }
33
+
34
+ #select li {
35
+ display: block;
36
+ float: left;
37
+ width: 116px;
38
+ text-align: center;
39
+ margin: 0;
40
+ padding: 2px 0;
41
+ color: #666;
42
+ font-weight: bold;
43
+ border: 1px solid #d3d3d3;
44
+ }
45
+
46
+ .clear {
47
+ width: 100%;
48
+ clear: both;
49
+ height: 0px;
50
+ }
51
+
52
+ .choosesong {
53
+ cursor: pointer;
54
+ }
55
+
56
+ #songs .actsong {
57
+ color: #ffffff;
58
+ background-color: #999;
59
+ }
60
+
61
+ #contentmusic {
62
+ position: relative;
63
+ }
64
+
65
+ #musicleftmenu {
66
+ position: absolute;
67
+ left: -202px;
68
+ top: 0;
69
+ height: 298px;
70
+ width: 200px;
71
+ border: 1px solid #d3d3d3;
72
+ overflow: scroll;
73
+ }
74
+
75
+ #musicleftmenu li {
76
+ padding: 4px 10px;
77
+ color: #666;
78
+ font-weight: bold;
79
+ }
80
+
81
+ #select li:hover, #select li.act, #musicleftmenu li.act, #musicleftmenu li:hover {
82
+ cursor: pointer;
83
+ background-color: #d3d3d3;
84
+ color: #fff;
85
+ }
86
+
87
+ .control {
88
+ float: right;
89
+ display: none;
90
+ }
91
+
92
+ .actsong .control {
93
+ display: inline;
94
+ }
95
+
96
+ .cprev {
97
+ display: none;
98
+ }
99
+
100
+ .hidden {
101
+ display: none;
102
+ }
103
+ </style>
104
+ <span><?= $clipgen->__('für die Preview ist der Quicktime Player erforderlich') ?></span>
105
+ <div id="musicchoose">
106
+ <ul id="select">
107
+ <li class="genres"><?= $clipgen->__('Genre') ?></li>
108
+ <li class="moods"><?= $clipgen->__('Mood') ?></li>
109
+ <li class="speeds"><?= $clipgen->__('Speed') ?></li>
110
+ <li class="themes"><?= $clipgen->__('Theme') ?></li>
111
+ </ul>
112
+ <div class="clear">&nbsp;</div>
113
+ <div id="contentmusic">
114
+ <ul id="musicleftmenu">
115
+ <li class="act"><?= $clipgen->__('Alle') ?></li>
116
+ </ul>
117
+ <div id="songs">
118
+
119
+ </div>
120
+ </div>
121
+ </div>
122
+ <pre>
123
+ </pre>
124
+ <?php
125
+ $_product = Mage::registry('current_product');
126
+ $video = $_product->getData('clipgenerator_video_id');
127
+ $html = '<iframe id="clipgeneratorvideo" style="width:400px; height:300px; border:0px none;" src="http://data.clipgenerator.com/player/v3/Player.swf?autoplay=off&webcartURL=http%3A%2F%2Fcg-v3.clipgenerator.com%2FgetWebcart%3FvideoId%3D' . $video . '"></iframe>';
128
+ ?>
129
+ <?php if($video): ?>
130
+ <div class="preview">
131
+ <br /><br />
132
+ <label>Video Embed Code:</label> <textarea style="height:60px;"><?=$html?></textarea>
133
+ <label>Preview:</label><br />
134
+ <?=$html?>
135
+ </div>
136
+ <?php endif; ?>
137
+ <script type="text/javascript">
138
+ // music storage
139
+ var storage = <?=json_encode($music)?>;
140
+ var currentTab = 'genres';
141
+ var controlStart = 'play';
142
+ var controlStop = 'stop';
143
+
144
+ function songTimeFormat(seconds) {
145
+ var minutes = ((seconds / 60) + "").split('.');
146
+ var sec = seconds % 60;
147
+ if (sec < 10) {
148
+ sec = "0" + sec;
149
+ }
150
+ return minutes[0] + ":" + sec;
151
+ }
152
+
153
+ function addSong(song) {
154
+ $('songs').insert('<div class="choosesong"><img src="' + song['cover'] + '" /><strong class="title">' + song['title'] + '</strong><br/>' + song['label'] + '<br/> Dauer: ' + songTimeFormat(song['length']) + '<span class="control">play</span><span class="cprev">' + song['previewUrl'] + '</span></div>');
155
+ }
156
+
157
+ storage['songs'].each(function (song) {
158
+ addSong(song);
159
+ });
160
+
161
+ function findProp(arr, id) {
162
+ var found = false;
163
+ arr.some(function (e) {
164
+ if (e == id) {
165
+ found = true;
166
+ return true;
167
+ }
168
+ });
169
+ return found;
170
+ }
171
+
172
+ document.observe('dom:loaded', function () {
173
+ if($('clipgenerator_music_select')) {
174
+ $('clipgenerator_music_select').addClassName('hidden');
175
+ }
176
+ $('select').observe('click', function (event) {
177
+ var load = Event.element(event).readAttribute('class');
178
+ $$('#select li').invoke('removeClassName', 'act');
179
+ Event.element(event).addClassName('act');
180
+ currentTab = load;
181
+ if (storage[load].length != 0) {
182
+ // clear lists
183
+ $('musicleftmenu').update('');
184
+ if(load == 'speeds') {
185
+ $H(storage[load]).each(function (el, index) {
186
+ $('musicleftmenu').insert('<li class="' + el[0] + '">' + el[1] + '</li>');
187
+ });
188
+ } else {
189
+ storage[load].each(function (el) {
190
+ $('musicleftmenu').insert('<li class="' + el['id'] + '">' + el['title'] + '</li>');
191
+ });
192
+ }
193
+ }
194
+ });
195
+ $('musicleftmenu').observe('click', function (event) {
196
+ id = Event.element(event).readAttribute('class');
197
+ $$('#musicleftmenu li').invoke('removeClassName', 'act');
198
+ Event.element(event).addClassName('act');
199
+ if (storage[currentTab].length != 0) {
200
+ $('songs').update('');
201
+ storage['songs'].each(function (song) {
202
+ if (findProp(song[currentTab], id)) {
203
+ addSong(song);
204
+ }
205
+ });
206
+ }
207
+ });
208
+
209
+ $('songs').observe('click', function (event) {
210
+ classEl = Event.element(event).readAttribute('class');
211
+ if (classEl == 'choosesong') {
212
+ $$('.actsong').invoke('removeClassName', 'actsong');
213
+ Event.element(event).addClassName('actsong');
214
+ var elArr = Event.element(event).childElements();
215
+ var findString = elArr[1].innerHTML;
216
+ $$('#clipgenerator_settings_clipgenerator_song option, #clipgenerator_song option').each(function (el) {
217
+ if (findString == el.innerHTML) {
218
+ el.selected = true;
219
+ } else {
220
+ el.selected = false;
221
+ }
222
+ });
223
+ Sound.enable();
224
+ Sound.play('', {replace: true});
225
+ Sound.disable();
226
+ } else if (classEl == 'control') {
227
+ if (Event.element(event).innerHTML == controlStop) {
228
+ $$('.control').invoke('update', controlStart);
229
+ Sound.enable();
230
+ Sound.play('', {replace: true});
231
+ Sound.disable();
232
+ } else {
233
+ $$('.control').invoke('update', controlStart);
234
+ Event.element(event).update(controlStop);
235
+ myEl = Event.element(event);
236
+ var els = myEl.up().select('.cprev');
237
+ Sound.enable();
238
+ Sound.play(els[0].innerHTML, {replace: true});
239
+ }
240
+ }
241
+ });
242
+ });
243
+ </script>
app/design/adminhtml/default/default/template/clipgenerator/orderform.phtml ADDED
@@ -0,0 +1,288 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style type="text/css">
2
+ .clipform {
3
+ width: 750px;
4
+ }
5
+
6
+ .cols3, .cols4 {
7
+ width: 640px;
8
+ font-family: Verdana;
9
+ }
10
+
11
+ .clipform h1 {
12
+ font-size: 17px;
13
+ }
14
+
15
+ .clipform h2 {
16
+ font-size: 16px;
17
+ }
18
+
19
+ .cols3 .col {
20
+ width: 200px;
21
+ float: left;
22
+ margin-right: 10px;
23
+ text-align: center;
24
+ }
25
+
26
+ .cols4 .col {
27
+ width: 150px;
28
+ float: left;
29
+ margin-right: 10px;
30
+ text-align: center;
31
+ font-size:10px;
32
+ }
33
+
34
+ .cols3 .col div, .cols4 .col div {
35
+ border: 1px solid #000;
36
+ }
37
+
38
+ .clear {
39
+ width: 100%;
40
+ height: 1px;
41
+ clear: both;
42
+ }
43
+
44
+ .logotrivid {
45
+ float: left;
46
+ margin: 40px 20px 0 0;
47
+ }
48
+
49
+ .welcome {
50
+ float: left;
51
+ width: 500px;
52
+ }
53
+
54
+ .inwrap {
55
+ margin: 10px 0 20px 20px;
56
+ }
57
+
58
+ .mdown {
59
+ margin-bottom: 18px;
60
+ }
61
+ .centerwrap {
62
+ text-align: center;
63
+ }
64
+ .centerwrap .clipform {
65
+ margin:0 auto;
66
+ text-align: left;
67
+ padding:0 10px;
68
+ }
69
+ .price {
70
+ font-size:16px;
71
+ font-weight:bold;
72
+ }
73
+ label {
74
+ font-size: 11px;
75
+ }
76
+ #alert { display:none; border:1px solid #ff0000; background-color:#FFB6C1; margin:20px 0 10px 0; padding:5px; }
77
+ </style>
78
+ <div class="centerwrap">
79
+ <div class="clipform">
80
+ <div>
81
+ <img class="logotrivid" src="http://www.trivid.jp/wp-content/uploads/2013/02/trivid_logo.png"
82
+ title="Trivid GmbH" alt="Trivid GmbH" />
83
+
84
+ <div class="welcome">
85
+ <h1>Sehr geehrter Shop-Betreiber,</h1>
86
+ vielen Dank für Ihr Interesse an der Clipgenerator<sup>TM</sup> simpleCOMMERCE Video-Lösung für Magento. Um Clipgenerator<sup>TM</sup> für Ihren Shop nutzen zu können, benötigen Sie einen API-Zugang den Sie nachfolgend kostenpflichtig bestellen können. Direkt im Anschluss an die Bestellung erhalten Sie von uns einen temporären API-Zugang, damit Sie sofort loslegen können.
87
+ Die Rechnungsstellung erfolgt innerhalb von 2-3 Werktagen per E-Mail an die angegebene E-Mail-Adresse.
88
+ </div>
89
+ </div>
90
+ <div class="clear mdown">&nbsp;</div>
91
+ <form action="http://magento.clipgenerator.com/" method="POST" id="orderf">
92
+ <ol>
93
+ <li>
94
+ <h2>1. Paket auswählen</h2>
95
+
96
+ <div class="inwrap">
97
+ <div class="cols4">
98
+ <div class="col">
99
+ <div>
100
+ <strong>simpleCOMMERCE 150</strong><br />
101
+ für insgesamt 150 Produktvideos<br />
102
+ <span class="price">39 EUR</span><br />
103
+ /Monat
104
+ </div>
105
+ <input type="radio" name="editor-package" value="Magento-video-150" /> <label>simpleCOMMERCE
106
+ 150</label>
107
+ </div>
108
+ <div class="col">
109
+ <div>
110
+ <strong>simpleCOMMERCE 300</strong><br />
111
+ für insgesamt 300 Produktvideos<br />
112
+ <span class="price">59 EUR</span><br />
113
+ /Monat
114
+ </div>
115
+ <input type="radio" name="editor-package" value="Magento-video-300" /> <label>simpleCOMMERCE
116
+ 300</label>
117
+ </div>
118
+ <div class="col">
119
+ <div>
120
+ <strong>simpleCOMMERCE 750</strong><br />
121
+ für insgesamt 750 Produktvideos<br />
122
+ <span class="price">139 EUR</span><br />
123
+ /Monat
124
+ </div>
125
+ <input type="radio" name="editor-package" value="Magento-video-750" /> <label>simpleCOMMERCE
126
+ 750</label>
127
+ </div>
128
+ <div class="col">
129
+ <div>
130
+ <strong>simpleCOMMERCE 1500</strong><br />
131
+ für insgesamt 1500 Produktvideos<br />
132
+ <span class="price">289 EUR</span><br />
133
+ /Monat
134
+ </div>
135
+ <input type="radio" name="editor-package" value="Magento-video-1500" /> <label>simpleCOMMERCE
136
+ 1500</label>
137
+ </div>
138
+ </div>
139
+ <div class="clear">&nbsp;</div>
140
+ <br />
141
+
142
+ <h2>In jedem Paket enthalten:</h2>
143
+ <ul>
144
+ <li>unbegrenzte Aktualisierung und Synchronisierung von Videos bei jeder Änderung</li>
145
+ <li>unbegrenzte Anzahl Aufrufe Produkt-Videos</li>
146
+ <li>nklusive Video-Hosting & Video-Streaming</li>
147
+ <li>zusätzlich statische Video-Dateien in allen Formaten</li>
148
+ <li>hohe Video-Qualität und Video-Player mit vielen Funktionen</li>
149
+ <li>wechselnde Video-Designs</li>
150
+ <li>150 Musik-Titel, voll lizensiert und abwechselnd unterlegt</li>
151
+ <li>Suchmaschinen-Optimierung (SEO) durch dynamische Sitemaps, Thumbnails, Titel und Keywords</li>
152
+ <li>Video-Ausgabe-Format als url, embed code oder Player mit Share-Funktionen für Social-Media</li>
153
+ </ul>
154
+ </div>
155
+ </li>
156
+ <li>
157
+ <h2>2. Optional: Download-Pakete</h2>
158
+
159
+ <div class="inwrap">
160
+ Damit Sie die erstellten, immer aktuellen Produkt-Videos auch an anderer Stelle verwenden können, bieten wir den Download als Video-Datei an (mp4-Format). Ausgewählte Produkt-Videos können Sie somit auch offline verwenden (z.B. für Präsentationen am POS) oder außerhalb Ihres Shops (z.B. auf YouTube oder anderen Verkaufs-oder Vergleichs-Portalen) veröffentlichen.
161
+ <div class="cols4">
162
+ <div class="col">
163
+ <div>
164
+ <br/>keine Video Downloads bestellen<br/><span class="price">&nbsp;</span>
165
+ </div>
166
+ <input type="radio" name="downloads-package" value="" /> <label>ohne</label>
167
+ </div>
168
+ <div class="col">
169
+ <div>
170
+ <strong>30 Video Downloads</strong><br />
171
+ <span class="price">59 EUR</span><br />
172
+ Gesamtpreis<br />
173
+ (1,96 EUR / Video)
174
+ </div>
175
+ <input type="radio" name="downloads-package" value="Magento-downloads-30" /> <label>30 Video
176
+ Downloads</label>
177
+ </div>
178
+ <div class="col">
179
+ <div>
180
+ <strong>50 Video Downloads</strong><br />
181
+ <span class="price">79 EUR</span><br />
182
+ Gesamtpreis<br />
183
+ (1,58 EUR / Video)
184
+ </div>
185
+ <input type="radio" name="downloads-package" value="Magento-downloads-50" /> <label>50 Video
186
+ Downloads</label>
187
+ </div>
188
+ <div class="col">
189
+ <div>
190
+ <strong>100 Video Downloads</strong><br />
191
+ <span class="price">139 EUR</span><br />
192
+ Gesamtpreis<br />
193
+ (1,39 EUR / Video)
194
+ </div>
195
+ <input type="radio" name="downloads-package" value="Magento-downloads-100" /> <label>100 Video
196
+ Downloads</label>
197
+ </div>
198
+ </div>
199
+ <div class="clear">&nbsp;</div>
200
+ </div>
201
+ </li>
202
+ <li>
203
+ <h2>3. Ihre Angaben zur Bestellung</h2>
204
+
205
+ <div class="inwrap">
206
+ <div>
207
+ Bitte geben Sie nachfolgend die Rechnungsadresse ein, die für diese Bestellung verwendet werden soll.
208
+ </div>
209
+ <div id="alert">Bitte geben Sie alle Pflichtfelder an!</div>
210
+ <div>
211
+ <label>Name (Pflichtfeld)</label><br />
212
+ <input name="name" type="text" /><br />
213
+ <label>Firma (Pflichtfeld)</label><br />
214
+ <input name="company" type="text" /><br />
215
+ <label>USt-IdNr (Pflichtfeld)</label><br />
216
+ <input name="ust-idnr" type="text" /><br />
217
+ <label>Adresse (Pflichtfeld)</label><br />
218
+ <input name="address" type="text" /><br />
219
+ <label>PLZ, Ort (Pflichtfeld)</label><br />
220
+ <input name="city" type="text" /><br />
221
+ <label>E-Mail-Adresse (Pflichtfeld)</label><br />
222
+ <input name="email" id="mailfield" type="text" /><br />
223
+ <label>Telefon (Pflichtfeld)</label><br />
224
+ <input name="phone" type="text" /><br />
225
+ <label>Raum für Anmerkungen zu Ihrer
226
+ Bestellung</label><br />
227
+ <textarea name="message"></textarea><br />
228
+ <input type="checkbox" name="confirmation" /> Hiermit
229
+ bestätige ich die Bestellung.<br />
230
+ <button id="submit">Kostenpflichtig bestellen</button>
231
+ <br /><br />
232
+
233
+ <div>
234
+ <strong>Zahlungsbedingungen:</strong><br />
235
+ Die simpleCOMMERCE-Lizenz kann jederzeit mit einer Frist von 30 Tagen zum Monatsende gekündigt werden. Eine Erst-Laufzeit von mindestens 12 Monaten wird mit einem Basispreis/Flatrate im voraus für die Laufzeit erhoben per Rechnung erhoben. Zahlbar sofort nach Rechnungsstellung ohne Abzug.
236
+ Die simpleCOMMERCE- / Clipgenerator-Lösung beinhaltet die ausschließlichen, zeitlich unbegrenzten, internationalen Nutzungsrechte für Musik, Video-Effekte und Designs. Das automatisierte Video-Verfahren mit Clipgenerator ist patentiert und rechtlich geschützt. Das Nutzungsrecht geht erst nach vollständiger Bezahlung der Leistungen auf den Kunden über.
237
+ Es gelten unsere allgemeinen Geschäftsbedingungen, die Sie auf unserer Website unter “www.trivid.com/agb” abrufen können oder auf Nachfrage zugeschickt erhalten.
238
+ </div>
239
+ </div>
240
+ </div>
241
+ </li>
242
+ </ol>
243
+ </form>
244
+ </div>
245
+ </div>
246
+ <script src="http://code.jquery.com/jquery.js"></script>
247
+
248
+ <script type="text/javascript">
249
+ // send form
250
+ jQuery.noConflict();
251
+ var adminUrl = '<?=Mage::helper("adminhtml")->getUrl("clipgenerator/adminhtml_orderform/index");?>';
252
+ var successUrl = '<?=Mage::helper("adminhtml")->getUrl("adminhtml/system_config/edit/section/clipgenerator");?>';
253
+
254
+ jQuery('#submit').click(function(event) {
255
+ jQuery.ajax({
256
+ type: 'POST',
257
+ url: 'http://magento.clipgenerator.com/',
258
+ crossDomain: true,
259
+ data: jQuery('#orderf').serialize(),
260
+ dataType: 'json',
261
+ success: function (responseData, textStatus, jqXHR) {
262
+ if(responseData['apiId'] && responseData['apiUser'] && responseData['apiSecret']) {
263
+ jQuery.ajax({
264
+ type: 'POST',
265
+ crossDomain: true,
266
+ url: adminUrl,
267
+ data: {
268
+ 'form_key': '<?=Mage::getSingleton('core/session')->getFormKey();?>',
269
+ 'isAjax': true,
270
+ 'apiId': responseData['apiId'],
271
+ 'apiUser': responseData['apiUser'],
272
+ 'apiSecret': responseData['apiSecret'],
273
+ 'email': jQuery('#mailfield').val()
274
+ },
275
+ dataType: 'json',
276
+ success: function(result) {
277
+ window.location = successUrl;
278
+ }
279
+ });
280
+ }
281
+ },
282
+ error: function (responseData, textStatus, errorThrown) {
283
+ alert('Ein Fehler ist aufgetreten! Prüfen Sie Ihre Daten.');
284
+ }
285
+ });
286
+ event.preventDefault();
287
+ });
288
+ </script>
app/design/adminhtml/default/default/template/clipgenerator/orderform.phtml.orig ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style type="text/css">
2
+ .clipform {
3
+ width: 750px;
4
+ }
5
+
6
+ .cols3, .cols4 {
7
+ width: 640px;
8
+ font-family: Verdana;
9
+ }
10
+
11
+ .clipform h1 {
12
+ font-size: 17px;
13
+ }
14
+
15
+ .clipform h2 {
16
+ font-size: 16px;
17
+ }
18
+
19
+ .cols3 .col {
20
+ width: 200px;
21
+ float: left;
22
+ margin-right: 10px;
23
+ text-align: center;
24
+ }
25
+
26
+ .cols4 .col {
27
+ width: 150px;
28
+ float: left;
29
+ margin-right: 10px;
30
+ text-align: center;
31
+ font-size:10px;
32
+ }
33
+
34
+ .cols3 .col div, .cols4 .col div {
35
+ border: 1px solid #000;
36
+ }
37
+
38
+ .clear {
39
+ width: 100%;
40
+ height: 1px;
41
+ clear: both;
42
+ }
43
+
44
+ .logotrivid {
45
+ float: left;
46
+ margin: 40px 20px 0 0;
47
+ }
48
+
49
+ .welcome {
50
+ float: left;
51
+ width: 500px;
52
+ }
53
+
54
+ .inwrap {
55
+ margin: 10px 0 20px 20px;
56
+ }
57
+
58
+ .mdown {
59
+ margin-bottom: 18px;
60
+ }
61
+ .centerwrap {
62
+ text-align: center;
63
+ }
64
+ .centerwrap .clipform {
65
+ margin:0 auto;
66
+ text-align: left;
67
+ padding:0 10px;
68
+ }
69
+ .price {
70
+ font-size:16px;
71
+ font-weight:bold;
72
+ }
73
+ label {
74
+ font-size: 11px;
75
+ }
76
+ #alert { display:none; border:1px solid #ff0000; background-color:#FFB6C1; margin:20px 0 10px 0; padding:5px; }
77
+ </style>
78
+ <div class="centerwrap">
79
+ <div class="clipform">
80
+ <div>
81
+ <img class="logotrivid" src="http://www.trivid.jp/wp-content/uploads/2013/02/trivid_logo.png"
82
+ title="Trivid GmbH" alt="Trivid GmbH" />
83
+
84
+ <div class="welcome">
85
+ <h1>Sehr geehrter Shop-Betreiber,</h1>
86
+ vielen Dank für Ihr Interesse an der Clipgenerator<sup>TM</sup> simpleCOMMERCE Video-Lösung für Magento. Um Clipgenerator<sup>TM</sup> für Ihren Shop nutzen zu können, benötigen Sie einen API-Zugang den Sie nachfolgend kostenpflichtig bestellen können. Direkt im Anschluss an die Bestellung erhalten Sie von uns einen temporären API-Zugang, damit Sie sofort loslegen können.
87
+ Die Rechnungsstellung erfolgt innerhalb von 2-3 Werktagen per E-Mail an die angegebene E-Mail-Adresse.
88
+ </div>
89
+ </div>
90
+ <div class="clear mdown">&nbsp;</div>
91
+ <form action="http://magento.clipgenerator.com?isAjax=true" method="POST" id="orderform">
92
+ <ol>
93
+ <li>
94
+ <h2>1. Paket auswählen</h2>
95
+
96
+ <div class="inwrap">
97
+ <div class="cols4">
98
+ <div class="col">
99
+ <div>
100
+ <strong>simpleCOMMERCE 150</strong><br />
101
+ für insgesamt 150 Produktvideos<br />
102
+ <span class="price">39 EUR</span><br />
103
+ /Monat
104
+ </div>
105
+ <input type="radio" name="editor-package" value="Magento-video-150" /> <label>simpleCOMMERCE
106
+ 150</label>
107
+ </div>
108
+ <div class="col">
109
+ <div>
110
+ <strong>simpleCOMMERCE 300</strong><br />
111
+ für insgesamt 300 Produktvideos<br />
112
+ <span class="price">59 EUR</span><br />
113
+ /Monat
114
+ </div>
115
+ <input type="radio" name="editor-package" value="Magento-video-300" /> <label>simpleCOMMERCE
116
+ 300</label>
117
+ </div>
118
+ <div class="col">
119
+ <div>
120
+ <strong>simpleCOMMERCE 750</strong><br />
121
+ für insgesamt 750 Produktvideos<br />
122
+ <span class="price">139 EUR</span><br />
123
+ /Monat
124
+ </div>
125
+ <input type="radio" name="editor-package" value="Magento-video-750" /> <label>simpleCOMMERCE
126
+ 750</label>
127
+ </div>
128
+ <div class="col">
129
+ <div>
130
+ <strong>simpleCOMMERCE 1500</strong><br />
131
+ für insgesamt 1500 Produktvideos<br />
132
+ <span class="price">289 EUR</span><br />
133
+ /Monat
134
+ </div>
135
+ <input type="radio" name="editor-package" value="Magento-video-1500" /> <label>simpleCOMMERCE
136
+ 1500</label>
137
+ </div>
138
+ </div>
139
+ <div class="clear">&nbsp;</div>
140
+ <br />
141
+
142
+ <h2>In jedem Paket enthalten:</h2>
143
+ <ul>
144
+ <li>unbegrenzte Aktualisierung und Synchronisierung von Videos bei jeder Änderung</li>
145
+ <li>unbegrenzte Anzahl Aufrufe Produkt-Videos</li>
146
+ <li>nklusive Video-Hosting & Video-Streaming</li>
147
+ <li>zusätzlich statische Video-Dateien in allen Formaten</li>
148
+ <li>hohe Video-Qualität und Video-Player mit vielen Funktionen</li>
149
+ <li>wechselnde Video-Designs</li>
150
+ <li>150 Musik-Titel, voll lizensiert und abwechselnd unterlegt</li>
151
+ <li>Suchmaschinen-Optimierung (SEO) durch dynamische Sitemaps, Thumbnails, Titel und Keywords</li>
152
+ <li>Video-Ausgabe-Format als url, embed code oder Player mit Share-Funktionen für Social-Media</li>
153
+ </ul>
154
+ </div>
155
+ </li>
156
+ <li>
157
+ <h2>2. Optional: Download-Pakete</h2>
158
+
159
+ <div class="inwrap">
160
+ Damit Sie die erstellten, immer aktuellen Produkt-Videos auch an anderer Stelle verwenden können, bieten wir den Download als Video-Datei an (mp4-Format). Ausgewählte Produkt-Videos können Sie somit auch offline verwenden (z.B. für Präsentationen am POS) oder außerhalb Ihres Shops (z.B. auf YouTube oder anderen Verkaufs-oder Vergleichs-Portalen) veröffentlichen.
161
+ <div class="cols4">
162
+ <div class="col">
163
+ <div>
164
+ <br/>keine Video Downloads bestellen<br/><span class="price">&nbsp;</span>
165
+ </div>
166
+ <input type="radio" name="downloads-package" value="" /> <label>ohne</label>
167
+ </div>
168
+ <div class="col">
169
+ <div>
170
+ <strong>30 Video Downloads</strong><br />
171
+ <span class="price">59 EUR</span><br />
172
+ Gesamtpreis<br />
173
+ (1,96 EUR / Video)
174
+ </div>
175
+ <input type="radio" name="downloads-package" value="Magento-downloads-30" /> <label>30 Video
176
+ Downloads</label>
177
+ </div>
178
+ <div class="col">
179
+ <div>
180
+ <strong>50 Video Downloads</strong><br />
181
+ <span class="price">79 EUR</span><br />
182
+ Gesamtpreis<br />
183
+ (1,58 EUR / Video)
184
+ </div>
185
+ <input type="radio" name="downloads-package" value="Magento-downloads-50" /> <label>50 Video
186
+ Downloads</label>
187
+ </div>
188
+ <div class="col">
189
+ <div>
190
+ <strong>100 Video Downloads</strong><br />
191
+ <span class="price">139 EUR</span><br />
192
+ Gesamtpreis<br />
193
+ (1,39 EUR / Video)
194
+ </div>
195
+ <input type="radio" name="downloads-package" value="Magento-downloads-100" /> <label>100 Video
196
+ Downloads</label>
197
+ </div>
198
+ </div>
199
+ <div class="clear">&nbsp;</div>
200
+ </div>
201
+ </li>
202
+ <li>
203
+ <h2>3. Ihre Angaben zur Bestellung</h2>
204
+
205
+ <div class="inwrap">
206
+ <div>
207
+ Bitte geben Sie nachfolgend die Rechnungsadresse ein, die für diese Bestellung verwendet werden soll.
208
+ </div>
209
+ <div id="alert">Bitte geben Sie alle Pflichtfelder an!</div>
210
+ <div>
211
+ <label>Name (Pflichtfeld)</label><br />
212
+ <input name="name" type="text" /><br />
213
+ <label>Firma (optional)</label><br />
214
+ <input name="company" type="text" /><br />
215
+ <label>USt-IdNr (optional)</label><br />
216
+ <input name="ust-idnr" type="text" /><br />
217
+ <label>Adresse (Pflichtfeld)</label><br />
218
+ <input name="address" type="text" /><br />
219
+ <label>PLZ, Ort (Pflichtfeld)</label><br />
220
+ <input name="city" type="text" /><br />
221
+ <label>E-Mail-Adresse (Pflichtfeld)</label><br />
222
+ <input name="email" type="text" /><br />
223
+ <label>Telefon (Pflichtfeld)</label><br />
224
+ <input name="phone" type="text" /><br />
225
+ <label>Raum für Anmerkungen zu Ihrer
226
+ Bestellung</label><br />
227
+ <textarea name="message"></textarea><br />
228
+ <input type="checkbox" name="confirmation" /> Hiermit
229
+ bestätige ich die Bestellung.<br />
230
+ <button id="submit">Kostenpflichtig bestellen</button>
231
+ <br /><br />
232
+
233
+ <div>
234
+ <strong>Zahlungsbedingungen:</strong><br />
235
+ Die simpleCOMMERCE-Lizenz kann jederzeit mit einer Frist von 30 Tagen zum Monatsende gekündigt werden. Eine Erst-Laufzeit von mindestens 12 Monaten wird mit einem Basispreis/Flatrate im voraus für die Laufzeit erhoben per Rechnung erhoben. Zahlbar sofort nach Rechnungsstellung ohne Abzug.
236
+ Die simpleCOMMERCE- / Clipgenerator-Lösung beinhaltet die ausschließlichen, zeitlich unbegrenzten, internationalen Nutzungsrechte für Musik, Video-Effekte und Designs. Das automatisierte Video-Verfahren mit Clipgenerator ist patentiert und rechtlich geschützt. Das Nutzungsrecht geht erst nach vollständiger Bezahlung der Leistungen auf den Kunden über.
237
+ Es gelten unsere allgemeinen Geschäftsbedingungen, die Sie auf unserer Website unter “www.trivid.com/agb” abrufen können oder auf Nachfrage zugeschickt erhalten.
238
+ </div>
239
+ </div>
240
+ </div>
241
+ </li>
242
+ </ol>
243
+ </form>
244
+ </div>
245
+ </div>
246
+ <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
247
+ <script type="text/javascript">
248
+ // send form
249
+ var url = 'http://magento.clipgenerator.com/';
250
+ jQuery.noConflict();
251
+ jQuery('#submit').click(function(event) {
252
+ console.log(jQuery("#orderform").serialize());
253
+ jQuery.ajax({
254
+ type: "POST",
255
+ url: url,
256
+ data: jQuery("#orderform").serialize(), // serializes the form's elements.
257
+ error: function(data) {
258
+
259
+ },
260
+ success: function(data) {
261
+ console.log(data); // show response from the php script.
262
+ }
263
+ });
264
+ event.preventDefault();
265
+ });
266
+ /* $('submit').observe('click', function(event) {
267
+ $('form').request({
268
+ onComplete: function(response) {
269
+ console.log(response.status);
270
+ console.log(response.responseJSON);
271
+ },
272
+ onSuccess: function(response) {
273
+ console.log(response.status);
274
+ console.log(response.responseJSON);
275
+ }
276
+ });
277
+ //event.stop();
278
+ });*/
279
+ </script>
app/etc/modules/Trivid_Clipgenerator.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <Trivid_Clipgenerator>
5
+ <active>true</active>
6
+ <codePool>community</codePool>
7
+ </Trivid_Clipgenerator>
8
+ </modules>
9
+ </config>
app/locale/de_DE/Trivid_Clipgenerator.csv ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ "Genre","Genre"
2
+ "Mood","Stimmung"
3
+ "Instruments","Instrumente"
4
+ "Speed","Tempo"
5
+ "Theme","Thema"
6
+ "ATTENTION: All Clipgenerator settings in your products will be deleted.","ACHTUNG: alle Ihre Clipgenerator Einstellungen zu Produkten werden gelöscht!"
7
+ "Attributes installed.","Attribute erfolgreich installiert."
8
+ "Attributes uninstalled.","Attribute erfolgreich deinstalliert."
9
+ "Uninstall","Deinstallieren"
10
+ "Install","Installieren"
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>clipgenerator</name>
4
- <version>1.0.7</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.clipgenerator.com/static/public/legal.php">Clipgenerator - End User License Agreement</license>
7
  <channel>community</channel>
@@ -54,11 +54,11 @@
54
  &lt;h3&gt;Anleitung&lt;/h3&gt;&#xD;
55
  Eine Anleitung zur Nutzung des Clipgenerator&#x2122;-Plugin f&#xFC;r Magento k&#xF6;nnen Sie &lt;a href="http://www.trivid.com/wp-content/uploads/2013/10/clipgenerator-plugin-handbuch.pdf"&gt;hier&lt;/a&gt; herunterladen.</description>
56
  <notes>* Uninstall helper in configuration&#xD;
57
- * Version 1.0.7</notes>
58
  <authors><author><name>Trivid GmbH</name><user>trivid_gmbh</user><email>magento@clipgenerator.com</email></author></authors>
59
- <date>2014-02-27</date>
60
- <time>23:16:02</time>
61
- <contents><target name="magecommunity"><dir><dir name="Trivid"><dir name="Clipgenerator"><dir><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Uninstallhelper.php" hash="0f822bdaecb686fab023f95673d03213"/></dir></dir></dir></dir></dir></dir><dir name="etc"><file name="config.xml" hash="b1fa9c82895328ebf7a06c83c390cbe0"/></dir></dir></dir></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="clipgenerator"><file name="uninstall.phtml" hash="8884d93dfe102dc5ab4c8fc0c3059fa3"/></dir></dir><dir name="layout"><file name="clipgenerator.xml" hash=""/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir><dir name="de_DE"><file name="Trivid_Clipgenerator.csv" hash=""/></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Trivid_Clipgenerator.xml" hash=""/></dir></dir></target></contents>
62
  <compatible/>
63
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
64
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>clipgenerator</name>
4
+ <version>1.0.8</version>
5
  <stability>stable</stability>
6
  <license uri="http://www.clipgenerator.com/static/public/legal.php">Clipgenerator - End User License Agreement</license>
7
  <channel>community</channel>
54
  &lt;h3&gt;Anleitung&lt;/h3&gt;&#xD;
55
  Eine Anleitung zur Nutzung des Clipgenerator&#x2122;-Plugin f&#xFC;r Magento k&#xF6;nnen Sie &lt;a href="http://www.trivid.com/wp-content/uploads/2013/10/clipgenerator-plugin-handbuch.pdf"&gt;hier&lt;/a&gt; herunterladen.</description>
56
  <notes>* Uninstall helper in configuration&#xD;
57
+ * Version 1.0.8</notes>
58
  <authors><author><name>Trivid GmbH</name><user>trivid_gmbh</user><email>magento@clipgenerator.com</email></author></authors>
59
+ <date>2014-05-06</date>
60
+ <time>19:45:04</time>
61
+ <contents><target name="magecommunity"><dir><dir name="Trivid"><dir name="Clipgenerator"><dir><dir name="Adminhtml"><file name="MassController.php" hash="6ee78058e7ecef20cff7b9b14aec6131"/><file name="OrderformController.php" hash="69234d0239b30ba092641c4deba5c22f"/></dir><dir name="Block"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><file name="Contingentlabel.php" hash="d3ba207e940802c31e75d6940c664561"/><file name="Musiclightbox.php" hash="bdd229f38fdd2ffc837a3d978bdd419b"/><file name="Uninstallhelper.php" hash="0f822bdaecb686fab023f95673d03213"/></dir></dir></dir></dir></dir><dir name="Catalog"><dir name="Product"><dir name="Helper"><dir name="Form"><file name="Images.php" hash="27d7bbc947da60bbe8f83c7d60f295a4"/><file name="music.php" hash="72c1b7433c635ac961b2deea89911787"/></dir></dir></dir></dir><file name="InsertVideo.php" hash="e0cb90add30fc0cb1ae01e784f62ccaf"/><file name="Video.php" hash="e0062bc6ecce800549805166b36d25d6"/></dir><dir name="Helper"><file name="Data.php" hash="90289935c612ad72250cf51966b3b5dd"/><file name="Data.php.orig" hash="90289935c612ad72250cf51966b3b5dd"/></dir><dir name="Model"><dir name="Adminhtml"><dir name="System"><dir name="Config"><dir name="Source"><file name="Designs.php" hash="955468f1a5c8ff3547694f621a7a2366"/><file name="Musics.php" hash="9ccb34ae21272a56523f10032321dc47"/></dir></dir></dir></dir><dir name="Mysql4"><file name="Setup.php" hash="b45fbf3af0ed9282b0e0e1c290576a30"/></dir><file name="Observer.php" hash="7bcb31af662b40a2b9f69c2904f3ac53"/><dir name="Source"><file name="Designs.php" hash="16a43bd168a2a1243797e0b8c0eb66fc"/><file name="Musics.php" hash="37ca0df27fea9567949a53e6fd8147ac"/></dir></dir><dir name="controllers"><dir name="Adminhtml"><file name="MassController.php" hash="afd9ffdff3470af46f8a05d56161c284"/><file name="OrderformController.php" hash="69234d0239b30ba092641c4deba5c22f"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="da3eb20bfd72ff9e0e5000dcb49f5fd8"/><file name="config.xml" hash="549d9267c331a876eb5b1aeab5ef0322"/><file name="system.xml" hash="13731536a0d4ee31b055b044ccd20ed9"/></dir><dir name="lib"><dir name="clipgenerator"><file name="ClipgeneratorClient.php" hash="ee3da37d7947591dc3fc6886d8dc710d"/><file name="Frame.php" hash="9455ee512fed22039d7700b9db5b50ed"/><file name="Logo.php" hash="21c9732369bc983549cbfe525e8a327c"/><file name="LowerThird.php" hash="bfe8a3bbc65292d09dcb7384ac791413"/><file name="Picture.php" hash="b8b29fe5e1106f05281d83dc90888461"/><file name="Video.php" hash="95176448517ba383a5d30a0108dd2f49"/></dir></dir><dir name="sql"><dir name="clipgenerator_setup"><file name="mysql4-install-0.1.0.php" hash="7d8c159488c3095c2fe26ec9b9691d41"/><file name="mysql4-install-1.0.0.php" hash="63644f41ed5cf5797d3808386caafb66"/><file name="mysql4-install-1.0.2.php" hash="54a2e97737f3e0ca9fbd6b7467534079"/><file name="mysql4-install-1.0.3.php" hash="54a2e97737f3e0ca9fbd6b7467534079"/><file name="mysql4-install-1.0.4.php" hash="2fcbae17231e8f27cf629b49c563c962"/><file name="mysql4-install-1.0.5.php" hash="010aa779510cf5d4695943c594205b43"/><file name="mysql4-install-1.0.6.php" hash="be9cae614df9d3f6c4c9a5f066bbcb3a"/><file name="mysql4-install-1.0.7.php" hash="be9cae614df9d3f6c4c9a5f066bbcb3a"/><file name="mysql4-install-1.0.8.php" hash="be9cae614df9d3f6c4c9a5f066bbcb3a"/></dir></dir></dir></dir></dir></dir></target><target name="magedesign"><dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="template"><dir name="clipgenerator"><file name="contingent.phtml" hash="64d871aa20e967eabd734d2a6b440443"/><file name="images.phtml" hash="f73fb4849d73df76acf1f3996f64b7c2"/><file name="music.phtml" hash="edbeeeabb31df0cb6b515e3a5ce5273e"/><file name="orderform.phtml" hash="1ad10fa641632b6e6b152ecb3043d264"/><file name="orderform.phtml.orig" hash="ba5fa003eebfbbc85c91b793202fa02b"/><file name="uninstall.phtml" hash="8884d93dfe102dc5ab4c8fc0c3059fa3"/></dir></dir><dir name="layout"><file name="clipgenerator.xml" hash="7070a0cd1223aabd72590fe3134be051"/></dir></dir></dir></dir></dir></target><target name="magelocale"><dir><dir name="de_DE"><file name="Trivid_Clipgenerator.csv" hash="4c4fb12f0d08f04291bdaca3524b7a07"/></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Trivid_Clipgenerator.xml" hash="63ce89126d102aa43d975022570107cf"/></dir></dir></target></contents>
62
  <compatible/>
63
  <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
64
  </package>