snm_pdfpublication_basic - Version 1.8.0.1

Version Notes

No Notes

Download this release

Release Info

Developer snm-portal
Extension snm_pdfpublication_basic
Version 1.8.0.1
Comparing to
See all releases


Version 1.8.0.1

Files changed (127) hide show
  1. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Import/Edit.php +43 -0
  2. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Import/Edit/Form.php +39 -0
  3. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Import/Frame/Result.php +177 -0
  4. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Info.php +17 -0
  5. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Items.php +97 -0
  6. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue.php +14 -0
  7. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit.php +157 -0
  8. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Form.php +13 -0
  9. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Epub3.php +103 -0
  10. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Main.php +193 -0
  11. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Print.php +203 -0
  12. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Products.php +140 -0
  13. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Products/Field.php +99 -0
  14. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Products/Grid.php +292 -0
  15. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Queue.php +119 -0
  16. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Settings.php +94 -0
  17. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tabs.php +27 -0
  18. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Grid.php +173 -0
  19. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Preview.php +18 -0
  20. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects.php +12 -0
  21. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit.php +156 -0
  22. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Form.php +13 -0
  23. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tab/Layout.php +60 -0
  24. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tab/Main.php +118 -0
  25. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tab/Settings.php +88 -0
  26. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tabs.php +26 -0
  27. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Grid.php +62 -0
  28. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Satzeditor.php +121 -0
  29. app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Versioninfo.php +16 -0
  30. app/code/local/AuIt/PublicationBasic/Block/Frame.php +26 -0
  31. app/code/local/AuIt/PublicationBasic/Block/Generator.php +197 -0
  32. app/code/local/AuIt/PublicationBasic/Block/Product/Buttons.php +22 -0
  33. app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Parameter.php +13 -0
  34. app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Publication.phpXXX +34 -0
  35. app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Satzeditor.php +21 -0
  36. app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Styles.phpXXX +17 -0
  37. app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Renderer/Parameter.php +85 -0
  38. app/code/local/AuIt/PublicationBasic/Block/Widget/Grid/Column/Renderer/Image.php +59 -0
  39. app/code/local/AuIt/PublicationBasic/Helper/Arrayconfig.php +47 -0
  40. app/code/local/AuIt/PublicationBasic/Helper/Config.php +54 -0
  41. app/code/local/AuIt/PublicationBasic/Helper/Data.php +1094 -0
  42. app/code/local/AuIt/PublicationBasic/Helper/Dirdirective.php +990 -0
  43. app/code/local/AuIt/PublicationBasic/Helper/Export.php +177 -0
  44. app/code/local/AuIt/PublicationBasic/Helper/Filemanager.php +438 -0
  45. app/code/local/AuIt/PublicationBasic/Helper/Font.php +215 -0
  46. app/code/local/AuIt/PublicationBasic/Helper/Pdf.php +211 -0
  47. app/code/local/AuIt/PublicationBasic/Helper/Style.php +81 -0
  48. app/code/local/AuIt/PublicationBasic/Helper/Svg.php +114 -0
  49. app/code/local/AuIt/PublicationBasic/Model/Adminhtml/Arraytemplate.php +65 -0
  50. app/code/local/AuIt/PublicationBasic/Model/Adminhtml/Idtemplate.php +42 -0
  51. app/code/local/AuIt/PublicationBasic/Model/Adminhtml/System/Config/Product/Attribute.php +35 -0
  52. app/code/local/AuIt/PublicationBasic/Model/Adminhtml/System/Config/Producttemplates.php +11 -0
  53. app/code/local/AuIt/PublicationBasic/Model/Config/Arraytemplate.php +66 -0
  54. app/code/local/AuIt/PublicationBasic/Model/Config/Idtemplate.php +43 -0
  55. app/code/local/AuIt/PublicationBasic/Model/Config/Update.php +15 -0
  56. app/code/local/AuIt/PublicationBasic/Model/Cron.php +107 -0
  57. app/code/local/AuIt/PublicationBasic/Model/Email/Template/Filter.php +14 -0
  58. app/code/local/AuIt/PublicationBasic/Model/Email/Template/Helper.php +173 -0
  59. app/code/local/AuIt/PublicationBasic/Model/Filemanager/Storage.php +159 -0
  60. app/code/local/AuIt/PublicationBasic/Model/Filemanager/Storage/Collection.php +660 -0
  61. app/code/local/AuIt/PublicationBasic/Model/Font.php +352 -0
  62. app/code/local/AuIt/PublicationBasic/Model/Generator.php +81 -0
  63. app/code/local/AuIt/PublicationBasic/Model/Jobqueue.php +225 -0
  64. app/code/local/AuIt/PublicationBasic/Model/Pdf/Base.php +299 -0
  65. app/code/local/AuIt/PublicationBasic/Model/Project.php +20 -0
  66. app/code/local/AuIt/PublicationBasic/Model/Renderer/Abstract.php +607 -0
  67. app/code/local/AuIt/PublicationBasic/Model/Renderer/Pdf.php +824 -0
  68. app/code/local/AuIt/PublicationBasic/Model/Resource/Abstract.php +54 -0
  69. app/code/local/AuIt/PublicationBasic/Model/Resource/Generator.php +9 -0
  70. app/code/local/AuIt/PublicationBasic/Model/Resource/Generator/Collection.php +30 -0
  71. app/code/local/AuIt/PublicationBasic/Model/Resource/Jobqueue.php +39 -0
  72. app/code/local/AuIt/PublicationBasic/Model/Resource/Jobqueue/Collection.php +14 -0
  73. app/code/local/AuIt/PublicationBasic/Model/Resource/Project.php +9 -0
  74. app/code/local/AuIt/PublicationBasic/Model/Resource/Project/Collection.php +14 -0
  75. app/code/local/AuIt/PublicationBasic/Model/Resource/Styles.php +9 -0
  76. app/code/local/AuIt/PublicationBasic/Model/Resource/Styles/Collection.php +14 -0
  77. app/code/local/AuIt/PublicationBasic/Model/Resource/Template.php +10 -0
  78. app/code/local/AuIt/PublicationBasic/Model/Resource/Template/Collection.php +14 -0
  79. app/code/local/AuIt/PublicationBasic/Model/Style.php +45 -0
  80. app/code/local/AuIt/PublicationBasic/Model/Styles.php +522 -0
  81. app/code/local/AuIt/PublicationBasic/Model/Template.php +349 -0
  82. app/code/local/AuIt/PublicationBasic/controllers/Admin/FilemanagerController.php +218 -0
  83. app/code/local/AuIt/PublicationBasic/controllers/Admin/ImportController.php +195 -0
  84. app/code/local/AuIt/PublicationBasic/controllers/Admin/JobqueueController.php +355 -0
  85. app/code/local/AuIt/PublicationBasic/controllers/Admin/PreviewController.php +181 -0
  86. app/code/local/AuIt/PublicationBasic/controllers/Admin/ShapeController.php +104 -0
  87. app/code/local/AuIt/PublicationBasic/controllers/ContentController.php +270 -0
  88. app/code/local/AuIt/PublicationBasic/data/css/default.css +45 -0
  89. app/code/local/AuIt/PublicationBasic/data/gfont.ser +1 -0
  90. app/code/local/AuIt/PublicationBasic/data/shapelib/animal.json +21 -0
  91. app/code/local/AuIt/PublicationBasic/data/shapelib/arrow.json +28 -0
  92. app/code/local/AuIt/PublicationBasic/data/shapelib/basic.json +31 -0
  93. app/code/local/AuIt/PublicationBasic/data/shapelib/categories.json +14 -0
  94. app/code/local/AuIt/PublicationBasic/data/shapelib/dialog_balloon.json +9 -0
  95. app/code/local/AuIt/PublicationBasic/data/shapelib/electronics.json +20 -0
  96. app/code/local/AuIt/PublicationBasic/data/shapelib/flowchart.json +25 -0
  97. app/code/local/AuIt/PublicationBasic/data/shapelib/game.json +13 -0
  98. app/code/local/AuIt/PublicationBasic/data/shapelib/math.json +9 -0
  99. app/code/local/AuIt/PublicationBasic/data/shapelib/misc.json +37 -0
  100. app/code/local/AuIt/PublicationBasic/data/shapelib/music.json +21 -0
  101. app/code/local/AuIt/PublicationBasic/data/shapelib/object.json +19 -0
  102. app/code/local/AuIt/PublicationBasic/data/shapelib/raphael.txt +12 -0
  103. app/code/local/AuIt/PublicationBasic/data/shapelib/raphael_1.json +67 -0
  104. app/code/local/AuIt/PublicationBasic/data/shapelib/raphael_2.json +64 -0
  105. app/code/local/AuIt/PublicationBasic/data/shapelib/symbol.json +28 -0
  106. app/code/local/AuIt/PublicationBasic/etc/adminhtml.xml +82 -0
  107. app/code/local/AuIt/PublicationBasic/etc/config.xml +191 -0
  108. app/code/local/AuIt/PublicationBasic/etc/dir.directive.xml +24 -0
  109. app/code/local/AuIt/PublicationBasic/etc/history.xml +24 -0
  110. app/code/local/AuIt/PublicationBasic/etc/system.xml +121 -0
  111. app/code/local/AuIt/PublicationBasic/sql/auit_publicationbasic_setup/install-1.8.0.1.php +235 -0
  112. app/design/adminhtml/default/default/layout/auit_publicationbasic.xml +151 -0
  113. app/design/adminhtml/default/default/template/auit/publicationbasic/admin/import/form/after.phtml +32 -0
  114. app/design/adminhtml/default/default/template/auit/publicationbasic/admin/import/form/before.phtml +137 -0
  115. app/design/adminhtml/default/default/template/auit/publicationbasic/admin/import/frame/result.phtml +31 -0
  116. app/design/adminhtml/default/default/template/auit/publicationbasic/filemanager.phtml +46 -0
  117. app/design/adminhtml/default/default/template/auit/publicationbasic/renderer/array.phtml +167 -0
  118. app/design/adminhtml/default/default/template/auit/publicationbasic/renderer/array_date.phtml +182 -0
  119. app/design/adminhtml/default/default/template/auit/publicationbasic/satzeditor.phtml +179 -0
  120. app/design/frontend/base/default/layout/auit_publicationbasic.xml +9 -0
  121. app/design/frontend/base/default/template/auit/publicationbasic/product/buttons.phtml +18 -0
  122. app/design/frontend/base/default/template/auit/publicationbasic/product/images.phtml +81 -0
  123. app/design/frontend/base/default/template/auit/publicationbasic/product/price_variants.phtml +27 -0
  124. app/design/frontend/base/default/template/auit/publicationbasic/product/price_variants2.phtml +27 -0
  125. app/design/frontend/base/default/template/auit/publicationbasic/product_attribute.phtml +21 -0
  126. app/etc/modules/XAuIt_PublicationBasic.xml +12 -0
  127. app/locale/de_DE/AuIt_PublicationBasic.csv +244 -0
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Import/Edit.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Import_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
3
+ {
4
+ /**
5
+ * Constructor
6
+ *
7
+ * @return void
8
+ */
9
+ public function __construct()
10
+ {
11
+ parent::__construct();
12
+
13
+ $this->removeButton('back')
14
+ ->removeButton('reset')
15
+ ->_updateButton('save', 'label', $this->__('Check Data'))
16
+ ->_updateButton('save', 'id', 'upload_button')
17
+ ->_updateButton('save', 'onclick', 'editForm.postToFrame();');
18
+ }
19
+
20
+ /**
21
+ * Internal constructor
22
+ *
23
+ * @return void
24
+ */
25
+ protected function _construct()
26
+ {
27
+ parent::_construct();
28
+
29
+ $this->_objectId = 'import_id';
30
+ $this->_blockGroup = 'auit_publicationbasic';
31
+ $this->_controller = 'adminhtml_import';
32
+ }
33
+
34
+ /**
35
+ * Get header text
36
+ *
37
+ * @return string
38
+ */
39
+ public function getHeaderText()
40
+ {
41
+ return Mage::helper('auit_publicationbasic')->__('Import');
42
+ }
43
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Import/Edit/Form.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Import_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
3
+ {
4
+ /**
5
+ * Add fieldset
6
+ *
7
+ * @return Mage_ImportExport_Block_Adminhtml_Import_Edit_Form
8
+ */
9
+ protected function _prepareForm()
10
+ {
11
+ $helper = Mage::helper('auit_publicationbasic');
12
+ $form = new Varien_Data_Form(array(
13
+ 'id' => 'edit_form',
14
+ 'action' => $this->getUrl('*/*/validate'),
15
+ 'method' => 'post',
16
+ 'enctype' => 'multipart/form-data'
17
+ ));
18
+ $fieldset = $form->addFieldset('base_fieldset', array('legend' => $helper->__('Template Import Settings')));
19
+ /*
20
+ $fieldset->addField('behavior', 'select', array(
21
+ 'name' => 'behavior',
22
+ 'title' => $helper->__('Import Behavior'),
23
+ 'label' => $helper->__('Import Behavior'),
24
+ 'required' => true,
25
+ 'values' => Mage::getModel('importexport/source_import_behavior')->toOptionArray()
26
+ ));
27
+ */
28
+ $fieldset->addField('publication_import_file', 'file', array(
29
+ 'name' => 'publication_import_file',
30
+ 'label' => $helper->__('Select File to Import'),
31
+ 'title' => $helper->__('Select File to Import'),
32
+ 'required' => true
33
+ ));
34
+ $form->setUseContainer(true);
35
+ $this->setForm($form);
36
+
37
+ return parent::_prepareForm();
38
+ }
39
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Import/Frame/Result.php ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Import_Frame_Result extends Mage_Adminhtml_Block_Template
3
+ {
4
+ /**
5
+ * JavaScript actions for response.
6
+ *
7
+ * @var array
8
+ */
9
+ protected $_actions = array(
10
+ 'clear' => array(), // remove element from DOM
11
+ 'innerHTML' => array(), // set innerHTML property (use: elementID => new content)
12
+ 'value' => array(), // set value for form element (use: elementID => new value)
13
+ 'show' => array(), // show specified element
14
+ 'hide' => array(), // hide specified element
15
+ 'removeClassName' => array(), // remove specified class name from element
16
+ 'addClassName' => array() // add specified class name to element
17
+ );
18
+
19
+ /**
20
+ * Validation messages.
21
+ *
22
+ * @var array
23
+ */
24
+ protected $_messages = array(
25
+ 'error' => array(),
26
+ 'success' => array(),
27
+ 'notice' => array()
28
+ );
29
+
30
+ /**
31
+ * Add action for response.
32
+ *
33
+ * @param string $actionName
34
+ * @param string $elementId
35
+ * @param mixed $value OPTIONAL
36
+ * @return Mage_ImportExport_Block_Adminhtml_Import_Frame_Result
37
+ */
38
+ public function addAction($actionName, $elementId, $value = null)
39
+ {
40
+ if (isset($this->_actions[$actionName])) {
41
+ if (null === $value) {
42
+ if (is_array($elementId)) {
43
+ foreach ($elementId as $oneId) {
44
+ $this->_actions[$actionName][] = $oneId;
45
+ }
46
+ } else {
47
+ $this->_actions[$actionName][] = $elementId;
48
+ }
49
+ } else {
50
+ $this->_actions[$actionName][$elementId] = $value;
51
+ }
52
+ }
53
+ return $this;
54
+ }
55
+
56
+ /**
57
+ * Add error message.
58
+ *
59
+ * @param string $message Error message
60
+ * @return Mage_ImportExport_Block_Adminhtml_Import_Frame_Result
61
+ */
62
+ public function addError($message)
63
+ {
64
+ if (is_array($message)) {
65
+ foreach ($message as $row) {
66
+ $this->addError($row);
67
+ }
68
+ } else {
69
+ $this->_messages['error'][] = $message;
70
+ }
71
+ return $this;
72
+ }
73
+
74
+ /**
75
+ * Add notice message.
76
+ *
77
+ * @param mixed $message Message text
78
+ * @param boolean $appendImportButton OPTIONAL Append import button to message?
79
+ * @return Mage_ImportExport_Block_Adminhtml_Import_Frame_Result
80
+ */
81
+ public function addNotice($message, $appendImportButton = false,$key='')
82
+ {
83
+ if (is_array($message)) {
84
+ foreach ($message as $row) {
85
+ $this->addNotice($row);
86
+ }
87
+ } else {
88
+ $this->_messages['notice'][] = $message . ($appendImportButton ? $this->getImportButtonHtml($key) : '');
89
+ }
90
+ return $this;
91
+ }
92
+
93
+ /**
94
+ * Add success message.
95
+ *
96
+ * @param mixed $message Message text
97
+ * @param boolean $appendImportButton OPTIONAL Append import button to message?
98
+ * @return Mage_ImportExport_Block_Adminhtml_Import_Frame_Result
99
+ */
100
+ public function addSuccess($message, $appendImportButton = false,$key='')
101
+ {
102
+ if (is_array($message)) {
103
+ foreach ($message as $row) {
104
+ $this->addSuccess($row);
105
+ }
106
+ } else {
107
+ $this->_messages['success'][] = $message . ($appendImportButton ? $this->getImportButtonHtml($key) : '');
108
+ }
109
+ return $this;
110
+ }
111
+
112
+ /**
113
+ * Import button HTML for append to message.
114
+ *
115
+ * @return string
116
+ */
117
+ public function getImportButtonHtml($key='')
118
+ {
119
+ return '&nbsp;&nbsp;<button onclick="editForm.startImport(\'' . $this->getImportStartUrl($key)
120
+ . '\', \'' . 'publication_import_file'. '\');" class="scalable save"'
121
+ . ' type="button"><span><span><span>' . $this->__('Import') . '</span></span></span></button>';
122
+ }
123
+
124
+ /**
125
+ * Import start action URL.
126
+ *
127
+ * @return string
128
+ */
129
+ public function getImportStartUrl($key)
130
+ {
131
+ return $this->getUrl('*/*/start',array('lytarchiv'=>$key));
132
+ }
133
+
134
+ /**
135
+ * Messages getter.
136
+ *
137
+ * @return array
138
+ */
139
+ public function getMessages()
140
+ {
141
+ return $this->_messages;
142
+ }
143
+
144
+ /**
145
+ * Messages rendered HTML getter.
146
+ *
147
+ * @return string
148
+ */
149
+ public function getMessagesHtml()
150
+ {
151
+ /** @var $messagesBlock Mage_Core_Block_Messages */
152
+ $messagesBlock = $this->_layout->createBlock('core/messages');
153
+
154
+ foreach ($this->_messages as $priority => $messages) {
155
+ $method = "add{$priority}";
156
+
157
+ foreach ($messages as $message) {
158
+ $messagesBlock->$method($message);
159
+ }
160
+ }
161
+ return $messagesBlock->toHtml();
162
+ }
163
+
164
+ /**
165
+ * Return response as JSON.
166
+ *
167
+ * @return string
168
+ */
169
+ public function getResponseJson()
170
+ {
171
+ // add messages HTML if it is not already specified
172
+ if (!isset($this->_actions['import_validation_messages'])) {
173
+ $this->addAction('innerHTML', 'import_validation_messages', $this->getMessagesHtml());
174
+ }
175
+ return Mage::helper('core')->jsonEncode($this->_actions);
176
+ }
177
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Info.php ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @package AuIt_Editor
7
+ * @author M Augsten
8
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
9
+ */
10
+ class AuIt_PublicationBasic_Block_Adminhtml_Info extends Mage_Adminhtml_Block_System_Config_Form_Field
11
+ {
12
+ protected function _getElementHtml(Varien_Data_Form_Element_Abstract $element)
13
+ {
14
+ $html = parent::_getElementHtml($element);
15
+ return $html;
16
+ }
17
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Items.php ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Block_Adminhtml_Items extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
10
+ {
11
+ protected $magentoAttributes;
12
+ protected function _filterLayoutHandle($layoutHandle)
13
+ {
14
+ $wildCard = '/('.implode(')|(', $this->getLayoutHandlePatterns()).')/';
15
+ if (preg_match($wildCard, $layoutHandle)) {
16
+ return false;
17
+ }
18
+ return true;
19
+ }
20
+ public function __construct()
21
+ {
22
+ $this->addColumn('attribute', array(
23
+ 'label' => Mage::helper('auit_publicationbasic')->__('Attribute'),
24
+ 'style' => 'width:150px'
25
+ ));
26
+
27
+ $this->addColumn('value', array(
28
+ 'label' => Mage::helper('auit_publicationbasic')->__('value'),
29
+ 'style' => 'width:150px'
30
+ ));
31
+ $this->addColumn('template', array(
32
+ 'label' => Mage::helper('auit_publicationbasic')->__('Template'),
33
+ 'style' => 'width:150px'
34
+ ));
35
+
36
+ $this->_addAfter = true;
37
+ $this->_addButtonLabel = Mage::helper('auit_publicationbasic')->__('Add new');
38
+ $this->setTemplate('auit/publicationbasic/renderer/array.phtml');
39
+ parent::__construct();
40
+ }
41
+ protected function _getProductAttributes()
42
+ {
43
+ $hash=array();
44
+ $allowedAttributes=array('date','price','boolean','text','textarea','select','multiselect','media_image');
45
+ $collection = Mage::getResourceModel('catalog/product_attribute_collection')
46
+ ->addVisibleFilter();
47
+ $hashOpt=array();
48
+ foreach ( $collection as $attr )
49
+ {
50
+ $code = $attr->getAttributeCode();
51
+ $type = $attr->getFrontendInput();
52
+ if (!in_array($type, $allowedAttributes) || $attr->getFrontendInput() == 'hidden') {
53
+ continue;
54
+ }
55
+ $hash[$attr->getAttributeCode()]=$attr->getFrontendLabel();
56
+ }
57
+ $hash['attribute_set_id']=Mage::helper('catalog')->__('Attrib. Set Name');
58
+ $hash['type_id']=Mage::helper('catalog')->__('Product Type');
59
+ asort($hash);
60
+ return $hash;
61
+ }
62
+ protected function _prepareLayout()
63
+ {
64
+ return parent::_prepareLayout();
65
+ }
66
+
67
+ protected function _renderCellTemplate($columnName)
68
+ {
69
+ $column = $this->_columns[$columnName];
70
+ $inputName = $this->getElement()->getName() . '[#{_id}][' . $columnName . ']';
71
+
72
+ if($columnName == 'attribute' )
73
+ {
74
+ $rendered = '<select name="'.$inputName.'" style="'.$column['style'].'">';
75
+ $options = Mage::getModel('auit_publicationbasic/adminhtml_system_config_product_attribute')->toOptionArray();
76
+ $rendered .= '<option value=""></option>';
77
+ foreach ( $options as $value => $label )
78
+ {
79
+ $rendered .= '<option value="'.$value.'">'.htmlentities($label,ENT_QUOTES).'</option>';
80
+ }
81
+ $rendered .= '</select>';
82
+ return $rendered;
83
+
84
+ }
85
+ if($columnName != 'template' )
86
+ return parent::_renderCellTemplate($columnName);
87
+
88
+ $sets = Mage::helper('auit_publicationbasic')->getTemplatesForType(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT);
89
+ $rendered = '<select name="'.$inputName.'" style="'.$column['style'].'">';
90
+ foreach ( $sets as $item )
91
+ {
92
+ $rendered .= '<option value="'.$item['value'].'">'.htmlentities($item['label'],ENT_QUOTES).'</option>';
93
+ }
94
+ $rendered .= '</select>';
95
+ return $rendered;
96
+ }
97
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue extends Mage_Adminhtml_Block_Widget_Grid_Container
3
+ {
4
+ public function __construct()
5
+ {
6
+ $this->_blockGroup = 'auit_publicationbasic';
7
+ $this->_controller = 'adminhtml_jobqueue';
8
+ $this->_headerText = Mage::helper('auit_publicationbasic')->__('Job Queue');
9
+ //$this->_addButtonLabel = Mage::helper('auit_publicationbasic')->__('Add New Project');
10
+
11
+ parent::__construct();
12
+ $this->_removeButton('add');
13
+ }
14
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit.php ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
3
+ {
4
+
5
+ public function __construct()
6
+ {
7
+ $this->_blockGroup = 'auit_publicationbasic';
8
+ $this->_objectId = 'jobqueue_id';
9
+ $this->_controller = 'adminhtml_jobqueue';
10
+ parent::__construct();
11
+
12
+ $this->_removeButton('save');
13
+
14
+ if (!Mage::getSingleton('adminhtml/session')->getNewAuitPublication()) {
15
+ if ($this->_isAllowedAction('save')) {
16
+ $this->_addButton('save', array(
17
+ 'label' => Mage::helper('adminhtml')->__('Save'),
18
+ 'onclick' => 'saveAndContinueEdit(\''.$this->_getSaveUrl().'\')',
19
+ 'class' => 'save',
20
+ ), -100);
21
+ $this->_addButton('saveandcontinue', array(
22
+ 'label' => Mage::helper('adminhtml')->__('Save and Continue Edit'),
23
+ 'onclick' => 'saveAndContinueEdit(\''.$this->_getSaveAndContinueUrl().'\')',
24
+ 'class' => 'save',
25
+ ), -100);
26
+ /*
27
+ $this->_addButton('duplicate', array(
28
+ 'label' => Mage::helper('adminhtml')->__('Duplicate'),
29
+ 'onclick' => 'saveAndContinueEdit(\''.$this->_getDuplicateAndContinueUrl().'\')',
30
+ 'class' => 'add',
31
+ ), -100);
32
+ */
33
+ } else {
34
+ $this->_removeButton('save');
35
+ }
36
+
37
+ if ($this->_isAllowedAction('delete')) {
38
+ $this->_updateButton('delete', 'label', Mage::helper('auit_publicationbasic')->__('Delete Page'));
39
+ } else {
40
+ $this->_removeButton('delete');
41
+ }
42
+ } else {
43
+ $this->removeButton('save');
44
+ $this->removeButton('delete');
45
+ }
46
+ $this->removeButton('reset');
47
+ }
48
+
49
+ /**
50
+ * Retrieve text for header element depending on loaded page
51
+ *
52
+ * @return string
53
+ */
54
+ public function getHeaderText()
55
+ {
56
+ if (Mage::registry('auit_publicationbasic_jobqueue') && Mage::registry('auit_publicationbasic_jobqueue')->getId()) {
57
+ return Mage::helper('auit_publicationbasic')->__("Edit'%s'", $this->htmlEscape(Mage::registry('auit_publicationbasic_jobqueue')->getName()));
58
+ }
59
+ else {
60
+ return Mage::helper('auit_publicationbasic')->__('New');
61
+ }
62
+ }
63
+
64
+ /**
65
+ * Check permission for passed action
66
+ *
67
+ * @param string $action
68
+ * @return bool
69
+ */
70
+ protected function _isAllowedAction($action)
71
+ {
72
+ return true;//Mage::getSingleton('admin/session')->isAllowed('auit_publicationbasic/group/' . $action);
73
+ }
74
+
75
+ /**
76
+ * Getter of url for "Save and Continue" button
77
+ * tab_id will be replaced by desired by JS later
78
+ *
79
+ * @return string
80
+ */
81
+ protected function _getSaveUrl()
82
+ {
83
+ return $this->getUrl('*/*/save', array(
84
+ // '_current' => false,
85
+ // 'active_tab' => '{{tab_id}}'
86
+ ));
87
+ }
88
+ protected function _getSaveAndContinueUrl()
89
+ {
90
+ return $this->getUrl('*/*/save', array(
91
+ '_current' => true,
92
+ 'back' => 'edit',
93
+ 'active_tab' => '{{tab_id}}'
94
+ ));
95
+ }
96
+ protected function _getDuplicateAndContinueUrl()
97
+ {
98
+ return $this->getUrl('*/*/duplicate', array(
99
+ '_current' => true,
100
+ 'back' => 'edit',
101
+ 'active_tab' => '{{tab_id}}'
102
+ ));
103
+ }
104
+ public function getFormActionUrl()
105
+ {
106
+ if ($this->hasFormActionUrl()) {
107
+ return $this->getData('form_action_url');
108
+ }
109
+ return $this->getUrl('*/*/save');
110
+ }
111
+
112
+ /**
113
+ * @see Mage_Adminhtml_Block_Widget_Container::_prepareLayout()
114
+ */
115
+ protected function _prepareLayout()
116
+ {
117
+ if (!Mage::getSingleton('adminhtml/session')->getNewAuitPublication()) {
118
+
119
+
120
+ $tabsBlock = $this->getLayout()->getBlock('auit_publicationbasic_group_edit_tabs');
121
+ if ($tabsBlock) {
122
+ $tabsBlockJsObject = $tabsBlock->getJsObjectName();
123
+ $tabsBlockPrefix = $tabsBlock->getId() . '_';
124
+ } else {
125
+ $tabsBlockJsObject = 'page_tabsJsTabs';
126
+ $tabsBlockPrefix = 'page_tabs_';
127
+ }
128
+
129
+ $this->_formScripts[] = "
130
+ function toggleEditor() {
131
+ if (tinyMCE.getInstanceById('page_content') == null) {
132
+ tinyMCE.execCommand('mceAddControl', false, 'page_content');
133
+ } else {
134
+ tinyMCE.execCommand('mceRemoveControl', false, 'page_content');
135
+ }
136
+ }
137
+ function saveAndContinueEdit(urljobqueue) {
138
+ if ( AuIt.SatzEditor && AuIt.SatzEditor.save )
139
+ AuIt.SatzEditor.save()
140
+
141
+ var tabsIdValue = " . $tabsBlockJsObject . ".activeTab.id;
142
+ var tabsBlockPrefix = '" . $tabsBlockPrefix . "';
143
+ if (tabsIdValue.startsWith(tabsBlockPrefix)) {
144
+ tabsIdValue = tabsIdValue.substr(tabsBlockPrefix.length)
145
+ }
146
+
147
+ var jobqueue = new Template(urljobqueue, /(^|.|\\r|\\n)({{(\w+)}})/);
148
+ var url = jobqueue.evaluate({tab_id:tabsIdValue});
149
+ editForm.submit(url);
150
+ }
151
+ ";
152
+ }
153
+ return parent::_prepareLayout();
154
+ }
155
+
156
+
157
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Form.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
3
+ {
4
+
5
+ protected function _prepareForm()
6
+ {
7
+ $form = new Varien_Data_Form(array('id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post','enctype' => 'multipart/form-data'));
8
+ $form->setUseContainer(true);
9
+ $this->setForm($form);
10
+ return parent::_prepareForm();
11
+ }
12
+
13
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Epub3.php ADDED
@@ -0,0 +1,103 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Epub3
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareForm()
7
+ {
8
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
9
+ if ($this->_isAllowedAction('save')) {
10
+ $isElementDisabled = false;
11
+ } else {
12
+ $isElementDisabled = true;
13
+ }
14
+
15
+ $form = new Varien_Data_Form();
16
+
17
+ $form->setHtmlIdPrefix('epub3_');
18
+
19
+ $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('auit_publicationbasic')->__('Option'), 'class' => ''));
20
+ $this->_addElementTypes($fieldset);
21
+
22
+
23
+ $fieldset->addField('template', 'select', array(
24
+ 'label' => Mage::helper('auit_publicationbasic')->__('Cover Template'),
25
+ 'title' => Mage::helper('auit_publicationbasic')->__('Cover Template'),
26
+ 'name' => 'template',
27
+ 'required' => true,
28
+ 'values' => Mage::helper('auit_publicationbasic')->getTemplatesForType(array(AuIt_PublicationBasic_Helper_Data::TEMPLATE_STATIC,AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT))
29
+ ));
30
+
31
+ $fieldset->addField('template2', 'select', array(
32
+ 'label' => Mage::helper('auit_publicationbasic')->__('Article Template'),
33
+ 'title' => Mage::helper('auit_publicationbasic')->__('Article Template'),
34
+ 'name' => 'template2',
35
+ 'required' => true,
36
+ 'values' => Mage::helper('auit_publicationbasic')->getTemplatesForType(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT)
37
+ ));
38
+
39
+
40
+ $form->setValues($model->getData());
41
+ $this->setForm($form);
42
+ return parent::_prepareForm();
43
+ }
44
+
45
+ /**
46
+ * Prepare label for tab
47
+ *
48
+ * @return string
49
+ */
50
+ public function getTabLabel()
51
+ {
52
+ return Mage::helper('auit_publicationbasic')->__('Ebook Option');
53
+ }
54
+
55
+ /**
56
+ * Prepare title for tab
57
+ *
58
+ * @return string
59
+ */
60
+ public function getTabTitle()
61
+ {
62
+ return Mage::helper('auit_publicationbasic')->__('Ebook Option');
63
+ }
64
+
65
+ /**
66
+ * Returns status flag about this tab can be shown or not
67
+ *
68
+ * @return true
69
+ */
70
+ public function canShowTab()
71
+ {
72
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
73
+ return ($model->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3 );
74
+ }
75
+
76
+ /**
77
+ * Returns status flag about this tab hidden or not
78
+ *
79
+ * @return true
80
+ */
81
+ public function isHidden()
82
+ {
83
+ return false;
84
+ }
85
+
86
+ /**
87
+ * Check permission for passed action
88
+ *
89
+ * @param string $action
90
+ * @return bool
91
+ */
92
+ protected function _isAllowedAction($action)
93
+ {
94
+ return true;//Mage::getSingleton('admin/session')->isAllowed('auit_publicationbasic/group/' . $action);
95
+ }
96
+ protected function _getAdditionalElementTypes()
97
+ {
98
+ $result = array(
99
+ // 'auit-storelocator-list' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/widget_form_element_list'),
100
+ );
101
+ return $result;
102
+ }
103
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Main.php ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Main
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareForm()
7
+ {
8
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
9
+ if ($this->_isAllowedAction('save')) {
10
+ $isElementDisabled = false;
11
+ } else {
12
+ $isElementDisabled = true;
13
+ }
14
+
15
+
16
+ $form = new Varien_Data_Form();
17
+
18
+ $form->setHtmlIdPrefix('page_');
19
+
20
+ $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('auit_publicationbasic')->__('General Information'), 'class' => ''));
21
+ $this->_addElementTypes($fieldset);
22
+ if ($model->getJobqueueId()) {
23
+ $fieldset->addField('jobqueue_id', 'hidden', array(
24
+ 'name' => 'jobqueue_id',
25
+ ));
26
+ }
27
+ $fieldset->addField('type', 'hidden', array('name' => 'type'));
28
+ $fieldset->addField('variante', 'hidden', array('name' => 'variante'));
29
+ /*
30
+ $fieldset->addField('type', 'select', array(
31
+ 'name' => 'type',
32
+ 'label' => $this->__('Type'),
33
+ 'title' => $this->__('Type'),
34
+ 'values' => Mage::helper('auit_publicationbasic')->getJobQueueTypeOptions(),
35
+ 'required' => true,
36
+ 'disabled' => true
37
+ ));
38
+
39
+ $fieldset->addField('variante', 'select', array(
40
+ 'name' => 'variante',
41
+ 'label' => $this->__('Type'),
42
+ 'title' => $this->__('Type'),
43
+ 'values' => Mage::helper('auit_publicationbasic')->getPromoOptions(),
44
+ 'required' => true,
45
+ 'disabled' => true
46
+ ));
47
+ */
48
+ $fieldset->addField('name', 'text', array(
49
+ 'name' => 'name',
50
+ 'label' => Mage::helper('auit_publicationbasic')->__('Name'),
51
+ 'title' => Mage::helper('auit_publicationbasic')->__('Name'),
52
+ 'required' => true,
53
+ ));
54
+
55
+ $fieldset->addField('print_store', 'select', array(
56
+ 'label' => Mage::helper('auit_publicationbasic')->__('Store View'),
57
+ 'title' => Mage::helper('auit_publicationbasic')->__('Store View'),
58
+ 'name' => 'print_store',
59
+ 'required' => true,
60
+ 'values' => Mage::helper('auit_publicationbasic')->getPreviewStores(true)
61
+ ));
62
+
63
+ if ( $model->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_COUPON_CARD )
64
+ {
65
+ $fieldset->addField('salesrule_rule', 'select', array(
66
+ 'label' => Mage::helper('auit_publicationbasic')->__('Shopping Cart Price Rule'),
67
+ 'title' => Mage::helper('auit_publicationbasic')->__('Shopping Cart Price Rule'),
68
+ 'name' => 'salesrule_rule',
69
+ 'required' => true,
70
+ 'values' => Mage::helper('auit_publicationbasic')->getPromos()
71
+ ));
72
+ $fieldset->addField('template', 'select', array(
73
+ 'label' => Mage::helper('auit_publicationbasic')->__('Template'),
74
+ 'title' => Mage::helper('auit_publicationbasic')->__('Template'),
75
+ 'name' => 'template',
76
+ 'required' => true,
77
+ 'values' => Mage::helper('auit_publicationbasic')->getTemplatesForType(AuIt_PublicationBasic_Helper_Data::TEMPLATE_COUPON)
78
+ ));
79
+ }
80
+ elseif ( $model->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_BROCHURE_LIST )
81
+ {
82
+ /*
83
+ $fieldset->addField('template', 'select', array(
84
+ 'label' => Mage::helper('auit_publicationbasic')->__('Template'),
85
+ 'title' => Mage::helper('auit_publicationbasic')->__('Template'),
86
+ 'name' => 'template',
87
+ 'required' => true,
88
+ 'values' => Mage::helper('auit_publicationbasic')->getTemplatesForType(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT)
89
+ ));
90
+ $fieldset->addField('first_page', 'select', array(
91
+ 'label' => Mage::helper('auit_publicationbasic')->__('First Page'),
92
+ 'title' => Mage::helper('auit_publicationbasic')->__('First Page'),
93
+ 'name' => 'first_page',
94
+ 'required' => false,
95
+ 'values' => Mage::helper('auit_publicationbasic')->getTemplatesForType(array(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT,AuIt_PublicationBasic_Helper_Data::TEMPLATE_STATIC),true)
96
+ ));
97
+ $fieldset->addField('last_page', 'select', array(
98
+ 'label' => Mage::helper('auit_publicationbasic')->__('Last Page'),
99
+ 'title' => Mage::helper('auit_publicationbasic')->__('Last Page'),
100
+ 'name' => 'last_page',
101
+ 'required' => false,
102
+ 'values' => Mage::helper('auit_publicationbasic')->getTemplatesForType(array(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT,AuIt_PublicationBasic_Helper_Data::TEMPLATE_STATIC),true)
103
+ ));
104
+ */
105
+ }
106
+ elseif ( $model->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3 )
107
+ {
108
+ /*
109
+ $fieldset->addField('template', 'select', array(
110
+ 'label' => Mage::helper('auit_publicationbasic')->__('Template'),
111
+ 'title' => Mage::helper('auit_publicationbasic')->__('Template'),
112
+ 'name' => 'template',
113
+ 'required' => true,
114
+ 'values' => Mage::helper('auit_publicationbasic')->getTemplatesForType(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT)
115
+ ));
116
+ */
117
+ }
118
+ if (!$model->getId()) {
119
+ $model->setData('is_active', '1');
120
+ }
121
+ /*
122
+ $data = $model->getData();
123
+ $blob='';
124
+ if ( isset($data['data']) )
125
+ $blob = $data['data'];
126
+ $data['salesrule_rule']=Mage::helper('auit_publicationbasic')->getBlobValue($blob,'salesrule_rule');
127
+ $data['template']=Mage::helper('auit_publicationbasic')->getBlobValue($blob,'template');
128
+ */
129
+
130
+ $form->setValues($model->getData());
131
+ // $form->setValues($model->getData());
132
+ $this->setForm($form);
133
+ return parent::_prepareForm();
134
+ }
135
+
136
+ /**
137
+ * Prepare label for tab
138
+ *
139
+ * @return string
140
+ */
141
+ public function getTabLabel()
142
+ {
143
+ return Mage::helper('auit_publicationbasic')->__('Information');
144
+ }
145
+
146
+ /**
147
+ * Prepare title for tab
148
+ *
149
+ * @return string
150
+ */
151
+ public function getTabTitle()
152
+ {
153
+ return Mage::helper('auit_publicationbasic')->__('Information');
154
+ }
155
+
156
+ /**
157
+ * Returns status flag about this tab can be shown or not
158
+ *
159
+ * @return true
160
+ */
161
+ public function canShowTab()
162
+ {
163
+ return true;
164
+ }
165
+
166
+ /**
167
+ * Returns status flag about this tab hidden or not
168
+ *
169
+ * @return true
170
+ */
171
+ public function isHidden()
172
+ {
173
+ return false;
174
+ }
175
+
176
+ /**
177
+ * Check permission for passed action
178
+ *
179
+ * @param string $action
180
+ * @return bool
181
+ */
182
+ protected function _isAllowedAction($action)
183
+ {
184
+ return true;//Mage::getSingleton('admin/session')->isAllowed('auit_publicationbasic/group/' . $action);
185
+ }
186
+ protected function _getAdditionalElementTypes()
187
+ {
188
+ $result = array(
189
+ // 'auit-storelocator-list' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/widget_form_element_list'),
190
+ );
191
+ return $result;
192
+ }
193
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Print.php ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Print
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareForm()
7
+ {
8
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
9
+ if ($this->_isAllowedAction('save')) {
10
+ $isElementDisabled = false;
11
+ } else {
12
+ $isElementDisabled = true;
13
+ }
14
+ /**
15
+ *
16
+ *
17
+ Anschnitt Bleed : 2mm
18
+ Steg : 1.5mm
19
+ Info-Bereich : Slug
20
+ */
21
+ // Offset 0-25,4
22
+
23
+
24
+ $form = new Varien_Data_Form();
25
+
26
+ $form->setHtmlIdPrefix('print_');
27
+
28
+ $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('auit_publicationbasic')->__('PDF Page Offset'), 'class' => ''));
29
+ $this->_addElementTypes($fieldset);
30
+
31
+
32
+
33
+ if ( !$model->getData('use_doc_size') )
34
+ $model->setData('use_doc_size',1);
35
+ if ( !$model->getData('user_page_size') )
36
+ $model->setData('user_page_size','DIN-A#210#297');
37
+ /*
38
+ $data = $model->getData();
39
+ $blob='';
40
+ if ( isset($data['data']) )
41
+ $blob = $data['data'];
42
+ $data['use_doc_size']=Mage::helper('auit_publicationbasic')->getBlobValue($blob,'use_doc_size');
43
+ if ( !$data['use_doc_size'] )
44
+ $data['use_doc_size']=1;
45
+ $data['user_page_size']=Mage::helper('auit_publicationbasic')->getBlobValue($blob,'user_page_size');
46
+ if ( !$data['user_page_size'])
47
+ $data['user_page_size'] = 'DIN-A#210#297';
48
+ $data['user_page_orientation']=Mage::helper('auit_publicationbasic')->getBlobValue($blob,'user_page_orientation');
49
+ $data['placment_method']=Mage::helper('auit_publicationbasic')->getBlobValue($blob,'placment_method');
50
+ $data['use_bleed']=Mage::helper('auit_publicationbasic')->getBlobValue($blob,'use_bleed');
51
+ */
52
+ $fieldset->addField('use_doc_size', 'select', array(
53
+ 'label' => Mage::helper('auit_publicationbasic')->__('Use Document Size'),
54
+ 'title' => Mage::helper('auit_publicationbasic')->__('Use Document Size'),
55
+ 'name' => 'use_doc_size',
56
+ 'required' => true,
57
+ 'options' => array(
58
+ '1' => Mage::helper('auit_publicationbasic')->__('Yes'),
59
+ '2' => Mage::helper('auit_publicationbasic')->__('No')
60
+ ),
61
+ 'onchange' => '_setdoc_sizechange(this)',
62
+ 'after_element_html' =>
63
+ '<script type="text/javascript">
64
+ ;function _setdoc_sizechange(cbm)
65
+ {
66
+ var v = cbm.value;
67
+ $(\'' . 'print_user_page_size' . '\').up(\'tr\')[v==1? \'hide\' : \'show\' ]();
68
+ $(\'' . 'print_user_page_orientation' . '\').up(\'tr\')[v==1? \'hide\' : \'show\' ]();
69
+ $(\'' . 'print_placment_method' . '\').up(\'tr\')[v==1? \'hide\' : \'show\' ]();
70
+ $(\'' . 'print_use_bleed' . '\').up(\'tr\')[v!=1? \'hide\' : \'show\' ]();
71
+ };
72
+ </script>'
73
+ ));
74
+ //
75
+
76
+ $hideElements=$model->getData('use_doc_size')==1;
77
+ $fieldset->addField('user_page_size', 'select', array(
78
+ 'label' => Mage::helper('auit_publicationbasic')->__('Page Size'),
79
+ 'title' => Mage::helper('auit_publicationbasic')->__('Page Size'),
80
+ 'name' => 'user_page_size',
81
+ 'required' => true,
82
+ 'options' => Mage::helper('auit_publicationbasic')->getPageFormate(false),
83
+ 'after_element_html' =>
84
+ '<script type="text/javascript">' .
85
+ ($hideElements ? '$(\'' . 'print_user_page_size' . '\').up(\'tr\').hide(); ' : '') .
86
+ '</script>'
87
+ ));
88
+ $fieldset->addField('user_page_orientation', 'select', array(
89
+ 'label' => Mage::helper('auit_publicationbasic')->__('Orientation'),
90
+ 'title' => Mage::helper('auit_publicationbasic')->__('Orientation'),
91
+ 'name' => 'user_page_orientation',
92
+ 'required' => true,
93
+ 'options' => Mage::helper('auit_publicationbasic')->getOrientation(),
94
+ 'after_element_html' =>
95
+ '<script type="text/javascript">' .
96
+ ($hideElements ? '$(\'' . 'print_user_page_orientation' . '\').up(\'tr\').hide(); ' : '') .
97
+ '</script>'
98
+ ));
99
+ $fieldset->addField('placment_method', 'select', array(
100
+ 'label' => Mage::helper('auit_publicationbasic')->__('Placment Method'),
101
+ 'title' => Mage::helper('auit_publicationbasic')->__('Placment Method'),
102
+ 'name' => 'placment_method',
103
+ 'required' => true,
104
+ 'options' => array(
105
+ 'grid' => Mage::helper('auit_publicationbasic')->__('Grid'),
106
+ 'list' => Mage::helper('auit_publicationbasic')->__('List')
107
+ ),
108
+ 'after_element_html' =>
109
+ '<script type="text/javascript">' .
110
+ ($hideElements ? '$(\'' . 'print_placment_method' . '\').up(\'tr\').hide(); ' : '') .
111
+ '</script>'
112
+ ));
113
+
114
+ //Anschnittseinstellungen des Dokuments verwenden
115
+ $fieldset->addField('use_bleed', 'select', array(
116
+ 'label' => Mage::helper('auit_publicationbasic')->__('Use Document Bleed Settings'),
117
+ 'title' => Mage::helper('auit_publicationbasic')->__('Use Document Bleed Settings'),
118
+ 'name' => 'use_bleed',
119
+ 'required' => true,
120
+ 'options' => array(
121
+ '1' => Mage::helper('auit_publicationbasic')->__('Yes'),
122
+ '0' => Mage::helper('auit_publicationbasic')->__('No')
123
+ ),
124
+ 'after_element_html' =>
125
+ '<script type="text/javascript">' .
126
+ (!$hideElements ? '$(\'' . 'print_use_bleed' . '\').up(\'tr\').hide(); ' : '') .
127
+ '</script>'
128
+ ));
129
+
130
+ /**
131
+ foreach ( array('BleedBox','TrimBox') as $boxName )
132
+ {
133
+ if ( isset($this->_pageboxes['/'.$boxName]))
134
+ $format[$boxName]=array('llx'=>$this->_pageboxes['/'.$boxName]['llx'],
135
+ 'lly'=>$this->_pageboxes['/'.$boxName]['lly'],
136
+ 'urx'=>$this->_pageboxes['/'.$boxName]['urx'],
137
+ 'ury'=>$this->_pageboxes['/'.$boxName]['ury']);
138
+ }
139
+ */
140
+ $form->setValues($model->getData());
141
+ $this->setForm($form);
142
+ return parent::_prepareForm();
143
+ }
144
+
145
+ /**
146
+ * Prepare label for tab
147
+ *
148
+ * @return string
149
+ */
150
+ public function getTabLabel()
151
+ {
152
+ return Mage::helper('auit_publicationbasic')->__('Print Option');
153
+ }
154
+
155
+ /**
156
+ * Prepare title for tab
157
+ *
158
+ * @return string
159
+ */
160
+ public function getTabTitle()
161
+ {
162
+ return Mage::helper('auit_publicationbasic')->__('Print Option');
163
+ }
164
+
165
+ /**
166
+ * Returns status flag about this tab can be shown or not
167
+ *
168
+ * @return true
169
+ */
170
+ public function canShowTab()
171
+ {
172
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
173
+ return ($model->getVariante() != AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3 );
174
+ }
175
+
176
+ /**
177
+ * Returns status flag about this tab hidden or not
178
+ *
179
+ * @return true
180
+ */
181
+ public function isHidden()
182
+ {
183
+ return false;
184
+ }
185
+
186
+ /**
187
+ * Check permission for passed action
188
+ *
189
+ * @param string $action
190
+ * @return bool
191
+ */
192
+ protected function _isAllowedAction($action)
193
+ {
194
+ return true;//Mage::getSingleton('admin/session')->isAllowed('auit_publicationbasic/group/' . $action);
195
+ }
196
+ protected function _getAdditionalElementTypes()
197
+ {
198
+ $result = array(
199
+ // 'auit-storelocator-list' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/widget_form_element_list'),
200
+ );
201
+ return $result;
202
+ }
203
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Products.php ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Products
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ public function __construct()
7
+ {
8
+ parent::__construct();
9
+ // $this->setTemplate('auit/publication/admin/jobqueue/products.phtml');
10
+ // $this->setId('group_page_tree');
11
+ }
12
+
13
+ protected function _prepareForm()
14
+ {
15
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
16
+ if ($this->_isAllowedAction('save')) {
17
+ $isElementDisabled = false;
18
+ } else {
19
+ $isElementDisabled = true;
20
+ }
21
+
22
+ $form = new Varien_Data_Form();
23
+
24
+ $form->setHtmlIdPrefix('auit_publicationbasic_');
25
+
26
+ //$this->_addElementTypes($fieldset);
27
+ $this->_addElementTypes($form);
28
+ if ( $model->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_BROCHURE_LIST )
29
+ {
30
+ //$this->_addElementTypes($fieldset);
31
+ if ( !$model->getData('layout_def') )
32
+ {
33
+ $data = array(
34
+ 'templates'=>array(
35
+ array('template'=>Mage::helper('auit_publicationbasic')->getTemplateIdentifier($model->getData('template')),'skus'=>$model->getData('catalog_skus'))
36
+ )
37
+ );
38
+
39
+ // $data[]=array('template'=>$model->getData('template'),'skus'=>$model->getData('catalog_skus'));
40
+ $data = json_encode($data);
41
+ $model->setData('layout_def',$data);
42
+
43
+ }
44
+ /*
45
+ $options = Mage::helper('auit_publicationbasic/style')->getCssStyles();
46
+ $options['']='';
47
+ $fieldset->addField('print_style', 'select', array(
48
+ 'label' => Mage::helper('auit_publicationbasic')->__('STYLE AUSWAHL'),
49
+ 'title' => Mage::helper('auit_publicationbasic')->__('Products (First Page)'),
50
+ 'name' => 'print_style',
51
+ 'required' => false,
52
+ 'values' =>$options
53
+ ));
54
+
55
+ * <select data-bind="combobox: preview_style">
56
+ <?php echo Mage::helper('auit_publicationbasic')->asOptions(Mage::helper('auit_publicationbasic/style')->getCssStyles(),true);?>
57
+ </select>
58
+ $fieldset->addField('first_page_skus', 'text', array(
59
+ 'label' => Mage::helper('auit_publicationbasic')->__('Products (First Page)'),
60
+ 'title' => Mage::helper('auit_publicationbasic')->__('Products (First Page)'),
61
+ 'name' => 'first_page_skus',
62
+ 'required' => false
63
+ ));
64
+
65
+ $fieldset->addField('last_page_skus', 'text', array(
66
+ 'label' => Mage::helper('auit_publicationbasic')->__('Products (Last Page)'),
67
+ 'title' => Mage::helper('auit_publicationbasic')->__('Products (Last Page)'),
68
+ 'name' => 'last_page_skus',
69
+ 'required' => false
70
+ ));
71
+ */
72
+
73
+ $form->addField('layout_def', 'auit-publication-jobqueue-layout', array(
74
+ 'label' => Mage::helper('auit_publicationbasic')->__(' '),
75
+ 'title' => Mage::helper('auit_publicationbasic')->__(' '),
76
+ 'name' => 'layout_def',
77
+ //'update_element' => $elem->getHtmlId()
78
+ ));
79
+
80
+ }
81
+ else {
82
+
83
+ $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('auit_publicationbasic')->__('&#160;'), 'class' => 'fieldset-wide'));
84
+
85
+
86
+ $elem = $fieldset->addField('catalog_skus', 'text', array(
87
+ 'label' => Mage::helper('auit_publicationbasic')->__('Products'),
88
+ 'title' => Mage::helper('auit_publicationbasic')->__('Products'),
89
+ 'name' => 'catalog_skus',
90
+ 'required' => true,
91
+ // 'after_element_html' =>
92
+ // '<script type="text/javascript">' .
93
+ // ($hideElements ? '$(\'' . 'print_placment_method' . '\').up(\'tr\').hide(); ' : '') .
94
+ // '</script>'
95
+ ));
96
+
97
+ $form->addField('catalog_skus2', 'auit-publication-jobqueue-products', array(
98
+ 'label' => Mage::helper('auit_publicationbasic')->__(' '),
99
+ 'title' => Mage::helper('auit_publicationbasic')->__(' '),
100
+ 'name' => 'catalog_skus2',
101
+ 'update_element' => $elem->getHtmlId()
102
+ ));
103
+ }
104
+ $form->setValues($model->getData());
105
+ $this->setForm($form);
106
+ return parent::_prepareForm();
107
+ }
108
+
109
+ public function getTabLabel()
110
+ {
111
+ return Mage::helper('auit_publicationbasic')->__('Products/Layout');
112
+ }
113
+ public function getTabTitle()
114
+ {
115
+ return Mage::helper('auit_publicationbasic')->__('Products/Layout');
116
+ }
117
+ public function canShowTab()
118
+ {
119
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
120
+ return ($model->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_BROCHURE_LIST||
121
+ $model->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3
122
+ );
123
+ }
124
+ public function isHidden()
125
+ {
126
+ return false;
127
+ }
128
+ protected function _isAllowedAction($action)
129
+ {
130
+ return true;
131
+ }
132
+ protected function _getAdditionalElementTypes()
133
+ {
134
+ $result = array(
135
+ 'auit-publication-jobqueue-products' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/adminhtml_jobqueue_edit_tab_products_field'),
136
+ 'auit-publication-jobqueue-layout' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/widget_form_element_satzeditor'),
137
+ );
138
+ return $result;
139
+ }
140
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Products/Field.php ADDED
@@ -0,0 +1,99 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Products_Field extends Varien_Data_Form_Element_Abstract
3
+ {
4
+ public function getElementHtml()
5
+ {
6
+ $html = '<style>#auit_publicationbasic_catalog_skus2_content .pager input.page {width:2em !important;}</style>';
7
+
8
+ $updElement = $this->getData('update_element');
9
+
10
+ $html .="<script type='text/javascript'>
11
+ //<![CDATA[
12
+ auit_l_product_fields={
13
+ updateElement:'$updElement',
14
+ selectedItems: null,
15
+ init:function()
16
+ {
17
+ auit_l_product_fields.selectedItems= ".'$H({})'.";
18
+ var elm = $(auit_l_product_fields.updateElement);
19
+ var values = elm.value.split(','), s = '';
20
+ for (i=0; i<values.length; i++) {
21
+ s = values[i].strip();
22
+ if (s!='') {
23
+ auit_l_product_fields.selectedItems.set(s,1);
24
+ }
25
+ }
26
+ },
27
+ gridRowClick:function(grid, event) {
28
+ var trElement = Event.findElement(event, 'tr');
29
+ var isInput = Event.element(event).tagName == 'INPUT';
30
+ if (trElement) {
31
+ var checkbox = Element.select(trElement, 'input');
32
+ if (checkbox[0]) {
33
+ var checked = isInput ? checkbox[0].checked : !checkbox[0].checked;
34
+ grid.setCheckboxChecked(checkbox[0], checked);
35
+
36
+ }
37
+ }
38
+ },
39
+ gridCheckboxCheck: function (grid, element, checked) {
40
+ if ( !auit_l_product_fields.selectedItems )
41
+ auit_l_product_fields.init();
42
+ if (checked) {
43
+ if (!element.up('th')) {
44
+ auit_l_product_fields.selectedItems.set(element.value,1);
45
+ }
46
+ } else {
47
+ auit_l_product_fields.selectedItems.unset(element.value);
48
+ }
49
+ grid.reloadParams = {'selected[]':auit_l_product_fields.selectedItems.keys()};
50
+ $(auit_l_product_fields.updateElement).value = auit_l_product_fields.selectedItems.keys().join(', ');
51
+ }
52
+ ,gridRowInit: function (grid, row) {
53
+ if ( !auit_l_product_fields.selectedItems )
54
+ auit_l_product_fields.init();
55
+ if (!grid.reloadParams) {
56
+ grid.reloadParams = {'selected[]':auit_l_product_fields.selectedItems.keys()};
57
+ }
58
+ var checkbox = Element.select(row, 'input');
59
+ if (checkbox[0]) {
60
+ if ( auit_l_product_fields.selectedItems.get(checkbox[0].value)==1 )
61
+ grid.setCheckboxChecked(checkbox[0], true);
62
+ }
63
+
64
+ }
65
+ };
66
+ //]]>
67
+ </script>";
68
+ /*
69
+ $html .='<div id="cms_page_grid_container">
70
+ <div class="entry-edit">
71
+ <div class="entry-edit-head">
72
+ <div class="f-right">'.$this->getGridButtonsHtml().'</div>
73
+ <h4 class="fieldset-legend head-cms-page-grid icon-head">'.Mage::helper('auit_publicationbasic')->__('Products').'</h4></div><fieldset>';
74
+ */
75
+ $content = Mage::getSingleton('core/layout')
76
+ ->createBlock('auit_publicationbasic/adminhtml_jobqueue_edit_tab_products_grid');
77
+ $content->setId($this->getHtmlId() . '_content')
78
+ ->setElement($this);
79
+ $html .= $content->toHtml();
80
+ //$html .= '</fieldset></div></div>';
81
+
82
+
83
+
84
+ return $html;
85
+ }
86
+ public function getGridButtonsHtml()
87
+ {
88
+ return '';
89
+ $addButtonData = array(
90
+ 'id' => 'add_textmgr_text',
91
+ 'label' => Mage::helper('auit_publicationbasic')->__('Insert Products'),
92
+ // 'onclick' => 'hierarchyNodes.pageGridAddSelected()',
93
+ 'class' => 'add',
94
+ // 'disabled' => !$this->_isAllowedAction('save')
95
+ );
96
+ return Mage::getSingleton('core/layout')->createBlock('adminhtml/widget_button')
97
+ ->setData($addButtonData)->toHtml();
98
+ }
99
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Products/Grid.php ADDED
@@ -0,0 +1,292 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Products_Grid extends Mage_Adminhtml_Block_Widget_Grid
3
+ {
4
+
5
+ public function __construct($arguments=array())
6
+ {
7
+ parent::__construct($arguments);
8
+
9
+ if ($this->getRequest()->getParam('current_grid_id')) {
10
+ $this->setId($this->getRequest()->getParam('current_grid_id'));
11
+ } else {
12
+ //$this->setId('skuChooserGrid_'.$this->getId());
13
+ $this->setId('auit_publicationbasic_catalog_skus2_content');
14
+
15
+ }
16
+ $form = 'auit_l_product_fields';
17
+ $this->setRowClickCallback("$form.gridRowClick");
18
+ $this->setCheckboxCheckCallback("$form.gridCheckboxCheck");
19
+ $this->setRowInitCallback("$form.gridRowInit");
20
+
21
+
22
+ $this->setDefaultSort('sku');
23
+ $this->setUseAjax(true);
24
+ if ($this->getRequest()->getParam('collapse')) {
25
+ $this->setIsCollapsed(true);
26
+ }
27
+ }
28
+
29
+ /**
30
+ * Retrieve quote store object
31
+ * @return Mage_Core_Model_Store
32
+ */
33
+ public function getStore()
34
+ {
35
+ return Mage::app()->getStore();
36
+ }
37
+
38
+ protected function _addColumnFilterToCollection($column)
39
+ {
40
+ // Set custom filter for in product flag
41
+ if ($column->getId() == 'in_products') {
42
+ $selected = $this->_getSelectedProducts();
43
+ if (empty($selected)) {
44
+ $selected = '';
45
+ }
46
+ if ($column->getFilter()->getValue()) {
47
+ $this->getCollection()->addFieldToFilter('sku', array('in'=>$selected));
48
+ } else {
49
+ $this->getCollection()->addFieldToFilter('sku', array('nin'=>$selected));
50
+ }
51
+ } else {
52
+ if ($this->getCollection()) {
53
+ if ($column->getId() == 'websites') {
54
+ $this->getCollection()->joinField('websites',
55
+ 'catalog/product_website',
56
+ 'website_id',
57
+ 'product_id=entity_id',
58
+ null,
59
+ 'left');
60
+ }
61
+ }
62
+
63
+ parent::_addColumnFilterToCollection($column);
64
+ }
65
+ return $this;
66
+ }
67
+
68
+ /**
69
+ * Prepare Catalog Product Collection for attribute SKU in Promo Conditions SKU chooser
70
+ *
71
+ * @return Mage_Adminhtml_Block_Promo_Widget_Chooser_Sku
72
+ */
73
+ protected function _prepareCollectionXX()
74
+ {
75
+ $collection = Mage::getResourceModel('catalog/product_collection')
76
+ ->setStoreId(0)
77
+ ->addAttributeToSelect('name', 'type_id', 'attribute_set_id');
78
+
79
+ $this->setCollection($collection);
80
+
81
+ return parent::_prepareCollection();
82
+ }
83
+ protected function _getStore()
84
+ {
85
+ $storeId = (int) $this->getRequest()->getParam('store', 0);
86
+ return Mage::app()->getStore($storeId);
87
+ }
88
+
89
+ protected function _prepareCollection()
90
+ {
91
+ $store = $this->_getStore();
92
+ $collection = Mage::getModel('catalog/product')->getCollection()
93
+ ->addAttributeToSelect('sku')
94
+ ->addAttributeToSelect('name')
95
+ ->addAttributeToSelect('attribute_set_id')
96
+ ->addAttributeToSelect('type_id');
97
+
98
+ if (Mage::helper('catalog')->isModuleEnabled('Mage_CatalogInventory')) {
99
+ $collection->joinField('qty',
100
+ 'cataloginventory/stock_item',
101
+ 'qty',
102
+ 'product_id=entity_id',
103
+ '{{table}}.stock_id=1',
104
+ 'left');
105
+ }
106
+ if ($store->getId()) {
107
+ //$collection->setStoreId($store->getId());
108
+ $adminStore = Mage_Core_Model_App::ADMIN_STORE_ID;
109
+ $collection->addStoreFilter($store);
110
+ $collection->joinAttribute(
111
+ 'name',
112
+ 'catalog_product/name',
113
+ 'entity_id',
114
+ null,
115
+ 'inner',
116
+ $adminStore
117
+ );
118
+ $collection->joinAttribute(
119
+ 'custom_name',
120
+ 'catalog_product/name',
121
+ 'entity_id',
122
+ null,
123
+ 'inner',
124
+ $store->getId()
125
+ );
126
+ $collection->joinAttribute(
127
+ 'status',
128
+ 'catalog_product/status',
129
+ 'entity_id',
130
+ null,
131
+ 'inner',
132
+ $store->getId()
133
+ );
134
+ $collection->joinAttribute(
135
+ 'visibility',
136
+ 'catalog_product/visibility',
137
+ 'entity_id',
138
+ null,
139
+ 'inner',
140
+ $store->getId()
141
+ );
142
+ $collection->joinAttribute(
143
+ 'price',
144
+ 'catalog_product/price',
145
+ 'entity_id',
146
+ null,
147
+ 'left',
148
+ $store->getId()
149
+ );
150
+ $collection->joinAttribute(
151
+ 'small_image',
152
+ 'catalog_product/small_image',
153
+ 'entity_id',
154
+ null,
155
+ 'left',
156
+ $store->getId()
157
+ );
158
+ }
159
+ else {
160
+ $collection->addAttributeToSelect('price');
161
+ $collection->addAttributeToSelect('small_image');
162
+ $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner');
163
+ $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner');
164
+ }
165
+
166
+ $this->setCollection($collection);
167
+
168
+ parent::_prepareCollection();
169
+ $this->getCollection()->addWebsiteNamesToResult();
170
+ return $this;
171
+ }
172
+
173
+ /**
174
+ * Define Cooser Grid Columns and filters
175
+ *
176
+ * @return Mage_Adminhtml_Block_Promo_Widget_Chooser_Sku
177
+ */
178
+ protected function _prepareColumns()
179
+ {
180
+ $this->addColumn('in_products', array(
181
+ 'header_css_class' => 'a-center',
182
+ 'type' => 'checkbox',
183
+ 'name' => 'in_products',
184
+ 'values' => $this->_getSelectedProducts(),
185
+ 'align' => 'center',
186
+ 'index' => 'sku',
187
+ 'use_index' => true,
188
+ ));
189
+
190
+ $this->addColumn('entity_id', array(
191
+ 'header' => Mage::helper('sales')->__('ID'),
192
+ 'sortable' => true,
193
+ 'width' => '30',
194
+ 'index' => 'entity_id'
195
+ ));
196
+
197
+ $this->addColumn('type',
198
+ array(
199
+ 'header'=> Mage::helper('catalog')->__('Type'),
200
+ 'width' => '100px',
201
+ 'index' => 'type_id',
202
+ 'type' => 'options',
203
+ 'options' => Mage::getSingleton('catalog/product_type')->getOptionArray(),
204
+ ));
205
+
206
+ $sets = Mage::getResourceModel('eav/entity_attribute_set_collection')
207
+ ->setEntityTypeFilter(Mage::getModel('catalog/product')->getResource()->getTypeId())
208
+ ->load()
209
+ ->toOptionHash();
210
+
211
+ $this->addColumn('set_name',
212
+ array(
213
+ 'header'=> Mage::helper('catalog')->__('Attrib. Set Name'),
214
+ 'width' => '10px',
215
+ 'index' => 'attribute_set_id',
216
+ 'type' => 'options',
217
+ 'options' => $sets,
218
+ ));
219
+
220
+ $this->addColumn('chooser_sku', array(
221
+ 'header' => Mage::helper('sales')->__('SKU'),
222
+ 'name' => 'chooser_sku',
223
+ 'width' => '80px',
224
+ 'index' => 'sku'
225
+ ));
226
+ $this->addColumn('chooser_name', array(
227
+ 'header' => Mage::helper('sales')->__('Product Name'),
228
+ 'name' => 'chooser_name',
229
+ 'index' => 'name'
230
+ ));
231
+
232
+ $this->addColumn('small_image', array(
233
+ 'type' => 'image',
234
+ 'width' => '80px',
235
+ 'header' => Mage::helper('sales')->__('Picture'),
236
+ 'index' => 'small_image',
237
+ 'renderer' => 'auit_publicationbasic/widget_grid_column_renderer_image'
238
+ ));
239
+
240
+ $this->addColumn('visibility',
241
+ array(
242
+ 'header'=> Mage::helper('catalog')->__('Visibility'),
243
+ 'width' => '7px',
244
+ 'index' => 'visibility',
245
+ 'type' => 'options',
246
+ 'options' => Mage::getModel('catalog/product_visibility')->getOptionArray(),
247
+ ));
248
+
249
+ $this->addColumn('status',
250
+ array(
251
+ 'header'=> Mage::helper('catalog')->__('Status'),
252
+ 'width' => '7px',
253
+ 'index' => 'status',
254
+ 'type' => 'options',
255
+ 'options' => Mage::getSingleton('catalog/product_status')->getOptionArray(),
256
+ ));
257
+
258
+ if (!Mage::app()->isSingleStoreMode()) {
259
+ $this->addColumn('websites',
260
+ array(
261
+ 'header'=> Mage::helper('catalog')->__('Websites'),
262
+ 'width' => '10px',
263
+ 'sortable' => false,
264
+ 'index' => 'websites',
265
+ 'type' => 'options',
266
+ 'options' => Mage::getModel('core/website')->getCollection()->toOptionHash(),
267
+ ));
268
+ }
269
+
270
+
271
+ return parent::_prepareColumns();
272
+ }
273
+
274
+ public function getGridUrl()
275
+ {
276
+ return $this->getUrl('*/*/chooser', array(
277
+ '_current' => true,
278
+ 'current_grid_id' => $this->getId(),
279
+ 'collapse' => null
280
+ ));
281
+ }
282
+
283
+ protected function _getSelectedProducts()
284
+ {
285
+ $products = $this->getRequest()->getPost('selected', array());
286
+
287
+ return $products;
288
+ }
289
+
290
+ }
291
+
292
+
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Queue.php ADDED
@@ -0,0 +1,119 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Queue
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareForm()
7
+ {
8
+ $model = Mage::registry('auit_publicationbasic_jobqueue');
9
+ if ($this->_isAllowedAction('save')) {
10
+ $isElementDisabled = false;
11
+ } else {
12
+ $isElementDisabled = true;
13
+ }
14
+ $data = $model->getData();
15
+
16
+
17
+ $form = new Varien_Data_Form();
18
+ $form->setHtmlIdPrefix('queue_');
19
+ $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('auit_publicationbasic')->__('Information'), 'class' => ''));
20
+ $this->_addElementTypes($fieldset);
21
+
22
+ $outputFormat = Mage::app()->getLocale()->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
23
+ $fieldset->addField('date', 'date',array(
24
+ 'name' => 'start_at',
25
+ 'time' => true,
26
+ 'format' => $outputFormat,
27
+ 'label' => Mage::helper('newsletter')->__('Queue Date Start'),
28
+ 'image' => $this->getSkinUrl('images/grid-cal.gif')
29
+ ));
30
+
31
+ if ($model->getQueueStartAt()) {
32
+ $data['date']=Mage::app()->getLocale()->date($model->getQueueStartAt(), Varien_Date::DATETIME_INTERNAL_FORMAT);
33
+ }
34
+
35
+
36
+ $fieldset->addField('prio', 'select', array(
37
+ 'label' => Mage::helper('auit_publicationbasic')->__('Priority'),
38
+ 'title' => Mage::helper('auit_publicationbasic')->__('Priority'),
39
+ 'name' => 'prio',
40
+ 'required' => true,
41
+ 'options' => Mage::helper('auit_publicationbasic')->getJobQueuePriorityOptions(true)
42
+ ));
43
+ /*
44
+ $fieldset->addField('status', 'select', array(
45
+ 'label' => Mage::helper('auit_publicationbasic')->__('Status'),
46
+ 'title' => Mage::helper('auit_publicationbasic')->__('Status'),
47
+ 'name' => 'status',
48
+ 'required' => true,
49
+ 'options' => array(
50
+ '1' => Mage::helper('auit_publicationbasic')->__('Enabled'),
51
+ '0' => Mage::helper('auit_publicationbasic')->__('Disabled'),
52
+ ),
53
+ ));
54
+ */
55
+
56
+ $form->setValues($data);
57
+ // $form->setValues($model->getData());
58
+ $this->setForm($form);
59
+ return parent::_prepareForm();
60
+ }
61
+
62
+ /**
63
+ * Prepare label for tab
64
+ *
65
+ * @return string
66
+ */
67
+ public function getTabLabel()
68
+ {
69
+ return Mage::helper('auit_publicationbasic')->__('Job Queue');
70
+ }
71
+
72
+ /**
73
+ * Prepare title for tab
74
+ *
75
+ * @return string
76
+ */
77
+ public function getTabTitle()
78
+ {
79
+ return Mage::helper('auit_publicationbasic')->__('Job Queue');
80
+ }
81
+
82
+ /**
83
+ * Returns status flag about this tab can be shown or not
84
+ *
85
+ * @return true
86
+ */
87
+ public function canShowTab()
88
+ {
89
+ return true;
90
+ }
91
+
92
+ /**
93
+ * Returns status flag about this tab hidden or not
94
+ *
95
+ * @return true
96
+ */
97
+ public function isHidden()
98
+ {
99
+ return false;
100
+ }
101
+
102
+ /**
103
+ * Check permission for passed action
104
+ *
105
+ * @param string $action
106
+ * @return bool
107
+ */
108
+ protected function _isAllowedAction($action)
109
+ {
110
+ return true;
111
+ }
112
+ protected function _getAdditionalElementTypes()
113
+ {
114
+ $result = array(
115
+ // 'auit-storelocator-list' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/widget_form_element_list'),
116
+ );
117
+ return $result;
118
+ }
119
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tab/Settings.php ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tab_Settings
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareLayout()
7
+ {
8
+ $this->setChild('continue_button',
9
+ $this->getLayout()->createBlock('adminhtml/widget_button')
10
+ ->setData(array(
11
+ 'label' => Mage::helper('catalog')->__('Continue'),
12
+ 'onclick' => "if (editForm.submit()) { return false }",
13
+ 'class' => 'save'
14
+ )
15
+ )
16
+ );
17
+ return parent::_prepareLayout();
18
+ }
19
+
20
+ /**
21
+ * Prepare form before rendering HTML
22
+ * Setting Form Fieldsets and fields
23
+ *
24
+ * @return Mage_Adminhtml_Block_Widget_Form
25
+ */
26
+ protected function _prepareForm()
27
+ {
28
+
29
+ $form = new Varien_Data_Form();
30
+ $form->setHtmlIdPrefix('app_');
31
+ $type = Mage::getSingleton('adminhtml/session')->getNewAuitPublication();
32
+
33
+ switch ( $type )
34
+ {
35
+ case 11:
36
+ $fieldset = $form->addFieldset('base_fieldset', array('legend' => $this->__('Promotions')));
37
+ $fieldset->addField('type', 'hidden', array('name' => 'type','value'=>$type));
38
+ $fieldset->addField('variante', 'select', array(
39
+ 'name' => 'variante',
40
+ 'label' => $this->__('Type'),
41
+ 'title' => $this->__('Type'),
42
+ 'values' => Mage::helper('auit_publicationbasic')->getPromoOptions(),
43
+ 'required' => true
44
+ ));
45
+ break;
46
+ }
47
+ $fieldset->addField('continue_button', 'note', array(
48
+ 'text' => $this->getChildHtml('continue_button'),
49
+ ));
50
+ //$form->setValues($model->getData());
51
+ $this->setForm($form);
52
+ return parent::_prepareForm();
53
+ }
54
+
55
+ /**
56
+ * Tab label getter
57
+ *
58
+ * @return string
59
+ */
60
+ public function getTabLabel()
61
+ {
62
+ return $this->__('Settings');
63
+ }
64
+
65
+ /**
66
+ * Tab title getter
67
+ *
68
+ * @return string
69
+ */
70
+ public function getTabTitle()
71
+ {
72
+ return $this->__('Settings');
73
+ }
74
+
75
+ /**
76
+ * Check if tab can be shown
77
+ *
78
+ * @return bool
79
+ */
80
+ public function canShowTab()
81
+ {
82
+ return (bool) Mage::getSingleton('adminhtml/session')->getNewAuitPublication();
83
+ }
84
+
85
+ /**
86
+ * Check if tab hidden
87
+ *
88
+ * @return bool
89
+ */
90
+ public function isHidden()
91
+ {
92
+ return false;
93
+ }
94
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Edit/Tabs.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
3
+ {
4
+
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+ $this->setId('page_tabs');
9
+ $this->setDestElementId('edit_form');
10
+ $this->setTitle(Mage::helper('auit_publicationbasic')->__('Manage Project'));
11
+ }
12
+ protected function _prepareLayout()
13
+ {
14
+ if (Mage::getSingleton('adminhtml/session')->getNewAuitPublication()) {
15
+ $this->addTab('set', array(
16
+ 'label' => $this->__('Settings'),
17
+ 'content' => $this->getLayout()
18
+ ->createBlock('auit_publicationbasic/adminhtml_jobqueue_edit_tab_settings')
19
+ ->toHtml(),
20
+ 'active' => true
21
+ ));
22
+ }
23
+
24
+ return parent::_prepareLayout();
25
+ }
26
+
27
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Grid.php ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Grid extends Mage_Adminhtml_Block_Widget_Grid
3
+ {
4
+
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+ $this->setId('publicationTextGrid');
9
+ $this->setDefaultSort('jobqueue_id');
10
+ $this->setDefaultDir('DESC');
11
+ }
12
+
13
+ protected function _prepareCollection()
14
+ {
15
+ $collection = Mage::getModel('auit_publicationbasic/jobqueue')->getCollection();
16
+ $this->setCollection($collection);
17
+ parent::_prepareCollection();
18
+ $collection->walk('afterLoad');
19
+ return $this;
20
+ }
21
+ protected function _prepareLayout()
22
+ {
23
+ $this->setChild('refresh_button',
24
+ $this->getLayout()->createBlock('adminhtml/widget_button')
25
+ ->setData(array(
26
+ 'label' => Mage::helper('adminhtml')->__('Refresh'),
27
+ 'onclick' => $this->getJsObjectName().'.doExport()',
28
+ 'class' => 'task'
29
+ ))
30
+ );
31
+ return parent::_prepareLayout();
32
+ }
33
+ public function getRefreshButtonHtml()
34
+ {
35
+ return $this->getChildHtml('refresh_button');
36
+ }
37
+ public function getMainButtonsHtmlXXX()
38
+ {
39
+ return $this->getRefreshButtonHtml().parent::getMainButtonsHtml();
40
+ }
41
+ protected function _prepareColumns()
42
+ {
43
+ $url7zip = Mage::helper('adminhtml')->__('The archive can be uncompressed with <a href="%s">%s</a> on Windows systems', 'http://www.7-zip.org/', '7-Zip');
44
+
45
+ $this->addColumn('jobqueue_id', array(
46
+ 'header' => Mage::helper('auit_publicationbasic')->__('ID'),
47
+ 'width' => '50px',
48
+ 'index' => 'jobqueue_id',
49
+ 'type' => 'number',
50
+ ));
51
+
52
+ /*
53
+ $this->addColumn('start_at', array(
54
+ 'header' => Mage::helper('newsletter')->__('Queue Start'),
55
+ 'type' => 'datetime',
56
+ 'index' => 'queue_start_at',
57
+ 'gmtoffset' => true,
58
+ 'default' => ' ---- '
59
+ ,'width' => '100px'
60
+ ));
61
+ */
62
+ $this->addColumn('finish_at', array(
63
+ 'header' => Mage::helper('newsletter')->__('Queue Finish'),
64
+ 'type' => 'datetime',
65
+ 'index' => 'queue_finish_at',
66
+ 'gmtoffset' => true,
67
+ 'default' => ' ---- '
68
+ ,'width' => '100px'
69
+ ));
70
+ $this->addColumn('name', array(
71
+ 'header' => Mage::helper('auit_publicationbasic')->__('Name'),
72
+ 'align' => 'left',
73
+ 'index' => 'name'
74
+ ));
75
+
76
+ $this->addColumn('queue_status', array(
77
+ 'header' => Mage::helper('auit_publicationbasic')->__('Job Status'),
78
+ 'align' => 'left',
79
+ 'index' => 'queue_status'
80
+ ));
81
+ $this->addColumn('preview', array(
82
+ 'header' => Mage::helper('auit_publicationbasic')->__('Preview'),
83
+ 'renderer' => 'AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Preview',
84
+ 'width' => '110px',
85
+ 'index' => 'extension'
86
+ ));
87
+
88
+ // &nbsp; <small>('.$url7zip.')</small>
89
+ $this->addColumn('extension', array(
90
+ 'header' => Mage::helper('backup')->__('Download'),
91
+ 'format' => '<a href="' . $this->getUrl('*/*/download', array('id' => '$jobqueue_id', 'finish' => '$finish_at'))
92
+ . '">$extension</a>',
93
+ 'index' => 'extension',
94
+ 'sortable' => false,
95
+ 'filter' => false
96
+ ));
97
+
98
+ /*
99
+ $this->addColumn('type', array(
100
+ 'header' => Mage::helper('auit_publicationbasic')->__('Type'),
101
+ 'index' => 'type',
102
+ 'type' => 'options',
103
+ 'options' => Mage::helper('auit_publicationbasic')->getJobQueueTypeOptions(true),
104
+ 'width' => '150',
105
+ ));
106
+ */
107
+ $this->addColumn('prio', array(
108
+ 'header' => Mage::helper('auit_publicationbasic')->__('Priority'),
109
+ 'index' => 'prio',
110
+ 'type' => 'options',
111
+ 'options' => Mage::helper('auit_publicationbasic')->getJobQueuePriorityOptions(true),
112
+ 'width' => '150',
113
+ ));
114
+
115
+ $this->addColumn('update_time', array(
116
+ 'header' => Mage::helper('auit_publicationbasic')->__('Last Update'),
117
+ 'width' => '150px',
118
+ 'type' => 'datetime',
119
+ 'index' => 'update_time'
120
+ ));
121
+ $this->addColumn('update_from', array(
122
+ 'header' => Mage::helper('auit_publicationbasic')->__('From'),
123
+ 'align' => 'left',
124
+ 'width' => '150px',
125
+ 'index' => 'update_from'
126
+ ));
127
+ $this->addColumn('status', array(
128
+ 'header' => Mage::helper('auit_publicationbasic')->__('Status'),
129
+ 'index' => 'status',
130
+ 'type' => 'options',
131
+ 'options' => Mage::helper('auit_publicationbasic')->getJobQueueStatusOptions(true),
132
+ 'width' => '150'
133
+ ));
134
+ return parent::_prepareColumns();
135
+ }
136
+ public function getRowUrl($row)
137
+ {
138
+ return $this->getUrl('*/*/edit', array('jobqueue_id' => $row->getId()));
139
+ }
140
+ protected function _prepareMassaction()
141
+ {
142
+ $this->setMassactionIdField('jobqueue_id');
143
+ $this->getMassactionBlock()->setFormFieldName('jobqueue_ids');
144
+ $this->getMassactionBlock()->addItem('action_reset', array(
145
+ 'label' => Mage::helper('customer')->__('Rerun Job'),
146
+ 'url' => $this->getUrl('*/*/massReset'),
147
+ 'confirm' => Mage::helper('catalog')->__('Are you sure?')
148
+ ));
149
+
150
+ $this->getMassactionBlock()->addItem('action_delete', array(
151
+ 'label' => Mage::helper('customer')->__('Delete'),
152
+ 'url' => $this->getUrl('*/*/massDelete'),
153
+ 'confirm' => Mage::helper('catalog')->__('Are you sure?')
154
+ ));
155
+ $this->getMassactionBlock()->addItem('action_cancel', array(
156
+ 'label' => Mage::helper('customer')->__('Cancel'),
157
+ 'url' => $this->getUrl('*/*/massCancel'),
158
+ 'confirm' => Mage::helper('catalog')->__('Are you sure?')
159
+ ));
160
+ $this->getMassactionBlock()->addItem('action_start', array(
161
+ 'label' => Mage::helper('customer')->__('Start'),
162
+ 'url' => $this->getUrl('*/*/massStart'),
163
+ //'confirm' => Mage::helper('catalog')->__('Are you sure?')
164
+ ));
165
+ $this->getMassactionBlock()->addItem('action_hold', array(
166
+ 'label' => Mage::helper('customer')->__('Hold'),
167
+ 'url' => $this->getUrl('*/*/massHold'),
168
+ 'confirm' => Mage::helper('catalog')->__('Are you sure?')
169
+ ));
170
+ return $this;
171
+ }
172
+
173
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Jobqueue/Preview.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Jobqueue_Preview extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
3
+ {
4
+ public function render(Varien_Object $row)
5
+ {
6
+ return $this->_getValue($row);
7
+ }
8
+ protected function _getValue(Varien_Object $row)
9
+ {
10
+ if ( !$row->getData('extension') )
11
+ {
12
+ return '';
13
+ }
14
+ $url = Mage::helper('auit_publicationbasic/pdf')->getPreviewJobImageUrl($row->getData('jobqueue_id'));
15
+ $out = '<img onmouseover="this.style.height=\'auto\'" onmouseout="this.style.height=\'100px\'" src='. $url ." height='100px'/>";
16
+ return $out;
17
+ }
18
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects.php ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects extends Mage_Adminhtml_Block_Widget_Grid_Container
3
+ {
4
+ public function __construct()
5
+ {
6
+ $this->_blockGroup = 'auit_publicationbasic';
7
+ $this->_controller = 'adminhtml_projects';
8
+ $this->_headerText = Mage::helper('auit_publicationbasic')->__('Projects');
9
+ $this->_addButtonLabel = Mage::helper('auit_publicationbasic')->__('Add New Project');
10
+ parent::__construct();
11
+ }
12
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit.php ADDED
@@ -0,0 +1,156 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
3
+ {
4
+
5
+ public function __construct()
6
+ {
7
+ $this->_blockGroup = 'auit_publicationbasic';
8
+ $this->_objectId = 'project_id';
9
+ $this->_controller = 'adminhtml_projects';
10
+ parent::__construct();
11
+
12
+ $this->_removeButton('save');
13
+
14
+ if (!Mage::getSingleton('adminhtml/session')->getNewAuitPublication()) {
15
+ if ($this->_isAllowedAction('save')) {
16
+ //$this->_updateButton('save', 'label', Mage::helper('auit_publicationbasic')->__('Save Project'));
17
+ $this->_addButton('save', array(
18
+ 'label' => Mage::helper('adminhtml')->__('Save'),
19
+ 'onclick' => 'saveAndContinueEdit(\''.$this->_getSaveUrl().'\')',
20
+ 'class' => 'save',
21
+ ), -100);
22
+ $this->_addButton('saveandcontinue', array(
23
+ 'label' => Mage::helper('adminhtml')->__('Save and Continue Edit'),
24
+ 'onclick' => 'saveAndContinueEdit(\''.$this->_getSaveAndContinueUrl().'\')',
25
+ 'class' => 'save',
26
+ ), -100);
27
+ $this->_addButton('duplicate', array(
28
+ 'label' => Mage::helper('adminhtml')->__('Duplicate'),
29
+ 'onclick' => 'saveAndContinueEdit(\''.$this->_getDuplicateAndContinueUrl().'\')',
30
+ 'class' => 'add',
31
+ ), -100);
32
+ } else {
33
+ $this->_removeButton('save');
34
+ }
35
+
36
+ if ($this->_isAllowedAction('delete')) {
37
+ $this->_updateButton('delete', 'label', Mage::helper('auit_publicationbasic')->__('Delete Page'));
38
+ } else {
39
+ $this->_removeButton('delete');
40
+ }
41
+ } else {
42
+ $this->removeButton('save');
43
+ $this->removeButton('delete');
44
+ }
45
+ $this->removeButton('reset');
46
+ }
47
+
48
+ /**
49
+ * Retrieve text for header element depending on loaded page
50
+ *
51
+ * @return string
52
+ */
53
+ public function getHeaderText()
54
+ {
55
+ if (Mage::registry('auit_publicationbasic_project') && Mage::registry('auit_publicationbasic_project')->getId()) {
56
+ return Mage::helper('auit_publicationbasic')->__("Edit Project '%s'", $this->htmlEscape(Mage::registry('auit_publicationbasic_project')->getName()));
57
+ }
58
+ else {
59
+ return Mage::helper('auit_publicationbasic')->__('New Project');
60
+ }
61
+ }
62
+
63
+ /**
64
+ * Check permission for passed action
65
+ *
66
+ * @param string $action
67
+ * @return bool
68
+ */
69
+ protected function _isAllowedAction($action)
70
+ {
71
+ return true;//Mage::getSingleton('admin/session')->isAllowed('auit_publicationbasic/group/' . $action);
72
+ }
73
+
74
+ /**
75
+ * Getter of url for "Save and Continue" button
76
+ * tab_id will be replaced by desired by JS later
77
+ *
78
+ * @return string
79
+ */
80
+ protected function _getSaveUrl()
81
+ {
82
+ return $this->getUrl('*/*/save', array(
83
+ // '_current' => false,
84
+ // 'active_tab' => '{{tab_id}}'
85
+ ));
86
+ }
87
+ protected function _getSaveAndContinueUrl()
88
+ {
89
+ return $this->getUrl('*/*/save', array(
90
+ '_current' => true,
91
+ 'back' => 'edit',
92
+ 'active_tab' => '{{tab_id}}'
93
+ ));
94
+ }
95
+ protected function _getDuplicateAndContinueUrl()
96
+ {
97
+ return $this->getUrl('*/*/duplicate', array(
98
+ '_current' => true,
99
+ 'back' => 'edit',
100
+ 'active_tab' => '{{tab_id}}'
101
+ ));
102
+ }
103
+ public function getFormActionUrl()
104
+ {
105
+ if ($this->hasFormActionUrl()) {
106
+ return $this->getData('form_action_url');
107
+ }
108
+ return $this->getUrl('*/*/save');
109
+ }
110
+
111
+ /**
112
+ * @see Mage_Adminhtml_Block_Widget_Container::_prepareLayout()
113
+ */
114
+ protected function _prepareLayout()
115
+ {
116
+ if (!Mage::getSingleton('adminhtml/session')->getNewAuitPublication()) {
117
+
118
+
119
+ $tabsBlock = $this->getLayout()->getBlock('auit_publicationbasic_group_edit_tabs');
120
+ if ($tabsBlock) {
121
+ $tabsBlockJsObject = $tabsBlock->getJsObjectName();
122
+ $tabsBlockPrefix = $tabsBlock->getId() . '_';
123
+ } else {
124
+ $tabsBlockJsObject = 'page_tabsJsTabs';
125
+ $tabsBlockPrefix = 'page_tabs_';
126
+ }
127
+
128
+ $this->_formScripts[] = "
129
+ function toggleEditor() {
130
+ if (tinyMCE.getInstanceById('page_content') == null) {
131
+ tinyMCE.execCommand('mceAddControl', false, 'page_content');
132
+ } else {
133
+ tinyMCE.execCommand('mceRemoveControl', false, 'page_content');
134
+ }
135
+ }
136
+
137
+ function saveAndContinueEdit(urlProject) {
138
+ if ( AuIt.Publication && AuIt.Publication.save )
139
+ AuIt.Publication.save()
140
+ var tabsIdValue = " . $tabsBlockJsObject . ".activeTab.id;
141
+ var tabsBlockPrefix = '" . $tabsBlockPrefix . "';
142
+ if (tabsIdValue.startsWith(tabsBlockPrefix)) {
143
+ tabsIdValue = tabsIdValue.substr(tabsBlockPrefix.length)
144
+ }
145
+
146
+ var project = new Template(urlProject, /(^|.|\\r|\\n)({{(\w+)}})/);
147
+ var url = project.evaluate({tab_id:tabsIdValue});
148
+ editForm.submit(url);
149
+ }
150
+ ";
151
+ }
152
+ return parent::_prepareLayout();
153
+ }
154
+
155
+
156
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Form.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
3
+ {
4
+
5
+ protected function _prepareForm()
6
+ {
7
+ $form = new Varien_Data_Form(array('id' => 'edit_form', 'action' => $this->getData('action'), 'method' => 'post','enctype' => 'multipart/form-data'));
8
+ $form->setUseContainer(true);
9
+ $this->setForm($form);
10
+ return parent::_prepareForm();
11
+ }
12
+
13
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tab/Layout.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects_Edit_Tab_Layout
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareForm()
7
+ {
8
+ $model = Mage::registry('auit_publicationbasic_project');
9
+ /*
10
+ * Checking if user have permissions to save information
11
+ */
12
+ if ($this->_isAllowedAction('save')) {
13
+ $isElementDisabled = false;
14
+ } else {
15
+ $isElementDisabled = true;
16
+ }
17
+
18
+ $form = new Varien_Data_Form();
19
+ $form->setHtmlIdPrefix('layout_');
20
+ // $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('auit_publicationbasic')->__('Texte'), 'class' => 'fieldset-wide'));
21
+ // $this->_addElementTypes($fieldset);
22
+ $this->_addElementTypes($form);
23
+
24
+ $form->addField('data', 'auit-publication-canvas', array(
25
+ 'name' => 'data',
26
+ ));
27
+
28
+ $form->setValues($model->getData());
29
+ $this->setForm($form);
30
+
31
+ return parent::_prepareForm();
32
+ }
33
+ public function getTabLabel()
34
+ {
35
+ return Mage::helper('auit_publicationbasic')->__('Layout');
36
+ }
37
+ public function getTabTitle()
38
+ {
39
+ return Mage::helper('auit_publicationbasic')->__('Layout');
40
+ }
41
+ public function canShowTab()
42
+ {
43
+ return true;
44
+ }
45
+ public function isHidden()
46
+ {
47
+ return false;
48
+ }
49
+ protected function _isAllowedAction($action)
50
+ {
51
+ return true;
52
+ }
53
+ protected function _getAdditionalElementTypes()
54
+ {
55
+ $result = array(
56
+ 'auit-publication-canvas' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/widget_form_element_publication'),
57
+ );
58
+ return $result;
59
+ }
60
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tab/Main.php ADDED
@@ -0,0 +1,118 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects_Edit_Tab_Main
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareForm()
7
+ {
8
+ $model = Mage::registry('auit_publicationbasic_project');
9
+ if ($this->_isAllowedAction('save')) {
10
+ $isElementDisabled = false;
11
+ } else {
12
+ $isElementDisabled = true;
13
+ }
14
+
15
+
16
+ $form = new Varien_Data_Form();
17
+
18
+ $form->setHtmlIdPrefix('page_');
19
+
20
+ $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('auit_publicationbasic')->__('General Information'), 'class' => ''));
21
+ $this->_addElementTypes($fieldset);
22
+ if ($model->getProjectId()) {
23
+ $fieldset->addField('project_id', 'hidden', array(
24
+ 'name' => 'project_id',
25
+ ));
26
+ }
27
+ $fieldset->addField('type', 'select', array(
28
+ 'name' => 'type',
29
+ 'label' => $this->__('Project Type'),
30
+ 'title' => $this->__('Project Type'),
31
+ 'values' => Mage::helper('auit_publicationbasic')->getProjectsOptions(),
32
+ 'required' => true,
33
+ 'disabled' => true
34
+ ));
35
+
36
+ $fieldset->addField('name', 'text', array(
37
+ 'name' => 'name',
38
+ 'label' => Mage::helper('auit_publicationbasic')->__('Name'),
39
+ 'title' => Mage::helper('auit_publicationbasic')->__('Name'),
40
+ 'required' => true,
41
+ ));
42
+ $fieldset->addField('status', 'select', array(
43
+ 'label' => Mage::helper('auit_publicationbasic')->__('Status'),
44
+ 'title' => Mage::helper('auit_publicationbasic')->__('Status'),
45
+ 'name' => 'status',
46
+ 'required' => true,
47
+ 'options' => array(
48
+ '1' => Mage::helper('auit_publicationbasic')->__('Enabled'),
49
+ '0' => Mage::helper('auit_publicationbasic')->__('Disabled'),
50
+ ),
51
+ ));
52
+
53
+ if (!$model->getId()) {
54
+ $model->setData('is_active', '1');
55
+ }
56
+ $form->setValues($model->getData());
57
+ $this->setForm($form);
58
+ return parent::_prepareForm();
59
+ }
60
+
61
+ /**
62
+ * Prepare label for tab
63
+ *
64
+ * @return string
65
+ */
66
+ public function getTabLabel()
67
+ {
68
+ return Mage::helper('auit_publicationbasic')->__('Information');
69
+ }
70
+
71
+ /**
72
+ * Prepare title for tab
73
+ *
74
+ * @return string
75
+ */
76
+ public function getTabTitle()
77
+ {
78
+ return Mage::helper('auit_publicationbasic')->__('Information');
79
+ }
80
+
81
+ /**
82
+ * Returns status flag about this tab can be shown or not
83
+ *
84
+ * @return true
85
+ */
86
+ public function canShowTab()
87
+ {
88
+ return true;
89
+ }
90
+
91
+ /**
92
+ * Returns status flag about this tab hidden or not
93
+ *
94
+ * @return true
95
+ */
96
+ public function isHidden()
97
+ {
98
+ return false;
99
+ }
100
+
101
+ /**
102
+ * Check permission for passed action
103
+ *
104
+ * @param string $action
105
+ * @return bool
106
+ */
107
+ protected function _isAllowedAction($action)
108
+ {
109
+ return true;//Mage::getSingleton('admin/session')->isAllowed('auit_publicationbasic/group/' . $action);
110
+ }
111
+ protected function _getAdditionalElementTypes()
112
+ {
113
+ $result = array(
114
+ // 'auit-storelocator-list' => Mage::getConfig()->getBlockClassName('auit_publicationbasic/widget_form_element_list'),
115
+ );
116
+ return $result;
117
+ }
118
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tab/Settings.php ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects_Edit_Tab_Settings
3
+ extends Mage_Adminhtml_Block_Widget_Form
4
+ implements Mage_Adminhtml_Block_Widget_Tab_Interface
5
+ {
6
+ protected function _prepareLayout()
7
+ {
8
+ $this->setChild('continue_button',
9
+ $this->getLayout()->createBlock('adminhtml/widget_button')
10
+ ->setData(array(
11
+ 'label' => Mage::helper('catalog')->__('Continue'),
12
+ 'onclick' => "if (editForm.submit()) { return false }",
13
+ 'class' => 'save'
14
+ )
15
+ )
16
+ );
17
+ return parent::_prepareLayout();
18
+ }
19
+
20
+ /**
21
+ * Prepare form before rendering HTML
22
+ * Setting Form Fieldsets and fields
23
+ *
24
+ * @return Mage_Adminhtml_Block_Widget_Form
25
+ */
26
+ protected function _prepareForm()
27
+ {
28
+
29
+ $form = new Varien_Data_Form();
30
+ $form->setHtmlIdPrefix('app_');
31
+ $fieldset = $form->addFieldset('base_fieldset', array('legend' => $this->__('Project Information')));
32
+
33
+ $fieldset->addField('type', 'select', array(
34
+ 'name' => 'type',
35
+ 'label' => $this->__('Project Type'),
36
+ 'title' => $this->__('Project Type'),
37
+ 'values' => Mage::helper('auit_publicationbasic')->getProjectsOptions(),
38
+ 'required' => true
39
+ ));
40
+
41
+ $fieldset->addField('continue_button', 'note', array(
42
+ 'text' => $this->getChildHtml('continue_button'),
43
+ ));
44
+
45
+ $this->setForm($form);
46
+ return parent::_prepareForm();
47
+ }
48
+
49
+ /**
50
+ * Tab label getter
51
+ *
52
+ * @return string
53
+ */
54
+ public function getTabLabel()
55
+ {
56
+ return $this->__('Settings');
57
+ }
58
+
59
+ /**
60
+ * Tab title getter
61
+ *
62
+ * @return string
63
+ */
64
+ public function getTabTitle()
65
+ {
66
+ return $this->__('Settings');
67
+ }
68
+
69
+ /**
70
+ * Check if tab can be shown
71
+ *
72
+ * @return bool
73
+ */
74
+ public function canShowTab()
75
+ {
76
+ return (bool) Mage::getSingleton('adminhtml/session')->getNewAuitPublication();
77
+ }
78
+
79
+ /**
80
+ * Check if tab hidden
81
+ *
82
+ * @return bool
83
+ */
84
+ public function isHidden()
85
+ {
86
+ return false;
87
+ }
88
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Edit/Tabs.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
3
+ {
4
+
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+ $this->setId('page_tabs');
9
+ $this->setDestElementId('edit_form');
10
+ $this->setTitle(Mage::helper('auit_publicationbasic')->__('Manage Layout Project'));
11
+ }
12
+ protected function _prepareLayout()
13
+ {
14
+ if (Mage::getSingleton('adminhtml/session')->getNewAuitPublication()) {
15
+ $this->addTab('set', array(
16
+ 'label' => $this->__('Settings'),
17
+ 'content' => $this->getLayout()
18
+ ->createBlock('auit_publicationbasic/adminhtml_projects_edit_tab_settings')
19
+ ->toHtml(),
20
+ 'active' => true
21
+ ));
22
+ }
23
+ return parent::_prepareLayout();
24
+ }
25
+
26
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Projects/Grid.php ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Projects_Grid extends Mage_Adminhtml_Block_Widget_Grid
3
+ {
4
+
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+ $this->setId('publicationTextGrid');
9
+ $this->setDefaultSort('text_identifier');
10
+ $this->setDefaultDir('ASC');
11
+ }
12
+
13
+ protected function _prepareCollection()
14
+ {
15
+ $collection = Mage::getModel('auit_publicationbasic/project')->getCollection();
16
+ $this->setCollection($collection);
17
+ return parent::_prepareCollection();
18
+ }
19
+
20
+ protected function _prepareColumns()
21
+ {
22
+ $this->addColumn('project_id', array(
23
+ 'header' => Mage::helper('auit_publicationbasic')->__('ID'),
24
+ 'width' => '50px',
25
+ 'index' => 'project_id',
26
+ 'type' => 'number',
27
+ ));
28
+
29
+ $this->addColumn('name', array(
30
+ 'header' => Mage::helper('auit_publicationbasic')->__('Name'),
31
+ 'align' => 'left',
32
+ 'index' => 'name'
33
+ ));
34
+ $this->addColumn('status', array(
35
+ 'header' => Mage::helper('auit_publicationbasic')->__('Status'),
36
+ 'index' => 'status',
37
+ 'type' => 'options',
38
+ 'options' => array(
39
+ '1' => Mage::helper('auit_publicationbasic')->__('Enabled'),
40
+ '0' => Mage::helper('auit_publicationbasic')->__('Disabled'),
41
+ ),
42
+ 'width' => '150',
43
+ ));
44
+ return parent::_prepareColumns();
45
+ }
46
+ public function getRowUrl($row)
47
+ {
48
+ return $this->getUrl('*/*/edit', array('project_id' => $row->getId()));
49
+ }
50
+ protected function _prepareMassaction()
51
+ {
52
+ $this->setMassactionIdField('project_id');
53
+ $this->getMassactionBlock()->setFormFieldName('project_ids');
54
+ $this->getMassactionBlock()->addItem('preview', array(
55
+ 'label' => Mage::helper('customer')->__('Delete'),
56
+ 'url' => $this->getUrl('*/*/massDelete'),
57
+ 'confirm' => Mage::helper('catalog')->__('Are you sure?')
58
+ ));
59
+ return $this;
60
+ }
61
+
62
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Satzeditor.php ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Satzeditor extends Mage_Adminhtml_Block_Template
3
+ {
4
+ protected $_modeloptions;
5
+ protected $_obj;
6
+
7
+ protected function _prepareLayout()
8
+ {
9
+ return parent::_prepareLayout();
10
+ }
11
+ protected function _beforeToHtml()
12
+ {
13
+ return parent::_beforeToHtml();
14
+ }
15
+ /*
16
+ public function isTemplate($type=-1)
17
+ {
18
+ $objectInfo = $this->getObjectInfo();
19
+ $isTemplate = ($objectInfo['model']=='template');
20
+ $t = $objectInfo['type'];
21
+ return ($isTemplate && $type==-1) || ($isTemplate && $type==$t);
22
+ }
23
+ public function getTemplateType()
24
+ {
25
+ $objectInfo = $this->getObjectInfo();
26
+ $isTemplate = ($objectInfo['model']=='template');
27
+ $t = $objectInfo['type'];
28
+ return $isTemplate?$t:0;
29
+ }
30
+ */
31
+ /*
32
+ public function getObjectInfo()
33
+ {
34
+ $objectData=array();
35
+ if ( $obj =Mage::registry('auit_publicationbasic_project') ){
36
+ $objectData['model']='project';
37
+ $objectData['id']=$obj->getId();
38
+ $objectData['type']=$obj->getType();
39
+ }
40
+ if ( $obj =Mage::registry('auit_publicationbasic_template') ){
41
+ $objectData['model']='template';
42
+ $objectData['id']=$obj->getId();
43
+ $objectData['type']=$obj->getType();
44
+ }
45
+ return $objectData;
46
+ }
47
+ */
48
+ public function getObj()
49
+ {
50
+ if ( !$this->_obj )
51
+ {
52
+ $obj = Mage::helper('auit_publicationbasic')->cleanLayoutData($this->getElement()->getValue());
53
+ // $obj['object']=$this->getObjectInfo();
54
+ $this->_obj = $obj;
55
+
56
+ }
57
+ return $this->_obj;
58
+ }
59
+ public function getJsonObj()
60
+ {
61
+
62
+ return Mage::helper('core')->jsonEncode($this->getObj());
63
+ }
64
+ /**
65
+ public function getJsonProductData()
66
+ {
67
+ $obj = $this->getObj();
68
+ $type=AuIt_PublicationBasic_Helper_Data::TEMPLATE_UNKNOWN;
69
+ if ( $obj && isset($obj['object']) && isset($obj['object']['type']))
70
+ $type=$obj['object']['type'];
71
+ return Mage::helper('core')->jsonEncode(Mage::helper('auit_publicationbasic')->getPreviewDataFromStore($obj['preview_sku'],$type,$obj['preview_store']));
72
+ }
73
+ */
74
+ public function getJsonModel()
75
+ {
76
+ return '';//Mage::helper('core')->jsonEncode($this->getObj());
77
+ }
78
+ public function getObjData($key)
79
+ {
80
+ $d = $this->getObj();
81
+ return $d[$key];
82
+ }
83
+ /*
84
+ public function getModelOptions()
85
+ {
86
+ if ( !$this->_modeloptions )
87
+ {
88
+ $obj = $this->getObj();
89
+ $genParams=array();
90
+ foreach ( Mage::getResourceModel('auit_publicationbasic/generator_collection')->load() as $opt )
91
+ {
92
+ $genParams[$opt->getIdentifier()] = $opt->getParameter();
93
+ }
94
+ // Mage::log($genParams);
95
+ $options=array(
96
+ 'gen_params'=>$genParams,
97
+ 'attributes'=>Mage::helper('auit_publicationbasic')->getAttributes($this->isTemplate(),$this->getTemplateType()),
98
+ 'searchurl'=>Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_preview/search'),
99
+ 'styleurl'=>Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_styles/edit'),
100
+ 'dataurl'=>$this->getUrl('auit_publicationbasic/content/data'),
101
+ 'templurl'=>$this->getUrl('auit_publicationbasic/content/templ'),
102
+ 'generatorurl'=>$this->getUrl('auit_publicationbasic/content/generator'),
103
+ 'blockurl'=>$this->getUrl('auit_publicationbasic/content/block'),
104
+ 'mediaUrl'=>Mage::getBaseUrl('media'),
105
+ 'contenturl'=>str_replace('/media/', '/auit_publicationbasic/content/', Mage::getBaseUrl('media')),
106
+ 'imgurl'=>$this->getUrl('auit_publicationbasic/content/image'),
107
+ 'cssurl'=>$this->getUrl('auit_publicationbasic/content/css'),
108
+ // 'css'=>Mage::helper('auit_publicationbasic/style')->getCssFromObj($obj),
109
+ 'css_class'=>Mage::helper('auit_publicationbasic/style')->getCssClasses($obj),
110
+ 'msg'=>array(
111
+ 'b1'=>$this->__('Are you sure you want to delete current box?'),
112
+ 'p1'=>$this->__('Are you sure you want to delete current page?'),
113
+ ),
114
+ 'clipgroups'=>Mage::helper('auit_publicationbasic/svg')->getClipGroups()
115
+ );
116
+ $this->_modeloptions=$options;
117
+ }
118
+ return $this->_modeloptions;
119
+ }
120
+ */
121
+ }
app/code/local/AuIt/PublicationBasic/Block/Adminhtml/Versioninfo.php ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Adminhtml_Versioninfo
3
+ extends Mage_Adminhtml_Block_Abstract
4
+ implements Varien_Data_Form_Element_Renderer_Interface
5
+ {
6
+ public function render(Varien_Data_Form_Element_Abstract $element)
7
+ {
8
+ $info = '<fieldset class="config">'.
9
+ Mage::helper('auit_publicationbasic')->__('pdfPUBLICATION Basic version: %s', Mage::getConfig()->getNode('modules/AuIt_PublicationBasic/version')).
10
+ // '&#160;&#160;'.Mage::helper('auit_publicationbasic')->__('<a target="_blank" href="%s">Documentation english</a>', 'http://www.snm-portal.com/media/content/images/pdf/pdfPRINT_en.pdf').
11
+ // '&#160;&#160;'.Mage::helper('auit_publicationbasic')->__('<a target="_blank" href="%s">Dokumentation deutsch</a>', 'http://www.snm-portal.com/media/content/images/pdf/pdfPRINT_de.pdf').
12
+ '&#160;&#160;'.Mage::helper('auit_publicationbasic')->__('<a target="_blank" href="%s">More Infos - FAQ</a>', 'http://snm-portal.com/magento-pdf-publication-templates.html').
13
+ '</fieldset>';
14
+ return $info;
15
+ }
16
+ }
app/code/local/AuIt/PublicationBasic/Block/Frame.php ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Block_Frame extends Mage_Core_Block_Template
4
+ {
5
+ static function Inch2MM($val) {
6
+ return $val*25.4;
7
+ }
8
+ static function MM2Inch($val)
9
+ {
10
+ return $val/25.4;
11
+ }
12
+ static function Px2Inch($val,$PixelsPerInch=96){
13
+ return $val/$PixelsPerInch;
14
+ }
15
+ static function Inch2Px($val,$PixelsPerInch=96)
16
+ {
17
+ return $val*$PixelsPerInch;
18
+ }
19
+ static function Px2MM($val,$PixelsPerInch=96){
20
+ return self::Inch2MM($val/$PixelsPerInch);
21
+ }
22
+ static function MM2Px($val,$PixelsPerInch=96)
23
+ {
24
+ return self::MM2Inch($val)*$PixelsPerInch;
25
+ }
26
+ }
app/code/local/AuIt/PublicationBasic/Block/Generator.php ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Generator extends Mage_Catalog_Block_Product_View
3
+ {
4
+ protected $_generator = null;
5
+ protected $_product = null;
6
+ protected $_childBoxes = array();
7
+ protected $_params = array();
8
+ public function getGenerator()
9
+ {
10
+ if ( !$this->_generator)
11
+ {
12
+ $this->_generator = Mage::getModel('auit_publicationbasic/generator')
13
+ ->setStoreId(Mage::app()->getStore()->getId())
14
+ ->load($this->getGeneratorId());
15
+ }
16
+ return $this->_generator;
17
+ }
18
+ public function setParameter($params)
19
+ {
20
+ if ( !is_array($params) )
21
+ {
22
+ try {
23
+ $params = Mage::helper('core')->jsonDecode($params);
24
+ $this->_params=$params;
25
+ }catch (Exeption $e )
26
+ {
27
+ }
28
+ }
29
+ return $this;
30
+ }
31
+ public function getGeneratorParameter($key,$default=null)
32
+ {
33
+ if ( isset($this->_params[$key]))
34
+ return $this->_params[$key];
35
+ $params = $this->getGenerator()->getParameter();
36
+ foreach ( $params as $param )
37
+ {
38
+ if ( $param['code'] == $key )
39
+ {
40
+ if ( isset($param['default']) && $param['default'])
41
+ return $param['default'];
42
+ }
43
+ }
44
+ return $default;
45
+ }
46
+ public function addBox($params)
47
+ {
48
+ $this->_childBoxes[]=$params;
49
+ }
50
+ public function getBoxes()
51
+ {
52
+ return $this->_childBoxes;
53
+ }
54
+
55
+ protected function _prepareLayout()
56
+ {
57
+ return Mage_Catalog_Block_Product_Abstract::_prepareLayout();
58
+
59
+ }
60
+ public function getPriceMatrix($mode=0)
61
+ {
62
+ $matrix=array();
63
+ $_product = $this->getProduct();
64
+
65
+ if ( $_product->isConfigurable() )
66
+ {
67
+
68
+ $typeBlock = $this->getLayout()->createBlock('catalog/product_view_type_configurable');
69
+ $data = Mage::helper('core')->jsonDecode($typeBlock->getJsonConfig());
70
+ mage::log($data);
71
+ $attributes= array_reverse($data['attributes']);
72
+ $pricevariants=array();
73
+ $products=array();
74
+ foreach ( $attributes as $attribute )
75
+ {
76
+ $aid=$attribute['label'];
77
+ foreach ( $attribute['options'] as $option )
78
+ {
79
+ $price = $option['price'];
80
+ $oid=$option['label'];
81
+ foreach ( $option['products'] as $productId )
82
+ {
83
+ $pricevariants[$price]['products'][$productId]=1;
84
+ $products[$productId]['attributes'][$aid]=$oid;
85
+ }
86
+ }
87
+ }
88
+ foreach ( $pricevariants as $p => $variant )
89
+ {
90
+ $price = sprintf('%02f',$p + $data['basePrice']);
91
+ $pv = array(
92
+ 'price'=> $price,
93
+ 'price_formatedold'=> str_replace('#{price}',$price,$data['template']),
94
+ 'price_formated'=> Mage::helper('auit_publicationbasic')->formatAsSpanPrice($p + $data['basePrice']),
95
+ //'old_price'=> $p + $data['oldPrice'],
96
+ //'old_price_formated'=> str_replace('#{price}',$p + $data['oldPrice'],$data['template'])
97
+ );
98
+
99
+
100
+ foreach ( $variant['products'] as $pid => $tmp )
101
+ {
102
+ foreach ( $products[$pid]['attributes'] as $aid => $oid )
103
+ {
104
+ $pv['attributes'][$aid][$oid]=1;
105
+ }
106
+ }
107
+ $matrix[]=$pv;
108
+ }
109
+ if ( $mode == 0 && !count($matrix))
110
+ {
111
+ $pv = array(
112
+ 'price'=> sprintf('%02f',$_product->getFinalPrice()),
113
+ 'price_formated'=> Mage::helper('auit_publicationbasic')->formatAsSpanPrice($_product->getFinalPrice()),
114
+ );
115
+ if ( $mode == 0)
116
+ $pv['attributes'][$this->__('Sku')][$_product->getSku()]=1;
117
+ else
118
+ $pv['attributes']=array();
119
+ $matrix[]=$pv;
120
+ }
121
+ }else {
122
+ $pv = array(
123
+ 'price'=> sprintf('%02f',$_product->getFinalPrice()),
124
+ 'price_formated'=> Mage::helper('auit_publicationbasic')->formatAsSpanPrice($_product->getFinalPrice()),
125
+ );
126
+ if ( $mode == 0)
127
+ $pv['attributes'][$this->__('Sku')][$_product->getSku()]=1;
128
+ else
129
+ $pv['attributes']=array();
130
+ $matrix[]=$pv;
131
+ }
132
+ return $matrix;
133
+ }
134
+ public function getAdditionalData(array $excludeAttr = array())
135
+ {
136
+ $data = array();
137
+ $product = $this->getProduct();
138
+ $attributes = $product->getAttributes();
139
+ foreach ($attributes as $attribute) {
140
+ // if ($attribute->getIsVisibleOnFront() && $attribute->getIsUserDefined() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
141
+ if ($attribute->getIsVisibleOnFront() && !in_array($attribute->getAttributeCode(), $excludeAttr)) {
142
+ $value = $attribute->getFrontend()->getValue($product);
143
+
144
+ if (!$product->hasData($attribute->getAttributeCode())) {
145
+ $value = Mage::helper('catalog')->__('N/A');
146
+ } elseif ((string)$value == '') {
147
+ $value = Mage::helper('catalog')->__('No');
148
+ } elseif ($attribute->getFrontendInput() == 'price' && is_string($value)) {
149
+ $value = Mage::app()->getStore()->convertPrice($value, true);
150
+ }
151
+
152
+ if (is_string($value) && strlen($value)) {
153
+ $data[$attribute->getAttributeCode()] = array(
154
+ 'label' => $attribute->getStoreLabel(),
155
+ 'value' => $value,
156
+ 'code' => $attribute->getAttributeCode()
157
+ );
158
+ }
159
+ }
160
+ }
161
+ return $data;
162
+ }
163
+
164
+
165
+ protected function _toHtml()
166
+ {
167
+ if ( $this->getGenerator()->getType() == AuIt_PublicationBasic_Model_Generator::TYPE_MARKUP )
168
+ {
169
+ /* @var $helper Mage_Cms_Helper_Data */
170
+ $helper = Mage::helper('cms');
171
+ $processor = $helper->getBlockTemplateProcessor();
172
+ return $processor->filter($this->getGenerator()->getSource());
173
+ }
174
+ if ( $this->getGenerator()->getType() == AuIt_PublicationBasic_Model_Generator::TYPE_PHTML )
175
+ {
176
+ $html = $this->fetchView('dummy');
177
+ return $html;
178
+ }
179
+ return '';
180
+ }
181
+ public function fetchView($fileName)
182
+ {
183
+ extract ($this->_viewVars, EXTR_SKIP);
184
+ ob_start();
185
+ $html ='';
186
+ try {
187
+ eval('?>'.$this->getGenerator()->getSource());
188
+ $html = ''.ob_get_clean();
189
+ } catch (Exception $e) {
190
+ ob_get_clean();
191
+ $html = 'Exception:'.$e->getMessage();
192
+ // throw $e;
193
+ }
194
+
195
+ return $html;
196
+ }
197
+ }
app/code/local/AuIt/PublicationBasic/Block/Product/Buttons.php ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Block_Product_Buttons extends Mage_Core_Block_Template
4
+ {
5
+ public function getProduct()
6
+ {
7
+ if (!$this->getData('product') instanceof Mage_Catalog_Model_Product) {
8
+ $productId = $this->getProductId();
9
+ if ($productId) {
10
+ $product = Mage::getModel('catalog/product')->load($productId);
11
+ if ($product) {
12
+ $this->setProduct($product);
13
+ }
14
+ }
15
+ if (!$this->getData('product') instanceof Mage_Catalog_Model_Product) {
16
+ $this->setData('product', Mage::registry('product'));
17
+ }
18
+ }
19
+ return $this->getData('product');
20
+ }
21
+
22
+ }
app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Parameter.php ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Widget_Form_Element_Parameter extends Varien_Data_Form_Element_Abstract
3
+ {
4
+ public function getElementHtml()
5
+ {
6
+ $content = Mage::getSingleton('core/layout')
7
+ ->createBlock('auit_publicationbasic/widget_form_renderer_parameter');
8
+ $content->setId($this->getHtmlId() . '_content')
9
+ ->setElement($this);
10
+ return $content->toHtml();
11
+ }
12
+ }
13
+
app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Publication.phpXXX ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Widget_Form_Element_Publication extends Varien_Data_Form_Element_Abstract
3
+ {
4
+ public function getElementHtml()
5
+ {
6
+ $content = Mage::getSingleton('core/layout')
7
+ ->createBlock('auit_publicationbasic/adminhtml_publication')
8
+ ->setElement($this)
9
+ ->setId($this->getHtmlId() . '_content')
10
+ ->setTemplate('auit/publication/publication.phtml');
11
+ /*
12
+ $content->setId($this->getHtmlId() . '_content')
13
+ ->setElement($this);
14
+ */
15
+ $html = $content->toHtml();
16
+
17
+ $content = Mage::getSingleton('core/layout')
18
+ ->createBlock('auit_publicationbasic/adminhtml_publication')
19
+ ->setTemplate('auit/publication/filemanager.phtml');
20
+ $content->setId($this->getHtmlId() . '_content2')
21
+ ->setElement($this);
22
+ $html .= $content->toHtml();
23
+
24
+
25
+ $content = Mage::getSingleton('core/layout')
26
+ ->createBlock('auit_publicationbasic/adminhtml_publication')
27
+ ->setTemplate('auit/publication/stylemanager.phtml');
28
+ $content->setId($this->getHtmlId() . '_content3')
29
+ ->setElement($this);
30
+
31
+ return $html . $content->toHtml();
32
+ }
33
+ }
34
+
app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Satzeditor.php ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Widget_Form_Element_Satzeditor extends Varien_Data_Form_Element_Abstract
3
+ {
4
+ public function getElementHtml()
5
+ {
6
+ $content = Mage::getSingleton('core/layout')
7
+ ->createBlock('auit_publicationbasic/adminhtml_satzeditor')
8
+ ->setElement($this)
9
+ ->setId($this->getHtmlId() . '_content')
10
+ ->setTemplate('auit/publicationbasic/satzeditor.phtml');
11
+ $html = $content->toHtml();
12
+ $content = Mage::getSingleton('core/layout')
13
+ ->createBlock('core/template')
14
+ ->setTemplate('auit/publicationbasic/filemanager.phtml');
15
+ $content->setId($this->getHtmlId() . '_content2')
16
+ ->setElement($this);
17
+ $html .= $content->toHtml();
18
+ return $html;
19
+ }
20
+ }
21
+
app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Element/Styles.phpXXX ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Widget_Form_Element_Styles extends Varien_Data_Form_Element_Abstract
3
+ {
4
+ public function getElementHtml()
5
+ {
6
+ $html = '';
7
+
8
+ $content = Mage::getSingleton('core/layout')
9
+ ->createBlock('core/template')
10
+ ->setTemplate('auit/publication/stylemanager.phtml');
11
+ $content->setId($this->getHtmlId() . '_content3')
12
+ ->setElement($this);
13
+
14
+ return $html . $content->toHtml();
15
+ }
16
+ }
17
+
app/code/local/AuIt/PublicationBasic/Block/Widget/Form/Renderer/Parameter.php ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Block_Widget_Form_Renderer_Parameter extends Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
3
+ {
4
+ protected $magentoAttributes;
5
+ public function __construct()
6
+ {
7
+ $this->setHtmlId('_' . uniqid());
8
+
9
+ $this->addColumn('code', array(
10
+ 'label' => Mage::helper('auit_publicationbasic')->__('Code'),
11
+ 'style' => 'width:95%'
12
+ ));
13
+ $this->addColumn('name', array(
14
+ 'label' => Mage::helper('auit_publicationbasic')->__('Name'),
15
+ 'style' => 'width:95%'
16
+ ));
17
+ $this->addColumn('type', array(
18
+ 'label' => Mage::helper('auit_publicationbasic')->__('Type'),
19
+ 'style' => 'width:95%'
20
+ ));
21
+ $this->addColumn('unit', array(
22
+ 'label' => Mage::helper('auit_publicationbasic')->__('Unit'),
23
+ 'style' => 'width:95%'
24
+ ));
25
+ $this->addColumn('default', array(
26
+ 'label' => Mage::helper('auit_publicationbasic')->__('Default'),
27
+ 'style' => 'width:95%',
28
+ 'class' => 'input-text'
29
+ ));
30
+
31
+ $this->_addAfter = false;
32
+ $this->_addButtonLabel = Mage::helper('auit_publicationbasic')->__('Add new Parameter');
33
+ $this->setTemplate('auit/publicationbasic/renderer/array_date.phtml');
34
+ parent::__construct();
35
+ }
36
+ protected function _renderCellTemplate($columnName)
37
+ {
38
+ $column = $this->_columns[$columnName];
39
+ $inputName = $this->getElement()->getName() . '[#{_id}][' . $columnName . ']';
40
+
41
+ if($columnName == 'type' )
42
+ {
43
+ $html = '<select class="select " name="'.$inputName.'" style="width:100%">';
44
+ switch ( $columnName )
45
+ {
46
+ case 'type':
47
+ $html .= '<option value="input">'.Mage::helper('checkout')->__('Text').'</option>';
48
+ $html .= '<option value="area">'.Mage::helper('checkout')->__('Text Area').'</option>';
49
+ $html .= '<option value="number">'.Mage::helper('checkout')->__('Number').'</option>';
50
+ $html .= '<option value="color">'.Mage::helper('checkout')->__('Color').'</option>';
51
+ break;
52
+ }
53
+ $html .= '</select>';
54
+ return $html;
55
+ }
56
+ return parent::_renderCellTemplate($columnName);
57
+ }
58
+ public function getDateFormat()
59
+ {
60
+ return Mage::app()->getLocale()->getDateStrFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
61
+ $displayFormat = Varien_Date::convertZendToStrFtime(Mage::app()->getLocale()->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT), true, false);
62
+ $displayTimeFormat = Varien_Date::convertZendToStrFtime(Mage::app()->getLocale()->getTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT), false, true);
63
+ return $displayFormat . ' ' .$displayTimeFormat;
64
+ }
65
+ public function getArrayRows()
66
+ {
67
+ if (null !== $this->_arrayRowsCache) {
68
+ return $this->_arrayRowsCache;
69
+ }
70
+ $result = parent::getArrayRows();
71
+ foreach ( $result as &$row )
72
+ {
73
+ foreach ( array('time_start','time_end') as $field)
74
+ {
75
+ if ( isset($row [$field]) )
76
+ {
77
+ $row [$field]=$this->formatDate($row [$field]);//,Mage_Core_Model_Locale::FORMAT_TYPE_SHORT,true);
78
+ }
79
+ }
80
+ }
81
+ $this->_arrayRowsCache = $result;
82
+ return $this->_arrayRowsCache;
83
+ }
84
+
85
+ }
app/code/local/AuIt/PublicationBasic/Block/Widget/Grid/Column/Renderer/Image.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Block_Widget_Grid_Column_Renderer_Image extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
10
+ {
11
+ public function __construct() {
12
+ }
13
+ public function render(Varien_Object $row)
14
+ {
15
+ return $this->_getValue($row);
16
+ }
17
+ public function _getValue(Varien_Object $row)
18
+ {
19
+ static $_dummyProduct;
20
+ if ( !$_dummyProduct)
21
+ $_dummyProduct = Mage::getModel('catalog/product');
22
+
23
+ $image_file = $this->getColumn()->getDefault();
24
+ $image_file = parent::_getValue($row);
25
+ $html = "";
26
+ $url='';
27
+
28
+ $location = Mage::getBaseDir('media').'/catalog/product'. $image_file;
29
+ if ( !$image_file || $image_file=='no_selection' )
30
+ {
31
+ $html = "";
32
+ }
33
+ else if ( !file_exists($location) || !is_file($location))
34
+ {
35
+ $html = "<span style=\"color:red\">$image_file</span>";
36
+ }
37
+ else
38
+ {
39
+ // $url = Mage::getBaseUrl('media').'/catalog/product'. $image_file;
40
+ //$html = "<span style=\"color:red\">$html</span>";
41
+ try {
42
+ $url = ''.Mage::helper('catalog/image')->init($_dummyProduct,$this->getColumn()->getData('index'),$image_file)->resize(75,75);
43
+ $html = "<img src=". $url ." style=\"width:75px;border=0\"/>";
44
+ }catch (Exception $e)
45
+ {
46
+ $html = "<span style=\"color:red\">$image_file</span>";
47
+ }
48
+ }
49
+ if ( Mage::app()->getFrontController()->getRequest()->getParam('expexcelmode') )
50
+ {
51
+ if ( $url )
52
+ {
53
+ return str_replace(Mage::getBaseUrl('media'),Mage::getBaseDir('media').DS,$url);
54
+ }
55
+ return $url;
56
+ }
57
+ return $html;
58
+ }
59
+ }
app/code/local/AuIt/PublicationBasic/Helper/Arrayconfig.php ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Helper_Arrayconfig extends Mage_Core_Helper_Abstract
10
+ {
11
+ public function getArrayStoreConfig($key)
12
+ {
13
+ $obj = new Varien_Object();
14
+ $value = Mage::getStoreConfig($key);
15
+ if ( !trim($value))
16
+ {
17
+ $obj->setValue('');
18
+ $value = Mage::helper('auit_publicationbasic/config')->getDefaults($key);
19
+ }
20
+ else {
21
+ if ( strpos($value,'base64:') === 0 )
22
+ {
23
+ $value = base64_decode(substr($value,7));
24
+ }
25
+ }
26
+ if ( !is_array($value) )
27
+ $value=@unserialize($value);
28
+
29
+ $obj->setValue($value);
30
+ return $value;
31
+ }
32
+ public function setArrayStoreConfig($key,$data)
33
+ {
34
+ $value=@serialize($data);
35
+ try {
36
+ $value='base64:'.base64_encode($value);
37
+ Mage::getModel('core/config_data')
38
+ ->load($key, 'path')
39
+ ->setValue($value)
40
+ ->setPath($key)
41
+ ->save();
42
+ Mage::app()->cleanCache(array(Mage_Core_Model_Config::CACHE_TAG));
43
+ } catch (Exception $e) {
44
+ throw new Exception(Mage::helper('core')->__('Unable to save '.$key));
45
+ }
46
+ }
47
+ }
app/code/local/AuIt/PublicationBasic/Helper/Config.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Helper_Config extends Mage_Core_Helper_Abstract
10
+ {
11
+
12
+ public function getDefaults($path)
13
+ {
14
+ switch ( $path )
15
+ {
16
+ case 'auit_layoute/'.'r':
17
+ return $this->__('Plea'.'se c'.'hec'.'k y'.'our '.'lic'.'ense'.' k'.'ey!');
18
+ }
19
+
20
+ /**
21
+ * $_options['DIN-A#297#420'] = $this->__('A3');
22
+ $_options['DIN-A#210#297'] = $this->__('A4');
23
+ $_options['DIN-A#148#210'] = $this->__('A5');
24
+ $_options['DIN-B#176#250'] = $this->__('B5');
25
+ $_options['FREE#119.944#120.65'] = $this->__('Compact Disc');
26
+ *
27
+ $_options['DIN-A,841,1189'] = $this->__('DIN A0');
28
+ $_options['DIN-A,594,841'] = $this->__('DIN A1');
29
+ $_options['DIN-A,420,594'] = $this->__('DIN A2');
30
+ $_options['DIN-A,105,148'] = $this->__('DIN A6');
31
+ $_options['DIN-A,74,105'] = $this->__('DIN A7');
32
+ *
33
+
34
+ $_options['US#215.9#279.4'] = $this->__('Letter (8½ × 11)');
35
+ $_options['US#215.9#355.6'] = $this->__('Legal (8½ × 14)');
36
+ $_options['US#,279.4#431.8'] = $this->__('Tabloid (11 × 17)');
37
+
38
+ */
39
+ return '';
40
+ }
41
+ public function getConfigData()
42
+ {
43
+ return '';
44
+ }
45
+ public function convertStringToHexString($s) {
46
+ $bs = '';
47
+ $chars = preg_split('//', $s, -1, PREG_SPLIT_NO_EMPTY);
48
+ foreach ($chars as $c) {
49
+ $bs .= sprintf('%02s', dechex(ord($c)));
50
+ }
51
+ return $bs;
52
+ }
53
+
54
+ }
app/code/local/AuIt/PublicationBasic/Helper/Data.php ADDED
@@ -0,0 +1,1094 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Helper_Data extends Mage_Core_Helper_Abstract
3
+ {
4
+ protected $_templateProcessor = null;
5
+
6
+ const PRINT_TYPE_PROMO=11;
7
+ const TEMPLATE_UNKNOWN=0;
8
+ const TEMPLATE_PRODUCT=1;
9
+ const TEMPLATE_STATIC=2;
10
+ const TEMPLATE_COUPON=3;
11
+
12
+ static $_sortField;
13
+ public function sortBy(&$items,$field)
14
+ {
15
+ self::$_sortField=$field;
16
+ $oldValue = setlocale ( LC_COLLATE , Mage::app()->getLocale()->getLocaleCode().'.UTF-8' );
17
+ uasort($items, array($this,'mystrcoll')) ;
18
+ return $this;
19
+ }
20
+ static function mystrcoll($item1, $item2)
21
+ {
22
+ return strcoll($item1[self::$_sortField], $item2[self::$_sortField]);
23
+ }
24
+ public static function log($message, $level = null) {
25
+ Mage::log($message, null, 'snm-cronjob.log', true);
26
+ }
27
+ public function checkMediaFolder()
28
+ {
29
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
30
+ foreach ( array(
31
+ Mage::getBaseDir('media').DS.'snm-portal'.DS.'fonts',
32
+ Mage::getBaseDir('media').DS.'snm-portal'.DS.'publication'.DS.'images',
33
+ Mage::getBaseDir('media').DS.'snm-portal'.DS.'publication'.DS.'jobs',
34
+ ) as $newdir)
35
+ {
36
+ if (!$helper->checkFolder ( $newdir )) {
37
+ Mage::getSingleton('adminhtml/session')->addError('Directory %s is not writable by server',$newdir);
38
+ }
39
+ }
40
+ }
41
+ public function cleanLayoutData($data)
42
+ {
43
+ $obj=array();
44
+ try {
45
+ $data = str_replace('$type','$type_',$data);
46
+ $obj = Mage::helper('core')->jsonDecode(trim($data));
47
+ }catch (Exception $e)
48
+ {
49
+ Mage::log("<br/>Decode: failed : ".$e->getMessage());
50
+ Mage::log($data);
51
+ echo "<br/>Decode: failed : ".$e->getMessage();
52
+ }
53
+ if ( !isset($obj['preview_sku']) )
54
+ $obj['preview_sku']='';
55
+ if ( !isset($obj['preview_store']) )
56
+ $obj['preview_store']=0;
57
+
58
+ if ( isset($obj['showCurrentSpread']) )
59
+ unset($obj['showCurrentSpread']);
60
+ return $obj;
61
+ }
62
+ public function getObjectData($sku,$type,$storeId=0,$bliveData=false,$ball=false,$printMode='x')
63
+ {
64
+ $data=array();
65
+
66
+ switch ($type)
67
+ {
68
+ case AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT:
69
+
70
+ if ( 0 && !$ball )
71
+ {
72
+ $product = Mage::getModel('catalog/product');
73
+ $product->setStoreId($storeId)->load($product->getIdBySku($sku));
74
+ $data[] = $this->getProductData($product,$bliveData);
75
+ }else {
76
+
77
+ $skuids=array();
78
+ foreach ( explode(',',$sku) as $item )
79
+ {
80
+ if ( trim($item) )
81
+ {
82
+ $skuids[]=trim($item);
83
+ // if ( $printMode == 'preview' )
84
+ // break;
85
+ }
86
+ }
87
+ if ( count($skuids) ){
88
+ $collection = Mage::getResourceModel('catalog/product_collection')
89
+ ->setStoreId($storeId)
90
+ ->addAttributeToFilter('sku',array('in'=>$skuids))
91
+ ->addAttributeToSelect('*');
92
+ $h=array();
93
+ foreach ( $collection as $item )
94
+ $h[trim($item->getSku())]=$this->getProductData($item,$bliveData);
95
+ foreach ( explode(',',$sku) as $sid )
96
+ {
97
+ $sid=trim($sid);
98
+ if ( isset($h[$sid]))
99
+ $data[] = $h[$sid];
100
+ }
101
+ }
102
+ if ( !count($data) )
103
+ {
104
+ $product = Mage::getModel('catalog/product');
105
+
106
+ if ( $printMode == 'preview' )
107
+ {
108
+
109
+ $collection = Mage::getResourceModel('catalog/product_collection')
110
+ ->setStoreId($storeId)
111
+ ->addAttributeToSelect('*')
112
+ ->setVisibility(Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH)
113
+ ->addAttributeToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_ENABLED)
114
+ ->addAttributeToFilter('type_id', Mage_Catalog_Model_Product_Type::TYPE_SIMPLE)
115
+ ->setPageSize(1)
116
+ ->setCurPage(1);
117
+
118
+ foreach ( $collection as $item ){
119
+ $data[] = $this->getProductData($item,$bliveData);
120
+ }
121
+ }else
122
+ $data[] = $this->getProductData($product,$bliveData);
123
+ }
124
+ }
125
+ break;
126
+ case AuIt_PublicationBasic_Helper_Data::TEMPLATE_STATIC:
127
+ $data[] = array('static'=>1);
128
+ break;
129
+ case AuIt_PublicationBasic_Helper_Data::TEMPLATE_COUPON:
130
+ $rule = Mage::getModel('salesrule/rule');
131
+ $rule->load($sku);
132
+ $d = array();
133
+ $rule->getData();
134
+
135
+ $locale = Mage::app()->getLocale();
136
+ $format = $locale->getDateFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
137
+ $collection =null;
138
+ foreach ( $this->_getCouponAttributes() as $code => $name )
139
+ {
140
+ $v = $rule->getData($code);
141
+ switch ( $code )
142
+ {
143
+ case 'from_date':
144
+ case 'to_date':
145
+ $v = ''.Mage::helper('core')->formatDate($v, Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
146
+ break;
147
+ case 'coupon_code':
148
+ $v = trim($rule->getCouponCode());
149
+ if ( $rule->getUseAutoGeneration() && !$ball )
150
+ {
151
+ $collection = Mage::getResourceModel('salesrule/coupon_collection');
152
+ /** @var Mage_SalesRule_Model_Resource_Coupon_Collection */
153
+ $collection->setPageSize(1)
154
+ ->addRuleToFilter($rule);
155
+ foreach ( $collection as $child ) {
156
+ $v = trim($child->getCode());
157
+ break;
158
+ }
159
+ }
160
+ break;
161
+ }
162
+ $d[$code]=$v;
163
+ }
164
+ $ruleData=$d;
165
+ if ( $ball )
166
+ {
167
+ if ( $rule->getUseAutoGeneration())
168
+ {
169
+ $collection = Mage::getResourceModel('salesrule/coupon_collection');
170
+ /** @var Mage_SalesRule_Model_Resource_Coupon_Collection */
171
+ $collection->addRuleToFilter($rule);
172
+ foreach ( $collection as $child ) {
173
+ $ruleData['coupon_code']=trim($child->getCode());
174
+ $data[]=$ruleData;
175
+ }
176
+ }else
177
+ $data[]=$ruleData;
178
+ }else {
179
+ $data[]=$ruleData;
180
+ }
181
+ break;
182
+ }
183
+ return $data;
184
+ }
185
+ protected function _getStoreId($storeId=0)
186
+ {
187
+ $sid=0;
188
+ foreach ( Mage::app()->getStores(false,true) as $key => $store )
189
+ {
190
+ if ( $key == $storeId )
191
+ {
192
+ $sid = $store->getId();
193
+ break;
194
+ }
195
+ }
196
+ if ( !$sid )
197
+ {
198
+ foreach ( Mage::app()->getStores(false,true) as $key => $store )
199
+ {
200
+ $sid = $store->getId();
201
+ break;
202
+ }
203
+ }
204
+ return $sid;
205
+ }
206
+ public function getPreviewDataFromStore($sku,$type,$storeId=0)
207
+ {
208
+ $lsku = $sku;
209
+ $lstoreId = $storeId;
210
+ if ( !$sku )
211
+ return array();
212
+ $storeId = $this->_getStoreId($storeId);
213
+ $appEmulation = Mage::getSingleton('core/app_emulation');
214
+ $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
215
+ $data=$this->getObjectData($sku,$type,$storeId);
216
+ $data = array_shift($data);
217
+ // Stop store emulation process
218
+ $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
219
+ // BUG translation from modulcodes
220
+ $initialDesign = $initialEnvironmentInfo->getInitialDesign();
221
+ Mage::getSingleton('core/translate')->init($initialDesign['area'], false);
222
+
223
+ $data['preview_sku']=$lsku;
224
+ $data['preview_store']=$lstoreId;
225
+
226
+ return $data;
227
+ }
228
+ public function getPreviewData($sku,$type)
229
+ {
230
+ $lsku = $sku;
231
+ $lstoreId = Mage::app()->getStore()->getName();
232
+ if ( !$sku )
233
+ return array();
234
+ // $storeId = $this->_getStoreId($storeId);
235
+ // $appEmulation = Mage::getSingleton('core/app_emulation');
236
+ //$initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
237
+ $storeId=Mage::app()->getStore()->getId();
238
+ $data=$this->getObjectData($sku,$type,$storeId);
239
+ $data = array_shift($data);
240
+ // Stop store emulation process
241
+ // $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
242
+ // BUG translation from modulcodes
243
+ //$initialDesign = $initialEnvironmentInfo->getInitialDesign();
244
+ //Mage::getSingleton('core/translate')->init($initialDesign['area'], false);
245
+
246
+ $data['preview_sku']=$lsku;
247
+ $data['preview_store']=$lstoreId;
248
+
249
+ return $data;
250
+ }
251
+ public function getStaticBlockHTML($identifier,$storeId=0)
252
+ {
253
+ $html = '';
254
+ // $storeId = $this->_getStoreId($storeId);
255
+ //$appEmulation = Mage::getSingleton('core/app_emulation');
256
+ //$initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
257
+
258
+ $html = Mage::getSingleton('core/layout')->createBlock('cms/block')
259
+ ->setBlockId($identifier)
260
+ ->toHtml();
261
+ //$appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
262
+ // BUG translation from modulcodes
263
+ //$initialDesign = $initialEnvironmentInfo->getInitialDesign();
264
+ //Mage::getSingleton('core/translate')->init($initialDesign['area'], false);
265
+ return $html;
266
+ }
267
+ public function getGeneratorHTML($param,$cls,$identifier,$pid,$storeId=0)
268
+ {
269
+
270
+ $html = '';
271
+ // $storeId = $this->_getStoreId($storeId);
272
+ //$appEmulation = Mage::getSingleton('core/app_emulation');
273
+ //$initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
274
+
275
+ if ( Mage::registry('product'))
276
+ Mage::unregister('product');
277
+
278
+ $_product = Mage::getModel('catalog/product');
279
+ $_product->setStoreId(Mage::app()->getStore()->getId());
280
+ $pid = $_product->getIdBySku($pid);
281
+ if ( $pid )
282
+ $_product->load($pid);
283
+ Mage::register('product',$_product);
284
+
285
+ $block = Mage::getSingleton('core/layout')->createBlock('auit_publicationbasic/generator')
286
+ ->setParameter($param)
287
+ ->setBoxClass($cls)
288
+ ->setGeneratorId($identifier);
289
+ //->setProductSku($pid)
290
+
291
+ //___store=german&___from_store=default
292
+ //$appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
293
+ // BUG translation from modulcodes
294
+ // $initialDesign = $initialEnvironmentInfo->getInitialDesign();
295
+ // Mage::getSingleton('core/translate')->init($initialDesign['area'], false);
296
+
297
+ return array('html'=>$block->toHtml(),'childs'=>$block->getBoxes());
298
+ }
299
+ public function mbtrim( $string )
300
+ {
301
+ $nonEscapableNbspChar = html_entity_decode('&#160;', ENT_NOQUOTES, 'UTF-8');
302
+ $string = preg_replace( "/(^\s+)|(\s+$)/us", "", $string );
303
+ return preg_replace( "/(^".$nonEscapableNbspChar."+)|(".$nonEscapableNbspChar."+$)/us", "", $string );
304
+ }
305
+ public function formatAsSpanPrice($price,$stripSpace=true,$withSypmbol=true)
306
+ {
307
+
308
+ $currency = Mage::app()->getStore()->getCurrentCurrency();
309
+ if ( $currency )
310
+ {
311
+ $code = Mage::app()->getStore()->getCurrentCurrencyCode();
312
+ $symbol ='';
313
+ if ( Mage::app()->getLocale()->currency($code) )
314
+ $symbol = Mage::app()->getLocale()->currency($code)->getSymbol();
315
+
316
+ $pf=$currency->formatTxt($price);
317
+ $pf2=$this->mbtrim(str_replace($symbol,'',$pf));
318
+ /*
319
+ * $data['_price_formated3']=$pf2;
320
+ */
321
+ $dp = substr($pf2, -3,1);
322
+ if ( $dp == '.' || $dp == ',' )
323
+ {
324
+ $tmp = substr($pf2,0,-3);
325
+ $tmp.= '<span¤class="bl-price-precision">'.substr($pf2,-3).'</span>';
326
+ $pf = str_replace($pf2,$tmp,$pf);
327
+ if ( $withSypmbol )
328
+ $pf = str_replace($symbol,'<span¤class="bl-price-symbol">'.$symbol.'</span>',$pf);
329
+ else
330
+ $pf = str_replace($symbol,'',$pf);
331
+ if ( $stripSpace )
332
+ {
333
+ $nonEscapableNbspChar = html_entity_decode('&#160;', ENT_NOQUOTES, 'UTF-8');
334
+ $pf = preg_replace( "/(\s)/us", "", $pf );
335
+ $pf = preg_replace( "/(".$nonEscapableNbspChar.")/us", "", $pf );
336
+ }
337
+ $pf = str_replace('¤',' ',$pf);
338
+ return $pf;
339
+ }
340
+ }
341
+ return $price;
342
+ }
343
+ protected function _getTemplateProcessor()
344
+ {
345
+ if (null === $this->_templateProcessor) {
346
+ $this->_templateProcessor = Mage::helper('catalog')->getPageTemplateProcessor();
347
+ }
348
+ return $this->_templateProcessor;
349
+ }
350
+
351
+ public function getProductData($product,$uselocal=false)
352
+ {
353
+ $data = array();
354
+ try {
355
+ if ( !isset($data['media_gallery']) || !isset($data['media_gallery']['images']))
356
+ $product->load('media_gallery');
357
+
358
+
359
+
360
+ foreach ( $product->getAttributes() as $attribute ){
361
+ if (in_array($attribute->getFrontendInput(), array('select','boolean','multiselect'))
362
+ ) {
363
+ $value = $attribute->getFrontend()->getValue($product);
364
+ } else {
365
+ $value = $product->getData($attribute->getAttributeCode());
366
+ if ( $attribute->getIsHtmlAllowedOnFront()) {
367
+ $value = $this->_getTemplateProcessor()->filter($value);
368
+ }
369
+ }
370
+ $data[$attribute->getAttributeCode()]=$value;
371
+ }
372
+ $attributes = $product->getMediaAttributes();
373
+ $helper = Mage::helper('catalog/image');
374
+ foreach ($attributes as $attribute) {
375
+ /* @var $attribute Mage_Eav_Model_Entity_Attribute */
376
+ $data[$attribute->getAttributeCode()]='';
377
+ try {
378
+ if ( $uselocal )
379
+ $data[$attribute->getAttributeCode()]= $product->getData($attribute->getAttributeCode());
380
+ else {
381
+ $data[$attribute->getAttributeCode()]=''.$helper->init($product, $attribute->getAttributeCode());
382
+ }
383
+ }catch ( Exception $e )
384
+ {
385
+
386
+ }
387
+ }
388
+ if ( isset($data['media_gallery']) && isset($data['media_gallery']['images']))
389
+ {
390
+ $idx=1;
391
+ foreach ($data['media_gallery']['images'] as $image) {
392
+ if ( !$image['disabled'] ) {
393
+ if ( $uselocal )
394
+ $data['image:'.$idx]= $image['file'];
395
+ else {
396
+ $data['image:'.$idx]=''.$helper->init($product, 'image',$image['file']);
397
+ }
398
+ $idx++;
399
+ }
400
+ }
401
+ unset($data['media_gallery']);
402
+ }
403
+ $data['_price']=$product->getFinalPrice();
404
+ //$data['_price']=$product->getTierPrice($qty);
405
+ $currency = Mage::app()->getStore()->getCurrentCurrency();
406
+ $code = Mage::app()->getStore()->getCurrentCurrencyCode();
407
+ $data['_price_formated']=$this->formatAsSpanPrice($data['_price'],false);
408
+ $data['_price_formated2']=$this->formatAsSpanPrice($data['_price'],true,false);
409
+ $data['_price_formated3']=$this->formatAsSpanPrice($data['_price'],true);
410
+ $symbol ='';
411
+ if ( Mage::app()->getLocale()->currency($code) )
412
+ $symbol = Mage::app()->getLocale()->currency($code)->getSymbol();
413
+ /*
414
+ if (0 && $currency )
415
+ {
416
+ //$nonEscapableNbspChar = html_entity_decode('&#160;', ENT_NOQUOTES, 'UTF-8');
417
+ if ( Mage::app()->getLocale()->currency($code) )
418
+ $symbol = Mage::app()->getLocale()->currency($code)->getSymbol();
419
+ $data['_price_formated']=$currency->formatTxt($product->getFinalPrice());
420
+ $data['_price_formated2']=$this->mbtrim(str_replace($symbol,'',$data['_price_formated']));
421
+ $data['_price_formated3']=$data['_price_formated2'];
422
+
423
+ $dp = substr($data['_price_formated2'], -3,1);
424
+
425
+ if ( $dp == '.' || $dp == ',' )
426
+ {
427
+ $tmp = substr($data['_price_formated2'],0,-3);
428
+ $tmp.= '<span¤class="precision">'.substr($data['_price_formated2'],-3).'</span>';
429
+ $data['_price_formated'] = str_replace($data['_price_formated2'],$tmp,$data['_price_formated']);
430
+ $data['_price_formated'] = str_replace($symbol,'<span¤class="symbol">'.$symbol.'</span>',$data['_price_formated']);
431
+ $data['_price_formated2'] = $tmp;
432
+ $nonEscapableNbspChar = html_entity_decode('&#160;', ENT_NOQUOTES, 'UTF-8');
433
+ $data['_price_formated3'] = preg_replace( "/(\s)/us", "", $data['_price_formated'] );
434
+ $data['_price_formated3'] = preg_replace( "/(".$nonEscapableNbspChar.")/us", "", $data['_price_formated3'] );
435
+ $data['_price_formated'] = str_replace('¤',' ',$data['_price_formated']);
436
+ $data['_price_formated2'] = str_replace('¤',' ',$data['_price_formated2']);
437
+ $data['_price_formated3'] = str_replace('¤',' ',$data['_price_formated3']);
438
+ }
439
+
440
+ }
441
+ */
442
+ // $data['_price_formated']=Mage::app()->getStore()->formatPrice($product->getFinalPrice(),false);//$product->getFormatedPrice();
443
+ $data['_price_final']=$product->getFinalPrice();
444
+ $data['_price_calculated_final']=$product->getCalculatedFinalPrice();
445
+ $data['_price_minimal_price']=$product->getMinimalPrice();
446
+ $data['_price_special_price']=$product->getSpecialPrice();
447
+ //$block = Mage::getModel('core/layout')->createBlock('catalog/product');
448
+ //$data['_price_html_minimal']=$block->getPriceHtml($product, true);//$displayMinimalPrice = false, $idSuffix='')
449
+ //$data['_price_html']=$block->getPriceHtml($product, false);//$displayMinimalPrice = false, $idSuffix='')
450
+
451
+ $data['_price_currency_code']=$code;
452
+ $data['_price_currency_symbol']=$symbol;
453
+
454
+ $data['bc_url_website']=Mage::app()->getStore()->getUrl();
455
+ $data['bc_url_product']=$product->getProductUrl();
456
+ } catch (Exception $exception) {
457
+ // Stop store emulation process
458
+ Mage::logException($exception);
459
+ }
460
+ // mage::log($data);
461
+ // Stop store emulation process
462
+ return $data;
463
+ }
464
+ public function getTemplateIdentifier($templateId)
465
+ {
466
+ $model = Mage::getModel('auit_publicationbasic/template')->load($templateId);
467
+ if ( $model->getId() ) {
468
+ return $model->getIdentifier();
469
+ }
470
+ return '';
471
+ }
472
+ public function getTemplatesOptions($basHash=false)
473
+ {
474
+ $devices = array(
475
+ self::TEMPLATE_PRODUCT=> $this->__('Product'),
476
+ //self::TEMPLATE_STATIC=> $this->__('Static'),
477
+ self::TEMPLATE_COUPON=> $this->__('Coupon Code Card')
478
+ );
479
+ if ( $basHash )
480
+ return $devices;
481
+ $options = array();
482
+ $options[] = array('value' => '', 'label' => $this->__('Please Select Template Type'));
483
+ foreach ($devices as $type => $label) {
484
+ $options[] = array('value' => $type, 'label' => $label);
485
+ }
486
+ return $options;
487
+ }
488
+ public function getTemplatesForType($type,$badd=false,$bhash=false)
489
+ {
490
+ // as ass
491
+ // static $_options;
492
+ $collection = Mage::getResourceModel('auit_publicationbasic/template_collection');
493
+ $collection->addFieldToFilter('status', 1);
494
+ if ( !is_array($type) )
495
+ $type=array($type);
496
+ $collection->addFieldToFilter('type',array('in'=>$type) );
497
+ if ( !$bhash )
498
+ {
499
+ $options = $collection->toOptionArray();
500
+ if ( $badd )
501
+ $options[] = array('value' => '', 'label' => $this->__('No'));
502
+ }else {
503
+ foreach ( $collection as $opt )
504
+ {
505
+ $options[$opt->getId()] = $opt->getName();
506
+ }
507
+ }
508
+ return $options;
509
+ }
510
+ public function getUsedSpread()
511
+ {
512
+ $_options=array();
513
+ $_options[0]=$this->__('Use all spreads');
514
+ for ( $i=1; $i <= 10; $i++ )
515
+ $_options[$i]=$this->__('Spread').' '.$i;
516
+ return $_options;
517
+ }
518
+ public function getTemplates($objectData,$type=null,$ball=true)
519
+ {
520
+ $_options=array();
521
+ // if (!$_options) {
522
+ $collection = Mage::getResourceModel('auit_publicationbasic/template_collection');
523
+ $collection->addFieldToFilter('status', 1);
524
+ if ( !$ball )
525
+ $collection->addFieldToFilter('istoplevel', 1);
526
+ if ( $type )
527
+ {
528
+ if ( !is_array($type) )
529
+ $type=array($type);
530
+ $collection->addFieldToFilter('type',array('in'=>$type) );
531
+ }
532
+ foreach ( $collection as $opt )
533
+ {
534
+ if ( !$objectData || $objectData['model'] !='template' || $objectData['id']!= $opt->getId())
535
+ $_options[$opt->getIdentifier()] = $opt->getName();
536
+ }
537
+ // }
538
+ return $_options;
539
+ }
540
+
541
+ public function getProjectsOptions()
542
+ {
543
+ $devices = array(
544
+ '1'=> $this->__('Flyer'),
545
+ '2'=> $this->__('Multipage Catalog')
546
+ );
547
+ $options = array();
548
+ $options[] = array('value' => '', 'label' => $this->__('Please Select Template Type'));
549
+ foreach ($devices as $type => $label) {
550
+ $options[] = array('value' => $type, 'label' => $label);
551
+ }
552
+ return $options;
553
+ }
554
+ public function getGeneratorOptions()
555
+ {
556
+ $devices = array(
557
+ AuIt_PublicationBasic_Model_Generator::TYPE_PHTML=> $this->__('PHtml'),
558
+ AuIt_PublicationBasic_Model_Generator::TYPE_MARKUP=> $this->__('Markup')
559
+ );
560
+ $options = array();
561
+ $options[] = array('value' => '', 'label' => $this->__('Please Select Type'));
562
+ foreach ($devices as $type => $label) {
563
+ $options[] = array('value' => $type, 'label' => $label);
564
+ }
565
+ return $options;
566
+ }
567
+
568
+ public function getPromoOptions()
569
+ {
570
+ $devices = array(
571
+ AuIt_PublicationBasic_Model_Jobqueue::TYPE_COUPON_CARD=> $this->__('Coupon Card'),
572
+ AuIt_PublicationBasic_Model_Jobqueue::TYPE_BROCHURE_LIST=> $this->__('Brochure').'/'.$this->__('Flyer')
573
+ //,AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3=> $this->__('EBook (ePub3)')
574
+ );
575
+ //if (Mage::helper('core')->isModuleEnabled('AuIt_Ebook')) {
576
+ if ( 0 )
577
+ $devices[AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3] = $this->__('EBook (ePub3) (Beta)');
578
+ //}
579
+ $options = array();
580
+ $options[] = array('value' => '', 'label' => $this->__('Please Select'));
581
+ foreach ($devices as $type => $label) {
582
+ $options[] = array('value' => $type, 'label' => $label);
583
+ }
584
+ return $options;
585
+ }
586
+
587
+ public function getPromos($bHash=false)
588
+ {
589
+ $collection = Mage::getModel('salesrule/rule')->getResourceCollection();
590
+ $collection->addWebsitesToResult();
591
+
592
+ $devices = array();
593
+ $devices['']=$this->__('Please Select');
594
+ foreach ( $collection as $item )
595
+ {
596
+ $devices[$item->getId()] = $item->getName();
597
+ }
598
+ if ( $bHash )
599
+ return $devices;
600
+ $options = array();
601
+ // $options[] = array('value' => '', 'label' => $this->__('Please Select'));
602
+ foreach ($devices as $type => $label) {
603
+ $options[] = array('value' => $type, 'label' => $label);
604
+ }
605
+ return $options;
606
+
607
+ }
608
+
609
+ public function getJobQueueStatusOptions($bHash=false)
610
+ {
611
+ $devices = array(
612
+ AuIt_PublicationBasic_Model_Jobqueue::STATE_WAIT => Mage::helper('auit_publicationbasic')->__('Wait'),
613
+ AuIt_PublicationBasic_Model_Jobqueue::STATE_START_NOW => Mage::helper('auit_publicationbasic')->__('Start Now'),
614
+ AuIt_PublicationBasic_Model_Jobqueue::STATE_IN_PROGRESS => Mage::helper('auit_publicationbasic')->__('In Progress'),
615
+ AuIt_PublicationBasic_Model_Jobqueue::STATE_HOLD => Mage::helper('auit_publicationbasic')->__('Hold'),
616
+ AuIt_PublicationBasic_Model_Jobqueue::STATE_CANCELED => Mage::helper('auit_publicationbasic')->__('Canceled'),
617
+ AuIt_PublicationBasic_Model_Jobqueue::STATE_COMPLETED => Mage::helper('auit_publicationbasic')->__('Completed'),
618
+ AuIt_PublicationBasic_Model_Jobqueue::STATE_EXCEPTION => Mage::helper('auit_publicationbasic')->__('Exception'),
619
+ );
620
+ if ( $bHash )
621
+ return $devices;
622
+ $options = array();
623
+ $options[] = array('value' => '', 'label' => $this->__('Please Select'));
624
+ foreach ($devices as $type => $label) {
625
+ $options[] = array('value' => $type, 'label' => $label);
626
+ }
627
+ return $options;
628
+ }
629
+ public function getJobQueuePriorityOptions($bHash=false)
630
+ {
631
+ $devices = array(
632
+ '0' => Mage::helper('auit_publicationbasic')->__('Disabled'),
633
+ '10' => Mage::helper('auit_publicationbasic')->__('Low'),
634
+ '20' => Mage::helper('auit_publicationbasic')->__('Medium'),
635
+ '30' => Mage::helper('auit_publicationbasic')->__('High'),
636
+ '40' => Mage::helper('auit_publicationbasic')->__('Very Hight')
637
+ );
638
+ if ( $bHash )
639
+ return $devices;
640
+ $options = array();
641
+ $options[] = array('value' => '', 'label' => $this->__('Please Select'));
642
+ foreach ($devices as $type => $label) {
643
+ $options[] = array('value' => $type, 'label' => $label);
644
+ }
645
+ return $options;
646
+ }
647
+ public function getJobQueueTypeOptions($bHash=false)
648
+ {
649
+ $devices = array(
650
+ self::PRINT_TYPE_PROMO => $this->__('Promotions')
651
+ );
652
+ if ( $bHash )
653
+ return $devices;
654
+ $options = array();
655
+ $options[] = array('value' => '', 'label' => $this->__('Please Select'));
656
+ foreach ($devices as $type => $label) {
657
+ $options[] = array('value' => $type, 'label' => $label);
658
+ }
659
+ return $options;
660
+ }
661
+ protected function _getCouponAttributes()
662
+ {
663
+ $hash['name']=$this->__('Rule Name');
664
+ $hash['description']=$this->__('Description');
665
+ //$hash['coupon_type']=$this->__('Rule Name');
666
+ $hash['coupon_code']=$this->__('Coupon Code');
667
+
668
+ $hash['from_date']=$this->__('From Date');
669
+ $hash['to_date']=$this->__('To Date');
670
+ return $hash;
671
+ }
672
+ protected function _getProductAttributes()
673
+ {
674
+ $hash=array();
675
+ //$allowedAttributes=array('date','price','boolean','text','textarea','select','multiselect','media_image');
676
+ $allowedAttributes=array('boolean','select','multiselect','text','textarea');
677
+ //$allowedAttributes=array('text','textarea');
678
+ $collection = Mage::getResourceModel('catalog/product_attribute_collection')
679
+ ->addVisibleFilter();
680
+ $hashOpt=array();
681
+ foreach ( $collection as $attr )
682
+ {
683
+ $code = $attr->getAttributeCode();
684
+ $type = $attr->getFrontendInput();
685
+ if (!in_array($type, $allowedAttributes) /*|| $attr->getFrontendInput() == 'hidden'*/) {
686
+ continue;
687
+ }
688
+ $hash[$attr->getAttributeCode()]=$attr->getFrontendLabel();
689
+ }
690
+ asort($hash);
691
+ return $hash;
692
+ }
693
+ public function getAttributes($isTemplate,$templateType)
694
+ {
695
+ static $_options;
696
+ if (!$_options) {
697
+ if ( $isTemplate )
698
+ {
699
+ switch ( $templateType )
700
+ {
701
+ case self::TEMPLATE_PRODUCT:
702
+ $_options = $this->_getProductAttributes();
703
+ break;
704
+ case self::TEMPLATE_COUPON:
705
+ $_options = $this->_getCouponAttributes();
706
+ break;
707
+ }
708
+ }
709
+ // array_unshift($_options, $this->__('-- Please Select --'));//array('value'=> '', 'label'=> $this->__('-- Please Select --')));
710
+ }
711
+ return $_options;
712
+ }
713
+ public function getBarcodeAttributes($templ)
714
+ {
715
+ static $_options;
716
+ if (!$_options) {
717
+ $_options['bc_url_website']=$this->__('URL Shop Website');
718
+ if ( $templ == self::TEMPLATE_PRODUCT)
719
+ $_options['bc_url_product']=$this->__('URL Product Website');
720
+ $_options['bc_free_text']=$this->__('Free Text');
721
+ if ( $templ == self::TEMPLATE_PRODUCT)
722
+ foreach ( $this->_getProductAttributes() as $k => $v )
723
+ $_options[$k]=$v;
724
+ }
725
+ return $_options;
726
+ }
727
+
728
+ public function asOptions($options,$badd=false)
729
+ {
730
+ $html='';
731
+ if ( $badd )
732
+ $html .= '<option value="">'.$this->__('-- Please Select --').'</option>';
733
+ if ( is_array($options) )
734
+ foreach ( $options as $value => $label )
735
+ {
736
+ $html .= '<option value="'.$value.'">'.$label.'</option>';
737
+ }
738
+ return $html;
739
+ }
740
+ public function getImageAttributes($objectData)
741
+ {
742
+ static $_options;
743
+ if (!$_options) {
744
+ if ( $objectData['model']=='template' && $objectData['type']==1)
745
+ {
746
+ $attributes = Mage::getModel('catalog/product')->getMediaAttributes();
747
+ if ( $attributes && is_array($attributes) )
748
+ foreach ($attributes as $attribute) {
749
+ /* @var $attribute Mage_Eav_Model_Entity_Attribute */
750
+ $_options[$attribute->getAttributeCode()] = $attribute->getFrontend()->getLabel();
751
+ }
752
+ }
753
+
754
+ $_options['media_static'] = $this->__('Media Static Image');
755
+
756
+ }
757
+ return $_options;
758
+ }
759
+ public function getPriceOptions()
760
+ {
761
+ static $_options;
762
+ if (!$_options) {
763
+ $_options = array();//$this->_getProductAttributes();
764
+ $_options['_price'] = $this->__('Price');
765
+ $_options['_price_formated'] = $this->__('Price (Formated with symbol)');
766
+ $_options['_price_formated3'] = $this->__('Price (Formated without whitespace)');
767
+ $_options['_price_formated2'] = $this->__('Price (Formated without symbol)');
768
+ //$_options['_price_minimal_price'] = $this->__('Minimal Price');
769
+ //$_options['_price_special_price'] = $this->__('Special Price');
770
+ $_options['_price_currency_code'] = $this->__('Currency Code');
771
+ $_options['_price_currency_symbol'] = $this->__('Currency Symbol');
772
+ //$_options['special'] = $this->__('Special Price');
773
+ }
774
+ return $_options;
775
+ }
776
+ public function getPriceFromats()
777
+ {
778
+ static $_options;
779
+ if (!$_options) {
780
+ $_options = array();
781
+ $_options['-'] = $this->__('Default');
782
+ $_options['AL.digits(value)'] = $this->__('Digits');
783
+ $_options['AL.decimals(value,2)'] = $this->__('Decimal Places');
784
+ }
785
+ return $_options;
786
+ }
787
+
788
+ public function getClippingMethodes()
789
+ {
790
+ static $_options;
791
+ if (!$_options) {
792
+ $_options = array();
793
+ $_options['-'] = $this->__('No');
794
+ $_options['c'] = $this->__('Circle');
795
+ $_options['p'] = $this->__('Polygone');
796
+ //$_options['x'] = '<img src="http://editor.method.ac/images/rotate.png"/>';
797
+
798
+ //http://editor.method.ac/
799
+ // https://code.google.com/p/svg-edit/source/browse/trunk/editor/extensions/?r=2694#extensions%2Fshapelib
800
+ }
801
+ return $_options;
802
+ }
803
+
804
+ public function getStaticBlocks()
805
+ {
806
+ static $_options;
807
+ if (!$_options) {
808
+ // ->toOptionArray()
809
+ foreach ( Mage::getResourceModel('cms/block_collection')->load() as $opt )
810
+ {
811
+ $_options[$opt->getIdentifier()] = $opt->getTitle();
812
+ }
813
+ }
814
+ return $_options;
815
+ }
816
+ public function getGeneratorBlocks()
817
+ {
818
+ static $_options;
819
+ if (!$_options) {
820
+ foreach ( Mage::getResourceModel('auit_publicationbasic/generator_collection')->load() as $opt )
821
+ {
822
+ $_options[$opt->getIdentifier()] = $opt->getName();
823
+ }
824
+ }
825
+ return $_options;
826
+ }
827
+ public function getVAlign()
828
+ {
829
+ static $_options;
830
+ if (!$_options) {
831
+ $_options = array();
832
+ $_options['T'] = $this->__('Top');
833
+ $_options['M'] = $this->__('Middle');
834
+ $_options['B'] = $this->__('Bottom');
835
+ }
836
+ return $_options;
837
+ }
838
+ public function getBoxTextOption()
839
+ {
840
+ static $_options;
841
+ if (!$_options) {
842
+ $_options = array();
843
+ $_options['-'] = $this->__('None');
844
+ $_options['fittextbox'] = $this->__('Fit Text to Box');
845
+ }
846
+ return $_options;
847
+ }
848
+ public function getPreviewStores($asPairs=false)
849
+ {
850
+ static $_options;
851
+ if (!$_options) {
852
+ $_options = array();
853
+ foreach ( Mage::app()->getStores(false,true) as $key => $store )
854
+ {
855
+ if ( $asPairs )
856
+ $_options[] = array('value'=>$key,'label'=>$store->getName());
857
+ else
858
+ $_options[$key] = $store->getName();
859
+ }
860
+ }
861
+ return $_options;
862
+ }
863
+
864
+ public function getPageFormate($useFree=true)
865
+ {
866
+ static $_options;
867
+ if (!$_options) {
868
+ $_options = array();
869
+ if ( $useFree)
870
+ $_options[''] = $this->__('Free');
871
+ $_options['DIN-A#297#420'] = $this->__('A3');
872
+ $_options['DIN-A#210#297'] = $this->__('A4');
873
+ $_options['DIN-A#148#210'] = $this->__('A5');
874
+ $_options['DIN-B#176#250'] = $this->__('B5');
875
+ $_options['FREE#119.944#120.65'] = $this->__('Compact Disc');
876
+ /*
877
+ $_options['DIN-A,841,1189'] = $this->__('DIN A0');
878
+ $_options['DIN-A,594,841'] = $this->__('DIN A1');
879
+ $_options['DIN-A,420,594'] = $this->__('DIN A2');
880
+ $_options['DIN-A,105,148'] = $this->__('DIN A6');
881
+ $_options['DIN-A,74,105'] = $this->__('DIN A7');
882
+ */
883
+
884
+ $_options['US#215.9#279.4'] = $this->__('Letter (8½ × 11)');
885
+ $_options['US#215.9#355.6'] = $this->__('Legal (8½ × 14)');
886
+ $_options['US#,279.4#431.8'] = $this->__('Tabloid (11 × 17)');
887
+ /*
888
+ $_options['US,105,241'] = $this->__('US #10');
889
+ $_options['US,140,216'] = $this->__('Invoice (5½ × 8½)');
890
+ $_options['US,184,267'] = $this->__('Executive (7¼ × 10½)');
891
+ $_options['US,432,559'] = $this->__('Broadsheet (17 × 22)');
892
+ */
893
+ }
894
+ return $_options;
895
+ }
896
+ public function getOrientation()
897
+ {
898
+ static $_options;
899
+ if (!$_options) {
900
+ $_options = array();
901
+ $_options['p'] = $this->__('Portrait');
902
+ $_options['l'] = $this->__('Landscape');
903
+ }
904
+ return $_options;
905
+ }
906
+ public function getBoxTypes($templ)
907
+ {
908
+ static $_options;
909
+ if (!$_options) {
910
+ $_options = array();
911
+ $_options[] = array('value'=>'p_attr','label'=>$this->__('Attribute'));
912
+ $_options[] = array('value'=>'p_img','label'=>$this->__('Images'));
913
+ $_options[] = array('value'=>'p_block','label'=>$this->__('Block'));
914
+ if ( $templ == self::TEMPLATE_PRODUCT)
915
+ $_options[] = array('value'=>'p_price','label'=>$this->__('Price'));
916
+ $_options[] = array('value'=>'p_free','label'=>$this->__('Text'));
917
+ $_options[] = array('value'=>'p_bc','label'=>$this->__('Barcode'));
918
+
919
+ $_options[] = array('value'=>'p_templ','label'=>$this->__('Template'));
920
+ $_options[] = array('value'=>'p_gen','label'=>$this->__('Generator'));
921
+ //$_options[] = array('value'=>'p_group','label'=>$this->__('Group'));
922
+ }
923
+ return $_options;
924
+ }
925
+ public function getArrangeTypes()
926
+ {
927
+ static $_options;
928
+ if (!$_options) {
929
+ $_options = array();
930
+ $_options[] = array('value'=>'top','label'=>$this->__('Bring to Front'));
931
+ $_options[] = array('value'=>'top1','label'=>$this->__('Bring Forward'));
932
+ $_options[] = array('value'=>'bottom1','label'=>$this->__('Send Backward'));
933
+ $_options[] = array('value'=>'bottom','label'=>$this->__('Send to Back'));
934
+ }
935
+ return $_options;
936
+ }
937
+ public function getAlignTypes()
938
+ {
939
+ static $_options;
940
+ if (!$_options) {
941
+ $_options = array();
942
+ $_options[] = array('value'=>'t','label'=>$this->__('Align top edges'));
943
+ $_options[] = array('value'=>'v','label'=>$this->__('Align vertical centers'));
944
+ $_options[] = array('value'=>'b','label'=>$this->__('Align bottom edges'));
945
+ $_options[] = array('value'=>'l','label'=>$this->__('Align left edges'));
946
+ $_options[] = array('value'=>'h','label'=>$this->__('Align horizontal centers'));
947
+ $_options[] = array('value'=>'r','label'=>$this->__('Align right edges'));
948
+ }
949
+ return $_options;
950
+ }
951
+ public function getBoxCtxMenus()
952
+ {
953
+ static $_options;
954
+ if (!$_options) {
955
+ $_options = array();
956
+ $_options[] = array('value'=>'copyBox','label'=>$this->__('Copy Box'),'icon'=>'ui-icon-copy');
957
+ // $_options[] = array('value'=>'pasteBox','label'=>$this->__('Paste Box'),'icon'=>'ui-icon-mail-open');
958
+ $_options[] = array('value'=>'removeBox','label'=>$this->__('Remove Box'),'icon'=>'ui-icon-circle-minus','cls'=>'seperator-bottom');
959
+ $_options[] = array('value'=>'unlinkBox','label'=>$this->__('Unlink Template'),'icon'=>'ui-icon-link');
960
+ $_options[] = array('value'=>'groupBox','label'=>$this->__('Group Box'),'icon'=>'ui-icon-copy');
961
+ $_options[] = array('value'=>'ungroupBox','label'=>$this->__('Ungroup Box'),'icon'=>'ui-icon-circle-minus','cls'=>'seperator-bottom');
962
+ $_options[] = array('value'=>'top','label'=>$this->__('Bring to Front'),'icon'=>'ui-icon-arrowstop-1-n');
963
+ $_options[] = array('value'=>'top1','label'=>$this->__('Bring Forward'),'icon'=>'ui-icon-arrow-1-n');
964
+ $_options[] = array('value'=>'bottom1','label'=>$this->__('Send Backward'),'icon'=>'ui-icon-arrow-1-s');
965
+ $_options[] = array('value'=>'bottom','label'=>$this->__('Send to Back'),'icon'=>'ui-icon-arrowstop-1-s');
966
+ }
967
+ return $_options;
968
+ }
969
+ /*
970
+ public function getFonts()
971
+ {
972
+ static $_options;
973
+ if (!$_options) {
974
+ $_options = array();
975
+ foreach ( Mage::helper('auit_publicationbasic/font')->getFonts() as $font )
976
+ $_options[$font['indentifier']] = $font['label'];
977
+ }
978
+ return $_options;
979
+ }
980
+
981
+ public function getFontStyles()
982
+ {
983
+ //regular, condens,...
984
+ static $_options;
985
+ if (!$_options) {
986
+ $_options = array();
987
+ $_options['T'] = $this->__('Top');
988
+ $_options['M'] = $this->__('Middle');
989
+ $_options['B'] = $this->__('Bottom');
990
+ }
991
+ return $_options;
992
+ }
993
+ */
994
+ public function getFontSize()
995
+ {
996
+ //6pt ...72pt
997
+ static $_options;
998
+ if (!$_options) {
999
+ $_options = array();
1000
+ foreach ( array('','6pt','8pt','9pt','10pt','11pt','12pt','14pt','18pt','24pt','30pt','36pt','48pt','60pt','72pt') as $v)
1001
+ $_options[$v] = $v?$v:$this->__('Default');
1002
+ }
1003
+ return $_options;
1004
+ }
1005
+ public function getLeading()
1006
+ {
1007
+ //(auto) 6pt 72pt
1008
+ static $_options;
1009
+ if (!$_options) {
1010
+ $_options = array();
1011
+ foreach ( array('','0.8','0.9','1.0','1.25','1.5','1.75','2.0') as $v)
1012
+ // foreach ( array('','6pt','8pt','9pt','10pt','11pt','12pt','14pt','18pt','24pt','30pt','36pt','48pt','60pt','72pt') as $v)
1013
+ $_options[$v] = $v?$v:$this->__('Default');
1014
+ }
1015
+ return $_options;
1016
+ }
1017
+
1018
+ public function getAligment()
1019
+ {
1020
+ //link, rechts, zentriert, blocksatz
1021
+ static $_options;
1022
+ if (!$_options) {
1023
+ $_options = array();
1024
+ $_options[''] = $this->__('');
1025
+ $_options['left'] = $this->__('Left');
1026
+ $_options['right'] = $this->__('Right');
1027
+ $_options['center'] = $this->__('Center');
1028
+ $_options['justify'] = $this->__('Justify');
1029
+ }
1030
+ return $_options;
1031
+ }
1032
+ public function getTextTransform()
1033
+ {
1034
+
1035
+ //link, rechts, zentriert, blocksatz
1036
+ static $_options;
1037
+ if (!$_options) {
1038
+ $_options = array();
1039
+ $_options[''] = $this->__('');
1040
+ $_options['uppercase'] = $this->__('Uppercase');
1041
+ $_options['lowercase'] = $this->__('Lowercase');
1042
+ $_options['capitalize'] = $this->__('Capitalize');
1043
+
1044
+ }
1045
+ return $_options;
1046
+ }
1047
+
1048
+ public function getColourMode()
1049
+ {
1050
+ //CMYK,RGB,PANTONE
1051
+ static $_options;
1052
+ if (!$_options) {
1053
+ $_options = array();
1054
+ $_options[''] = $this->__('');
1055
+ $_options['rgb'] = $this->__('RGB');
1056
+ $_options['hsl'] = $this->__('HSL/CMYK');
1057
+ }
1058
+ return $_options;
1059
+ }
1060
+ public function getImageOption()
1061
+ {
1062
+ //CMYK,RGB,PANTONE
1063
+ static $_options;
1064
+ if (!$_options) {
1065
+ $_options = array();
1066
+ $_options['-'] = $this->__('Standard');
1067
+ $_options['fit2box'] = $this->__('Inhalt proportional anpassen');
1068
+ $_options['fill2box'] = $this->__('Rahmen proportional füllen');
1069
+ }
1070
+ return $_options;
1071
+ }
1072
+ public function getBarcodeOption()
1073
+ {
1074
+ //CMYK,RGB,PANTONE
1075
+ static $_options;
1076
+ if (!$_options) {
1077
+ $_options = array();
1078
+ $_options['-'] = $this->__(' ');
1079
+ $_options['DATAMATRIX'] = $this->__('Datamatrix (ISO/IEC 16022)');
1080
+ $_options['PDF417'] = $this->__('PDF417 (ISO/IEC 15438:2006)');
1081
+ $_options['QRCODE'] = $this->__('QR-CODE Low');
1082
+ $_options['QRCODE,M'] = $this->__('QR-CODE Medium');
1083
+ $_options['QRCODE,H'] = $this->__('QR-CODE Best');
1084
+ $_options['EAN13'] = $this->__('EAN13');
1085
+ $_options['C128'] = $this->__('C128');
1086
+ $_options['C128A'] = $this->__('C128A');
1087
+ $_options['C128B'] = $this->__('C128B');
1088
+ $_options['C128C'] = $this->__('C128C');
1089
+ $_options['C39'] = $this->__('C39');
1090
+ }
1091
+ return $_options;
1092
+ }
1093
+
1094
+ }
app/code/local/AuIt/PublicationBasic/Helper/Dirdirective.php ADDED
@@ -0,0 +1,990 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class My_Image_Adapter_Gd2 extends Varien_Image_Adapter_Abstract
3
+ {
4
+ protected $_requiredExtensions = Array("gd");
5
+ private static $_callbacks = array(
6
+ IMAGETYPE_GIF => array('output' => 'imagegif', 'create' => 'imagecreatefromgif'),
7
+ IMAGETYPE_JPEG => array('output' => 'imagejpeg', 'create' => 'imagecreatefromjpeg'),
8
+ IMAGETYPE_PNG => array('output' => 'imagepng', 'create' => 'imagecreatefrompng'),
9
+ IMAGETYPE_XBM => array('output' => 'imagexbm', 'create' => 'imagecreatefromxbm'),
10
+ IMAGETYPE_WBMP => array('output' => 'imagewbmp', 'create' => 'imagecreatefromxbm'),
11
+ );
12
+
13
+ public function open($filename)
14
+ {
15
+ $this->_fileName = $filename;
16
+ $this->getMimeType();
17
+ $this->_getFileAttributes();
18
+ $this->_imageHandler = call_user_func($this->_getCallback('create'), $this->_fileName);
19
+
20
+ }
21
+
22
+ public function save($destination=null, $newName=null)
23
+ {
24
+ $fileName = ( !isset($destination) ) ? $this->_fileName : $destination;
25
+
26
+ if( isset($destination) && isset($newName) ) {
27
+ $fileName = $destination . "/" . $newName;
28
+ } elseif( isset($destination) && !isset($newName) ) {
29
+ $info = pathinfo($destination);
30
+ $fileName = $destination;
31
+ $destination = $info['dirname'];
32
+ } elseif( !isset($destination) && isset($newName) ) {
33
+ $fileName = $this->_fileSrcPath . "/" . $newName;
34
+ } else {
35
+ $fileName = $this->_fileSrcPath . $this->_fileSrcName;
36
+ }
37
+
38
+ $destinationDir = ( isset($destination) ) ? $destination : $this->_fileSrcPath;
39
+
40
+ if( !is_writable($destinationDir) ) {
41
+ try {
42
+ $io = new Varien_Io_File();
43
+ $io->mkdir($destination);
44
+ } catch (Exception $e) {
45
+ throw new Exception("Unable to write file into directory '{$destinationDir}'. Access forbidden.");
46
+ }
47
+ }
48
+
49
+ // keep alpha transparency
50
+
51
+ $isAlpha = false;
52
+ $this->_getTransparency($this->_imageHandler, $this->_fileType, $isAlpha);
53
+ if ($isAlpha) {
54
+ if ( $this->_fileType == IMAGETYPE_PNG )
55
+ {
56
+ //imagealphablending($this->_imageHandler, true);
57
+ imagesavealpha($this->_imageHandler, true);
58
+ }else
59
+ $this->_fillBackgroundColor($this->_imageHandler);
60
+ }
61
+
62
+
63
+
64
+ $functionParameters = array();
65
+ $functionParameters[] = $this->_imageHandler;
66
+ $functionParameters[] = $fileName;
67
+
68
+ // set quality param for JPG file type
69
+ if (is_null($this->quality()) && $this->_fileType == IMAGETYPE_JPEG)
70
+ $this->quality(90);
71
+
72
+ if (!is_null($this->quality()) && $this->_fileType == IMAGETYPE_JPEG)
73
+ {
74
+ $functionParameters[] = $this->quality();
75
+ }
76
+
77
+ // set quality param for PNG file type
78
+ if (!is_null($this->quality()) && $this->_fileType == IMAGETYPE_PNG)
79
+ {
80
+ $quality = round(($this->quality() / 100) * 10);
81
+ if ($quality < 1) {
82
+ $quality = 1;
83
+ } elseif ($quality > 10) {
84
+ $quality = 10;
85
+ }
86
+ $quality = 10 - $quality;
87
+ $functionParameters[] = $quality;
88
+ }
89
+ call_user_func_array($this->_getCallback('output'), $functionParameters);
90
+ }
91
+
92
+ public function display()
93
+ {
94
+ header("Content-type: ".$this->getMimeType());
95
+ call_user_func($this->_getCallback('output'), $this->_imageHandler);
96
+ }
97
+
98
+ /**
99
+ * Obtain function name, basing on image type and callback type
100
+ *
101
+ * @param string $callbackType
102
+ * @param int $fileType
103
+ * @return string
104
+ * @throws Exception
105
+ */
106
+ private function _getCallback($callbackType, $fileType = null, $unsupportedText = 'Unsupported image format.')
107
+ {
108
+ if (null === $fileType) {
109
+ $fileType = $this->_fileType;
110
+ }
111
+ if (empty(self::$_callbacks[$fileType])) {
112
+ throw new Exception($unsupportedText);
113
+ }
114
+ if (empty(self::$_callbacks[$fileType][$callbackType])) {
115
+ throw new Exception('Callback not found.');
116
+ }
117
+ return self::$_callbacks[$fileType][$callbackType];
118
+ }
119
+
120
+ private function _fillBackgroundColor(&$imageResourceTo)
121
+ {
122
+ // try to keep transparency, if any
123
+ if ( $this->_keepTransparency) {
124
+ $isAlpha = false;
125
+ $transparentIndex = $this->_getTransparency($this->_imageHandler, $this->_fileType, $isAlpha);
126
+ try {
127
+ // fill truecolor png with alpha transparency
128
+ if ($isAlpha) {
129
+ if (!imagealphablending($imageResourceTo, false)) {
130
+ throw new Exception('Failed to set alpha blending for PNG image.');
131
+ }
132
+ $transparentAlphaColor = imagecolorallocatealpha($imageResourceTo, 0, 0, 0, 127);
133
+ if (false === $transparentAlphaColor) {
134
+ throw new Exception('Failed to allocate alpha transparency for PNG image.');
135
+ }
136
+ if (!imagefill($imageResourceTo, 0, 0, $transparentAlphaColor)) {
137
+ throw new Exception('Failed to fill PNG image with alpha transparency.');
138
+ }
139
+ if (!imagesavealpha($imageResourceTo, true)) {
140
+ throw new Exception('Failed to save alpha transparency into PNG image.');
141
+ }
142
+
143
+ return $transparentAlphaColor;
144
+ }
145
+ // fill image with indexed non-alpha transparency
146
+ elseif (false !== $transparentIndex) {
147
+ list($r, $g, $b) = array_values(imagecolorsforindex($this->_imageHandler, $transparentIndex));
148
+ $transparentColor = imagecolorallocate($imageResourceTo, $r, $g, $b);
149
+ if (false === $transparentColor) {
150
+ throw new Exception('Failed to allocate transparent color for image.');
151
+ }
152
+ if (!imagefill($imageResourceTo, 0, 0, $transparentColor)) {
153
+ throw new Exception('Failed to fill image with transparency.');
154
+ }
155
+ imagecolortransparent($imageResourceTo, $transparentColor);
156
+ return $transparentColor;
157
+ }
158
+ }
159
+ catch (Exception $e) {
160
+ // fallback to default background color
161
+ }
162
+ }
163
+ list($r, $g, $b) = $this->_backgroundColor;
164
+ $color = imagecolorallocate($imageResourceTo, $r, $g, $b);
165
+ if (!imagefill($imageResourceTo, 0, 0, $color)) {
166
+ throw new Exception("Failed to fill image background with color {$r} {$g} {$b}.");
167
+ }
168
+
169
+ return $color;
170
+ }
171
+
172
+ /**
173
+ * Gives true for a PNG with alpha, false otherwise
174
+ *
175
+ * @param string $fileName
176
+ * @return boolean
177
+ */
178
+
179
+ public function checkAlpha($fileName)
180
+ {
181
+ return ((ord(file_get_contents($fileName, false, null, 25, 1)) & 6) & 4) == 4;
182
+ }
183
+
184
+ private function _getTransparency($imageResource, $fileType, &$isAlpha = false, &$isTrueColor = false)
185
+ {
186
+ $isAlpha = false;
187
+ $isTrueColor = false;
188
+ // assume that transparency is supported by gif/png only
189
+ if ((IMAGETYPE_GIF === $fileType) || (IMAGETYPE_PNG === $fileType)) {
190
+ // check for specific transparent color
191
+ $transparentIndex = imagecolortransparent($imageResource);
192
+ if ($transparentIndex >= 0) {
193
+ return $transparentIndex;
194
+ }
195
+ // assume that truecolor PNG has transparency
196
+ elseif (IMAGETYPE_PNG === $fileType) {
197
+ $isAlpha = $this->checkAlpha($this->_fileName);
198
+ $isTrueColor = true;
199
+ return $transparentIndex; // -1
200
+ }
201
+ }
202
+ if (IMAGETYPE_JPEG === $fileType) {
203
+ $isTrueColor = true;
204
+ }
205
+ return false;
206
+ }
207
+
208
+ /**
209
+ * Change the image size
210
+ *
211
+ * @param int $frameWidth
212
+ * @param int $frameHeight
213
+ */
214
+ public function resize($frameWidth = null, $frameHeight = null)
215
+ {
216
+ if (empty($frameWidth) && empty($frameHeight)) {
217
+ throw new Exception('Invalid image dimensions.');
218
+ }
219
+
220
+ // calculate lacking dimension
221
+ if (!$this->_keepFrame) {
222
+ if (null === $frameWidth) {
223
+ $frameWidth = round($frameHeight * ($this->_imageSrcWidth / $this->_imageSrcHeight));
224
+ }
225
+ elseif (null === $frameHeight) {
226
+ $frameHeight = round($frameWidth * ($this->_imageSrcHeight / $this->_imageSrcWidth));
227
+ }
228
+ }
229
+ else {
230
+ if (null === $frameWidth) {
231
+ $frameWidth = $frameHeight;
232
+ }
233
+ elseif (null === $frameHeight) {
234
+ $frameHeight = $frameWidth;
235
+ }
236
+ }
237
+
238
+ // define coordinates of image inside new frame
239
+ $srcX = 0;
240
+ $srcY = 0;
241
+ $dstX = 0;
242
+ $dstY = 0;
243
+ $dstWidth = $frameWidth;
244
+ $dstHeight = $frameHeight;
245
+ if ($this->_keepAspectRatio) {
246
+ // do not make picture bigger, than it is, if required
247
+ if ($this->_constrainOnly) {
248
+ if (($frameWidth >= $this->_imageSrcWidth) && ($frameHeight >= $this->_imageSrcHeight)) {
249
+ $dstWidth = $this->_imageSrcWidth;
250
+ $dstHeight = $this->_imageSrcHeight;
251
+ }
252
+ }
253
+ // keep aspect ratio
254
+ if ($this->_imageSrcWidth / $this->_imageSrcHeight >= $frameWidth / $frameHeight) {
255
+ $dstHeight = round(($dstWidth / $this->_imageSrcWidth) * $this->_imageSrcHeight);
256
+ } else {
257
+ $dstWidth = round(($dstHeight / $this->_imageSrcHeight) * $this->_imageSrcWidth);
258
+ }
259
+ }
260
+ // define position in center (TODO: add positions option)
261
+ $dstY = round(($frameHeight - $dstHeight) / 2);
262
+ $dstX = round(($frameWidth - $dstWidth) / 2);
263
+
264
+ // get rid of frame (fallback to zero position coordinates)
265
+ if (!$this->_keepFrame) {
266
+ $frameWidth = $dstWidth;
267
+ $frameHeight = $dstHeight;
268
+ $dstY = 0;
269
+ $dstX = 0;
270
+ }
271
+
272
+ // create new image
273
+ $isAlpha = false;
274
+ $isTrueColor = false;
275
+ $this->_getTransparency($this->_imageHandler, $this->_fileType, $isAlpha, $isTrueColor);
276
+ if ($isTrueColor) {
277
+ $newImage = imagecreatetruecolor($frameWidth, $frameHeight);
278
+ }
279
+ else {
280
+ $newImage = imagecreate($frameWidth, $frameHeight);
281
+ }
282
+ if ( $isAlpha && $this->_fileType == IMAGETYPE_PNG )
283
+ {
284
+ imagealphablending($newImage, false);
285
+ imagesavealpha($newImage, true);
286
+
287
+ }else {
288
+ // fill new image with required color
289
+ $this->_fillBackgroundColor($newImage);
290
+ }
291
+
292
+ // resample source image and copy it into new frame
293
+ imagecopyresampled($newImage, $this->_imageHandler, $dstX, $dstY, $srcX, $srcY, $dstWidth, $dstHeight, $this->_imageSrcWidth, $this->_imageSrcHeight);
294
+ $this->_imageHandler = $newImage;
295
+ $this->refreshImageDimensions();
296
+ }
297
+
298
+ public function rotate($angle)
299
+ {
300
+ /*
301
+ $isAlpha = false;
302
+ $backgroundColor = $this->_getTransparency($this->_imageHandler, $this->_fileType, $isAlpha);
303
+ list($r, $g, $b) = $this->_backgroundColor;
304
+ if ($isAlpha) {
305
+ $backgroundColor = imagecolorallocatealpha($this->_imageHandler, 0, 0, 0, 127);
306
+ }
307
+ elseif (false === $backgroundColor) {
308
+ $backgroundColor = imagecolorallocate($this->_imageHandler, $r, $g, $b);
309
+ }
310
+ $this->_imageHandler = imagerotate($this->_imageHandler, $angle, $backgroundColor);
311
+ //*/
312
+ $this->_imageHandler = imagerotate($this->_imageHandler, $angle, $this->imageBackgroundColor);
313
+ $this->refreshImageDimensions();
314
+ }
315
+
316
+ public function watermark($watermarkImage, $positionX=0, $positionY=0, $watermarkImageOpacity=30, $repeat=false)
317
+ {
318
+ list($watermarkSrcWidth, $watermarkSrcHeight, $watermarkFileType, ) = getimagesize($watermarkImage);
319
+ $this->_getFileAttributes();
320
+ $watermark = call_user_func($this->_getCallback('create', $watermarkFileType, 'Unsupported watermark image format.'), $watermarkImage);
321
+
322
+ $merged = false;
323
+
324
+ if( $this->getWatermarkWidth() && $this->getWatermarkHeigth() && ($this->getWatermarkPosition() != self::POSITION_STRETCH) ) {
325
+ $newWatermark = imagecreatetruecolor($this->getWatermarkWidth(), $this->getWatermarkHeigth());
326
+ imagealphablending($newWatermark, false);
327
+ $col = imagecolorallocate($newWatermark, 255, 255, 255);
328
+ imagecolortransparent($newWatermark, $col);
329
+ imagefilledrectangle($newWatermark, 0, 0, $this->getWatermarkWidth(), $this->getWatermarkHeigth(), $col);
330
+ imagealphablending($newWatermark, true);
331
+ imageSaveAlpha($newWatermark, true);
332
+ imagecopyresampled($newWatermark, $watermark, 0, 0, 0, 0, $this->getWatermarkWidth(), $this->getWatermarkHeigth(), imagesx($watermark), imagesy($watermark));
333
+ $watermark = $newWatermark;
334
+ }
335
+
336
+ if( $this->getWatermarkPosition() == self::POSITION_TILE ) {
337
+ $repeat = true;
338
+ } elseif( $this->getWatermarkPosition() == self::POSITION_STRETCH ) {
339
+
340
+ $newWatermark = imagecreatetruecolor($this->_imageSrcWidth, $this->_imageSrcHeight);
341
+ imagealphablending($newWatermark, false);
342
+ $col = imagecolorallocate($newWatermark, 255, 255, 255);
343
+ imagecolortransparent($newWatermark, $col);
344
+ imagefilledrectangle($newWatermark, 0, 0, $this->_imageSrcWidth, $this->_imageSrcHeight, $col);
345
+ imagealphablending($newWatermark, true);
346
+ imageSaveAlpha($newWatermark, true);
347
+ imagecopyresampled($newWatermark, $watermark, 0, 0, 0, 0, $this->_imageSrcWidth, $this->_imageSrcHeight, imagesx($watermark), imagesy($watermark));
348
+ $watermark = $newWatermark;
349
+
350
+ } elseif( $this->getWatermarkPosition() == self::POSITION_CENTER ) {
351
+ $positionX = ($this->_imageSrcWidth/2 - imagesx($watermark)/2);
352
+ $positionY = ($this->_imageSrcHeight/2 - imagesy($watermark)/2);
353
+ imagecopymerge($this->_imageHandler, $watermark, $positionX, $positionY, 0, 0, imagesx($watermark), imagesy($watermark), $this->getWatermarkImageOpacity());
354
+ } elseif( $this->getWatermarkPosition() == self::POSITION_TOP_RIGHT ) {
355
+ $positionX = ($this->_imageSrcWidth - imagesx($watermark));
356
+ imagecopymerge($this->_imageHandler, $watermark, $positionX, $positionY, 0, 0, imagesx($watermark), imagesy($watermark), $this->getWatermarkImageOpacity());
357
+ } elseif( $this->getWatermarkPosition() == self::POSITION_TOP_LEFT ) {
358
+ imagecopymerge($this->_imageHandler, $watermark, $positionX, $positionY, 0, 0, imagesx($watermark), imagesy($watermark), $this->getWatermarkImageOpacity());
359
+ } elseif( $this->getWatermarkPosition() == self::POSITION_BOTTOM_RIGHT ) {
360
+ $positionX = ($this->_imageSrcWidth - imagesx($watermark));
361
+ $positionY = ($this->_imageSrcHeight - imagesy($watermark));
362
+ imagecopymerge($this->_imageHandler, $watermark, $positionX, $positionY, 0, 0, imagesx($watermark), imagesy($watermark), $this->getWatermarkImageOpacity());
363
+ } elseif( $this->getWatermarkPosition() == self::POSITION_BOTTOM_LEFT ) {
364
+ $positionY = ($this->_imageSrcHeight - imagesy($watermark));
365
+ imagecopymerge($this->_imageHandler, $watermark, $positionX, $positionY, 0, 0, imagesx($watermark), imagesy($watermark), $this->getWatermarkImageOpacity());
366
+ }
367
+
368
+ if( $repeat === false && $merged === false ) {
369
+ imagecopymerge($this->_imageHandler, $watermark, $positionX, $positionY, 0, 0, imagesx($watermark), imagesy($watermark), $this->getWatermarkImageOpacity());
370
+ } else {
371
+ $offsetX = $positionX;
372
+ $offsetY = $positionY;
373
+ while( $offsetY <= ($this->_imageSrcHeight+imagesy($watermark)) ) {
374
+ while( $offsetX <= ($this->_imageSrcWidth+imagesx($watermark)) ) {
375
+ imagecopymerge($this->_imageHandler, $watermark, $offsetX, $offsetY, 0, 0, imagesx($watermark), imagesy($watermark), $this->getWatermarkImageOpacity());
376
+ $offsetX += imagesx($watermark);
377
+ }
378
+ $offsetX = $positionX;
379
+ $offsetY += imagesy($watermark);
380
+ }
381
+ }
382
+
383
+ imagedestroy($watermark);
384
+ $this->refreshImageDimensions();
385
+ }
386
+
387
+ public function crop($top=0, $bottom=0, $right=0, $left=0)
388
+ {
389
+ if( $left == 0 && $top == 0 && $right == 0 && $bottom == 0 ) {
390
+ return;
391
+ }
392
+
393
+ $newWidth = $this->_imageSrcWidth - $left - $right;
394
+ $newHeight = $this->_imageSrcHeight - $top - $bottom;
395
+
396
+ $canvas = imagecreatetruecolor($newWidth, $newHeight);
397
+
398
+ if ($this->_fileType == IMAGETYPE_PNG) {
399
+ $this->_saveAlpha($canvas);
400
+ }
401
+
402
+ imagecopyresampled($canvas, $this->_imageHandler, $top, $bottom, $right, $left, $this->_imageSrcWidth, $this->_imageSrcHeight, $newWidth, $newHeight);
403
+
404
+ $this->_imageHandler = $canvas;
405
+ $this->refreshImageDimensions();
406
+ }
407
+
408
+ public function checkDependencies()
409
+ {
410
+ foreach( $this->_requiredExtensions as $value ) {
411
+ if( !extension_loaded($value) ) {
412
+ throw new Exception("Required PHP extension '{$value}' was not loaded.");
413
+ }
414
+ }
415
+ }
416
+
417
+ private function refreshImageDimensions()
418
+ {
419
+ $this->_imageSrcWidth = imagesx($this->_imageHandler);
420
+ $this->_imageSrcHeight = imagesy($this->_imageHandler);
421
+ }
422
+
423
+ function __destruct()
424
+ {
425
+ @imagedestroy($this->_imageHandler);
426
+ }
427
+
428
+ /*
429
+ * Fixes saving PNG alpha channel
430
+ */
431
+ private function _saveAlpha($imageHandler)
432
+ {
433
+ $background = imagecolorallocate($imageHandler, 0, 0, 0);
434
+ ImageColorTransparent($imageHandler, $background);
435
+ imagealphablending($imageHandler, false);
436
+ imagesavealpha($imageHandler, true);
437
+ }
438
+ }
439
+ class AuIt_PublicationBasic_Gd2 extends My_Image_Adapter_Gd2
440
+ {
441
+ public function createDummy($filename,$w=1,$h=1)
442
+ {
443
+ $this->_fileName = $filename;
444
+ $this->getMimeType();
445
+ $this->_getFileAttributes();
446
+ $this->_imageHandler = @ImageCreate ($w,$h);
447
+ }
448
+ public function crop2($x=0, $y=0, $width=0, $height=0)
449
+ {
450
+ if( $x == 0 && $y == 0 && $width == 0 && $height == 0 ) {
451
+ return;
452
+ }
453
+ $canvas = imagecreatetruecolor($width, $height);
454
+ if ($this->_fileType == IMAGETYPE_PNG) {
455
+ $this->_saveAlpha($canvas);
456
+ }
457
+ if ( ImageCopy ($canvas, $this->_imageHandler, 0, 0, $x,$y, $width,$height)) //$newWidth, $newHeight, $this->_imageSrcWidth, $this->_imageSrcHeight) )
458
+ {
459
+ @imagedestroy($this->_imageHandler);
460
+ $this->_imageHandler = $canvas;
461
+
462
+ }
463
+ $this->rotate(0);
464
+ // Ist privet $this->refreshImageDimensions();
465
+ }
466
+ function flip ( $mode )
467
+ {
468
+
469
+ $width = $this->_imageSrcWidth;
470
+ $height = $this->_imageSrcHeight;
471
+ $src_x = 0;
472
+ $src_y = 0;
473
+ $src_width = $width;
474
+ $src_height = $height;
475
+
476
+ switch ( $mode )
477
+ {
478
+
479
+ case '1': //vertical
480
+ $src_y = $height -1;
481
+ $src_height = -$height;
482
+ break;
483
+
484
+ case '2': //horizontal
485
+ $src_x = $width -1;
486
+ $src_width = -$width;
487
+ break;
488
+
489
+ case '3': //both
490
+ $src_x = $width -1;
491
+ $src_y = $height -1;
492
+ $src_width = -$width;
493
+ $src_height = -$height;
494
+ break;
495
+
496
+ default:
497
+ return $imgsrc;
498
+
499
+ }
500
+ $canvas = imagecreatetruecolor ( $width, $height );
501
+ imagecopyresampled ( $canvas, $this->_imageHandler, 0, 0, $src_x, $src_y , $width, $height, $src_width, $src_height );
502
+ $this->_imageHandler = $canvas;
503
+ $this->refreshImageDimensions2();
504
+
505
+ }
506
+ private function refreshImageDimensions2()
507
+ {
508
+ $this->_imageSrcWidth = imagesx($this->_imageHandler);
509
+ $this->_imageSrcHeight = imagesy($this->_imageHandler);
510
+ }
511
+
512
+ }
513
+ class AuIt_PublicationBasic_Helper_Dirdirective extends Mage_Core_Helper_Abstract
514
+ {
515
+ public function checkDefaults()
516
+ {
517
+ $previewFolder = Mage::helper('auit_publicationbasic/filemanager')->getStorageRoot().DS.'snm-portal'.DS.'preview';
518
+ if ( !$this->getDirectiveFor($previewFolder,true) )
519
+ {
520
+ $fromFile = Mage::getConfig()->getModuleDir('etc', 'AuIt_PublicationBasic');
521
+ @copy( $fromFile.DS.'dir.directive.xml',$this->getDirectiveFilename($previewFolder));
522
+ }
523
+ }
524
+ public function getDirectiveFilename($dir)
525
+ {
526
+ if ( !Mage::helper('auit_publicationbasic/filemanager')->isSubDir($dir) )
527
+ return false;
528
+ return $dir.DS.'.directive.xml';
529
+ }
530
+ public function getDirectiveFor($dir,$bexact=false)
531
+ {
532
+ do {
533
+ if ( !Mage::helper('auit_publicationbasic/filemanager')->isSubDir($dir) )
534
+ return false;
535
+ $directive = $dir.DS.'.directive.xml';
536
+ if ( file_exists($directive) )
537
+ return $directive;
538
+ if ( $bexact )
539
+ return false;
540
+ $dir = dirname($dir);
541
+ }while (true);
542
+ }
543
+ public function execute($filename,$mode='upload')
544
+ {
545
+ $dir = dirname($filename);
546
+ $directive = $this->getDirectiveFor($dir);
547
+ if ( !$directive )
548
+ return;
549
+ /**
550
+ $directive = $dir.DS.'.directive.xml';
551
+ if ( !file_exists($directive) )
552
+ return;
553
+ */
554
+ $xml = new DOMDocument();
555
+ $xml->preserveWhiteSpace =false;
556
+ if ( !@$xml->load($directive) )
557
+ {
558
+ Mage::log("Can't load file $filename");
559
+ return;
560
+ }
561
+ $params=array();
562
+ $params['FULLNAME']=$filename;
563
+ $params['DIR']=$dir;
564
+ $params['FILENAME']=basename($filename);
565
+ return $this->executeDirective($xml,$mode,$params);
566
+ }
567
+ public function executeDirectiveString($xmlString,$target,&$params)
568
+ {
569
+ $xml = new DOMDocument();
570
+ $xml->preserveWhiteSpace =false;
571
+ if ( !@$xml->load($xmlString) )
572
+ {
573
+ Mage::log("Can't load xmlstring $xmlString");
574
+ return false;
575
+ }
576
+ return $this->executeDirective($xml,$mode,$params);
577
+ }
578
+ public function executeDirective(DOMDocument $xml,$target,&$params)
579
+ {
580
+ $xpath = new DOMXPath($xml);
581
+ $target = $xpath->query('//target[@name="'.$target.'"]');
582
+ try {
583
+ foreach ($target as $entry)
584
+ {
585
+ foreach ( $entry->childNodes as $node )
586
+ {
587
+ $tageName = $node->nodeName;
588
+ switch ($tageName)
589
+ {
590
+ case 'transform':
591
+ $this->transformDirective($node,$params);
592
+ break;
593
+ case 'copy':
594
+ $this->copyDirective($node,$params);
595
+ break;
596
+ case 'mkdir':
597
+ $this->mkdirDirective($node,$params);
598
+ break;
599
+ case 'load':
600
+ $this->loadDirective($node,$params);
601
+ break;
602
+ case 'replacefile':
603
+ $this->replacefileDirective($node,$params);
604
+ break;
605
+ }
606
+ }
607
+ break;
608
+ }
609
+ }
610
+ catch (Exception $e )
611
+ {
612
+ Mage::log($e->getMessage());
613
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
614
+ return false;
615
+ }
616
+ return true;
617
+ }
618
+ protected function createDirectory($newdir)
619
+ {
620
+ $io = new Varien_Io_File();
621
+ if (!$io->isWriteable($newdir) && !$io->mkdir($newdir))
622
+ {
623
+ Mage::throwException(Mage::helper('cms')->__('Directory %s is not writable by server',$newdir));
624
+ }
625
+ }
626
+ protected function getTempDir()
627
+ {
628
+ return Mage::getConfig()->getOptions()->getMediaDir().DS.'tmp'.DS.'snm-portal';
629
+ }
630
+ protected function cleanDir($tmpDirectory,$prefix='')
631
+ {
632
+ if ( !is_dir($tmpDirectory))
633
+ return;
634
+ $yesterday = time() - 24*3600;
635
+ $io = new Varien_Io_File();
636
+ try {
637
+ $io->checkAndCreateFolder($tmpDirectory);
638
+ $io->open(array('path'=>$tmpDirectory));
639
+ $del=array();
640
+ if ($dh = opendir($tmpDirectory)) {
641
+ while (($entry = readdir($dh)) !== false) {
642
+ $fullpath = $tmpDirectory . DIRECTORY_SEPARATOR . $entry;
643
+ if( !is_dir($fullpath) ) {
644
+ continue;
645
+ }
646
+ if ( !$prefix || substr($entry,0,strlen($prefix))==$prefix)
647
+ {
648
+ if ( filectime($fullpath) < $yesterday )
649
+ {
650
+ $del[]=$fullpath;
651
+ }
652
+ }
653
+ }
654
+ }
655
+ foreach ( $del as $entry)
656
+ {
657
+ $io->rmdir($entry, true);
658
+ }
659
+
660
+ } catch (Exception $e) {
661
+ Mage::log($e->getMessage());
662
+ }
663
+ }
664
+ static public function getNewFileName($destFile)
665
+ {
666
+ $fileInfo = pathinfo($destFile);
667
+ if( file_exists($destFile) ) {
668
+ $index = 1;
669
+ $baseName = $fileInfo['filename'] . '.' . $fileInfo['extension'];
670
+ while( file_exists($fileInfo['dirname'] . DIRECTORY_SEPARATOR . $baseName) ) {
671
+ $baseName = $fileInfo['filename']. '_' . $index . '.' . $fileInfo['extension'];
672
+ $index ++;
673
+ }
674
+ $destFileName = $baseName;
675
+ } else {
676
+ return $fileInfo['basename'];
677
+ }
678
+
679
+ return $destFileName;
680
+ }
681
+ protected function loadDirective(DOMElement $node,array &$params)
682
+ {
683
+ $from = $node->getAttribute('from');
684
+ if ( !$from )
685
+ return;
686
+ $to = $node->getAttribute('to');
687
+ if ( !$to )
688
+ {
689
+ $tmpDir = $this->getTempDir();
690
+ $this->cleanDir($tmpDir,'snm-portal-');
691
+ $to = $tmpDir.DS.'snm-portal-'.session_id();
692
+ }
693
+ $this->createDirectory($to);
694
+ $toFile = $to.DS.basename($from);
695
+ $toFile = $to.DS.self::getNewFileName($toFile);
696
+ file_put_contents($toFile,file_get_contents($from));
697
+ $params['FULLNAME']=$toFile;
698
+ $params['DIR']=$to;
699
+ $params['FILENAME']=basename($toFile);
700
+ }
701
+ protected function replacefileDirective(DOMElement $node,array &$params)
702
+ {
703
+ $helper= Mage::helper('auit_publicationbasic/filemanager');
704
+ $from = $node->getAttribute('from');
705
+ $from = $helper->convertIdToPath($helper->convertUrlToPathArea($from),false);
706
+ if ( !$from || !file_exists($from))
707
+ return;
708
+ $to = $node->getAttribute('to');
709
+ $to = $helper->convertIdToPath($helper->convertUrlToPathArea($to),false);
710
+ if ( !$to || !file_exists($to))
711
+ {
712
+ return;
713
+ }
714
+ $this->execute($to,'replace');
715
+ $bok = @copy( $from , $to );
716
+ if (!$bok) {
717
+ Mage::throwException(Mage::helper('cms')->__('replacefileDirective: can\'t copy from "%s" to "%s"', $from , $to));
718
+ }
719
+ $this->thumbnailDelete($to);
720
+ $params['FULLNAME']=$to;
721
+ $params['DIR']=dirname($to);
722
+ $params['FILENAME']=basename($to);
723
+ }
724
+ protected function mkdirDirective(DOMElement $node,array $params)
725
+ {
726
+ $subdir = $node->getAttribute('dir');
727
+ if ( !$subdir )
728
+ return;
729
+ $newdir = $params['DIR'].DS.$subdir;
730
+ $this->createDirectory($newdir);
731
+ }
732
+ protected function copyDirective(DOMNode $node,array $params)
733
+ {
734
+ $newFile = $params['DIR'];
735
+ $subdir = $node->getAttribute('todir');
736
+ if ( $subdir )
737
+ $newFile .= DS.$subdir;
738
+ $newFile .= DS.$params['FILENAME'];
739
+ $newdir = dirname($newFile);
740
+ $file = $params['FULLNAME'];
741
+ $ioAdapter = new Varien_Io_File();
742
+ if (!$ioAdapter->fileExists($file)) {
743
+ Mage::throwException(Mage::helper('cms')->__('File "%s" don\'t exist', $file));
744
+ }
745
+ $ioAdapter->setAllowCreateFolders(true);
746
+ $ioAdapter->createDestinationDir($newdir);
747
+ return $ioAdapter->cp($file,$newFile);
748
+ }
749
+ protected function transformDirective(DOMNode $transNode,array $params)
750
+ {
751
+ $filename = $params['FULLNAME'];
752
+ $image = new AuIt_PublicationBasic_Gd2();
753
+
754
+ $image->open($filename);
755
+
756
+ if ( 1 )
757
+ foreach ( $transNode->childNodes as $node )
758
+ {
759
+ $tageName = $node->nodeName;
760
+ switch ($tageName)
761
+ {
762
+ case 'resize':
763
+ $this->transformResize($image,$node,$params);
764
+ break;
765
+ case 'rotate':
766
+ $this->transformRotate($image,$node,$params);
767
+ break;
768
+ case 'crop':
769
+ $this->transformCrop($image,$node,$params);
770
+ break;
771
+ case 'fliph':
772
+ $this->transformFlipH($image,$node,$params);
773
+ break;
774
+ case 'flipv':
775
+ $this->transformFlipV($image,$node,$params);
776
+ break;
777
+ case 'watermark':
778
+ $this->transformWatermark($image,$node,$params);
779
+ break;
780
+ }
781
+ }
782
+ if ( $transNode->getAttribute('tofile') )
783
+ $image->save($transNode->getAttribute('tofile'));
784
+ else
785
+ $image->save($filename);
786
+ }
787
+ protected function getBoolValue($value)
788
+ {
789
+ $value = strtolower(trim($value));
790
+ if ( $value == 'true' or $value > 0 ) return true;
791
+ return false;
792
+ }
793
+ protected function getColorValue($value)
794
+ {
795
+ $rgb=array();
796
+ $rgb[0] = hexdec(substr($value,1,2));
797
+ $rgb[1] = hexdec(substr($value,3,2));
798
+ $rgb[2] = hexdec(substr($value,5,2));
799
+ return $rgb;
800
+ }
801
+ protected function transformResize(Varien_Image_Adapter_Abstract $image,DOMNode $node,array $params)
802
+ {
803
+ if ( $node->hasAttribute('keepAspectRatio') )
804
+ $image->keepAspectRatio($this->getBoolValue($node->getAttribute('keepAspectRatio')));
805
+ if ( $node->hasAttribute('keepFrame') )
806
+ $image->keepFrame($this->getBoolValue($node->getAttribute('keepFrame')));
807
+ if ( $node->hasAttribute('keepTransparency') )
808
+ $image->keepTransparency($this->getBoolValue($node->getAttribute('keepTransparency')));
809
+ if ( $node->hasAttribute('constrainOnly') )
810
+ $image->constrainOnly($this->getBoolValue($node->getAttribute('constrainOnly')));
811
+ if ( $node->hasAttribute('backgroundColor') )
812
+ $image->backgroundColor($this->getColorValue($node->getAttribute('backgroundColor')));
813
+
814
+ $frameWidth = null;
815
+ $frameHeight= null;
816
+
817
+ if ( $node->hasAttribute('width') )
818
+ {
819
+ $frameWidth = $node->getAttribute('width');
820
+ }
821
+ if ( $node->hasAttribute('height') )
822
+ {
823
+ $frameHeight = $node->getAttribute('height');
824
+ }
825
+ $image->resize($frameWidth, $frameHeight);
826
+ }
827
+ protected function transformRotate(Varien_Image_Adapter_Abstract $image,DOMNode $node,array $params)
828
+ {
829
+ /*<rotate angle="45"/>*/
830
+ if ( $node->hasAttribute('angle') )
831
+ {
832
+ $angle = (int)$node->getAttribute('angle');
833
+ $image->rotate($angle);
834
+ }
835
+ }
836
+ protected function transformCrop(Varien_Image_Adapter_Abstract $image,DOMNode $node,array $params)
837
+ {
838
+ /* <crop top="0" bottom="0" right="0" left="0"/>*/
839
+ $top="0"; $width="0"; $height="0"; $left="0";
840
+ if ( $node->hasAttribute('top') )
841
+ $top = $node->getAttribute('top');
842
+ if ( $node->hasAttribute('width') )
843
+ $width = $node->getAttribute('width');
844
+ if ( $node->hasAttribute('height') )
845
+ $height = $node->getAttribute('height');
846
+ if ( $node->hasAttribute('left') )
847
+ $left = $node->getAttribute('left');
848
+ $image->crop2($left,$top,$width,$height);
849
+ }
850
+ protected function transformWatermark(Varien_Image_Adapter_Abstract $image,DOMNode $node,array $params)
851
+ {
852
+ if ( $node->hasAttribute('image') )
853
+ {
854
+ $file =$node->getAttribute('image');
855
+ $watermarkImage = Mage::helper('auit_publicationbasic/filemanager')->getMediaRoot().DS.$file;
856
+ if ( file_exists($watermarkImage) )
857
+ {
858
+ $positionX=0;$positionY=0; $watermarkImageOpacity=30; $repeat=false;
859
+ if ( $node->hasAttribute('repeat') )
860
+ $repeat = $this->getBoolValue($node->getAttribute('repeat'));
861
+ if ( $node->hasAttribute('positionX') )
862
+ $positionX = (int)$node->getAttribute('positionX');
863
+ if ( $node->hasAttribute('positionY') )
864
+ $positionY = (int)$node->getAttribute('positionY');
865
+ if ( $node->hasAttribute('watermarkImageOpacity') )
866
+ $watermarkImageOpacity = (int)$node->getAttribute('watermarkImageOpacity');
867
+
868
+ $image->watermark($watermarkImage, $positionX, $positionY, $watermarkImageOpacity, $repeat);
869
+ }
870
+ }
871
+ /* <watermark image="pfad" positionX="0" positionY="0" watermarkImageOpacity="30" repeat="false"/>*/
872
+
873
+ }
874
+ protected function transformFlipH(Varien_Image_Adapter_Abstract $image,DOMNode $node,array $params)
875
+ {
876
+ $image->flip(2);
877
+ }
878
+ protected function transformFlipV(Varien_Image_Adapter_Abstract $image,DOMNode $node,array $params)
879
+ {
880
+ $image->flip(1);
881
+ }
882
+ public function thumbnailDelete($filename)
883
+ {
884
+
885
+ $thum = $this->getThumbPath($filename);
886
+ if ( file_exists($thum))
887
+ {
888
+ @unlink($thum);
889
+ }
890
+ }
891
+ public function getThumbPath($filename)
892
+ {
893
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
894
+ $path = $filename;
895
+ $rootPath = $helper->getRootArea($path);
896
+ $AreaName = $helper->getRootAreaName($path);
897
+ if ( $AreaName == AuIt_PublicationBasic_Helper_Filemanager::SKINROOT )
898
+ $rootPath = Mage::getBaseDir('skin');
899
+ $directory = Mage::getBaseDir('media') . DS.'catalog'.DS.'product'.DS.'cache'.DS.'thumbs'.DS.$AreaName;
900
+ $thumbFile = str_replace($rootPath, $directory, $path);
901
+ return $thumbFile;
902
+ }
903
+ public function getDocumentThumbUrl($filename,$size='')
904
+ {
905
+ $allowed = Mage::getSingleton('auit_publicationbasic/filemanager_storage')->getAllowedExtensions('document');
906
+ $thumbFile='';
907
+ $finfo = pathinfo($filename);
908
+ $fext = strtolower($finfo['extension']);
909
+ if ( in_array($fext,$allowed))
910
+ {
911
+ if ( file_exists(Mage::getBaseDir().'/js/auit/publicationbasic/images/thumbnail/'.$size.$fext.'.png') )
912
+ {
913
+ $thumbFile= Mage::getBaseUrl('js').'auit/publicationbasic/images/thumbnail/'.$size.$fext.'.png';
914
+ }
915
+ }
916
+ return $thumbFile;
917
+ }
918
+
919
+ public function getThumbUrl($filename)
920
+ {
921
+ if ( pathinfo($filename, PATHINFO_EXTENSION) == 'svg')
922
+ {
923
+ return str_replace(Mage::getBaseDir('media').DS,Mage::getBaseUrl('media'), $filename);
924
+ }
925
+ $thumbFile = $this->getThumbPath($filename);
926
+
927
+ if( !is_file($thumbFile)) {
928
+ $allowed = Mage::getSingleton('auit_publicationbasic/filemanager_storage')->getAllowedExtensions('image');
929
+ $finfo = pathinfo($filename);
930
+ $fext = strtolower($finfo['extension']);
931
+ if ( in_array($fext,$allowed))
932
+ {
933
+ $this->createThumbnail($filename,$thumbFile);
934
+ }
935
+ else {
936
+ $allowed = Mage::getSingleton('auit_publicationbasic/filemanager_storage')->getAllowedExtensions('document');
937
+ $thumbFile='';
938
+ if ( in_array($fext,$allowed))
939
+ {
940
+ if ( file_exists(Mage::getBaseDir().'/js/auit/publicationbasic/images/thumbnail/'.$fext.'.png') )
941
+ {
942
+ $thumbFile= Mage::getBaseUrl('js').'auit/publicationbasic/images/thumbnail/'.$fext.'.png';
943
+ }
944
+ }
945
+ if ( !$thumbFile )
946
+ $thumbFile= Mage::getBaseUrl('js').'auit/publicationbasic/images/thumbnail/empty.png';
947
+ return $thumbFile;
948
+ }
949
+ }
950
+ if( is_file($thumbFile)) {
951
+ return str_replace(Mage::getBaseDir('media').DS,Mage::getBaseUrl('media'), $thumbFile);
952
+ }
953
+ return '';
954
+ }
955
+ public function createThumbnail($filename,$thumbFile)
956
+ {
957
+ $thumbsPath = dirname($thumbFile);
958
+ $io = new Varien_Io_File();
959
+ if ($io->isWriteable($thumbsPath)) {
960
+ $io->mkdir($thumbsPath);
961
+ }
962
+ try {
963
+ $image = Varien_Image_Adapter::factory('GD2');
964
+ $image->keepAspectRatio(true);
965
+ $image->constrainOnly(true);
966
+ $image->keepTransparency(true);
967
+ $image->backgroundColor(array(255,255,255));
968
+ $image->open($filename);
969
+ //$image->keepFrame(true);
970
+ $width = Mage::getStoreConfig('auit_publicationbasic/wysiwyg/browser_resize_width');
971
+ $height = Mage::getStoreConfig('auit_publicationbasic/wysiwyg/browser_resize_height');
972
+ $image->resize($width, $height);
973
+ $image->save($thumbFile);
974
+ }
975
+ catch (Exception $e)
976
+ {
977
+ Mage::log("createThumbnail($filename) failed (create dummy): ".$e->getMessage());
978
+ try {
979
+ $image = new AuIt_PublicationBasic_Gd2();
980
+
981
+ $image->createDummy($filename);
982
+ $image->save($thumbFile);
983
+ }
984
+ catch (Exception $e)
985
+ {
986
+ }
987
+ }
988
+ }
989
+
990
+ }
app/code/local/AuIt/PublicationBasic/Helper/Export.php ADDED
@@ -0,0 +1,177 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Helper_Export extends Mage_Core_Helper_Abstract
3
+ {
4
+ const FIELD_NAME_SOURCE_FILE = 'publication_import_file';
5
+
6
+ public function uploadSource($dir)
7
+ {
8
+ $uploader = Mage::getModel('core/file_uploader', self::FIELD_NAME_SOURCE_FILE);
9
+ $uploader->skipDbProcessing(true);
10
+ $result = $uploader->save($dir);
11
+ $extension = pathinfo($result['file'], PATHINFO_EXTENSION);
12
+ $uploadedFile = $result['path'] .DS. $result['file'];
13
+ if ($extension != 'tgz') {
14
+ unlink($uploadedFile);
15
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Uploaded file has no extension'));
16
+ }
17
+ $gzPacker = new Mage_Archive_Gz();
18
+ $tmpName = '~tmp-'. microtime(true) . '.tar';
19
+ $gzPacker->unpack($uploadedFile, $dir.DS.$tmpName);
20
+ $tarPacker = new Mage_Backup_Archive_Tar();
21
+ $tarPacker->unpack($dir.DS.$tmpName, $dir.DS.'import'.DS);
22
+ return $dir.DS.'import';
23
+ }
24
+ public function getImportDir()
25
+ {
26
+ return Mage::getBaseDir("var").DS.'tmp'.DS.'import';
27
+ }
28
+ public function getTemplateDir($uniqId)
29
+ {
30
+ return Mage::getBaseDir("var").DS.'tmp'.DS.'templates'.DS.$uniqId;
31
+ }
32
+ protected function _checkDir($path)
33
+ {
34
+ $io = new Varien_Io_File();
35
+ if (is_dir($path) || $io->mkdir($path)) {
36
+ if ( is_writable($path) )
37
+ return true;
38
+ }
39
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot create new directory:%s',$path));
40
+ }
41
+
42
+
43
+
44
+ public function importArea($uniqId)
45
+ {
46
+ $importDir = $this->getImportDir().DS.$uniqId;
47
+ return $this->importDir($uniqId,$importDir,false);
48
+ }
49
+ public function validImport($data)
50
+ {
51
+ $uniqId = uniqid();
52
+ $importDir = $this->getImportDir().DS.$uniqId;
53
+ $this->_checkDir($importDir);
54
+ $this->uploadSource($importDir);
55
+ return $this->importDir($uniqId,$importDir,true);
56
+ }
57
+ public function importDir($uniqId,$importDir,$bvalidate)
58
+ {
59
+ $templateDir = $importDir.DS.'import';
60
+ $messages=array();
61
+ $messages['import_dir']=$importDir;
62
+ $messages['import_key']=$uniqId;
63
+
64
+ $templates = unserialize(file_get_contents($templateDir.DS.'package.ser'));
65
+ if ( is_array($templates))
66
+ {
67
+ if ( is_array($templates['fonts']) )
68
+ foreach ( $templates['fonts'] as $font => $tmp)
69
+ {
70
+ $fileFrom = $templateDir.DS.'fonts'.DS.$font;
71
+ if ( !is_file($fileFrom) )
72
+ {
73
+ $messages['error'][] = $this->__('Cannot find file in archiv : %s',$font);
74
+ }else {
75
+ $file = Mage::helper('auit_publication/font')->getFontDir($font);
76
+ if ( !is_file($file) )
77
+ {
78
+
79
+ $messages['notice'][] = $this->__('Import font %s',$font);
80
+ if (!$bvalidate )
81
+ $this->_checkDir(dirname($file));
82
+ if (!$bvalidate && !copy($fileFrom,$file) )
83
+ $messages['error'][] = $this->__('Cannot copy font :%s',$font);
84
+ }else {
85
+ $messages['notice'][] = $this->__('Font %s already imported -> ignore',$font);
86
+ }
87
+ }
88
+ }
89
+
90
+ if ( is_array($templates['images']) )
91
+ foreach ( $templates['images'] as $image => $tmp )
92
+ {
93
+ $fileFrom = $templateDir.DS.'images'.DS.$image;
94
+ if ( !is_file($fileFrom) )
95
+ {
96
+ $messages['error'][] = $this->__('Cannot find file in archiv : %s',$image);
97
+ }else {
98
+ $file = Mage::helper('auit_publicationbasic/filemanager')->convertIdToPath($image,false);
99
+ if ( !is_file($file) )
100
+ {
101
+ $messages['notice'][] = $this->__('Import image %s',$image);
102
+ if (!$bvalidate )
103
+ $this->_checkDir(dirname($file));
104
+ if (!$bvalidate && !copy($fileFrom,$file) )
105
+ $messages['error'][] = $this->__('Cannot copy image :%s',$image);
106
+ }else {
107
+ $messages['notice'][] = $this->__('Image %s already imported -> ignore',$image);
108
+ }
109
+ }
110
+ }
111
+ if ( is_array($templates['styles']) )
112
+ foreach ( $templates['styles'] as $styleId => $tmp )
113
+ {
114
+ $styleId=trim($styleId);
115
+ $file = $templateDir.DS.'style_'.$styleId.'.ser';
116
+ if ( !file_exists($file) )
117
+ $messages['error'][]=$this->__('Cannot find file in archiv : %s',''.$file);
118
+ else {
119
+ $data = unserialize(file_get_contents($file));
120
+ $model = Mage::getModel('auit_publication/styles');
121
+ $model->load($styleId,'identifier');
122
+ if (!$model->getId() || $model->getIdentifier() != $styleId || $model->getUpdateTime() < $data['update_time'] )
123
+ {
124
+ $messages['notice'][] = $this->__('Import style %s ',$styleId);
125
+ $model->importData($messages,$templateDir,$data,$bvalidate);
126
+ $messages['transaction'][]=$model;
127
+ }else
128
+ $messages['notice'][] = $this->__('Style %s already imported -> ignore',$styleId);
129
+ }
130
+ }
131
+ if ( is_array($templates['generators']) )
132
+ foreach ( $templates['generators'] as $generatorId => $tmp )
133
+ {
134
+ $generatorId=trim($generatorId);
135
+ $file = $templateDir.DS.'generator_'.$generatorId.'.ser';
136
+ if ( !file_exists($file) )
137
+ $messages['error'][]=$this->__('Cannot find file in archiv : %s',''.$file);
138
+ else {
139
+ $data = unserialize(file_get_contents($file));
140
+ $model = Mage::getModel('auit_publication/generator');
141
+ $model->load($generatorId,'identifier');
142
+ if (!$model->getId() || $model->getIdentifier() != $generatorId || $model->getUpdateTime() < $data['update_time'] )
143
+ {
144
+ $messages['notice'][] = $this->__('Import generator %s ',$generatorId);
145
+ $model->importData($messages,$templateDir,$data,$bvalidate);
146
+ $messages['transaction'][]=$model;
147
+ }else
148
+ $messages['notice'][] = $this->__('Generator %s already imported -> ignore',$generatorId);
149
+ }
150
+ }
151
+
152
+ if ( is_array($templates['templates']) )
153
+ foreach ( $templates['templates'] as $templateId => $tmp )
154
+ {
155
+ $templateId=trim($templateId);
156
+ $file = $templateDir.DS.'template_'.$templateId.'.ser';
157
+ if ( !file_exists($file) )
158
+ $messages['error'][]=$this->__('Cannot find file in archiv : %s',''.$file);
159
+ else {
160
+ $data = unserialize(file_get_contents($file));
161
+ $model = Mage::getModel('auit_publication/template');
162
+ $model->load($templateId,'identifier');
163
+ if (!$model->getId() || $model->getIdentifier() != $templateId || $model->getUpdateTime() < $data['update_time'] )
164
+ {
165
+ $messages['notice'][] = $this->__('Import template %s ',$templateId);
166
+ $model->importData($messages,$templateDir,$data,$bvalidate);
167
+ $messages['transaction'][]=$model;
168
+ }else
169
+ $messages['notice'][] = $this->__('Template %s already imported -> ignore',$templateId);
170
+ }
171
+ }
172
+ }else {
173
+ $messages['error'][] = $this->__('File does not contain data. Please upload another one');
174
+ }
175
+ return $messages;
176
+ }
177
+ }
app/code/local/AuIt/PublicationBasic/Helper/Filemanager.php ADDED
@@ -0,0 +1,438 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Helper_Filemanager extends Mage_Core_Helper_Abstract
3
+ {
4
+ const MEDIAROOT='MEDIAROOT';
5
+ const PROTECTEDROOT='PROTECTEDROOT';
6
+ const SKINROOT='SKINROOT';
7
+ const SKINTHEMEROOT='SKINTHEMEROOT';
8
+ const ROOT='ROOT';
9
+ const UNKNOWN='UNKNOWN';
10
+ protected $_currentPath;
11
+ protected $_currentUrl;
12
+ protected $_rootPath;
13
+
14
+ static public function return_bytes($val) {
15
+ $val = trim($val);
16
+ $last = strtolower($val[strlen($val)-1]);
17
+ switch($last) {
18
+ // The 'G' modifier is available since PHP 5.1.0
19
+ case 'g':
20
+ $val *= 1024;
21
+ case 'm':
22
+ $val *= 1024;
23
+ case 'k':
24
+ $val *= 1024;
25
+ }
26
+ return $val;
27
+ }
28
+ public function getMaxUploadSize($inMb=false)
29
+ {
30
+ $val = min(self::return_bytes(ini_get('post_max_size')),self::return_bytes(ini_get('upload_max_filesize')));
31
+ if ( $inMb )
32
+ {
33
+ $val /= 1024;
34
+ $val /= 1024;
35
+
36
+ $val = round($val,2).'MB';
37
+
38
+ }
39
+ return $val;
40
+ }
41
+
42
+ public function TreeRoots()
43
+ {
44
+ $defDir = $this->correctPath( $this->getStorage()->getConfigData('upload_root') );
45
+ $defDir = sprintf('{{media url="%s/{0}"}}', $defDir);
46
+ return array(
47
+ 'root'=>'ROOT',
48
+ 'root_directive'=>'{{media url="{0}"}}',
49
+ // 'media'=>$this->convertPathToId($this->getMediaRoot()),
50
+ // 'media_directive'=>$defDir,
51
+ 'preview'=>$this->convertPathToId($this->getStorageRoot().DS.'snm-portal'.DS.'preview'),
52
+ 'preview_directive'=>'{{media url="snm-portal/preview/{0}"}}',
53
+ 'preview_url'=>$this->getStorageRootUrl().'snm-portal/preview/',
54
+ 'categorie'=>$this->convertPathToId($this->getStorageRoot().DS.'catalog'.DS.'category'),
55
+ 'categorie_directive'=>'{{media url="catalog/category/{0}"}}'
56
+ );
57
+ }
58
+ public function checkFolder($folder,$bhtAccess=false)
59
+ {
60
+ $io = new Varien_Io_File();
61
+ if (!$io->isWriteable($folder) && !$io->mkdir($folder))
62
+ {
63
+ Mage::log($this->__('Directory %s is not writable by server',$folder));
64
+ return false;
65
+ }
66
+ if ( $bhtAccess && !file_exists($folder.DS.'.htaccess'))
67
+ {
68
+ file_put_contents($folder.DS.'.htaccess',
69
+ "<IfModule mod_rewrite.c>\n"
70
+ ."RewriteEngine on\n"
71
+ ."RewriteRule .* ../../../protected_area [L]\n"
72
+ ."</IfModule>\n"
73
+ ."<IfModule !mod_rewrite.c>\n"
74
+ ."Order deny,allow\n"
75
+ ."Deny from all\n"
76
+ ."</IfModule>\n");
77
+ }
78
+ return true;
79
+ }
80
+ public function getStorage()
81
+ {
82
+ return Mage::getSingleton('auit_publicationbasic/filemanager_storage');
83
+ }
84
+
85
+ public function isCurrentRootPath()
86
+ {
87
+ return $this->getStorageRoot() == $this->getCurrentPath();
88
+ }
89
+
90
+ public function isSubDir($dir)
91
+ {
92
+ return strpos($dir,$this->getStorageRoot()) === 0 || strpos($dir,$this->getSkinRoot()) === 0;
93
+ }
94
+ public function getProtectedRoot()
95
+ {
96
+ $root = $this->correctPath( $this->getStorage()->getConfigData('protected_root') );
97
+ return Mage::getConfig()->getOptions()->getMediaDir() . DS . $root;
98
+ }
99
+ public function getProtectedBaseUrl()
100
+ {
101
+ $root = $this->correctPath( $this->getStorage()->getConfigData('protected_root') );
102
+ return Mage::getBaseUrl('media'). $root. DS;
103
+ }
104
+ public function getPreviewRoot()
105
+ {
106
+ $root = $this->correctPath( $this->getStorage()->getConfigData('preview_root') );
107
+ return Mage::getConfig()->getOptions()->getMediaDir() . DS . $root;
108
+ }
109
+ public function getCatalogRoot()
110
+ {
111
+ return $this->getStorageRoot().DS.'catalog'.DS.'category';
112
+ }
113
+ public function getMediaRoot()
114
+ {
115
+ // $root = $this->correctPath( $this->getStorage()->getConfigData('upload_root') );
116
+ return Mage::getConfig()->getOptions()->getMediaDir();// . DS . $root;
117
+ }
118
+ public function getMediaBaseUrl()
119
+ {
120
+ // $root = $this->correctPath( $this->getStorage()->getConfigData('upload_root') );
121
+ return Mage::getBaseUrl('media');//. $root. DS;
122
+ }
123
+
124
+ public function getStorageRootUrl()
125
+ {
126
+ return Mage::getBaseUrl('media');
127
+ }
128
+
129
+ public function getSkinBaseUrl()
130
+ {
131
+ return Mage::getDesign()->getSkinBaseUrl(array('_theme' => 'default','_package'=>'default'));
132
+ }
133
+
134
+ public function getSkinRoot()
135
+ {
136
+ return Mage::getDesign()->getSkinBaseDir(array('_theme' => 'default','_package'=>'default'));
137
+ }
138
+ public function getSkinThemeBaseUrl()
139
+ {
140
+ return Mage::getDesign()->getSkinBaseUrl();
141
+ }
142
+
143
+ public function getSkinThemeRoot()
144
+ {
145
+ return Mage::getDesign()->getSkinBaseDir();
146
+ }
147
+
148
+ public function getRootArea($path)
149
+ {
150
+ if ( strpos($path,$this->getStorageRoot()) !== false )
151
+ return $this->getStorageRoot();
152
+ if ( strpos($path,$this->getMediaRoot()) !== false )
153
+ return $this->getMediaRoot();
154
+ if ( strpos($path,$this->getSkinThemeRoot()) !== false )
155
+ return $this->getSkinThemeRoot();
156
+ if ( strpos($path,$this->getSkinRoot()) !== false )
157
+ return $this->getSkinRoot();
158
+ if ( strpos($path,$this->getProtectedRoot()) !== false )
159
+ return $this->getProtectedRoot();
160
+ return $this->getStorageRoot();
161
+ }
162
+ public function getRootAreaName($path)
163
+ {
164
+ if ( strpos($path,$this->getStorageRoot()) !== false )
165
+ return self::ROOT;
166
+ if ( strpos($path,$this->getMediaRoot()) !== false )
167
+ return self::MEDIAROOT;
168
+ if ( strpos($path,$this->getSkinThemeRoot()) !== false )
169
+ return self::SKINTHEMEROOT;
170
+ if ( strpos($path,$this->getSkinRoot()) !== false )
171
+ return self::SKINROOT;
172
+ if ( strpos($path,$this->getProtectedRoot()) !== false )
173
+ return self::PROTECTEDROOT;
174
+ return self::UNKNOWN;
175
+ }
176
+ public function getStorageRoot()
177
+ {
178
+ return Mage::getBaseDir('media').DS.'snm-portal'.DS.'publication'.DS.'images';
179
+ // return $this->_rootPath;
180
+ // return Mage::getConfig()->getOptions()->getMediaDir();
181
+ }
182
+ public function getTreeNodeName()
183
+ {
184
+ return 'id';
185
+ }
186
+
187
+ public function convertUrlToPathArea($url)
188
+ {
189
+ $root = self::ROOT;
190
+ if ( strpos($url,$this->getMediaBaseUrl()) !== false )
191
+ {
192
+ return str_replace($this->getMediaBaseUrl(),self::MEDIAROOT.DS, $url);
193
+ }
194
+ if ( strpos($url,$this->getStorageRootUrl()) !== false )
195
+ {
196
+ return str_replace($this->getStorageRootUrl(),self::ROOT.DS, $url);
197
+ }
198
+ if ( strpos($url,$this->getSkinThemeBaseUrl()) !== false )
199
+ {
200
+ return str_replace($this->getSkinThemeBaseUrl(),self::SKINTHEMEROOT.DS, $url);
201
+ }
202
+ if ( strpos($url,$this->getSkinBaseUrl()) !== false )
203
+ {
204
+ return str_replace($this->getSkinBaseUrl(),self::SKINROOT.DS, $url);
205
+ }
206
+ if ( strpos($url,$this->getProtectedBaseUrl()) !== false )
207
+ {
208
+ return str_replace($this->getProtectedBaseUrl(),self::PROTECTEDROOT.DS, $url);
209
+ }
210
+ return '';
211
+ }
212
+ public function convertPathToArea($path)
213
+ {
214
+ $path = str_replace($this->getRootArea($path), $this->getRootAreaName($path).DS, $path);
215
+ return str_replace(DS.DS, DS, $path);
216
+ }
217
+ public function urlEncode($url)
218
+ {
219
+ return strtr(base64_encode($url), '=', '_');
220
+ return base64_encode($url).'_A';
221
+ }
222
+ public function urlDecode($url)
223
+ {
224
+ $url = base64_decode(strtr($url, '_', '='));
225
+ return Mage::getSingleton('core/url')->sessionUrlVar($url);
226
+ return $url;
227
+ $url = substr($url,-2);
228
+
229
+ return base64_decode($url);
230
+ }
231
+ public function convertPathToId($path)
232
+ {
233
+ return $this->urlEncode($this->convertPathToArea($path));
234
+ }
235
+ public function convertIdToPath($id,$encode=true)
236
+ {
237
+ switch ( $id )
238
+ {
239
+ case self::ROOT:
240
+ // case 'AUITFBR':
241
+ return $this->getStorageRoot();
242
+ break;
243
+ case self::MEDIAROOT:
244
+ return $this->getMediaRoot();
245
+ break;
246
+ case self::SKINTHEMEROOT:
247
+ return $this->getSkinThemeRoot();
248
+ break;
249
+ case self::SKINROOT:
250
+ return $this->getSkinRoot();
251
+ break;
252
+ case self::PROTECTEDROOT:
253
+ return $this->getProtectedRoot();
254
+ break;
255
+ }
256
+ $path = $encode?$this->urlDecode($id):$id;
257
+ $fp = explode(DS,$path);
258
+ switch (array_shift($fp))
259
+ {
260
+ case self::MEDIAROOT:
261
+ $path = implode(DS,$fp);
262
+ $path = $this->getMediaRoot() .DS. $path;
263
+ break;
264
+ case self::SKINTHEMEROOT:
265
+ $path = implode(DS,$fp);
266
+ $path = $this->getSkinThemeRoot() .DS. $path;
267
+ break;
268
+ case self::SKINROOT:
269
+ $path = implode(DS,$fp);
270
+ $path = $this->getSkinRoot() .DS. $path;
271
+ break;
272
+ case self::PROTECTEDROOT:
273
+ $path = implode(DS,$fp);
274
+ $path = $this->getProtectedRoot() .DS. $path;
275
+ break;
276
+ case self::ROOT:
277
+ $path = implode(DS,$fp);
278
+ $path = $this->getStorageRoot() .DS. $path;
279
+ break;
280
+ default:
281
+ if (!strstr($path, $this->getStorageRoot())) {
282
+ $path = $this->getStorageRoot() . $path;
283
+ }
284
+ break;
285
+ }
286
+ return $path;
287
+ }
288
+ public function correctPath($path, $trim = true)
289
+ {
290
+ $path = strtr($path, "\\\/", DS . DS);
291
+ if ($trim) {
292
+ $path = trim($path, DS);
293
+ }
294
+ return $path;
295
+ }
296
+ public function convertPathToUrl($path)
297
+ {
298
+ return str_replace(DS, '/', $path);
299
+ }
300
+ public function getCurrentPath()
301
+ {
302
+ if (!$this->_currentPath) {
303
+ $currentPath = $this->getStorageRoot();
304
+ $path = $this->_getRequest()->getParam($this->getTreeNodeName());
305
+ if ($path) {
306
+ $path = $this->convertIdToPath($path);
307
+ if (is_dir($path)) {
308
+ $currentPath = $path;
309
+ }
310
+ else if (is_file($path) && is_dir(dirname($path))) {
311
+ $currentPath = dirname($path);
312
+ }
313
+ }
314
+ /*
315
+ $io = new Varien_Io_File();
316
+ if (!$io->isWriteable($currentPath) && !$io->mkdir($currentPath)) {
317
+ Mage::throwException($this->__('Directory %s is not writable by server',$currentPath));
318
+ }
319
+ */
320
+ $this->_currentPath = $currentPath;
321
+ }
322
+ return $this->_currentPath;
323
+ }
324
+
325
+ public function getUrl($path)
326
+ {
327
+ $RelPath = str_replace($this->getRootArea($path).DS, '', $path);
328
+ switch ( $this->getRootAreaName($path) )
329
+ {
330
+ case self::SKINTHEMEROOT:
331
+ $path = $this->getSkinThemeBaseUrl().$RelPath;
332
+ break;
333
+ case self::SKINROOT:
334
+ $path = $this->getSkinBaseUrl().$RelPath;
335
+ break;
336
+ case self::MEDIAROOT:
337
+ $path = $this->getMediaBaseUrl().$RelPath;
338
+ break;
339
+ case self::PROTECTEDROOT:
340
+ $path = $this->getProtectedBaseUrl().$RelPath;
341
+ break;
342
+ case self::ROOT:
343
+ $path = Mage::getBaseUrl('media').'snm-portal/publication/images/'.$RelPath;
344
+ break;
345
+ default:
346
+ $path = '';
347
+ break;
348
+ }
349
+ return $path;
350
+ }
351
+ public function getDonwloadUrl($path)
352
+ {
353
+ return $this->getUrl($path);
354
+ }
355
+
356
+ public function getRelative($path,$root='')
357
+ {
358
+ if ( !$root )
359
+ $root= $this->getRootArea($path);
360
+ return str_replace($root.DS, '', $path);
361
+ }
362
+ public function getDirective($path,$quote='"')
363
+ {
364
+ $root = $this->getRootAreaName($path);
365
+ $path = str_replace($this->getRootArea($path).DS, '', $path);
366
+ switch ( $root )
367
+ {
368
+ case self::SKINTHEMEROOT:
369
+ return sprintf('{{skin url='.$quote.'%s'.$quote.'}}', $path);
370
+ break;
371
+ case self::SKINROOT:
372
+ return sprintf('{{skin url='.$quote.'%s'.$quote.'}}', $path);
373
+ break;
374
+ case self::MEDIAROOT:
375
+ $root = $this->correctPath( $this->getStorage()->getConfigData('upload_root') );
376
+ return sprintf('{{media url='.$quote.'%s/%s'.$quote.'}}', $root,$path);
377
+ break;
378
+ case self::PROTECTEDROOT:
379
+ $root = $this->correctPath( $this->getStorage()->getConfigData('protected_root') );
380
+ return sprintf('{{media url="%s/%s"}}', $root,$path);
381
+ break;
382
+ case self::ROOT:
383
+ return sprintf('{{media url='.$quote.'%s'.$quote.'}}', $path);
384
+ break;
385
+ }
386
+ return $path;
387
+ }
388
+ public function getMIMEType($fileName)
389
+ {
390
+ $extension = pathinfo($fileName, PATHINFO_EXTENSION);
391
+ switch (strtolower($extension)) {
392
+ case 'gif':
393
+ $contentType = 'image/gif';
394
+ break;
395
+ case 'jpg':
396
+ $contentType = 'image/jpeg';
397
+ break;
398
+ case 'png':
399
+ $contentType = 'image/png';
400
+ break;
401
+ case 'svg':
402
+ $contentType = 'image/svg+xml';
403
+ break;
404
+ default:
405
+ $contentType = 'application/octet-stream';
406
+ break;
407
+ }
408
+ return $contentType;
409
+ }
410
+ public function getResolution($path,$default=72)
411
+ {
412
+ $dpi=$default;
413
+ if ( is_file($path) && pathinfo($path, PATHINFO_EXTENSION) != 'svg')
414
+ {
415
+ $cacheKey = 'AUIT_PUBLICATION_FILE_' .md5 ($path);
416
+ $cache = Mage::app()->loadCache($cacheKey);
417
+ if ( Mage::app()->useCache('config') && $cache) {
418
+ $dpi=$cache;
419
+ } else {
420
+ if (extension_loaded('imagick')) {
421
+ try {
422
+ $image=new Imagick($path);
423
+ $res=$image->getImageResolution();
424
+ $dpi=array_shift($res);
425
+
426
+ }catch (Exception $e )
427
+ {
428
+ Mage::log("getResolution not found : $path : ".$e->getMessage());
429
+ }
430
+ }
431
+ if (Mage::app()->useCache('config')) {
432
+ Mage::app()->saveCache($dpi, $cacheKey, array('config'));
433
+ }
434
+ }
435
+ }
436
+ return $dpi;
437
+ }
438
+ }
app/code/local/AuIt/PublicationBasic/Helper/Font.php ADDED
@@ -0,0 +1,215 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Helper_Font extends Mage_Core_Helper_Abstract
10
+ {
11
+ const PATH_FONTS='snm-portal/fonts';
12
+ const URL_FONTS='snm-portal/fonts';
13
+ public function getFontPath()
14
+ {
15
+ return Mage::getBaseDir('media').DS.self::PATH_FONTS;
16
+ }
17
+ public function getFontUrl($font)
18
+ {
19
+ return $path = Mage::getBaseUrl('media').self::URL_FONTS.DS.$font;
20
+ }
21
+ public function getFontDir($font)
22
+ {
23
+ return $path = $this->getFontPath().DS.$font;
24
+ }
25
+
26
+ public function getFonts($ball = false)
27
+ {
28
+ $path = $this->getFontPath();
29
+ $r = array();
30
+ $r[]=array(
31
+ 'name' => $this->__('Default'),
32
+ 'uid' => ':',
33
+ 'styles' => Array
34
+ (
35
+ Array(
36
+ 'uid' => ':',
37
+ 'name' => $this->__('Default'),
38
+ 'style' => $this->__('Default'),
39
+ )
40
+ ),
41
+ 'visible' => 1
42
+ );
43
+ $result = $this->_loadFonts($path);
44
+ foreach ( $result as $i ){
45
+ $i['visible']=1;
46
+ $r[]=$i;
47
+ }
48
+ if ( $ball )
49
+ {
50
+ $result = $this->_loadFonts($path.DS.'hidden');
51
+ foreach ( $result as $i ){
52
+ $i['visible']=0;
53
+ $r[]=$i;
54
+ }
55
+ }
56
+ return $r;
57
+ }
58
+ public function checkFont($filename,$v)
59
+ {
60
+ if ( $v == 1){
61
+ $from = $this->getFontPath().DS.'hidden'.DS.$filename;
62
+ $to = $this->getFontPath().DS.$filename;
63
+ }
64
+ else
65
+ {
66
+ $to = $this->getFontPath().DS.'hidden'.DS.$filename;
67
+ $from = $this->getFontPath().DS.$filename;
68
+ }
69
+ if ( file_exists($from) )
70
+ {
71
+ @mkdir(dirname($to));
72
+ @rename($from, $to);
73
+ }
74
+
75
+ }
76
+ public function loadGoogleFont($fn)
77
+ {
78
+ $url = 'http://fonts.googleapis.com/css?family='.$fn;
79
+
80
+ $data = file_get_contents($url);
81
+ preg_match_all('|src:([^;]*);|usiU',$data,$founds);
82
+ if ( is_array($founds) && count($founds) == 2 )
83
+ {
84
+ foreach ( $founds[1] as $font )
85
+ {
86
+ $ln='';
87
+ $url='';
88
+ preg_match('|local\(([^\(]*)\)|usiU',$font,$local);
89
+ if ( is_array($local) && count($local) == 2 )
90
+ {
91
+ $ln=trim($local[1]," '");
92
+ }
93
+ preg_match('|url\(([^\(]*)\)|usiU',$font,$local);
94
+ if ( is_array($local) && count($local) == 2 )
95
+ {
96
+ $url=trim($local[1]);
97
+ }
98
+ $this->_loadFile($url,$this->getFontPath().DS.$ln.'.ttf');
99
+ }
100
+ }else {
101
+ Mage::log("AuIt_PublicationBasic_Helper_Font::loadGoogleFont can't load font: $fn");
102
+ }
103
+ }
104
+ protected function _loadFile($url,$to)
105
+ {
106
+ if (!ini_get('allow_url_fopen') )
107
+ {
108
+ $ch = curl_init();
109
+ curl_setopt($ch, CURLOPT_URL, $url);
110
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
111
+ curl_setopt($ch, CURLOPT_HEADER, 0);
112
+ $data = curl_exec($ch);
113
+ curl_close($ch);
114
+ }else {
115
+ $data = @file_get_contents($url);
116
+ }
117
+ if ( $data && $to )
118
+ {
119
+ @file_put_contents($to, $data);
120
+ }
121
+ }
122
+
123
+ /*
124
+ public function getFontsG($fullPath=false)
125
+ {
126
+ $file = Mage::getModuleDir('data', 'AuIt_PublicationBasic') . DS . 'gfont.ser';
127
+ if ( !file_exists($file) )
128
+ {
129
+ //<link href='http://fonts.googleapis.com/css?family=Archivo+Narrow:400,700' rel='stylesheet' type='text/css'>
130
+ $gf = json_decode(file_get_contents('https://www.googleapis.com/webfonts/v1/webfonts'));
131
+ if ( $gf && is_array($gf->items) )
132
+ {
133
+
134
+ $fonts = array();
135
+ foreach ($gf->items as $item )
136
+ {
137
+ $name = $item->family;
138
+ $styles=array();
139
+ $baseuid= '';
140
+ foreach ( $item->variants as $variant )
141
+ {
142
+ $styles[]=array(
143
+ 'name'=>$name,
144
+ 'uid'=>$name.':'.$variant,
145
+ 'style'=>$variant
146
+ );
147
+ if ( !$baseuid ) $baseuid=$name.':'.$variant;
148
+ if ( $variant == 'regular' ) $baseuid=$name.':'.$variant;
149
+ }
150
+ $font = array(
151
+ 'name'=>$name,
152
+ 'uid'=>$baseuid,
153
+ 'styles'=>$styles
154
+ );
155
+ $fonts[]=$font;
156
+ }
157
+ file_put_contents($file,serialize($fonts));
158
+ }
159
+ }else
160
+ $fonts = unserialize(file_get_contents($file));
161
+
162
+
163
+ return $fonts;
164
+ }
165
+ */
166
+ protected function _loadFonts($path)
167
+ {
168
+ $result = array();
169
+ $dir = @opendir($path);
170
+ if ($dir) {
171
+ while ($entry = @readdir($dir)) {
172
+
173
+ if (substr($entry, 0, 1) == '.' || !is_file($path . DS . $entry)){
174
+ continue;
175
+ }
176
+ $FN = $entry;
177
+ $fullpath = $path . DS . $entry;
178
+
179
+ $lentry = strtolower($entry);
180
+ if ( pathinfo($lentry, PATHINFO_EXTENSION) != 'ttf' ) continue;
181
+ try {
182
+ $fontInfo = Mage::getModel('auit_publicationbasic/font');
183
+ if ( $fontInfo->setFile($fullpath) )
184
+ {
185
+ //Mage::log($fontInfo);
186
+ $idx = $fontInfo->getFontFamily();
187
+
188
+ /*
189
+ * ' ID:'.$fontInfo->getFontIdentifier().
190
+ ' FN:'.$fontInfo->getFontName().
191
+ ' PN:'.$fontInfo->getPostscriptName()
192
+ //':'.$fontInfo->getCopyright()
193
+
194
+ */
195
+ $uid = $FN.':'.$fontInfo->getPostscriptName();//$fontInfo->getFontName().':'.$fontInfo->getFontSubFamily();
196
+ $info = array(
197
+ 'uid'=> $uid,
198
+ 'name'=>$fontInfo->getFontFamily(),
199
+ 'style'=>$fontInfo->getFontSubFamily()
200
+ );
201
+ if ( !isset($result[$idx]) )
202
+ $result[$idx] = array('name'=>$idx,'uid'=>$idx.':','styles'=>array());
203
+ $result[$idx]['styles'][]=$info;
204
+ }
205
+ }catch (Exception $e){
206
+ }
207
+ }
208
+ unset($entry);
209
+ closedir($dir);
210
+ }
211
+ ksort($result);
212
+ return $result;
213
+ }
214
+
215
+ }
app/code/local/AuIt/PublicationBasic/Helper/Pdf.php ADDED
@@ -0,0 +1,211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Helper_Pdf extends Mage_Core_Helper_Abstract
3
+ {
4
+ public function getDataSheetUrl($product,$params=array())
5
+ {
6
+ if ($product && $product instanceof Mage_Catalog_Model_Product) {
7
+ $params['skub64']=urlencode(base64_encode($product->getSku()));
8
+ return Mage::getUrl('auit_publicationbasic/content/datasheet',$params);
9
+ }
10
+ return false;
11
+ }
12
+ public function getDataSheetTemplateId($product)
13
+ {
14
+
15
+ $tid = Mage::getStoreConfig('auit_publicationbasic/product_pdf/template_default');
16
+ $map = (array)Mage::helper('auit_publicationbasic/arrayconfig')->getArrayStoreConfig('auit_publicationbasic/product_pdf/template_mapping');
17
+ foreach ( $map as $item )
18
+ {
19
+ $v = $product->getData($item['attribute']);
20
+ if ( $this->_text_compare($item['value'], $v) )
21
+ {
22
+ return $item['template'];
23
+ break;
24
+ }
25
+ }
26
+ return $tid;
27
+ $tid = Mage::helper('auit_publicationbasic/pdf')->getBestTemplateId($sku);
28
+ }
29
+ protected function _text_compare($wild, $attValue) {
30
+ $secs = explode('|',$wild);
31
+ foreach ( $secs as $sec)
32
+ {
33
+ if ( !$sec ) continue;
34
+
35
+ if ( function_exists('fnmatch') )
36
+ {
37
+ if ( fnmatch($sec, $attValue) )
38
+ return true;
39
+ } else {
40
+ if ($this->_wild_compare($sec, $attValue))
41
+ return true;
42
+ }
43
+ }
44
+ return false;
45
+ }
46
+ protected function _wild_compare($wild, $string) {
47
+ $wild_i = 0;
48
+ $string_i = 0;
49
+
50
+ $wild_len = strlen($wild);
51
+ $string_len = strlen($string);
52
+
53
+ while ($string_i < $string_len && $wild[$wild_i] != '*') {
54
+ if (($wild[$wild_i] != $string[$string_i]) && ($wild[$wild_i] != '?')) {
55
+ return 0;
56
+ }
57
+ $wild_i++;
58
+ $string_i++;
59
+ }
60
+
61
+ $mp = 0;
62
+ $cp = 0;
63
+
64
+ while ($string_i < $string_len) {
65
+ if ($wild[$wild_i] == '*') {
66
+ if (++$wild_i == $wild_len) {
67
+ return 1;
68
+ }
69
+ $mp = $wild_i;
70
+ $cp = $string_i + 1;
71
+ }
72
+ else
73
+ if (($wild[$wild_i] == $string[$string_i]) || ($wild[$wild_i] == '?')) {
74
+ $wild_i++;
75
+ $string_i++;
76
+ }
77
+ else {
78
+ $wild_i = $mp;
79
+ $string_i = $cp++;
80
+ }
81
+ }
82
+
83
+ while ($wild[$wild_i] == '*') {
84
+ $wild_i++;
85
+ }
86
+
87
+ return $wild_i == $wild_len ? 1 : 0;
88
+ }
89
+ public function checkDirectorys()
90
+ {
91
+ static $_hasChecked=false;
92
+ if ( !$_hasChecked )
93
+ {
94
+ $_hasChecked=true;
95
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_pdf');
96
+ $paths = array();
97
+ if ( defined('K_PATH_CACHE') )
98
+ $paths[]=K_PATH_CACHE;
99
+ foreach ( $paths as $path )
100
+ {
101
+ $io = new Varien_Io_File();
102
+ if ( !$io->isWriteable($path) || (!is_dir($path) && !$io->mkdir($path, 0777, true)) ) {
103
+ $msg = Mage::helper('catalog')->__("Cannot create writeable directory '%s'.", $path);
104
+ Mage::log($msg );
105
+ Mage::getSingleton('adminhtml/session')->addError($msg );
106
+ }
107
+ }
108
+ }
109
+ }
110
+ public function getPreviewProductImageUrl($productId)
111
+ {
112
+ $update_time = time();
113
+ return Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_preview/productpreview',array('tid'=>$productId,'upd'=>$update_time));
114
+ }
115
+ public function getPreviewTemplateImageUrl($templateId,$update_time,$spread=1)
116
+ {
117
+ if ( $update_time != '[date]' )
118
+ $update_time = strtotime ($update_time);
119
+ return Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_preview/templatepreview',array('tid'=>$templateId,'upd'=>$update_time,'spread'=>$spread));
120
+ }
121
+ public function getPreviewJobImageUrl($jobId)
122
+ {
123
+ $update_time = time();
124
+ return Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_preview/templatepreview',array('jid'=>$jobId,'upd'=>$update_time));
125
+ }
126
+ public function getPreviewImage($templateId,$update_time,$asThumb=true,$spread=0)
127
+ {
128
+ $model = null;
129
+ if ( !is_object($templateId) )
130
+ {
131
+ $model = Mage::getModel('auit_publicationbasic/template')->load($templateId);
132
+ $templateId = $model->getIdentifier();
133
+ $update_time = $model->getUpdateTime();
134
+ $update_time = strtotime ($update_time);
135
+ }
136
+ else if ( is_object($templateId) )
137
+ {
138
+ $model = $templateId;
139
+ $templateId = $model->getIdentifier();
140
+ $update_time = $model->getUpdateTime();
141
+ $update_time = strtotime ($update_time);
142
+ }
143
+ $fileName = 'preview_template_'.$templateId.'_'.($asThumb?'t':'').'s'.$spread.'.jpg';
144
+ //$fileName = 'preview_template_'.$templateId.'_'.($asThumb?'t':'').'.png';
145
+ $directory = Mage::getBaseDir('media') . DS.'catalog'.DS.'product'.DS.'cache'.DS.'_snm_publication_previews'.DS;
146
+ $path = $directory.$fileName;
147
+ if ( extension_loaded('imagick')) {
148
+
149
+
150
+ if ( !file_exists($path) || filemtime($path) < $update_time)
151
+ {
152
+ $io = new Varien_Io_File();
153
+ if ( !$io->isWriteable(dirname($path)) && !$io->mkdir(dirname($path), 0777, true)) {
154
+ $msg = Mage::helper('catalog')->__("Cannot create writeable directory '%s'.", $path);
155
+ Mage::log($msg );
156
+ Mage::getSingleton('adminhtml/session')->addError($msg );
157
+ }else {
158
+ if ( !$model )
159
+ $model = Mage::getModel('auit_publicationbasic/template')->load($templateId);
160
+ if ( $model->getId() ) {
161
+ $this->createPreviewImage($model,$path,$asThumb,$spread);
162
+ }
163
+ }
164
+ }
165
+ }
166
+ return $path;
167
+ }
168
+ public function createPreviewImage($template,$path,$asThumb,$spread=0)
169
+ {
170
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_pdf');
171
+ $data = Mage::helper('core')->jsonDecode($template->getData('data'));
172
+ try {
173
+ $pdf = $pdfPublication->getPdfFromData('preview',$data,0,$spread);
174
+ $im = new Imagick();
175
+ $im->setResolution(300,300);
176
+ //$im->setBackgroundColor(new ImagickPixel('transparent'));
177
+
178
+ $im->setBackgroundColor(new ImagickPixel('white'));
179
+ $im->readimageblob($pdf->render());
180
+ $im->setBackgroundColor(new ImagickPixel('white'));
181
+ // $im->setImageColorspace(255);
182
+ // $im->setCompression(Imagick::COMPRESSION_JPEG);
183
+ // $im->setCompressionQuality(80);
184
+ $im = $im->flattenImages();
185
+ $im->setImageFormat('jpg');
186
+
187
+
188
+
189
+ // if ( $spread > 0 && $spread < $im->getNumberImages() )
190
+ // $im->setiteratorindex($spread);
191
+ //else
192
+ $im->setiteratorindex(0);
193
+
194
+ if ( $asThumb )
195
+ $im->scaleImage(400,400,true);
196
+
197
+ //$im->resizeImage(400, 400, imagick::FILTER_LANCZOS, 1,true);
198
+ $im->writeimage($path);
199
+
200
+ $im->clear();
201
+ $im->destroy();
202
+
203
+
204
+ } catch (Exception $e) {
205
+ Mage::logException($e);
206
+ //Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
207
+ }
208
+ //$sender->revertDesign();
209
+ // Mage::getDesign()->setArea($lastArea);
210
+ }
211
+ }
app/code/local/AuIt/PublicationBasic/Helper/Style.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Helper_Style extends Mage_Core_Helper_Abstract
3
+ {
4
+ public function getStyleItem($items)
5
+ {
6
+ $blockInfo=array('x'=>10,'y'=>10,'w'=>60,'h'=>40,'box_class'=>'');
7
+ $items = $this->setArrayDefault($items,$blockInfo);
8
+ return Mage::getModel('auit_publicationbasic/style',$items);
9
+ }
10
+ public function setArrayDefault($x,$defaults)
11
+ {
12
+ foreach ( $defaults as $key => $v)
13
+ {
14
+ if ( !isset($x[$key])|| trim($x[$key]) === '' )
15
+ {
16
+ $x[$key]=$v;
17
+ }
18
+ }
19
+ if ( isset($x['box_class']) ){
20
+ $x['class']=$x['box_class'];
21
+ unset($x['box_class']);
22
+ }
23
+ return $x;
24
+ }
25
+ public function getClassNames($styleId)
26
+ {
27
+ $style = Mage::getModel('auit_publicationbasic/styles')->load($styleId);
28
+ return $style->getClassNames();
29
+ }
30
+ public function getCss($styleId,$field=null)
31
+ {
32
+ $style = Mage::getModel('auit_publicationbasic/styles')->load($styleId);
33
+ return $style->getCss();
34
+ }
35
+ public function getCssStyles()
36
+ {
37
+ static $_options;
38
+ if (!$_options) {
39
+ $collection = Mage::getResourceModel('auit_publicationbasic/styles_collection')->
40
+ addFieldToFilter('status',1);
41
+ foreach ( $collection as $opt )
42
+ {
43
+ $_options[$opt->getIdentifier()] = $opt->getName();
44
+ }
45
+ }
46
+ return $_options;
47
+ }
48
+ public function getCssFromObj($objectData)
49
+ {
50
+ static $_options;
51
+ if (!$_options) {
52
+ $_options=array();
53
+ if ( isset($objectData['preview_style']) && $objectData['preview_style'] )
54
+ {
55
+ $_options[$objectData['preview_style']]=$this->getCss($objectData['preview_style'],'identifier');
56
+ }
57
+ }
58
+ return $_options;
59
+ }
60
+ public function getCssClasses($objectData)
61
+ {
62
+ //(auto) 6pt 72pt
63
+ static $_options;
64
+ if (!$_options) {
65
+ $_options=array();
66
+ $_options[]=array('value'=>'','label'=>'');
67
+ if ( isset($objectData['preview_style']) && $objectData['preview_style'] )
68
+ {
69
+
70
+ foreach ( $this->getClassNames($objectData['preview_style']) as $v =>$l)
71
+ $_options[]=array('value'=>$v,'label'=>$l);
72
+ }
73
+ }
74
+ return $_options;
75
+ }
76
+ public function getComputedStyle($styleId,$class,$att,$default)
77
+ {
78
+ $style = Mage::getModel('auit_publicationbasic/styles')->load($styleId);
79
+ return $style->getComputedStyle($class,$att,$default);
80
+ }
81
+ }
app/code/local/AuIt/PublicationBasic/Helper/Svg.php ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Helper_Svg extends Mage_Core_Helper_Abstract
3
+ {
4
+
5
+ public function getClipGroups()
6
+ {
7
+ $result=array();
8
+ $file = Mage::getModuleDir('data', 'AuIt_PublicationBasic') . DS . 'shapelib'.DS.'categories.json';
9
+ if ( file_exists($file) ) {
10
+ $categories=json_decode ( file_get_contents($file),true );
11
+ foreach ( $categories['categories'] as $base => $name )
12
+ {
13
+ $file = Mage::getModuleDir('data', 'AuIt_PublicationBasic') . DS . 'shapelib'.DS.$base.'.json';
14
+ if ( file_exists($file) ) {
15
+ $group=json_decode ( file_get_contents($file),true );
16
+ $childs = array();
17
+ foreach ( $group['data'] as $svg => $path)
18
+ {
19
+ $childs[]=array('id'=>"{$base}:{$svg}");
20
+ }
21
+ if ( count($childs) )
22
+ $result[]=array('id'=>$base,'name'=>$name,'childs'=>$childs);
23
+ }
24
+
25
+ }
26
+ }
27
+ return $result;
28
+ }
29
+ protected function _getPath($group,$fileName)
30
+ {
31
+ $file = Mage::getModuleDir('data', 'AuIt_PublicationBasic') . DS . 'shapelib'.DS.$group.'.json';
32
+ if ( file_exists($file) )
33
+ {
34
+ $json = json_decode ( file_get_contents($file),true );
35
+ if ( isset($json['data']) && isset($json['data'][$fileName]) )
36
+ {
37
+ return array(
38
+ 'size' => isset($json['data']['size'])?$json['data']['size']:300,
39
+ 'path' => $json['data'][$fileName]
40
+ );
41
+ }
42
+ }
43
+ return array(
44
+ 'size' => 300,
45
+ 'default'=>1,
46
+ 'path' => 'm1,75.5l298,0l-149,74.5l149,74.5l-298,0l149,-74.5l-149,-74.5z'
47
+ );
48
+ }
49
+ public function getPath($fileName)
50
+ {
51
+ $fileName =explode(':',$fileName);
52
+ $group = $fileName[0];
53
+ $fileName = $fileName[1];
54
+ $pathInfo = $this->_getPath($group,$fileName);
55
+
56
+ return $pathInfo;
57
+ }
58
+ public function getDynSvg($mode,$group,$fileName)
59
+ {
60
+ if ( !$group )
61
+ {
62
+ $fileName =explode(':',$fileName);
63
+ $group = $fileName[0];
64
+ $fileName = $fileName[1];
65
+
66
+ }
67
+
68
+ $pathInfo = $this->_getPath($group,$fileName);
69
+ $size = $pathInfo['size'];
70
+ $off = $size*0.05;
71
+ $vb = join(' ',array(-$off, -$off, $size + $off*2, $size + $off*2));
72
+ //$vb = join(' ',array(0, 0, $size + $off*2, $size + $off*2));
73
+ $svg = '<?xml version="1.0" encoding="UTF-8" standalone="no"?>';
74
+ switch ( $mode )
75
+ {
76
+ case 'mask':
77
+ $svg .= '<svg xmlns="http://www.w3.org/2000/svg" version="1.1">';
78
+ $svg .= '<svg viewBox="'.$vb.'">';
79
+
80
+ // $svg .= '<path id="svgMask" fill="white" d="'.$pathInfo['path'].'" />';
81
+
82
+ $svg .= '<defs>';
83
+ //maskUnits="objectBoundingBox" maskContentUnits="objectBoundingBox"
84
+ //$svg .= '<mask viewBox="'.$vb.'" id="svgMask" maskUnitsX="objectBoundingBox" x="0" y="0" width="'.$size.'" height="'.$size.'" maskContentUnitsx="objectBoundingBox" >';
85
+ $svg .= '<mask id="svgMask" >';
86
+ $svg .= '<text x="10" y="20" fill="white" color="black">For clipping preview use PDF, Chrome or Safari</text>';
87
+ // $svg .= '<circle cx="0.5" cy="0.5" r="0.5" fill="white"/>';
88
+ // $svg .= '<path fill="white" d="'.$pathInfo['path'].'" />';
89
+ $svg .= '</mask>';
90
+ $svg .= '</defs>';
91
+
92
+ $svg .= '<g ><path id="svgMask" fill="white" d="'.$pathInfo['path'].'" /></g>';
93
+ $svg .= '</svg>';
94
+ $svg .= '</svg>';
95
+ break;
96
+ case 'clip':
97
+ $svg .= '<clipPath id="svgClip">';
98
+ $svg .= '<path id="svgPath" d="'.$pathInfo['path'].'" />';
99
+ $svg .= '</clipPath>';
100
+ break;
101
+ case 'icon':
102
+ default:
103
+ $svg .= '<svg xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="'.$vb.'">';
104
+ $svg .= '<g><path d="'.$pathInfo['path'].'" fill="#333" /></g>';
105
+ $svg .= '</svg>';
106
+ break;
107
+ }
108
+ return $svg;
109
+ }
110
+
111
+
112
+
113
+
114
+ }
app/code/local/AuIt/PublicationBasic/Model/Adminhtml/Arraytemplate.php ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Model_Adminhtml_Arraytemplate extends Mage_Adminhtml_Model_System_Config_Backend_Serialized
10
+ {
11
+ function masort(&$data, $sortby)
12
+ {
13
+ static $sort_funcs = array();
14
+ if (empty($sort_funcs[$sortby])) {
15
+ $code = "\$c=0;";
16
+ foreach (split(',', $sortby) as $key) {
17
+ $code .= "if ( (\$c = strcasecmp(\$a['$key'],\$b['$key'])) != 0 ) return \$c;\n";
18
+ }
19
+ $code .= 'return $c;';
20
+ $sort_func = $sort_funcs[$sortby] = create_function('$a, $b', $code);
21
+ } else {
22
+ $sort_func = $sort_funcs[$sortby];
23
+ }
24
+ $sort_func = $sort_funcs[$sortby];
25
+ uasort($data, $sort_func);
26
+ }
27
+ protected function _getDefault()
28
+ {
29
+ return Mage::helper('auit_publicationbasic/config')->getDefaults($this->getPath());
30
+ }
31
+ protected function _afterLoad()
32
+ {
33
+ $v = $this->getValue();
34
+ if ( !is_array($v) && !is_string($v) )
35
+ $v='';
36
+ if ( empty($v) )
37
+ {
38
+ $v = $this->_getDefault();
39
+ }
40
+ if (!is_array($v))
41
+ {
42
+ if ( strpos($v,'base64:') === 0 )
43
+ {
44
+ $v = base64_decode(substr($v,7));
45
+ }
46
+ $v=@unserialize($v);
47
+ }
48
+ $this->setValue($v);
49
+ }
50
+ protected function checkData(&$value)
51
+ {
52
+ }
53
+ protected function _beforeSave()
54
+ {
55
+ $value = $this->getValue();
56
+ if (is_array($value)) {
57
+ unset($value['__empty']);
58
+ }
59
+ if (is_array($value)) {
60
+ $this->checkData($value);
61
+ $this->setValue('base64:'.base64_encode(serialize($value)));
62
+ }
63
+ //parent::_beforeSave();
64
+ }
65
+ }
app/code/local/AuIt/PublicationBasic/Model/Adminhtml/Idtemplate.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Model_Adminhtml_Idtemplate extends AuIt_PublicationBasic_Model_Adminhtml_Arraytemplate
10
+ {
11
+ protected function getNextId($value)
12
+ {
13
+ $id = 50;
14
+ foreach ( $value as &$item )
15
+ {
16
+ if ( isset($item['id']) && ($item['id']>0) && $item['id'] > $id )
17
+ {
18
+ $id = $item['id'];
19
+ }
20
+ }
21
+ $id++;
22
+ return $id;
23
+ }
24
+ protected function _beforeSave()
25
+ {
26
+ $value = $this->getValue();
27
+ if (is_array($value)) {
28
+ unset($value['__empty']);
29
+ foreach ( $value as &$item )
30
+ {
31
+ if ( !isset($item['id']) || !($item['id']>0) )
32
+ {
33
+ $item['id'] = $this->getNextId($value);
34
+ }
35
+ }
36
+ }
37
+ if (is_array($value)) {
38
+ $this->setValue('base64:'.base64_encode(serialize($value)));
39
+ }
40
+ //parent::_beforeSave();
41
+ }
42
+ }
app/code/local/AuIt/PublicationBasic/Model/Adminhtml/System/Config/Product/Attribute.php ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Adminhtml_System_Config_Product_Attribute
3
+ {
4
+ protected $_options;
5
+ protected function _getProductAttributes()
6
+ {
7
+ $hash=array();
8
+ //$allowedAttributes=array('date','price','boolean','text','textarea','select','multiselect','media_image');
9
+ $allowedAttributes=array('boolean','select','multiselect','text','textarea');
10
+ $collection = Mage::getResourceModel('catalog/product_attribute_collection')
11
+ ->addVisibleFilter();
12
+ $hashOpt=array();
13
+ foreach ( $collection as $attr )
14
+ {
15
+ $code = $attr->getAttributeCode();
16
+ $type = $attr->getFrontendInput();
17
+ if (!in_array($type, $allowedAttributes) /*|| $attr->getFrontendInput() == 'hidden'*/) {
18
+ continue;
19
+ }
20
+ $hash[$attr->getAttributeCode()]=$attr->getFrontendLabel();
21
+ }
22
+ // $hash['attribute_set_id']=Mage::helper('catalog')->__('Attrib. Set Name');
23
+ // $hash['type_id']=Mage::helper('catalog')->__('Product Type');
24
+ asort($hash);
25
+ return $hash;
26
+ }
27
+ public function toOptionArray()
28
+ {
29
+ if (!$this->_options) {
30
+ $this->_options = $this->_getProductAttributes();
31
+ // array_unshift($this->_options, array('value'=> '', 'label'=> Mage::helper('adminhtml')->__('-- Please Select --')));
32
+ }
33
+ return $this->_options;
34
+ }
35
+ }
app/code/local/AuIt/PublicationBasic/Model/Adminhtml/System/Config/Producttemplates.php ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Adminhtml_System_Config_Producttemplates
3
+ {
4
+ public function toOptionArray()
5
+ {
6
+ $values = array(
7
+ array('value' => '', 'label' => Mage::helper('auit_publicationbasic')->__('Please select'))
8
+ );
9
+ return array_merge( $values,Mage::helper('auit_publicationbasic')->getTemplatesForType(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT));
10
+ }
11
+ }
app/code/local/AuIt/PublicationBasic/Model/Config/Arraytemplate.php ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Model_Config_Arraytemplate extends Mage_Adminhtml_Model_System_Config_Backend_Serialized
10
+ {
11
+ function masort(&$data, $sortby)
12
+ {
13
+ static $sort_funcs = array();
14
+ if (empty($sort_funcs[$sortby])) {
15
+ $code = "\$c=0;";
16
+ foreach (split(',', $sortby) as $key) {
17
+ $code .= "if ( (\$c = strcasecmp(\$a['$key'],\$b['$key'])) != 0 ) return \$c;\n";
18
+ }
19
+ $code .= 'return $c;';
20
+ $sort_func = $sort_funcs[$sortby] = create_function('$a, $b', $code);
21
+ } else {
22
+ $sort_func = $sort_funcs[$sortby];
23
+ }
24
+ $sort_func = $sort_funcs[$sortby];
25
+ uasort($data, $sort_func);
26
+ }
27
+ protected function _getDefault()
28
+ {
29
+ return Mage::helper('auit_publicationbasic/config')->getDefaults($this->getPath());
30
+ }
31
+ protected function _afterLoad()
32
+ {
33
+ $v = $this->getValue();
34
+ if ( !is_array($v) && !is_string($v) )
35
+ $v='';
36
+ if ( empty($v) )
37
+ {
38
+ $v = $this->_getDefault();
39
+ }
40
+ if (!is_array($v))
41
+ {
42
+ if ( strpos($v,'base64:') === 0 )
43
+ {
44
+ $v = base64_decode(substr($v,7));
45
+ }
46
+ $v=@unserialize($v);
47
+ }
48
+ $this->setValue($v);
49
+ }
50
+ protected function checkData(&$value)
51
+ {
52
+ }
53
+ protected function _beforeSave()
54
+ {
55
+ $value = $this->getValue();
56
+ if (is_array($value)) {
57
+ unset($value['__empty']);
58
+ }
59
+ if (is_array($value)) {
60
+ $this->checkData($value);
61
+
62
+ $this->setValue('base64:'.base64_encode(serialize($value)));
63
+ }
64
+ //parent::_beforeSave();
65
+ }
66
+ }
app/code/local/AuIt/PublicationBasic/Model/Config/Idtemplate.php ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Model_Config_Idtemplate extends AuIt_PublicationBasic_Model_Config_Arraytemplate
10
+ {
11
+ protected function getNextId($value)
12
+ {
13
+ $id = 50;
14
+ foreach ( $value as &$item )
15
+ {
16
+ if ( isset($item['id']) && ($item['id']>0) && $item['id'] > $id )
17
+ {
18
+ $id = $item['id'];
19
+ }
20
+ }
21
+ $id++;
22
+ return $id;
23
+ }
24
+ protected function _beforeSave()
25
+ {
26
+ $value = $this->getValue();
27
+
28
+ if (is_array($value)) {
29
+ unset($value['__empty']);
30
+ foreach ( $value as &$item )
31
+ {
32
+ if ( !isset($item['id']) || !($item['id']>0) )
33
+ {
34
+ $item['id'] = $this->getNextId($value);
35
+ }
36
+ }
37
+ }
38
+ if (is_array($value)) {
39
+ $this->setValue('base64:'.base64_encode(serialize($value)));
40
+ }
41
+ //parent::_beforeSave();
42
+ }
43
+ }
app/code/local/AuIt/PublicationBasic/Model/Config/Update.php ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Model_Config_Update extends AuIt_PublicationBasic_Model_Config_Arraytemplate
10
+ {
11
+ public function afterChanged($observer)
12
+ {
13
+ //Mage::log("afterChanged");
14
+ }
15
+ }
app/code/local/AuIt/PublicationBasic/Model/Cron.php ADDED
@@ -0,0 +1,107 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Model_Cron extends Mage_Core_Model_Abstract
10
+ {
11
+ const XML_PATH_EMAIL_TEMPLATE = 'auit_publicationbasic/crontab/error_email_template';
12
+ const XML_PATH_EMAIL_IDENTITY = 'auit_publicationbasic/crontab/error_email_identity';
13
+ const XML_PATH_EMAIL_RECIPIENT = 'auit_publicationbasic/crontab/error_email';
14
+ const XML_PATH_ENABLED = 'auit_publicationbasic/crontab/enabled';
15
+
16
+
17
+ protected $_minutes = 5;
18
+
19
+ /**
20
+ *
21
+ * @param AuIt_Cronjob_Model_Convert_Profile $profile
22
+ * @return AuIt_Cronjob_Model_Cron
23
+ */
24
+ protected function _sendEmail($profile)
25
+ {
26
+ if (!Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT)) {
27
+ return $this;
28
+ }
29
+ $translate = Mage::getSingleton('core/translate');
30
+ /* @var $translate Mage_Core_Model_Translate */
31
+ $translate->setTranslateInline(false);
32
+
33
+ $emailTemplate = Mage::getModel('core/email_template');
34
+
35
+ /* @var $emailTemplate Mage_Core_Model_Email_Template */
36
+ $emailTemplate->setDesignConfig(array('area' => 'backend'))
37
+ ->sendTransactional(
38
+ Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE),
39
+ Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY),
40
+ 'root',//Mage::getStoreConfig(self::XML_PATH_EMAIL_RECIPIENT),
41
+ null,
42
+ array('message' => $profile->getMessages())
43
+ );
44
+
45
+ $translate->setTranslateInline(true);
46
+ return $this;
47
+ }
48
+ public function defaultHandler($observer)
49
+ {
50
+ $collection = Mage::getResourceModel('auit_publicationbasic/jobqueue_collection')->
51
+ addFieldToFilter('status',array('in' => array(AuIt_PublicationBasic_Model_Jobqueue::STATE_START_NOW)));
52
+ $collection->walk('afterLoad');
53
+ foreach ($collection as $item )
54
+ {
55
+ $this->runJob($item);
56
+ }
57
+ }
58
+ protected function _checkTemplateThumnails()
59
+ {
60
+
61
+ }
62
+ /**
63
+ *
64
+ * @param unknown_type $option
65
+ * @return AuIt_Cronjob_Model_Convert_Profile
66
+ */
67
+ public function runJob($jobItem)
68
+ {
69
+ Mage::helper('auit_publicationbasic')->log(Mage::helper('auit_publicationbasic')->__('Start Job : %s',$jobItem->getId()));
70
+ try{
71
+ $jobItem->runJob();
72
+ } catch (Exception $e)
73
+ {
74
+ Mage::helper('auit_publicationbasic')->log(Mage::helper('auit_publicationbasic')->__('Job`(%s) Exception : %s',$jobItem->getId(),$e->getMessage()));
75
+ }
76
+ Mage::helper('auit_publicationbasic')->log(Mage::helper('auit_publicationbasic')->__('End Job : %s',$jobItem->getId()));
77
+
78
+ }
79
+ public function runScheduled($observer,$ids='')
80
+ {
81
+ if(!Mage::getStoreConfigFlag(self::XML_PATH_ENABLED))
82
+ return $this;
83
+
84
+ $collection = Mage::getResourceModel('auit_publicationbasic/jobqueue_collection')->
85
+ addFieldToFilter('status',array('in' => array(AuIt_PublicationBasic_Model_Jobqueue::STATE_START_NOW)));
86
+ $collection->walk('afterLoad');
87
+ foreach ($collection as $item )
88
+ {
89
+ $this->runJob($item);
90
+ }
91
+
92
+
93
+ $collection = Mage::getResourceModel('auit_publicationbasic/jobqueue_collection')->
94
+ addFieldToFilter('status',
95
+ array('in' => array(AuIt_PublicationBasic_Model_Jobqueue::STATE_WAIT)));
96
+ $collection->addFieldToFilter('prio',array('neq'=>'0'))
97
+ ->setOrder('prio', Varien_Data_Collection::SORT_ORDER_DESC)
98
+ ->setCurPage(1)
99
+ ->setPageSize(1);
100
+ $collection->walk('afterLoad');
101
+ foreach ($collection as $item )
102
+ {
103
+ $this->runJob($item);
104
+ }
105
+ return $this;
106
+ }
107
+ }
app/code/local/AuIt/PublicationBasic/Model/Email/Template/Filter.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Email_Template_Filter extends Mage_Core_Model_Email_Template_Filter
3
+ {
4
+
5
+ public function auitVariable($name,$default='')
6
+ {
7
+ return $this->_getVariable($name, $default);
8
+ }
9
+ public function getVariables()
10
+ {
11
+ return $this->_templateVars;
12
+ }
13
+
14
+ }
app/code/local/AuIt/PublicationBasic/Model/Email/Template/Helper.php ADDED
@@ -0,0 +1,173 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * AuIt
4
+ *
5
+ * @category AuIt
6
+ * @author M Augsten
7
+ * @copyright Copyright (c) 2010 Ingenieurbüro (IT) Dipl.-Ing. Augsten (http://www.au-it.de)
8
+ */
9
+ class AuIt_PublicationBasic_Model_Email_Template_Helper extends Varien_Object
10
+ {
11
+ function getValue($a)
12
+ {
13
+ if ( !is_null($a) && $this->getProcessor())
14
+ {
15
+ $r = $this->getProcessor()->filter('{{var '.$a.'}}');
16
+ if ( $r === 'Object' )
17
+ {
18
+ $vars = $this->getProcessor()->getVariables();
19
+ if ( isset($vars[$a]) ) {
20
+ $r=$vars[$a];
21
+ }
22
+ }
23
+ if ( is_object($r) || $r == '')
24
+ {
25
+ if ( $r instanceof Varien_Object )
26
+ {
27
+ $r = implode(',', $r->debug());
28
+ }
29
+ }
30
+ if ( !$r ) $r=$a;
31
+ return $r;
32
+ }
33
+ return $a;
34
+ }
35
+ function eq($a=null,$b=null)
36
+ {
37
+
38
+ $a = $this->getValue($a);
39
+ $b = $this->getValue($b);
40
+ return ( !is_null($a) && !is_null($b)) ? ($a == $b): false;
41
+ }
42
+ function neq($a=null,$b=null)
43
+ {
44
+ $a = $this->getValue($a);
45
+ $b = $this->getValue($b);
46
+ return ( !is_null($a) && !is_null($b)) ? ($a != $b): false;
47
+ }
48
+ function lt($a=null,$b=null)
49
+ {
50
+ $a = $this->getValue($a);
51
+ $b = $this->getValue($b);
52
+ return ( !is_null($a) && !is_null($b)) ? ($a < $b): false;
53
+ }
54
+ function lteq($a=null,$b=null)
55
+ {
56
+ $a = $this->getValue($a);
57
+ $b = $this->getValue($b);
58
+ return ( !is_null($a) && !is_null($b)) ? ($a <= $b): false;
59
+ }
60
+ function gt($a=null,$b=null)
61
+ {
62
+ $a = $this->getValue($a);
63
+ $b = $this->getValue($b);
64
+ return ( !is_null($a) && !is_null($b)) ? ($a > $b): false;
65
+ }
66
+ function gteq($a=null,$b=null)
67
+ {
68
+ $a = $this->getValue($a);
69
+ $b = $this->getValue($b);
70
+ return ( !is_null($a) && !is_null($b)) ? ($a >= $b): false;
71
+ }
72
+ function nl2br($a=null)
73
+ {
74
+ return nl2br(trim($this->getValue($a)));
75
+ }
76
+
77
+ function country($a=null)
78
+ {
79
+ $a = $this->getValue($a);
80
+ if ( $a )
81
+ return Mage::app()->getLocale()->getCountryTranslation($a);
82
+ return '';
83
+ }
84
+ function date($a=null,$b=0,$c='medium',$showtime=0)
85
+ {
86
+ if ( !is_numeric($b) )
87
+ {
88
+ $b = (int)$this->getProcessor()->auitVariable($b);
89
+ }
90
+ $a = $this->getProcessor()->auitVariable($a);
91
+ $result = 'not a date';
92
+ if ($a instanceof Zend_Date) {
93
+ $result = Mage::helper('core')->formatDate($a.("$b days"), $c, $showtime?true:false);
94
+ }
95
+ return $result;
96
+ }
97
+ function hasGiftMessage()
98
+ {
99
+ $order = $this->getProcessor()->auitVariable('order');
100
+ if ( $order && is_object($order) && $order->getGiftMessageId() )
101
+ return true;
102
+ return false;
103
+ }
104
+ function hasComments()
105
+ {
106
+ $entity = $this->getProcessor()->auitVariable('entity');
107
+ $_collection = null;
108
+ if ( $entity && $entity instanceof Mage_Sales_Model_Order )
109
+ $_collection = $entity->getStatusHistoryCollection();
110
+ else if ( $entity )
111
+ $_collection = $entity->getCommentsCollection();
112
+ if ( $_collection && count($_collection) )
113
+ return true;
114
+ return false;
115
+ }
116
+ function hasVisibleComments()
117
+ {
118
+ $entity = $this->getProcessor()->auitVariable('entity');
119
+ $_collection = null;
120
+ if ( $entity && $entity instanceof Mage_Sales_Model_Order )
121
+ $_collection = $entity->getStatusHistoryCollection();
122
+ else if ( $entity )
123
+ $_collection = $entity->getCommentsCollection();
124
+ if ( $_collection && count($_collection) )
125
+ {
126
+ foreach ($_collection as $_comment)
127
+ if ( $_comment->getIsVisibleOnFront() )
128
+ return true;
129
+ }
130
+ return false;
131
+ }
132
+ function isCountryInEU($countryCode)
133
+ {
134
+ $countryCode = $this->getValue($countryCode);
135
+ $helper = Mage::helper('core');
136
+ if ( method_exists($helper,'isCountryInEU') )
137
+ {
138
+ $order = $this->getProcessor()->auitVariable('order');
139
+ $storeId = null;
140
+ if ( $order ) {
141
+ $storeId = $order->getStore()->getId();
142
+ }
143
+ return $helper->isCountryInEU($countryCode,$storeId);
144
+ }
145
+ return false;
146
+ }
147
+ function getCustomerGroupName($customer_group_id)
148
+ {
149
+ $customer_group_id = $this->getValue($customer_group_id);
150
+ return Mage::getModel('customer/group')
151
+ ->load($customer_group_id)
152
+ ->getCustomerGroupCode();
153
+ }
154
+ function roundPrice($price)
155
+ {
156
+ $price = $this->getValue($price);
157
+ return Mage::app()->getStore()->roundPrice($price);
158
+ }
159
+ function round($price,$anzahl=2)
160
+ {
161
+ $price = $this->getValue($price);
162
+ $anzahl= $this->getValue($anzahl);
163
+ return round($price, $anzahl);
164
+ }
165
+ function formatPrice($price,$addBrackets=0)
166
+ {
167
+ $price = $this->getValue($price);
168
+ $addBrackets = $this->getValue($addBrackets);
169
+ $order = $this->getProcessor()->auitVariable('order');
170
+ return $order->formatPrice($price, $addBrackets);
171
+ }
172
+
173
+ }
app/code/local/AuIt/PublicationBasic/Model/Filemanager/Storage.php ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Filemanager_Storage extends Varien_Object
3
+ {
4
+ const DIRECTORY_NAME_REGEXP = '/^[a-z0-9\-\_]+$/si';
5
+ public function getDirsCollection($path)
6
+ {
7
+
8
+ $collection = $this->getCollection($path)
9
+ ->setCollectDirs(true)
10
+ ->setDirsFilter(self::DIRECTORY_NAME_REGEXP)
11
+ ->setCollectFiles(false)
12
+ ->setCollectRecursively(false);
13
+ return $collection;
14
+ }
15
+ public function getFileDirsCollection($path, $type = null)
16
+ {
17
+ $collection = $this->getCollection($path)
18
+ ->setCollectDirs(true)
19
+ ->setDirsFilter(self::DIRECTORY_NAME_REGEXP)
20
+ ->setCollectFiles(true)
21
+ ->setCollectRecursively(false);
22
+ if ($allowed = $this->getAllowedExtensions($type)) {
23
+ $collection->setFilesFilter('/\.(' . implode('|', $allowed). ')$/i');
24
+ }
25
+ return $collection;
26
+ }
27
+ public function getFilesCollection($path, $type = null)
28
+ {
29
+ $collection = $this->getCollection($path)
30
+ ->setCollectDirs(false)
31
+ ->setCollectFiles(true)
32
+ ->setCollectRecursively(false)
33
+ ->setOrder('mtime', Varien_Data_Collection::SORT_ORDER_ASC);
34
+
35
+ // Add files extension filter
36
+ if ($allowed = $this->getAllowedExtensions($type)) {
37
+ $collection->setFilesFilter('/\.(' . implode('|', $allowed). ')$/i');
38
+ }
39
+
40
+ return $collection;
41
+ }
42
+ public function getCollection($path = null)
43
+ {
44
+ $collection = Mage::getModel('auit_publicationbasic/filemanager_storage_collection');
45
+ if ($path !== null) {
46
+ $collection->addTargetDir($path);
47
+ }
48
+ return $collection;
49
+ }
50
+ public function createDirectory($name, $path)
51
+ {
52
+ if (!preg_match(self::DIRECTORY_NAME_REGEXP, $name)) {
53
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Invalid folder name. Please, use alphanumeric characters'));
54
+ }
55
+ if (!is_dir($path) || !is_writable($path)) {
56
+ $path = Mage::helper('auit_publicationbasic/filemanager')->getStorageRoot();
57
+ }
58
+
59
+ $newPath = $path . DS . $name;
60
+
61
+ if (file_exists($newPath)) {
62
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Such directory already exists. Try another folder name'));
63
+ }
64
+
65
+ $io = new Varien_Io_File();
66
+ if ($io->mkdir($newPath)) {
67
+ $result = array(
68
+ 'name' => $name,
69
+ 'path' => $newPath,
70
+ 'id' => Mage::helper('auit_publicationbasic/filemanager')->convertPathToId($newPath)
71
+ );
72
+ return $result;
73
+ }
74
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot create new directory'));
75
+ }
76
+ public function renameDirectory($newName,$path)
77
+ {
78
+ if (!preg_match(self::DIRECTORY_NAME_REGEXP, $newName)) {
79
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Invalid folder name. Please, use alphanumeric characters'));
80
+ }
81
+ $newPath = dirname($path).DS.$newName;
82
+ $io = new Varien_Io_File();
83
+ if ( !@rename($path, $newPath) )
84
+ {
85
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot rename directory %s', $path));
86
+ }
87
+ return $newPath;
88
+ }
89
+ public function deleteDirectory($path)
90
+ {
91
+ $io = new Varien_Io_File();
92
+ if (!$io->rmdir($path, true)) {
93
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot delete directory %s', $path));
94
+ }
95
+ }
96
+ public function renameFile($newName,$path)
97
+ {
98
+ $newPath = dirname($path).DS.$newName;
99
+ $io = new Varien_Io_File();
100
+ $io->open(array('path'=>dirname($path)));
101
+ // $io->cd(dirname($path));
102
+ if ( !$io->mv($path, $newPath) )
103
+ {
104
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot rename file %s', basename($path)));
105
+ }
106
+ return $newPath;
107
+ }
108
+ public function deleteFile($filename)
109
+ {
110
+ $io = new Varien_Io_File();
111
+ $io->cd(dirname($filename));
112
+ if ( !$io->rm($filename) )
113
+ {
114
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot delete file %s', basename($filename)));
115
+ }
116
+ return true;
117
+ }
118
+ public function uploadFile($targetPath, $type = null)
119
+ {
120
+ $uploader = new Varien_File_Uploader('aimage');
121
+ if ($allowed = $this->getAllowedExtensions($type)) {
122
+ $uploader->setAllowedExtensions($allowed);
123
+ }
124
+ $uploader->setAllowRenameFiles(true);
125
+ $uploader->setFilesDispersion(false);
126
+
127
+ $result = $uploader->save($targetPath);
128
+ if (!$result) {
129
+ Mage::throwException( Mage::helper('auit_publicationbasic')->__('Cannot upload file') );
130
+ }
131
+ if ($filename = $uploader->getUploadedFileName()) {
132
+ // Mage::helper('auit_editor/dirdirective')->execute($targetPath.DS.$filename);
133
+ }
134
+ return $result;
135
+ }
136
+ public function getSession()
137
+ {
138
+ return Mage::getSingleton('adminhtml/session');
139
+ }
140
+ public function getConfigData($key, $default=false)
141
+ {
142
+ if (!$this->hasData($key)) {
143
+ $value = Mage::getStoreConfig('auit_publicationbasic/wysiwyg/'.$key);
144
+ if (is_null($value) || false===$value) {
145
+ $value = $default;
146
+ }
147
+ $this->setData($key, $value);
148
+ }
149
+ return $this->_getData($key);
150
+ }
151
+ public function getAllowedExtensions($type = null)
152
+ {
153
+ $configKey = is_null($type) ? 'browser_allowed_extensions' : 'browser_'.$type.'_allowed_extensions';
154
+ if (preg_match_all('/[a-z0-9]+/si', strtolower($this->getConfigData($configKey)), $matches)) {
155
+ return $matches[0];
156
+ }
157
+ return array();
158
+ }
159
+ }
app/code/local/AuIt/PublicationBasic/Model/Filemanager/Storage/Collection.php ADDED
@@ -0,0 +1,660 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Filemanager_Storage_Collection extends Varien_Data_Collection
3
+ {
4
+ protected function _generateRow($filename)
5
+ {
6
+ $filename = str_replace('//','/',$filename);
7
+
8
+ return array(
9
+ 'filename' => $filename,
10
+ 'basename' => basename($filename),
11
+ 'mtime' => filemtime($filename)
12
+ );
13
+ }
14
+ /**
15
+ * Target directory
16
+ *
17
+ * @var string
18
+ */
19
+ protected $_targetDirs = array();
20
+
21
+ /**
22
+ * Whether to collect files
23
+ *
24
+ * @var bool
25
+ */
26
+ protected $_collectFiles = true;
27
+
28
+ /**
29
+ * Whether to collect directories before files
30
+ *
31
+ * @var bool
32
+ */
33
+ protected $_dirsFirst = true;
34
+
35
+ /**
36
+ * Whether to collect recursively
37
+ *
38
+ * @var bool
39
+ */
40
+ protected $_collectRecursively = true;
41
+
42
+ /**
43
+ * Whether to collect dirs
44
+ *
45
+ * @var bool
46
+ */
47
+ protected $_collectDirs = false;
48
+
49
+ /**
50
+ * Directory names regex pre-filter
51
+ *
52
+ * @var string
53
+ */
54
+ protected $_allowedDirsMask = '/^[a-z0-9\.\-\_]+$/i';
55
+
56
+ /**
57
+ * Filenames regex pre-filter
58
+ *
59
+ * @var string
60
+ */
61
+ protected $_allowedFilesMask = '/^[a-z0-9\.\-\_]+\.[a-z0-9]+$/i';
62
+
63
+ /**
64
+ * Disallowed filenames regex pre-filter match for better versatility
65
+ *
66
+ * @var string
67
+ */
68
+ protected $_disallowedFilesMask = '';
69
+
70
+ /**
71
+ * Filter rendering helper variables
72
+ *
73
+ * @see Varien_Data_Collection::$_filter
74
+ * @see Varien_Data_Collection::$_isFiltersRendered
75
+ */
76
+ private $_filterIncrement = 0;
77
+ private $_filterBrackets = array();
78
+ private $_filterEvalRendered = '';
79
+
80
+ /**
81
+ * Collecting items helper variables
82
+ *
83
+ * @var array
84
+ */
85
+ protected $_collectedDirs = array();
86
+ protected $_collectedFiles = array();
87
+
88
+ /**
89
+ * Allowed dirs mask setter
90
+ * Set empty to not filter
91
+ *
92
+ * @param string $regex
93
+ * @return Varien_Data_Collection_Files
94
+ */
95
+ public function setDirsFilter($regex)
96
+ {
97
+ $this->_allowedDirsMask = (string)$regex;
98
+ return $this;
99
+ }
100
+
101
+ /**
102
+ * Allowed files mask setter
103
+ * Set empty to not filter
104
+ *
105
+ * @param string $regex
106
+ * @return Varien_Data_Collection_Files
107
+ */
108
+ public function setFilesFilter($regex)
109
+ {
110
+ $this->_allowedFilesMask = (string)$regex;
111
+ return $this;
112
+ }
113
+
114
+ /**
115
+ * Disallowed files mask setter
116
+ * Set empty value to not use this filter
117
+ *
118
+ * @param string $regex
119
+ * @return Varien_Data_Collection_Files
120
+ */
121
+ public function setDisallowedFilesFilter($regex)
122
+ {
123
+ $this->_disallowedFilesMask = (string)$regex;
124
+ return $this;
125
+ }
126
+
127
+ /**
128
+ * Set whether to collect dirs
129
+ *
130
+ * @param bool $value
131
+ * @return Varien_Data_Collection_Filesystem
132
+ */
133
+ public function setCollectDirs($value)
134
+ {
135
+ $this->_collectDirs = (bool)$value;
136
+ return $this;
137
+ }
138
+
139
+ /**
140
+ * Set whether to collect files
141
+ *
142
+ * @param bool $value
143
+ * @return Varien_Data_Collection_Filesystem
144
+ */
145
+ public function setCollectFiles($value)
146
+ {
147
+ $this->_collectFiles = (bool)$value;
148
+ return $this;
149
+ }
150
+
151
+ /**
152
+ * Set whether to collect recursively
153
+ *
154
+ * @param bool $value
155
+ * @return Varien_Data_Collection_Filesystem
156
+ */
157
+ public function setCollectRecursively($value)
158
+ {
159
+ $this->_collectRecursively = (bool)$value;
160
+ return $this;
161
+ }
162
+
163
+ /**
164
+ * Target directory setter. Adds directory to be scanned
165
+ *
166
+ * @param string $value
167
+ * @return Varien_Data_Collection_Filesystem
168
+ */
169
+ public function addTargetDir($value)
170
+ {
171
+ $value = (string)$value;
172
+ if (!is_dir($value)) {
173
+ throw new Exception('Unable to set target directory.');
174
+ }
175
+ $this->_targetDirs[$value] = $value;
176
+ return $this;
177
+ }
178
+
179
+ /**
180
+ * Set whether to collect directories before files
181
+ * Works *before* sorting.
182
+ *
183
+ * @param bool $value
184
+ * @return Varien_Data_Collection_Filesystem
185
+ */
186
+ public function setDirsFirst($value)
187
+ {
188
+ $this->_dirsFirst = (bool)$value;
189
+ return $this;
190
+ }
191
+
192
+ /**
193
+ * Get files from specified directory recursively (if needed)
194
+ *
195
+ * @param string|array $dir
196
+ */
197
+ protected function _collectRecursive($dir)
198
+ {
199
+ $collectedResult = array();
200
+ if (!is_array($dir)) {
201
+ $dir = array($dir);
202
+ }
203
+ foreach ($dir as $folder) {
204
+ if ($nodes = glob($folder . DIRECTORY_SEPARATOR . '*')) {
205
+ foreach ($nodes as $node) {
206
+ $collectedResult[] = $node;
207
+ }
208
+ }
209
+ }
210
+ if (empty($collectedResult)) {
211
+ return;
212
+ }
213
+ foreach ($collectedResult as $item) {
214
+ if (is_dir($item) && (!$this->_allowedDirsMask || preg_match($this->_allowedDirsMask, basename($item)))) {
215
+ if ($this->_collectDirs) {
216
+ if ($this->_dirsFirst) {
217
+ $this->_collectedDirs[] = $item;
218
+ }
219
+ else {
220
+ $this->_collectedFiles[] = $item;
221
+ }
222
+ }
223
+ if ($this->_collectRecursively) {
224
+ $this->_collectRecursive($item);
225
+ }
226
+ }
227
+ elseif ($this->_collectFiles && is_file($item)
228
+ && (!$this->_allowedFilesMask || preg_match($this->_allowedFilesMask, basename($item)))
229
+ && (!$this->_disallowedFilesMask || !preg_match($this->_disallowedFilesMask, basename($item)))) {
230
+ $this->_collectedFiles[] = $item;
231
+ }
232
+ }
233
+ }
234
+
235
+ /**
236
+ * Lauch data collecting
237
+ *
238
+ * @param bool $printQuery
239
+ * @param bool $logQuery
240
+ * @return Varien_Data_Collection_Filesystem
241
+ */
242
+ public function loadData($printQuery = false, $logQuery = false)
243
+ {
244
+ if ($this->isLoaded()) {
245
+ return $this;
246
+ }
247
+ if (empty($this->_targetDirs)) {
248
+ throw new Exception('Please specify at least one target directory.');
249
+ }
250
+
251
+
252
+ $this->_collectedFiles = array();
253
+ $this->_collectedDirs = array();
254
+ $this->_collectRecursive($this->_targetDirs);
255
+ $this->_generateAndFilterAndSort('_collectedFiles');
256
+ if ($this->_dirsFirst) {
257
+ $this->_generateAndFilterAndSort('_collectedDirs');
258
+ $this->_collectedFiles = array_merge($this->_collectedDirs, $this->_collectedFiles);
259
+ }
260
+
261
+ // calculate totals
262
+ $this->_totalRecords = count($this->_collectedFiles);
263
+ $this->_setIsLoaded();
264
+
265
+ // paginate and add items
266
+ $from = ($this->getCurPage() - 1) * $this->getPageSize();
267
+ $to = $from + $this->getPageSize() - 1;
268
+ $isPaginated = $this->getPageSize() > 0;
269
+
270
+
271
+
272
+ $cnt = 0;
273
+ foreach ($this->_collectedFiles as $row) {
274
+ $cnt++;
275
+ if ($isPaginated && ($cnt < $from || $cnt > $to)) {
276
+ continue;
277
+ }
278
+ $item = new $this->_itemObjectClass();
279
+ $this->addItem($item->addData($row));
280
+ if (!$item->hasId()) {
281
+ $item->setId($cnt);
282
+ }
283
+ }
284
+
285
+ return $this;
286
+ }
287
+
288
+ /**
289
+ * With specified collected items:
290
+ * - generate data
291
+ * - apply filters
292
+ * - sort
293
+ *
294
+ * @param string $attributeName '_collectedFiles' | '_collectedDirs'
295
+ */
296
+ private function _generateAndFilterAndSort($attributeName)
297
+ {
298
+ // generate custom data (as rows with columns) basing on the filenames
299
+ foreach ($this->$attributeName as $key => $filename) {
300
+ $this->{$attributeName}[$key] = $this->_generateRow($filename);
301
+ }
302
+
303
+ // apply filters on generated data
304
+ if (!empty($this->_filters)) {
305
+ foreach ($this->$attributeName as $key => $row) {
306
+ if (!$this->_filterRow($row)) {
307
+ unset($this->{$attributeName}[$key]);
308
+ }
309
+ }
310
+ }
311
+
312
+ // sort (keys are lost!)
313
+ if (!empty($this->_orders)) {
314
+ usort($this->$attributeName, array($this, '_usort'));
315
+ }
316
+ }
317
+
318
+ /**
319
+ * Callback for sorting items
320
+ * Currently supports only sorting by one column
321
+ *
322
+ * @param array $a
323
+ * @param array $b
324
+ * @return int
325
+ */
326
+ protected function _usort($a, $b)
327
+ {
328
+ foreach ($this->_orders as $key => $direction) {
329
+ $result = $a[$key] > $b[$key] ? 1 : ($a[$key] < $b[$key] ? -1 : 0);
330
+ return (self::SORT_ORDER_ASC === strtoupper($direction) ? $result : -$result);
331
+ break;
332
+ }
333
+ }
334
+
335
+ /**
336
+ * Set select order
337
+ * Currently supports only sorting by one column
338
+ *
339
+ * @param string $field
340
+ * @param string $direction
341
+ * @return Varien_Data_Collection
342
+ */
343
+ public function setOrder($field, $direction = self::SORT_ORDER_DESC)
344
+ {
345
+ $this->_orders = array($field => $direction);
346
+ return $this;
347
+ }
348
+
349
+ /**
350
+ * Set a custom filter with callback
351
+ * The callback must take 3 params:
352
+ * string $field - field key,
353
+ * mixed $filterValue - value to filter by,
354
+ * array $row - a generated row (before generaring varien objects)
355
+ *
356
+ * @param string $field
357
+ * @param mixed $value
358
+ * @param string $type 'and'|'or'
359
+ * @param callback $callback
360
+ * @param bool $isInverted
361
+ * @return Varien_Data_Collection_Filesystem
362
+ */
363
+ public function addCallbackFilter($field, $value, $type, $callback, $isInverted = false)
364
+ {
365
+ $this->_filters[$this->_filterIncrement] = array(
366
+ 'field' => $field,
367
+ 'value' => $value,
368
+ 'is_and' => 'and' === $type,
369
+ 'callback' => $callback,
370
+ 'is_inverted' => $isInverted
371
+ );
372
+ $this->_filterIncrement++;
373
+ return $this;
374
+ }
375
+
376
+ /**
377
+ * The filters renderer and caller
378
+ * Aplies to each row, renders once.
379
+ *
380
+ * @param array $row
381
+ * @return bool
382
+ */
383
+ protected function _filterRow($row)
384
+ {
385
+ // render filters once
386
+ if (!$this->_isFiltersRendered) {
387
+ $eval = '';
388
+ for ($i = 0; $i < $this->_filterIncrement; $i++) {
389
+ if (isset($this->_filterBrackets[$i])) {
390
+ $eval .= $this->_renderConditionBeforeFilterElement($i, $this->_filterBrackets[$i]['is_and'])
391
+ . $this->_filterBrackets[$i]['value'];
392
+ }
393
+ else {
394
+ $f = '$this->_filters[' . $i . ']';
395
+ $eval .= $this->_renderConditionBeforeFilterElement($i, $this->_filters[$i]['is_and'])
396
+ . ($this->_filters[$i]['is_inverted'] ? '!' : '')
397
+ . '$this->_invokeFilter(' . "{$f}['callback'], array({$f}['field'], {$f}['value'], " . '$row))';
398
+ }
399
+ }
400
+ $this->_filterEvalRendered = $eval;
401
+ $this->_isFiltersRendered = true;
402
+ }
403
+ $result = false;
404
+ if ($this->_filterEvalRendered) {
405
+ eval('$result = ' . $this->_filterEvalRendered . ';');
406
+ }
407
+ return $result;
408
+ }
409
+
410
+ /**
411
+ * Invokes specified callback
412
+ * Skips, if there is no filtered key in the row
413
+ *
414
+ * @param callback $callback
415
+ * @param array $callbackParams
416
+ * @return bool
417
+ */
418
+ protected function _invokeFilter($callback, $callbackParams)
419
+ {
420
+ list($field, $value, $row) = $callbackParams;
421
+ if (!array_key_exists($field, $row)) {
422
+ return false;
423
+ }
424
+ return call_user_func_array($callback, $callbackParams);
425
+ }
426
+
427
+ /**
428
+ * Fancy field filter
429
+ *
430
+ * @param string $field
431
+ * @param mixed $cond
432
+ * @param string $type 'and' | 'or'
433
+ * @see Varien_Data_Collection_Db::addFieldToFilter()
434
+ * @return Varien_Data_Collection_Filesystem
435
+ */
436
+ public function addFieldToFilter($field, $cond, $type = 'and')
437
+ {
438
+ $inverted = true;
439
+
440
+ // simply check whether equals
441
+ if (!is_array($cond)) {
442
+ return $this->addCallbackFilter($field, $cond, $type, array($this, 'filterCallbackEq'));
443
+ }
444
+
445
+ // versatile filters
446
+ if (isset($cond['from']) || isset($cond['to'])) {
447
+ $this->_addFilterBracket('(', 'and' === $type);
448
+ if (isset($cond['from'])) {
449
+ $this->addCallbackFilter($field, $cond['from'], 'and', array($this, 'filterCallbackIsLessThan'), $inverted);
450
+ }
451
+ if (isset($cond['to'])) {
452
+ $this->addCallbackFilter($field, $cond['to'], 'and', array($this, 'filterCallbackIsMoreThan'), $inverted);
453
+ }
454
+ return $this->_addFilterBracket(')');
455
+ }
456
+ if (isset($cond['eq'])) {
457
+ return $this->addCallbackFilter($field, $cond['eq'], $type, array($this, 'filterCallbackEq'));
458
+ }
459
+ if (isset($cond['neq'])) {
460
+ return $this->addCallbackFilter($field, $cond['neq'], $type, array($this, 'filterCallbackEq'), $inverted);
461
+ }
462
+ if (isset($cond['like'])) {
463
+ return $this->addCallbackFilter($field, $cond['like'], $type, array($this, 'filterCallbackLike'));
464
+ }
465
+ if (isset($cond['nlike'])) {
466
+ return $this->addCallbackFilter($field, $cond['nlike'], $type, array($this, 'filterCallbackLike'), $inverted);
467
+ }
468
+ if (isset($cond['in'])) {
469
+ return $this->addCallbackFilter($field, $cond['in'], $type, array($this, 'filterCallbackInArray'));
470
+ }
471
+ if (isset($cond['nin'])) {
472
+ return $this->addCallbackFilter($field, $cond['nin'], $type, array($this, 'filterCallbackIn'), $inverted);
473
+ }
474
+ if (isset($cond['notnull'])) {
475
+ return $this->addCallbackFilter($field, $cond['notnull'], $type, array($this, 'filterCallbackIsNull'), $inverted);
476
+ }
477
+ if (isset($cond['null'])) {
478
+ return $this->addCallbackFilter($field, $cond['null'], $type, array($this, 'filterCallbackIsNull'));
479
+ }
480
+ if (isset($cond['moreq'])) {
481
+ return $this->addCallbackFilter($field, $cond['moreq'], $type, array($this, 'filterCallbackIsLessThan'), $inverted);
482
+ }
483
+ if (isset($cond['gt'])) {
484
+ return $this->addCallbackFilter($field, $cond['gt'], $type, array($this, 'filterCallbackIsMoreThan'));
485
+ }
486
+ if (isset($cond['lt'])) {
487
+ return $this->addCallbackFilter($field, $cond['lt'], $type, array($this, 'filterCallbackIsLessThan'));
488
+ }
489
+ if (isset($cond['gteq'])) {
490
+ return $this->addCallbackFilter($field, $cond['gteq'], $type, array($this, 'filterCallbackIsLessThan'), $inverted);
491
+ }
492
+ if (isset($cond['lteq'])) {
493
+ return $this->addCallbackFilter($field, $cond['lteq'], $type, array($this, 'filterCallbackIsMoreThan'), $inverted);
494
+ }
495
+ if (isset($cond['finset'])) {
496
+ $filterValue = ($cond['finset'] ? explode(',', $cond['finset']) : array());
497
+ return $this->addCallbackFilter($field, $filterValue, $type, array($this, 'filterCallbackInArray'));
498
+ }
499
+
500
+ // add OR recursively
501
+ foreach ($cond as $orCond) {
502
+ $this->_addFilterBracket('(', 'and' === $type);
503
+ $this->addFieldToFilter($field, $orCond, 'or');
504
+ $this->_addFilterBracket(')');
505
+ }
506
+ return $this;
507
+ }
508
+
509
+ /**
510
+ * Prepare a bracket into filters
511
+ *
512
+ * @param string $bracket
513
+ * @param bool $isAnd
514
+ * @return Varien_Data_Collection_Filesystem
515
+ */
516
+ protected function _addFilterBracket($bracket = '(', $isAnd = true)
517
+ {
518
+ $this->_filterBrackets[$this->_filterIncrement] = array(
519
+ 'value' => $bracket === ')' ? ')' : '(',
520
+ 'is_and' => $isAnd,
521
+ );
522
+ $this->_filterIncrement++;
523
+ return $this;
524
+ }
525
+
526
+ /**
527
+ * Render condition sign before element, if required
528
+ *
529
+ * @param int $increment
530
+ * @param bool $isAnd
531
+ * @return string
532
+ */
533
+ protected function _renderConditionBeforeFilterElement($increment, $isAnd)
534
+ {
535
+ if (isset($this->_filterBrackets[$increment]) && ')' === $this->_filterBrackets[$increment]['value']) {
536
+ return '';
537
+ }
538
+ $prevIncrement = $increment - 1;
539
+ $prevBracket = false;
540
+ if (isset($this->_filterBrackets[$prevIncrement])) {
541
+ $prevBracket = $this->_filterBrackets[$prevIncrement]['value'];
542
+ }
543
+ if ($prevIncrement < 0 || $prevBracket === '(') {
544
+ return '';
545
+ }
546
+ return ($isAnd ? ' && ' : ' || ');
547
+ }
548
+
549
+ /**
550
+ * Does nothing. Intentionally disabled parent method
551
+ *
552
+ * @return Varien_Data_Collection_Filesystem
553
+ */
554
+ public function addFilter($field, $value, $type = 'and')
555
+ {
556
+ return $this;
557
+ }
558
+
559
+ /**
560
+ * Get all ids of collected items
561
+ *
562
+ * @return array
563
+ */
564
+ public function getAllIds()
565
+ {
566
+ return array_keys($this->_items);
567
+ }
568
+
569
+ /**
570
+ * Callback method for 'like' fancy filter
571
+ *
572
+ * @param string $field
573
+ * @param mixed $filterValue
574
+ * @param array $row
575
+ * @return bool
576
+ * @see addFieldToFilter()
577
+ * @see addCallbackFilter()
578
+ */
579
+ public function filterCallbackLike($field, $filterValue, $row)
580
+ {
581
+ $filterValueRegex = str_replace('%', '(.*?)', preg_quote($filterValue, '/'));
582
+ return (bool)preg_match("/^{$filterValueRegex}$/i", $row[$field]);
583
+ }
584
+
585
+ /**
586
+ * Callback method for 'eq' fancy filter
587
+ *
588
+ * @param string $field
589
+ * @param mixed $filterValue
590
+ * @param array $row
591
+ * @return bool
592
+ * @see addFieldToFilter()
593
+ * @see addCallbackFilter()
594
+ */
595
+ public function filterCallbackEq($field, $filterValue, $row)
596
+ {
597
+ return $filterValue == $row[$field];
598
+ }
599
+
600
+ /**
601
+ * Callback method for 'in' fancy filter
602
+ *
603
+ * @param string $field
604
+ * @param mixed $filterValue
605
+ * @param array $row
606
+ * @return bool
607
+ * @see addFieldToFilter()
608
+ * @see addCallbackFilter()
609
+ */
610
+ public function filterCallbackInArray($field, $filterValue, $row)
611
+ {
612
+ return in_array($row[$field], $filterValue);
613
+ }
614
+
615
+ /**
616
+ * Callback method for 'isnull' fancy filter
617
+ *
618
+ * @param string $field
619
+ * @param mixed $filterValue
620
+ * @param array $row
621
+ * @return bool
622
+ * @see addFieldToFilter()
623
+ * @see addCallbackFilter()
624
+ */
625
+ public function filterCallbackIsNull($field, $filterValue, $row)
626
+ {
627
+ return null === $row[$field];
628
+ }
629
+
630
+ /**
631
+ * Callback method for 'moreq' fancy filter
632
+ *
633
+ * @param string $field
634
+ * @param mixed $filterValue
635
+ * @param array $row
636
+ * @return bool
637
+ * @see addFieldToFilter()
638
+ * @see addCallbackFilter()
639
+ */
640
+ public function filterCallbackIsMoreThan($field, $filterValue, $row)
641
+ {
642
+ return $row[$field] > $filterValue;
643
+ }
644
+
645
+ /**
646
+ * Callback method for 'leq' fancy filter
647
+ *
648
+ * @param string $field
649
+ * @param mixed $filterValue
650
+ * @param array $row
651
+ * @return bool
652
+ * @see addFieldToFilter()
653
+ * @see addCallbackFilter()
654
+ */
655
+ public function filterCallbackIsLessThan($field, $filterValue, $row)
656
+ {
657
+ return $row[$field] < $filterValue;
658
+ }
659
+
660
+ }
app/code/local/AuIt/PublicationBasic/Model/Font.php ADDED
@@ -0,0 +1,352 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Font
3
+ {
4
+ // --- ATTRIBUTES ---
5
+
6
+ /**
7
+ * @access private
8
+ * @var string
9
+ */
10
+ private $_fileName = NULL ; // Name of the truetype font file
11
+
12
+
13
+ /**
14
+ * @access private
15
+ * @var string
16
+ */
17
+ private $_copyright = NULL ; // Copyright
18
+
19
+
20
+ /**
21
+ * @access private
22
+ * @var string
23
+ */
24
+ private $_fontFamily = NULL ; // Font Family
25
+
26
+
27
+ /**
28
+ * @access private
29
+ * @var string
30
+ */
31
+ private $_fontSubFamily = NULL ; // Font SubFamily
32
+
33
+
34
+ /**
35
+ * @access private
36
+ * @var string
37
+ */
38
+ private $_fontIdentifier = NULL ; // Font Unique Identifier
39
+
40
+
41
+ /**
42
+ * @access private
43
+ * @var string
44
+ */
45
+ private $_fontName = NULL ; // Font Name
46
+
47
+
48
+ /**
49
+ * @access private
50
+ * @var string
51
+ */
52
+ private $_fontVersion = NULL ; // Font Version
53
+
54
+
55
+ /**
56
+ * @access private
57
+ * @var string
58
+ */
59
+ private $_postscriptName = NULL ; // Postscript Name
60
+
61
+
62
+ /**
63
+ * @access private
64
+ * @var string
65
+ */
66
+ private $_trademark = NULL ; // Trademark
67
+
68
+
69
+
70
+ // --- OPERATIONS ---
71
+
72
+ private function _returnValue($inString)
73
+ {
74
+ if (ord($inString) == 0) {
75
+ if (function_exists('mb_convert_encoding')) {
76
+ return mb_convert_encoding($inString,"UTF-8","UTF-16");
77
+ } else {
78
+ return str_replace(chr(00),'',$inString);
79
+ }
80
+ } else {
81
+ return $inString;
82
+ }
83
+ } // function _returnValue()
84
+
85
+ /**
86
+ * @access public
87
+ * @return integer
88
+ */
89
+ public function getCopyright()
90
+ {
91
+ return $this->_returnValue($this->_copyright);
92
+ } // function getCopyright()
93
+
94
+
95
+ /**
96
+ * @access public
97
+ * @return integer
98
+ */
99
+ public function getFontFamily()
100
+ {
101
+ return $this->_returnValue($this->_fontFamily);
102
+ } // function getFontFamily()
103
+
104
+
105
+ /**
106
+ * @access public
107
+ * @return integer
108
+ */
109
+ public function getFontSubFamily()
110
+ {
111
+ return $this->_returnValue($this->_fontSubFamily);
112
+ } // function getFontSubFamily()
113
+
114
+
115
+ /**
116
+ * @access public
117
+ * @return integer
118
+ */
119
+ public function getFontIdentifier()
120
+ {
121
+ return $this->_returnValue($this->_fontIdentifier);
122
+ } // function getFontIdentifier()
123
+
124
+
125
+ /**
126
+ * @access public
127
+ * @return integer
128
+ */
129
+ public function getFontName()
130
+ {
131
+ return $this->_returnValue($this->_fontName);
132
+ } // function getFontName()
133
+
134
+
135
+ /**
136
+ * @access public
137
+ * @return integer
138
+ */
139
+ public function getFontVersion()
140
+ {
141
+ return $this->_returnValue($this->_fontVersion);
142
+ } // function getFontVersion()
143
+
144
+
145
+ /**
146
+ * @access public
147
+ * @return integer
148
+ */
149
+ public function getPostscriptName()
150
+ {
151
+ return $this->_returnValue($this->_postscriptName);
152
+ } // function getPostscriptName()
153
+
154
+
155
+ /**
156
+ * @access public
157
+ * @return integer
158
+ */
159
+ public function getTrademark()
160
+ {
161
+ return $this->_returnValue($this->_trademark);
162
+ } // function getTrademark()
163
+
164
+
165
+ /**
166
+ * Convert a big-endian word or longword value to an integer
167
+ *
168
+ * @access private
169
+ * @return integer
170
+ */
171
+ private function _UConvert($bytesValue,$byteCount)
172
+ {
173
+ $retVal = 0;
174
+ $bytesLength = strlen($bytesValue);
175
+ for ($i=0; $i < $bytesLength; $i++) {
176
+ $tmpVal = ord($bytesValue{$i});
177
+ $t = pow(256,($byteCount-$i-1));
178
+ $retVal += $tmpVal*$t;
179
+ }
180
+
181
+ return $retVal;
182
+ } // function UConvert()
183
+
184
+
185
+ /**
186
+ * Convert a big-endian word value to an integer
187
+ *
188
+ * @access private
189
+ * @return integer
190
+ */
191
+ private function _USHORT($stringValue) {
192
+ return $this->_UConvert($stringValue,2);
193
+ }
194
+
195
+
196
+ /**
197
+ * Convert a big-endian word value to an integer
198
+ *
199
+ * @access private
200
+ * @return integer
201
+ */
202
+ private function _ULONG($stringValue) {
203
+ return $this->_UConvert($stringValue,4);
204
+ }
205
+
206
+
207
+ /**
208
+ * Read the Font Attributes
209
+ *
210
+ * @access private
211
+ * @return integer
212
+ */
213
+ private function readFontAttributes() {
214
+ $fontHandle = fopen($this->_fileName, "rb");
215
+
216
+ // Read the file header
217
+ $TT_OFFSET_TABLE = fread($fontHandle, 12);
218
+
219
+ $uMajorVersion = $this->_USHORT(substr($TT_OFFSET_TABLE,0,2));
220
+ $uMinorVersion = $this->_USHORT(substr($TT_OFFSET_TABLE,2,2));
221
+ $uNumOfTables = $this->_USHORT(substr($TT_OFFSET_TABLE,4,2));
222
+ // $uSearchRange = $this->_USHORT(substr($TT_OFFSET_TABLE,6,2));
223
+ // $uEntrySelector = $this->_USHORT(substr($TT_OFFSET_TABLE,8,2));
224
+ // $uRangeShift = $this->_USHORT(substr($TT_OFFSET_TABLE,10,2));
225
+
226
+ // Check is this is a true type font and the version is 1.0
227
+ if ($uMajorVersion != 1 || $uMinorVersion != 0) {
228
+ fclose($fontHandle);
229
+ throw new Exception($this->_fileName.' is not a Truetype font file') ;
230
+ }
231
+
232
+ // Look for details of the name table
233
+ $nameTableFound = false;
234
+ for ($t=0; $t < $uNumOfTables; $t++) {
235
+ $TT_TABLE_DIRECTORY = fread($fontHandle, 16);
236
+ $szTag = substr($TT_TABLE_DIRECTORY,0,4);
237
+ if (strtolower($szTag) == 'name') {
238
+ // $uCheckSum = $this->_ULONG(substr($TT_TABLE_DIRECTORY,4,4));
239
+ $uOffset = $this->_ULONG(substr($TT_TABLE_DIRECTORY,8,4));
240
+ // $uLength = $this->_ULONG(substr($TT_TABLE_DIRECTORY,12,4));
241
+ $nameTableFound = true;
242
+ break;
243
+ }
244
+ }
245
+
246
+ if (!$nameTableFound) {
247
+ fclose($fontHandle);
248
+ throw new Exception('Can\'t find name table in '.$this->_fileName) ;
249
+ }
250
+
251
+ // Set offset to the start of the name table
252
+ fseek($fontHandle,$uOffset,SEEK_SET);
253
+
254
+ $TT_NAME_TABLE_HEADER = fread($fontHandle, 6);
255
+
256
+ // $uFSelector = $this->_USHORT(substr($TT_NAME_TABLE_HEADER,0,2));
257
+ $uNRCount = $this->_USHORT(substr($TT_NAME_TABLE_HEADER,2,2));
258
+ $uStorageOffset = $this->_USHORT(substr($TT_NAME_TABLE_HEADER,4,2));
259
+
260
+ $attributeCount = 0;
261
+ for ($a=0; $a < $uNRCount; $a++) {
262
+ $TT_NAME_RECORD = fread($fontHandle, 12);
263
+
264
+ $uNameID = $this->_USHORT(substr($TT_NAME_RECORD,6,2));
265
+ if ($uNameID <= 7) {
266
+ // $uPlatformID = $this->_USHORT(substr($TT_NAME_RECORD,0,2));
267
+ $uEncodingID = $this->_USHORT(substr($TT_NAME_RECORD,2,2));
268
+ // $uLanguageID = $this->_USHORT(substr($TT_NAME_RECORD,4,2));
269
+ $uStringLength = $this->_USHORT(substr($TT_NAME_RECORD,8,2));
270
+ $uStringOffset = $this->_USHORT(substr($TT_NAME_RECORD,10,2));
271
+
272
+ if ($uStringLength > 0) {
273
+ $nPos = ftell($fontHandle);
274
+ fseek($fontHandle,$uOffset + $uStringOffset + $uStorageOffset,SEEK_SET);
275
+ $testValue = fread($fontHandle, $uStringLength);
276
+
277
+ if (trim($testValue) > '') {
278
+ switch ($uNameID) {
279
+ case 0 : if ($this->_copyright == NULL) {
280
+ $this->_copyright = $testValue;
281
+ $attributeCount++;
282
+ }
283
+ break;
284
+ case 1 : if ($this->_fontFamily == NULL) {
285
+ $this->_fontFamily = $testValue;
286
+ $attributeCount++;
287
+ }
288
+ break;
289
+ case 2 : if ($this->_fontSubFamily == NULL) {
290
+ $this->_fontSubFamily = $testValue;
291
+ $attributeCount++;
292
+ }
293
+ break;
294
+ case 3 : if ($this->_fontIdentifier == NULL) {
295
+ $this->_fontIdentifier = $testValue;
296
+ $attributeCount++;
297
+ }
298
+ break;
299
+ case 4 : if ($this->_fontName == NULL) {
300
+ $this->_fontName = $testValue;
301
+ $attributeCount++;
302
+ }
303
+ break;
304
+ case 5 : if ($this->_fontVersion == NULL) {
305
+ $this->_fontVersion = $testValue;
306
+ $attributeCount++;
307
+ }
308
+ break;
309
+ case 6 : if ($this->_postscriptName == NULL) {
310
+ $this->_postscriptName = $testValue;
311
+ $attributeCount++;
312
+ }
313
+ break;
314
+ case 7 : if ($this->_trademark == NULL) {
315
+ $this->_trademark = $testValue;
316
+ $attributeCount++;
317
+ }
318
+ break;
319
+ }
320
+ }
321
+ fseek($fontHandle,$nPos,SEEK_SET);
322
+ }
323
+ }
324
+ if ($attributeCount > 7) {
325
+ break;
326
+ }
327
+ }
328
+
329
+ fclose($fontHandle);
330
+ return true;
331
+ }
332
+
333
+
334
+
335
+
336
+ /**
337
+ * @access constructor
338
+ * @return void
339
+ */
340
+ function setFile($fileName='') {
341
+
342
+ $this->_fileName = $fileName;
343
+ if (!file_exists($this->_fileName)) {
344
+ throw new Exception($this->_fileName.' does not exist') ;
345
+ } elseif (!is_readable($this->_fileName)) {
346
+ throw new Exception($this->_fileName.' is not a readable file') ;
347
+ }
348
+ return $this->readFontAttributes();
349
+ } // function constructor()
350
+
351
+
352
+ } /* end of class fontAttributes */
app/code/local/AuIt/PublicationBasic/Model/Generator.php ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Generator extends Mage_Core_Model_Abstract
4
+ {
5
+ const TYPE_PHTML = 1;
6
+ const TYPE_MARKUP = 2;
7
+
8
+
9
+ protected function _construct()
10
+ {
11
+ $this->_init('auit_publicationbasic/generator');
12
+ }
13
+ public function initialBasisData()
14
+ {
15
+ if ( $this->getId() ) return;
16
+ $file = Mage::getModuleDir('data', 'AuIt_Publication') . DS . 'initial'.DS.'style'.DS.'type_'.$this->getType().'.json';
17
+ if ( file_exists($file) )
18
+ {
19
+ $this->setData('source',file_get_contents($file));
20
+ }
21
+ }
22
+ protected function _beforeSave()
23
+ {
24
+ $data = $this->getData('parameter');
25
+ if ( is_array($data) )
26
+ {
27
+ $_deleteItems = array();
28
+ if ( isset($data['__deleted']) )
29
+ {
30
+ foreach ( $data['__deleted'] as $delItem => $b)
31
+ {
32
+ if ( $b )
33
+ unset($data[$delItem]);
34
+ }
35
+ }
36
+ if ( isset($data['__deleted']) )
37
+ unset($data['__deleted']);
38
+ if ( isset($data['__empty']) )
39
+ unset($data['__empty']);
40
+ $this->setData('parameter','base64:'.base64_encode(serialize($data)));
41
+ }
42
+ return parent::_beforeSave();
43
+ }
44
+ protected function _afterLoad()
45
+ {
46
+ $data = $this->getData('parameter');
47
+ if ( !is_array($data) )
48
+ {
49
+ if ( strpos($data,'base64:') === 0 )
50
+ {
51
+ $data = base64_decode(substr($data,7));
52
+ }
53
+ $data=@unserialize($data);
54
+ $this->setData('parameter',$data);
55
+ }
56
+ return parent::_afterLoad();
57
+ }
58
+
59
+ public function exportTo(&$package,$rootDir,$templId)
60
+ {
61
+ $Identifier = $this->getIdentifier();
62
+ if ( isset($package['generators'][$Identifier] ) )
63
+ return;
64
+
65
+ $data = $this->getData();
66
+ $data['generator_id']=null;
67
+ file_put_contents($rootDir.DS.'generator_'.$Identifier.'.ser', serialize($data));
68
+ $package['generators'][$Identifier]=1;
69
+ }
70
+ public function importData(&$messages,$templateDir,$templdata,$bvalidate)
71
+ {
72
+ if ( isset($templdata['generator_id']) )
73
+ unset($templdata['generator_id']);
74
+ $this->addData($templdata);
75
+ }
76
+ public function addDependence(&$dep)
77
+ {
78
+
79
+ }
80
+
81
+ }
app/code/local/AuIt/PublicationBasic/Model/Jobqueue.php ADDED
@@ -0,0 +1,225 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Jobqueue extends Mage_Core_Model_Abstract
4
+ {
5
+ const CACHE_TAG = 'auit_publicationbasic_jobqueue';
6
+ protected $_cacheTag= 'auit_publicationbasic_jobqueue';
7
+
8
+ const STATE_WAIT = 0;
9
+ const STATE_START_NOW = -1;
10
+ const STATE_IN_PROGRESS = 1;
11
+ const STATE_HOLD = 2;
12
+ const STATE_CANCELED = 50;
13
+ const STATE_EXCEPTION = 98;
14
+ const STATE_COMPLETED = 99;
15
+
16
+ const TYPE_COUPON_CARD = 100;
17
+ const TYPE_BROCHURE_LIST= 200;
18
+ const TYPE_EBOOK_EPUB3= 300;
19
+
20
+ protected $_layoutArray;
21
+ protected function _construct()
22
+ {
23
+ $this->_init('auit_publicationbasic/jobqueue');
24
+ }
25
+ public function getVersion()
26
+ {
27
+ if ( $this->getLayoutDef() )
28
+ return 2;
29
+ return 1;
30
+ }
31
+ public function getTemplates()
32
+ {
33
+ $tmpls = $this->getLayoutInfo('templates');
34
+ return $tmpls?$tmpls:array();
35
+ }
36
+ public function getJobStyle()
37
+ {
38
+ return $this->getLayoutInfo('jobstyle');
39
+
40
+ }
41
+
42
+ public function getLayoutInfo($key=null)
43
+ {
44
+ if ( is_null($this->_layoutArray) )
45
+ {
46
+ $this->_layoutArray = Mage::helper('core')->jsonDecode($this->getLayoutDef());
47
+ if ( !is_array($this->_layoutArray))
48
+ $this->_layoutArray=array();
49
+ }
50
+ if ( !$key )
51
+ return $this->_layoutArray;
52
+ if ( isset($this->_layoutArray[$key]))
53
+ return $this->_layoutArray[$key];
54
+ return null;
55
+ }
56
+ public function initialBasisData()
57
+ {
58
+ }
59
+ //queue_status
60
+ public function setQueueState($newState)
61
+ {
62
+ $oldStatus = $this->getStatus();
63
+ switch ($newState)
64
+ {
65
+ case self::STATE_WAIT:
66
+ //if ( !$oldStatus )
67
+ $this->setStatus($newState);
68
+ break;
69
+ case self::STATE_START_NOW:
70
+ if ( $oldStatus != self::STATE_IN_PROGRESS)
71
+ $this->setStatus($newState);
72
+ break;
73
+ case self::STATE_IN_PROGRESS:
74
+ if ( $oldStatus != self::STATE_COMPLETED && $oldStatus != self::STATE_CANCELED)
75
+ {
76
+ $this->setStatus($newState);
77
+ }
78
+ //$this->runJob();
79
+ break;
80
+ case self::STATE_HOLD:
81
+ //if ( $oldStatus == self::STATE_IN_PROGRESS)
82
+ $this->setStatus($newState);
83
+ break;
84
+ case self::STATE_CANCELED:
85
+ if ( $oldStatus == self::STATE_IN_PROGRESS)
86
+ $this->setStatus($newState);
87
+ break;
88
+ case self::STATE_COMPLETED:
89
+ case self::STATE_EXCEPTION:
90
+ $this->setStatus($newState);
91
+ break;
92
+ }
93
+ }
94
+
95
+ public function setQueueStartAtByString($startAt)
96
+ {
97
+ if(is_null($startAt) || $startAt == '') {
98
+ $this->setQueueStartAt(null);
99
+ } else {
100
+ $locale = Mage::app()->getLocale();
101
+ $format = $locale->getDateTimeFormat(Mage_Core_Model_Locale::FORMAT_TYPE_SHORT);
102
+ $time = $locale->date($startAt, $format)->getTimestamp();
103
+ $this->setQueueStartAt(Mage::getModel('core/date')->gmtDate(null, $time));
104
+ }
105
+ return $this;
106
+ }
107
+ public function getJobRoot()
108
+ {
109
+ return $this->getResource()->getJobRoot();
110
+ }
111
+ public function getJobFilePath()
112
+ {
113
+ return $this->getResource()->getJobFilePath($this);
114
+ }
115
+ public function getFilename()
116
+ {
117
+ return $this->getResource()->getFilename($this);
118
+ }
119
+ public function downloadExists()
120
+ {
121
+ return file_exists($this->getJobFilePath() . DS . $this->getFileName());
122
+ }
123
+ public function getFileSize()
124
+ {
125
+ if ( $this->downloadExists() )
126
+ return filesize($this->getJobFilePath() . DS . $this->getFileName());
127
+ return 0;
128
+ }
129
+ public function outputFile()
130
+ {
131
+ $ioAdapter = new Varien_Io_File();
132
+ if ( $this->downloadExists() )
133
+ {
134
+ $ioAdapter->open(array('path' => $this->getJobFilePath()));
135
+
136
+ $ioAdapter->streamOpen($this->getFileName(), 'r');
137
+ while ($buffer = $ioAdapter->streamRead()) {
138
+ echo $buffer;
139
+ }
140
+ $ioAdapter->streamClose();
141
+ }
142
+ }
143
+ public function run()
144
+ {
145
+
146
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
147
+ if ( $helper->checkFolder($this->getJobFilePath()) )
148
+ {
149
+ //$filename = $output.DS.$this->getFilename();
150
+ if ( $this->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3 )
151
+ {
152
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_ebook');
153
+ $pdfPublication->runJob($this);
154
+ } else {
155
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_pdf');
156
+ $pdfPublication->runJob($this);
157
+ }
158
+ }
159
+ }
160
+ public function runJob()
161
+ {
162
+ $this->setQueueState(AuIt_PublicationBasic_Model_Jobqueue::STATE_IN_PROGRESS);
163
+ $this->save();
164
+ try {
165
+ $this->setQueueStatus('');
166
+ $this->run();
167
+ $this->setQueueState(AuIt_PublicationBasic_Model_Jobqueue::STATE_COMPLETED);
168
+ $this->setQueueFinishAt(now());
169
+ $this->save();
170
+ }catch ( Exception $e )
171
+ {
172
+ $this->setQueueState(AuIt_PublicationBasic_Model_Jobqueue::STATE_EXCEPTION);
173
+ $this->setQueueStatus($e->getMessage());
174
+ $this->setQueueFinishAt(now());
175
+ $this->save();
176
+ }
177
+ }
178
+ public function getPreviewImage()
179
+ {
180
+ if (!$this->getId() || !$this->downloadExists()) {
181
+ return '';
182
+ }
183
+ $fileName = $this->getJobFilePath() . DS . $this->getFileName();
184
+ $asThumb=true;
185
+ $spread=1;
186
+ $toName = 'preview_job_'.$this->getId() .'_'.($asThumb?'t':'').'s'.$spread.'.jpg';
187
+ $directory = Mage::getBaseDir('media') . DS.'catalog'.DS.'product'.DS.'cache'.DS.'_snm_publication_previews'.DS;
188
+ $path = $directory.$toName;
189
+ if ( extension_loaded('imagick')) {
190
+ if ( !file_exists($path) || filemtime($path) < strtotime($this->getUpdateTime()))
191
+ {
192
+ $io = new Varien_Io_File();
193
+ if ( !$io->isWriteable(dirname($path)) && !$io->mkdir(dirname($path), 0777, true)) {
194
+ $msg = Mage::helper('catalog')->__("Cannot create writeable directory '%s'.", $path);
195
+ Mage::log($msg );
196
+ Mage::getSingleton('adminhtml/session')->addError($msg );
197
+ }else {
198
+ $this->createPreviewImage($fileName,$path,$asThumb);
199
+ }
200
+ }
201
+ }
202
+ return $path;
203
+ }
204
+ protected function createPreviewImage($pdf,$path,$asThumb=true)
205
+ {
206
+ try {
207
+ $im = new Imagick($pdf.'[0]');
208
+ $im->setResolution(300,300);
209
+ $im->setBackgroundColor(new ImagickPixel('white'));
210
+ //$im->readimageblob($pdf->render());
211
+ $im->setBackgroundColor(new ImagickPixel('white'));
212
+ $im = $im->flattenImages();
213
+ $im->setImageFormat('jpg');
214
+ $im->setiteratorindex(0);
215
+ if ( $asThumb )
216
+ $im->scaleImage(400,400,true);
217
+ $im->writeimage($path);
218
+ $im->clear();
219
+ $im->destroy();
220
+
221
+ } catch (Exception $e) {
222
+ Mage::logException($e);
223
+ }
224
+ }
225
+ }
app/code/local/AuIt/PublicationBasic/Model/Pdf/Base.php ADDED
@@ -0,0 +1,299 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ require_once 'snm3/auit/pdf.php';
3
+ abstract class AuIt_PublicationBasic_Model_Pdf_Base extends Varien_Object //Mage_Sales_Model_Order_Pdf_Abstract
4
+ {
5
+
6
+ // protected $_Product;
7
+ protected $_ProductData;
8
+ protected $_OriginX;
9
+ protected $_OriginY;
10
+ protected $_Style;
11
+ protected $_backData;
12
+
13
+ protected $_emulatedDesignConfig = false;
14
+
15
+ protected $_invoice=null;
16
+ protected $_processor;
17
+ protected $_page=null;
18
+ protected $_page_nr=0;
19
+ protected $_page_max=0;
20
+
21
+ protected $_tcpdf;
22
+ protected $_margins;
23
+ protected $_bsimulate;
24
+ protected $_paymentInfo='';
25
+ protected $_cfgPfad;
26
+ protected $_streams;
27
+
28
+ protected $_pdf;
29
+ protected $_cols;
30
+ protected $_maxCols;
31
+ protected $_maxX;
32
+ protected $_maxY;
33
+ protected $_bShowCropMarks;
34
+
35
+ protected function _construct()
36
+ {
37
+
38
+ }
39
+ protected function _getProcessor()
40
+ {
41
+ if ( !$this->_processor )
42
+ {
43
+ $processor = Mage::getModel('auit_publicationbasic/email_template_filter');
44
+
45
+ $data = array(
46
+ 'helper'=> Mage::getModel('auit_publicationbasic/email_template_helper')->setProcessor($processor),
47
+ 'page_current'=>$this->_tcpdf->getRSCPage().$this->_tcpdf->getAliasNumPage(),
48
+ 'page_count'=>$this->_tcpdf->getAliasNbPages(),
49
+ );
50
+
51
+ $processor->setVariables($data);
52
+ $this->_processor=$processor;
53
+ }
54
+ return $this->_processor;
55
+ }
56
+
57
+ protected function _beforeGetPdf() {
58
+ $translate = Mage::getSingleton('core/translate');
59
+ /* @var $translate Mage_Core_Model_Translate */
60
+ $translate->setTranslateInline(false);
61
+ }
62
+ protected function _afterGetPdf() {
63
+ $translate = Mage::getSingleton('core/translate');
64
+ /* @var $translate Mage_Core_Model_Translate */
65
+ $translate->setTranslateInline(true);
66
+ }
67
+ public function PDFshowHeader(AuIt_Pdf2 $pdf)
68
+ {
69
+ //bMargin
70
+ /*
71
+ $this->_page_nr++;
72
+ if ( !$this->_bsimulate )
73
+ $pdf->showTemplatePage($this->_page_nr<= 1?1:2);
74
+ $pdf->setAutoPB(false);
75
+ if ( !$this->_bsimulate )
76
+ $this->insertFreeItems($pdf);
77
+ $pdf->setAutoPB(true);
78
+ $this->setPageMargins($pdf,$this->_page_nr);
79
+ */
80
+ }
81
+ protected function getCropSpace()
82
+ {
83
+ return 10;
84
+ }
85
+ protected function getBleedSpace()
86
+ {
87
+ return 2;
88
+ }
89
+ protected function calcNewPage($PlaceM,&$x,&$y,$startX,$startY,$OW,$OH,$PH,$PW)
90
+ {
91
+ $space =0;
92
+ if ( $this->_bShowCropMarks )
93
+ $space = $this->getCropSpace();
94
+
95
+ $newPage = false;
96
+ switch ( $PlaceM )
97
+ {
98
+ case 'grid':
99
+ $x += $space + $OW;
100
+ $this->_cols++;
101
+ if ( $this->_cols > $this->_maxCols)
102
+ $this->_maxCols=$this->_cols;
103
+ if ( $x > $this->_maxX)
104
+ $this->_maxX=$x;
105
+ if ( $x >= ($PW - ($space + $OW)) )
106
+ {
107
+ $this->_cols=0;
108
+ $x=$startX;
109
+ $y += $OH +$space;
110
+ if ( $y > $this->_maxY)
111
+ $this->_maxY=$y;
112
+ if ( $y >= ($PH - ($space + $OH)) )
113
+ {
114
+ $newPage=true;
115
+ }
116
+ }
117
+ break;
118
+ default:
119
+ $this->_cols=1;
120
+ $this->_maxCols=1;
121
+ $y += $OH +$space;
122
+ if ( $y > $this->_maxY)
123
+ $this->_maxY=$y;
124
+ if ( $y >= ($PH - ($space + $OH)) )
125
+ $newPage=true;
126
+ break;
127
+ }
128
+ return $newPage;
129
+ }
130
+ protected function drawNextSpreads($pageObjs,$data,$PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW)
131
+ {
132
+ $cols = $this->_maxCols?$this->_maxCols:1;
133
+ $max = count($pageObjs);
134
+ $res=array();
135
+ for ( $i=0; $i < $max ; $i += $cols )
136
+ {
137
+ for ( $j= ($i+$cols-1); $j >= $i; $j-- )
138
+ {
139
+ if ( $j < $max)
140
+ {
141
+ $res[]=$pageObjs[$j];
142
+ }else
143
+ $res[]='d';
144
+ }
145
+ }
146
+ foreach ( $res as $objData )
147
+ {
148
+ if ( is_array($objData))
149
+ {
150
+ $this->_ProductData=$objData;
151
+ $spread = $data['spreads'][1];
152
+ foreach ( $spread['pages'] as $page )
153
+ {
154
+ if ( $this->_bShowCropMarks )
155
+ $this->showCropMarks($x,$y,$OW,$OH);
156
+ $this->_tcpdf->StartTransform();
157
+ $this->_tcpdf->Rect($x,$y, $OW, $OH, 'CNZ');
158
+ $this->_OriginX=$x;
159
+ $this->_OriginY=$y;
160
+ $this->drawBoxes($spread['boxes']);
161
+ $this->_tcpdf->StopTransform();
162
+
163
+ break;
164
+ }
165
+ }
166
+ $newPage = $this->calcNewPage($PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW);
167
+ }
168
+ $this->_ProductData=null;
169
+ }
170
+ protected function showCropMarks($x,$y,$OW,$OH)
171
+ {
172
+ $space = $this->getCropSpace();
173
+ $startX4=$space/4;
174
+ $startY4=$space/4;
175
+ $startOX=$space/10;
176
+ $startOY=$space/10;
177
+
178
+ // Crop Marken
179
+ $cropStyle = array('width' => 0.001,'color' => array(0, 0, 0));
180
+ $this->_tcpdf->Line($x - $startX4 , $y, $x - $startX4-$startX4+$startOX, $y,$cropStyle);
181
+ $this->_tcpdf->Line($x, $y-$startY4, $x, $y-$startY4-$startY4+$startOY,$cropStyle);
182
+
183
+ $this->_tcpdf->Line($x + $OW + $startX4, $y, $x+$OW + $startX4+$startX4-$startOX, $y,$cropStyle);
184
+ $this->_tcpdf->Line($x + $OW, $y-$startY4, $x+$OW, $y-$startY4-$startY4+$startOY,$cropStyle);
185
+
186
+ $this->_tcpdf->Line($x + $OW + $startX4, $y+ $OH, $x+$OW + $startX4+$startX4-$startOX, $y+ $OH,$cropStyle);
187
+ $this->_tcpdf->Line($x + $OW, $y+$OH+$startY4, $x+$OW, $y+$OH+$startY4+$startY4-$startOY,$cropStyle);
188
+
189
+ $this->_tcpdf->Line($x - $startX4 , $y+ $OH, $x - $startX4-$startX4+$startOX, $y+ $OH,$cropStyle);
190
+ $this->_tcpdf->Line($x, $y+$OH+$startY4, $x, $y+$OH+$startY4+$startY4-$startOY,$cropStyle);
191
+ }
192
+
193
+ protected function addPageDocMode($data,$baddBleed,$spreadPages)
194
+ {
195
+ $orientation= (isset($data['orientation']) && $data['orientation'] == 'p')?'P':'L';
196
+ $spreadW = $data['width'] * $spreadPages;
197
+ $spreadH = $data['height'];
198
+ $format = array(
199
+ 'MediaBox'=>array('llx'=>0,'lly'=>0,'urx'=>$spreadW,'ury'=>$spreadH)
200
+ );
201
+ if ($baddBleed)
202
+ {
203
+ $bo = $this->getBleedSpace();
204
+ $format['BleedBox']=array('llx'=>$bo,'lly'=>$bo,
205
+ 'urx'=>$data['width']-$bo,
206
+ 'ury'=>$data['height']-$bo);
207
+ $format['TrimBox']=array('llx'=>$bo,'lly'=>$bo,
208
+ 'urx'=>$data['width']-$bo,
209
+ 'ury'=>$data['height']-$bo);
210
+ }
211
+ $this->_tcpdf->AddPage($orientation,$format);
212
+ }
213
+
214
+
215
+
216
+ public function getPdfFromData($printMode,$jsonData,$storeId=0)
217
+ {
218
+ try {
219
+ $this->_printMode=$printMode;
220
+ $this->_beforeGetPdf();
221
+ if ( is_array($jsonData))
222
+ $data = $jsonData;
223
+ else
224
+ $data = Mage::helper('core')->jsonDecode($jsonData);
225
+ $sender = Mage::getModel('core/email_template');
226
+ if ( !$storeId )
227
+ $storeId = $data['preview_store'];
228
+ if ( !$storeId )
229
+ $storeId ='default';
230
+ try {
231
+ $sender->emulateDesign($storeId);
232
+ }
233
+ catch ( Exception $e )
234
+ {
235
+ }
236
+
237
+
238
+
239
+ $this->_pdf = new Zend_Pdf();
240
+ $this->_streams = array();
241
+
242
+ $this->beginDrawData($data);
243
+ foreach ( $this->_streams as $stream )
244
+ {
245
+ $pdf = Zend_Pdf::parse($stream);
246
+ foreach ($pdf->pages as $page)
247
+ $this->_pdf->pages[] = clone($page);
248
+ }
249
+ $this->_afterGetPdf();
250
+ $this->_streams=array();
251
+ }
252
+ catch ( Exception $e )
253
+ {
254
+ $this->_afterGetPdf();
255
+ throw $e;
256
+ }
257
+ return $this->_pdf;
258
+ }
259
+ public function newSpread($data,$spread=null)
260
+ {
261
+ $orientation= (isset($data['orientation']) && $data['orientation'] == 'p')?'P':'L';
262
+ $spreadW = $data['width'] * ($spread?count($spread['pages']):1);
263
+ $spreadH = $data['height'];
264
+ $format = array(
265
+ 'MediaBox'=>array(
266
+ 'llx'=>0,
267
+ 'lly'=>0,
268
+ 'urx'=>$spreadW,
269
+ 'ury'=>$spreadH
270
+ )
271
+ );
272
+ $this->_tcpdf->AddPage($orientation,$format);
273
+ }
274
+
275
+ protected function getAttribute($code)
276
+ {
277
+ return isset($this->_ProductData[$code])?$this->_ProductData[$code]:'not found:'.$code;
278
+ }
279
+
280
+ protected function xPOS($blockInfo)
281
+ {
282
+ return $this->_OriginX + $blockInfo->getX();
283
+ }
284
+ protected function yPOS($blockInfo)
285
+ {
286
+ return $this->_OriginY + $blockInfo->getY();
287
+ }
288
+ protected function drawBoxes($boxes)//,$rangeXFrom,$rangeXTo)
289
+ {
290
+ foreach ( $boxes as $box )
291
+ {
292
+ $this->drawBox($box);
293
+ }
294
+ }
295
+
296
+
297
+
298
+
299
+ }
app/code/local/AuIt/PublicationBasic/Model/Project.php ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Project extends Mage_Core_Model_Abstract
4
+ {
5
+ const CACHE_TAG = 'auit_publicationbasic_project';
6
+ protected $_cacheTag= 'auit_publicationbasic_project';
7
+ protected function _construct()
8
+ {
9
+ $this->_init('auit_publicationbasic/project');
10
+ }
11
+ public function initialBasisData()
12
+ {
13
+ if ( $this->getId() ) return;
14
+ $file = Mage::getModuleDir('data', 'AuIt_Publication') . DS . 'initial'.DS.'project'.DS.'type_'.$this->getType().'.json';
15
+ if ( file_exists($file) )
16
+ {
17
+ $this->setData('data',file_get_contents($file));
18
+ }
19
+ }
20
+ }
app/code/local/AuIt/PublicationBasic/Model/Renderer/Abstract.php ADDED
@@ -0,0 +1,607 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Renderer_Abstract extends Varien_Object
3
+ {
4
+ protected $_ProductData=array();
5
+ protected $_mainData;
6
+ protected $_ProductArray=array();
7
+ protected $_barcodes=array();
8
+ protected $_OriginX;
9
+ protected $_OriginY;
10
+ protected $_Style;
11
+ protected $_backData;
12
+ protected $_processor;
13
+ protected $_pageNr;
14
+ protected $_firstObject;
15
+ protected $_jobQueueObj;
16
+ protected $_currentSpread=0;
17
+ protected $_currentJobTemplate;
18
+ public function __destruct()
19
+ {
20
+ foreach ( $this->_barcodes as $file )
21
+ @unlink($file);
22
+ $this->_barcodes=array();
23
+ }
24
+
25
+ protected function _getJobQueueVar($blockInfo,$name)
26
+ {
27
+ if ( $this->_currentJobTemplate )
28
+ {
29
+ if ( isset($this->_currentJobTemplate['vars']) )
30
+ {
31
+ foreach ($this->_currentJobTemplate['vars'] as $var )
32
+ {
33
+ if ( $var['uid']==$blockInfo->getUid() && $var['spread']== $this->_currentSpread)
34
+ {
35
+ if ( $var['type'] == 'p_img')
36
+ return $var['src'];
37
+ if ( !$var['def'])
38
+ Mage::log($var);
39
+ return $var['def'];
40
+ }
41
+ }
42
+ }
43
+ }
44
+ return $blockInfo->getData($name);
45
+ }
46
+
47
+ protected function _getProcessor()
48
+ {
49
+ if ( !$this->_processor )
50
+ {
51
+ $processor = Mage::getModel('auit_publicationbasic/email_template_filter');
52
+ $data = array(
53
+ 'helper'=> Mage::getModel('auit_publicationbasic/email_template_helper')->setProcessor($processor),
54
+ // 'page_current'=>$this->_tcpdf->getRSCPage().$this->_tcpdf->getAliasNumPage(),
55
+ // 'page_count'=>$this->_tcpdf->getAliasNbPages(),
56
+ );
57
+
58
+ $processor->setVariables($data);
59
+ $this->_processor=$processor;
60
+ }
61
+ return $this->_processor;
62
+ }
63
+ protected function getAttribute($code)
64
+ {
65
+ return isset($this->_ProductData[$code])?$this->_ProductData[$code]:'not found:'.$code;
66
+ }
67
+ protected function addUnit($value,$unit)
68
+ {
69
+ if ( strlen(floatval($value)) == strlen($value) )
70
+ return $value.$unit;
71
+ return $value;
72
+ }
73
+
74
+ protected function xPOS($blockInfo)
75
+ {
76
+ return $this->_OriginX + $blockInfo->getX();
77
+ }
78
+ protected function yPOS($blockInfo)
79
+ {
80
+ return $this->_OriginY + $blockInfo->getY();
81
+ }
82
+
83
+ protected function render($tid,$jobQueue)
84
+ {
85
+ $model = Mage::getModel('auit_publicationbasic/template')->load($tid);
86
+ if ( $model->getId() )
87
+ {
88
+ $data = Mage::helper('core')->jsonDecode($model->getData('data'));
89
+
90
+ $this->_printMode='jobqueue';
91
+ if ( $jobQueue->getCatalogSkus() )
92
+ $data['preview_sku']=$jobQueue->getCatalogSkus();
93
+
94
+ $this->renderData($data,$jobQueue);
95
+
96
+ }
97
+ }
98
+ protected function renderData($data,$jobQueue=null)
99
+ {
100
+ $this->_jobQueueObj=$jobQueue;
101
+ $this->_backData=array();
102
+ $data['original_width']=$data['width'];
103
+ $data['original_height']=$data['height'];
104
+ $data['original_orientation']=$data['orientation'];
105
+
106
+ $sender = Mage::getModel('core/email_template');
107
+ $storeId = $data['preview_store'];
108
+ if ( $jobQueue && $jobQueue->getPrintStore() )
109
+ $storeId=$jobQueue->getPrintStore();
110
+ if ( !$storeId )
111
+ $storeId ='default';
112
+
113
+ try {
114
+ $sender->emulateDesign($storeId);
115
+ }
116
+ catch ( Exception $e )
117
+ {
118
+
119
+ }
120
+
121
+ $this->_Style = Mage::getModel('auit_publicationbasic/styles');
122
+ if ( $jobQueue && $jobQueue->getJobStyle() )
123
+ {
124
+ $data['preview_style']=$jobQueue->getJobStyle();
125
+
126
+ }
127
+ if ( isset($data['preview_style']) && $data['preview_style'])
128
+ {
129
+ $this->_Style->load($data['preview_style']);
130
+ }
131
+ if ( is_null($this->_pageNr))
132
+ $this->_pageNr=0;
133
+ $this->startRender($data);
134
+ $this->drawDataMain($data,$jobQueue);
135
+ $this->endRender($data);
136
+ }
137
+ protected function startRender($data)
138
+ {
139
+ }
140
+ protected function endRender($data)
141
+ {
142
+ }
143
+ protected function drawDataMain($data,$jobQueue)
144
+ {
145
+ $this->drawData($data,0,0,true);
146
+ }
147
+ protected function drawData($data,$oX,$oY,$isBasis=false,$productData=null)
148
+ {
149
+ // Original Document 1:1
150
+ array_push($this->_backData, array(
151
+ '_ProductData'=>$this->_ProductData,
152
+ '_ProductArray'=>$this->_ProductArray,
153
+ '_OriginX'=>$this->_OriginX,
154
+ '_OriginY'=>$this->_OriginY
155
+ ));
156
+ $this->_OriginX=$oX;
157
+ $this->_OriginY=$oY;
158
+
159
+ $type = (int)@$data['object']['type'];
160
+ if ( !$productData )
161
+ $objectDatas=Mage::helper('auit_publicationbasic')->getObjectData($data['preview_sku'],$type,
162
+ Mage::app()->getStore()->getId(),true,$this->_printMode!='preview',$this->_printMode);
163
+ else
164
+ $objectDatas=array($productData);
165
+ //if ( !is_array($objectDatas) )
166
+ //$objectDatas=array($objectDatas);
167
+
168
+ $this->_ProductArray = $objectDatas;
169
+ while ( $objData = array_shift($this->_ProductArray))
170
+ {
171
+ $this->_firstObject=true;
172
+ $this->_ProductData=$objData;
173
+ $this->_currentSpread=0;
174
+ if ( isset($data['spreads']) )
175
+ foreach ( $data['spreads'] as $spread )
176
+ {
177
+ $this->_currentSpread++;
178
+ if ( $this->_currentJobTemplate && $this->_currentJobTemplate->getUsespread()
179
+ && $this->_currentJobTemplate->getUsespread() != $this->_currentSpread)
180
+ continue;
181
+ if ( $isBasis )
182
+ $this->startSpread($data,$spread);
183
+ foreach ( $spread['pages'] as $page )
184
+ {
185
+ $this->startPage($data,$spread,$page);
186
+ $this->drawBoxes($spread['boxes']);
187
+ if ( $isBasis )
188
+ $this->_OriginX+=$data['original_width'];
189
+ $this->endPage($data,$spread,$page);
190
+ if ( !$isBasis )
191
+ break;
192
+ }
193
+ $this->endSpread($data,count($spread['pages']));
194
+ if ( !$isBasis )
195
+ break;
196
+ }
197
+ if ( $this->_printMode == 'preview' )
198
+ break;
199
+ }
200
+ $d = array_pop($this->_backData);
201
+ $this->_ProductData = $d['_ProductData'];
202
+ $this->_ProductArray= $d['_ProductArray'];
203
+ $this->_OriginX= $d['_OriginX'];
204
+ $this->_OriginY= $d['_OriginY'];
205
+ }
206
+ protected function drawBoxes($boxes)
207
+ {
208
+ foreach ( $boxes as $box )
209
+ {
210
+ $this->drawBox($box);
211
+ }
212
+ }
213
+ protected function startPage($data,$spread,$page)
214
+ {
215
+ $this->_pageNr++;
216
+ }
217
+ protected function endPage($data,$spread,$page)
218
+ {
219
+ }
220
+ protected function startSpread($data,$spread)
221
+ {
222
+ }
223
+ protected function endSpread($data,$spread)
224
+ {
225
+ }
226
+ protected function startRenderTemplate($blockInfo)
227
+ {
228
+ }
229
+ protected function endRenderTemplate($blockInfo)
230
+ {
231
+ }
232
+ protected function drawBackgroundBox($blockInfo,$bgcolor)
233
+ {
234
+ }
235
+ protected function drawBox($box)
236
+ {
237
+
238
+ $blockInfo = Mage::helper('auit_publicationbasic/style')->getStyleItem($box);
239
+ // Draw Background Box
240
+ if ( $blockInfo->getClass() && $this->_Style || $blockInfo->getStyleColourBackground())
241
+ {
242
+ if ( $blockInfo->getStyleColourBackground() )
243
+ $bgcolor = $blockInfo->getStyleColourBackground();
244
+ else
245
+ $bgcolor = $this->_Style->getComputedStyle($blockInfo->getClass(),'colour_background','');
246
+ if ( $bgcolor )
247
+ {
248
+ $this->drawBackgroundBox($blockInfo,$bgcolor);
249
+ }
250
+ }
251
+ switch ( $box['type'])
252
+ {
253
+ case 'p_img':
254
+ $this->drawImage($blockInfo);
255
+ break;
256
+ case 'p_bc':
257
+ $this->drawBarcode($blockInfo);
258
+ break;
259
+ case 'p_group':
260
+ $this->renderGroup($blockInfo);
261
+ break;
262
+ case 'p_templ':
263
+ $this->renderTemplate($blockInfo);
264
+ break;
265
+ default:
266
+ $this->drawTextBox($this->getBoxText($blockInfo),$blockInfo);
267
+ break;
268
+ }
269
+ }
270
+ protected function renderChilds($blockInfo)
271
+ {
272
+ $xoff=$blockInfo->getX() ; $yoff=$blockInfo->getY();
273
+ foreach ( $blockInfo->getChilds() as $child )
274
+ {
275
+ $child['x'] += $xoff;
276
+ $child['y'] += $yoff;
277
+ $this->drawBox($child);
278
+ }
279
+ }
280
+ protected function renderGroup($blockInfo)
281
+ {
282
+ array_push($this->_backData, array(
283
+ '_ProductData'=>$this->_ProductData,
284
+ '_OriginX'=>$this->_OriginX,
285
+ '_OriginY'=>$this->_OriginY
286
+ ));
287
+
288
+ $sku = $blockInfo->getPOpt3();
289
+ if ( $sku != '*' )
290
+ {
291
+ if ($sku && $this->_printMode == 'preview' && !$this->_currentJobTemplate)
292
+ {
293
+ $objectDatas=Mage::helper('auit_publicationbasic')->getObjectData($sku,AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT,
294
+ Mage::app()->getStore()->getId(),true,$this->_printMode!='preview',$this->_printMode);
295
+ $this->_ProductData = array_shift($objectDatas);
296
+ }else if ( $this->_currentJobTemplate){
297
+ if ( !$this->_firstObject)
298
+ $this->_ProductData = array_shift($this->_ProductArray);
299
+ $this->_firstObject=false;
300
+ }
301
+ }
302
+ if ( $this->_ProductData)
303
+ {
304
+ $this->renderChilds($blockInfo);
305
+ }
306
+
307
+ $d = array_pop($this->_backData);
308
+ $this->_ProductData = $d['_ProductData'];
309
+ $this->_OriginX= $d['_OriginX'];
310
+ $this->_OriginY= $d['_OriginY'];
311
+
312
+ }
313
+ protected function renderTemplate($blockInfo)
314
+ {
315
+ $tid = $blockInfo->getPOpt();
316
+ $model = Mage::getModel('auit_publicationbasic/template')->load($tid);
317
+ if ( $model->getId() )
318
+ {
319
+ $obj = Mage::helper('auit_publicationbasic')->cleanLayoutData($model->getData('data'));
320
+ $productData = null;
321
+ $sku = $blockInfo->getPOpt3();
322
+ if ( $sku == '*' )
323
+ $productData = $this->_ProductData;
324
+
325
+ if ( $sku )
326
+ $obj['preview_sku']=$sku;
327
+
328
+
329
+ $this->startRenderTemplate($blockInfo);
330
+ $this->drawData($obj,$this->xPOS($blockInfo),$this->yPOS($blockInfo),false,$productData);
331
+ $this->endRenderTemplate($blockInfo);
332
+ }
333
+ }
334
+ protected function format($value,$fkt)
335
+ {
336
+ if ( $fkt == 'AL.digits(value)' )
337
+ {
338
+ return (int)$value;
339
+ }else if ( $fkt == 'AL.decimals(value,2)' )
340
+ {
341
+ $dec = 2;
342
+ if ( !$dec ) $dec=2;
343
+ $f = explode('.',$value);
344
+ if ( count($f) > 1 )
345
+ {
346
+ $f = $f[1];
347
+ $f = substr($f,0,$dec+1);
348
+ while ( strlen($f) < ($dec+1) )
349
+ $f+='0';
350
+ $f = ((int)$f) / 10;
351
+ $f = round($f);
352
+ return $f;
353
+ }
354
+ return '00';
355
+ }
356
+ return $value;
357
+ }
358
+ protected function getBoxText($blockInfo)
359
+ {
360
+ switch ( $blockInfo->getType() )
361
+ {
362
+ case 'p_attr':
363
+ return $this->getAttribute($blockInfo->getPOpt());
364
+ break;
365
+ case 'p_price':
366
+ $txt = $this->getAttribute($blockInfo->getPOpt());
367
+ if ( $blockInfo->getPOpt2())
368
+ {
369
+ $txt = $this->format($txt,$blockInfo->getPOpt2());
370
+ }
371
+ return $txt;
372
+ break;
373
+ case 'p_block':
374
+ return $this->_getProcessor()->filter("{{block id='".$blockInfo->getPOpt()."'}}");
375
+ break;
376
+ case 'p_gen':
377
+ $data = Mage::helper('auit_publicationbasic')->getGeneratorHTML($blockInfo->getPOpt3(),$blockInfo->getClass(),$blockInfo->getPOpt(),$this->getAttribute('sku'));
378
+ if ( isset($data['childs']) && count($data['childs']) )
379
+ {
380
+ $xoff=$blockInfo->getX() ; $yoff=$blockInfo->getY();
381
+ foreach ( $data['childs'] as $child )
382
+ {
383
+ $child['x'] += $xoff;
384
+ $child['y'] += $yoff;
385
+ $this->drawBox($child);
386
+ }
387
+ return '';
388
+ }
389
+ return $data['html'];
390
+ break;
391
+ case 'p_free':
392
+ $text = $this->_getJobQueueVar($blockInfo,'p_opt');
393
+ if ( $text )
394
+ return $this->_getProcessor()->filter($text);
395
+ //if ( $blockInfo->getPOpt() )
396
+ //return $this->_getProcessor()->filter($blockInfo->getPOpt());
397
+ return '';
398
+ break;
399
+ default:
400
+ Mage::log("getBoxText: unknown :".$blockInfo->getType());
401
+ break;
402
+ }
403
+ return $blockInfo->getType().' not implemented';
404
+ }
405
+
406
+ protected function drawTextBox($txt,$blockInfo)
407
+ {
408
+ if ( !($txt=trim($txt)) )
409
+ return;
410
+ }
411
+ protected function drawImage($blockInfo)
412
+ {
413
+ if ( $blockInfo->getPOpt() == 'media_static' )
414
+ {
415
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
416
+ $src = $this->_getJobQueueVar($blockInfo,'src');
417
+ $file = $helper->convertIdToPath($src,false);
418
+ }else {
419
+ $file ='';
420
+ if ( trim($blockInfo->getPOpt()) )
421
+ $file = Mage::getBaseDir('media') . DS.'catalog'.DS.'product'.DS.$this->getAttribute(trim($blockInfo->getPOpt()));
422
+ }
423
+ $this->drawImageFile($blockInfo,$file);
424
+ }
425
+ protected function drawImageFile($blockInfo,$file)
426
+ {
427
+
428
+ }
429
+ protected function calcImagePosition($blockInfo,$file,$pdfDpi=72)
430
+ {
431
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
432
+ $imgDpi = $helper->getResolution($file);
433
+
434
+ $x=$this->xPOS($blockInfo);
435
+ $y=$this->yPOS($blockInfo);
436
+ $w=$blockInfo->getW();
437
+ $h=$blockInfo->getH();
438
+
439
+ $xoff = $blockInfo->getXoff();
440
+ $yoff = $blockInfo->getYoff();
441
+ $imsize = false;
442
+ if ( strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'svg')
443
+ {
444
+ if (extension_loaded('imagick')) { // ImageMagick extension
445
+ $img = new Imagick($file);
446
+ $imsize = array();
447
+ $imsize[] = $img->getimagewidth();
448
+ $imsize[] = $img->getImageHeight();
449
+ }
450
+ }
451
+ else
452
+ $imsize = @getimagesize($file);
453
+ if ( $imsize !== false)
454
+ {
455
+ $iw=0; $ih=0;
456
+ $resize=false;
457
+ $scale = $blockInfo->getScale()?$blockInfo->getScale():100;
458
+ $scale /= 100;
459
+
460
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
461
+ $imgDpi =72;
462
+ if ( !$this->_mainData || ((int)$this->_mainData['version']) < 2)
463
+ $imgDpi = $helper->getResolution($file);
464
+
465
+ $f = $pdfDpi / ($imgDpi?$imgDpi:$pdfDpi);
466
+
467
+ list($pixw, $pixh) = $imsize;
468
+
469
+ if ( $blockInfo->getPOpt2() == 'fit2box' || $blockInfo->getPOpt2() == 'fill2box' )
470
+ $scale =1;
471
+ if ( $blockInfo->getType() == 'p_bc')
472
+ {
473
+ $imageMM = ($pixw*$f*25.4) / $pdfDpi;
474
+ $scale = floatval($w) / floatval($imageMM);
475
+ }
476
+ $iw=$pixw * $scale;
477
+ $ih=$pixh * $scale;
478
+ $iw= $iw * $f;
479
+ $ih= $ih * $f;
480
+
481
+ $iw= ($iw*25.4) / $pdfDpi;
482
+ $ih= ($ih*25.4) / $pdfDpi;
483
+
484
+
485
+ if ( $blockInfo->getPOpt2() == 'fit2box' || $blockInfo->getPOpt2() == 'fill2box' )
486
+ {
487
+ $boxW = $w;
488
+ $boxH = $h;
489
+ $iRatio=1;
490
+ if ($iw > $boxW || $ih > $boxH)
491
+ {
492
+ $iRatio = $iw / $ih;
493
+ $newRatio = $boxW / $boxH;
494
+ $resizeRatio=0;
495
+ if ($iRatio > $newRatio)
496
+ {
497
+ $resizeRatio = $boxW / $iw;
498
+ $newWidth = $iw * $resizeRatio;
499
+ $newHeight = $newWidth / $iRatio;
500
+ }
501
+ else
502
+ {
503
+ $resizeRatio = $boxH / $ih;
504
+ $newHeight = $ih * $resizeRatio;
505
+ $newWidth = $newHeight * $iRatio;
506
+ }
507
+ }
508
+ else
509
+ {
510
+ $newWidth = $iw;
511
+ $newHeight = $ih;
512
+ }
513
+ $l = ($boxW-$newWidth)/2;
514
+ $t = ($boxH-$newHeight)/2;
515
+ if ( $blockInfo->getPOpt2() == 'fill2box' )
516
+ {
517
+ if ( $l > 0 )
518
+ {
519
+ $newWidth = $boxW;
520
+ $l=0;
521
+ $newHeight = $boxW / $iRatio;
522
+ $t = ($boxH-$newHeight)/2;
523
+ }else {
524
+ $l=0;$t=0;
525
+ $newHeight = $boxH;
526
+ $newWidth = $newHeight * $iRatio;
527
+ $newWidth = $newWidth;
528
+ $l = ($boxW-$newWidth)/2;
529
+ }
530
+ }
531
+ $xoff=$l;
532
+ $yoff=$t;
533
+ $iw=$newWidth;
534
+ $ih=$newHeight;
535
+ }
536
+ return array('x'=> $xoff,
537
+ 'y'=>$yoff,
538
+ 'w'=>$iw,
539
+ 'h'=>$ih);
540
+ }
541
+ return false;
542
+ }
543
+ protected function getBarcodeImg($blockInfo)
544
+ {
545
+ $logo = trim($blockInfo->getSrc());
546
+ if ( $logo ){
547
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
548
+ $logo = $helper->convertIdToPath($logo,false);
549
+ }
550
+ $lbc = $blockInfo->getPOpt();
551
+ $opt = 'bc_url_website';
552
+ if ( $blockInfo->getPOpt2() )
553
+ $opt = $blockInfo->getPOpt2();
554
+
555
+ if ( $blockInfo->getPOpt2() == 'bc_free_text' )
556
+ $code = $blockInfo->getPOpt3();
557
+ else
558
+ $code = $this->getAttribute($blockInfo->getPOpt2());
559
+
560
+ $class = $blockInfo->getBoxClass();
561
+ $color = 'black';
562
+ if ( $this->_Style )
563
+ $color = $this->_Style->getComputedStyle($class,'colour',$color);
564
+ $key = $code.':'.$lbc.':'.$logo.':'.$color;
565
+ if ( isset($this->_barcodes[$key]) )
566
+ {
567
+ return $this->_barcodes[$key];
568
+ }
569
+ require_once 'snm3/auit/barcode.php';
570
+
571
+ $b1d=array('EAN13','C128','C128A','C128B','C128C','C39');
572
+
573
+ if ( in_array($lbc,$b1d ) )
574
+ {
575
+ $barcode = new AuIt_Barcode1D($code, $lbc);
576
+ $w=$blockInfo->getW();
577
+ $h=$blockInfo->getH();
578
+ $w=AuIt_PublicationBasic_Block_Frame::MM2Px($w);
579
+ $h=AuIt_PublicationBasic_Block_Frame::MM2Px($h);
580
+ $fileStream = $barcode->getBarcodeAsPng($logo,$w, $h, $color);
581
+ }else {
582
+ $barcode = new AuIt_Barcode($code, $lbc);
583
+ $fileStream = $barcode->getBarcodeWithLogo($logo,10, 10, $color);
584
+ }
585
+ if ( $fileStream !== false )
586
+ {
587
+ $file = tempnam(Mage::getConfig()->getOptions()->getTmpDir(), 'img_');
588
+ $fp = fopen($file.'.png', 'w');
589
+ fwrite($fp, $fileStream);
590
+ fclose($fp);
591
+ unset($fileStream);
592
+ //$this->drawImageFile($box,'test.png');
593
+ //$this->drawImageFile($blockInfo,$file.'.png');
594
+ @unlink($file);
595
+ // @unlink($file.'.png');
596
+ $this->_barcodes[$key]=$file.'.png';
597
+ return $file.'.png';
598
+ }
599
+ return false;
600
+
601
+ }
602
+ protected function drawBarcode($blockInfo)
603
+ {
604
+ if ( ($fn=$this->getBarcodeImg($blockInfo)) )
605
+ $this->drawImageFile($blockInfo,$fn);
606
+ }
607
+ }
app/code/local/AuIt/PublicationBasic/Model/Renderer/Pdf.php ADDED
@@ -0,0 +1,824 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Renderer_Pdf extends AuIt_PublicationBasic_Model_Renderer_Abstract
3
+ {
4
+ protected $_printMode;
5
+ protected $_bShowCropMarks;
6
+ protected $_tcpdf;
7
+ protected $_useBleed=false;
8
+ protected $_streams=array();
9
+ protected $_defaultCss=null;
10
+ protected function getCropSpace()
11
+ {
12
+ return 10;
13
+ }
14
+ protected function getBleedSpace()
15
+ {
16
+ return 2;
17
+ }
18
+ protected function startPage($data,$spread,$page)
19
+ {
20
+ $this->_pageNr++;
21
+ }
22
+ protected function endPage($data,$spread,$page)
23
+ {
24
+
25
+ }
26
+ protected function startSpread($data,$spread)
27
+ {
28
+
29
+ $orientation= (isset($data['orientation']) && $data['orientation'] == 'p')?'P':'L';
30
+ $spreadW = $data['width'] * ($spread?count($spread['pages']):1);
31
+ $spreadH = $data['height'];
32
+ $format = array('MediaBox'=>array('llx'=>0,'lly'=>0,'urx'=>$spreadW,'ury'=>$spreadH));
33
+
34
+ $this->_OriginX=0; $this->_OriginY=0;
35
+ if ( $this->_useBleed )
36
+ {
37
+ $bo = $this->getBleedSpace();
38
+ $format['BleedBox']=array('llx'=>$bo,'lly'=>$bo,
39
+ 'urx'=>$data['width']-$bo,
40
+ 'ury'=>$data['height']-$bo);
41
+ $format['TrimBox']=array('llx'=>$bo,'lly'=>$bo,
42
+ 'urx'=>$data['width']-$bo,
43
+ 'ury'=>$data['height']-$bo);
44
+ $this->_OriginX=$this->getBleedSpace();
45
+ $this->_OriginY=$this->getBleedSpace();
46
+ }
47
+ $this->_tcpdf->AddPage($orientation,$format);
48
+ }
49
+
50
+ protected function endSpread($data,$spread){
51
+
52
+ }
53
+ protected function renderData($data,$jobQueue=null)
54
+ {
55
+ if ( $jobQueue )
56
+ {
57
+ $this->_useBleed = $jobQueue->getUseBleed();
58
+ if ($jobQueue->getUseBleed() )
59
+ {
60
+ $data['width']+= ($this->getBleedSpace()*2);
61
+ $data['height']+=($this->getBleedSpace()*2);
62
+ }
63
+ }
64
+ return parent::renderData($data,$jobQueue);
65
+ }
66
+
67
+ protected function drawDataMain($data,$jobQueue)
68
+ {
69
+ $this->_mainData = $data;
70
+ if ( $jobQueue && $jobQueue->getUseDocSize() == 2 ) // Eigenes Format
71
+ {
72
+ $this->drawDocMode2($jobQueue,$data);
73
+ return;
74
+ }
75
+
76
+ parent::drawDataMain($data,$jobQueue);
77
+ }
78
+
79
+ public function runJob($jobQueue)
80
+ {
81
+ $this->_printMode='jobqueue';
82
+ if ( $jobQueue->getVersion() >= 2 )
83
+ {
84
+ $this->renderJob2($jobQueue);
85
+ }else {
86
+ $skus = $jobQueue->getCatalogSkus();
87
+ $tid = $jobQueue->getTemplate();
88
+ $this->render($tid,$jobQueue);
89
+ }
90
+ $filename = $jobQueue->getJobFilePath().DS.$jobQueue->getFilename();
91
+ if ( $this->_tcpdf)
92
+ $this->_tcpdf->Output($filename,'F');
93
+ $this->_tcpdf=null;
94
+ }
95
+
96
+ protected function renderJob2($jobQueue)
97
+ {
98
+ foreach ( $jobQueue->getTemplates() as $template )
99
+ {
100
+ $template = new Varien_Object($template);
101
+ $this->_currentJobTemplate=$template;
102
+ $model = Mage::getModel('auit_publicationbasic/template')->load($template->getTemplate());
103
+ if ( $model->getId() )
104
+ {
105
+ $data = Mage::helper('core')->jsonDecode($model->getData('data'));
106
+ $data['preview_sku']=$template->getSkus();
107
+ $this->renderData($data,$jobQueue);
108
+ }
109
+ }
110
+
111
+ $this->_currentJobTemplate=null;
112
+ }
113
+ public function getPdfFromJobData($printMode,$jobQueue)
114
+ {
115
+ $zendPdf = new Zend_Pdf();
116
+ try {
117
+ $this->_printMode=$printMode;
118
+ $spread =0;
119
+ $this->renderJob2($jobQueue);
120
+ $this->_streams = array();
121
+ if ( $this->_tcpdf )
122
+ $this->_streams[]=$this->_tcpdf->Output('', 'S');
123
+ $this->_tcpdf=null;
124
+ $factory = Zend_Pdf_ElementFactory::createFactory(1);
125
+ foreach ( $this->_streams as $stream )
126
+ {
127
+ $pdf = Zend_Pdf::parse($stream);
128
+ foreach ($pdf->pages as $idx => $page)
129
+ {
130
+ $processed = array();
131
+ if ( $spread > 0 && $spread <= count($pdf->pages) )
132
+ {
133
+
134
+ if ( $spread == ($idx+1) )
135
+ $zendPdf->pages[] = $page->clonePage($factory, $processed);
136
+ }
137
+ else
138
+ $zendPdf->pages[] = $page->clonePage($factory, $processed);
139
+ }
140
+ }
141
+ $this->_streams=array();
142
+ }
143
+ catch ( Exception $e )
144
+ {
145
+ throw $e;
146
+ }
147
+ return $zendPdf;
148
+ }
149
+ /**
150
+ * Direct Preview
151
+ * @param unknown $printMode
152
+ * @param unknown $jsonData
153
+ * @param number $storeId
154
+ * @throws Exception
155
+ * @return Zend_Pdf
156
+ */
157
+ public function getPdfFromData($printMode,$jsonData,$storeId=0,$spread=0)
158
+ {
159
+ $zendPdf = new Zend_Pdf();
160
+ try {
161
+ $this->_printMode=$printMode;
162
+ if ( is_array($jsonData))
163
+ $data = $jsonData;
164
+ else
165
+ $data = Mage::helper('core')->jsonDecode($jsonData);
166
+ $this->renderData($data,null);
167
+
168
+ $this->_streams = array();
169
+ $this->_streams[]=$this->_tcpdf->Output('', 'S');
170
+ $this->_tcpdf=null;
171
+ $factory = Zend_Pdf_ElementFactory::createFactory(1);
172
+
173
+
174
+ foreach ( $this->_streams as $stream )
175
+ {
176
+ $pdf = Zend_Pdf::parse($stream);
177
+
178
+ foreach ($pdf->pages as $idx => $page)
179
+ {
180
+ $processed = array();
181
+ if ( $spread > 0 && $spread <= count($pdf->pages) )
182
+ {
183
+
184
+ if ( $spread == ($idx+1) )
185
+ $zendPdf->pages[] = $page->clonePage($factory, $processed);
186
+ }
187
+ else
188
+ $zendPdf->pages[] = $page->clonePage($factory, $processed);
189
+ //$zendPdf->pages[] = clone ($page);//new Zend_Pdf_Page();
190
+ //$zendPdf->
191
+ //$zendPdf->pages[] = new Zend_Pdf_Page($page);
192
+ }
193
+ }
194
+ $this->_streams=array();
195
+ }
196
+ catch ( Exception $e )
197
+ {
198
+ //$this->_afterGetPdf();
199
+ throw $e;
200
+ }
201
+ return $zendPdf;
202
+ }
203
+ protected function startRender($data)
204
+ {
205
+ require_once 'snm3/auit/pdf.php';
206
+ Mage::getSingleton('core/translate')->setTranslateInline(false);
207
+ if ( is_null($this->_tcpdf))
208
+ {
209
+ $this->_tcpdf = new AuIt_Pdf2($this);
210
+ $this->_tcpdf->setFontSubsetting(false);
211
+ }
212
+ }
213
+ protected function endRender($data)
214
+ {
215
+ Mage::getSingleton('core/translate')->setTranslateInline(true);
216
+
217
+ }
218
+ protected function startRenderTemplate($blockInfo)
219
+ {
220
+ $this->_tcpdf->StartTransform();
221
+ $this->_tcpdf->Rect($this->xPOS($blockInfo),$this->yPOS($blockInfo), $blockInfo->getW(), $blockInfo->getH(), 'CNZ');
222
+ }
223
+ protected function endRenderTemplate($blockInfo)
224
+ {
225
+ $this->_tcpdf->StopTransform();
226
+ }
227
+ protected function addRotate($blockInfo)
228
+ {
229
+ if ( floatval($blockInfo->getR()) )
230
+ {
231
+ $r = floatval($blockInfo->getR())*-1;
232
+ $this->_tcpdf->Rotate($r,$this->xPOS($blockInfo)+$blockInfo->getW()/2,$this->yPOS($blockInfo)+$blockInfo->getH()/2);
233
+ }
234
+ if ( $blockInfo->getPClipuse() && $blockInfo->getPClip() )
235
+ {
236
+ $path = Mage::helper('auit_publicationbasic/svg')->getPath($blockInfo->getPClip());
237
+ if ( $path && $path['path'] && !isset($path['default']))
238
+ {
239
+ $r = min(array($blockInfo->getW()/6,$blockInfo->getH()/6));
240
+ $sf = 1;
241
+ $size = $size1 =$path['size'];
242
+ $off = $size*0.05;
243
+ $size += $off*2;
244
+ $bs = min(array((float)$blockInfo->getW(),(float)$blockInfo->getH()));
245
+ $bs = $this->_tcpdf->getHTMLUnitToUnits($bs,1, 'mm');
246
+ $size = $this->_tcpdf->getHTMLUnitToUnits($size,1, 'px');
247
+ $sf = 1 / ( $size/$bs );
248
+ $x = $this->xPOS($blockInfo);
249
+ $y = $this->yPOS($blockInfo);
250
+ $offX=$offY=0;
251
+ if ( (float)$blockInfo->getW() < (float)$blockInfo->getH() )
252
+ {
253
+ $offY = ($blockInfo->getH()- ($size*$sf))/2;
254
+ }
255
+ else {
256
+ $offX = ($blockInfo->getW()- ($size*$sf))/2;
257
+ }
258
+ $pxUnit = $this->_tcpdf->getHTMLUnitToUnits(1,1, 'px');
259
+ $off = $sf * $off * $pxUnit;
260
+ //Mage::log("W:{$bs} S:{$size} F:{$sf} X:{$x} Y:{$y} offX:{$offX} offY:{$offY} mmUNit:{$mmUNit} pxUnit:{$pxUnit} off:{$off}");
261
+ $x+=$offX + $off;$y+=$offY + $off;
262
+ $this->_tcpdf->SVGPath2($sf,$x,$y,$path['path'], 'CNZ');
263
+ }
264
+ }
265
+ }
266
+ protected function drawBackgroundBox($blockInfo,$bgcolor)
267
+ {
268
+ $pdf = $this->_tcpdf;
269
+ $bgcolor = $this->_Style->ColorToArray($bgcolor);
270
+ $pdf->StartTransform();
271
+ if ( isset($bgcolor[3]) )
272
+ $pdf->SetAlpha($bgcolor[3]);
273
+ $pdf->SetFillColor($bgcolor[0], $bgcolor[1], $bgcolor[2]);
274
+ //$pdf->Rect($this->xPOS($blockInfo), $y=$blockInfo->getY(), $blockInfo->getW(), $blockInfo->getH(), 'DF');
275
+ $this->addRotate($blockInfo);
276
+ $pdf->Rect($this->xPOS($blockInfo),$this->yPOS($blockInfo), $blockInfo->getW(), $blockInfo->getH(),'F');
277
+ $pdf->StopTransform();
278
+ }
279
+ protected function resetDefaultCSS()
280
+ {
281
+ $this->_defaultCss ='';
282
+ }
283
+ protected function drawTextBox($txt,$blockInfo)
284
+ {
285
+ if ( !($txt=trim($txt)) )
286
+ return;
287
+ if ( $blockInfo->getTexttransform() )
288
+ {
289
+ switch ($blockInfo->getTexttransform() )
290
+ {
291
+ case 'uppercase':
292
+ $txt = strtoupper($txt);
293
+ break;
294
+ case 'lowercase':
295
+ $txt = strtolower($txt);
296
+ break;
297
+ }
298
+ }
299
+
300
+ $pdf = $this->_tcpdf;
301
+ //static $defaultCss ='';
302
+ if (!$this->_defaultCss )
303
+ {
304
+ $file = Mage::getModuleDir('data', 'AuIt_PublicationBasic') . DS . 'css'.DS.'default.css';
305
+ if ( file_exists($file) )
306
+ $this->_defaultCss=file_get_contents($file);
307
+ $this->_defaultCss = str_replace('#auit-layout-frame','',$this->_defaultCss);
308
+
309
+ $xx = $this->_Style->getCSS($pdf);
310
+ $xx = str_replace('.auit-layout-text-frame','',$xx);
311
+
312
+ $pdf->setGlobalCSS($xx."\n".$this->_defaultCss);
313
+
314
+ }
315
+ $cssInfo = $this->_Style->getBoxStyle($pdf,$blockInfo);
316
+ $cssObj=$cssInfo['cssObj'];
317
+ //$pdf->setGlobalCSS($cssInfo['css']."\n".$this->_defaultCss);
318
+ $html='';
319
+ $class = $blockInfo->getClass() ? $blockInfo->getClass() : 'bl-'.$blockInfo->getUid();
320
+ $html .= '<style>';
321
+ $html .= str_replace('.auit-layout-text-frame','',$cssInfo['css']);
322
+ $html .= '</style>';
323
+
324
+ //style="background-color:transparent"
325
+ $html .= '<div class="auit-layout-pdf-box auit-layout-text-frame '.$class.'" >';
326
+ $html .= $pdf->cleanHTML($txt);
327
+ $html .='</div>';
328
+
329
+ //$pdf->setCellPaddings('10mm', 20, '10mm', '10mm');
330
+ $pl = ( isset($cssObj['left_indent']) && $cssObj['left_indent'] )?$cssObj['left_indent']:0;
331
+ $pr = ( isset($cssObj['right_indent']) && $cssObj['right_indent'] )?$cssObj['right_indent']:0;
332
+ $pt = ( isset($cssObj['space_before']) && $cssObj['space_before'] )?$cssObj['space_before']:0;
333
+ $pb = ( isset($cssObj['space_after']) && $cssObj['space_after'] )?$cssObj['space_after']:0;
334
+ $pdf->setCellPaddings(0,0, 0, 0);
335
+ switch ( $blockInfo->getHalign() )
336
+ {
337
+ case 'left':
338
+ $align='L';
339
+ break;
340
+ case 'right':
341
+ $align='R';
342
+ break;
343
+ case 'center':
344
+ $align='C';
345
+ break;
346
+ case 'justify':
347
+ $align='J';
348
+ break;
349
+ default:
350
+ $align='L';
351
+ break;
352
+ }
353
+ $valign=$blockInfo->getValign();
354
+ // $pdf->setListIndentWidth($width);
355
+
356
+ //$pdf->setListIndentWidth($pdf->GetStringWidth('00'));
357
+ /*
358
+ $tagvs = array(
359
+ 'p' => array(0 => array('h' => 0, 'n' => 0), 1 => array('h' => 0, 'n' => 0)),
360
+ 'div' => array(0 => array('h' => 0, 'n' => 0), 1 => array('h' => 0, 'n' => 0))
361
+ );
362
+ $pdf->setHtmlVSpace($tagvs);
363
+ */
364
+ $pdf->StartTransform();
365
+
366
+ $this->addRotate($blockInfo);
367
+
368
+ $pdf->MultiCellStart($blockInfo->getW() -($pl+$pr), $blockInfo->getH() - ($pt+ $pb),
369
+ $html,
370
+ $border=0,
371
+ $align,
372
+ $fill=false,
373
+ $ln=0,
374
+ $x=$this->xPOS($blockInfo) + $pl,
375
+ $y=$this->yPOS($blockInfo) + $pt,
376
+ $reseth=true,
377
+ $stretch=0,
378
+ $ishtml=true,
379
+ $autopadding=false,
380
+ $blockInfo->getH()- ($pt+ $pb),
381
+ $valign,
382
+ $fitcell=false,
383
+ $blockInfo->getBoxtextoption());
384
+ $pdf->StopTransform();
385
+ // $pdf->resetColumns();
386
+ //$this->SetAutoPageBreak($page_break_mode, $page_break_margin);
387
+ //CEO
388
+ //return $this->MultiCell($w, $h, $html, $border, $align, $fill, $ln, $x, $y, $reseth, 0, true, $autopadding, 0, 'T', false);
389
+ //$pdf->writeHTMLCell($blockInfo->getW(), $blockInfo->getH(), $this->xPOS($blockInfo), $this->yPOS($blockInfo), $html);
390
+ //public function writeHTMLCell($w, $h, $x, $y, $html='', $border=0, $ln=0, $fill=false, $reseth=true, $align='', $autopadding=true) {
391
+ }
392
+
393
+
394
+ protected function drawImageFile($blockInfo,$file)
395
+ {
396
+ $pdf = $this->_tcpdf;
397
+ $x=$this->xPOS($blockInfo) ; $y=$this->yPOS($blockInfo);
398
+ $w=$blockInfo->getW(); $h=$blockInfo->getH();
399
+
400
+ $oldScale = $pdf->getImageScale();
401
+
402
+ $xoff = $blockInfo->getXoff();
403
+ $yoff = $blockInfo->getYoff();
404
+ if ( is_file($file) && is_readable($file) )
405
+ {
406
+ //Mage::log("drawFile: $file : ".pathinfo($file, PATHINFO_EXTENSION));
407
+ $oldBreak = $pdf->getAutoPageBreak();
408
+ $pdf->SetAutoPageBreak(false);
409
+
410
+ $pdf->StartTransform();
411
+ $this->addRotate($blockInfo);
412
+ // Draw clipping rectangle to match html cell.
413
+ $pdf->Rect($x, $y, $w, $h, 'CNZ');
414
+ $iw=0; $ih=0;
415
+ $resize=false;
416
+ $scale = $blockInfo->getScale()?$blockInfo->getScale():100;
417
+ $scale /= 100;
418
+
419
+ //$pdf->setImageScale($scale);
420
+ if ( 0 && strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'svg')
421
+ {
422
+ if ( $blockInfo->getPOpt2() == 'fit2box' || $blockInfo->getPOpt2() == 'fill2box' )
423
+ $scale =1;
424
+ $imsize = $pdf->getimagesizeSVG($file);
425
+
426
+ $scale = -1;
427
+ $pdf->ImageSVG($file,
428
+ $x + $xoff,
429
+ $y + $yoff,
430
+ $w,$h,
431
+ $link='',
432
+ $align='',
433
+ $palign='',
434
+ $border=0,
435
+ $fitonpage=true,
436
+ $mainscale=$scale
437
+ );
438
+
439
+ }else {
440
+ if ( strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'svg')
441
+ $imsize = $pdf->getimagesizeSVG($file);
442
+ else
443
+ $imsize = @getimagesize($file);
444
+ if ( $imsize !== false)
445
+ {
446
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
447
+ $imgDpi =72;
448
+ if ( !$this->_mainData || ((int)$this->_mainData['version']) < 2)
449
+ $imgDpi = $helper->getResolution($file);
450
+
451
+ $pdfDpi = 72;
452
+ if ( strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'svg')
453
+ {
454
+ if ( $blockInfo->getPOpt2() == 'fit2box' || $blockInfo->getPOpt2() == 'fill2box' )
455
+ $pdfDpi = 96;
456
+ else
457
+ $pdfDpi = 153;
458
+ }
459
+ $f = $pdfDpi / ($imgDpi?$imgDpi:$pdfDpi);
460
+
461
+
462
+ list($pixw, $pixh) = $imsize;
463
+ if ( $blockInfo->getPOpt2() == 'fit2box' || $blockInfo->getPOpt2() == 'fill2box' )
464
+ $scale =1;
465
+ if ( $blockInfo->getType() == 'p_bc')
466
+ {
467
+ $imageMM = $pdf->pixelsToUnits($pixw*$f);
468
+ $scale = floatval($w) / floatval($imageMM);
469
+ }
470
+ $iw=$pixw * $scale;
471
+ $ih=$pixh * $scale;
472
+ $iw= $iw * $f;
473
+ $ih= $ih * $f;
474
+
475
+ $iw=$pdf->pixelsToUnits($iw);
476
+ $ih=$pdf->pixelsToUnits($ih);
477
+
478
+ if ( 1 )
479
+ if ( $blockInfo->getPOpt2() == 'fit2box' || $blockInfo->getPOpt2() == 'fill2box' )
480
+ {
481
+ $boxW = $w;
482
+ $boxH = $h;
483
+ $iRatio=1;
484
+ if ($iw > $boxW || $ih > $boxH)
485
+ {
486
+ $iRatio = $iw / $ih;
487
+ $newRatio = $boxW / $boxH;
488
+ $resizeRatio=0;
489
+ if ($iRatio > $newRatio)
490
+ {
491
+ $resizeRatio = $boxW / $iw;
492
+ $newWidth = $iw * $resizeRatio;
493
+ $newHeight = $newWidth / $iRatio;
494
+ }
495
+ else
496
+ {
497
+ $resizeRatio = $boxH / $ih;
498
+ $newHeight = $ih * $resizeRatio;
499
+ $newWidth = $newHeight * $iRatio;
500
+ }
501
+ }
502
+ else
503
+ {
504
+ $newWidth = $iw;
505
+ $newHeight = $ih;
506
+ }
507
+
508
+ $l = ($boxW-$newWidth)/2;
509
+ $t = ($boxH-$newHeight)/2;
510
+ if ( $blockInfo->getPOpt2() == 'fill2box' )
511
+ {
512
+ if ( $l > 0 )
513
+ {
514
+ $newWidth = $boxW;
515
+ $l=0;
516
+ $newHeight = $boxW / $iRatio;
517
+ $t = ($boxH-$newHeight)/2;
518
+ }else {
519
+ $l=0;$t=0;
520
+ $newHeight = $boxH;
521
+ $newWidth = $newHeight * $iRatio;
522
+ $newWidth = $newWidth;
523
+ $l = ($boxW-$newWidth)/2;
524
+ }
525
+ }
526
+
527
+ $xoff=$l;
528
+ $yoff=$t;
529
+ $iw=$newWidth;
530
+ //$ih=0;
531
+ // $iw=0;
532
+ $ih=$newHeight;
533
+ }
534
+ }
535
+ if ( strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'svg')
536
+ {
537
+ $pdf->ImageSVG($file,
538
+
539
+ $x + $xoff,
540
+ $y + $yoff,
541
+ $iw,$ih,
542
+ $link='',
543
+ $align='',
544
+ $palign='',
545
+ $border=0,
546
+ $fitonpage=false
547
+ );
548
+ Mage::log("$x + $xoff,$y + $yoff,$iw,$ih");
549
+ /*
550
+ $pdf->ImageSVG($file,
551
+ 0,
552
+ 0,
553
+ $w,$h,
554
+ $link='',
555
+ $align='',
556
+ $palign='',
557
+ $border=0,
558
+ $fitonpage=false
559
+ );
560
+ */
561
+ }
562
+ else
563
+ $pdf->Image($file,
564
+ $x + $xoff,
565
+ $y + $yoff,
566
+ $iw,$ih,
567
+ $type='',
568
+ $link='',
569
+ $align='',
570
+ $resize,
571
+ $dpi=300,
572
+ $palign='',
573
+ $ismask=false,
574
+ $imgmask=false,
575
+ $border=0,
576
+ $fitbox=false,
577
+ $hidden=false,
578
+ $fitonpage=false,
579
+ $alt=false,
580
+ $altimgs=array());
581
+ $pdf->SetAutoPageBreak($oldBreak);
582
+ }
583
+
584
+ //$pdf->setImageScale($oldScale);
585
+
586
+ $pdf->StopTransform();
587
+ }
588
+ // $pdf->Rect($x, $y, $w, $h);
589
+
590
+ }
591
+
592
+ /**
593
+ * Speacial groid meherer auf eine Seite
594
+ * @param unknown $pageObjs
595
+ * @param unknown $data
596
+ * @param unknown $PlaceM
597
+ * @param unknown $x
598
+ * @param unknown $y
599
+ * @param unknown $startX
600
+ * @param unknown $startY
601
+ * @param unknown $OW
602
+ * @param unknown $OH
603
+ * @param unknown $PH
604
+ * @param unknown $PW
605
+ */
606
+
607
+ protected function drawNextSpreads($pageObjs,$data,$PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW)
608
+ {
609
+ $cols = $this->_maxCols?$this->_maxCols:1;
610
+ $max = count($pageObjs);
611
+ $res=array();
612
+ for ( $i=0; $i < $max ; $i += $cols )
613
+ {
614
+ for ( $j= ($i+$cols-1); $j >= $i; $j-- )
615
+ {
616
+ if ( $j < $max)
617
+ {
618
+ $res[]=$pageObjs[$j];
619
+ }else
620
+ $res[]='d';
621
+ }
622
+ }
623
+ foreach ( $res as $objData )
624
+ {
625
+ if ( is_array($objData))
626
+ {
627
+ $this->_ProductData=$objData;
628
+ $spread = $data['spreads'][1];
629
+ foreach ( $spread['pages'] as $page )
630
+ {
631
+ if ( $this->_bShowCropMarks )
632
+ $this->showCropMarks($x,$y,$OW,$OH);
633
+ $this->_tcpdf->StartTransform();
634
+ $this->_tcpdf->Rect($x,$y, $OW, $OH, 'CNZ');
635
+ $this->_OriginX=$x;
636
+ $this->_OriginY=$y;
637
+ $this->drawBoxes($spread['boxes']);
638
+ $this->_tcpdf->StopTransform();
639
+
640
+ break;
641
+ }
642
+ }
643
+ $newPage = $this->calcNewPage($PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW);
644
+ }
645
+ $this->_ProductData=null;
646
+ }
647
+
648
+ protected function drawDocMode2($jobQueue,$data)
649
+ {
650
+ // Original Document auf gösseres Dokument
651
+ $ds = explode('#',$jobQueue->getUserPageSize());
652
+ $data['width']=$ds[1];
653
+ $data['height']=$ds[2];
654
+ $data['orientation']=$jobQueue->getUserPageOrientation();
655
+
656
+ $this->_bShowCropMarks=true;
657
+ $type = (int)@$data['object']['type'];
658
+
659
+ $PlaceM = $jobQueue->getPlacmentMethod();
660
+ $OW = $data['original_width'];
661
+ $OH = $data['original_height'];
662
+ $PW = $data['width'];
663
+ $PH = $data['height'];
664
+ if ( $jobQueue->getUserPageOrientation() == 'l' )
665
+ {
666
+ $PW = $data['height'];
667
+ $PH = $data['width'];
668
+ }
669
+
670
+ $startX=$startY=0;
671
+ if ( $this->_bShowCropMarks )
672
+ $startX=$startY= $this->getCropSpace();
673
+
674
+ $newPage=true;
675
+ $x=0;$y=0;
676
+ $pageObjs=array();
677
+ $objIdx = 0;
678
+
679
+
680
+
681
+ $x=0;$y=0;$startX=0;$startY=0;
682
+ if ( $this->_bShowCropMarks ){
683
+ $startX=$startY=$x=$y=$this->getCropSpace();
684
+ }
685
+ $this->_maxX=$this->_maxY=0;
686
+ $this->_maxCols=0;
687
+ $this->_cols=0;
688
+ while ( 1 )
689
+ {
690
+ $newPage = $this->calcNewPage($PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW);
691
+ if ( $newPage )
692
+ break;
693
+ }
694
+ if ( !$this->_maxX )
695
+ $this->_maxX=$OW+$startX*2;
696
+ if ( !$this->_maxY )
697
+ $this->_maxY=$OH+$startY*2;
698
+ $startX +=($PW - $this->_maxX)/2;
699
+ $startY +=($PH - $this->_maxY)/2;
700
+
701
+
702
+ $objectDatas = Mage::helper('auit_publicationbasic')->getObjectData($data['preview_sku'],$type,Mage::app()->getStore()->getId(),true,true);
703
+ $max = count($objectDatas);
704
+ //$max=20;
705
+
706
+ while ( $objIdx < $max )
707
+ {
708
+ // Mage::log("drawDocMode2: $objIdx");
709
+ $objData = $objectDatas[$objIdx];
710
+ $this->_ProductData=null;
711
+ foreach ( $data['spreads'] as $spread )
712
+ {
713
+ if ( $newPage )
714
+ {
715
+ $this->startSpread($data,$spread);
716
+ // $this->addPageDocMode($data,false,count($spread['pages']));
717
+
718
+ $this->_OriginX=$x=$startX ; $this->_OriginY=$y=$startY ;
719
+ if ( 1 )
720
+ if ( count($pageObjs) > 0 && count($data['spreads']) > 1 ){
721
+ $this->drawNextSpreads($pageObjs,$data,$PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW);
722
+ $pageObjs=array();
723
+ $this->startSpread($data,$spread);
724
+ //$this->addPageDocMode($data,false,count($spread['pages']));
725
+ $this->_OriginX=$x=$startX; $this->_OriginY=$y=$startY;
726
+ }
727
+ }
728
+ $this->_ProductData=$objData;
729
+ foreach ( $spread['pages'] as $page )
730
+ {
731
+ if ( $this->_bShowCropMarks )
732
+ $this->showCropMarks($x,$y,$OW,$OH);
733
+
734
+ $this->_tcpdf->StartTransform();
735
+ $this->_tcpdf->Rect($x,$y, $OW, $OH, 'CNZ');
736
+ $this->_OriginX=$x;
737
+ $this->_OriginY=$y;
738
+ $this->drawBoxes($spread['boxes']);
739
+ $this->_tcpdf->StopTransform();
740
+ //$x+=$data['original_width'];
741
+ break;
742
+ }
743
+ break;
744
+ }
745
+ $newPage = $this->calcNewPage($PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW);
746
+ $pageObjs[]=$objData;
747
+ $objIdx++;
748
+ }
749
+ if ( 1 )
750
+ if ( count($pageObjs) > 0 && count($data['spreads']) > 1 ){
751
+ //$this->addPageDocMode($data,false,count($spread['pages']));
752
+ $this->startSpread($data,$spread);
753
+ $this->_OriginX=$x=$startX; $this->_OriginY=$y=$startY;
754
+ $this->drawNextSpreads($pageObjs,$data,$PlaceM,$x,$y,$startX,$startY,$OW,$OH,$PH,$PW);
755
+ $pageObjs=array();
756
+ }
757
+ //Mage::log("drawDocMode2 end");
758
+
759
+ }
760
+
761
+ protected function showCropMarks($x,$y,$OW,$OH)
762
+ {
763
+ $space = $this->getCropSpace();
764
+ $startX4=$space/4;
765
+ $startY4=$space/4;
766
+ $startOX=$space/10;
767
+ $startOY=$space/10;
768
+
769
+ // Crop Marken
770
+ $cropStyle = array('width' => 0.001,'color' => array(0, 0, 0));
771
+ $this->_tcpdf->Line($x - $startX4 , $y, $x - $startX4-$startX4+$startOX, $y,$cropStyle);
772
+ $this->_tcpdf->Line($x, $y-$startY4, $x, $y-$startY4-$startY4+$startOY,$cropStyle);
773
+
774
+ $this->_tcpdf->Line($x + $OW + $startX4, $y, $x+$OW + $startX4+$startX4-$startOX, $y,$cropStyle);
775
+ $this->_tcpdf->Line($x + $OW, $y-$startY4, $x+$OW, $y-$startY4-$startY4+$startOY,$cropStyle);
776
+
777
+ $this->_tcpdf->Line($x + $OW + $startX4, $y+ $OH, $x+$OW + $startX4+$startX4-$startOX, $y+ $OH,$cropStyle);
778
+ $this->_tcpdf->Line($x + $OW, $y+$OH+$startY4, $x+$OW, $y+$OH+$startY4+$startY4-$startOY,$cropStyle);
779
+
780
+ $this->_tcpdf->Line($x - $startX4 , $y+ $OH, $x - $startX4-$startX4+$startOX, $y+ $OH,$cropStyle);
781
+ $this->_tcpdf->Line($x, $y+$OH+$startY4, $x, $y+$OH+$startY4+$startY4-$startOY,$cropStyle);
782
+ }
783
+ protected function calcNewPage($PlaceM,&$x,&$y,$startX,$startY,$OW,$OH,$PH,$PW)
784
+ {
785
+ $space =0;
786
+ if ( $this->_bShowCropMarks )
787
+ $space = $this->getCropSpace();
788
+
789
+ $newPage = false;
790
+ switch ( $PlaceM )
791
+ {
792
+ case 'grid':
793
+ $x += $space + $OW;
794
+ $this->_cols++;
795
+ if ( $this->_cols > $this->_maxCols)
796
+ $this->_maxCols=$this->_cols;
797
+ if ( $x > $this->_maxX)
798
+ $this->_maxX=$x;
799
+ if ( $x >= ($PW - ($space + $OW)) )
800
+ {
801
+ $this->_cols=0;
802
+ $x=$startX;
803
+ $y += $OH +$space;
804
+ if ( $y > $this->_maxY)
805
+ $this->_maxY=$y;
806
+ if ( $y >= ($PH - ($space + $OH)) )
807
+ {
808
+ $newPage=true;
809
+ }
810
+ }
811
+ break;
812
+ default:
813
+ $this->_cols=1;
814
+ $this->_maxCols=1;
815
+ $y += $OH +$space;
816
+ if ( $y > $this->_maxY)
817
+ $this->_maxY=$y;
818
+ if ( $y >= ($PH - ($space + $OH)) )
819
+ $newPage=true;
820
+ break;
821
+ }
822
+ return $newPage;
823
+ }
824
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Abstract.php ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ abstract class AuIt_PublicationBasic_Model_Resource_Abstract extends Mage_Core_Model_Mysql4_Abstract
4
+ {
5
+ protected function _beforeSave(Mage_Core_Model_Abstract $object)
6
+ {
7
+ $UsrName = 'System';
8
+ $editor = Mage::getSingleton('admin/session')->getUser();
9
+ if ( $editor && $editor->getName() )
10
+ $UsrName = $editor->getName();
11
+ if ( !$object->getId() )
12
+ {
13
+ $object->setData('creation_time',now());
14
+ $object->setData('creation_from',$UsrName);
15
+ }
16
+ if ( !$object->getIdentifier() )
17
+ $object->setIdentifier(md5(uniqid(rand(), true)));
18
+ $object->setData('update_time',now());
19
+ $object->setData('update_from',$UsrName);
20
+
21
+ return parent::_beforeSave($object);
22
+ }
23
+ protected function _saveBlobData(Mage_Core_Model_Abstract $object,$fields)
24
+ {
25
+ $blob = (string)$object->getData('data');
26
+ $data=(array)@unserialize($blob);
27
+ foreach ( $fields as $blobField)
28
+ {
29
+ if (!is_null($object->getData($blobField)) )
30
+ $data[$blobField]=(string)$object->getData($blobField);
31
+ }
32
+ $object->setData('data',(string)@serialize($data));
33
+ }
34
+ protected function _loadBlobData(Mage_Core_Model_Abstract $object,$fields)
35
+ {
36
+ $blob = (string)$object->getData('data');
37
+ $data=(array)@unserialize($blob);
38
+ foreach ( $fields as $blobField)
39
+ {
40
+ if ( isset($data[$blobField]) )
41
+ $object->setData($blobField,$data[$blobField]);
42
+ }
43
+ $object->setData('extension','');
44
+ if ( is_file($this->getJobFilePath($object).DS.$this->getFilename($object)))
45
+ $object->setData('extension',$this->getFilename($object));
46
+ }
47
+ public function load(Mage_Core_Model_Abstract $object, $value, $field = null)
48
+ {
49
+ if (!is_numeric($value) && is_null($field)) {
50
+ $field = 'identifier';
51
+ }
52
+ return parent::load($object, $value, $field);
53
+ }
54
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Generator.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Resource_Generator extends AuIt_PublicationBasic_Model_Resource_Abstract
3
+ {
4
+ public function _construct()
5
+ {
6
+ $this->_init('auit_publicationbasic/generator', 'generator_id');
7
+ }
8
+
9
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Generator/Collection.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Resource_Generator_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
3
+ {
4
+ static $_sortField;
5
+ protected function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/generator');
8
+
9
+ }
10
+
11
+ public function toOptionArray()
12
+ {
13
+ return $this->_toOptionArray('generator_id', 'name');
14
+ }
15
+ protected function _beforeLoad()
16
+ {
17
+ // $this->walk('afterLoad');
18
+ return parent::_beforeLoad();
19
+ }
20
+
21
+ protected function _afterLoad()
22
+ {
23
+ parent::_afterLoad();
24
+ foreach ($this->_items as $item) {
25
+ $item->afterLoad();
26
+ }
27
+ return $this;
28
+
29
+ }
30
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Jobqueue.php ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Resource_Jobqueue extends AuIt_PublicationBasic_Model_Resource_Abstract
4
+ {
5
+
6
+ public function _construct()
7
+ {
8
+ $this->_init('auit_publicationbasic/jobqueue', 'jobqueue_id');
9
+ }
10
+ public function getBlobFields()
11
+ {
12
+ return array('salesrule_rule','template','template2','use_doc_size','user_page_size','user_page_orientation','placment_method','use_bleed','catalog_skus','print_store','layout_def');
13
+ }
14
+ public function getJobRoot()
15
+ {
16
+ return Mage::getBaseDir('media').DS.'snm-portal'.DS.'publication'.DS.'jobs';
17
+ }
18
+ public function getJobFilePath(Mage_Core_Model_Abstract $object)
19
+ {
20
+ return $this->getJobRoot().DS.'job_'.$object->getId();
21
+ }
22
+ public function getFilename(Mage_Core_Model_Abstract $object)
23
+ {
24
+ if ( $object->getVariante() == AuIt_PublicationBasic_Model_Jobqueue::TYPE_EBOOK_EPUB3 )
25
+ return 'ebook_'.$object->getId().'.epub';
26
+
27
+ return 'job_'.$object->getId().'.pdf';
28
+ }
29
+ protected function _beforeSave(Mage_Core_Model_Abstract $object)
30
+ {
31
+ $this->_saveBlobData($object,$this->getBlobFields());
32
+ return parent::_beforeSave($object);
33
+ }
34
+ protected function _afterLoad(Mage_Core_Model_Abstract $object)
35
+ {
36
+ $this->_loadBlobData($object,$this->getBlobFields());
37
+ return parent::_afterLoad($object);
38
+ }
39
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Jobqueue/Collection.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Resource_Jobqueue_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
3
+ {
4
+ static $_sortField;
5
+ protected function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/jobqueue');
8
+ }
9
+
10
+ public function toOptionArray()
11
+ {
12
+ return $this->_toOptionArray('jobqueue_id', 'name');
13
+ }
14
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Project.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Resource_Project extends AuIt_PublicationBasic_Model_Resource_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/projects', 'project_id');
8
+ }
9
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Project/Collection.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Resource_Project_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
3
+ {
4
+ static $_sortField;
5
+ protected function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/project');
8
+ }
9
+
10
+ public function toOptionArray()
11
+ {
12
+ return $this->_toOptionArray('project_id', 'name');
13
+ }
14
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Styles.php ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Resource_Styles extends AuIt_PublicationBasic_Model_Resource_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/styles', 'style_id');
8
+ }
9
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Styles/Collection.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Resource_Styles_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
3
+ {
4
+ static $_sortField;
5
+ protected function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/styles');
8
+ }
9
+
10
+ public function toOptionArray()
11
+ {
12
+ return $this->_toOptionArray('style_id', 'name');
13
+ }
14
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Template.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Resource_Template extends AuIt_PublicationBasic_Model_Resource_Abstract
4
+ {
5
+ public function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/templates', 'template_id');
8
+ }
9
+
10
+ }
app/code/local/AuIt/PublicationBasic/Model/Resource/Template/Collection.php ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Resource_Template_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
3
+ {
4
+ static $_sortField;
5
+ protected function _construct()
6
+ {
7
+ $this->_init('auit_publicationbasic/template');
8
+ }
9
+
10
+ public function toOptionArray()
11
+ {
12
+ return $this->_toOptionArray('template_id', 'name');
13
+ }
14
+ }
app/code/local/AuIt/PublicationBasic/Model/Style.php ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Model_Style extends Varien_Object
3
+ {
4
+ static public function buildFont($fontFamily,$weight)
5
+ {
6
+ switch ( $fontFamily )
7
+ {
8
+ case 'times':
9
+ switch ( $weight){
10
+ case 'bold': $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES_BOLD);break;
11
+ default: $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES);break;
12
+ }
13
+ break;
14
+ case 'helvetica':
15
+ switch ( $weight){
16
+ case 'bold': $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA_BOLD);break;
17
+ default: $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA);break;
18
+ }
19
+ break;
20
+ case 'libertine':
21
+ switch ( $weight){
22
+ case 'bold': $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertine_Bd-2.8.1.ttf');break;
23
+ default: $font = Zend_Pdf_Font::fontWithPath(Mage::getBaseDir() . '/lib/LinLibertineFont/LinLibertineC_Re-2.8.0.ttf');break;
24
+ }
25
+ break;
26
+ default:
27
+ switch ( $weight){
28
+ case 'bold': $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER_BOLD);break;
29
+ default: $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_COURIER);break;
30
+ }
31
+ break;
32
+ }
33
+ return $font;
34
+ }
35
+ public function getFont()
36
+ {
37
+ $font = $this->getData('font');
38
+ if ( !is_object($font) )
39
+ {
40
+ $font = self::buildFont($font, $this->getData('font_weight'));
41
+ $this->setData('font',$font);
42
+ }
43
+ return $font;
44
+ }
45
+ }
app/code/local/AuIt/PublicationBasic/Model/Styles.php ADDED
@@ -0,0 +1,522 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Styles extends Mage_Core_Model_Abstract
4
+ {
5
+ const CLPREFIX = 'bl-';
6
+ const CACHE_TAG = 'auit_publicationbasic_styles';
7
+ protected $_cacheTag= 'auit_publicationbasic_styles';
8
+ protected $_jsonData=null;
9
+ protected $_styles=null;
10
+ protected $_fontfaces=array();
11
+ protected $_fontfiles=array();
12
+ protected function _construct()
13
+ {
14
+ $this->_init('auit_publicationbasic/styles');
15
+ }
16
+ public function getFontFiles()
17
+ {
18
+ return $this->_fontfiles;
19
+ }
20
+ public function initialBasisData()
21
+ {
22
+ if ( $this->getId() ) return;
23
+ $file = Mage::getModuleDir('data', 'AuIt_Publication') . DS . 'initial'.DS.'style'.DS.'type_'.$this->getType().'.json';
24
+ if ( file_exists($file) )
25
+ {
26
+ $this->setData('data',file_get_contents($file));
27
+ }
28
+ }
29
+ public function buildCssObject($style,$stack=array())
30
+ {
31
+ if ( isset($stack[$style['uid']]) )
32
+ return array();
33
+ $stack[$style['uid']]=1;
34
+ $obj=array();
35
+ if ( isset($style['based_on']) && $style['based_on'] )
36
+ {
37
+ foreach ( $this->_styles as $substyle )
38
+ {
39
+ if ( $substyle['uid'] == $style['based_on'] )
40
+ {
41
+ $obj = $this->buildCssObject($substyle,$stack);
42
+ break;
43
+ }
44
+ }
45
+ }
46
+ if ( isset($obj['font_style']) && $obj['font_style']==':')
47
+ unset($obj['font_style']);
48
+ if ( isset($obj['font_family']) && $obj['font_family']==':')
49
+ unset($obj['font_family']);
50
+
51
+ if ( isset($style['font_style']) && $style['font_style']==':')
52
+ unset($style['font_style']);
53
+ if ( isset($style['font_family']) && $style['font_family']==':')
54
+ unset($style['font_family']);
55
+
56
+ if ( isset($obj['alias']))
57
+ unset($obj['alias']);
58
+ foreach ( $style as $k => $v)
59
+ {
60
+ if ( $v )
61
+ $obj[$k]=$v;
62
+ }
63
+ if ( !isset($obj['path']))
64
+ $obj['path']=$style['name'];
65
+ else
66
+ $obj['path'] = $style['name'] . ' based on: '.$obj['path'];
67
+ return $obj;
68
+ }
69
+ protected function _calcSize($size)
70
+ {
71
+ switch ( $this->getMode() )
72
+ {
73
+ case 'epub3':
74
+ $epub = $this->getRenderer();
75
+ $size = $epub->toPx($size,'px','pt');
76
+ break;
77
+ default:
78
+ break;
79
+ }
80
+ return $size;
81
+ }
82
+ protected function toCss($cssObj,$tcpdf=null,$asStyle=false,$addBg=true)
83
+ {
84
+ $cr="\n";
85
+ $css=array();
86
+ $fontfamily='';
87
+ $fontStyle='';
88
+ $fontWeight='';
89
+ if ( isset($cssObj['path']) && !$asStyle)
90
+ $css[]= '/* '.$cssObj['path'].' */';
91
+
92
+
93
+ if ( isset($cssObj['font_family']) && $cssObj['font_family'] )
94
+ {
95
+ $ff = explode(':',$cssObj['font_family']);
96
+ if ( isset($cssObj['font_style']) && $cssObj['font_style'])
97
+ {
98
+ $s = $cssObj['font_style'];
99
+ $ff = explode(':',$s);
100
+ if ( trim($ff[0]) && trim($ff[1]) )
101
+ {
102
+ $s = strtolower($s);
103
+ if ( strpos($s,'bold') !== false )
104
+ $fontWeight='bold';
105
+ if ( strpos($s,'italic') !== false )
106
+ $fontWeight='italic';
107
+ }
108
+ }
109
+ if ( trim($ff[0]) && trim($ff[1]))
110
+ {
111
+ if ( !$fontStyle )
112
+ $fontStyle='normal';
113
+ if ( !$fontWeight )
114
+ $fontWeight='normal';
115
+ $fontfamily = 'bl-'.$ff[1];
116
+ $fontface='';
117
+ $fontface.=$cr.'@font-face {';
118
+ $fontface.=$cr.'font-family: "'.$fontfamily.'";';
119
+ if ( $this->getMode() == 'epub3' )
120
+ {
121
+ $fontface.=$cr.'src:url("../fonts/'.str_replace(' ','_',$ff[0]).'");';
122
+ }else {
123
+ $fontface.=$cr.'src:url("'.Mage::helper('auit_publicationbasic/font')->getFontUrl($ff[0]).'");';
124
+ }
125
+ $fontface.=$cr.'font-style: '.$fontStyle.';';
126
+ $fontface.=$cr.'font-weight: '.$fontWeight.';';
127
+ $fontface.=$cr.'}';
128
+ if ( !isset($this->_fontfaces[$fontface]) ) {
129
+
130
+ if ( $tcpdf )
131
+ {
132
+ $fontfamily = $tcpdf->addTTFfont(Mage::helper('auit_publicationbasic/font')->getFontDir($ff[0]));
133
+ } else {
134
+ $css[]=$fontface;
135
+ }
136
+ //$fontfamily='vollkorn';
137
+ $this->_fontfaces[$fontface]=$fontfamily;
138
+ $this->_fontfiles[]=$ff[0];
139
+ }else if ( $tcpdf )
140
+ $fontfamily =$this->_fontfaces[$fontface];
141
+ }
142
+ }
143
+
144
+ $cssChar=array();
145
+
146
+ if ( $fontfamily )
147
+ $cssChar[]="font-family:'$fontfamily';";
148
+ if ( !$tcpdf ) {
149
+ if ( $fontStyle )
150
+ $cssChar[]="font-style:$fontStyle;";
151
+ if ( $fontWeight )
152
+ $cssChar[]="font-weight:$fontWeight;";
153
+ }
154
+ if ( isset($cssObj['font_size']) && $cssObj['font_size'] )
155
+ $cssChar[]='font-size:'.$this->_calcSize($cssObj['font_size']).';';
156
+
157
+
158
+ if ( isset($cssObj['colour']) && $cssObj['colour'] )
159
+ {
160
+ if ( $tcpdf )
161
+ $cssChar[]='color:'.$this->toPDFColor($cssObj['colour']).';';
162
+ else
163
+ $cssChar[]='color:'.$cssObj['colour'].($tcpdf?';':' ;');//!important
164
+ }
165
+
166
+ $cssBox=array();
167
+ if ( isset($cssObj['leading']) && $cssObj['leading'] )
168
+ {
169
+
170
+ if (!$tcpdf) {
171
+ $cssBox[]='line-height:'.$cssObj['leading'].';';
172
+ }else {
173
+ $cssBox[]='line-height:'.$cssObj['leading'].';';
174
+ }
175
+ }
176
+
177
+ if ( !$tcpdf )
178
+ {
179
+ if ( isset($cssObj['left_indent']) && $cssObj['left_indent'] )
180
+ $cssBox[]='padding-left:'.$cssObj['left_indent'].';';
181
+ if ( isset($cssObj['right_indent']) && $cssObj['right_indent'] )
182
+ $cssBox[]='padding-right:'.$cssObj['right_indent'].';';
183
+ if ( isset($cssObj['space_before']) && $cssObj['space_before'] )
184
+ $cssBox[]='padding-top:'.$cssObj['space_before'].';';
185
+ if ( isset($cssObj['space_after']) && $cssObj['space_after'] )
186
+ $cssBox[]='padding-bottom:'.$cssObj['space_after'].';';
187
+ }
188
+
189
+ //if ( !$tcpdf && isset($cssObj['colour_background']) && $cssObj['colour_background'] )
190
+ if ( $addBg && isset($cssObj['colour_background']) && $cssObj['colour_background'] )
191
+ {
192
+ if ( $tcpdf )
193
+ $cssBox[]='background-color:'.$this->toPDFColor($cssObj['colour_background']).($tcpdf?';':' ;'); //!important
194
+ else
195
+ $cssBox[]='background-color:'.$cssObj['colour_background'].($tcpdf?';':' ;'); //!important
196
+ }
197
+ if ( !$asStyle )
198
+ {
199
+ $className = '';
200
+ if (isset($cssObj['alias']) && $cssObj['alias'])
201
+ {
202
+ if ( !$tcpdf )
203
+ $className .= '#auit-layout-frame .'.self::CLPREFIX.$cssObj['alias'].',';
204
+ else
205
+ $className .= '.auit-layout-text-frame.'.self::CLPREFIX.$cssObj['alias'].',';
206
+
207
+ // $className .= '.'.self::CLPREFIX.$cssObj['alias'].',';
208
+ }
209
+ /***
210
+ if ( !$tcpdf )
211
+ $className .= '#auit-layout-frame .'.self::CLPREFIX.$cssObj['uid'].',';
212
+ else
213
+ $className .= '.auit-layout-text-frame.'.self::CLPREFIX.$cssObj['uid'].',';
214
+ $className .= '.'.self::CLPREFIX.$cssObj['uid'];
215
+ **/
216
+ if ( !$tcpdf )
217
+ $className .= '#auit-layout-frame .'.self::CLPREFIX.$cssObj['uid'].'';
218
+ else
219
+ $className .= '.auit-layout-text-frame.'.self::CLPREFIX.$cssObj['uid'].'';
220
+
221
+
222
+ $css[]= $className.'{';
223
+ }
224
+ if ( count($cssBox) )
225
+ $css[]=implode($asStyle?'':"\n",$cssBox);
226
+ if ( count($cssChar) )
227
+ $css[]=implode($asStyle?'':"\n",$cssChar);
228
+ if ( !$asStyle )
229
+ {
230
+ $css[]='}';
231
+ /*
232
+ if ( 0 )
233
+ if ( count($cssChar) )
234
+ {
235
+ $className = str_replace(',',' *,',$className);
236
+ $tcpa = $className;
237
+ $className .= ' *';
238
+ if ( $tcpdf ){
239
+ $className .= ', '.$tcpa.' a';
240
+ }
241
+
242
+ $css[]= $className.'{';
243
+
244
+ if ( $tcpdf )
245
+ $css[]=implode($asStyle?'':"\n",$cssChar);
246
+ else
247
+ $css[]=implode($asStyle?'':"\n",$cssChar);
248
+
249
+ $css[]='}';
250
+ }
251
+ */
252
+ }
253
+ $css[]='';
254
+ return implode($asStyle?'':"\n",$css);
255
+ }
256
+ public function getComputedStyle($class,$att=null,$default=null)
257
+ {
258
+ $class = str_replace('bl-','',$class);
259
+ $data = $this->getStyleData();
260
+ $this->_styles=array();
261
+ if ( isset($data['styles']) )
262
+ $this->_styles = $data['styles'];
263
+ $this->_fontfaces = array();
264
+ if ( isset($data['styles']) )
265
+ foreach ( $data['styles'] as $item )
266
+ {
267
+ if ( (isset($item['uid']) && $item['uid'] == $class)
268
+ || (isset($item['alias']) && $item['alias'] == $class) )
269
+ {
270
+ $data = $this->buildCssObject($item);
271
+ if ( is_null($att) )
272
+ return $data;
273
+ if ( isset($data[$att]) )
274
+ {
275
+ return $data[$att];
276
+ }
277
+ break;
278
+ }
279
+ }
280
+ return $default;
281
+
282
+ }
283
+ public function getCSS($tcpdf=null,$class=false)
284
+ {
285
+ if ( $class )
286
+ $class = str_replace('bl-','',$class);
287
+ $data = $this->getStyleData();
288
+ $this->_styles=array();
289
+ if ( isset($data['styles']) )
290
+ $this->_styles = $data['styles'];
291
+ $this->_fontfaces = array();
292
+ $css='';
293
+ if ( isset($data['styles']) )
294
+ foreach ( $data['styles'] as $style )
295
+ {
296
+ if ( !$class || (isset($style['uid']) && $style['uid'] == $class)
297
+ || (isset($style['alias']) && $style['alias'] == $class) )
298
+ $css.= "\n".$this->toCss($this->buildCssObject($style),$tcpdf);
299
+ }
300
+ unset($this->_styles);
301
+ $this->_styles = null;
302
+ $this->_fontfaces = array();
303
+ //if ( $tcpdf )
304
+ //Mage::log($css);
305
+ return $css;
306
+ }
307
+ public function getBoxStyle($tcpdf,$blockInfo,$bonlybox=false)
308
+ {
309
+ $cssObject = array();
310
+ $cssObject['uid']=$blockInfo->getUid();
311
+ if ( !$bonlybox && $blockInfo->getClass() )
312
+ $cssObject = $this->getComputedStyle($blockInfo->getClass(),null,array());
313
+
314
+ if ( $blockInfo->getStyleColour() )
315
+ $cssObject['colour']=$blockInfo->getStyleColour();
316
+ if ( $blockInfo->getStyleLeading() )
317
+ $cssObject['leading']=$blockInfo->getStyleLeading();
318
+ if ( $blockInfo->getStyleFontSize() )
319
+ $cssObject['font_size']=$this->_calcSize($blockInfo->getStyleFontSize());
320
+ if ( $blockInfo->getStyleFontFamily() && $blockInfo->getStyleFontFamily()!=':')
321
+ {
322
+ $cssObject['font_family']=$blockInfo->getStyleFontFamily();
323
+ $cssObject['font_style']=$blockInfo->getStyleFontStyle();
324
+ }
325
+
326
+
327
+ $style='';
328
+ if ( count($cssObject)>0 )
329
+ {
330
+ $style = $this->toCss($cssObject,$tcpdf,false,false);
331
+ }
332
+
333
+ // Mage::log('----------------');
334
+ // Mage::log($style);
335
+ return array('css'=>$style,'cssObj'=>$cssObject);
336
+ }
337
+ public function getClassNames()
338
+ {
339
+ $data = $this->getStyleData();
340
+ $options = array();
341
+ if ( isset($data['styles']) )
342
+ {
343
+ foreach ( $data['styles'] as $item )
344
+ {
345
+ if ( isset($item['alias']) )
346
+ $options[self::CLPREFIX.$item['alias']]=$item ['name'];
347
+ else
348
+ $options[self::CLPREFIX.$item['uid']]=$item ['name'];
349
+ }
350
+ }
351
+ return $options;
352
+ }
353
+ public function getStyleData()
354
+ {
355
+ if ( !$this->_jsonData )
356
+ {
357
+ $this->_jsonData = array();
358
+ try {
359
+ if ( trim($this->getData('data')) )
360
+ $this->_jsonData = Mage::helper('core')->jsonDecode($this->getData('data'));
361
+
362
+ }
363
+ catch (Exception $e)
364
+ {
365
+ Mage::log($this->getData());
366
+ Mage::logException($e);
367
+ }
368
+ }
369
+ return $this->_jsonData;
370
+ }
371
+
372
+ public function toPDFColor($hcolor)
373
+ {
374
+ $color = $this->ColorToArray($hcolor);
375
+
376
+ return 'rgb('.$color[0].','.$color[1].','.$color[2].')';
377
+ }
378
+ public function ColorToArray($hcolor)
379
+ {
380
+ $color = preg_replace('/[\s]*/', '', $hcolor); // remove extra spaces
381
+ $color = strtolower($color);
382
+ if (substr($color, 0, 4) == 'rgba') {
383
+ $codes = substr($color, 5);
384
+ $codes = str_replace(')', '', $codes);
385
+ $returncolor = explode(',', $codes);
386
+ $alpha=1;
387
+ if ( isset($returncolor[3]) )
388
+ $alpha=$returncolor[3];
389
+ foreach ($returncolor as $key => $val) {
390
+ if (strpos($val, '%') > 0) {
391
+ // percentage
392
+ $returncolor[$key] = (255 * intval($val) / 100);
393
+ } else {
394
+ $returncolor[$key] = intval($val);
395
+ }
396
+ // normalize value
397
+ $returncolor[$key] = max(0, min(255, $returncolor[$key]));
398
+ }
399
+ $returncolor[3]=$alpha;
400
+ return $returncolor;
401
+ }
402
+ // RGB ARRAY
403
+ if (substr($color, 0, 3) == 'rgb') {
404
+ $codes = substr($color, 4);
405
+ $codes = str_replace(')', '', $codes);
406
+ $returncolor = explode(',', $codes);
407
+ foreach ($returncolor as $key => $val) {
408
+ if (strpos($val, '%') > 0) {
409
+ // percentage
410
+ $returncolor[$key] = (255 * intval($val) / 100);
411
+ } else {
412
+ $returncolor[$key] = intval($val);
413
+ }
414
+ // normalize value
415
+ $returncolor[$key] = max(0, min(255, $returncolor[$key]));
416
+ }
417
+ return $returncolor;
418
+ }
419
+ // CMYK ARRAY
420
+ if (substr($color, 0, 4) == 'cmyk') {
421
+ $codes = substr($color, 5);
422
+ $codes = str_replace(')', '', $codes);
423
+ $returncolor = explode(',', $codes);
424
+ foreach ($returncolor as $key => $val) {
425
+ if (strpos($val, '%') !== false) {
426
+ // percentage
427
+ $returncolor[$key] = (100 * intval($val) / 100);
428
+ } else {
429
+ $returncolor[$key] = intval($val);
430
+ }
431
+ // normalize value
432
+ $returncolor[$key] = max(0, min(100, $returncolor[$key]));
433
+ }
434
+ return $returncolor;
435
+ }
436
+ if ($color{0} != '#') {
437
+ // COLOR NAME
438
+ if (isset($this->webcolor[$color])) {
439
+ // web color
440
+ $color_code = $this->webcolor[$color];
441
+ } else {
442
+ // spot color
443
+ $returncolor = $this->getSpotColor($color);
444
+ if ($returncolor === false) {
445
+ $returncolor = $defcol;
446
+ }
447
+ return $returncolor;
448
+ }
449
+ } else {
450
+ $color_code = substr($color, 1);
451
+ }
452
+ // HEXADECIMAL REPRESENTATION
453
+ switch (strlen($color_code)) {
454
+ case 3: {
455
+ // 3-digit RGB hexadecimal representation
456
+ $r = substr($color_code, 0, 1);
457
+ $g = substr($color_code, 1, 1);
458
+ $b = substr($color_code, 2, 1);
459
+ $returncolor = array();
460
+ $returncolor['R'] = max(0, min(255, hexdec($r.$r)));
461
+ $returncolor['G'] = max(0, min(255, hexdec($g.$g)));
462
+ $returncolor['B'] = max(0, min(255, hexdec($b.$b)));
463
+ break;
464
+ }
465
+ case 6: {
466
+ // 6-digit RGB hexadecimal representation
467
+ $returncolor = array();
468
+ $returncolor['R'] = max(0, min(255, hexdec(substr($color_code, 0, 2))));
469
+ $returncolor['G'] = max(0, min(255, hexdec(substr($color_code, 2, 2))));
470
+ $returncolor['B'] = max(0, min(255, hexdec(substr($color_code, 4, 2))));
471
+ break;
472
+ }
473
+ case 8: {
474
+ // 8-digit CMYK hexadecimal representation
475
+ $returncolor = array();
476
+ $returncolor['C'] = max(0, min(100, round(hexdec(substr($color_code, 0, 2)) / 2.55)));
477
+ $returncolor['M'] = max(0, min(100, round(hexdec(substr($color_code, 2, 2)) / 2.55)));
478
+ $returncolor['Y'] = max(0, min(100, round(hexdec(substr($color_code, 4, 2)) / 2.55)));
479
+ $returncolor['K'] = max(0, min(100, round(hexdec(substr($color_code, 6, 2)) / 2.55)));
480
+ break;
481
+ }
482
+ default: {
483
+ $returncolor = $defcol;
484
+ break;
485
+ }
486
+ }
487
+ return $returncolor;
488
+ }
489
+ public function addDependence(&$dep)
490
+ {
491
+ $data = $this->getStyleData();
492
+ if ( isset($data['styles']) )
493
+ {
494
+ foreach ( $data['styles'] as $item )
495
+ {
496
+ if ( isset($item['font_style']) && $item['font_style'] )
497
+ {
498
+ $tmp = explode(':',$item['font_style']);
499
+ $fn = trim($tmp[0]);
500
+ if ( $fn )
501
+ $dep['fonts'][$fn]=$fn;
502
+ }
503
+ }
504
+ }
505
+ }
506
+ public function exportTo(&$package,$rootDir,$templId)
507
+ {
508
+ $Identifier = $this->getIdentifier();
509
+ if ( isset($package['styles'][$Identifier] ) )
510
+ return;
511
+ $data = $this->getData();
512
+ $data['style_id']=null;
513
+ file_put_contents($rootDir.DS.'style_'.$Identifier.'.ser', serialize($data));
514
+ $package['styles'][$Identifier]=1;
515
+ }
516
+ public function importData(&$messages,$templateDir,$templdata,$bvalidate)
517
+ {
518
+ if ( isset($templdata['style_id']) )
519
+ unset($templdata['style_id']);
520
+ $this->addData($templdata);
521
+ }
522
+ }
app/code/local/AuIt/PublicationBasic/Model/Template.php ADDED
@@ -0,0 +1,349 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class AuIt_PublicationBasic_Model_Template extends Mage_Core_Model_Abstract
4
+ {
5
+ const CACHE_TAG = 'auit_publicationbasic_template';
6
+ protected $_cacheTag= 'auit_publicationbasic_template';
7
+ protected $_depMode='';
8
+ protected $_depLevel=0;
9
+ protected function _construct()
10
+ {
11
+ $this->_init('auit_publicationbasic/template');
12
+ }
13
+ public function initialBasisData()
14
+ {
15
+ if ( $this->getId() ) return;
16
+ $file = Mage::getModuleDir('data', 'AuIt_Publication') . DS . 'initial'.DS.'template'.DS.'type_'.$this->getType().'.json';
17
+ if ( file_exists($file) )
18
+ {
19
+
20
+ $this->setData('data',file_get_contents($file));
21
+ }
22
+ }
23
+ protected function _checkTemplateThumnails()
24
+ {
25
+
26
+ }
27
+ protected function _getThumnailFile()
28
+ {
29
+
30
+ }
31
+ public function buildObjectList()
32
+ {
33
+ $dep =array();
34
+ $dep['templates']=array();
35
+ $dep['styles']=array();
36
+ $dep['generators']=array();
37
+ $dep['images']=array();
38
+ $dep['vars']=array();
39
+ $dep['spreads']=array();
40
+
41
+ $this->_depMode='var';
42
+
43
+ $this->addDependence($dep);
44
+ $this->_depMode='';
45
+
46
+ return array(
47
+ 'identifier'=>$this->getIdentifier(),
48
+ 'spreads'=>$dep['spreads'],
49
+ 'vars'=>$dep['vars']
50
+ );
51
+
52
+ }
53
+ public function addDependence(&$dep,$level=0,$currentMainSpread=-1)
54
+ {
55
+ $data=Zend_Json::decode($this->getData('data'));
56
+
57
+
58
+ if ( isset($dep['templates'][$this->getIdentifier()]) )
59
+ return;
60
+ $dep['templates'][$this->getIdentifier()]=$this;
61
+
62
+ //Mage::log($data);
63
+ if ( isset($data['preview_style']) && $this->_depMode != 'var')
64
+ {
65
+ $styleId = trim($data['preview_style']);
66
+ if ( $styleId && !isset($dep['styles'][$styleId]))
67
+ {
68
+ $style = Mage::getModel('auit_publicationbasic/styles');
69
+ $style->load(trim($styleId),'identifier');
70
+ if ( $style->getId() )
71
+ {
72
+ $style->addDependence($dep);
73
+ $dep['styles'][$styleId]=$style;
74
+ }
75
+ }
76
+ }
77
+ if ( isset($data['spreads']) )
78
+ foreach ( $data['spreads'] as $idx => $spread )
79
+ {
80
+ if ( $level == 0){
81
+ $currentMainSpread= $idx+1;
82
+ if ( isset($dep['spreads']) )
83
+ {
84
+ $name = 'Spread: '.$currentMainSpread;
85
+ if ( isset($spread['pages']) )
86
+ {
87
+ foreach ( $spread['pages'] as $page )
88
+ {
89
+ $name .= ' ('.$page['name'].')';
90
+ break;
91
+ }
92
+ }
93
+ $dep['spreads'][]=array('name'=>$name,'idx'=>$currentMainSpread);
94
+ }
95
+ }
96
+ foreach ( $spread['boxes'] as $box )
97
+ {
98
+ if ( isset($box['style_font_style']) && $box['style_font_style'] )
99
+ {
100
+ $tmp = explode(':',$box['style_font_style']);
101
+ $fn = trim($tmp[0]);
102
+ if ( $fn )
103
+ $dep['fonts'][$fn]=$fn;
104
+ }
105
+ switch ( $box['type'] )
106
+ {
107
+ case 'p_img':
108
+ $tid = trim($box['p_opt']);
109
+ $src = trim($box['src']);
110
+ if ( $tid == 'media_static' )
111
+ {
112
+ $dep['images'][$src]=$src;
113
+ if ( isset($dep['vars']) && isset($box['isparameterbox']) && $box['isparameterbox'])
114
+ {
115
+ $dep['vars'][]=array(
116
+ 'uid'=>$box['uid'],
117
+ 'name'=>$box['name'],
118
+ 'type'=>$box['type'],
119
+ 'src'=>$box['src'],
120
+ 'spread'=>$currentMainSpread,
121
+ 'tempname'=>trim($this->getName())
122
+ );
123
+
124
+ }
125
+ }
126
+ break;
127
+ case 'p_free':
128
+ if ( isset($dep['vars']) && isset($box['isparameterbox']) && $box['isparameterbox'])
129
+ {
130
+ $dep['vars'][]=array(
131
+ 'uid'=>$box['uid'],
132
+ 'name'=>$box['name'],
133
+ 'type'=>$box['type'],
134
+ 'def'=>$box['p_opt'],
135
+ 'spread'=>$currentMainSpread,
136
+ 'tempname'=>trim($this->getName())
137
+ );
138
+
139
+ }
140
+ break;
141
+ case 'p_bc':
142
+ if ( isset($box['src']) && ($src = trim($box['src'])) )
143
+ {
144
+ $dep['images'][$src]=$src;
145
+ }
146
+ break;
147
+ case 'p_templ':
148
+ $tid = trim($box['p_opt']);
149
+ if ( $tid && !isset($dep['templates'][$tid]) )
150
+ {
151
+ $model = Mage::getModel('auit_publicationbasic/template');
152
+ $model->load(trim($box['p_opt']),'identifier');
153
+ if ( $model->getId() )
154
+ $model->addDependence($dep,$level+1,$currentMainSpread);
155
+ }
156
+ break;
157
+ case 'p_gen':
158
+ $tid = trim($box['p_opt']);
159
+ if ( $tid && !isset($dep['generators'][$tid]) && $this->_depMode != 'var')
160
+ {
161
+ $model = Mage::getModel('auit_publicationbasic/generator');
162
+ $model->load(trim($box['p_opt']),'identifier');
163
+ if ( $model->getId() )
164
+ {
165
+ $model->addDependence($dep);
166
+ $dep['generators'][$tid]=$model;
167
+ }
168
+ }
169
+ break;
170
+ }
171
+ }
172
+ }
173
+ }
174
+ public function exportTo(&$package,$rootDir,$templId)
175
+ {
176
+ if ( isset($package['templates'][$this->getIdentifier()] ) )
177
+ return;
178
+ //$dir = $rootDir.DS.$templId;
179
+ $this->_checkDir($rootDir);
180
+ $data = $this->getData();
181
+ $data['template_id']=null;
182
+ $Identifier = $this->getIdentifier();
183
+ file_put_contents($rootDir.DS.'template_'.$Identifier.'.ser', serialize($data));
184
+
185
+ $package['templates'][$this->getIdentifier()]=1;
186
+
187
+ $dep =array();
188
+ $dep['templates']=array();
189
+ $dep['styles']=array();
190
+ $dep['generators']=array();
191
+ $dep['images']=array();
192
+
193
+ $this->addDependence($dep);
194
+ foreach ( $dep as $type => $info )
195
+ {
196
+ // Mage::log("t:$type : ".count($info));
197
+ switch ( $type )
198
+ {
199
+ case 'styles':
200
+ foreach ( $info as $key => $model )
201
+ {
202
+ if ( $model->getId() )
203
+ $model->exportTo($package,$rootDir,$templId);
204
+ }
205
+ break;
206
+ case 'generators':
207
+ foreach ( $info as $key => $model )
208
+ {
209
+ if ( $model->getId() )
210
+ $model->exportTo($package,$rootDir,$templId);
211
+ }
212
+ break;
213
+ case 'images':
214
+ foreach ( $info as $key => $model )
215
+ {
216
+ if ( !isset($package['images'][$key]))
217
+ {
218
+ $this->exportImagesTo(trim($model),$rootDir);
219
+ $package['images'][$key]=1;
220
+ }
221
+ }
222
+ break;
223
+ case 'fonts':
224
+ foreach ( $info as $key => $model )
225
+ {
226
+ if ( !isset($package['fonts'][$key]))
227
+ {
228
+ $this->exportFontsTo(trim($model),$rootDir);
229
+ $package['fonts'][$key]=1;
230
+ }
231
+ }
232
+ break;
233
+ case 'templates':
234
+ foreach ( $info as $key => $model )
235
+ {
236
+ if ( $model->getId() && !isset($package['templates'][$key]))
237
+ {
238
+ file_put_contents($rootDir.DS.'template_'.$key.'.ser', serialize($model->getData()));
239
+ $package['templates'][$key]=1;
240
+ }
241
+ }
242
+ break;
243
+ }
244
+ }
245
+
246
+ $dep = $data['dependence'];
247
+ $lines = explode("\n",$dep);
248
+ foreach ( $lines as $line )
249
+ {
250
+ $cmd = explode(':',$line);
251
+ switch ( trim($cmd[0]) )
252
+ {
253
+ case 'styles':
254
+ foreach ( explode(',',$cmd[1]) as $ident )
255
+ {
256
+ $style = Mage::getModel('auit_publicationbasic/styles');
257
+ $style->load(trim($ident),'identifier');
258
+ $style->exportTo($package,$rootDir,$templId);
259
+ }
260
+ break;
261
+ case 'generators':
262
+ foreach ( explode(',',$cmd[1]) as $ident )
263
+ {
264
+ $style = Mage::getModel('auit_publicationbasic/generator');
265
+ $style->load(trim($ident),'identifier');
266
+ $style->exportTo($package,$rootDir,$templId);
267
+ }
268
+ break;
269
+ case 'templates':
270
+ foreach ( explode(',',$cmd[1]) as $ident )
271
+ {
272
+ $ident=trim($ident);
273
+ if ( !isset($package['templates'][$ident]) )
274
+ {
275
+ $model = Mage::getModel('auit_publicationbasic/template');
276
+ $model->load(trim($ident),'identifier');
277
+ if ( $model->getId() )
278
+ $model->exportTo($package,$rootDir,$templId);
279
+ }
280
+ }
281
+ break;
282
+ case 'images':
283
+ foreach ( explode(',',$cmd[1]) as $ident )
284
+ {
285
+ $ident=trim($ident);
286
+ if ( !isset($package['images'][$ident]))
287
+ {
288
+ $this->exportImagesTo($ident,$rootDir);
289
+ $package['images'][$ident]=1;
290
+ }
291
+ }
292
+ break;
293
+ case 'fonts':
294
+ foreach ( explode(',',$cmd[1]) as $ident )
295
+ {
296
+ $ident=trim($ident);
297
+ if ( !isset($package['fonts'][$ident]))
298
+ {
299
+ $this->exportFontsTo(trim($ident),$rootDir);
300
+ $package['fonts'][$ident]=1;
301
+ }
302
+ }
303
+ break;
304
+ }
305
+ }
306
+
307
+ }
308
+
309
+ public function exportImagesTo($ident,$rootDir)
310
+ {
311
+ if ( !$ident )
312
+ return;
313
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
314
+ $file = $helper->convertIdToPath(''.$ident,false);
315
+ if ( !is_file($file) )
316
+ {
317
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot found file :%s',$ident));
318
+ }
319
+ $this->_checkDir(dirname($rootDir.DS.'images'.DS.$ident) );
320
+ if ( !copy($file, $rootDir.DS.'images'.DS.$ident) )
321
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot copy file :%s',$ident));
322
+ }
323
+ public function exportFontsTo($ident,$rootDir)
324
+ {
325
+ $file = Mage::helper('auit_publicationbasic/font')->getFontDir($ident);
326
+ if ( !is_file($file) )
327
+ {
328
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot found font :%s',''.$ident));
329
+ }
330
+ $this->_checkDir(dirname($rootDir.DS.'fonts'.DS.$ident));
331
+ if ( !copy($file, $rootDir.DS.'fonts'.DS.$ident) )
332
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot copy font :%s',''.$ident));
333
+ }
334
+ protected function _checkDir($path)
335
+ {
336
+ $io = new Varien_Io_File();
337
+ if (is_dir($path) || $io->mkdir($path)) {
338
+ if ( is_writable($path) )
339
+ return true;
340
+ }
341
+ Mage::throwException(Mage::helper('auit_publicationbasic')->__('Cannot create new directory:%s',$path));
342
+ }
343
+ public function importData(&$messages,$templateDir,$templdata,$bvalidate)
344
+ {
345
+ if ( isset($templdata['template_id']) )
346
+ unset($templdata['template_id']);
347
+ $this->addData($templdata);
348
+ }
349
+ }
app/code/local/AuIt/PublicationBasic/controllers/Admin/FilemanagerController.php ADDED
@@ -0,0 +1,218 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Admin_FilemanagerController extends Mage_Adminhtml_Controller_Action
3
+ {
4
+ /**
5
+ * Index action
6
+ */
7
+ public function indexAction()
8
+ {
9
+ }
10
+ public function loadAction()
11
+ {
12
+ try {
13
+ $cmd = $this->getRequest()->getParam('operation');
14
+ switch ( $cmd )
15
+ {
16
+ case 'get_children':
17
+ $this->_get_children();
18
+ break;
19
+ case 'create_node':
20
+ $this->_create_node();
21
+ break;
22
+ case 'rename_node':
23
+ $this->_rename_node();
24
+ break;
25
+ case 'remove_node':
26
+ $this->_remove_node();
27
+ break;
28
+ case 'get_files':
29
+ $this->_get_files();
30
+ break;
31
+ case 'search':
32
+ $this->_search();
33
+ break;
34
+
35
+ case 'upload_default':
36
+ $this->_upload_default();
37
+ break;
38
+ }
39
+ }
40
+ catch ( Exception $e )
41
+ {
42
+ Mage::log("AuIt_PublicationBasic_Admin_FilemanagerController::Exception - ".$e->getMessage());
43
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
44
+ $this->getResponse()->setBody(Zend_Json::encode(array('status'=>0,'error'=>$e->getMessage())));
45
+ return;
46
+ }
47
+ }
48
+ static function _toByteString($size)
49
+ {
50
+ $sizes = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
51
+ for ($i=0; $size >= 1024 && $i < 9; $i++) {
52
+ $size /= 1024;
53
+ }
54
+ return round($size, 2) . $sizes[$i];
55
+ }
56
+ protected function getDocumentFileNodeData($filename)
57
+ {
58
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
59
+ $title = basename($filename);
60
+ $info = pathinfo($filename);
61
+ $name = basename($filename,'.'.$info['extension']);
62
+ $qtip = ''.Mage::helper('core')->formatDate(new Zend_Date(filemtime($filename)), Mage_Core_Model_Locale::FORMAT_TYPE_SHORT, true);
63
+ $qtip .= ' ['.self::_toByteString(filesize($filename)).']';
64
+ $html = '<li class="ui-state-default snm-file-box clearfix" id="'.$helper->convertPathToId($filename).'" data-src="'.$helper->convertPathToArea($filename).'">';
65
+ //$html.= '<a id="'.$helper->convertPathToId($filename).'_A"></a>';
66
+
67
+ $html.= '<img src="'.Mage::helper('auit_publicationbasic/dirdirective')->getThumbUrl($filename).'"/>';
68
+ $html.= '<p class="title">'.$title.'</p>';
69
+ $html.= '<p class="info">'.$qtip.'</p>';
70
+ $html.= '</li>';
71
+ return $html;
72
+ }
73
+
74
+ protected function _get_files()
75
+ {
76
+
77
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
78
+ $jsonArray = array();
79
+ $storeId=0;
80
+ $this->getRequest()->setParam('storeID',$storeId);
81
+ $this->getRequest()->setParam('store',$storeId);
82
+ $source = AuIt_PublicationBasic_Helper_Filemanager::ROOT;
83
+ $path = $helper->getCurrentPath();
84
+
85
+ $filter = '';
86
+ $collection = $helper->getStorage()->getFilesCollection($path,'picture');
87
+
88
+ $jsonArray[] = '<ul>';
89
+ foreach ($collection as $item) {
90
+ $child = $this->getDocumentFileNodeData($item->getFilename());
91
+ $jsonArray[] = $child;
92
+ }
93
+ $jsonArray[] = '</ul>';
94
+ $this->getResponse()->setBody(implode("\n", $jsonArray));
95
+
96
+ }
97
+ protected function _get_children()
98
+ {
99
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
100
+ $jsonArray = array();
101
+ $storeId=0;
102
+ $this->getRequest()->setParam('storeID',$storeId);
103
+ $this->getRequest()->setParam('store',$storeId);
104
+ $source = AuIt_PublicationBasic_Helper_Filemanager::ROOT;
105
+ // $helper->checkFolder(Mage::getBaseDir('media').DS.'snm-portal'.DS.'print-factory'.DS.'samples');
106
+ $path = $helper->getCurrentPath();
107
+ if ( $this->getRequest()->getParam('id') == 1 )
108
+ {
109
+ $child=array();
110
+ // $child['attr']=array('id'=>$helper->convertPathToId($path),'rel'=>'drive');
111
+ $child['attr']=array('id'=>'ROOT','rel'=>'drive');
112
+ $child['state']='closed';
113
+ $child['data']='MEDIA';
114
+ $child['children']=array();
115
+ $jsonArray[] = $child;
116
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
117
+ $this->getResponse()->setBody(Zend_Json::encode($jsonArray));
118
+ return;
119
+ }
120
+
121
+ $filter = '';
122
+
123
+ $collection = $helper->getStorage()->getDirsCollection($path,'document');
124
+ foreach ($collection as $item) {
125
+ if ( is_dir($item->getFilename()) && (!$filter || $filter == basename($item->getFilename())))
126
+ {
127
+ $child=array();
128
+
129
+
130
+ $child['attr']=array('id'=>$helper->convertPathToId($item->getFilename()),'rel'=>'folder');
131
+ $child['state']='closed';
132
+ $child['data']=array('title'=>$item->getBasename(),'icon'=>'folder');
133
+ $child['children']=array();
134
+ $jsonArray[] = $child;
135
+ }
136
+ }
137
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
138
+ $this->getResponse()->setBody(Zend_Json::encode($jsonArray));
139
+ }
140
+ protected function _create_node()
141
+ {
142
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
143
+ $path = $helper->getCurrentPath();
144
+ $name = $this->getRequest()->getParam('title');
145
+ $status=0;$id=0;
146
+ if ( $name && ($this->getRequest()->getParam('type') == 'folder') )
147
+ {
148
+ if ( $helper->checkFolder($path.DS.$name) )
149
+ {
150
+ $id = $helper->convertPathToId($path.DS.$name);
151
+ $status=1;
152
+ }
153
+ }
154
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
155
+ $this->getResponse()->setBody(Zend_Json::encode(array('status'=>$status,'id'=>$id)));
156
+ }
157
+ protected function _rename_node()
158
+ {
159
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
160
+ $path = $helper->getCurrentPath();
161
+ $newName = $this->getRequest()->getParam('title');
162
+ $status=0;
163
+ $id=0;
164
+ if ( is_dir($path) ) {
165
+ $newPath = $helper->getStorage()->renameDirectory($newName,$path);
166
+ $id = $helper->convertPathToId($newPath);
167
+ $status=1;
168
+ }
169
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
170
+ $this->getResponse()->setBody(Zend_Json::encode(array('status'=>$status,'id'=>$id)));
171
+ }
172
+ protected function _remove_node()
173
+ {
174
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
175
+ $path = $helper->getCurrentPath();
176
+ if ( is_dir($path) )
177
+ $helper->getStorage()->deleteDirectory($helper->getCurrentPath());
178
+ $status=1;$id=0;
179
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
180
+ $this->getResponse()->setBody(Zend_Json::encode(array('status'=>$status,'id'=>$id)));
181
+ }
182
+ protected function _upload_default()
183
+ {
184
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
185
+ $path = $helper->getCurrentPath();
186
+ $status=0;$id=0;
187
+ if ( is_dir($path) )
188
+ {
189
+ $type = null;//trim($request->getParam('type'));
190
+ $result = $helper->getStorage()->uploadFile($path,$type);
191
+ $status=1;$id=0;
192
+ }
193
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
194
+ $this->getResponse()->setBody(Zend_Json::encode(array('status'=>$status,'id'=>$id)));
195
+ }
196
+
197
+ protected function _search()
198
+ {
199
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
200
+ $search_str = $this->getRequest()->getParam('search_str');
201
+ $path = $helper->convertIdToPath($search_str,false);
202
+ $result=array();
203
+ if ( is_file($path) )
204
+ {
205
+ $treepath = $helper->convertPathToArea($path);
206
+ $treepath = explode(DS,$treepath);
207
+ $full = array_shift($treepath);
208
+ $result[]='#'.$full;
209
+ foreach ( $treepath as $subpath )
210
+ {
211
+ $full .= DS.$subpath;
212
+ $result[]='#'.$helper->urlEncode($full);
213
+ }
214
+ }
215
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
216
+ $this->getResponse()->setBody(Zend_Json::encode($result));
217
+ }
218
+ }
app/code/local/AuIt/PublicationBasic/controllers/Admin/ImportController.php ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Admin_ImportController extends Mage_Adminhtml_Controller_Action
3
+ {
4
+ protected function _construct()
5
+ {
6
+ // Define module dependent translate
7
+ // $this->setUsedModuleName('Mage_ImportExport');
8
+ }
9
+
10
+ protected function _initAction()
11
+ {
12
+ $this->_title($this->__('Import Template'))
13
+ ->loadLayout()
14
+ ->_setActiveMenu('auit_publicationbasic/import');
15
+
16
+ return $this;
17
+ }
18
+ protected function _isAllowed()
19
+ {
20
+ return Mage::getSingleton('admin/session')->isAllowed('snm/auit_publicationbasic/import');
21
+ }
22
+ public function indexAction()
23
+ {
24
+ $maxUploadSize = Mage::helper('importexport')->getMaxUploadSize();
25
+ $this->_getSession()->addNotice(
26
+ $this->__('Total size of uploadable files must not exceed %s', $maxUploadSize)
27
+ );
28
+ $this->_initAction()
29
+ ->_title($this->__('Import'))
30
+ ->_addBreadcrumb($this->__('Import'), $this->__('Import'));
31
+
32
+ $this->renderLayout();
33
+ }
34
+
35
+ /**
36
+ * Start import process action.
37
+ *
38
+ * @return void
39
+ */
40
+ public function startAction()
41
+ {
42
+ $data = $this->getRequest()->getPost();
43
+ if ($data) {
44
+ $this->loadLayout(false);
45
+ /** @var $resultBlock Mage_ImportExport_Block_Adminhtml_Import_Frame_Result */
46
+ $resultBlock = $this->getLayout()->getBlock('import.frame.result');
47
+ $resultBlock->addAction('show', 'import_validation_container')
48
+ ->addAction('innerHTML', 'import_validation_container_header', $this->__('Status'));
49
+
50
+ try {
51
+ $messages = Mage::helper('auit_publicationbasic/export')->importArea($this->getRequest()->getParam('lytarchiv'));
52
+ }catch (Exception $e )
53
+ {
54
+ $messages=array();
55
+ $messages['error'][]=$e->getMessage();
56
+ }
57
+ $bhasErrors=false;
58
+ $bhasTransaction=false;
59
+ foreach ( $messages as $type => $msgs )
60
+ {
61
+ switch ( $type )
62
+ {
63
+ case 'notice':
64
+ foreach ( $msgs as $msg)
65
+ $resultBlock->addNotice($msg);
66
+ break;
67
+ case 'transaction':
68
+ $bhasTransaction=true;
69
+ break;
70
+ case 'import_dir':
71
+ case 'import_key':
72
+ break;
73
+ default:
74
+ $bhasErrors=true;
75
+ foreach ( $msgs as $msg)
76
+ $resultBlock->addError($msg);
77
+ break;
78
+ }
79
+ }
80
+ if ( !$bhasErrors ){
81
+
82
+ if ( $bhasTransaction )
83
+ {
84
+ try{
85
+ foreach ( $messages['transaction'] as &$model)
86
+ {
87
+ $model->save();
88
+ }
89
+ }
90
+ catch(Exception $e)
91
+ {
92
+ $bhasErrors=true;
93
+ $resultBlock->addError($e->getMessage());
94
+ }
95
+ }
96
+ if ( !$bhasErrors ){
97
+ $resultBlock->addAction('hide', array('edit_form', 'upload_button', 'messages'))
98
+ ->addSuccess($this->__('Import successfully done.'));
99
+ }
100
+ }
101
+ try{
102
+ if ( is_dir_writeable($messages['import_dir']) )
103
+ {
104
+ $io = new Varien_Io_File();
105
+ $io->rmdir($messages['import_dir'], true);
106
+ }
107
+ }
108
+ catch(Exception $e)
109
+ {
110
+ }
111
+
112
+ $this->renderLayout();
113
+ } else {
114
+ $this->_redirect('*/*/index');
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Validate uploaded files action.
120
+ *
121
+ * @return void
122
+ */
123
+ public function validateAction()
124
+ {
125
+ $data = $this->getRequest()->getPost();
126
+ if ($data) {
127
+ $this->loadLayout(false);
128
+ /** @var $resultBlock Mage_ImportExport_Block_Adminhtml_Import_Frame_Result */
129
+ $resultBlock = $this->getLayout()->getBlock('import.frame.result');
130
+ // common actions
131
+ $resultBlock->addAction('show', 'import_validation_container')
132
+ ->addAction('clear', array(
133
+ 'publication_import_file',
134
+ 'publication_import_file_archive')
135
+ );
136
+
137
+ try {
138
+ $messages = Mage::helper('auit_publicationbasic/export')->validImport($data);
139
+ $bhasErrors=false;
140
+ $bhasTransaction=false;
141
+ foreach ( $messages as $type => $msgs )
142
+ {
143
+ switch ( $type )
144
+ {
145
+ case 'notice':
146
+ foreach ( $msgs as $msg)
147
+ $resultBlock->addNotice($msg);
148
+ break;
149
+ case 'transaction':
150
+ $bhasTransaction=true;
151
+ break;
152
+ case 'import_dir':
153
+ case 'import_key':
154
+ break;
155
+ default:
156
+ $bhasErrors=true;
157
+ foreach ( $msgs as $msg)
158
+ $resultBlock->addError($msg);
159
+ break;
160
+ }
161
+ }
162
+ if ( !$bhasErrors && $bhasTransaction){
163
+ $resultBlock->addSuccess(
164
+ $this->__('File is valid! To start import process press "Import" button'), true,$messages['import_key']);
165
+ }
166
+ else {
167
+ try{
168
+ if ( is_dir_writeable($messages['import_dir']) )
169
+ {
170
+ $io = new Varien_Io_File();
171
+ $io->rmdir($messages['import_dir'], true);
172
+ }
173
+ }
174
+ catch(Exception $e)
175
+ {
176
+ }
177
+ }
178
+ } catch (Exception $e) {
179
+ $resultBlock->addNotice($this->__('Please fix errors and re-upload file'))
180
+ ->addError($e->getMessage());
181
+ }
182
+
183
+
184
+ $this->renderLayout();
185
+ } elseif ($this->getRequest()->isPost() && empty($_FILES)) {
186
+ $this->loadLayout(false);
187
+ $resultBlock = $this->getLayout()->getBlock('import.frame.result');
188
+ $resultBlock->addError($this->__('File was not uploaded'));
189
+ $this->renderLayout();
190
+ } else {
191
+ $this->_getSession()->addError($this->__('Data is invalid or file is not uploaded'));
192
+ $this->_redirect('*/*/index');
193
+ }
194
+ }
195
+ }
app/code/local/AuIt/PublicationBasic/controllers/Admin/JobqueueController.php ADDED
@@ -0,0 +1,355 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ // https://github.com/kschroeder/Magento-ZendServer-JobQueue
3
+ class AuIt_PublicationBasic_Admin_JobqueueController extends Mage_Adminhtml_Controller_Action
4
+ {
5
+ protected function _initAction()
6
+ {
7
+ // load layout, set active menu and breadcrumbs
8
+ $this->_title($this->__('SNM Publication'))->_title($this->__('Job Queue'));
9
+ $this->loadLayout()->_setActiveMenu('auit_publicationbasic/jobqueue');
10
+ Mage::helper('auit_publicationbasic')->checkMediaFolder();
11
+ return $this;
12
+ }
13
+ /**
14
+ * Index action
15
+ */
16
+ public function indexAction()
17
+ {
18
+ $this->_initAction();
19
+ $this->renderLayout();
20
+ }
21
+ public function newAction()
22
+ {
23
+ /*
24
+ $this->_initAction();
25
+ $this->renderLayout();
26
+ */
27
+ }
28
+
29
+ public function chooserAction()
30
+ {
31
+ $type = 'auit_publicationbasic/adminhtml_jobqueue_edit_tab_products_grid';
32
+ if (!empty($type)) {
33
+ $block = $this->getLayout()->createBlock($type);
34
+ if ($block) {
35
+ $this->getResponse()->setBody($block->toHtml());
36
+ }
37
+ }
38
+
39
+ }
40
+ public function newpromoAction()
41
+ {
42
+ Mage::getSingleton('adminhtml/session')->setData('new_auit_publication', 11);
43
+ $this->_initAction();
44
+ $this->renderLayout();
45
+ }
46
+ public function downloadAction()
47
+ {
48
+ /* @var $model AuIt_PublicationBasic_Model_Jobqueue */
49
+ $model = Mage::getModel('auit_publicationbasic/jobqueue');
50
+ $model->load($this->getRequest()->getParam('id'));
51
+ if (!$model->getId() || !$model->downloadExists()) {
52
+ return $this->_redirect('*/*');
53
+ }
54
+
55
+ $fileName = $model->getFilename();
56
+
57
+ $this->_prepareDownloadResponse($fileName, null, 'application/pdf',$model->getFileSize());
58
+ $this->getResponse()->sendHeaders();
59
+ $model->outputFile();
60
+ exit();
61
+ }
62
+
63
+ public function editAction()
64
+ {
65
+ $id = $this->getRequest()->getParam('jobqueue_id');
66
+ $type = $this->getRequest()->getParam('type');
67
+ $model = Mage::getModel('auit_publicationbasic/jobqueue');
68
+ $model->load($id);
69
+ if (!$model->getId() && $type ) {
70
+ $model->setType($type);
71
+ $model->setVariante($this->getRequest()->getParam('variante'));
72
+ }
73
+ if ($model->getId() || $model->getType()) {
74
+ Mage::getSingleton('adminhtml/session')->setData('new_auit_publication', false);
75
+ } else {
76
+ $this->_redirect('*/*/');
77
+ return;
78
+ }
79
+ $model->initialBasisData();
80
+ $data = Mage::getSingleton('adminhtml/session')->getFormData(true);
81
+ if (!empty($data)) {
82
+ $model->addData($data);
83
+ }
84
+ Mage::register('auit_publicationbasic_jobqueue', $model);
85
+ $this->_initAction()->renderLayout();
86
+ }
87
+
88
+ /**
89
+ * Save action
90
+ */
91
+ public function saveAction()
92
+ {
93
+ // check if data sent
94
+ if ($data = $this->getRequest()->getPost()) {
95
+ $id = $this->getRequest()->getParam('jobqueue_id');
96
+ if ( !$id && $this->getRequest()->getParam('type') ) {
97
+ if ( Mage::getSingleton('adminhtml/session')->getData('new_auit_publication') )
98
+ {
99
+ $this->_redirect('*/*/edit', array('type' => $this->getRequest()->getParam('type'),'variante' => $this->getRequest()->getParam('variante')));
100
+ return;
101
+
102
+ }
103
+ }
104
+ $model = Mage::getModel('auit_publicationbasic/jobqueue')->load($id);
105
+ $model->setQueueStartAtByString($this->getRequest()->getParam('start_at'));
106
+ if (!$model->getId() && $id) {
107
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('auit_publicationbasic')->__('This jobqueue no longer exists.'));
108
+ $this->_redirect('*/*/');
109
+ return;
110
+ }
111
+ // try to save it
112
+ try {
113
+ // init model and set data
114
+ $model->addData($data);
115
+
116
+ // save the data
117
+ $model->save();
118
+ // display success message
119
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('auit_publicationbasic')->__('The jobqueue has been saved.'));
120
+ // clear previously saved data from session
121
+ Mage::getSingleton('adminhtml/session')->setFormData(false);
122
+ // check if 'Save and Continue'
123
+ if ($this->getRequest()->getParam('back')) {
124
+ $this->_redirect('*/*/edit', array('jobqueue_id' => $model->getId(), '_current'=>true));
125
+ return;
126
+ }
127
+ // go to grid
128
+ $this->_redirect('*/*/');
129
+ return;
130
+
131
+ } catch (Exception $e) {
132
+ // display error message
133
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
134
+ // save data in session
135
+ Mage::getSingleton('adminhtml/session')->setFormData($data);
136
+ // redirect to edit form
137
+ $this->_redirect('*/*/edit', array('jobqueue_id' => $this->getRequest()->getParam('jobqueue_id')));
138
+ return;
139
+ }
140
+ }
141
+ $this->_redirect('*/*/');
142
+ }
143
+
144
+ /**
145
+ * Delete action
146
+ */
147
+ public function deleteAction()
148
+ {
149
+ // check if we know what should be deleted
150
+ if ($id = $this->getRequest()->getParam('jobqueue_id')) {
151
+ try {
152
+ // init model and delete
153
+ $model = Mage::getModel('auit_publicationbasic/jobqueue');
154
+ $model->load($id);
155
+ $model->delete();
156
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('auit_publicationbasic')->__('The jobqueue has been deleted.'));
157
+ $this->_redirect('*/*/');
158
+ return;
159
+
160
+ } catch (Exception $e) {
161
+ // display error message
162
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
163
+ // go back to edit form
164
+ $this->_redirect('*/*/edit', array('jobqueue_id' => $id));
165
+ return;
166
+ }
167
+ }
168
+ // display error message
169
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('auit_publicationbasic')->__('Unable to find a jobqueue to delete.'));
170
+ // go to grid
171
+ $this->_redirect('*/*/');
172
+ }
173
+ public function massDeleteAction()
174
+ {
175
+ $Ids = $this->getRequest()->getParam('jobqueue_ids');
176
+ $session = Mage::getSingleton('adminhtml/session');
177
+
178
+ if(!is_array($Ids)) {
179
+ $session->addError(Mage::helper('adminhtml')->__('Please select.'));
180
+ } else {
181
+ try {
182
+ foreach ($Ids as $itemId) {
183
+ $model = Mage::getModel('auit_publicationbasic/jobqueue')->load($itemId);
184
+ $model->delete();
185
+ }
186
+ Mage::getSingleton('adminhtml/session')->addSuccess(
187
+ Mage::helper('adminhtml')->__('Total of %d record(s) have been deleted.', count($Ids))
188
+ );
189
+ } catch (Mage_Core_Exception $e) {
190
+ $session->addError($e->getMessage());
191
+ } catch (Exception $e){
192
+ $session->addException($e, Mage::helper('adminhtml')->__('An error occurred while deleting record(s).'));
193
+ }
194
+ }
195
+ $this->_redirect('*/*/' . $this->getRequest()->getParam('ret', 'index'));
196
+ }
197
+ public function massCancelAction()
198
+ {
199
+ $Ids = $this->getRequest()->getParam('jobqueue_ids');
200
+ $session = Mage::getSingleton('adminhtml/session');
201
+
202
+ if(!is_array($Ids)) {
203
+ $session->addError(Mage::helper('adminhtml')->__('Please select.'));
204
+ } else {
205
+ try {
206
+ foreach ($Ids as $itemId) {
207
+ $model = Mage::getModel('auit_publicationbasic/jobqueue')->load($itemId);
208
+ $model->setQueueState(AuIt_PublicationBasic_Model_Jobqueue::STATE_CANCELED);
209
+ $model->save();
210
+ }
211
+ } catch (Mage_Core_Exception $e) {
212
+ $session->addError($e->getMessage());
213
+ } catch (Exception $e){
214
+ $session->addException($e, Mage::helper('adminhtml')->__('An error occurred while change record(s).'));
215
+ }
216
+ }
217
+ $this->_redirect('*/*/' . $this->getRequest()->getParam('ret', 'index'));
218
+ }
219
+ public function massResetAction()
220
+ {
221
+ $Ids = $this->getRequest()->getParam('jobqueue_ids');
222
+ $session = Mage::getSingleton('adminhtml/session');
223
+
224
+ if(!is_array($Ids)) {
225
+ $session->addError(Mage::helper('adminhtml')->__('Please select.'));
226
+ } else {
227
+ try {
228
+ foreach ($Ids as $itemId) {
229
+ $model = Mage::getModel('auit_publicationbasic/jobqueue')->load($itemId);
230
+ $model->setQueueState(AuIt_PublicationBasic_Model_Jobqueue::STATE_WAIT);
231
+ $model->save();
232
+ }
233
+ } catch (Mage_Core_Exception $e) {
234
+ $session->addError($e->getMessage());
235
+ } catch (Exception $e){
236
+ $session->addException($e, Mage::helper('adminhtml')->__('An error occurred while change record(s).'));
237
+ }
238
+ }
239
+ $this->_redirect('*/*/' . $this->getRequest()->getParam('ret', 'index'));
240
+ }
241
+ public function massStartAction()
242
+ {
243
+ $Ids = $this->getRequest()->getParam('jobqueue_ids');
244
+ $session = Mage::getSingleton('adminhtml/session');
245
+
246
+ if(!is_array($Ids)) {
247
+ $session->addError(Mage::helper('adminhtml')->__('Please select.'));
248
+ } else {
249
+
250
+ try {
251
+ foreach ($Ids as $itemId) {
252
+ $model = Mage::getModel('auit_publicationbasic/jobqueue')->load($itemId);
253
+ $model->setQueueState(AuIt_PublicationBasic_Model_Jobqueue::STATE_START_NOW);
254
+ $model->save();
255
+ }
256
+ } catch (Mage_Core_Exception $e) {
257
+ $session->addError($e->getMessage());
258
+ } catch (Exception $e){
259
+ Mage::log($e->getMessage());
260
+ $session->addException($e, Mage::helper('adminhtml')->__('An error occurred while change record(s).'));
261
+ }
262
+
263
+ try {
264
+ // NUR PING!!
265
+ $uri = Zend_Uri::factory(str_replace('/media/','/cron.php',Mage::getBaseUrl('media')).'?aqc='.implode(',', $Ids));
266
+ $socket = new Zend_Http_Client_Adapter_Socket();
267
+ $socket->setConfig(array('timeout'=>30));
268
+ if ( !$uri->getPort() )
269
+ $uri->setPort(80);
270
+ $socket->connect($uri->getHost(), $uri->getPort(), ($uri->getScheme() == 'https' ? true : false));
271
+ $socket->write('GET', $uri,'1.1',array('Host: '.$uri->getHost()));
272
+
273
+ } catch (Exception $e){
274
+ Mage::log($e->getMessage());
275
+ }
276
+ }
277
+ $this->_redirect('*/*/' . $this->getRequest()->getParam('ret', 'index'));
278
+ }
279
+ public function testAdd()
280
+ {
281
+ $product_id = 168;
282
+
283
+ $product = Mage::getModel('catalog/product')->load($product_id);
284
+
285
+ $param = array( 'product' => $product->getId(),
286
+ 'qty' => 1,
287
+ 'options' => array(
288
+ $option_id => $option_value,
289
+ $option_id2 => $option_value2,
290
+ ),
291
+ );
292
+
293
+ $cart = Mage::getModel('checkout/cart')->init();
294
+ $cart->addProduct($product, new Varien_Object($param));
295
+ $cart->save();
296
+ $product_id = 1234;
297
+ $option_id = "ID deines Options Feldes";
298
+
299
+ $product = Mage::getModel('catalog/product')->load($product_id);
300
+
301
+ $param = array( 'product' => $product->getId(),
302
+ 'qty' => 1,
303
+ 'options' => array(
304
+ $option_id => $JSON_STRING
305
+ ),
306
+ );
307
+
308
+ $cart = Mage::getModel('checkout/cart')->init();
309
+ $cart->addProduct($product, new Varien_Object($param));
310
+
311
+
312
+ $cart->save();
313
+
314
+ $service = Mage::getModel('sales/service_quote', $cart->getQuote());
315
+ $service->submitAll();
316
+ $order = $service->getOrder();
317
+
318
+ }
319
+ public function massHoldAction()
320
+ {
321
+ //$this->testAdd();
322
+
323
+ $Ids = $this->getRequest()->getParam('jobqueue_ids');
324
+ $session = Mage::getSingleton('adminhtml/session');
325
+
326
+ if(!is_array($Ids)) {
327
+ $session->addError(Mage::helper('adminhtml')->__('Please select.'));
328
+ } else {
329
+ try {
330
+ foreach ($Ids as $itemId) {
331
+ $model = Mage::getModel('auit_publicationbasic/jobqueue')->load($itemId);
332
+ $model->setQueueState(AuIt_PublicationBasic_Model_Jobqueue::STATE_HOLD);
333
+ $model->save();
334
+ }
335
+ } catch (Mage_Core_Exception $e) {
336
+ $session->addError($e->getMessage());
337
+ } catch (Exception $e){
338
+ $session->addException($e, Mage::helper('adminhtml')->__('An error occurred while change record(s).'));
339
+ }
340
+ }
341
+ $this->_redirect('*/*/' . $this->getRequest()->getParam('ret', 'index'));
342
+ }
343
+
344
+ /**
345
+ * Check the permission to run it
346
+ *
347
+ * @return boolean
348
+ */
349
+ protected function _isAllowed()
350
+ {
351
+ return Mage::getSingleton('admin/session')->isAllowed('snm/auit_publicationbasic/jobqueue');
352
+ }
353
+
354
+
355
+ }
app/code/local/AuIt/PublicationBasic/controllers/Admin/PreviewController.php ADDED
@@ -0,0 +1,181 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Admin_PreviewController extends Mage_Adminhtml_Controller_Action
3
+ {
4
+ /**
5
+ * Index action
6
+ */
7
+ public function indexAction()
8
+ {
9
+ }
10
+ public function pdfAction()
11
+ {
12
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_pdf');
13
+ try {
14
+ $pdf = $pdfPublication->getPdfFromData('preview',$this->getRequest()->getParam('preview'));
15
+ // $data = $pdf->render();
16
+ // file_put_contents('test.pdf', $data);
17
+ $this->_prepareDownloadResponse('preview_'.Mage::getSingleton('core/date')->date('Y-m-d_H-i-s').'.pdf', $pdf->render(), 'application/pdf');
18
+ $this->getResponse()->sendResponse();
19
+ exit;
20
+ }
21
+ catch ( Exception $e )
22
+ {
23
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
24
+ $this->_redirect('adminhtml');
25
+ return;
26
+
27
+
28
+ }
29
+ }
30
+ public function jobAction()
31
+ {
32
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_pdf');
33
+ try {
34
+ if ( $this->getRequest()->getParams() )
35
+ {
36
+ $job =Mage::getModel('auit_publicationbasic/jobqueue');
37
+ $job->setData($this->getRequest()->getParams());
38
+ //Mage::log($job->getData());
39
+ $pdf = $pdfPublication->getPdfFromJobData('preview',$job);
40
+ $this->_prepareDownloadResponse('preview_'.Mage::getSingleton('core/date')->date('Y-m-d_H-i-s').'.pdf', $pdf->render(), 'application/pdf');
41
+ $this->getResponse()->sendResponse();
42
+ }
43
+ exit;
44
+ }
45
+ catch ( Exception $e )
46
+ {
47
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
48
+ $this->_redirect('adminhtml');
49
+ return;
50
+
51
+
52
+ }
53
+ }
54
+ public function searchAction()
55
+ {
56
+ $data=array();
57
+ if ( $ping = $this->getRequest()->getParam('ping') )
58
+ {
59
+ $this->getResponse()->setHeader('Content-type', 'image/png');
60
+ $this->getResponse()->setBody('');
61
+ return;
62
+ }
63
+
64
+ if ( $term = $this->getRequest()->getParam('term') )
65
+ {
66
+ $helper = Mage::getResourceHelper('core');
67
+ $likeExpression = $helper->addLikeEscape($term, array('position' => 'any'));
68
+ $collection = Mage::getResourceModel('catalog/product_collection')
69
+ ->setStore(Mage::app()->getStore())
70
+ ->addAttributeToSelect('name')
71
+ ->addAttributeToFilter('visibility', array('neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE))
72
+ //->addAttributeToFilter('sku',array('like'=>$likeExpression));
73
+ ->addAttributeToFilter(
74
+ array(
75
+ array('attribute' => 'name', array('like'=>$likeExpression)),
76
+ array('attribute' => 'sku', array('like'=>$likeExpression))
77
+ )
78
+ );
79
+
80
+ foreach ( $collection as $product )
81
+ {
82
+ $data[]=array("id"=>$product->getId(), "label"=>$product->getSku().' / '.$product->getName(), "value"=>$product->getSku());
83
+ }
84
+ if ( !count($data) )
85
+ $data[]=array("id"=>'', "label"=>$this->__('No data found'), "value"=>'');
86
+ }
87
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
88
+ $this->getResponse()->setBody(Zend_Json::encode($data));
89
+ }
90
+ public function productpreviewAction()
91
+ {
92
+
93
+ if ( $sku = $this->getRequest()->getParam('tid') )
94
+ {
95
+ try {
96
+
97
+ // $sku =rawurldecode($sku);
98
+
99
+ $product = Mage::helper('catalog/product')->getProduct($sku,null,'sku');
100
+ $url=''.Mage::helper('catalog/image')->init($product, 'thumbnail')->resize(75, 75);
101
+ $this->getResponse()->setRedirect($url);
102
+ return ;
103
+ }
104
+ catch (Exception $p)
105
+ {
106
+
107
+ }
108
+ }
109
+ //$url='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';
110
+ $this->getResponse()->setRedirect( Mage::getBaseUrl('js').'spacer.gif');
111
+ return;// 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII=';
112
+ }
113
+ public function templatepreviewAction()
114
+ {
115
+ if ( $templateId = $this->getRequest()->getParam('tid') )
116
+ {
117
+ $update_time = $this->getRequest()->getParam('upd');
118
+ $spread = $this->getRequest()->getParam('spread');
119
+ if ( $spread == 0 )$spread=1;
120
+ $path = Mage::helper('auit_publicationbasic/pdf')->getPreviewImage($templateId,$update_time,true,$spread);
121
+ $url = Mage::getBaseUrl('js').'auit/publicationbasic/images/no-imagick.jpg';
122
+ if ( $path && file_exists($path) )
123
+ {
124
+ $fileName=basename($path);
125
+ $url=Mage::getBaseUrl('media').'catalog/product/cache/_snm_publication_previews/'.$fileName.'?t='.$update_time;
126
+ }
127
+ $this->getResponse()->setRedirect($url);
128
+ }else if ( $jobId = $this->getRequest()->getParam('jid') ) {
129
+ $update_time = $this->getRequest()->getParam('upd');
130
+ $job = Mage::getModel('auit_publicationbasic/jobqueue')->load($jobId);
131
+ $path = $job->getPreviewImage();
132
+ $url = Mage::getBaseUrl('js').'auit/publicationbasic/images/no-imagick.jpg';
133
+ if ( $path && file_exists($path) )
134
+ {
135
+ $fileName=basename($path);
136
+ $url=Mage::getBaseUrl('media').'catalog/product/cache/_snm_publication_previews/'.$fileName.'?t='.$update_time;
137
+ }
138
+ $this->getResponse()->setRedirect($url);
139
+
140
+ }else {
141
+ // #3ebac6
142
+ $this->getResponse()->setRedirect( Mage::getBaseUrl('js').'auit/publicationbasic/images/empty_template.png');
143
+ //$this->getResponse()->setRedirect( Mage::getBaseUrl('js').'auit/publicationbasic/images/trash.svg');
144
+ }
145
+ }
146
+ public function infoAction()
147
+ {
148
+ try {
149
+ $cmd = $this->getRequest()->getParam('operation');
150
+ switch ( $cmd )
151
+ {
152
+ case 'staticvariables':
153
+ $this->_staticvariables();
154
+ break;
155
+ break;
156
+ }
157
+ } catch ( Exception $e ) {
158
+
159
+ Mage::log ( "AuIt_PublicationBasic_Admin_TemplatesController::Exception - " . $e->getMessage () );
160
+ $this->getResponse ()->setHeader ( 'Content-type', 'application/json; charset=UTF-8' );
161
+ $this->getResponse ()->setBody ( Zend_Json::encode ( array (
162
+ 'status' => 0,
163
+ 'error' => $e->getMessage ()
164
+ ) ) );
165
+ return;
166
+ }
167
+ }
168
+ protected function _staticvariables()
169
+ {
170
+ $id = $this->getRequest()->getParam('id');
171
+ $model = Mage::getModel('auit_publicationbasic/template')->load($id);
172
+ $data=array();
173
+ if ( $model->getId() )
174
+ {
175
+ $data = $model->buildObjectList();
176
+ }
177
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
178
+ $this->getResponse()->setBody(Zend_Json::encode($data));
179
+ }
180
+
181
+ }
app/code/local/AuIt/PublicationBasic/controllers/Admin/ShapeController.php ADDED
@@ -0,0 +1,104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_Admin_ShapeController extends Mage_Adminhtml_Controller_Action
3
+ {
4
+ /**
5
+ * Index action
6
+ */
7
+ public function indexAction()
8
+ {
9
+ }
10
+ public function clipSVGAction()
11
+ {
12
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_pdf');
13
+ try {
14
+ $pdf = $pdfPublication->getPdfFromData('preview',$this->getRequest()->getParam('preview'));
15
+ // $data = $pdf->render();
16
+ // file_put_contents('test.pdf', $data);
17
+ $this->_prepareDownloadResponse('preview_'.Mage::getSingleton('core/date')->date('Y-m-d_H-i-s').'.pdf', $pdf->render(), 'application/pdf');
18
+ $this->getResponse()->sendResponse();
19
+ exit;
20
+ }
21
+ catch ( Exception $e )
22
+ {
23
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
24
+ $this->_redirect('adminhtml');
25
+ return;
26
+
27
+
28
+ }
29
+ }
30
+ public function searchAction()
31
+ {
32
+ $data=array();
33
+ if ( $ping = $this->getRequest()->getParam('ping') )
34
+ {
35
+ $this->getResponse()->setHeader('Content-type', 'image/png');
36
+ $this->getResponse()->setBody('');
37
+ return;
38
+ }
39
+
40
+ if ( $term = $this->getRequest()->getParam('term') )
41
+ {
42
+ $helper = Mage::getResourceHelper('core');
43
+ $likeExpression = $helper->addLikeEscape($term, array('position' => 'any'));
44
+ $collection = Mage::getResourceModel('catalog/product_collection')
45
+ ->setStore(Mage::app()->getStore())
46
+ ->addAttributeToSelect('name')
47
+ ->addAttributeToFilter('visibility', array('neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE))
48
+ //->addAttributeToFilter('sku',array('like'=>$likeExpression));
49
+ ->addAttributeToFilter(
50
+ array(
51
+ array('attribute' => 'name', array('like'=>$likeExpression)),
52
+ array('attribute' => 'sku', array('like'=>$likeExpression))
53
+ )
54
+ );
55
+
56
+ foreach ( $collection as $product )
57
+ {
58
+ $data[]=array("id"=>$product->getId(), "label"=>$product->getSku().' / '.$product->getName(), "value"=>$product->getSku());
59
+ }
60
+ if ( !count($data) )
61
+ $data[]=array("id"=>'', "label"=>$this->__('No data found'), "value"=>'');
62
+ }
63
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
64
+ $this->getResponse()->setBody(Zend_Json::encode($data));
65
+ }
66
+ public function templatepreviewAction()
67
+ {
68
+ if ( $templateId = $this->getRequest()->getParam('tid') )
69
+ {
70
+ $update_time = $this->getRequest()->getParam('upd');
71
+ $path = Mage::helper('auit_publicationbasic/pdf')->getPreviewImage($templateId,$update_time);
72
+ /*
73
+
74
+ $fileName = 'preview_template_'.$templateId.'.jpg';
75
+ $directory = Mage::getBaseDir('media') . DS.'catalog'.DS.'product'.DS.'cache'.DS.'_snm_publication_previews'.DS;
76
+ $path = $directory.$fileName;
77
+ if ( extension_loaded('imagick')) {
78
+
79
+ if ( !file_exists($path) || filemtime($path) < $update_time)
80
+ {
81
+ $io = new Varien_Io_File();
82
+ if ( !$io->isWriteable(dirname($path)) && !$io->mkdir(dirname($path), 0777, true)) {
83
+ $msg = Mage::helper('catalog')->__("Cannot create writeable directory '%s'.", $path);
84
+ Mage::log($msg );
85
+ Mage::getSingleton('adminhtml/session')->addError($msg );
86
+ }else {
87
+ $model = Mage::getModel('auit_publicationbasic/template')->load($templateId);
88
+ if ( $model->getId() ) {
89
+ Mage::helper('auit_publicationbasic/pdf')->createPreviewImage($model,$path);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ */
95
+ $url = Mage::getBaseUrl('js').'auit/publicationbasic/images/no-imagick.jpg';
96
+ if ( $path && file_exists($path) )
97
+ {
98
+ $fileName=basename($path);
99
+ $url=Mage::getBaseUrl('media').'catalog/product/cache/_snm_publication_previews/'.$fileName.'?t='.$update_time;
100
+ }
101
+ $this->getResponse()->setRedirect($url);
102
+ }
103
+ }
104
+ }
app/code/local/AuIt/PublicationBasic/controllers/ContentController.php ADDED
@@ -0,0 +1,270 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ class AuIt_PublicationBasic_ContentController extends Mage_Core_Controller_Front_Action
3
+ {
4
+ /**
5
+ * Index action
6
+ */
7
+ public function indexAction()
8
+ {
9
+ }
10
+ public function datasheetAction()
11
+ {
12
+ $pdfPublication = Mage::getModel('auit_publicationbasic/renderer_pdf');
13
+ try {
14
+ if ( ($sku = base64_decode($this->getRequest()->getParam('skub64')) )
15
+ ||
16
+ ($sku = trim($this->getRequest()->getParam('sku')))
17
+ )
18
+ {
19
+ $_product = Mage::getModel('catalog/product');
20
+ $_product->setStoreId(Mage::app()->getStore()->getId());
21
+ $pid = $_product->getIdBySku($sku);
22
+ if ( $pid )
23
+ $_product->load($pid);
24
+ $model = null;
25
+ $tuid= $this->getRequest()->getParam('tuid');
26
+
27
+ if ( $tuid )
28
+ {
29
+ $model = Mage::getModel('auit_publicationbasic/template')->load($tuid,'identifier');
30
+ if ( !$model->getId() )
31
+ $model=null;
32
+ }
33
+ if ( !$model )
34
+ {
35
+ $tid= (int)$this->getRequest()->getParam('tid');
36
+ if ( !$tid ){
37
+ $tid = Mage::helper('auit_publicationbasic/pdf')->getDataSheetTemplateId($_product);
38
+ }
39
+ $model = Mage::getModel('auit_publicationbasic/template')->load($tid);
40
+ }
41
+ if ( $model->getId() )
42
+ {
43
+ $data = Mage::helper('core')->jsonDecode($model->getData('data'));
44
+ $data['preview_store']=Mage::app()->getStore()->getId();
45
+ $data['preview_sku']=$sku;
46
+ $pdf = $pdfPublication->getPdfFromData('preview',$data);
47
+ $this->_prepareDownloadResponse('preview_'.Mage::getSingleton('core/date')->date('Y-m-d_H-i-s').'.pdf', $pdf->render(), 'application/pdf');
48
+ $this->getResponse()->sendResponse();
49
+ exit;
50
+ return;
51
+ }
52
+ }
53
+ }
54
+ catch ( Exception $e )
55
+ {
56
+ Mage::logException($e);
57
+ }
58
+ $this->_forward('noRoute');
59
+ }
60
+
61
+ public function templAction()
62
+ {
63
+ $data=null;
64
+ if ( $tid = $this->getRequest()->getParam('tid') )
65
+ {
66
+ $model = Mage::getModel('auit_publicationbasic/template')->load($tid,'identifier');
67
+ if ( $model->getId() )
68
+ {
69
+ $pid = $this->getRequest()->getParam('pid');
70
+ $store= $this->getRequest()->getParam('store');
71
+ $obj = Mage::helper('auit_publicationbasic')->cleanLayoutData($model->getData('data'));
72
+ if ( !$pid )
73
+ $pid=$obj['preview_sku'];
74
+ if ( !$store )
75
+ $store=$obj['preview_store'];
76
+ $type= $model->getType();
77
+
78
+ $data['data']=$obj;
79
+ $data['productData']=Mage::helper('auit_publicationbasic')->getPreviewData($pid,$type,$store);
80
+ $data = Mage::helper('core')->jsonEncode($data);
81
+ }
82
+ }else {
83
+ // GRoup produkt daten anfordern
84
+ $pid = $this->getRequest()->getParam('pid');
85
+ $store= $this->getRequest()->getParam('store');
86
+
87
+ $data['productData']=Mage::helper('auit_publicationbasic')->getPreviewData($pid,AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT,$store);
88
+ $data = Mage::helper('core')->jsonEncode($data);
89
+ }
90
+ if ( !$data )$data=Zend_Json::encode(array());
91
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
92
+ $this->getResponse()->setBody($data);
93
+ }
94
+ public function blockAction()
95
+ {
96
+ $data=array('html'=>'');
97
+ if ( $tid = $this->getRequest()->getParam('tid') )
98
+ {
99
+ $store= $this->getRequest()->getParam('store');
100
+ $data['html']=Mage::helper('auit_publicationbasic')->getStaticBlockHTML($tid,$store);
101
+ }
102
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
103
+ $this->getResponse()->setBody(Zend_Json::encode($data));
104
+ }
105
+ public function generatorAction()
106
+ {
107
+ $data=array('html'=>'');
108
+ if ( $tid = $this->getRequest()->getParam('tid') )
109
+ {
110
+ $store= $this->getRequest()->getParam('store');
111
+ $param= $this->getRequest()->getParam('param');
112
+ $pid= $this->getRequest()->getParam('pid');
113
+ $cls= $this->getRequest()->getParam('cls');
114
+ $data=Mage::helper('auit_publicationbasic')->getGeneratorHTML($param,$cls,$tid,$pid,$store);
115
+ }
116
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
117
+ $this->getResponse()->setBody(Zend_Json::encode($data));
118
+ }
119
+ public function imageAction()
120
+ {
121
+ if ( $lbc = $this->getRequest()->getParam('lbc') )
122
+ {
123
+ $code = $this->getRequest()->getParam('data');
124
+ $class = $this->getRequest()->getParam('class');
125
+ $styleid = $this->getRequest()->getParam('styleid');
126
+
127
+ $logo = $this->getRequest()->getParam('logo');
128
+ require_once 'snm3/auit/barcode.php';
129
+ if ( $logo )
130
+ {
131
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
132
+ $logo = $helper->convertIdToPath($logo,false);
133
+ if ( !is_file($logo) )
134
+ $logo = false;
135
+ }
136
+ $color = Mage::helper('auit_publicationbasic/style')->getComputedStyle($styleid,$class,'colour','black');
137
+
138
+ $b1d=array('EAN13','C128','C128A','C128B','C128C','C39');
139
+
140
+ if ( in_array($lbc,$b1d ) )
141
+ {
142
+ $barcode = new AuIt_Barcode1D($code, $lbc);
143
+ $w = $this->getRequest()->getParam('bw');
144
+ $h = $this->getRequest()->getParam('bh');
145
+ $code = $barcode->getBarcodeAsPng($logo,$w, $h, $color);
146
+ }else {
147
+ $barcode = new AuIt_Barcode($code, $lbc);
148
+ $code = $barcode->getBarcodeWithLogo($logo,10, 10, $color);
149
+
150
+ }
151
+ //$this->getResponse()->setHeader('Content-type', 'image/svg+xml');
152
+ $this->getResponse()->setHeader('Content-type', 'image/png');
153
+ $this->getResponse()->setBody($code);
154
+ return;
155
+ }
156
+ if ( $limg = $this->getRequest()->getParam('limg') )
157
+ {
158
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
159
+
160
+ $path = $helper->convertIdToPath($limg,false);
161
+ if ( !is_file($path) )
162
+ {
163
+
164
+ $limg='ROOT/notfound.jpg';
165
+ $path = $helper->convertIdToPath($limg,false);
166
+ }
167
+
168
+ if ( is_file($path) )
169
+ {
170
+ // header_remove();
171
+ Header('Location:'.$helper->getUrl($path));
172
+ exit();
173
+ /*
174
+ $this->getResponse()->setHeader('Content-type', $helper->getMIMEType($path));
175
+ $this->getResponse()->setBody(file_get_contents($path));
176
+ */
177
+ }
178
+ }
179
+ else if ( $limg = $this->getRequest()->getParam('ldpi') )
180
+ {
181
+ $helper = Mage::helper('auit_publicationbasic/filemanager');
182
+ if ( substr($limg,0,4) != 'http')
183
+ $limg= $helper->convertIdToPath($limg,false);
184
+ else {
185
+ $limg = $helper->convertUrlToPathArea($limg);
186
+ $limg= $helper->convertIdToPath($limg,false);
187
+ }
188
+ $this->getResponse()->setBody($helper->getResolution($limg));
189
+ }
190
+ }
191
+ public function dataAction()
192
+ {
193
+ $data=array();
194
+ if ( $style_class = $this->getRequest()->getParam('style_class') )
195
+ {
196
+ $data=Mage::helper('auit_publicationbasic/style')->getCssClasses(array('preview_style'=>$style_class) );
197
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
198
+ $this->getResponse()->setBody(Zend_Json::encode($data));
199
+ return;
200
+ }
201
+ $store = $this->getRequest()->getParam('store');
202
+ if ( $sku = $this->getRequest()->getParam('sku') )
203
+ {
204
+ if ( $type = $this->getRequest()->getParam('type') )
205
+ $data = Mage::helper('auit_publicationbasic')->getPreviewData($sku,$type,$store);
206
+ }
207
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
208
+ $this->getResponse()->setBody(Zend_Json::encode($data));
209
+ }
210
+ /*
211
+ public function searchAction()
212
+ {
213
+ $data=array();
214
+ if ( $term = $this->getRequest()->getParam('term') )
215
+ {
216
+ $helper = Mage::getResourceHelper('core');
217
+ $likeExpression = $helper->addLikeEscape($term, array('position' => 'any'));
218
+ $collection = Mage::getResourceModel('catalog/product_collection')
219
+ ->setStore(Mage::app()->getStore())
220
+ ->addAttributeToSelect('name')
221
+ ->addAttributeToFilter('visibility', array(
222
+ 'neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE))
223
+ ->addAttributeToFilter('sku',array('like'=>$likeExpression));
224
+ foreach ( $collection as $product )
225
+ {
226
+ $data[]=array("id"=>$product->getId(), "label"=>$product->getSku().' / '.$product->getName(), "value"=>$product->getSku());
227
+ }
228
+ if ( !count($data) )
229
+ $data[]=array("id"=>'', "label"=>$this->__('No data found'), "value"=>'');
230
+ }
231
+ $this->getResponse()->setHeader('Content-type', 'application/json; charset=UTF-8');
232
+ $this->getResponse()->setBody(Zend_Json::encode($data));
233
+ }
234
+ */
235
+ public function cssAction()
236
+ {
237
+ $css='';
238
+ $file = Mage::getModuleDir('data', 'AuIt_PublicationBasic') . DS . 'css'.DS.'default.css';
239
+ if ( file_exists($file) )
240
+ $css=file_get_contents($file);
241
+
242
+ if ( $style_id = $this->getRequest()->getParam('style_id') )
243
+ {
244
+ $css .= Mage::helper('auit_publicationbasic/style')->getCss($style_id,'identifier');
245
+ }
246
+ $this->getResponse()->setHeader('Content-type', 'text/css; charset=UTF-8');
247
+ $this->getResponse()->setBody($css);
248
+ }
249
+ public function clipsvgAction()
250
+ {
251
+ $this->getResponse()->clearAllHeaders();
252
+ header('Date: '.gmdate('D, d M Y H:i:s \G\M\T', time()));
253
+ header('Last-Modified: '.gmdate('D, d M Y H:i:s \G\M\T', time()));
254
+
255
+ header("Cache-Control: public, max-age=" . 3600*24);
256
+ header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600*24));
257
+
258
+ $this->getResponse()->setHeader('Content-type', 'image/svg+xml')
259
+ ->setHeader('Pragma', 'public', true)
260
+ // ->setHeader('Cache-Control', 'must-revalidate, post-check=0, pre-check=0', true)
261
+ // ->setHeader('Date: '.gmdate('D, d M Y H:i:s \G\M\T', time()))
262
+ //->setHeader('Last-Modified: '.gmdate('D, d M Y H:i:s \G\M\T', time()))
263
+ //->setHeader('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600))
264
+ ;
265
+
266
+ $this->getResponse()->setBody(Mage::helper('auit_publicationbasic/svg')->getDynSvg($this->getRequest()->getParam('mode'),$group = $this->getRequest()->getParam('group'),$this->getRequest()->getParam('file')));
267
+ $this->getResponse()->sendResponse();
268
+ exit();
269
+ }
270
+ }
app/code/local/AuIt/PublicationBasic/data/css/default.css ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #auit-layout-frame .auit-layout-text-frame {
2
+ padding:0;margin:0;
3
+ font-size:12pt; line-height: 1.25; font-weight: normal; font-style: normal; color:black; word-wrap: break-word;
4
+ color:black;
5
+ }
6
+ #auit-layout-frame table,
7
+ #auit-layout-frame th,
8
+ #auit-layout-frame td
9
+ {
10
+ padding:0;margin:0;
11
+ }
12
+ #auit-layout-frame th, #auit-layout-frame td{text-align: left;vertical-align: top;}
13
+ /*.auit-layout-text-frame div */
14
+ .abox {word-spacing: 0.1em;}
15
+ .abox p,.abox h1,.abox h2,.abox h3,.abox h4,.abox h5,.abox h6
16
+ {
17
+ margin:inherit; padding:inherit; font-size: inherit; font-weight: inherit; line-height: inherit;color:inherit;
18
+ }
19
+
20
+
21
+ .auit-layout-pdf-box p,.auit-layout-pdf-box h1,.auit-layout-pdf-box h2,.auit-layout-pdf-box h3,.auit-layout-pdf-box h4,.auit-layout-pdf-box h5,
22
+ .auit-layout-pdf-box h6
23
+ {
24
+ /*margin:inherit; padding:inherit; font-size: 8pt; font-weight: inherit; line-height: 8pt;color:inherit;*/
25
+ }
26
+
27
+ #auit-layout-frame .box-align-left {text-align:left !important; }
28
+ #auit-layout-frame .box-align-right {text-align:right !important;}
29
+ #auit-layout-frame .box-align-center {text-align:center !important;}
30
+ #auit-layout-frame .box-align-justify {text-align:justify !important;}
31
+
32
+ #auit-layout-frame .box-valign-M.box-table-frame,
33
+ #auit-layout-frame .box-valign-B.box-table-frame{display: table;height:100%;width:100%;}
34
+ #auit-layout-frame .box-valign-B .box-valign {display: table-cell; vertical-align: bottom;}
35
+ #auit-layout-frame .box-valign-M .box-valign {display: table-cell; vertical-align: middle;}
36
+
37
+
38
+ #auit-layout-frame .auit-layout-text-frame ul {
39
+ list-style:disc;
40
+ margin:0 0em 0 1.5em;
41
+ }
42
+ #auit-layout-frame .auit-layout-text-frame ol {
43
+ list-style:decimal;
44
+ margin:0 0em 0 1.5em;
45
+ }
app/code/local/AuIt/PublicationBasic/data/gfont.ser ADDED
@@ -0,0 +1 @@
 
1
+ a:565:{i:0;a:3:{s:4:"name";s:4:"Abel";s:3:"uid";s:12:"Abel:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Abel";s:3:"uid";s:12:"Abel:regular";s:5:"style";s:7:"regular";}}}i:1;a:3:{s:4:"name";s:13:"Abril Fatface";s:3:"uid";s:21:"Abril Fatface:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Abril Fatface";s:3:"uid";s:21:"Abril Fatface:regular";s:5:"style";s:7:"regular";}}}i:2;a:3:{s:4:"name";s:8:"Aclonica";s:3:"uid";s:16:"Aclonica:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Aclonica";s:3:"uid";s:16:"Aclonica:regular";s:5:"style";s:7:"regular";}}}i:3;a:3:{s:4:"name";s:4:"Acme";s:3:"uid";s:12:"Acme:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Acme";s:3:"uid";s:12:"Acme:regular";s:5:"style";s:7:"regular";}}}i:4;a:3:{s:4:"name";s:5:"Actor";s:3:"uid";s:13:"Actor:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Actor";s:3:"uid";s:13:"Actor:regular";s:5:"style";s:7:"regular";}}}i:5;a:3:{s:4:"name";s:7:"Adamina";s:3:"uid";s:15:"Adamina:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Adamina";s:3:"uid";s:15:"Adamina:regular";s:5:"style";s:7:"regular";}}}i:6;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:18:"Advent Pro:regular";s:6:"styles";a:7:{i:0;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:14:"Advent Pro:100";s:5:"style";s:3:"100";}i:1;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:14:"Advent Pro:200";s:5:"style";s:3:"200";}i:2;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:14:"Advent Pro:300";s:5:"style";s:3:"300";}i:3;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:18:"Advent Pro:regular";s:5:"style";s:7:"regular";}i:4;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:14:"Advent Pro:500";s:5:"style";s:3:"500";}i:5;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:14:"Advent Pro:600";s:5:"style";s:3:"600";}i:6;a:3:{s:4:"name";s:10:"Advent Pro";s:3:"uid";s:14:"Advent Pro:700";s:5:"style";s:3:"700";}}}i:7;a:3:{s:4:"name";s:15:"Aguafina Script";s:3:"uid";s:23:"Aguafina Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Aguafina Script";s:3:"uid";s:23:"Aguafina Script:regular";s:5:"style";s:7:"regular";}}}i:8;a:3:{s:4:"name";s:7:"Akronim";s:3:"uid";s:15:"Akronim:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Akronim";s:3:"uid";s:15:"Akronim:regular";s:5:"style";s:7:"regular";}}}i:9;a:3:{s:4:"name";s:6:"Aladin";s:3:"uid";s:14:"Aladin:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Aladin";s:3:"uid";s:14:"Aladin:regular";s:5:"style";s:7:"regular";}}}i:10;a:3:{s:4:"name";s:7:"Aldrich";s:3:"uid";s:15:"Aldrich:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Aldrich";s:3:"uid";s:15:"Aldrich:regular";s:5:"style";s:7:"regular";}}}i:11;a:3:{s:4:"name";s:8:"Alegreya";s:3:"uid";s:16:"Alegreya:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:8:"Alegreya";s:3:"uid";s:16:"Alegreya:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Alegreya";s:3:"uid";s:15:"Alegreya:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:8:"Alegreya";s:3:"uid";s:12:"Alegreya:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"Alegreya";s:3:"uid";s:18:"Alegreya:700italic";s:5:"style";s:9:"700italic";}i:4;a:3:{s:4:"name";s:8:"Alegreya";s:3:"uid";s:12:"Alegreya:900";s:5:"style";s:3:"900";}i:5;a:3:{s:4:"name";s:8:"Alegreya";s:3:"uid";s:18:"Alegreya:900italic";s:5:"style";s:9:"900italic";}}}i:12;a:3:{s:4:"name";s:11:"Alegreya SC";s:3:"uid";s:19:"Alegreya SC:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:11:"Alegreya SC";s:3:"uid";s:19:"Alegreya SC:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Alegreya SC";s:3:"uid";s:18:"Alegreya SC:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:11:"Alegreya SC";s:3:"uid";s:15:"Alegreya SC:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:11:"Alegreya SC";s:3:"uid";s:21:"Alegreya SC:700italic";s:5:"style";s:9:"700italic";}i:4;a:3:{s:4:"name";s:11:"Alegreya SC";s:3:"uid";s:15:"Alegreya SC:900";s:5:"style";s:3:"900";}i:5;a:3:{s:4:"name";s:11:"Alegreya SC";s:3:"uid";s:21:"Alegreya SC:900italic";s:5:"style";s:9:"900italic";}}}i:13;a:3:{s:4:"name";s:10:"Alex Brush";s:3:"uid";s:18:"Alex Brush:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Alex Brush";s:3:"uid";s:18:"Alex Brush:regular";s:5:"style";s:7:"regular";}}}i:14;a:3:{s:4:"name";s:13:"Alfa Slab One";s:3:"uid";s:21:"Alfa Slab One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Alfa Slab One";s:3:"uid";s:21:"Alfa Slab One:regular";s:5:"style";s:7:"regular";}}}i:15;a:3:{s:4:"name";s:5:"Alice";s:3:"uid";s:13:"Alice:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Alice";s:3:"uid";s:13:"Alice:regular";s:5:"style";s:7:"regular";}}}i:16;a:3:{s:4:"name";s:5:"Alike";s:3:"uid";s:13:"Alike:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Alike";s:3:"uid";s:13:"Alike:regular";s:5:"style";s:7:"regular";}}}i:17;a:3:{s:4:"name";s:13:"Alike Angular";s:3:"uid";s:21:"Alike Angular:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Alike Angular";s:3:"uid";s:21:"Alike Angular:regular";s:5:"style";s:7:"regular";}}}i:18;a:3:{s:4:"name";s:5:"Allan";s:3:"uid";s:13:"Allan:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:5:"Allan";s:3:"uid";s:13:"Allan:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Allan";s:3:"uid";s:9:"Allan:700";s:5:"style";s:3:"700";}}}i:19;a:3:{s:4:"name";s:7:"Allerta";s:3:"uid";s:15:"Allerta:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Allerta";s:3:"uid";s:15:"Allerta:regular";s:5:"style";s:7:"regular";}}}i:20;a:3:{s:4:"name";s:15:"Allerta Stencil";s:3:"uid";s:23:"Allerta Stencil:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Allerta Stencil";s:3:"uid";s:23:"Allerta Stencil:regular";s:5:"style";s:7:"regular";}}}i:21;a:3:{s:4:"name";s:6:"Allura";s:3:"uid";s:14:"Allura:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Allura";s:3:"uid";s:14:"Allura:regular";s:5:"style";s:7:"regular";}}}i:22;a:3:{s:4:"name";s:8:"Almendra";s:3:"uid";s:16:"Almendra:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:8:"Almendra";s:3:"uid";s:16:"Almendra:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Almendra";s:3:"uid";s:15:"Almendra:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:8:"Almendra";s:3:"uid";s:12:"Almendra:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"Almendra";s:3:"uid";s:18:"Almendra:700italic";s:5:"style";s:9:"700italic";}}}i:23;a:3:{s:4:"name";s:11:"Almendra SC";s:3:"uid";s:19:"Almendra SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Almendra SC";s:3:"uid";s:19:"Almendra SC:regular";s:5:"style";s:7:"regular";}}}i:24;a:3:{s:4:"name";s:8:"Amarante";s:3:"uid";s:16:"Amarante:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Amarante";s:3:"uid";s:16:"Amarante:regular";s:5:"style";s:7:"regular";}}}i:25;a:3:{s:4:"name";s:8:"Amaranth";s:3:"uid";s:16:"Amaranth:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:8:"Amaranth";s:3:"uid";s:16:"Amaranth:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Amaranth";s:3:"uid";s:15:"Amaranth:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:8:"Amaranth";s:3:"uid";s:12:"Amaranth:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"Amaranth";s:3:"uid";s:18:"Amaranth:700italic";s:5:"style";s:9:"700italic";}}}i:26;a:3:{s:4:"name";s:9:"Amatic SC";s:3:"uid";s:17:"Amatic SC:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:9:"Amatic SC";s:3:"uid";s:17:"Amatic SC:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Amatic SC";s:3:"uid";s:13:"Amatic SC:700";s:5:"style";s:3:"700";}}}i:27;a:3:{s:4:"name";s:9:"Amethysta";s:3:"uid";s:17:"Amethysta:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Amethysta";s:3:"uid";s:17:"Amethysta:regular";s:5:"style";s:7:"regular";}}}i:28;a:3:{s:4:"name";s:6:"Andada";s:3:"uid";s:14:"Andada:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Andada";s:3:"uid";s:14:"Andada:regular";s:5:"style";s:7:"regular";}}}i:29;a:3:{s:4:"name";s:6:"Andika";s:3:"uid";s:14:"Andika:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Andika";s:3:"uid";s:14:"Andika:regular";s:5:"style";s:7:"regular";}}}i:30;a:3:{s:4:"name";s:6:"Angkor";s:3:"uid";s:14:"Angkor:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Angkor";s:3:"uid";s:14:"Angkor:regular";s:5:"style";s:7:"regular";}}}i:31;a:3:{s:4:"name";s:24:"Annie Use Your Telescope";s:3:"uid";s:32:"Annie Use Your Telescope:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:24:"Annie Use Your Telescope";s:3:"uid";s:32:"Annie Use Your Telescope:regular";s:5:"style";s:7:"regular";}}}i:32;a:3:{s:4:"name";s:13:"Anonymous Pro";s:3:"uid";s:21:"Anonymous Pro:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:13:"Anonymous Pro";s:3:"uid";s:21:"Anonymous Pro:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:13:"Anonymous Pro";s:3:"uid";s:20:"Anonymous Pro:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:13:"Anonymous Pro";s:3:"uid";s:17:"Anonymous Pro:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:13:"Anonymous Pro";s:3:"uid";s:23:"Anonymous Pro:700italic";s:5:"style";s:9:"700italic";}}}i:33;a:3:{s:4:"name";s:5:"Antic";s:3:"uid";s:13:"Antic:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Antic";s:3:"uid";s:13:"Antic:regular";s:5:"style";s:7:"regular";}}}i:34;a:3:{s:4:"name";s:12:"Antic Didone";s:3:"uid";s:20:"Antic Didone:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Antic Didone";s:3:"uid";s:20:"Antic Didone:regular";s:5:"style";s:7:"regular";}}}i:35;a:3:{s:4:"name";s:10:"Antic Slab";s:3:"uid";s:18:"Antic Slab:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Antic Slab";s:3:"uid";s:18:"Antic Slab:regular";s:5:"style";s:7:"regular";}}}i:36;a:3:{s:4:"name";s:5:"Anton";s:3:"uid";s:13:"Anton:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Anton";s:3:"uid";s:13:"Anton:regular";s:5:"style";s:7:"regular";}}}i:37;a:3:{s:4:"name";s:6:"Arapey";s:3:"uid";s:14:"Arapey:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:6:"Arapey";s:3:"uid";s:14:"Arapey:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Arapey";s:3:"uid";s:13:"Arapey:italic";s:5:"style";s:6:"italic";}}}i:38;a:3:{s:4:"name";s:7:"Arbutus";s:3:"uid";s:15:"Arbutus:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Arbutus";s:3:"uid";s:15:"Arbutus:regular";s:5:"style";s:7:"regular";}}}i:39;a:3:{s:4:"name";s:12:"Arbutus Slab";s:3:"uid";s:20:"Arbutus Slab:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Arbutus Slab";s:3:"uid";s:20:"Arbutus Slab:regular";s:5:"style";s:7:"regular";}}}i:40;a:3:{s:4:"name";s:19:"Architects Daughter";s:3:"uid";s:27:"Architects Daughter:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:19:"Architects Daughter";s:3:"uid";s:27:"Architects Daughter:regular";s:5:"style";s:7:"regular";}}}i:41;a:3:{s:4:"name";s:13:"Archivo Black";s:3:"uid";s:21:"Archivo Black:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Archivo Black";s:3:"uid";s:21:"Archivo Black:regular";s:5:"style";s:7:"regular";}}}i:42;a:3:{s:4:"name";s:14:"Archivo Narrow";s:3:"uid";s:22:"Archivo Narrow:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:14:"Archivo Narrow";s:3:"uid";s:22:"Archivo Narrow:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:14:"Archivo Narrow";s:3:"uid";s:21:"Archivo Narrow:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:14:"Archivo Narrow";s:3:"uid";s:18:"Archivo Narrow:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:14:"Archivo Narrow";s:3:"uid";s:24:"Archivo Narrow:700italic";s:5:"style";s:9:"700italic";}}}i:43;a:3:{s:4:"name";s:5:"Arimo";s:3:"uid";s:13:"Arimo:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:5:"Arimo";s:3:"uid";s:13:"Arimo:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Arimo";s:3:"uid";s:12:"Arimo:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Arimo";s:3:"uid";s:9:"Arimo:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:5:"Arimo";s:3:"uid";s:15:"Arimo:700italic";s:5:"style";s:9:"700italic";}}}i:44;a:3:{s:4:"name";s:8:"Arizonia";s:3:"uid";s:16:"Arizonia:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Arizonia";s:3:"uid";s:16:"Arizonia:regular";s:5:"style";s:7:"regular";}}}i:45;a:3:{s:4:"name";s:6:"Armata";s:3:"uid";s:14:"Armata:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Armata";s:3:"uid";s:14:"Armata:regular";s:5:"style";s:7:"regular";}}}i:46;a:3:{s:4:"name";s:8:"Artifika";s:3:"uid";s:16:"Artifika:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Artifika";s:3:"uid";s:16:"Artifika:regular";s:5:"style";s:7:"regular";}}}i:47;a:3:{s:4:"name";s:4:"Arvo";s:3:"uid";s:12:"Arvo:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:4:"Arvo";s:3:"uid";s:12:"Arvo:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Arvo";s:3:"uid";s:11:"Arvo:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:4:"Arvo";s:3:"uid";s:8:"Arvo:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:4:"Arvo";s:3:"uid";s:14:"Arvo:700italic";s:5:"style";s:9:"700italic";}}}i:48;a:3:{s:4:"name";s:4:"Asap";s:3:"uid";s:12:"Asap:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:4:"Asap";s:3:"uid";s:12:"Asap:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Asap";s:3:"uid";s:11:"Asap:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:4:"Asap";s:3:"uid";s:8:"Asap:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:4:"Asap";s:3:"uid";s:14:"Asap:700italic";s:5:"style";s:9:"700italic";}}}i:49;a:3:{s:4:"name";s:5:"Asset";s:3:"uid";s:13:"Asset:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Asset";s:3:"uid";s:13:"Asset:regular";s:5:"style";s:7:"regular";}}}i:50;a:3:{s:4:"name";s:7:"Astloch";s:3:"uid";s:15:"Astloch:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Astloch";s:3:"uid";s:15:"Astloch:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Astloch";s:3:"uid";s:11:"Astloch:700";s:5:"style";s:3:"700";}}}i:51;a:3:{s:4:"name";s:4:"Asul";s:3:"uid";s:12:"Asul:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:4:"Asul";s:3:"uid";s:12:"Asul:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Asul";s:3:"uid";s:8:"Asul:700";s:5:"style";s:3:"700";}}}i:52;a:3:{s:4:"name";s:10:"Atomic Age";s:3:"uid";s:18:"Atomic Age:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Atomic Age";s:3:"uid";s:18:"Atomic Age:regular";s:5:"style";s:7:"regular";}}}i:53;a:3:{s:4:"name";s:6:"Aubrey";s:3:"uid";s:14:"Aubrey:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Aubrey";s:3:"uid";s:14:"Aubrey:regular";s:5:"style";s:7:"regular";}}}i:54;a:3:{s:4:"name";s:9:"Audiowide";s:3:"uid";s:17:"Audiowide:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Audiowide";s:3:"uid";s:17:"Audiowide:regular";s:5:"style";s:7:"regular";}}}i:55;a:3:{s:4:"name";s:10:"Autour One";s:3:"uid";s:18:"Autour One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Autour One";s:3:"uid";s:18:"Autour One:regular";s:5:"style";s:7:"regular";}}}i:56;a:3:{s:4:"name";s:7:"Average";s:3:"uid";s:15:"Average:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Average";s:3:"uid";s:15:"Average:regular";s:5:"style";s:7:"regular";}}}i:57;a:3:{s:4:"name";s:19:"Averia Gruesa Libre";s:3:"uid";s:27:"Averia Gruesa Libre:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:19:"Averia Gruesa Libre";s:3:"uid";s:27:"Averia Gruesa Libre:regular";s:5:"style";s:7:"regular";}}}i:58;a:3:{s:4:"name";s:12:"Averia Libre";s:3:"uid";s:20:"Averia Libre:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:12:"Averia Libre";s:3:"uid";s:16:"Averia Libre:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:12:"Averia Libre";s:3:"uid";s:22:"Averia Libre:300italic";s:5:"style";s:9:"300italic";}i:2;a:3:{s:4:"name";s:12:"Averia Libre";s:3:"uid";s:20:"Averia Libre:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:12:"Averia Libre";s:3:"uid";s:19:"Averia Libre:italic";s:5:"style";s:6:"italic";}i:4;a:3:{s:4:"name";s:12:"Averia Libre";s:3:"uid";s:16:"Averia Libre:700";s:5:"style";s:3:"700";}i:5;a:3:{s:4:"name";s:12:"Averia Libre";s:3:"uid";s:22:"Averia Libre:700italic";s:5:"style";s:9:"700italic";}}}i:59;a:3:{s:4:"name";s:17:"Averia Sans Libre";s:3:"uid";s:25:"Averia Sans Libre:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:17:"Averia Sans Libre";s:3:"uid";s:21:"Averia Sans Libre:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:17:"Averia Sans Libre";s:3:"uid";s:27:"Averia Sans Libre:300italic";s:5:"style";s:9:"300italic";}i:2;a:3:{s:4:"name";s:17:"Averia Sans Libre";s:3:"uid";s:25:"Averia Sans Libre:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:17:"Averia Sans Libre";s:3:"uid";s:24:"Averia Sans Libre:italic";s:5:"style";s:6:"italic";}i:4;a:3:{s:4:"name";s:17:"Averia Sans Libre";s:3:"uid";s:21:"Averia Sans Libre:700";s:5:"style";s:3:"700";}i:5;a:3:{s:4:"name";s:17:"Averia Sans Libre";s:3:"uid";s:27:"Averia Sans Libre:700italic";s:5:"style";s:9:"700italic";}}}i:60;a:3:{s:4:"name";s:18:"Averia Serif Libre";s:3:"uid";s:26:"Averia Serif Libre:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:18:"Averia Serif Libre";s:3:"uid";s:22:"Averia Serif Libre:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:18:"Averia Serif Libre";s:3:"uid";s:28:"Averia Serif Libre:300italic";s:5:"style";s:9:"300italic";}i:2;a:3:{s:4:"name";s:18:"Averia Serif Libre";s:3:"uid";s:26:"Averia Serif Libre:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:18:"Averia Serif Libre";s:3:"uid";s:25:"Averia Serif Libre:italic";s:5:"style";s:6:"italic";}i:4;a:3:{s:4:"name";s:18:"Averia Serif Libre";s:3:"uid";s:22:"Averia Serif Libre:700";s:5:"style";s:3:"700";}i:5;a:3:{s:4:"name";s:18:"Averia Serif Libre";s:3:"uid";s:28:"Averia Serif Libre:700italic";s:5:"style";s:9:"700italic";}}}i:61;a:3:{s:4:"name";s:10:"Bad Script";s:3:"uid";s:18:"Bad Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Bad Script";s:3:"uid";s:18:"Bad Script:regular";s:5:"style";s:7:"regular";}}}i:62;a:3:{s:4:"name";s:9:"Balthazar";s:3:"uid";s:17:"Balthazar:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Balthazar";s:3:"uid";s:17:"Balthazar:regular";s:5:"style";s:7:"regular";}}}i:63;a:3:{s:4:"name";s:7:"Bangers";s:3:"uid";s:15:"Bangers:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Bangers";s:3:"uid";s:15:"Bangers:regular";s:5:"style";s:7:"regular";}}}i:64;a:3:{s:4:"name";s:5:"Basic";s:3:"uid";s:13:"Basic:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Basic";s:3:"uid";s:13:"Basic:regular";s:5:"style";s:7:"regular";}}}i:65;a:3:{s:4:"name";s:10:"Battambang";s:3:"uid";s:18:"Battambang:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:10:"Battambang";s:3:"uid";s:18:"Battambang:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:10:"Battambang";s:3:"uid";s:14:"Battambang:700";s:5:"style";s:3:"700";}}}i:66;a:3:{s:4:"name";s:7:"Baumans";s:3:"uid";s:15:"Baumans:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Baumans";s:3:"uid";s:15:"Baumans:regular";s:5:"style";s:7:"regular";}}}i:67;a:3:{s:4:"name";s:5:"Bayon";s:3:"uid";s:13:"Bayon:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Bayon";s:3:"uid";s:13:"Bayon:regular";s:5:"style";s:7:"regular";}}}i:68;a:3:{s:4:"name";s:8:"Belgrano";s:3:"uid";s:16:"Belgrano:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Belgrano";s:3:"uid";s:16:"Belgrano:regular";s:5:"style";s:7:"regular";}}}i:69;a:3:{s:4:"name";s:7:"Belleza";s:3:"uid";s:15:"Belleza:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Belleza";s:3:"uid";s:15:"Belleza:regular";s:5:"style";s:7:"regular";}}}i:70;a:3:{s:4:"name";s:7:"Bentham";s:3:"uid";s:15:"Bentham:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Bentham";s:3:"uid";s:15:"Bentham:regular";s:5:"style";s:7:"regular";}}}i:71;a:3:{s:4:"name";s:15:"Berkshire Swash";s:3:"uid";s:23:"Berkshire Swash:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Berkshire Swash";s:3:"uid";s:23:"Berkshire Swash:regular";s:5:"style";s:7:"regular";}}}i:72;a:3:{s:4:"name";s:5:"Bevan";s:3:"uid";s:13:"Bevan:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Bevan";s:3:"uid";s:13:"Bevan:regular";s:5:"style";s:7:"regular";}}}i:73;a:3:{s:4:"name";s:11:"Bigshot One";s:3:"uid";s:19:"Bigshot One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Bigshot One";s:3:"uid";s:19:"Bigshot One:regular";s:5:"style";s:7:"regular";}}}i:74;a:3:{s:4:"name";s:5:"Bilbo";s:3:"uid";s:13:"Bilbo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Bilbo";s:3:"uid";s:13:"Bilbo:regular";s:5:"style";s:7:"regular";}}}i:75;a:3:{s:4:"name";s:16:"Bilbo Swash Caps";s:3:"uid";s:24:"Bilbo Swash Caps:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Bilbo Swash Caps";s:3:"uid";s:24:"Bilbo Swash Caps:regular";s:5:"style";s:7:"regular";}}}i:76;a:3:{s:4:"name";s:6:"Bitter";s:3:"uid";s:14:"Bitter:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:6:"Bitter";s:3:"uid";s:14:"Bitter:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Bitter";s:3:"uid";s:13:"Bitter:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:6:"Bitter";s:3:"uid";s:10:"Bitter:700";s:5:"style";s:3:"700";}}}i:77;a:3:{s:4:"name";s:13:"Black Ops One";s:3:"uid";s:21:"Black Ops One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Black Ops One";s:3:"uid";s:21:"Black Ops One:regular";s:5:"style";s:7:"regular";}}}i:78;a:3:{s:4:"name";s:5:"Bokor";s:3:"uid";s:13:"Bokor:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Bokor";s:3:"uid";s:13:"Bokor:regular";s:5:"style";s:7:"regular";}}}i:79;a:3:{s:4:"name";s:6:"Bonbon";s:3:"uid";s:14:"Bonbon:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Bonbon";s:3:"uid";s:14:"Bonbon:regular";s:5:"style";s:7:"regular";}}}i:80;a:3:{s:4:"name";s:8:"Boogaloo";s:3:"uid";s:16:"Boogaloo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Boogaloo";s:3:"uid";s:16:"Boogaloo:regular";s:5:"style";s:7:"regular";}}}i:81;a:3:{s:4:"name";s:10:"Bowlby One";s:3:"uid";s:18:"Bowlby One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Bowlby One";s:3:"uid";s:18:"Bowlby One:regular";s:5:"style";s:7:"regular";}}}i:82;a:3:{s:4:"name";s:13:"Bowlby One SC";s:3:"uid";s:21:"Bowlby One SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Bowlby One SC";s:3:"uid";s:21:"Bowlby One SC:regular";s:5:"style";s:7:"regular";}}}i:83;a:3:{s:4:"name";s:7:"Brawler";s:3:"uid";s:15:"Brawler:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Brawler";s:3:"uid";s:15:"Brawler:regular";s:5:"style";s:7:"regular";}}}i:84;a:3:{s:4:"name";s:10:"Bree Serif";s:3:"uid";s:18:"Bree Serif:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Bree Serif";s:3:"uid";s:18:"Bree Serif:regular";s:5:"style";s:7:"regular";}}}i:85;a:3:{s:4:"name";s:14:"Bubblegum Sans";s:3:"uid";s:22:"Bubblegum Sans:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Bubblegum Sans";s:3:"uid";s:22:"Bubblegum Sans:regular";s:5:"style";s:7:"regular";}}}i:86;a:3:{s:4:"name";s:11:"Bubbler One";s:3:"uid";s:19:"Bubbler One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Bubbler One";s:3:"uid";s:19:"Bubbler One:regular";s:5:"style";s:7:"regular";}}}i:87;a:3:{s:4:"name";s:4:"Buda";s:3:"uid";s:8:"Buda:300";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Buda";s:3:"uid";s:8:"Buda:300";s:5:"style";s:3:"300";}}}i:88;a:3:{s:4:"name";s:7:"Buenard";s:3:"uid";s:15:"Buenard:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Buenard";s:3:"uid";s:15:"Buenard:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Buenard";s:3:"uid";s:11:"Buenard:700";s:5:"style";s:3:"700";}}}i:89;a:3:{s:4:"name";s:10:"Butcherman";s:3:"uid";s:18:"Butcherman:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Butcherman";s:3:"uid";s:18:"Butcherman:regular";s:5:"style";s:7:"regular";}}}i:90;a:3:{s:4:"name";s:14:"Butterfly Kids";s:3:"uid";s:22:"Butterfly Kids:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Butterfly Kids";s:3:"uid";s:22:"Butterfly Kids:regular";s:5:"style";s:7:"regular";}}}i:91;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:13:"Cabin:regular";s:6:"styles";a:8:{i:0;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:13:"Cabin:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:12:"Cabin:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:9:"Cabin:500";s:5:"style";s:3:"500";}i:3;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:15:"Cabin:500italic";s:5:"style";s:9:"500italic";}i:4;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:9:"Cabin:600";s:5:"style";s:3:"600";}i:5;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:15:"Cabin:600italic";s:5:"style";s:9:"600italic";}i:6;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:9:"Cabin:700";s:5:"style";s:3:"700";}i:7;a:3:{s:4:"name";s:5:"Cabin";s:3:"uid";s:15:"Cabin:700italic";s:5:"style";s:9:"700italic";}}}i:92;a:3:{s:4:"name";s:15:"Cabin Condensed";s:3:"uid";s:23:"Cabin Condensed:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:15:"Cabin Condensed";s:3:"uid";s:23:"Cabin Condensed:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:15:"Cabin Condensed";s:3:"uid";s:19:"Cabin Condensed:500";s:5:"style";s:3:"500";}i:2;a:3:{s:4:"name";s:15:"Cabin Condensed";s:3:"uid";s:19:"Cabin Condensed:600";s:5:"style";s:3:"600";}i:3;a:3:{s:4:"name";s:15:"Cabin Condensed";s:3:"uid";s:19:"Cabin Condensed:700";s:5:"style";s:3:"700";}}}i:93;a:3:{s:4:"name";s:12:"Cabin Sketch";s:3:"uid";s:20:"Cabin Sketch:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:12:"Cabin Sketch";s:3:"uid";s:20:"Cabin Sketch:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:12:"Cabin Sketch";s:3:"uid";s:16:"Cabin Sketch:700";s:5:"style";s:3:"700";}}}i:94;a:3:{s:4:"name";s:15:"Caesar Dressing";s:3:"uid";s:23:"Caesar Dressing:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Caesar Dressing";s:3:"uid";s:23:"Caesar Dressing:regular";s:5:"style";s:7:"regular";}}}i:95;a:3:{s:4:"name";s:10:"Cagliostro";s:3:"uid";s:18:"Cagliostro:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Cagliostro";s:3:"uid";s:18:"Cagliostro:regular";s:5:"style";s:7:"regular";}}}i:96;a:3:{s:4:"name";s:14:"Calligraffitti";s:3:"uid";s:22:"Calligraffitti:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Calligraffitti";s:3:"uid";s:22:"Calligraffitti:regular";s:5:"style";s:7:"regular";}}}i:97;a:3:{s:4:"name";s:5:"Cambo";s:3:"uid";s:13:"Cambo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Cambo";s:3:"uid";s:13:"Cambo:regular";s:5:"style";s:7:"regular";}}}i:98;a:3:{s:4:"name";s:6:"Candal";s:3:"uid";s:14:"Candal:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Candal";s:3:"uid";s:14:"Candal:regular";s:5:"style";s:7:"regular";}}}i:99;a:3:{s:4:"name";s:9:"Cantarell";s:3:"uid";s:17:"Cantarell:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:9:"Cantarell";s:3:"uid";s:17:"Cantarell:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Cantarell";s:3:"uid";s:16:"Cantarell:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:9:"Cantarell";s:3:"uid";s:13:"Cantarell:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:9:"Cantarell";s:3:"uid";s:19:"Cantarell:700italic";s:5:"style";s:9:"700italic";}}}i:100;a:3:{s:4:"name";s:11:"Cantata One";s:3:"uid";s:19:"Cantata One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Cantata One";s:3:"uid";s:19:"Cantata One:regular";s:5:"style";s:7:"regular";}}}i:101;a:3:{s:4:"name";s:11:"Cantora One";s:3:"uid";s:19:"Cantora One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Cantora One";s:3:"uid";s:19:"Cantora One:regular";s:5:"style";s:7:"regular";}}}i:102;a:3:{s:4:"name";s:8:"Capriola";s:3:"uid";s:16:"Capriola:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Capriola";s:3:"uid";s:16:"Capriola:regular";s:5:"style";s:7:"regular";}}}i:103;a:3:{s:4:"name";s:5:"Cardo";s:3:"uid";s:13:"Cardo:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:5:"Cardo";s:3:"uid";s:13:"Cardo:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Cardo";s:3:"uid";s:12:"Cardo:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Cardo";s:3:"uid";s:9:"Cardo:700";s:5:"style";s:3:"700";}}}i:104;a:3:{s:4:"name";s:5:"Carme";s:3:"uid";s:13:"Carme:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Carme";s:3:"uid";s:13:"Carme:regular";s:5:"style";s:7:"regular";}}}i:105;a:3:{s:4:"name";s:10:"Carter One";s:3:"uid";s:18:"Carter One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Carter One";s:3:"uid";s:18:"Carter One:regular";s:5:"style";s:7:"regular";}}}i:106;a:3:{s:4:"name";s:6:"Caudex";s:3:"uid";s:14:"Caudex:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:6:"Caudex";s:3:"uid";s:14:"Caudex:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Caudex";s:3:"uid";s:13:"Caudex:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:6:"Caudex";s:3:"uid";s:10:"Caudex:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:6:"Caudex";s:3:"uid";s:16:"Caudex:700italic";s:5:"style";s:9:"700italic";}}}i:107;a:3:{s:4:"name";s:18:"Cedarville Cursive";s:3:"uid";s:26:"Cedarville Cursive:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"Cedarville Cursive";s:3:"uid";s:26:"Cedarville Cursive:regular";s:5:"style";s:7:"regular";}}}i:108;a:3:{s:4:"name";s:11:"Ceviche One";s:3:"uid";s:19:"Ceviche One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Ceviche One";s:3:"uid";s:19:"Ceviche One:regular";s:5:"style";s:7:"regular";}}}i:109;a:3:{s:4:"name";s:10:"Changa One";s:3:"uid";s:18:"Changa One:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:10:"Changa One";s:3:"uid";s:18:"Changa One:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:10:"Changa One";s:3:"uid";s:17:"Changa One:italic";s:5:"style";s:6:"italic";}}}i:110;a:3:{s:4:"name";s:6:"Chango";s:3:"uid";s:14:"Chango:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Chango";s:3:"uid";s:14:"Chango:regular";s:5:"style";s:7:"regular";}}}i:111;a:3:{s:4:"name";s:18:"Chau Philomene One";s:3:"uid";s:26:"Chau Philomene One:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:18:"Chau Philomene One";s:3:"uid";s:26:"Chau Philomene One:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:18:"Chau Philomene One";s:3:"uid";s:25:"Chau Philomene One:italic";s:5:"style";s:6:"italic";}}}i:112;a:3:{s:4:"name";s:14:"Chelsea Market";s:3:"uid";s:22:"Chelsea Market:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Chelsea Market";s:3:"uid";s:22:"Chelsea Market:regular";s:5:"style";s:7:"regular";}}}i:113;a:3:{s:4:"name";s:6:"Chenla";s:3:"uid";s:14:"Chenla:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Chenla";s:3:"uid";s:14:"Chenla:regular";s:5:"style";s:7:"regular";}}}i:114;a:3:{s:4:"name";s:17:"Cherry Cream Soda";s:3:"uid";s:25:"Cherry Cream Soda:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:17:"Cherry Cream Soda";s:3:"uid";s:25:"Cherry Cream Soda:regular";s:5:"style";s:7:"regular";}}}i:115;a:3:{s:4:"name";s:5:"Chewy";s:3:"uid";s:13:"Chewy:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Chewy";s:3:"uid";s:13:"Chewy:regular";s:5:"style";s:7:"regular";}}}i:116;a:3:{s:4:"name";s:6:"Chicle";s:3:"uid";s:14:"Chicle:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Chicle";s:3:"uid";s:14:"Chicle:regular";s:5:"style";s:7:"regular";}}}i:117;a:3:{s:4:"name";s:5:"Chivo";s:3:"uid";s:13:"Chivo:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:5:"Chivo";s:3:"uid";s:13:"Chivo:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Chivo";s:3:"uid";s:12:"Chivo:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Chivo";s:3:"uid";s:9:"Chivo:900";s:5:"style";s:3:"900";}i:3;a:3:{s:4:"name";s:5:"Chivo";s:3:"uid";s:15:"Chivo:900italic";s:5:"style";s:9:"900italic";}}}i:118;a:3:{s:4:"name";s:4:"Coda";s:3:"uid";s:12:"Coda:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:4:"Coda";s:3:"uid";s:12:"Coda:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Coda";s:3:"uid";s:8:"Coda:800";s:5:"style";s:3:"800";}}}i:119;a:3:{s:4:"name";s:12:"Coda Caption";s:3:"uid";s:16:"Coda Caption:800";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Coda Caption";s:3:"uid";s:16:"Coda Caption:800";s:5:"style";s:3:"800";}}}i:120;a:3:{s:4:"name";s:8:"Codystar";s:3:"uid";s:16:"Codystar:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:8:"Codystar";s:3:"uid";s:12:"Codystar:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:8:"Codystar";s:3:"uid";s:16:"Codystar:regular";s:5:"style";s:7:"regular";}}}i:121;a:3:{s:4:"name";s:5:"Combo";s:3:"uid";s:13:"Combo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Combo";s:3:"uid";s:13:"Combo:regular";s:5:"style";s:7:"regular";}}}i:122;a:3:{s:4:"name";s:9:"Comfortaa";s:3:"uid";s:17:"Comfortaa:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:9:"Comfortaa";s:3:"uid";s:13:"Comfortaa:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:9:"Comfortaa";s:3:"uid";s:17:"Comfortaa:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:9:"Comfortaa";s:3:"uid";s:13:"Comfortaa:700";s:5:"style";s:3:"700";}}}i:123;a:3:{s:4:"name";s:11:"Coming Soon";s:3:"uid";s:19:"Coming Soon:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Coming Soon";s:3:"uid";s:19:"Coming Soon:regular";s:5:"style";s:7:"regular";}}}i:124;a:3:{s:4:"name";s:11:"Concert One";s:3:"uid";s:19:"Concert One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Concert One";s:3:"uid";s:19:"Concert One:regular";s:5:"style";s:7:"regular";}}}i:125;a:3:{s:4:"name";s:9:"Condiment";s:3:"uid";s:17:"Condiment:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Condiment";s:3:"uid";s:17:"Condiment:regular";s:5:"style";s:7:"regular";}}}i:126;a:3:{s:4:"name";s:7:"Content";s:3:"uid";s:15:"Content:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Content";s:3:"uid";s:15:"Content:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Content";s:3:"uid";s:11:"Content:700";s:5:"style";s:3:"700";}}}i:127;a:3:{s:4:"name";s:12:"Contrail One";s:3:"uid";s:20:"Contrail One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Contrail One";s:3:"uid";s:20:"Contrail One:regular";s:5:"style";s:7:"regular";}}}i:128;a:3:{s:4:"name";s:11:"Convergence";s:3:"uid";s:19:"Convergence:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Convergence";s:3:"uid";s:19:"Convergence:regular";s:5:"style";s:7:"regular";}}}i:129;a:3:{s:4:"name";s:6:"Cookie";s:3:"uid";s:14:"Cookie:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Cookie";s:3:"uid";s:14:"Cookie:regular";s:5:"style";s:7:"regular";}}}i:130;a:3:{s:4:"name";s:5:"Copse";s:3:"uid";s:13:"Copse:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Copse";s:3:"uid";s:13:"Copse:regular";s:5:"style";s:7:"regular";}}}i:131;a:3:{s:4:"name";s:6:"Corben";s:3:"uid";s:14:"Corben:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:6:"Corben";s:3:"uid";s:14:"Corben:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Corben";s:3:"uid";s:10:"Corben:700";s:5:"style";s:3:"700";}}}i:132;a:3:{s:4:"name";s:9:"Courgette";s:3:"uid";s:17:"Courgette:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Courgette";s:3:"uid";s:17:"Courgette:regular";s:5:"style";s:7:"regular";}}}i:133;a:3:{s:4:"name";s:7:"Cousine";s:3:"uid";s:15:"Cousine:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:7:"Cousine";s:3:"uid";s:15:"Cousine:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Cousine";s:3:"uid";s:14:"Cousine:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:7:"Cousine";s:3:"uid";s:11:"Cousine:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:7:"Cousine";s:3:"uid";s:17:"Cousine:700italic";s:5:"style";s:9:"700italic";}}}i:134;a:3:{s:4:"name";s:8:"Coustard";s:3:"uid";s:16:"Coustard:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:8:"Coustard";s:3:"uid";s:16:"Coustard:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Coustard";s:3:"uid";s:12:"Coustard:900";s:5:"style";s:3:"900";}}}i:135;a:3:{s:4:"name";s:21:"Covered By Your Grace";s:3:"uid";s:29:"Covered By Your Grace:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:21:"Covered By Your Grace";s:3:"uid";s:29:"Covered By Your Grace:regular";s:5:"style";s:7:"regular";}}}i:136;a:3:{s:4:"name";s:12:"Crafty Girls";s:3:"uid";s:20:"Crafty Girls:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Crafty Girls";s:3:"uid";s:20:"Crafty Girls:regular";s:5:"style";s:7:"regular";}}}i:137;a:3:{s:4:"name";s:9:"Creepster";s:3:"uid";s:17:"Creepster:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Creepster";s:3:"uid";s:17:"Creepster:regular";s:5:"style";s:7:"regular";}}}i:138;a:3:{s:4:"name";s:11:"Crete Round";s:3:"uid";s:19:"Crete Round:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:11:"Crete Round";s:3:"uid";s:19:"Crete Round:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Crete Round";s:3:"uid";s:18:"Crete Round:italic";s:5:"style";s:6:"italic";}}}i:139;a:3:{s:4:"name";s:12:"Crimson Text";s:3:"uid";s:20:"Crimson Text:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:12:"Crimson Text";s:3:"uid";s:20:"Crimson Text:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:12:"Crimson Text";s:3:"uid";s:19:"Crimson Text:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:12:"Crimson Text";s:3:"uid";s:16:"Crimson Text:600";s:5:"style";s:3:"600";}i:3;a:3:{s:4:"name";s:12:"Crimson Text";s:3:"uid";s:22:"Crimson Text:600italic";s:5:"style";s:9:"600italic";}i:4;a:3:{s:4:"name";s:12:"Crimson Text";s:3:"uid";s:16:"Crimson Text:700";s:5:"style";s:3:"700";}i:5;a:3:{s:4:"name";s:12:"Crimson Text";s:3:"uid";s:22:"Crimson Text:700italic";s:5:"style";s:9:"700italic";}}}i:140;a:3:{s:4:"name";s:7:"Crushed";s:3:"uid";s:15:"Crushed:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Crushed";s:3:"uid";s:15:"Crushed:regular";s:5:"style";s:7:"regular";}}}i:141;a:3:{s:4:"name";s:6:"Cuprum";s:3:"uid";s:14:"Cuprum:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:6:"Cuprum";s:3:"uid";s:14:"Cuprum:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Cuprum";s:3:"uid";s:13:"Cuprum:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:6:"Cuprum";s:3:"uid";s:10:"Cuprum:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:6:"Cuprum";s:3:"uid";s:16:"Cuprum:700italic";s:5:"style";s:9:"700italic";}}}i:142;a:3:{s:4:"name";s:6:"Cutive";s:3:"uid";s:14:"Cutive:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Cutive";s:3:"uid";s:14:"Cutive:regular";s:5:"style";s:7:"regular";}}}i:143;a:3:{s:4:"name";s:6:"Damion";s:3:"uid";s:14:"Damion:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Damion";s:3:"uid";s:14:"Damion:regular";s:5:"style";s:7:"regular";}}}i:144;a:3:{s:4:"name";s:14:"Dancing Script";s:3:"uid";s:22:"Dancing Script:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:14:"Dancing Script";s:3:"uid";s:22:"Dancing Script:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:14:"Dancing Script";s:3:"uid";s:18:"Dancing Script:700";s:5:"style";s:3:"700";}}}i:145;a:3:{s:4:"name";s:7:"Dangrek";s:3:"uid";s:15:"Dangrek:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Dangrek";s:3:"uid";s:15:"Dangrek:regular";s:5:"style";s:7:"regular";}}}i:146;a:3:{s:4:"name";s:20:"Dawning of a New Day";s:3:"uid";s:28:"Dawning of a New Day:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:20:"Dawning of a New Day";s:3:"uid";s:28:"Dawning of a New Day:regular";s:5:"style";s:7:"regular";}}}i:147;a:3:{s:4:"name";s:8:"Days One";s:3:"uid";s:16:"Days One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Days One";s:3:"uid";s:16:"Days One:regular";s:5:"style";s:7:"regular";}}}i:148;a:3:{s:4:"name";s:6:"Delius";s:3:"uid";s:14:"Delius:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Delius";s:3:"uid";s:14:"Delius:regular";s:5:"style";s:7:"regular";}}}i:149;a:3:{s:4:"name";s:17:"Delius Swash Caps";s:3:"uid";s:25:"Delius Swash Caps:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:17:"Delius Swash Caps";s:3:"uid";s:25:"Delius Swash Caps:regular";s:5:"style";s:7:"regular";}}}i:150;a:3:{s:4:"name";s:14:"Delius Unicase";s:3:"uid";s:22:"Delius Unicase:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:14:"Delius Unicase";s:3:"uid";s:22:"Delius Unicase:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:14:"Delius Unicase";s:3:"uid";s:18:"Delius Unicase:700";s:5:"style";s:3:"700";}}}i:151;a:3:{s:4:"name";s:13:"Della Respira";s:3:"uid";s:21:"Della Respira:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Della Respira";s:3:"uid";s:21:"Della Respira:regular";s:5:"style";s:7:"regular";}}}i:152;a:3:{s:4:"name";s:10:"Devonshire";s:3:"uid";s:18:"Devonshire:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Devonshire";s:3:"uid";s:18:"Devonshire:regular";s:5:"style";s:7:"regular";}}}i:153;a:3:{s:4:"name";s:13:"Didact Gothic";s:3:"uid";s:21:"Didact Gothic:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Didact Gothic";s:3:"uid";s:21:"Didact Gothic:regular";s:5:"style";s:7:"regular";}}}i:154;a:3:{s:4:"name";s:9:"Diplomata";s:3:"uid";s:17:"Diplomata:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Diplomata";s:3:"uid";s:17:"Diplomata:regular";s:5:"style";s:7:"regular";}}}i:155;a:3:{s:4:"name";s:12:"Diplomata SC";s:3:"uid";s:20:"Diplomata SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Diplomata SC";s:3:"uid";s:20:"Diplomata SC:regular";s:5:"style";s:7:"regular";}}}i:156;a:3:{s:4:"name";s:10:"Doppio One";s:3:"uid";s:18:"Doppio One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Doppio One";s:3:"uid";s:18:"Doppio One:regular";s:5:"style";s:7:"regular";}}}i:157;a:3:{s:4:"name";s:5:"Dorsa";s:3:"uid";s:13:"Dorsa:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Dorsa";s:3:"uid";s:13:"Dorsa:regular";s:5:"style";s:7:"regular";}}}i:158;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:13:"Dosis:regular";s:6:"styles";a:7:{i:0;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:9:"Dosis:200";s:5:"style";s:3:"200";}i:1;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:9:"Dosis:300";s:5:"style";s:3:"300";}i:2;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:13:"Dosis:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:9:"Dosis:500";s:5:"style";s:3:"500";}i:4;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:9:"Dosis:600";s:5:"style";s:3:"600";}i:5;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:9:"Dosis:700";s:5:"style";s:3:"700";}i:6;a:3:{s:4:"name";s:5:"Dosis";s:3:"uid";s:9:"Dosis:800";s:5:"style";s:3:"800";}}}i:159;a:3:{s:4:"name";s:11:"Dr Sugiyama";s:3:"uid";s:19:"Dr Sugiyama:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Dr Sugiyama";s:3:"uid";s:19:"Dr Sugiyama:regular";s:5:"style";s:7:"regular";}}}i:160;a:3:{s:4:"name";s:10:"Droid Sans";s:3:"uid";s:18:"Droid Sans:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:10:"Droid Sans";s:3:"uid";s:18:"Droid Sans:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:10:"Droid Sans";s:3:"uid";s:14:"Droid Sans:700";s:5:"style";s:3:"700";}}}i:161;a:3:{s:4:"name";s:15:"Droid Sans Mono";s:3:"uid";s:23:"Droid Sans Mono:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Droid Sans Mono";s:3:"uid";s:23:"Droid Sans Mono:regular";s:5:"style";s:7:"regular";}}}i:162;a:3:{s:4:"name";s:11:"Droid Serif";s:3:"uid";s:19:"Droid Serif:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:11:"Droid Serif";s:3:"uid";s:19:"Droid Serif:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Droid Serif";s:3:"uid";s:18:"Droid Serif:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:11:"Droid Serif";s:3:"uid";s:15:"Droid Serif:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:11:"Droid Serif";s:3:"uid";s:21:"Droid Serif:700italic";s:5:"style";s:9:"700italic";}}}i:163;a:3:{s:4:"name";s:9:"Duru Sans";s:3:"uid";s:17:"Duru Sans:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Duru Sans";s:3:"uid";s:17:"Duru Sans:regular";s:5:"style";s:7:"regular";}}}i:164;a:3:{s:4:"name";s:9:"Dynalight";s:3:"uid";s:17:"Dynalight:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Dynalight";s:3:"uid";s:17:"Dynalight:regular";s:5:"style";s:7:"regular";}}}i:165;a:3:{s:4:"name";s:11:"EB Garamond";s:3:"uid";s:19:"EB Garamond:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"EB Garamond";s:3:"uid";s:19:"EB Garamond:regular";s:5:"style";s:7:"regular";}}}i:166;a:3:{s:4:"name";s:10:"Eagle Lake";s:3:"uid";s:18:"Eagle Lake:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Eagle Lake";s:3:"uid";s:18:"Eagle Lake:regular";s:5:"style";s:7:"regular";}}}i:167;a:3:{s:4:"name";s:5:"Eater";s:3:"uid";s:13:"Eater:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Eater";s:3:"uid";s:13:"Eater:regular";s:5:"style";s:7:"regular";}}}i:168;a:3:{s:4:"name";s:9:"Economica";s:3:"uid";s:17:"Economica:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:9:"Economica";s:3:"uid";s:17:"Economica:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Economica";s:3:"uid";s:16:"Economica:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:9:"Economica";s:3:"uid";s:13:"Economica:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:9:"Economica";s:3:"uid";s:19:"Economica:700italic";s:5:"style";s:9:"700italic";}}}i:169;a:3:{s:4:"name";s:11:"Electrolize";s:3:"uid";s:19:"Electrolize:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Electrolize";s:3:"uid";s:19:"Electrolize:regular";s:5:"style";s:7:"regular";}}}i:170;a:3:{s:4:"name";s:11:"Emblema One";s:3:"uid";s:19:"Emblema One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Emblema One";s:3:"uid";s:19:"Emblema One:regular";s:5:"style";s:7:"regular";}}}i:171;a:3:{s:4:"name";s:12:"Emilys Candy";s:3:"uid";s:20:"Emilys Candy:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Emilys Candy";s:3:"uid";s:20:"Emilys Candy:regular";s:5:"style";s:7:"regular";}}}i:172;a:3:{s:4:"name";s:10:"Engagement";s:3:"uid";s:18:"Engagement:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Engagement";s:3:"uid";s:18:"Engagement:regular";s:5:"style";s:7:"regular";}}}i:173;a:3:{s:4:"name";s:9:"Enriqueta";s:3:"uid";s:17:"Enriqueta:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:9:"Enriqueta";s:3:"uid";s:17:"Enriqueta:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Enriqueta";s:3:"uid";s:13:"Enriqueta:700";s:5:"style";s:3:"700";}}}i:174;a:3:{s:4:"name";s:9:"Erica One";s:3:"uid";s:17:"Erica One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Erica One";s:3:"uid";s:17:"Erica One:regular";s:5:"style";s:7:"regular";}}}i:175;a:3:{s:4:"name";s:7:"Esteban";s:3:"uid";s:15:"Esteban:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Esteban";s:3:"uid";s:15:"Esteban:regular";s:5:"style";s:7:"regular";}}}i:176;a:3:{s:4:"name";s:15:"Euphoria Script";s:3:"uid";s:23:"Euphoria Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Euphoria Script";s:3:"uid";s:23:"Euphoria Script:regular";s:5:"style";s:7:"regular";}}}i:177;a:3:{s:4:"name";s:5:"Ewert";s:3:"uid";s:13:"Ewert:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Ewert";s:3:"uid";s:13:"Ewert:regular";s:5:"style";s:7:"regular";}}}i:178;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:11:"Exo:regular";s:6:"styles";a:18:{i:0;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:100";s:5:"style";s:3:"100";}i:1;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:100italic";s:5:"style";s:9:"100italic";}i:2;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:200";s:5:"style";s:3:"200";}i:3;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:200italic";s:5:"style";s:9:"200italic";}i:4;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:300";s:5:"style";s:3:"300";}i:5;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:300italic";s:5:"style";s:9:"300italic";}i:6;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:11:"Exo:regular";s:5:"style";s:7:"regular";}i:7;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:10:"Exo:italic";s:5:"style";s:6:"italic";}i:8;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:500";s:5:"style";s:3:"500";}i:9;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:500italic";s:5:"style";s:9:"500italic";}i:10;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:600";s:5:"style";s:3:"600";}i:11;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:600italic";s:5:"style";s:9:"600italic";}i:12;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:700";s:5:"style";s:3:"700";}i:13;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:700italic";s:5:"style";s:9:"700italic";}i:14;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:800";s:5:"style";s:3:"800";}i:15;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:800italic";s:5:"style";s:9:"800italic";}i:16;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:7:"Exo:900";s:5:"style";s:3:"900";}i:17;a:3:{s:4:"name";s:3:"Exo";s:3:"uid";s:13:"Exo:900italic";s:5:"style";s:9:"900italic";}}}i:179;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:21:"Expletus Sans:regular";s:6:"styles";a:8:{i:0;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:21:"Expletus Sans:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:20:"Expletus Sans:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:17:"Expletus Sans:500";s:5:"style";s:3:"500";}i:3;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:23:"Expletus Sans:500italic";s:5:"style";s:9:"500italic";}i:4;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:17:"Expletus Sans:600";s:5:"style";s:3:"600";}i:5;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:23:"Expletus Sans:600italic";s:5:"style";s:9:"600italic";}i:6;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:17:"Expletus Sans:700";s:5:"style";s:3:"700";}i:7;a:3:{s:4:"name";s:13:"Expletus Sans";s:3:"uid";s:23:"Expletus Sans:700italic";s:5:"style";s:9:"700italic";}}}i:180;a:3:{s:4:"name";s:12:"Fanwood Text";s:3:"uid";s:20:"Fanwood Text:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:12:"Fanwood Text";s:3:"uid";s:20:"Fanwood Text:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:12:"Fanwood Text";s:3:"uid";s:19:"Fanwood Text:italic";s:5:"style";s:6:"italic";}}}i:181;a:3:{s:4:"name";s:9:"Fascinate";s:3:"uid";s:17:"Fascinate:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Fascinate";s:3:"uid";s:17:"Fascinate:regular";s:5:"style";s:7:"regular";}}}i:182;a:3:{s:4:"name";s:16:"Fascinate Inline";s:3:"uid";s:24:"Fascinate Inline:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Fascinate Inline";s:3:"uid";s:24:"Fascinate Inline:regular";s:5:"style";s:7:"regular";}}}i:183;a:3:{s:4:"name";s:8:"Fasthand";s:3:"uid";s:16:"Fasthand:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Fasthand";s:3:"uid";s:16:"Fasthand:regular";s:5:"style";s:7:"regular";}}}i:184;a:3:{s:4:"name";s:8:"Federant";s:3:"uid";s:16:"Federant:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Federant";s:3:"uid";s:16:"Federant:regular";s:5:"style";s:7:"regular";}}}i:185;a:3:{s:4:"name";s:6:"Federo";s:3:"uid";s:14:"Federo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Federo";s:3:"uid";s:14:"Federo:regular";s:5:"style";s:7:"regular";}}}i:186;a:3:{s:4:"name";s:6:"Felipa";s:3:"uid";s:14:"Felipa:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Felipa";s:3:"uid";s:14:"Felipa:regular";s:5:"style";s:7:"regular";}}}i:187;a:3:{s:4:"name";s:9:"Fjord One";s:3:"uid";s:17:"Fjord One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Fjord One";s:3:"uid";s:17:"Fjord One:regular";s:5:"style";s:7:"regular";}}}i:188;a:3:{s:4:"name";s:8:"Flamenco";s:3:"uid";s:16:"Flamenco:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:8:"Flamenco";s:3:"uid";s:12:"Flamenco:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:8:"Flamenco";s:3:"uid";s:16:"Flamenco:regular";s:5:"style";s:7:"regular";}}}i:189;a:3:{s:4:"name";s:7:"Flavors";s:3:"uid";s:15:"Flavors:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Flavors";s:3:"uid";s:15:"Flavors:regular";s:5:"style";s:7:"regular";}}}i:190;a:3:{s:4:"name";s:10:"Fondamento";s:3:"uid";s:18:"Fondamento:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:10:"Fondamento";s:3:"uid";s:18:"Fondamento:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:10:"Fondamento";s:3:"uid";s:17:"Fondamento:italic";s:5:"style";s:6:"italic";}}}i:191;a:3:{s:4:"name";s:16:"Fontdiner Swanky";s:3:"uid";s:24:"Fontdiner Swanky:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Fontdiner Swanky";s:3:"uid";s:24:"Fontdiner Swanky:regular";s:5:"style";s:7:"regular";}}}i:192;a:3:{s:4:"name";s:5:"Forum";s:3:"uid";s:13:"Forum:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Forum";s:3:"uid";s:13:"Forum:regular";s:5:"style";s:7:"regular";}}}i:193;a:3:{s:4:"name";s:12:"Francois One";s:3:"uid";s:20:"Francois One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Francois One";s:3:"uid";s:20:"Francois One:regular";s:5:"style";s:7:"regular";}}}i:194;a:3:{s:4:"name";s:20:"Fredericka the Great";s:3:"uid";s:28:"Fredericka the Great:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:20:"Fredericka the Great";s:3:"uid";s:28:"Fredericka the Great:regular";s:5:"style";s:7:"regular";}}}i:195;a:3:{s:4:"name";s:11:"Fredoka One";s:3:"uid";s:19:"Fredoka One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Fredoka One";s:3:"uid";s:19:"Fredoka One:regular";s:5:"style";s:7:"regular";}}}i:196;a:3:{s:4:"name";s:8:"Freehand";s:3:"uid";s:16:"Freehand:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Freehand";s:3:"uid";s:16:"Freehand:regular";s:5:"style";s:7:"regular";}}}i:197;a:3:{s:4:"name";s:6:"Fresca";s:3:"uid";s:14:"Fresca:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Fresca";s:3:"uid";s:14:"Fresca:regular";s:5:"style";s:7:"regular";}}}i:198;a:3:{s:4:"name";s:7:"Frijole";s:3:"uid";s:15:"Frijole:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Frijole";s:3:"uid";s:15:"Frijole:regular";s:5:"style";s:7:"regular";}}}i:199;a:3:{s:4:"name";s:9:"Fugaz One";s:3:"uid";s:17:"Fugaz One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Fugaz One";s:3:"uid";s:17:"Fugaz One:regular";s:5:"style";s:7:"regular";}}}i:200;a:3:{s:4:"name";s:9:"GFS Didot";s:3:"uid";s:17:"GFS Didot:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"GFS Didot";s:3:"uid";s:17:"GFS Didot:regular";s:5:"style";s:7:"regular";}}}i:201;a:3:{s:4:"name";s:15:"GFS Neohellenic";s:3:"uid";s:23:"GFS Neohellenic:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:15:"GFS Neohellenic";s:3:"uid";s:23:"GFS Neohellenic:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:15:"GFS Neohellenic";s:3:"uid";s:22:"GFS Neohellenic:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:15:"GFS Neohellenic";s:3:"uid";s:19:"GFS Neohellenic:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:15:"GFS Neohellenic";s:3:"uid";s:25:"GFS Neohellenic:700italic";s:5:"style";s:9:"700italic";}}}i:202;a:3:{s:4:"name";s:8:"Galdeano";s:3:"uid";s:16:"Galdeano:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Galdeano";s:3:"uid";s:16:"Galdeano:regular";s:5:"style";s:7:"regular";}}}i:203;a:3:{s:4:"name";s:7:"Galindo";s:3:"uid";s:15:"Galindo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Galindo";s:3:"uid";s:15:"Galindo:regular";s:5:"style";s:7:"regular";}}}i:204;a:3:{s:4:"name";s:13:"Gentium Basic";s:3:"uid";s:21:"Gentium Basic:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:13:"Gentium Basic";s:3:"uid";s:21:"Gentium Basic:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:13:"Gentium Basic";s:3:"uid";s:20:"Gentium Basic:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:13:"Gentium Basic";s:3:"uid";s:17:"Gentium Basic:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:13:"Gentium Basic";s:3:"uid";s:23:"Gentium Basic:700italic";s:5:"style";s:9:"700italic";}}}i:205;a:3:{s:4:"name";s:18:"Gentium Book Basic";s:3:"uid";s:26:"Gentium Book Basic:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:18:"Gentium Book Basic";s:3:"uid";s:26:"Gentium Book Basic:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:18:"Gentium Book Basic";s:3:"uid";s:25:"Gentium Book Basic:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:18:"Gentium Book Basic";s:3:"uid";s:22:"Gentium Book Basic:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:18:"Gentium Book Basic";s:3:"uid";s:28:"Gentium Book Basic:700italic";s:5:"style";s:9:"700italic";}}}i:206;a:3:{s:4:"name";s:3:"Geo";s:3:"uid";s:11:"Geo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:3:"Geo";s:3:"uid";s:11:"Geo:regular";s:5:"style";s:7:"regular";}}}i:207;a:3:{s:4:"name";s:7:"Geostar";s:3:"uid";s:15:"Geostar:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Geostar";s:3:"uid";s:15:"Geostar:regular";s:5:"style";s:7:"regular";}}}i:208;a:3:{s:4:"name";s:12:"Geostar Fill";s:3:"uid";s:20:"Geostar Fill:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Geostar Fill";s:3:"uid";s:20:"Geostar Fill:regular";s:5:"style";s:7:"regular";}}}i:209;a:3:{s:4:"name";s:12:"Germania One";s:3:"uid";s:20:"Germania One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Germania One";s:3:"uid";s:20:"Germania One:regular";s:5:"style";s:7:"regular";}}}i:210;a:3:{s:4:"name";s:14:"Give You Glory";s:3:"uid";s:22:"Give You Glory:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Give You Glory";s:3:"uid";s:22:"Give You Glory:regular";s:5:"style";s:7:"regular";}}}i:211;a:3:{s:4:"name";s:13:"Glass Antiqua";s:3:"uid";s:21:"Glass Antiqua:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Glass Antiqua";s:3:"uid";s:21:"Glass Antiqua:regular";s:5:"style";s:7:"regular";}}}i:212;a:3:{s:4:"name";s:6:"Glegoo";s:3:"uid";s:14:"Glegoo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Glegoo";s:3:"uid";s:14:"Glegoo:regular";s:5:"style";s:7:"regular";}}}i:213;a:3:{s:4:"name";s:17:"Gloria Hallelujah";s:3:"uid";s:25:"Gloria Hallelujah:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:17:"Gloria Hallelujah";s:3:"uid";s:25:"Gloria Hallelujah:regular";s:5:"style";s:7:"regular";}}}i:214;a:3:{s:4:"name";s:10:"Goblin One";s:3:"uid";s:18:"Goblin One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Goblin One";s:3:"uid";s:18:"Goblin One:regular";s:5:"style";s:7:"regular";}}}i:215;a:3:{s:4:"name";s:10:"Gochi Hand";s:3:"uid";s:18:"Gochi Hand:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Gochi Hand";s:3:"uid";s:18:"Gochi Hand:regular";s:5:"style";s:7:"regular";}}}i:216;a:3:{s:4:"name";s:8:"Gorditas";s:3:"uid";s:16:"Gorditas:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:8:"Gorditas";s:3:"uid";s:16:"Gorditas:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Gorditas";s:3:"uid";s:12:"Gorditas:700";s:5:"style";s:3:"700";}}}i:217;a:3:{s:4:"name";s:21:"Goudy Bookletter 1911";s:3:"uid";s:29:"Goudy Bookletter 1911:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:21:"Goudy Bookletter 1911";s:3:"uid";s:29:"Goudy Bookletter 1911:regular";s:5:"style";s:7:"regular";}}}i:218;a:3:{s:4:"name";s:8:"Graduate";s:3:"uid";s:16:"Graduate:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Graduate";s:3:"uid";s:16:"Graduate:regular";s:5:"style";s:7:"regular";}}}i:219;a:3:{s:4:"name";s:12:"Gravitas One";s:3:"uid";s:20:"Gravitas One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Gravitas One";s:3:"uid";s:20:"Gravitas One:regular";s:5:"style";s:7:"regular";}}}i:220;a:3:{s:4:"name";s:11:"Great Vibes";s:3:"uid";s:19:"Great Vibes:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Great Vibes";s:3:"uid";s:19:"Great Vibes:regular";s:5:"style";s:7:"regular";}}}i:221;a:3:{s:4:"name";s:6:"Griffy";s:3:"uid";s:14:"Griffy:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Griffy";s:3:"uid";s:14:"Griffy:regular";s:5:"style";s:7:"regular";}}}i:222;a:3:{s:4:"name";s:6:"Gruppo";s:3:"uid";s:14:"Gruppo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Gruppo";s:3:"uid";s:14:"Gruppo:regular";s:5:"style";s:7:"regular";}}}i:223;a:3:{s:4:"name";s:5:"Gudea";s:3:"uid";s:13:"Gudea:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:5:"Gudea";s:3:"uid";s:13:"Gudea:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Gudea";s:3:"uid";s:12:"Gudea:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Gudea";s:3:"uid";s:9:"Gudea:700";s:5:"style";s:3:"700";}}}i:224;a:3:{s:4:"name";s:6:"Habibi";s:3:"uid";s:14:"Habibi:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Habibi";s:3:"uid";s:14:"Habibi:regular";s:5:"style";s:7:"regular";}}}i:225;a:3:{s:4:"name";s:15:"Hammersmith One";s:3:"uid";s:23:"Hammersmith One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Hammersmith One";s:3:"uid";s:23:"Hammersmith One:regular";s:5:"style";s:7:"regular";}}}i:226;a:3:{s:4:"name";s:7:"Handlee";s:3:"uid";s:15:"Handlee:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Handlee";s:3:"uid";s:15:"Handlee:regular";s:5:"style";s:7:"regular";}}}i:227;a:3:{s:4:"name";s:7:"Hanuman";s:3:"uid";s:15:"Hanuman:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Hanuman";s:3:"uid";s:15:"Hanuman:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Hanuman";s:3:"uid";s:11:"Hanuman:700";s:5:"style";s:3:"700";}}}i:228;a:3:{s:4:"name";s:12:"Happy Monkey";s:3:"uid";s:20:"Happy Monkey:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Happy Monkey";s:3:"uid";s:20:"Happy Monkey:regular";s:5:"style";s:7:"regular";}}}i:229;a:3:{s:4:"name";s:12:"Headland One";s:3:"uid";s:20:"Headland One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Headland One";s:3:"uid";s:20:"Headland One:regular";s:5:"style";s:7:"regular";}}}i:230;a:3:{s:4:"name";s:11:"Henny Penny";s:3:"uid";s:19:"Henny Penny:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Henny Penny";s:3:"uid";s:19:"Henny Penny:regular";s:5:"style";s:7:"regular";}}}i:231;a:3:{s:4:"name";s:20:"Herr Von Muellerhoff";s:3:"uid";s:28:"Herr Von Muellerhoff:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:20:"Herr Von Muellerhoff";s:3:"uid";s:28:"Herr Von Muellerhoff:regular";s:5:"style";s:7:"regular";}}}i:232;a:3:{s:4:"name";s:15:"Holtwood One SC";s:3:"uid";s:23:"Holtwood One SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Holtwood One SC";s:3:"uid";s:23:"Holtwood One SC:regular";s:5:"style";s:7:"regular";}}}i:233;a:3:{s:4:"name";s:14:"Homemade Apple";s:3:"uid";s:22:"Homemade Apple:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Homemade Apple";s:3:"uid";s:22:"Homemade Apple:regular";s:5:"style";s:7:"regular";}}}i:234;a:3:{s:4:"name";s:8:"Homenaje";s:3:"uid";s:16:"Homenaje:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Homenaje";s:3:"uid";s:16:"Homenaje:regular";s:5:"style";s:7:"regular";}}}i:235;a:3:{s:4:"name";s:15:"IM Fell DW Pica";s:3:"uid";s:23:"IM Fell DW Pica:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:15:"IM Fell DW Pica";s:3:"uid";s:23:"IM Fell DW Pica:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:15:"IM Fell DW Pica";s:3:"uid";s:22:"IM Fell DW Pica:italic";s:5:"style";s:6:"italic";}}}i:236;a:3:{s:4:"name";s:18:"IM Fell DW Pica SC";s:3:"uid";s:26:"IM Fell DW Pica SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"IM Fell DW Pica SC";s:3:"uid";s:26:"IM Fell DW Pica SC:regular";s:5:"style";s:7:"regular";}}}i:237;a:3:{s:4:"name";s:19:"IM Fell Double Pica";s:3:"uid";s:27:"IM Fell Double Pica:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:19:"IM Fell Double Pica";s:3:"uid";s:27:"IM Fell Double Pica:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:19:"IM Fell Double Pica";s:3:"uid";s:26:"IM Fell Double Pica:italic";s:5:"style";s:6:"italic";}}}i:238;a:3:{s:4:"name";s:22:"IM Fell Double Pica SC";s:3:"uid";s:30:"IM Fell Double Pica SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:22:"IM Fell Double Pica SC";s:3:"uid";s:30:"IM Fell Double Pica SC:regular";s:5:"style";s:7:"regular";}}}i:239;a:3:{s:4:"name";s:15:"IM Fell English";s:3:"uid";s:23:"IM Fell English:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:15:"IM Fell English";s:3:"uid";s:23:"IM Fell English:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:15:"IM Fell English";s:3:"uid";s:22:"IM Fell English:italic";s:5:"style";s:6:"italic";}}}i:240;a:3:{s:4:"name";s:18:"IM Fell English SC";s:3:"uid";s:26:"IM Fell English SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"IM Fell English SC";s:3:"uid";s:26:"IM Fell English SC:regular";s:5:"style";s:7:"regular";}}}i:241;a:3:{s:4:"name";s:20:"IM Fell French Canon";s:3:"uid";s:28:"IM Fell French Canon:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:20:"IM Fell French Canon";s:3:"uid";s:28:"IM Fell French Canon:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:20:"IM Fell French Canon";s:3:"uid";s:27:"IM Fell French Canon:italic";s:5:"style";s:6:"italic";}}}i:242;a:3:{s:4:"name";s:23:"IM Fell French Canon SC";s:3:"uid";s:31:"IM Fell French Canon SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:23:"IM Fell French Canon SC";s:3:"uid";s:31:"IM Fell French Canon SC:regular";s:5:"style";s:7:"regular";}}}i:243;a:3:{s:4:"name";s:20:"IM Fell Great Primer";s:3:"uid";s:28:"IM Fell Great Primer:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:20:"IM Fell Great Primer";s:3:"uid";s:28:"IM Fell Great Primer:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:20:"IM Fell Great Primer";s:3:"uid";s:27:"IM Fell Great Primer:italic";s:5:"style";s:6:"italic";}}}i:244;a:3:{s:4:"name";s:23:"IM Fell Great Primer SC";s:3:"uid";s:31:"IM Fell Great Primer SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:23:"IM Fell Great Primer SC";s:3:"uid";s:31:"IM Fell Great Primer SC:regular";s:5:"style";s:7:"regular";}}}i:245;a:3:{s:4:"name";s:7:"Iceberg";s:3:"uid";s:15:"Iceberg:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Iceberg";s:3:"uid";s:15:"Iceberg:regular";s:5:"style";s:7:"regular";}}}i:246;a:3:{s:4:"name";s:7:"Iceland";s:3:"uid";s:15:"Iceland:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Iceland";s:3:"uid";s:15:"Iceland:regular";s:5:"style";s:7:"regular";}}}i:247;a:3:{s:4:"name";s:7:"Imprima";s:3:"uid";s:15:"Imprima:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Imprima";s:3:"uid";s:15:"Imprima:regular";s:5:"style";s:7:"regular";}}}i:248;a:3:{s:4:"name";s:11:"Inconsolata";s:3:"uid";s:19:"Inconsolata:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:11:"Inconsolata";s:3:"uid";s:19:"Inconsolata:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Inconsolata";s:3:"uid";s:15:"Inconsolata:700";s:5:"style";s:3:"700";}}}i:249;a:3:{s:4:"name";s:5:"Inder";s:3:"uid";s:13:"Inder:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Inder";s:3:"uid";s:13:"Inder:regular";s:5:"style";s:7:"regular";}}}i:250;a:3:{s:4:"name";s:12:"Indie Flower";s:3:"uid";s:20:"Indie Flower:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Indie Flower";s:3:"uid";s:20:"Indie Flower:regular";s:5:"style";s:7:"regular";}}}i:251;a:3:{s:4:"name";s:5:"Inika";s:3:"uid";s:13:"Inika:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:5:"Inika";s:3:"uid";s:13:"Inika:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Inika";s:3:"uid";s:9:"Inika:700";s:5:"style";s:3:"700";}}}i:252;a:3:{s:4:"name";s:12:"Irish Grover";s:3:"uid";s:20:"Irish Grover:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Irish Grover";s:3:"uid";s:20:"Irish Grover:regular";s:5:"style";s:7:"regular";}}}i:253;a:3:{s:4:"name";s:9:"Istok Web";s:3:"uid";s:17:"Istok Web:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:9:"Istok Web";s:3:"uid";s:17:"Istok Web:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Istok Web";s:3:"uid";s:16:"Istok Web:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:9:"Istok Web";s:3:"uid";s:13:"Istok Web:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:9:"Istok Web";s:3:"uid";s:19:"Istok Web:700italic";s:5:"style";s:9:"700italic";}}}i:254;a:3:{s:4:"name";s:8:"Italiana";s:3:"uid";s:16:"Italiana:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Italiana";s:3:"uid";s:16:"Italiana:regular";s:5:"style";s:7:"regular";}}}i:255;a:3:{s:4:"name";s:9:"Italianno";s:3:"uid";s:17:"Italianno:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Italianno";s:3:"uid";s:17:"Italianno:regular";s:5:"style";s:7:"regular";}}}i:256;a:3:{s:4:"name";s:16:"Jacques Francois";s:3:"uid";s:24:"Jacques Francois:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Jacques Francois";s:3:"uid";s:24:"Jacques Francois:regular";s:5:"style";s:7:"regular";}}}i:257;a:3:{s:4:"name";s:23:"Jacques Francois Shadow";s:3:"uid";s:31:"Jacques Francois Shadow:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:23:"Jacques Francois Shadow";s:3:"uid";s:31:"Jacques Francois Shadow:regular";s:5:"style";s:7:"regular";}}}i:258;a:3:{s:4:"name";s:14:"Jim Nightshade";s:3:"uid";s:22:"Jim Nightshade:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Jim Nightshade";s:3:"uid";s:22:"Jim Nightshade:regular";s:5:"style";s:7:"regular";}}}i:259;a:3:{s:4:"name";s:10:"Jockey One";s:3:"uid";s:18:"Jockey One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Jockey One";s:3:"uid";s:18:"Jockey One:regular";s:5:"style";s:7:"regular";}}}i:260;a:3:{s:4:"name";s:12:"Jolly Lodger";s:3:"uid";s:20:"Jolly Lodger:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Jolly Lodger";s:3:"uid";s:20:"Jolly Lodger:regular";s:5:"style";s:7:"regular";}}}i:261;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:20:"Josefin Sans:regular";s:6:"styles";a:10:{i:0;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:16:"Josefin Sans:100";s:5:"style";s:3:"100";}i:1;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:22:"Josefin Sans:100italic";s:5:"style";s:9:"100italic";}i:2;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:16:"Josefin Sans:300";s:5:"style";s:3:"300";}i:3;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:22:"Josefin Sans:300italic";s:5:"style";s:9:"300italic";}i:4;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:20:"Josefin Sans:regular";s:5:"style";s:7:"regular";}i:5;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:19:"Josefin Sans:italic";s:5:"style";s:6:"italic";}i:6;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:16:"Josefin Sans:600";s:5:"style";s:3:"600";}i:7;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:22:"Josefin Sans:600italic";s:5:"style";s:9:"600italic";}i:8;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:16:"Josefin Sans:700";s:5:"style";s:3:"700";}i:9;a:3:{s:4:"name";s:12:"Josefin Sans";s:3:"uid";s:22:"Josefin Sans:700italic";s:5:"style";s:9:"700italic";}}}i:262;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:20:"Josefin Slab:regular";s:6:"styles";a:10:{i:0;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:16:"Josefin Slab:100";s:5:"style";s:3:"100";}i:1;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:22:"Josefin Slab:100italic";s:5:"style";s:9:"100italic";}i:2;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:16:"Josefin Slab:300";s:5:"style";s:3:"300";}i:3;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:22:"Josefin Slab:300italic";s:5:"style";s:9:"300italic";}i:4;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:20:"Josefin Slab:regular";s:5:"style";s:7:"regular";}i:5;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:19:"Josefin Slab:italic";s:5:"style";s:6:"italic";}i:6;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:16:"Josefin Slab:600";s:5:"style";s:3:"600";}i:7;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:22:"Josefin Slab:600italic";s:5:"style";s:9:"600italic";}i:8;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:16:"Josefin Slab:700";s:5:"style";s:3:"700";}i:9;a:3:{s:4:"name";s:12:"Josefin Slab";s:3:"uid";s:22:"Josefin Slab:700italic";s:5:"style";s:9:"700italic";}}}i:263;a:3:{s:4:"name";s:6:"Judson";s:3:"uid";s:14:"Judson:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:6:"Judson";s:3:"uid";s:14:"Judson:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Judson";s:3:"uid";s:13:"Judson:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:6:"Judson";s:3:"uid";s:10:"Judson:700";s:5:"style";s:3:"700";}}}i:264;a:3:{s:4:"name";s:5:"Julee";s:3:"uid";s:13:"Julee:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Julee";s:3:"uid";s:13:"Julee:regular";s:5:"style";s:7:"regular";}}}i:265;a:3:{s:4:"name";s:5:"Junge";s:3:"uid";s:13:"Junge:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Junge";s:3:"uid";s:13:"Junge:regular";s:5:"style";s:7:"regular";}}}i:266;a:3:{s:4:"name";s:4:"Jura";s:3:"uid";s:12:"Jura:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:4:"Jura";s:3:"uid";s:8:"Jura:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:4:"Jura";s:3:"uid";s:12:"Jura:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:4:"Jura";s:3:"uid";s:8:"Jura:500";s:5:"style";s:3:"500";}i:3;a:3:{s:4:"name";s:4:"Jura";s:3:"uid";s:8:"Jura:600";s:5:"style";s:3:"600";}}}i:267;a:3:{s:4:"name";s:17:"Just Another Hand";s:3:"uid";s:25:"Just Another Hand:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:17:"Just Another Hand";s:3:"uid";s:25:"Just Another Hand:regular";s:5:"style";s:7:"regular";}}}i:268;a:3:{s:4:"name";s:23:"Just Me Again Down Here";s:3:"uid";s:31:"Just Me Again Down Here:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:23:"Just Me Again Down Here";s:3:"uid";s:31:"Just Me Again Down Here:regular";s:5:"style";s:7:"regular";}}}i:269;a:3:{s:4:"name";s:7:"Kameron";s:3:"uid";s:15:"Kameron:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Kameron";s:3:"uid";s:15:"Kameron:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Kameron";s:3:"uid";s:11:"Kameron:700";s:5:"style";s:3:"700";}}}i:270;a:3:{s:4:"name";s:5:"Karla";s:3:"uid";s:13:"Karla:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:5:"Karla";s:3:"uid";s:13:"Karla:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Karla";s:3:"uid";s:12:"Karla:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Karla";s:3:"uid";s:9:"Karla:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:5:"Karla";s:3:"uid";s:15:"Karla:700italic";s:5:"style";s:9:"700italic";}}}i:271;a:3:{s:4:"name";s:14:"Kaushan Script";s:3:"uid";s:22:"Kaushan Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Kaushan Script";s:3:"uid";s:22:"Kaushan Script:regular";s:5:"style";s:7:"regular";}}}i:272;a:3:{s:4:"name";s:10:"Kelly Slab";s:3:"uid";s:18:"Kelly Slab:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Kelly Slab";s:3:"uid";s:18:"Kelly Slab:regular";s:5:"style";s:7:"regular";}}}i:273;a:3:{s:4:"name";s:5:"Kenia";s:3:"uid";s:13:"Kenia:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Kenia";s:3:"uid";s:13:"Kenia:regular";s:5:"style";s:7:"regular";}}}i:274;a:3:{s:4:"name";s:5:"Khmer";s:3:"uid";s:13:"Khmer:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Khmer";s:3:"uid";s:13:"Khmer:regular";s:5:"style";s:7:"regular";}}}i:275;a:3:{s:4:"name";s:7:"Knewave";s:3:"uid";s:15:"Knewave:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Knewave";s:3:"uid";s:15:"Knewave:regular";s:5:"style";s:7:"regular";}}}i:276;a:3:{s:4:"name";s:9:"Kotta One";s:3:"uid";s:17:"Kotta One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Kotta One";s:3:"uid";s:17:"Kotta One:regular";s:5:"style";s:7:"regular";}}}i:277;a:3:{s:4:"name";s:6:"Koulen";s:3:"uid";s:14:"Koulen:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Koulen";s:3:"uid";s:14:"Koulen:regular";s:5:"style";s:7:"regular";}}}i:278;a:3:{s:4:"name";s:6:"Kranky";s:3:"uid";s:14:"Kranky:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Kranky";s:3:"uid";s:14:"Kranky:regular";s:5:"style";s:7:"regular";}}}i:279;a:3:{s:4:"name";s:5:"Kreon";s:3:"uid";s:13:"Kreon:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:5:"Kreon";s:3:"uid";s:9:"Kreon:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:5:"Kreon";s:3:"uid";s:13:"Kreon:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:5:"Kreon";s:3:"uid";s:9:"Kreon:700";s:5:"style";s:3:"700";}}}i:280;a:3:{s:4:"name";s:6:"Kristi";s:3:"uid";s:14:"Kristi:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Kristi";s:3:"uid";s:14:"Kristi:regular";s:5:"style";s:7:"regular";}}}i:281;a:3:{s:4:"name";s:9:"Krona One";s:3:"uid";s:17:"Krona One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Krona One";s:3:"uid";s:17:"Krona One:regular";s:5:"style";s:7:"regular";}}}i:282;a:3:{s:4:"name";s:15:"La Belle Aurore";s:3:"uid";s:23:"La Belle Aurore:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"La Belle Aurore";s:3:"uid";s:23:"La Belle Aurore:regular";s:5:"style";s:7:"regular";}}}i:283;a:3:{s:4:"name";s:8:"Lancelot";s:3:"uid";s:16:"Lancelot:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Lancelot";s:3:"uid";s:16:"Lancelot:regular";s:5:"style";s:7:"regular";}}}i:284;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:12:"Lato:regular";s:6:"styles";a:10:{i:0;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:8:"Lato:100";s:5:"style";s:3:"100";}i:1;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:14:"Lato:100italic";s:5:"style";s:9:"100italic";}i:2;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:8:"Lato:300";s:5:"style";s:3:"300";}i:3;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:14:"Lato:300italic";s:5:"style";s:9:"300italic";}i:4;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:12:"Lato:regular";s:5:"style";s:7:"regular";}i:5;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:11:"Lato:italic";s:5:"style";s:6:"italic";}i:6;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:8:"Lato:700";s:5:"style";s:3:"700";}i:7;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:14:"Lato:700italic";s:5:"style";s:9:"700italic";}i:8;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:8:"Lato:900";s:5:"style";s:3:"900";}i:9;a:3:{s:4:"name";s:4:"Lato";s:3:"uid";s:14:"Lato:900italic";s:5:"style";s:9:"900italic";}}}i:285;a:3:{s:4:"name";s:13:"League Script";s:3:"uid";s:21:"League Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"League Script";s:3:"uid";s:21:"League Script:regular";s:5:"style";s:7:"regular";}}}i:286;a:3:{s:4:"name";s:12:"Leckerli One";s:3:"uid";s:20:"Leckerli One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Leckerli One";s:3:"uid";s:20:"Leckerli One:regular";s:5:"style";s:7:"regular";}}}i:287;a:3:{s:4:"name";s:6:"Ledger";s:3:"uid";s:14:"Ledger:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Ledger";s:3:"uid";s:14:"Ledger:regular";s:5:"style";s:7:"regular";}}}i:288;a:3:{s:4:"name";s:6:"Lekton";s:3:"uid";s:14:"Lekton:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:6:"Lekton";s:3:"uid";s:14:"Lekton:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Lekton";s:3:"uid";s:13:"Lekton:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:6:"Lekton";s:3:"uid";s:10:"Lekton:700";s:5:"style";s:3:"700";}}}i:289;a:3:{s:4:"name";s:5:"Lemon";s:3:"uid";s:13:"Lemon:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Lemon";s:3:"uid";s:13:"Lemon:regular";s:5:"style";s:7:"regular";}}}i:290;a:3:{s:4:"name";s:11:"Life Savers";s:3:"uid";s:19:"Life Savers:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Life Savers";s:3:"uid";s:19:"Life Savers:regular";s:5:"style";s:7:"regular";}}}i:291;a:3:{s:4:"name";s:10:"Lilita One";s:3:"uid";s:18:"Lilita One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Lilita One";s:3:"uid";s:18:"Lilita One:regular";s:5:"style";s:7:"regular";}}}i:292;a:3:{s:4:"name";s:9:"Limelight";s:3:"uid";s:17:"Limelight:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Limelight";s:3:"uid";s:17:"Limelight:regular";s:5:"style";s:7:"regular";}}}i:293;a:3:{s:4:"name";s:11:"Linden Hill";s:3:"uid";s:19:"Linden Hill:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:11:"Linden Hill";s:3:"uid";s:19:"Linden Hill:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Linden Hill";s:3:"uid";s:18:"Linden Hill:italic";s:5:"style";s:6:"italic";}}}i:294;a:3:{s:4:"name";s:7:"Lobster";s:3:"uid";s:15:"Lobster:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Lobster";s:3:"uid";s:15:"Lobster:regular";s:5:"style";s:7:"regular";}}}i:295;a:3:{s:4:"name";s:11:"Lobster Two";s:3:"uid";s:19:"Lobster Two:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:11:"Lobster Two";s:3:"uid";s:19:"Lobster Two:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Lobster Two";s:3:"uid";s:18:"Lobster Two:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:11:"Lobster Two";s:3:"uid";s:15:"Lobster Two:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:11:"Lobster Two";s:3:"uid";s:21:"Lobster Two:700italic";s:5:"style";s:9:"700italic";}}}i:296;a:3:{s:4:"name";s:16:"Londrina Outline";s:3:"uid";s:24:"Londrina Outline:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Londrina Outline";s:3:"uid";s:24:"Londrina Outline:regular";s:5:"style";s:7:"regular";}}}i:297;a:3:{s:4:"name";s:15:"Londrina Shadow";s:3:"uid";s:23:"Londrina Shadow:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Londrina Shadow";s:3:"uid";s:23:"Londrina Shadow:regular";s:5:"style";s:7:"regular";}}}i:298;a:3:{s:4:"name";s:15:"Londrina Sketch";s:3:"uid";s:23:"Londrina Sketch:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Londrina Sketch";s:3:"uid";s:23:"Londrina Sketch:regular";s:5:"style";s:7:"regular";}}}i:299;a:3:{s:4:"name";s:14:"Londrina Solid";s:3:"uid";s:22:"Londrina Solid:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Londrina Solid";s:3:"uid";s:22:"Londrina Solid:regular";s:5:"style";s:7:"regular";}}}i:300;a:3:{s:4:"name";s:4:"Lora";s:3:"uid";s:12:"Lora:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:4:"Lora";s:3:"uid";s:12:"Lora:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Lora";s:3:"uid";s:11:"Lora:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:4:"Lora";s:3:"uid";s:8:"Lora:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:4:"Lora";s:3:"uid";s:14:"Lora:700italic";s:5:"style";s:9:"700italic";}}}i:301;a:3:{s:4:"name";s:21:"Love Ya Like A Sister";s:3:"uid";s:29:"Love Ya Like A Sister:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:21:"Love Ya Like A Sister";s:3:"uid";s:29:"Love Ya Like A Sister:regular";s:5:"style";s:7:"regular";}}}i:302;a:3:{s:4:"name";s:17:"Loved by the King";s:3:"uid";s:25:"Loved by the King:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:17:"Loved by the King";s:3:"uid";s:25:"Loved by the King:regular";s:5:"style";s:7:"regular";}}}i:303;a:3:{s:4:"name";s:14:"Lovers Quarrel";s:3:"uid";s:22:"Lovers Quarrel:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Lovers Quarrel";s:3:"uid";s:22:"Lovers Quarrel:regular";s:5:"style";s:7:"regular";}}}i:304;a:3:{s:4:"name";s:12:"Luckiest Guy";s:3:"uid";s:20:"Luckiest Guy:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Luckiest Guy";s:3:"uid";s:20:"Luckiest Guy:regular";s:5:"style";s:7:"regular";}}}i:305;a:3:{s:4:"name";s:8:"Lusitana";s:3:"uid";s:16:"Lusitana:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:8:"Lusitana";s:3:"uid";s:16:"Lusitana:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Lusitana";s:3:"uid";s:12:"Lusitana:700";s:5:"style";s:3:"700";}}}i:306;a:3:{s:4:"name";s:7:"Lustria";s:3:"uid";s:15:"Lustria:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Lustria";s:3:"uid";s:15:"Lustria:regular";s:5:"style";s:7:"regular";}}}i:307;a:3:{s:4:"name";s:7:"Macondo";s:3:"uid";s:15:"Macondo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Macondo";s:3:"uid";s:15:"Macondo:regular";s:5:"style";s:7:"regular";}}}i:308;a:3:{s:4:"name";s:18:"Macondo Swash Caps";s:3:"uid";s:26:"Macondo Swash Caps:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"Macondo Swash Caps";s:3:"uid";s:26:"Macondo Swash Caps:regular";s:5:"style";s:7:"regular";}}}i:309;a:3:{s:4:"name";s:5:"Magra";s:3:"uid";s:13:"Magra:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:5:"Magra";s:3:"uid";s:13:"Magra:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Magra";s:3:"uid";s:9:"Magra:700";s:5:"style";s:3:"700";}}}i:310;a:3:{s:4:"name";s:13:"Maiden Orange";s:3:"uid";s:21:"Maiden Orange:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Maiden Orange";s:3:"uid";s:21:"Maiden Orange:regular";s:5:"style";s:7:"regular";}}}i:311;a:3:{s:4:"name";s:4:"Mako";s:3:"uid";s:12:"Mako:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Mako";s:3:"uid";s:12:"Mako:regular";s:5:"style";s:7:"regular";}}}i:312;a:3:{s:4:"name";s:12:"Marck Script";s:3:"uid";s:20:"Marck Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Marck Script";s:3:"uid";s:20:"Marck Script:regular";s:5:"style";s:7:"regular";}}}i:313;a:3:{s:4:"name";s:9:"Marko One";s:3:"uid";s:17:"Marko One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Marko One";s:3:"uid";s:17:"Marko One:regular";s:5:"style";s:7:"regular";}}}i:314;a:3:{s:4:"name";s:8:"Marmelad";s:3:"uid";s:16:"Marmelad:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Marmelad";s:3:"uid";s:16:"Marmelad:regular";s:5:"style";s:7:"regular";}}}i:315;a:3:{s:4:"name";s:6:"Marvel";s:3:"uid";s:14:"Marvel:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:6:"Marvel";s:3:"uid";s:14:"Marvel:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Marvel";s:3:"uid";s:13:"Marvel:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:6:"Marvel";s:3:"uid";s:10:"Marvel:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:6:"Marvel";s:3:"uid";s:16:"Marvel:700italic";s:5:"style";s:9:"700italic";}}}i:316;a:3:{s:4:"name";s:4:"Mate";s:3:"uid";s:12:"Mate:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:4:"Mate";s:3:"uid";s:12:"Mate:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Mate";s:3:"uid";s:11:"Mate:italic";s:5:"style";s:6:"italic";}}}i:317;a:3:{s:4:"name";s:7:"Mate SC";s:3:"uid";s:15:"Mate SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Mate SC";s:3:"uid";s:15:"Mate SC:regular";s:5:"style";s:7:"regular";}}}i:318;a:3:{s:4:"name";s:9:"Maven Pro";s:3:"uid";s:17:"Maven Pro:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:9:"Maven Pro";s:3:"uid";s:17:"Maven Pro:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Maven Pro";s:3:"uid";s:13:"Maven Pro:500";s:5:"style";s:3:"500";}i:2;a:3:{s:4:"name";s:9:"Maven Pro";s:3:"uid";s:13:"Maven Pro:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:9:"Maven Pro";s:3:"uid";s:13:"Maven Pro:900";s:5:"style";s:3:"900";}}}i:319;a:3:{s:4:"name";s:7:"McLaren";s:3:"uid";s:15:"McLaren:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"McLaren";s:3:"uid";s:15:"McLaren:regular";s:5:"style";s:7:"regular";}}}i:320;a:3:{s:4:"name";s:6:"Meddon";s:3:"uid";s:14:"Meddon:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Meddon";s:3:"uid";s:14:"Meddon:regular";s:5:"style";s:7:"regular";}}}i:321;a:3:{s:4:"name";s:13:"MedievalSharp";s:3:"uid";s:21:"MedievalSharp:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"MedievalSharp";s:3:"uid";s:21:"MedievalSharp:regular";s:5:"style";s:7:"regular";}}}i:322;a:3:{s:4:"name";s:10:"Medula One";s:3:"uid";s:18:"Medula One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Medula One";s:3:"uid";s:18:"Medula One:regular";s:5:"style";s:7:"regular";}}}i:323;a:3:{s:4:"name";s:6:"Megrim";s:3:"uid";s:14:"Megrim:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Megrim";s:3:"uid";s:14:"Megrim:regular";s:5:"style";s:7:"regular";}}}i:324;a:3:{s:4:"name";s:11:"Meie Script";s:3:"uid";s:19:"Meie Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Meie Script";s:3:"uid";s:19:"Meie Script:regular";s:5:"style";s:7:"regular";}}}i:325;a:3:{s:4:"name";s:12:"Merienda One";s:3:"uid";s:20:"Merienda One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Merienda One";s:3:"uid";s:20:"Merienda One:regular";s:5:"style";s:7:"regular";}}}i:326;a:3:{s:4:"name";s:12:"Merriweather";s:3:"uid";s:20:"Merriweather:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:12:"Merriweather";s:3:"uid";s:16:"Merriweather:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:12:"Merriweather";s:3:"uid";s:20:"Merriweather:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:12:"Merriweather";s:3:"uid";s:16:"Merriweather:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:12:"Merriweather";s:3:"uid";s:16:"Merriweather:900";s:5:"style";s:3:"900";}}}i:327;a:3:{s:4:"name";s:5:"Metal";s:3:"uid";s:13:"Metal:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Metal";s:3:"uid";s:13:"Metal:regular";s:5:"style";s:7:"regular";}}}i:328;a:3:{s:4:"name";s:11:"Metal Mania";s:3:"uid";s:19:"Metal Mania:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Metal Mania";s:3:"uid";s:19:"Metal Mania:regular";s:5:"style";s:7:"regular";}}}i:329;a:3:{s:4:"name";s:12:"Metamorphous";s:3:"uid";s:20:"Metamorphous:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Metamorphous";s:3:"uid";s:20:"Metamorphous:regular";s:5:"style";s:7:"regular";}}}i:330;a:3:{s:4:"name";s:11:"Metrophobic";s:3:"uid";s:19:"Metrophobic:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Metrophobic";s:3:"uid";s:19:"Metrophobic:regular";s:5:"style";s:7:"regular";}}}i:331;a:3:{s:4:"name";s:8:"Michroma";s:3:"uid";s:16:"Michroma:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Michroma";s:3:"uid";s:16:"Michroma:regular";s:5:"style";s:7:"regular";}}}i:332;a:3:{s:4:"name";s:9:"Miltonian";s:3:"uid";s:17:"Miltonian:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Miltonian";s:3:"uid";s:17:"Miltonian:regular";s:5:"style";s:7:"regular";}}}i:333;a:3:{s:4:"name";s:16:"Miltonian Tattoo";s:3:"uid";s:24:"Miltonian Tattoo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Miltonian Tattoo";s:3:"uid";s:24:"Miltonian Tattoo:regular";s:5:"style";s:7:"regular";}}}i:334;a:3:{s:4:"name";s:7:"Miniver";s:3:"uid";s:15:"Miniver:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Miniver";s:3:"uid";s:15:"Miniver:regular";s:5:"style";s:7:"regular";}}}i:335;a:3:{s:4:"name";s:14:"Miss Fajardose";s:3:"uid";s:22:"Miss Fajardose:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Miss Fajardose";s:3:"uid";s:22:"Miss Fajardose:regular";s:5:"style";s:7:"regular";}}}i:336;a:3:{s:4:"name";s:14:"Modern Antiqua";s:3:"uid";s:22:"Modern Antiqua:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Modern Antiqua";s:3:"uid";s:22:"Modern Antiqua:regular";s:5:"style";s:7:"regular";}}}i:337;a:3:{s:4:"name";s:7:"Molengo";s:3:"uid";s:15:"Molengo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Molengo";s:3:"uid";s:15:"Molengo:regular";s:5:"style";s:7:"regular";}}}i:338;a:3:{s:4:"name";s:5:"Molle";s:3:"uid";s:12:"Molle:italic";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Molle";s:3:"uid";s:12:"Molle:italic";s:5:"style";s:6:"italic";}}}i:339;a:3:{s:4:"name";s:8:"Monofett";s:3:"uid";s:16:"Monofett:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Monofett";s:3:"uid";s:16:"Monofett:regular";s:5:"style";s:7:"regular";}}}i:340;a:3:{s:4:"name";s:7:"Monoton";s:3:"uid";s:15:"Monoton:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Monoton";s:3:"uid";s:15:"Monoton:regular";s:5:"style";s:7:"regular";}}}i:341;a:3:{s:4:"name";s:20:"Monsieur La Doulaise";s:3:"uid";s:28:"Monsieur La Doulaise:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:20:"Monsieur La Doulaise";s:3:"uid";s:28:"Monsieur La Doulaise:regular";s:5:"style";s:7:"regular";}}}i:342;a:3:{s:4:"name";s:7:"Montaga";s:3:"uid";s:15:"Montaga:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Montaga";s:3:"uid";s:15:"Montaga:regular";s:5:"style";s:7:"regular";}}}i:343;a:3:{s:4:"name";s:6:"Montez";s:3:"uid";s:14:"Montez:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Montez";s:3:"uid";s:14:"Montez:regular";s:5:"style";s:7:"regular";}}}i:344;a:3:{s:4:"name";s:10:"Montserrat";s:3:"uid";s:18:"Montserrat:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Montserrat";s:3:"uid";s:18:"Montserrat:regular";s:5:"style";s:7:"regular";}}}i:345;a:3:{s:4:"name";s:4:"Moul";s:3:"uid";s:12:"Moul:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Moul";s:3:"uid";s:12:"Moul:regular";s:5:"style";s:7:"regular";}}}i:346;a:3:{s:4:"name";s:8:"Moulpali";s:3:"uid";s:16:"Moulpali:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Moulpali";s:3:"uid";s:16:"Moulpali:regular";s:5:"style";s:7:"regular";}}}i:347;a:3:{s:4:"name";s:22:"Mountains of Christmas";s:3:"uid";s:30:"Mountains of Christmas:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:22:"Mountains of Christmas";s:3:"uid";s:30:"Mountains of Christmas:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:22:"Mountains of Christmas";s:3:"uid";s:26:"Mountains of Christmas:700";s:5:"style";s:3:"700";}}}i:348;a:3:{s:4:"name";s:10:"Mr Bedfort";s:3:"uid";s:18:"Mr Bedfort:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Mr Bedfort";s:3:"uid";s:18:"Mr Bedfort:regular";s:5:"style";s:7:"regular";}}}i:349;a:3:{s:4:"name";s:8:"Mr Dafoe";s:3:"uid";s:16:"Mr Dafoe:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Mr Dafoe";s:3:"uid";s:16:"Mr Dafoe:regular";s:5:"style";s:7:"regular";}}}i:350;a:3:{s:4:"name";s:14:"Mr De Haviland";s:3:"uid";s:22:"Mr De Haviland:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Mr De Haviland";s:3:"uid";s:22:"Mr De Haviland:regular";s:5:"style";s:7:"regular";}}}i:351;a:3:{s:4:"name";s:19:"Mrs Saint Delafield";s:3:"uid";s:27:"Mrs Saint Delafield:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:19:"Mrs Saint Delafield";s:3:"uid";s:27:"Mrs Saint Delafield:regular";s:5:"style";s:7:"regular";}}}i:352;a:3:{s:4:"name";s:13:"Mrs Sheppards";s:3:"uid";s:21:"Mrs Sheppards:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Mrs Sheppards";s:3:"uid";s:21:"Mrs Sheppards:regular";s:5:"style";s:7:"regular";}}}i:353;a:3:{s:4:"name";s:4:"Muli";s:3:"uid";s:12:"Muli:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:4:"Muli";s:3:"uid";s:8:"Muli:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:4:"Muli";s:3:"uid";s:14:"Muli:300italic";s:5:"style";s:9:"300italic";}i:2;a:3:{s:4:"name";s:4:"Muli";s:3:"uid";s:12:"Muli:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:4:"Muli";s:3:"uid";s:11:"Muli:italic";s:5:"style";s:6:"italic";}}}i:354;a:3:{s:4:"name";s:13:"Mystery Quest";s:3:"uid";s:21:"Mystery Quest:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Mystery Quest";s:3:"uid";s:21:"Mystery Quest:regular";s:5:"style";s:7:"regular";}}}i:355;a:3:{s:4:"name";s:6:"Neucha";s:3:"uid";s:14:"Neucha:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Neucha";s:3:"uid";s:14:"Neucha:regular";s:5:"style";s:7:"regular";}}}i:356;a:3:{s:4:"name";s:6:"Neuton";s:3:"uid";s:14:"Neuton:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:6:"Neuton";s:3:"uid";s:10:"Neuton:200";s:5:"style";s:3:"200";}i:1;a:3:{s:4:"name";s:6:"Neuton";s:3:"uid";s:10:"Neuton:300";s:5:"style";s:3:"300";}i:2;a:3:{s:4:"name";s:6:"Neuton";s:3:"uid";s:14:"Neuton:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:6:"Neuton";s:3:"uid";s:13:"Neuton:italic";s:5:"style";s:6:"italic";}i:4;a:3:{s:4:"name";s:6:"Neuton";s:3:"uid";s:10:"Neuton:700";s:5:"style";s:3:"700";}i:5;a:3:{s:4:"name";s:6:"Neuton";s:3:"uid";s:10:"Neuton:800";s:5:"style";s:3:"800";}}}i:357;a:3:{s:4:"name";s:10:"News Cycle";s:3:"uid";s:18:"News Cycle:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:10:"News Cycle";s:3:"uid";s:18:"News Cycle:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:10:"News Cycle";s:3:"uid";s:14:"News Cycle:700";s:5:"style";s:3:"700";}}}i:358;a:3:{s:4:"name";s:7:"Niconne";s:3:"uid";s:15:"Niconne:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Niconne";s:3:"uid";s:15:"Niconne:regular";s:5:"style";s:7:"regular";}}}i:359;a:3:{s:4:"name";s:9:"Nixie One";s:3:"uid";s:17:"Nixie One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Nixie One";s:3:"uid";s:17:"Nixie One:regular";s:5:"style";s:7:"regular";}}}i:360;a:3:{s:4:"name";s:6:"Nobile";s:3:"uid";s:14:"Nobile:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:6:"Nobile";s:3:"uid";s:14:"Nobile:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Nobile";s:3:"uid";s:13:"Nobile:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:6:"Nobile";s:3:"uid";s:10:"Nobile:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:6:"Nobile";s:3:"uid";s:16:"Nobile:700italic";s:5:"style";s:9:"700italic";}}}i:361;a:3:{s:4:"name";s:6:"Nokora";s:3:"uid";s:14:"Nokora:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:6:"Nokora";s:3:"uid";s:14:"Nokora:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Nokora";s:3:"uid";s:10:"Nokora:700";s:5:"style";s:3:"700";}}}i:362;a:3:{s:4:"name";s:7:"Norican";s:3:"uid";s:15:"Norican:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Norican";s:3:"uid";s:15:"Norican:regular";s:5:"style";s:7:"regular";}}}i:363;a:3:{s:4:"name";s:7:"Nosifer";s:3:"uid";s:15:"Nosifer:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Nosifer";s:3:"uid";s:15:"Nosifer:regular";s:5:"style";s:7:"regular";}}}i:364;a:3:{s:4:"name";s:20:"Nothing You Could Do";s:3:"uid";s:28:"Nothing You Could Do:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:20:"Nothing You Could Do";s:3:"uid";s:28:"Nothing You Could Do:regular";s:5:"style";s:7:"regular";}}}i:365;a:3:{s:4:"name";s:12:"Noticia Text";s:3:"uid";s:20:"Noticia Text:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:12:"Noticia Text";s:3:"uid";s:20:"Noticia Text:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:12:"Noticia Text";s:3:"uid";s:19:"Noticia Text:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:12:"Noticia Text";s:3:"uid";s:16:"Noticia Text:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:12:"Noticia Text";s:3:"uid";s:22:"Noticia Text:700italic";s:5:"style";s:9:"700italic";}}}i:366;a:3:{s:4:"name";s:8:"Nova Cut";s:3:"uid";s:16:"Nova Cut:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Nova Cut";s:3:"uid";s:16:"Nova Cut:regular";s:5:"style";s:7:"regular";}}}i:367;a:3:{s:4:"name";s:9:"Nova Flat";s:3:"uid";s:17:"Nova Flat:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Nova Flat";s:3:"uid";s:17:"Nova Flat:regular";s:5:"style";s:7:"regular";}}}i:368;a:3:{s:4:"name";s:9:"Nova Mono";s:3:"uid";s:17:"Nova Mono:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Nova Mono";s:3:"uid";s:17:"Nova Mono:regular";s:5:"style";s:7:"regular";}}}i:369;a:3:{s:4:"name";s:9:"Nova Oval";s:3:"uid";s:17:"Nova Oval:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Nova Oval";s:3:"uid";s:17:"Nova Oval:regular";s:5:"style";s:7:"regular";}}}i:370;a:3:{s:4:"name";s:10:"Nova Round";s:3:"uid";s:18:"Nova Round:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Nova Round";s:3:"uid";s:18:"Nova Round:regular";s:5:"style";s:7:"regular";}}}i:371;a:3:{s:4:"name";s:11:"Nova Script";s:3:"uid";s:19:"Nova Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Nova Script";s:3:"uid";s:19:"Nova Script:regular";s:5:"style";s:7:"regular";}}}i:372;a:3:{s:4:"name";s:9:"Nova Slim";s:3:"uid";s:17:"Nova Slim:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Nova Slim";s:3:"uid";s:17:"Nova Slim:regular";s:5:"style";s:7:"regular";}}}i:373;a:3:{s:4:"name";s:11:"Nova Square";s:3:"uid";s:19:"Nova Square:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Nova Square";s:3:"uid";s:19:"Nova Square:regular";s:5:"style";s:7:"regular";}}}i:374;a:3:{s:4:"name";s:6:"Numans";s:3:"uid";s:14:"Numans:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Numans";s:3:"uid";s:14:"Numans:regular";s:5:"style";s:7:"regular";}}}i:375;a:3:{s:4:"name";s:6:"Nunito";s:3:"uid";s:14:"Nunito:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:6:"Nunito";s:3:"uid";s:10:"Nunito:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:6:"Nunito";s:3:"uid";s:14:"Nunito:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:6:"Nunito";s:3:"uid";s:10:"Nunito:700";s:5:"style";s:3:"700";}}}i:376;a:3:{s:4:"name";s:14:"Odor Mean Chey";s:3:"uid";s:22:"Odor Mean Chey:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Odor Mean Chey";s:3:"uid";s:22:"Odor Mean Chey:regular";s:5:"style";s:7:"regular";}}}i:377;a:3:{s:4:"name";s:15:"Old Standard TT";s:3:"uid";s:23:"Old Standard TT:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:15:"Old Standard TT";s:3:"uid";s:23:"Old Standard TT:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:15:"Old Standard TT";s:3:"uid";s:22:"Old Standard TT:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:15:"Old Standard TT";s:3:"uid";s:19:"Old Standard TT:700";s:5:"style";s:3:"700";}}}i:378;a:3:{s:4:"name";s:9:"Oldenburg";s:3:"uid";s:17:"Oldenburg:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Oldenburg";s:3:"uid";s:17:"Oldenburg:regular";s:5:"style";s:7:"regular";}}}i:379;a:3:{s:4:"name";s:11:"Oleo Script";s:3:"uid";s:19:"Oleo Script:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:11:"Oleo Script";s:3:"uid";s:19:"Oleo Script:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Oleo Script";s:3:"uid";s:15:"Oleo Script:700";s:5:"style";s:3:"700";}}}i:380;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:17:"Open Sans:regular";s:6:"styles";a:10:{i:0;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:13:"Open Sans:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:19:"Open Sans:300italic";s:5:"style";s:9:"300italic";}i:2;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:17:"Open Sans:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:16:"Open Sans:italic";s:5:"style";s:6:"italic";}i:4;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:13:"Open Sans:600";s:5:"style";s:3:"600";}i:5;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:19:"Open Sans:600italic";s:5:"style";s:9:"600italic";}i:6;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:13:"Open Sans:700";s:5:"style";s:3:"700";}i:7;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:19:"Open Sans:700italic";s:5:"style";s:9:"700italic";}i:8;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:13:"Open Sans:800";s:5:"style";s:3:"800";}i:9;a:3:{s:4:"name";s:9:"Open Sans";s:3:"uid";s:19:"Open Sans:800italic";s:5:"style";s:9:"800italic";}}}i:381;a:3:{s:4:"name";s:19:"Open Sans Condensed";s:3:"uid";s:23:"Open Sans Condensed:300";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:19:"Open Sans Condensed";s:3:"uid";s:23:"Open Sans Condensed:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:19:"Open Sans Condensed";s:3:"uid";s:29:"Open Sans Condensed:300italic";s:5:"style";s:9:"300italic";}i:2;a:3:{s:4:"name";s:19:"Open Sans Condensed";s:3:"uid";s:23:"Open Sans Condensed:700";s:5:"style";s:3:"700";}}}i:382;a:3:{s:4:"name";s:11:"Oranienbaum";s:3:"uid";s:19:"Oranienbaum:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Oranienbaum";s:3:"uid";s:19:"Oranienbaum:regular";s:5:"style";s:7:"regular";}}}i:383;a:3:{s:4:"name";s:8:"Orbitron";s:3:"uid";s:16:"Orbitron:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:8:"Orbitron";s:3:"uid";s:16:"Orbitron:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Orbitron";s:3:"uid";s:12:"Orbitron:500";s:5:"style";s:3:"500";}i:2;a:3:{s:4:"name";s:8:"Orbitron";s:3:"uid";s:12:"Orbitron:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"Orbitron";s:3:"uid";s:12:"Orbitron:900";s:5:"style";s:3:"900";}}}i:384;a:3:{s:4:"name";s:7:"Oregano";s:3:"uid";s:15:"Oregano:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Oregano";s:3:"uid";s:15:"Oregano:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Oregano";s:3:"uid";s:14:"Oregano:italic";s:5:"style";s:6:"italic";}}}i:385;a:3:{s:4:"name";s:7:"Orienta";s:3:"uid";s:15:"Orienta:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Orienta";s:3:"uid";s:15:"Orienta:regular";s:5:"style";s:7:"regular";}}}i:386;a:3:{s:4:"name";s:15:"Original Surfer";s:3:"uid";s:23:"Original Surfer:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Original Surfer";s:3:"uid";s:23:"Original Surfer:regular";s:5:"style";s:7:"regular";}}}i:387;a:3:{s:4:"name";s:6:"Oswald";s:3:"uid";s:14:"Oswald:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:6:"Oswald";s:3:"uid";s:10:"Oswald:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:6:"Oswald";s:3:"uid";s:14:"Oswald:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:6:"Oswald";s:3:"uid";s:10:"Oswald:700";s:5:"style";s:3:"700";}}}i:388;a:3:{s:4:"name";s:16:"Over the Rainbow";s:3:"uid";s:24:"Over the Rainbow:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Over the Rainbow";s:3:"uid";s:24:"Over the Rainbow:regular";s:5:"style";s:7:"regular";}}}i:389;a:3:{s:4:"name";s:8:"Overlock";s:3:"uid";s:16:"Overlock:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:8:"Overlock";s:3:"uid";s:16:"Overlock:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Overlock";s:3:"uid";s:15:"Overlock:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:8:"Overlock";s:3:"uid";s:12:"Overlock:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"Overlock";s:3:"uid";s:18:"Overlock:700italic";s:5:"style";s:9:"700italic";}i:4;a:3:{s:4:"name";s:8:"Overlock";s:3:"uid";s:12:"Overlock:900";s:5:"style";s:3:"900";}i:5;a:3:{s:4:"name";s:8:"Overlock";s:3:"uid";s:18:"Overlock:900italic";s:5:"style";s:9:"900italic";}}}i:390;a:3:{s:4:"name";s:11:"Overlock SC";s:3:"uid";s:19:"Overlock SC:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Overlock SC";s:3:"uid";s:19:"Overlock SC:regular";s:5:"style";s:7:"regular";}}}i:391;a:3:{s:4:"name";s:3:"Ovo";s:3:"uid";s:11:"Ovo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:3:"Ovo";s:3:"uid";s:11:"Ovo:regular";s:5:"style";s:7:"regular";}}}i:392;a:3:{s:4:"name";s:6:"Oxygen";s:3:"uid";s:14:"Oxygen:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Oxygen";s:3:"uid";s:14:"Oxygen:regular";s:5:"style";s:7:"regular";}}}i:393;a:3:{s:4:"name";s:11:"Oxygen Mono";s:3:"uid";s:19:"Oxygen Mono:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Oxygen Mono";s:3:"uid";s:19:"Oxygen Mono:regular";s:5:"style";s:7:"regular";}}}i:394;a:3:{s:4:"name";s:7:"PT Mono";s:3:"uid";s:15:"PT Mono:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"PT Mono";s:3:"uid";s:15:"PT Mono:regular";s:5:"style";s:7:"regular";}}}i:395;a:3:{s:4:"name";s:7:"PT Sans";s:3:"uid";s:15:"PT Sans:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:7:"PT Sans";s:3:"uid";s:15:"PT Sans:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"PT Sans";s:3:"uid";s:14:"PT Sans:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:7:"PT Sans";s:3:"uid";s:11:"PT Sans:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:7:"PT Sans";s:3:"uid";s:17:"PT Sans:700italic";s:5:"style";s:9:"700italic";}}}i:396;a:3:{s:4:"name";s:15:"PT Sans Caption";s:3:"uid";s:23:"PT Sans Caption:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:15:"PT Sans Caption";s:3:"uid";s:23:"PT Sans Caption:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:15:"PT Sans Caption";s:3:"uid";s:19:"PT Sans Caption:700";s:5:"style";s:3:"700";}}}i:397;a:3:{s:4:"name";s:14:"PT Sans Narrow";s:3:"uid";s:22:"PT Sans Narrow:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:14:"PT Sans Narrow";s:3:"uid";s:22:"PT Sans Narrow:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:14:"PT Sans Narrow";s:3:"uid";s:18:"PT Sans Narrow:700";s:5:"style";s:3:"700";}}}i:398;a:3:{s:4:"name";s:8:"PT Serif";s:3:"uid";s:16:"PT Serif:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:8:"PT Serif";s:3:"uid";s:16:"PT Serif:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"PT Serif";s:3:"uid";s:15:"PT Serif:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:8:"PT Serif";s:3:"uid";s:12:"PT Serif:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"PT Serif";s:3:"uid";s:18:"PT Serif:700italic";s:5:"style";s:9:"700italic";}}}i:399;a:3:{s:4:"name";s:16:"PT Serif Caption";s:3:"uid";s:24:"PT Serif Caption:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:16:"PT Serif Caption";s:3:"uid";s:24:"PT Serif Caption:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:16:"PT Serif Caption";s:3:"uid";s:23:"PT Serif Caption:italic";s:5:"style";s:6:"italic";}}}i:400;a:3:{s:4:"name";s:8:"Pacifico";s:3:"uid";s:16:"Pacifico:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Pacifico";s:3:"uid";s:16:"Pacifico:regular";s:5:"style";s:7:"regular";}}}i:401;a:3:{s:4:"name";s:10:"Parisienne";s:3:"uid";s:18:"Parisienne:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Parisienne";s:3:"uid";s:18:"Parisienne:regular";s:5:"style";s:7:"regular";}}}i:402;a:3:{s:4:"name";s:11:"Passero One";s:3:"uid";s:19:"Passero One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Passero One";s:3:"uid";s:19:"Passero One:regular";s:5:"style";s:7:"regular";}}}i:403;a:3:{s:4:"name";s:11:"Passion One";s:3:"uid";s:19:"Passion One:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:11:"Passion One";s:3:"uid";s:19:"Passion One:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Passion One";s:3:"uid";s:15:"Passion One:700";s:5:"style";s:3:"700";}i:2;a:3:{s:4:"name";s:11:"Passion One";s:3:"uid";s:15:"Passion One:900";s:5:"style";s:3:"900";}}}i:404;a:3:{s:4:"name";s:12:"Patrick Hand";s:3:"uid";s:20:"Patrick Hand:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Patrick Hand";s:3:"uid";s:20:"Patrick Hand:regular";s:5:"style";s:7:"regular";}}}i:405;a:3:{s:4:"name";s:9:"Patua One";s:3:"uid";s:17:"Patua One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Patua One";s:3:"uid";s:17:"Patua One:regular";s:5:"style";s:7:"regular";}}}i:406;a:3:{s:4:"name";s:11:"Paytone One";s:3:"uid";s:19:"Paytone One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Paytone One";s:3:"uid";s:19:"Paytone One:regular";s:5:"style";s:7:"regular";}}}i:407;a:3:{s:4:"name";s:7:"Peralta";s:3:"uid";s:15:"Peralta:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Peralta";s:3:"uid";s:15:"Peralta:regular";s:5:"style";s:7:"regular";}}}i:408;a:3:{s:4:"name";s:16:"Permanent Marker";s:3:"uid";s:24:"Permanent Marker:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Permanent Marker";s:3:"uid";s:24:"Permanent Marker:regular";s:5:"style";s:7:"regular";}}}i:409;a:3:{s:4:"name";s:19:"Petit Formal Script";s:3:"uid";s:27:"Petit Formal Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:19:"Petit Formal Script";s:3:"uid";s:27:"Petit Formal Script:regular";s:5:"style";s:7:"regular";}}}i:410;a:3:{s:4:"name";s:7:"Petrona";s:3:"uid";s:15:"Petrona:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Petrona";s:3:"uid";s:15:"Petrona:regular";s:5:"style";s:7:"regular";}}}i:411;a:3:{s:4:"name";s:11:"Philosopher";s:3:"uid";s:19:"Philosopher:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:11:"Philosopher";s:3:"uid";s:19:"Philosopher:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Philosopher";s:3:"uid";s:18:"Philosopher:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:11:"Philosopher";s:3:"uid";s:15:"Philosopher:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:11:"Philosopher";s:3:"uid";s:21:"Philosopher:700italic";s:5:"style";s:9:"700italic";}}}i:412;a:3:{s:4:"name";s:6:"Piedra";s:3:"uid";s:14:"Piedra:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Piedra";s:3:"uid";s:14:"Piedra:regular";s:5:"style";s:7:"regular";}}}i:413;a:3:{s:4:"name";s:13:"Pinyon Script";s:3:"uid";s:21:"Pinyon Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Pinyon Script";s:3:"uid";s:21:"Pinyon Script:regular";s:5:"style";s:7:"regular";}}}i:414;a:3:{s:4:"name";s:7:"Plaster";s:3:"uid";s:15:"Plaster:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Plaster";s:3:"uid";s:15:"Plaster:regular";s:5:"style";s:7:"regular";}}}i:415;a:3:{s:4:"name";s:4:"Play";s:3:"uid";s:12:"Play:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:4:"Play";s:3:"uid";s:12:"Play:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Play";s:3:"uid";s:8:"Play:700";s:5:"style";s:3:"700";}}}i:416;a:3:{s:4:"name";s:8:"Playball";s:3:"uid";s:16:"Playball:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Playball";s:3:"uid";s:16:"Playball:regular";s:5:"style";s:7:"regular";}}}i:417;a:3:{s:4:"name";s:16:"Playfair Display";s:3:"uid";s:24:"Playfair Display:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:16:"Playfair Display";s:3:"uid";s:24:"Playfair Display:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:16:"Playfair Display";s:3:"uid";s:23:"Playfair Display:italic";s:5:"style";s:6:"italic";}}}i:418;a:3:{s:4:"name";s:7:"Podkova";s:3:"uid";s:15:"Podkova:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Podkova";s:3:"uid";s:15:"Podkova:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Podkova";s:3:"uid";s:11:"Podkova:700";s:5:"style";s:3:"700";}}}i:419;a:3:{s:4:"name";s:10:"Poiret One";s:3:"uid";s:18:"Poiret One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Poiret One";s:3:"uid";s:18:"Poiret One:regular";s:5:"style";s:7:"regular";}}}i:420;a:3:{s:4:"name";s:10:"Poller One";s:3:"uid";s:18:"Poller One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Poller One";s:3:"uid";s:18:"Poller One:regular";s:5:"style";s:7:"regular";}}}i:421;a:3:{s:4:"name";s:4:"Poly";s:3:"uid";s:12:"Poly:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:4:"Poly";s:3:"uid";s:12:"Poly:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Poly";s:3:"uid";s:11:"Poly:italic";s:5:"style";s:6:"italic";}}}i:422;a:3:{s:4:"name";s:8:"Pompiere";s:3:"uid";s:16:"Pompiere:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Pompiere";s:3:"uid";s:16:"Pompiere:regular";s:5:"style";s:7:"regular";}}}i:423;a:3:{s:4:"name";s:12:"Pontano Sans";s:3:"uid";s:20:"Pontano Sans:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Pontano Sans";s:3:"uid";s:20:"Pontano Sans:regular";s:5:"style";s:7:"regular";}}}i:424;a:3:{s:4:"name";s:16:"Port Lligat Sans";s:3:"uid";s:24:"Port Lligat Sans:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Port Lligat Sans";s:3:"uid";s:24:"Port Lligat Sans:regular";s:5:"style";s:7:"regular";}}}i:425;a:3:{s:4:"name";s:16:"Port Lligat Slab";s:3:"uid";s:24:"Port Lligat Slab:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Port Lligat Slab";s:3:"uid";s:24:"Port Lligat Slab:regular";s:5:"style";s:7:"regular";}}}i:426;a:3:{s:4:"name";s:5:"Prata";s:3:"uid";s:13:"Prata:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Prata";s:3:"uid";s:13:"Prata:regular";s:5:"style";s:7:"regular";}}}i:427;a:3:{s:4:"name";s:11:"Preahvihear";s:3:"uid";s:19:"Preahvihear:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Preahvihear";s:3:"uid";s:19:"Preahvihear:regular";s:5:"style";s:7:"regular";}}}i:428;a:3:{s:4:"name";s:14:"Press Start 2P";s:3:"uid";s:22:"Press Start 2P:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Press Start 2P";s:3:"uid";s:22:"Press Start 2P:regular";s:5:"style";s:7:"regular";}}}i:429;a:3:{s:4:"name";s:14:"Princess Sofia";s:3:"uid";s:22:"Princess Sofia:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Princess Sofia";s:3:"uid";s:22:"Princess Sofia:regular";s:5:"style";s:7:"regular";}}}i:430;a:3:{s:4:"name";s:8:"Prociono";s:3:"uid";s:16:"Prociono:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Prociono";s:3:"uid";s:16:"Prociono:regular";s:5:"style";s:7:"regular";}}}i:431;a:3:{s:4:"name";s:10:"Prosto One";s:3:"uid";s:18:"Prosto One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Prosto One";s:3:"uid";s:18:"Prosto One:regular";s:5:"style";s:7:"regular";}}}i:432;a:3:{s:4:"name";s:7:"Puritan";s:3:"uid";s:15:"Puritan:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:7:"Puritan";s:3:"uid";s:15:"Puritan:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Puritan";s:3:"uid";s:14:"Puritan:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:7:"Puritan";s:3:"uid";s:11:"Puritan:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:7:"Puritan";s:3:"uid";s:17:"Puritan:700italic";s:5:"style";s:9:"700italic";}}}i:433;a:3:{s:4:"name";s:6:"Quando";s:3:"uid";s:14:"Quando:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Quando";s:3:"uid";s:14:"Quando:regular";s:5:"style";s:7:"regular";}}}i:434;a:3:{s:4:"name";s:8:"Quantico";s:3:"uid";s:16:"Quantico:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:8:"Quantico";s:3:"uid";s:16:"Quantico:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Quantico";s:3:"uid";s:15:"Quantico:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:8:"Quantico";s:3:"uid";s:12:"Quantico:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"Quantico";s:3:"uid";s:18:"Quantico:700italic";s:5:"style";s:9:"700italic";}}}i:435;a:3:{s:4:"name";s:12:"Quattrocento";s:3:"uid";s:20:"Quattrocento:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:12:"Quattrocento";s:3:"uid";s:20:"Quattrocento:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:12:"Quattrocento";s:3:"uid";s:16:"Quattrocento:700";s:5:"style";s:3:"700";}}}i:436;a:3:{s:4:"name";s:17:"Quattrocento Sans";s:3:"uid";s:25:"Quattrocento Sans:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:17:"Quattrocento Sans";s:3:"uid";s:25:"Quattrocento Sans:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:17:"Quattrocento Sans";s:3:"uid";s:24:"Quattrocento Sans:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:17:"Quattrocento Sans";s:3:"uid";s:21:"Quattrocento Sans:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:17:"Quattrocento Sans";s:3:"uid";s:27:"Quattrocento Sans:700italic";s:5:"style";s:9:"700italic";}}}i:437;a:3:{s:4:"name";s:9:"Questrial";s:3:"uid";s:17:"Questrial:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Questrial";s:3:"uid";s:17:"Questrial:regular";s:5:"style";s:7:"regular";}}}i:438;a:3:{s:4:"name";s:9:"Quicksand";s:3:"uid";s:17:"Quicksand:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:9:"Quicksand";s:3:"uid";s:13:"Quicksand:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:9:"Quicksand";s:3:"uid";s:17:"Quicksand:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:9:"Quicksand";s:3:"uid";s:13:"Quicksand:700";s:5:"style";s:3:"700";}}}i:439;a:3:{s:4:"name";s:7:"Qwigley";s:3:"uid";s:15:"Qwigley:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Qwigley";s:3:"uid";s:15:"Qwigley:regular";s:5:"style";s:7:"regular";}}}i:440;a:3:{s:4:"name";s:15:"Racing Sans One";s:3:"uid";s:23:"Racing Sans One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Racing Sans One";s:3:"uid";s:23:"Racing Sans One:regular";s:5:"style";s:7:"regular";}}}i:441;a:3:{s:4:"name";s:6:"Radley";s:3:"uid";s:14:"Radley:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:6:"Radley";s:3:"uid";s:14:"Radley:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Radley";s:3:"uid";s:13:"Radley:italic";s:5:"style";s:6:"italic";}}}i:442;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:15:"Raleway:regular";s:6:"styles";a:9:{i:0;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:100";s:5:"style";s:3:"100";}i:1;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:200";s:5:"style";s:3:"200";}i:2;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:300";s:5:"style";s:3:"300";}i:3;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:15:"Raleway:regular";s:5:"style";s:7:"regular";}i:4;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:500";s:5:"style";s:3:"500";}i:5;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:600";s:5:"style";s:3:"600";}i:6;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:700";s:5:"style";s:3:"700";}i:7;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:800";s:5:"style";s:3:"800";}i:8;a:3:{s:4:"name";s:7:"Raleway";s:3:"uid";s:11:"Raleway:900";s:5:"style";s:3:"900";}}}i:443;a:3:{s:4:"name";s:12:"Raleway Dots";s:3:"uid";s:20:"Raleway Dots:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Raleway Dots";s:3:"uid";s:20:"Raleway Dots:regular";s:5:"style";s:7:"regular";}}}i:444;a:3:{s:4:"name";s:12:"Rammetto One";s:3:"uid";s:20:"Rammetto One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Rammetto One";s:3:"uid";s:20:"Rammetto One:regular";s:5:"style";s:7:"regular";}}}i:445;a:3:{s:4:"name";s:8:"Ranchers";s:3:"uid";s:16:"Ranchers:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Ranchers";s:3:"uid";s:16:"Ranchers:regular";s:5:"style";s:7:"regular";}}}i:446;a:3:{s:4:"name";s:6:"Rancho";s:3:"uid";s:14:"Rancho:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Rancho";s:3:"uid";s:14:"Rancho:regular";s:5:"style";s:7:"regular";}}}i:447;a:3:{s:4:"name";s:9:"Rationale";s:3:"uid";s:17:"Rationale:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Rationale";s:3:"uid";s:17:"Rationale:regular";s:5:"style";s:7:"regular";}}}i:448;a:3:{s:4:"name";s:9:"Redressed";s:3:"uid";s:17:"Redressed:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Redressed";s:3:"uid";s:17:"Redressed:regular";s:5:"style";s:7:"regular";}}}i:449;a:3:{s:4:"name";s:13:"Reenie Beanie";s:3:"uid";s:21:"Reenie Beanie:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Reenie Beanie";s:3:"uid";s:21:"Reenie Beanie:regular";s:5:"style";s:7:"regular";}}}i:450;a:3:{s:4:"name";s:7:"Revalia";s:3:"uid";s:15:"Revalia:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Revalia";s:3:"uid";s:15:"Revalia:regular";s:5:"style";s:7:"regular";}}}i:451;a:3:{s:4:"name";s:6:"Ribeye";s:3:"uid";s:14:"Ribeye:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Ribeye";s:3:"uid";s:14:"Ribeye:regular";s:5:"style";s:7:"regular";}}}i:452;a:3:{s:4:"name";s:13:"Ribeye Marrow";s:3:"uid";s:21:"Ribeye Marrow:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Ribeye Marrow";s:3:"uid";s:21:"Ribeye Marrow:regular";s:5:"style";s:7:"regular";}}}i:453;a:3:{s:4:"name";s:9:"Righteous";s:3:"uid";s:17:"Righteous:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Righteous";s:3:"uid";s:17:"Righteous:regular";s:5:"style";s:7:"regular";}}}i:454;a:3:{s:4:"name";s:9:"Rochester";s:3:"uid";s:17:"Rochester:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Rochester";s:3:"uid";s:17:"Rochester:regular";s:5:"style";s:7:"regular";}}}i:455;a:3:{s:4:"name";s:9:"Rock Salt";s:3:"uid";s:17:"Rock Salt:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Rock Salt";s:3:"uid";s:17:"Rock Salt:regular";s:5:"style";s:7:"regular";}}}i:456;a:3:{s:4:"name";s:7:"Rokkitt";s:3:"uid";s:15:"Rokkitt:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Rokkitt";s:3:"uid";s:15:"Rokkitt:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Rokkitt";s:3:"uid";s:11:"Rokkitt:700";s:5:"style";s:3:"700";}}}i:457;a:3:{s:4:"name";s:9:"Romanesco";s:3:"uid";s:17:"Romanesco:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Romanesco";s:3:"uid";s:17:"Romanesco:regular";s:5:"style";s:7:"regular";}}}i:458;a:3:{s:4:"name";s:9:"Ropa Sans";s:3:"uid";s:17:"Ropa Sans:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:9:"Ropa Sans";s:3:"uid";s:17:"Ropa Sans:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Ropa Sans";s:3:"uid";s:16:"Ropa Sans:italic";s:5:"style";s:6:"italic";}}}i:459;a:3:{s:4:"name";s:7:"Rosario";s:3:"uid";s:15:"Rosario:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:7:"Rosario";s:3:"uid";s:15:"Rosario:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Rosario";s:3:"uid";s:14:"Rosario:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:7:"Rosario";s:3:"uid";s:11:"Rosario:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:7:"Rosario";s:3:"uid";s:17:"Rosario:700italic";s:5:"style";s:9:"700italic";}}}i:460;a:3:{s:4:"name";s:8:"Rosarivo";s:3:"uid";s:16:"Rosarivo:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:8:"Rosarivo";s:3:"uid";s:16:"Rosarivo:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Rosarivo";s:3:"uid";s:15:"Rosarivo:italic";s:5:"style";s:6:"italic";}}}i:461;a:3:{s:4:"name";s:12:"Rouge Script";s:3:"uid";s:20:"Rouge Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Rouge Script";s:3:"uid";s:20:"Rouge Script:regular";s:5:"style";s:7:"regular";}}}i:462;a:3:{s:4:"name";s:4:"Ruda";s:3:"uid";s:12:"Ruda:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:4:"Ruda";s:3:"uid";s:12:"Ruda:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:4:"Ruda";s:3:"uid";s:8:"Ruda:700";s:5:"style";s:3:"700";}i:2;a:3:{s:4:"name";s:4:"Ruda";s:3:"uid";s:8:"Ruda:900";s:5:"style";s:3:"900";}}}i:463;a:3:{s:4:"name";s:11:"Ruge Boogie";s:3:"uid";s:19:"Ruge Boogie:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Ruge Boogie";s:3:"uid";s:19:"Ruge Boogie:regular";s:5:"style";s:7:"regular";}}}i:464;a:3:{s:4:"name";s:6:"Ruluko";s:3:"uid";s:14:"Ruluko:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Ruluko";s:3:"uid";s:14:"Ruluko:regular";s:5:"style";s:7:"regular";}}}i:465;a:3:{s:4:"name";s:14:"Ruslan Display";s:3:"uid";s:22:"Ruslan Display:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Ruslan Display";s:3:"uid";s:22:"Ruslan Display:regular";s:5:"style";s:7:"regular";}}}i:466;a:3:{s:4:"name";s:9:"Russo One";s:3:"uid";s:17:"Russo One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Russo One";s:3:"uid";s:17:"Russo One:regular";s:5:"style";s:7:"regular";}}}i:467;a:3:{s:4:"name";s:6:"Ruthie";s:3:"uid";s:14:"Ruthie:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Ruthie";s:3:"uid";s:14:"Ruthie:regular";s:5:"style";s:7:"regular";}}}i:468;a:3:{s:4:"name";s:3:"Rye";s:3:"uid";s:11:"Rye:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:3:"Rye";s:3:"uid";s:11:"Rye:regular";s:5:"style";s:7:"regular";}}}i:469;a:3:{s:4:"name";s:4:"Sail";s:3:"uid";s:12:"Sail:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Sail";s:3:"uid";s:12:"Sail:regular";s:5:"style";s:7:"regular";}}}i:470;a:3:{s:4:"name";s:5:"Salsa";s:3:"uid";s:13:"Salsa:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Salsa";s:3:"uid";s:13:"Salsa:regular";s:5:"style";s:7:"regular";}}}i:471;a:3:{s:4:"name";s:8:"Sancreek";s:3:"uid";s:16:"Sancreek:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Sancreek";s:3:"uid";s:16:"Sancreek:regular";s:5:"style";s:7:"regular";}}}i:472;a:3:{s:4:"name";s:11:"Sansita One";s:3:"uid";s:19:"Sansita One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Sansita One";s:3:"uid";s:19:"Sansita One:regular";s:5:"style";s:7:"regular";}}}i:473;a:3:{s:4:"name";s:6:"Sarina";s:3:"uid";s:14:"Sarina:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Sarina";s:3:"uid";s:14:"Sarina:regular";s:5:"style";s:7:"regular";}}}i:474;a:3:{s:4:"name";s:7:"Satisfy";s:3:"uid";s:15:"Satisfy:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Satisfy";s:3:"uid";s:15:"Satisfy:regular";s:5:"style";s:7:"regular";}}}i:475;a:3:{s:4:"name";s:5:"Scada";s:3:"uid";s:13:"Scada:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:5:"Scada";s:3:"uid";s:13:"Scada:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Scada";s:3:"uid";s:12:"Scada:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Scada";s:3:"uid";s:9:"Scada:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:5:"Scada";s:3:"uid";s:15:"Scada:700italic";s:5:"style";s:9:"700italic";}}}i:476;a:3:{s:4:"name";s:10:"Schoolbell";s:3:"uid";s:18:"Schoolbell:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Schoolbell";s:3:"uid";s:18:"Schoolbell:regular";s:5:"style";s:7:"regular";}}}i:477;a:3:{s:4:"name";s:14:"Seaweed Script";s:3:"uid";s:22:"Seaweed Script:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Seaweed Script";s:3:"uid";s:22:"Seaweed Script:regular";s:5:"style";s:7:"regular";}}}i:478;a:3:{s:4:"name";s:9:"Sevillana";s:3:"uid";s:17:"Sevillana:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Sevillana";s:3:"uid";s:17:"Sevillana:regular";s:5:"style";s:7:"regular";}}}i:479;a:3:{s:4:"name";s:18:"Shadows Into Light";s:3:"uid";s:26:"Shadows Into Light:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"Shadows Into Light";s:3:"uid";s:26:"Shadows Into Light:regular";s:5:"style";s:7:"regular";}}}i:480;a:3:{s:4:"name";s:22:"Shadows Into Light Two";s:3:"uid";s:30:"Shadows Into Light Two:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:22:"Shadows Into Light Two";s:3:"uid";s:30:"Shadows Into Light Two:regular";s:5:"style";s:7:"regular";}}}i:481;a:3:{s:4:"name";s:6:"Shanti";s:3:"uid";s:14:"Shanti:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Shanti";s:3:"uid";s:14:"Shanti:regular";s:5:"style";s:7:"regular";}}}i:482;a:3:{s:4:"name";s:5:"Share";s:3:"uid";s:13:"Share:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:5:"Share";s:3:"uid";s:13:"Share:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Share";s:3:"uid";s:12:"Share:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Share";s:3:"uid";s:9:"Share:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:5:"Share";s:3:"uid";s:15:"Share:700italic";s:5:"style";s:9:"700italic";}}}i:483;a:3:{s:4:"name";s:9:"Shojumaru";s:3:"uid";s:17:"Shojumaru:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Shojumaru";s:3:"uid";s:17:"Shojumaru:regular";s:5:"style";s:7:"regular";}}}i:484;a:3:{s:4:"name";s:11:"Short Stack";s:3:"uid";s:19:"Short Stack:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Short Stack";s:3:"uid";s:19:"Short Stack:regular";s:5:"style";s:7:"regular";}}}i:485;a:3:{s:4:"name";s:8:"Siemreap";s:3:"uid";s:16:"Siemreap:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Siemreap";s:3:"uid";s:16:"Siemreap:regular";s:5:"style";s:7:"regular";}}}i:486;a:3:{s:4:"name";s:10:"Sigmar One";s:3:"uid";s:18:"Sigmar One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Sigmar One";s:3:"uid";s:18:"Sigmar One:regular";s:5:"style";s:7:"regular";}}}i:487;a:3:{s:4:"name";s:7:"Signika";s:3:"uid";s:15:"Signika:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:7:"Signika";s:3:"uid";s:11:"Signika:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:7:"Signika";s:3:"uid";s:15:"Signika:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:7:"Signika";s:3:"uid";s:11:"Signika:600";s:5:"style";s:3:"600";}i:3;a:3:{s:4:"name";s:7:"Signika";s:3:"uid";s:11:"Signika:700";s:5:"style";s:3:"700";}}}i:488;a:3:{s:4:"name";s:16:"Signika Negative";s:3:"uid";s:24:"Signika Negative:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:16:"Signika Negative";s:3:"uid";s:20:"Signika Negative:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:16:"Signika Negative";s:3:"uid";s:24:"Signika Negative:regular";s:5:"style";s:7:"regular";}i:2;a:3:{s:4:"name";s:16:"Signika Negative";s:3:"uid";s:20:"Signika Negative:600";s:5:"style";s:3:"600";}i:3;a:3:{s:4:"name";s:16:"Signika Negative";s:3:"uid";s:20:"Signika Negative:700";s:5:"style";s:3:"700";}}}i:489;a:3:{s:4:"name";s:9:"Simonetta";s:3:"uid";s:17:"Simonetta:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:9:"Simonetta";s:3:"uid";s:17:"Simonetta:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Simonetta";s:3:"uid";s:16:"Simonetta:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:9:"Simonetta";s:3:"uid";s:13:"Simonetta:900";s:5:"style";s:3:"900";}i:3;a:3:{s:4:"name";s:9:"Simonetta";s:3:"uid";s:19:"Simonetta:900italic";s:5:"style";s:9:"900italic";}}}i:490;a:3:{s:4:"name";s:13:"Sirin Stencil";s:3:"uid";s:21:"Sirin Stencil:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Sirin Stencil";s:3:"uid";s:21:"Sirin Stencil:regular";s:5:"style";s:7:"regular";}}}i:491;a:3:{s:4:"name";s:8:"Six Caps";s:3:"uid";s:16:"Six Caps:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Six Caps";s:3:"uid";s:16:"Six Caps:regular";s:5:"style";s:7:"regular";}}}i:492;a:3:{s:4:"name";s:7:"Skranji";s:3:"uid";s:15:"Skranji:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Skranji";s:3:"uid";s:15:"Skranji:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Skranji";s:3:"uid";s:11:"Skranji:700";s:5:"style";s:3:"700";}}}i:493;a:3:{s:4:"name";s:7:"Slackey";s:3:"uid";s:15:"Slackey:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Slackey";s:3:"uid";s:15:"Slackey:regular";s:5:"style";s:7:"regular";}}}i:494;a:3:{s:4:"name";s:6:"Smokum";s:3:"uid";s:14:"Smokum:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Smokum";s:3:"uid";s:14:"Smokum:regular";s:5:"style";s:7:"regular";}}}i:495;a:3:{s:4:"name";s:6:"Smythe";s:3:"uid";s:14:"Smythe:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Smythe";s:3:"uid";s:14:"Smythe:regular";s:5:"style";s:7:"regular";}}}i:496;a:3:{s:4:"name";s:7:"Sniglet";s:3:"uid";s:11:"Sniglet:800";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Sniglet";s:3:"uid";s:11:"Sniglet:800";s:5:"style";s:3:"800";}}}i:497;a:3:{s:4:"name";s:7:"Snippet";s:3:"uid";s:15:"Snippet:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Snippet";s:3:"uid";s:15:"Snippet:regular";s:5:"style";s:7:"regular";}}}i:498;a:3:{s:4:"name";s:5:"Sofia";s:3:"uid";s:13:"Sofia:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Sofia";s:3:"uid";s:13:"Sofia:regular";s:5:"style";s:7:"regular";}}}i:499;a:3:{s:4:"name";s:10:"Sonsie One";s:3:"uid";s:18:"Sonsie One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Sonsie One";s:3:"uid";s:18:"Sonsie One:regular";s:5:"style";s:7:"regular";}}}i:500;a:3:{s:4:"name";s:16:"Sorts Mill Goudy";s:3:"uid";s:24:"Sorts Mill Goudy:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:16:"Sorts Mill Goudy";s:3:"uid";s:24:"Sorts Mill Goudy:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:16:"Sorts Mill Goudy";s:3:"uid";s:23:"Sorts Mill Goudy:italic";s:5:"style";s:6:"italic";}}}i:501;a:3:{s:4:"name";s:15:"Source Code Pro";s:3:"uid";s:23:"Source Code Pro:regular";s:6:"styles";a:6:{i:0;a:3:{s:4:"name";s:15:"Source Code Pro";s:3:"uid";s:19:"Source Code Pro:200";s:5:"style";s:3:"200";}i:1;a:3:{s:4:"name";s:15:"Source Code Pro";s:3:"uid";s:19:"Source Code Pro:300";s:5:"style";s:3:"300";}i:2;a:3:{s:4:"name";s:15:"Source Code Pro";s:3:"uid";s:23:"Source Code Pro:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:15:"Source Code Pro";s:3:"uid";s:19:"Source Code Pro:600";s:5:"style";s:3:"600";}i:4;a:3:{s:4:"name";s:15:"Source Code Pro";s:3:"uid";s:19:"Source Code Pro:700";s:5:"style";s:3:"700";}i:5;a:3:{s:4:"name";s:15:"Source Code Pro";s:3:"uid";s:19:"Source Code Pro:900";s:5:"style";s:3:"900";}}}i:502;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:23:"Source Sans Pro:regular";s:6:"styles";a:12:{i:0;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:19:"Source Sans Pro:200";s:5:"style";s:3:"200";}i:1;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:25:"Source Sans Pro:200italic";s:5:"style";s:9:"200italic";}i:2;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:19:"Source Sans Pro:300";s:5:"style";s:3:"300";}i:3;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:25:"Source Sans Pro:300italic";s:5:"style";s:9:"300italic";}i:4;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:23:"Source Sans Pro:regular";s:5:"style";s:7:"regular";}i:5;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:22:"Source Sans Pro:italic";s:5:"style";s:6:"italic";}i:6;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:19:"Source Sans Pro:600";s:5:"style";s:3:"600";}i:7;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:25:"Source Sans Pro:600italic";s:5:"style";s:9:"600italic";}i:8;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:19:"Source Sans Pro:700";s:5:"style";s:3:"700";}i:9;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:25:"Source Sans Pro:700italic";s:5:"style";s:9:"700italic";}i:10;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:19:"Source Sans Pro:900";s:5:"style";s:3:"900";}i:11;a:3:{s:4:"name";s:15:"Source Sans Pro";s:3:"uid";s:25:"Source Sans Pro:900italic";s:5:"style";s:9:"900italic";}}}i:503;a:3:{s:4:"name";s:13:"Special Elite";s:3:"uid";s:21:"Special Elite:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Special Elite";s:3:"uid";s:21:"Special Elite:regular";s:5:"style";s:7:"regular";}}}i:504;a:3:{s:4:"name";s:10:"Spicy Rice";s:3:"uid";s:18:"Spicy Rice:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Spicy Rice";s:3:"uid";s:18:"Spicy Rice:regular";s:5:"style";s:7:"regular";}}}i:505;a:3:{s:4:"name";s:9:"Spinnaker";s:3:"uid";s:17:"Spinnaker:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Spinnaker";s:3:"uid";s:17:"Spinnaker:regular";s:5:"style";s:7:"regular";}}}i:506;a:3:{s:4:"name";s:6:"Spirax";s:3:"uid";s:14:"Spirax:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Spirax";s:3:"uid";s:14:"Spirax:regular";s:5:"style";s:7:"regular";}}}i:507;a:3:{s:4:"name";s:10:"Squada One";s:3:"uid";s:18:"Squada One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Squada One";s:3:"uid";s:18:"Squada One:regular";s:5:"style";s:7:"regular";}}}i:508;a:3:{s:4:"name";s:13:"Stalinist One";s:3:"uid";s:21:"Stalinist One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:13:"Stalinist One";s:3:"uid";s:21:"Stalinist One:regular";s:5:"style";s:7:"regular";}}}i:509;a:3:{s:4:"name";s:15:"Stardos Stencil";s:3:"uid";s:23:"Stardos Stencil:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:15:"Stardos Stencil";s:3:"uid";s:23:"Stardos Stencil:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:15:"Stardos Stencil";s:3:"uid";s:19:"Stardos Stencil:700";s:5:"style";s:3:"700";}}}i:510;a:3:{s:4:"name";s:21:"Stint Ultra Condensed";s:3:"uid";s:29:"Stint Ultra Condensed:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:21:"Stint Ultra Condensed";s:3:"uid";s:29:"Stint Ultra Condensed:regular";s:5:"style";s:7:"regular";}}}i:511;a:3:{s:4:"name";s:20:"Stint Ultra Expanded";s:3:"uid";s:28:"Stint Ultra Expanded:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:20:"Stint Ultra Expanded";s:3:"uid";s:28:"Stint Ultra Expanded:regular";s:5:"style";s:7:"regular";}}}i:512;a:3:{s:4:"name";s:5:"Stoke";s:3:"uid";s:13:"Stoke:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:5:"Stoke";s:3:"uid";s:9:"Stoke:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:5:"Stoke";s:3:"uid";s:13:"Stoke:regular";s:5:"style";s:7:"regular";}}}i:513;a:3:{s:4:"name";s:19:"Sue Ellen Francisco";s:3:"uid";s:27:"Sue Ellen Francisco:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:19:"Sue Ellen Francisco";s:3:"uid";s:27:"Sue Ellen Francisco:regular";s:5:"style";s:7:"regular";}}}i:514;a:3:{s:4:"name";s:9:"Sunshiney";s:3:"uid";s:17:"Sunshiney:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Sunshiney";s:3:"uid";s:17:"Sunshiney:regular";s:5:"style";s:7:"regular";}}}i:515;a:3:{s:4:"name";s:16:"Supermercado One";s:3:"uid";s:24:"Supermercado One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Supermercado One";s:3:"uid";s:24:"Supermercado One:regular";s:5:"style";s:7:"regular";}}}i:516;a:3:{s:4:"name";s:11:"Suwannaphum";s:3:"uid";s:19:"Suwannaphum:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Suwannaphum";s:3:"uid";s:19:"Suwannaphum:regular";s:5:"style";s:7:"regular";}}}i:517;a:3:{s:4:"name";s:18:"Swanky and Moo Moo";s:3:"uid";s:26:"Swanky and Moo Moo:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"Swanky and Moo Moo";s:3:"uid";s:26:"Swanky and Moo Moo:regular";s:5:"style";s:7:"regular";}}}i:518;a:3:{s:4:"name";s:9:"Syncopate";s:3:"uid";s:17:"Syncopate:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:9:"Syncopate";s:3:"uid";s:17:"Syncopate:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Syncopate";s:3:"uid";s:13:"Syncopate:700";s:5:"style";s:3:"700";}}}i:519;a:3:{s:4:"name";s:9:"Tangerine";s:3:"uid";s:17:"Tangerine:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:9:"Tangerine";s:3:"uid";s:17:"Tangerine:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:9:"Tangerine";s:3:"uid";s:13:"Tangerine:700";s:5:"style";s:3:"700";}}}i:520;a:3:{s:4:"name";s:6:"Taprom";s:3:"uid";s:14:"Taprom:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Taprom";s:3:"uid";s:14:"Taprom:regular";s:5:"style";s:7:"regular";}}}i:521;a:3:{s:4:"name";s:5:"Telex";s:3:"uid";s:13:"Telex:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Telex";s:3:"uid";s:13:"Telex:regular";s:5:"style";s:7:"regular";}}}i:522;a:3:{s:4:"name";s:10:"Tenor Sans";s:3:"uid";s:18:"Tenor Sans:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Tenor Sans";s:3:"uid";s:18:"Tenor Sans:regular";s:5:"style";s:7:"regular";}}}i:523;a:3:{s:4:"name";s:18:"The Girl Next Door";s:3:"uid";s:26:"The Girl Next Door:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"The Girl Next Door";s:3:"uid";s:26:"The Girl Next Door:regular";s:5:"style";s:7:"regular";}}}i:524;a:3:{s:4:"name";s:6:"Tienne";s:3:"uid";s:14:"Tienne:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:6:"Tienne";s:3:"uid";s:14:"Tienne:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:6:"Tienne";s:3:"uid";s:10:"Tienne:700";s:5:"style";s:3:"700";}i:2;a:3:{s:4:"name";s:6:"Tienne";s:3:"uid";s:10:"Tienne:900";s:5:"style";s:3:"900";}}}i:525;a:3:{s:4:"name";s:5:"Tinos";s:3:"uid";s:13:"Tinos:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:5:"Tinos";s:3:"uid";s:13:"Tinos:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:5:"Tinos";s:3:"uid";s:12:"Tinos:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:5:"Tinos";s:3:"uid";s:9:"Tinos:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:5:"Tinos";s:3:"uid";s:15:"Tinos:700italic";s:5:"style";s:9:"700italic";}}}i:526;a:3:{s:4:"name";s:9:"Titan One";s:3:"uid";s:17:"Titan One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Titan One";s:3:"uid";s:17:"Titan One:regular";s:5:"style";s:7:"regular";}}}i:527;a:3:{s:4:"name";s:11:"Trade Winds";s:3:"uid";s:19:"Trade Winds:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Trade Winds";s:3:"uid";s:19:"Trade Winds:regular";s:5:"style";s:7:"regular";}}}i:528;a:3:{s:4:"name";s:7:"Trocchi";s:3:"uid";s:15:"Trocchi:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Trocchi";s:3:"uid";s:15:"Trocchi:regular";s:5:"style";s:7:"regular";}}}i:529;a:3:{s:4:"name";s:7:"Trochut";s:3:"uid";s:15:"Trochut:regular";s:6:"styles";a:3:{i:0;a:3:{s:4:"name";s:7:"Trochut";s:3:"uid";s:15:"Trochut:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Trochut";s:3:"uid";s:14:"Trochut:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:7:"Trochut";s:3:"uid";s:11:"Trochut:700";s:5:"style";s:3:"700";}}}i:530;a:3:{s:4:"name";s:7:"Trykker";s:3:"uid";s:15:"Trykker:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:7:"Trykker";s:3:"uid";s:15:"Trykker:regular";s:5:"style";s:7:"regular";}}}i:531;a:3:{s:4:"name";s:10:"Tulpen One";s:3:"uid";s:18:"Tulpen One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Tulpen One";s:3:"uid";s:18:"Tulpen One:regular";s:5:"style";s:7:"regular";}}}i:532;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:14:"Ubuntu:regular";s:6:"styles";a:8:{i:0;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:10:"Ubuntu:300";s:5:"style";s:3:"300";}i:1;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:16:"Ubuntu:300italic";s:5:"style";s:9:"300italic";}i:2;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:14:"Ubuntu:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:13:"Ubuntu:italic";s:5:"style";s:6:"italic";}i:4;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:10:"Ubuntu:500";s:5:"style";s:3:"500";}i:5;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:16:"Ubuntu:500italic";s:5:"style";s:9:"500italic";}i:6;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:10:"Ubuntu:700";s:5:"style";s:3:"700";}i:7;a:3:{s:4:"name";s:6:"Ubuntu";s:3:"uid";s:16:"Ubuntu:700italic";s:5:"style";s:9:"700italic";}}}i:533;a:3:{s:4:"name";s:16:"Ubuntu Condensed";s:3:"uid";s:24:"Ubuntu Condensed:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:16:"Ubuntu Condensed";s:3:"uid";s:24:"Ubuntu Condensed:regular";s:5:"style";s:7:"regular";}}}i:534;a:3:{s:4:"name";s:11:"Ubuntu Mono";s:3:"uid";s:19:"Ubuntu Mono:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:11:"Ubuntu Mono";s:3:"uid";s:19:"Ubuntu Mono:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:11:"Ubuntu Mono";s:3:"uid";s:18:"Ubuntu Mono:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:11:"Ubuntu Mono";s:3:"uid";s:15:"Ubuntu Mono:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:11:"Ubuntu Mono";s:3:"uid";s:21:"Ubuntu Mono:700italic";s:5:"style";s:9:"700italic";}}}i:535;a:3:{s:4:"name";s:5:"Ultra";s:3:"uid";s:13:"Ultra:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Ultra";s:3:"uid";s:13:"Ultra:regular";s:5:"style";s:7:"regular";}}}i:536;a:3:{s:4:"name";s:14:"Uncial Antiqua";s:3:"uid";s:22:"Uncial Antiqua:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"Uncial Antiqua";s:3:"uid";s:22:"Uncial Antiqua:regular";s:5:"style";s:7:"regular";}}}i:537;a:3:{s:4:"name";s:8:"Underdog";s:3:"uid";s:16:"Underdog:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Underdog";s:3:"uid";s:16:"Underdog:regular";s:5:"style";s:7:"regular";}}}i:538;a:3:{s:4:"name";s:14:"UnifrakturCook";s:3:"uid";s:18:"UnifrakturCook:700";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:14:"UnifrakturCook";s:3:"uid";s:18:"UnifrakturCook:700";s:5:"style";s:3:"700";}}}i:539;a:3:{s:4:"name";s:18:"UnifrakturMaguntia";s:3:"uid";s:26:"UnifrakturMaguntia:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:18:"UnifrakturMaguntia";s:3:"uid";s:26:"UnifrakturMaguntia:regular";s:5:"style";s:7:"regular";}}}i:540;a:3:{s:4:"name";s:7:"Unkempt";s:3:"uid";s:15:"Unkempt:regular";s:6:"styles";a:2:{i:0;a:3:{s:4:"name";s:7:"Unkempt";s:3:"uid";s:15:"Unkempt:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Unkempt";s:3:"uid";s:11:"Unkempt:700";s:5:"style";s:3:"700";}}}i:541;a:3:{s:4:"name";s:6:"Unlock";s:3:"uid";s:14:"Unlock:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Unlock";s:3:"uid";s:14:"Unlock:regular";s:5:"style";s:7:"regular";}}}i:542;a:3:{s:4:"name";s:4:"Unna";s:3:"uid";s:12:"Unna:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Unna";s:3:"uid";s:12:"Unna:regular";s:5:"style";s:7:"regular";}}}i:543;a:3:{s:4:"name";s:5:"VT323";s:3:"uid";s:13:"VT323:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"VT323";s:3:"uid";s:13:"VT323:regular";s:5:"style";s:7:"regular";}}}i:544;a:3:{s:4:"name";s:6:"Varela";s:3:"uid";s:14:"Varela:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Varela";s:3:"uid";s:14:"Varela:regular";s:5:"style";s:7:"regular";}}}i:545;a:3:{s:4:"name";s:12:"Varela Round";s:3:"uid";s:20:"Varela Round:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:12:"Varela Round";s:3:"uid";s:20:"Varela Round:regular";s:5:"style";s:7:"regular";}}}i:546;a:3:{s:4:"name";s:11:"Vast Shadow";s:3:"uid";s:19:"Vast Shadow:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:11:"Vast Shadow";s:3:"uid";s:19:"Vast Shadow:regular";s:5:"style";s:7:"regular";}}}i:547;a:3:{s:4:"name";s:5:"Vibur";s:3:"uid";s:13:"Vibur:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Vibur";s:3:"uid";s:13:"Vibur:regular";s:5:"style";s:7:"regular";}}}i:548;a:3:{s:4:"name";s:8:"Vidaloka";s:3:"uid";s:16:"Vidaloka:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Vidaloka";s:3:"uid";s:16:"Vidaloka:regular";s:5:"style";s:7:"regular";}}}i:549;a:3:{s:4:"name";s:4:"Viga";s:3:"uid";s:12:"Viga:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:4:"Viga";s:3:"uid";s:12:"Viga:regular";s:5:"style";s:7:"regular";}}}i:550;a:3:{s:4:"name";s:5:"Voces";s:3:"uid";s:13:"Voces:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:5:"Voces";s:3:"uid";s:13:"Voces:regular";s:5:"style";s:7:"regular";}}}i:551;a:3:{s:4:"name";s:7:"Volkhov";s:3:"uid";s:15:"Volkhov:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:7:"Volkhov";s:3:"uid";s:15:"Volkhov:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:7:"Volkhov";s:3:"uid";s:14:"Volkhov:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:7:"Volkhov";s:3:"uid";s:11:"Volkhov:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:7:"Volkhov";s:3:"uid";s:17:"Volkhov:700italic";s:5:"style";s:9:"700italic";}}}i:552;a:3:{s:4:"name";s:8:"Vollkorn";s:3:"uid";s:16:"Vollkorn:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:8:"Vollkorn";s:3:"uid";s:16:"Vollkorn:regular";s:5:"style";s:7:"regular";}i:1;a:3:{s:4:"name";s:8:"Vollkorn";s:3:"uid";s:15:"Vollkorn:italic";s:5:"style";s:6:"italic";}i:2;a:3:{s:4:"name";s:8:"Vollkorn";s:3:"uid";s:12:"Vollkorn:700";s:5:"style";s:3:"700";}i:3;a:3:{s:4:"name";s:8:"Vollkorn";s:3:"uid";s:18:"Vollkorn:700italic";s:5:"style";s:9:"700italic";}}}i:553;a:3:{s:4:"name";s:8:"Voltaire";s:3:"uid";s:16:"Voltaire:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Voltaire";s:3:"uid";s:16:"Voltaire:regular";s:5:"style";s:7:"regular";}}}i:554;a:3:{s:4:"name";s:23:"Waiting for the Sunrise";s:3:"uid";s:31:"Waiting for the Sunrise:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:23:"Waiting for the Sunrise";s:3:"uid";s:31:"Waiting for the Sunrise:regular";s:5:"style";s:7:"regular";}}}i:555;a:3:{s:4:"name";s:8:"Wallpoet";s:3:"uid";s:16:"Wallpoet:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Wallpoet";s:3:"uid";s:16:"Wallpoet:regular";s:5:"style";s:7:"regular";}}}i:556;a:3:{s:4:"name";s:15:"Walter Turncoat";s:3:"uid";s:23:"Walter Turncoat:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:15:"Walter Turncoat";s:3:"uid";s:23:"Walter Turncoat:regular";s:5:"style";s:7:"regular";}}}i:557;a:3:{s:4:"name";s:6:"Warnes";s:3:"uid";s:14:"Warnes:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Warnes";s:3:"uid";s:14:"Warnes:regular";s:5:"style";s:7:"regular";}}}i:558;a:3:{s:4:"name";s:9:"Wellfleet";s:3:"uid";s:17:"Wellfleet:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:9:"Wellfleet";s:3:"uid";s:17:"Wellfleet:regular";s:5:"style";s:7:"regular";}}}i:559;a:3:{s:4:"name";s:8:"Wire One";s:3:"uid";s:16:"Wire One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:8:"Wire One";s:3:"uid";s:16:"Wire One:regular";s:5:"style";s:7:"regular";}}}i:560;a:3:{s:4:"name";s:17:"Yanone Kaffeesatz";s:3:"uid";s:25:"Yanone Kaffeesatz:regular";s:6:"styles";a:4:{i:0;a:3:{s:4:"name";s:17:"Yanone Kaffeesatz";s:3:"uid";s:21:"Yanone Kaffeesatz:200";s:5:"style";s:3:"200";}i:1;a:3:{s:4:"name";s:17:"Yanone Kaffeesatz";s:3:"uid";s:21:"Yanone Kaffeesatz:300";s:5:"style";s:3:"300";}i:2;a:3:{s:4:"name";s:17:"Yanone Kaffeesatz";s:3:"uid";s:25:"Yanone Kaffeesatz:regular";s:5:"style";s:7:"regular";}i:3;a:3:{s:4:"name";s:17:"Yanone Kaffeesatz";s:3:"uid";s:21:"Yanone Kaffeesatz:700";s:5:"style";s:3:"700";}}}i:561;a:3:{s:4:"name";s:10:"Yellowtail";s:3:"uid";s:18:"Yellowtail:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Yellowtail";s:3:"uid";s:18:"Yellowtail:regular";s:5:"style";s:7:"regular";}}}i:562;a:3:{s:4:"name";s:10:"Yeseva One";s:3:"uid";s:18:"Yeseva One:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Yeseva One";s:3:"uid";s:18:"Yeseva One:regular";s:5:"style";s:7:"regular";}}}i:563;a:3:{s:4:"name";s:10:"Yesteryear";s:3:"uid";s:18:"Yesteryear:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:10:"Yesteryear";s:3:"uid";s:18:"Yesteryear:regular";s:5:"style";s:7:"regular";}}}i:564;a:3:{s:4:"name";s:6:"Zeyada";s:3:"uid";s:14:"Zeyada:regular";s:6:"styles";a:1:{i:0;a:3:{s:4:"name";s:6:"Zeyada";s:3:"uid";s:14:"Zeyada:regular";s:5:"style";s:7:"regular";}}}}
app/code/local/AuIt/PublicationBasic/data/shapelib/animal.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "bat": "m143.40468,206.20782c-0.49527,-8.51843 -1.60919,-23.17813 -13.91826,-16.10698c-5.69614,2.11977 -22.79842,7.51244 -14.5293,-3.62979c-4.53243,-11.10219 -22.97476,5.42294 -24.24419,-2.29205c9.91943,-10.64906 -4.7813,-22.35199 -15.17139,-14.80321c-6.39341,1.76166 -19.4276,12.91188 -21.9789,9.37552c5.93793,-7.52516 19.31312,-22.93167 3.18112,-27.55084c-17.5302,-3.97589 -32.93319,8.09392 -48.1771,14.68205c-4.57452,3.57106 -10.39707,2.94862 -4.70683,-2.99597c19.7419,-30.64111 50.72646,-53.70857 85.10566,-65.43076c8.33369,-2.70812 21.16511,-8.70424 21.41656,4.97536c5.15313,12.59007 8.81947,28.33097 22.08977,34.80917c15.28362,8.49702 4.32793,-24.52711 20.16156,-12.05241c6.66379,4.32207 20.92268,-3.91697 22.87737,0.71265c-3.88257,5.55579 -5.70456,15.41883 4.55382,10.3489c17.81406,-7.0078 30.89859,-22.70471 39.67026,-39.22318c9.16278,-1.3768 18.27335,5.56162 26.62798,9.24753c27.74529,15.70954 44.86571,45.39448 52.13728,75.65768c-7.5513,-4.24557 -14.87186,-12.828 -24.02185,-16.20273c-9.75534,-4.87419 -20.75789,-5.73363 -31.48114,-5.39867c-5.02554,5.98985 -7.99353,13.42558 -3.62529,20.86708c3.80284,14.25407 -12.13176,-4.90576 -17.88498,-6.20744c-10.74191,-7.67955 -21.03323,3.92213 -18.67635,14.82222c-2.42909,2.10051 -9.92085,-3.5218 -14.32263,-2.86926c-9.05026,-2.72606 -15.42468,1.20085 -9.97261,10.61331c-7.98315,-0.97417 -19.64474,-13.28291 -26.70493,-1.69363c-3.0779,2.89514 -4.66377,8.66307 -8.40561,10.34547z",
3
+ "bull": "m247.95622,28.12305c-12.19972,2.23394 -21.61887,16.95667 -20.74588,29.01591c1.44209,13.7284 17.93463,5.12075 22.80087,1.23941c-2.90906,11.49207 -26.14024,13.85409 -24.83565,-0.12387c-17.69467,13.05878 -30.95056,33.52913 -52.86781,40.14553c-19.77757,4.59067 -40.50726,3.0742 -60.45068,0.39017c-12.12445,-1.13604 -23.69794,-7.26224 -35.91985,-5.97962c-13.09134,3.59118 -23.59412,13.16467 -36.65408,16.93906c-13.77014,6.03062 -8.51065,22.6805 -9.70401,34.47604c0.36829,17.55977 -2.85913,36.16287 -15.09811,49.55722c-7.11563,10.54993 -7.76443,24.43282 -13.48046,35.44298c18.99679,-0.19772 7.54522,-25.59486 17.99728,-35.91756c14.58305,-6.75189 14.16003,-25.2986 16.19452,-38.95529c1.4834,-5.51941 0.74519,-25.08188 6.61763,-22.44334c7.21924,16.22275 11.33028,34.35388 9.69645,52.12326c-9.5553,8.96404 -24.74576,15.34862 -22.54872,31.87126c0.72458,14.96526 -8.38036,25.74033 -15.4907,37.48604c4.56749,6.89259 1.00608,20.69472 14.11573,16.65324c8.77115,1.68887 13.10825,-2.37698 4.45589,-8.42346c-13.07829,-12.56499 5.13552,-29.16821 12.20585,-40.168c7.30689,-12.28131 22.16195,-12.86801 33.02653,-20.13979c15.00671,-8.95824 25.97935,-22.79263 35.92999,-36.78595c8.71432,9.26259 -13.75776,17.74474 -17.07076,27.20334c-7.22755,7.75058 -20.15694,21.85651 -2.99889,26.65347c13.26358,4.53796 25.75887,13.79143 25.35975,28.30255c0.22051,9.84615 24.38135,18.76527 19.43611,2.77341c-8.3609,-14.92882 -28.34064,-20.79163 -33.65835,-37.70844c-3.6715,-12.98383 11.61318,-19.27325 18.93525,-8.74269c12.96419,-1.41862 26.57983,-10.04028 40.80356,-11.3647c14.66299,-5.4577 18.06927,14.52957 29.8145,19.76668c9.79047,9.67969 18.77974,21.93582 17.54285,36.4783c1.1926,12.30893 9.52699,25.16873 23.92239,23.90201c16.80026,-2.80963 -5.10118,-20.70317 -12.79568,-24.81631c-11.14896,-13.29695 -9.30676,-32.20113 -16.24597,-47.51259c-5.00217,-4.52083 0.22685,-26.45532 0.40694,-10.76334c-0.90044,17.98242 24.73294,7.66248 22.97939,-6.09152c4.36166,-10.95654 -11.58513,-4.19417 -9.47617,-15.24252c-1.73091,-13.74937 -0.74355,-30.75096 -12.6731,-40.17292c-6.8737,-6.7591 -4.7831,-7.41829 2.70201,-2.07212c14.59439,7.55807 11.75914,24.79303 12.78276,38.37691c4.22589,17.80225 21.30753,-5.24332 20.80711,-14.89757c2.92691,-20.96336 12.92174,-42.46973 32.42046,-52.68139c-5.2402,-2.56694 -30.94765,6.73531 -28.79092,-4.9679c10.59921,9.00244 25.18661,-0.80075 37.71524,1.85265c16.62164,0.68233 20.74963,-22.79317 2.53195,-23.94116c-11.78333,-6.98062 -21.92947,-19.31897 -37.15829,-18.35906c-22.07759,7.39931 -8.43927,-13.11165 -2.53694,-22.37832zm21.60802,9.50184c-1.66193,5.79599 -12.61478,17.62506 0.56973,12.83867c1.89221,-3.91013 1.1131,-8.97168 -0.56973,-12.83867zm-3.4996,26.34877c5.90985,9.81916 -11.80539,1.02993 0,0zm24.39551,10.15293c-2.05029,4.18517 5.51468,4.9676 -0.32553,4.96455c-3.08926,4.10121 -4.4324,-5.29953 0.32553,-4.96455z",
4
+ "camel": "m105.23692,274.01276c10.42601,-6.85904 -13.23158,-12.66162 -16.74452,-19.13904c-10.34003,-12.71768 -13.56136,-29.62202 -16.44211,-45.3219c4.95107,-8.43617 2.94567,-17.1517 4.73958,-25.91959c8.77055,-13.01825 13.62244,-28.29056 22.43666,-41.26205c9.81532,2.07159 20.42883,10.03517 30.26162,13.06094c8.8764,15.9576 -7.35719,29.2457 -5.44854,44.69498c3.72314,14.40366 -6.25101,26.40735 -8.25558,39.83173c0.06986,12.69931 11.61848,25.55493 24.23922,16.82416c-0.64038,-9.26088 -18.64324,-12.13185 -10.58395,-25.1562c2.65187,-13.46596 11.34413,-24.24693 17.91676,-35.55937c-3.71349,-13.26427 1.2287,-30.0778 9.59569,-40.02118c8.49532,8.2068 14.36288,22.63718 15.66277,34.12883c0.16464,13.17332 17.70532,21.98904 17.37173,37.50392c1.31061,13.71669 7.73416,26.77841 16.64259,34.21387c4.65822,9.68192 33.56361,4.63116 18.16859,-6.87111c-12.71291,-11.47281 -27.33986,-23.63953 -29.27029,-41.92267c-5.27388,-10.85303 6.84843,-26.2316 -8.03899,-30.76501c0.92262,-14.70679 -2.97293,-31.40077 5.40811,-44.51862c12.07202,-10.31686 29.7518,-11.08165 41.29709,-22.49498c14.0099,-9.28757 21.96306,-24.50421 26.44456,-40.2729c6.78918,-7.60537 17.33322,-24.04447 29.06323,-15.49826c11.50851,7.1165 3.01477,-10.78561 9.62354,-14.73589c-5.45358,-19.67866 -27.58679,-10.231 -41.40082,-15.14074c-12.54193,-8.39989 -25.52765,-3.55679 -34.67496,6.0378c-6.85069,3.08698 -3.14447,11.16754 3.57637,8.12783c-4.82072,16.0155 -11.46542,33.6401 -26.07742,43.1243c-16.7653,7.33572 -26.11705,-14.39821 -36.07204,-23.83146c-10.86565,-10.63506 -17.60231,-26.15123 -31.2878,-33.45204c-19.0355,-4.82 -33.49794,11.89507 -47.87449,21.30644c-14.26775,7.14342 -31.39994,10.67369 -41.13367,24.60683c-16.15372,19.41527 -5.91326,48.70807 -22.89915,67.80049c-6.99636,10.58755 -22.39972,18.21231 -20.28306,32.7636c7.50211,15.58318 0.92728,34.18239 5.02367,50.94881c3.02735,12.11708 7.50982,27.68176 22.18437,29.48123c11.54434,7.31882 17.83198,-8.01192 5.60827,-12.45197c-14.75563,-6.55614 -16.77197,-25.01053 -17.95741,-39.18628c-3.25454,-14.0275 7.86033,-23.30806 12.45064,-34.31837c-3.87635,-10.75487 9.79252,-25.37375 18.46243,-23.19664c-6.47958,9.9541 -15.94005,22.87103 -0.60315,31.06966c-0.20134,0.50305 2.25023,-9.18846 6.19941,-12.10042c-0.58951,-7.59273 -8.29086,-14.05685 -0.12206,-21.73929c14.33151,-9.55606 11.17263,18.16365 8.19696,26.02383c-0.15744,12.07039 -16.33567,21.65707 -8.0749,33.75336c9.04985,14.91904 13.29631,32.04613 16.76897,48.94904c4.98299,14.02148 17.57185,24.27618 33.31381,20.65268l2.58825,-0.02829z",
5
+ "cat": "m111.55353,268.57376c-12.38409,-9.66019 -26.54234,-3.66064 -40.17431,-4.38614c-11.9392,-10.23105 -26.45395,2.16507 -37.70551,-7.68756c-14.55057,-12.97847 10.67308,-21.10451 5.29292,-36.51207c-0.60409,-22.18257 -10.10326,-42.27484 -20.08909,-60.91698c-7.07184,-14.82233 -4.56518,-31.85568 -6.84103,-47.71686c-8.17014,-11.38815 -16.33076,-25.48726 -6.60928,-39.55753c10.981,-11.86565 5.81937,-27.47561 1.50418,-41.19728c11.10318,3.26597 23.84772,18.14071 38.4552,15.16287c9.93419,-6.39761 15.9648,-0.073 17.62218,11.6365c5.20781,15.03792 8.24681,35.60265 24.68163,40.4529c17.26196,4.92876 36.58965,6.02341 50.24171,20.484c24.96439,23.38795 36.53986,60.25828 35.56061,95.79604c2.26117,16.61917 23.11539,7.79897 33.43477,10.24997c17.3054,-0.76804 33.91818,4.66769 50.66774,8.39909c14.94962,3.97684 27.61282,-8.59756 41.65988,-10.10515c2.37341,14.53128 -16.06888,20.58582 -26.14133,25.0639c-11.95706,5.08662 -24.89989,5.20694 -37.1826,1.47655c-26.55344,-6.62021 -54.69701,-4.88251 -79.92953,6.75992c-13.61838,5.01505 -26.84254,14.51093 -41.6569,13.32327l-2.79124,-0.72549l0,0.00003z",
6
+ "chick": "m76.6114,300.49948c-0.94218,-11.68399 1.80264,-23.81186 -2.78349,-35.22473c-7.45612,-25.10127 -23.93798,-47.16536 -31.36633,-72.21014c-3.21228,-16.80365 -8.65163,-34.79272 -2.2363,-51.43718c9.2771,-20.44891 24.58445,-39.1077 45.00853,-51.46853c11.45798,-6.87112 33.39433,1.8131 33.44485,-16.51133c3.62297,-20.89642 15.43811,-40.3082 30.48538,-56.28489c17.86485,-17.49571 47.98021,-20.77926 71.28149,-10.72216c13.19823,4.36545 26.92773,11.92505 29.85556,25.342c-2.0408,13.23198 13.36339,22.40786 12.41484,34.53756c-13.98409,-0.03379 -27.4267,2.25514 -39.10866,9.99602c-8.20006,3.8867 -26.4511,6.08187 -12.88864,15.86904c12.71146,21.22634 12.39029,48.02362 0.02443,69.35255c-8.24092,16.61523 -18.78058,33.14909 -36.37866,43.00504c-13.36313,9.14961 -27.77914,16.93257 -42.68192,23.79149c-11.62872,11.1774 5.32764,27.26614 9.71201,38.8335c3.36447,3.54044 4.524,10.84882 11.15869,9.08932c15.28535,0.25418 32.76015,-1.9313 44.98404,7.81229c-8.94319,8.25949 -25.89421,-1.41025 -38.02573,4.80051c-8.78024,5.75812 -19.06332,7.43823 -31.36371,7.58014c-13.23612,4.30203 -27.23189,-3.61423 -39.08569,1.66962c-4.11388,0.41238 -8.38321,3.40195 -12.45068,2.1799zm58.28394,-16.2124c-4.84233,-9.87674 -20.53861,1.56897 -6.10292,2.32874c2.30783,-0.47092 12.8125,3.03821 6.10292,-2.32874zm-17.85122,-4.32443c14.82944,-9.3367 7.74453,-25.48042 -1.79045,-35.63309c-3.24258,-2.97528 -4.73457,-8.94336 -9.13439,-9.94019c-6.73362,0 -13.46722,0 -20.20084,0c-4.65086,8.49229 -2.48404,17.86589 0.89217,26.43201c3.51066,10.88467 6.16319,28.60654 23.56189,23.00385c2.6806,-0.4599 4.89924,-2.07458 6.67162,-3.86258z",
7
+ "cormorant": "m143.5415,0.99936c-4.24326,11.41716 -19.29625,4.15632 -24.74561,12.50427c0.52748,6.07653 -8.29025,7.80436 -13.00653,8.43892c-8.50133,3.84879 -22.80692,-4.79845 -26.45377,4.01417c10.96676,1.70561 23.50823,0.97173 33.37776,7.63992c6.81084,8.30698 18.80501,9.32233 23.86815,19.00227c5.01492,11.90637 0.21405,24.79235 -6.1066,35.16777c-5.40714,11.63457 -14.24293,22.0266 -17.15868,34.6068c0.20795,13.02319 4.72718,25.69211 3.20084,38.80902c0.9605,10.14279 6.64024,19.14648 10.04536,28.64983c5.00912,10.57565 9.93535,21.70013 17.62276,30.53665c7.02892,8.87558 29.89705,11.67009 23.64502,24.91443c-4.01926,11.10844 -7.40147,24.48637 -19.39478,29.5565c-9.50977,5.9848 -21.3932,8.93677 -29.06369,17.37073c3.84956,0.36453 28.16327,-14.36331 23.8996,1.69739c-9.52658,11.2518 16.95053,-0.69223 23.42963,-2.18207c4.74442,-0.99915 4.29691,14.62488 8.52766,3.80228c5.95903,-10.08762 6.23502,-21.34366 11.26126,-30.51312c2.4781,-10.25645 3.82962,7.94009 9.64467,10.12222c7.07556,9.50238 7.79694,-14.07236 11.23129,-19.70615c2.62747,-8.54028 4.63826,-23.31885 8.02322,-27.91885c0.19868,-2.83281 6.58795,3.93147 5.0274,-3.78851c0.90347,-23.48584 -1.83659,-48.86755 -15.67365,-68.59196c-9.60602,-8.62669 -13.22336,-21.57266 -21.36568,-31.47811c-10.01912,-4.8186 -8.05391,-19.66993 -20.19205,-21.12443c-2.75856,-10.2361 2.62035,-22.86311 4.63016,-33.73514c2.78795,-10.12834 8.4742,-20.66132 3.52232,-31.15684c-3.76698,-10.86702 -11.83783,-21.03737 -23.57631,-23.51091c-5.21049,-2.63619 -9.89668,-4.17218 -2.89241,-7.84742c4.71588,-7.73713 -7.28709,7.39913 -1.58588,-2.982l0.25854,-2.29765l-0.00003,0zm-57.08003,24.11987c12.78673,0.33177 -8.83535,0.35227 0,0zm92.46721,218.72338c11.05893,4.6954 0.80228,21.55537 -5.46918,26.98338c-13.1071,-3.20859 2.39713,-19.21964 5.46918,-26.98338l0,0zm-10.64413,31.82323c-5.88483,2.41168 -15.44353,4.13849 -3.83093,0.46683l1.97208,-0.34274l1.85886,-0.12408z",
8
+ "cow": "m28.0749,243.56958c-11.25466,-1.13762 -0.26117,-18.72878 -4.5063,-26.87576c-0.04291,-11.99254 -4.49496,-23.80263 -3.04635,-35.73141c8.85702,-21.03091 1.47632,-43.99974 -0.46577,-65.6628c-0.878,-4.78294 -0.85219,-17.06834 -3.03475,-6.14601c-6.04425,18.41563 -0.13999,41.17824 -5.30961,59.82921c-8.64015,10.38419 -15.16653,-6.09071 -6.91858,-12.40807c9.63606,-15.16887 7.3071,-35.6004 7.63113,-54.51396c-0.41477,-11.95865 4.38277,-26.97649 18.58104,-27.31744c12.14677,-0.91866 23.64877,4.86966 35.90276,4.15359c35.73927,0.55689 71.83095,0.86755 107.11801,-5.64501c17.61354,-4.0591 35.14902,3.10693 52.79015,0.20057c9.91351,1.07068 15.15811,-3.56471 10.78886,-12.26689c7.38425,-5.09429 13.06598,9.66071 16.34573,-3.48148c11.89191,-8.19559 13.54935,15.99933 26.71921,9.16614c15.88589,2.05862 -6.90274,16.26875 6.39813,23.38159c8.04169,6.20473 20.35629,21.57409 4.35831,26.00379c-13.75446,-0.96602 -27.54028,-0.06377 -41.30312,0.60226c-6.36993,10.6367 -19.62016,18.61491 -18.16837,32.55296c-1.1003,16.62756 -12.74783,33.02081 -28.69196,38.18489c-6.81386,-1.34894 -9.78644,0.85432 -8.9351,7.83342c-3.52046,9.11967 -4.14098,18.73875 -3.72333,28.43974c-1.04204,5.34808 1.17265,9.50755 4.32187,13.62691c-3.70361,6.41692 -24.92326,2.61598 -16.88379,-9.5238c2.05592,-15.92261 -0.36317,-31.91132 -2.16568,-47.74242c-8.4565,-6.01532 -18.70856,-3.81294 -27.26753,1.0208c-18.88187,6.9252 -40.73763,13.48228 -60.10471,4.59438c-10.79734,-3.01547 -27.0833,-5.25847 -35.10848,3.84904c-3.611,13.73518 -2.64567,28.48619 -5.7238,42.42607c-0.05178,7.28806 6.88112,13.54532 -4.86428,11.51134c-4.90851,0.11278 -9.83028,0.26732 -14.73372,-0.06165zm10.02217,-15.5108c1.93175,-6.52728 -2.78621,-23.11049 -3.1906,-7.64299c-1.60691,4.90746 0.4367,28.47777 2.83738,12.83046c0.15187,-1.72662 0.25968,-3.45683 0.35322,-5.18747z",
9
+ "crow_2": "m299.86716,62.24508c-8.36279,-13.35279 -25.79254,-10.94299 -38.7652,-13.97612c-10.77151,-4.46517 -27.26852,-8.74568 -34.93257,4.02601c-10.22766,11.92024 -19.30536,24.77381 -27.38379,38.20519c-16.9417,18.56395 -37.51366,33.44937 -58.19264,47.49408c-17.41919,8.55826 -36.48907,15.23247 -50.59015,29.17691c-26.77713,17.17799 -59.39612,20.30975 -89.00278,30.37996c5.24787,1.82477 28.48156,-4.80739 12.86404,2.45506c-11.61908,3.82678 4.57293,7.38318 9.74338,4.83008c-4.08242,4.36552 -5.2054,4.72249 -0.18473,4.65681c-9.12115,5.09712 20.25491,-1.58305 4.07883,5.5506c-7.04263,2.05971 -24.35976,21.06046 -8.48079,12.5005c14.76321,-6.14401 30.50038,-9.23448 45.85791,-13.45705c-11.48634,11.80891 -27.85513,19.19374 -35.74965,34.16698c0.17943,3.86479 12.21982,-7.85281 17.31087,-9.77229c28.95095,-17.49719 59.28473,-33.71347 91.89844,-43.16046c4.45381,1.07288 5.32478,12.99994 14.00563,6.90237c0.76199,7.59987 19.82927,-11.92125 14.84979,3.30377c8.25793,-13.03635 -0.01482,14.1528 7.62892,18.26904c3.90089,5.15268 19.92041,12.26512 6.86195,14.03082c-5.77165,8.63597 8.09146,-3.46425 11.11865,4.62627c11.3129,4.10901 3.07231,8.32173 -5.11652,5.83363c-6.27592,-0.83809 -7.57079,7.40965 -1.22719,2.29182c7.57507,5.19347 19.60568,3.32813 29.26515,5.56088c9.65308,0.80066 21.35422,-9.88435 25.01279,-7.29437c-8.89755,-6.38512 -21.77765,1.41119 -31.54323,-3.51736c-2.05963,-6.62599 22.89082,2.37143 22.94131,-8.82851c11.68727,-1.08766 -9.82895,-2.59717 -14.00406,0.04509c-14.38026,0.76889 -21.75813,-12.59969 -31.88164,-20.19017c0.30659,-15.75429 11.86186,-29.28856 23.95569,-38.18524c15.77855,-9.50124 31.96706,-21.73888 36.43575,-40.70174c4.63271,-16.88809 7.21239,-34.29048 9.31848,-51.60873c2.84918,-11.17406 11.03882,-21.49306 23.60089,-20.65947c6.77469,-0.94415 13.57404,-1.72816 20.30646,-2.95438z",
10
+ "crow": "m65.63132,15.69366c7.23991,-11.19251 23.71874,-13.17996 36.20271,-14.69413c13.92134,1.25098 24.65079,12.10254 32.81262,22.59631c9.49452,8.5772 21.08662,15.85565 25.83853,28.41352c12.01437,5.95259 26.19815,9.13653 33.55229,21.87244c11.11548,14.36729 17.52112,31.75739 23.31628,48.60368c0.92021,12.5585 6.47,24.01521 8.36046,36.46043c3.24197,12.33818 5.82637,24.53572 9.31963,36.76498c3.88237,12.71416 9.39792,24.81319 13.2628,37.54517c7.05891,11.17328 13.48564,22.96204 17.86821,35.4054c-10.48648,-0.88873 0.96857,15.8573 2.93524,22.45895c2.86746,13.58783 -12.84537,5.80856 -15.59308,-0.46634c-9.70456,9.1796 -29.57259,11.24072 -38.3669,-0.80743c-9.26392,-12.20752 -14.38051,-27.69696 -27.16855,-36.53391c-5.02811,-4.18506 -9.90665,-22.45958 -11.7061,-6.32031c6.38489,16.05743 -18.74254,6.90547 -27.66772,9.78912c-15.99664,-3.21661 6.07263,-12.35889 12.86923,-11.27576c6.38602,-6.35408 17.01372,-16.99594 1.7589,-20.33147c-10.44731,-4.15326 -23.84068,-14.68553 -29.71439,0.99188c-7.37552,3.90117 -20.59412,22.40862 -5.95329,23.77255c5.91614,12.10878 -17.0737,3.35048 -23.49316,6.21452c-6.05255,1.90814 -21.13758,-1.4375 -7.08788,-4.49867c12.08796,-1.9845 17.85132,-16.8317 25.44044,-25.82515c-0.25166,-11.53856 -9.48829,-20.69617 -16.41167,-29.40816c-7.36517,-12.27962 -17.64172,-22.79747 -22.75925,-36.23717c-3.35689,-13.95544 -9.74807,-26.85826 -12.98938,-40.84583c-3.65936,-14.01762 -7.85575,-29.82359 0.01893,-43.25633c3.58914,-11.78534 5.08364,-22.78083 -2.44828,-32.4814c-10.40722,-8.4583 -25.19866,-5.06594 -37.19873,-10.67507c-1.4463,-9.05923 17.76661,-12.5158 26.11695,-14.53937c3.17027,-0.11009 5.59681,-2.76167 8.88516,-2.69248z",
11
+ "dog": "m100.16203,296.98279c-8.8212,-9.63385 1.38332,-24.43997 -0.42293,-36.27057c0.75693,-11.26283 0.70357,-22.55605 0.97627,-33.83612c-5.62751,-3.03004 -11.14646,-9.8163 -17.39571,-9.15442c-9.39647,12.28885 -8.36188,28.63301 -15.80033,41.86707c-4.14935,12.68604 -14.20047,25.1369 -28.95629,23.20023c-15.78228,0.24448 -5.31179,-12.67972 3.94138,-14.51392c15.5036,-7.47278 14.489,-27.14363 17.24157,-41.59114c1.02824,-10.18478 3.24236,-20.5625 3.54647,-30.63432c-6.4542,-14.31418 -15.78849,-28.37114 -13.67442,-44.85196c-0.91037,-17.78856 4.2768,-37.23788 -5.08019,-53.53189c-5.56927,-15.61405 3.8713,-31.59072 2.9399,-47.52759c0.9721,-14.78285 -5.20505,-30.54867 1.20562,-44.61136c13.7762,-15.53139 12.97964,13.29988 18.95111,20.54415c5.64886,15.40877 24.7487,10.76537 35.50636,4.24826c7.2022,-4.10769 16.87807,-28.32801 24.44378,-14.32351c3.37997,14.22579 -6.14093,25.38077 -12.22646,36.88495c-6.86581,22.01683 5.86861,44.08519 20.93388,59.44197c24.83763,26.97977 44.07555,59.68134 54.0882,95.03609c1.31316,14.68071 3.98535,28.23558 12.82726,40.18617c10.20438,10.1714 26.16472,9.68739 39.32852,13.25957c9.22101,2.52521 30.75206,5.14639 26.47435,17.3808c-14.74448,2.4689 -30.09541,0.23105 -44.90068,-1.32291c-17.28331,-2.73001 -35.00906,-7.2897 -49.09666,-18.1597c-14.62904,-9.61427 -18.7715,20.00995 -34.01671,10.65375c-2.19362,-7.70334 10.66454,-19.74266 -6.53938,-19.26297c-6.33104,0.30879 -15.00338,1.82024 -19.76239,4.89166c1.07452,12.16098 2.04812,24.36316 4.2893,36.36713c-1.78267,6.00809 -14.15643,12.93057 -18.82182,5.63058z",
12
+ "duck": "m185.95239,299.43112c-13.71118,-7.29123 11.45862,-7.3541 17.23322,-7.85522c14.99724,-0.2811 17.02971,-18.28448 15.48773,-29.74414c-2.1938,-4.69699 -0.04752,-14.89349 -7.7746,-13.37029c-15.43901,-0.71622 -30.7112,-4.55923 -44.14467,-12.22302c-0.82443,12.88171 -7.29927,24.66777 -11.6053,36.85115c-5.66316,6.16721 14.39644,28.18469 0.43378,18.34869c-9.04433,-8.40845 0.06526,8.74658 -11.16418,3.91656c-15.23827,-0.31436 -31.02578,2.40784 -45.91216,-1.24551c-5.00268,-2.09833 -20.66561,0.51883 -9.25531,-6.49301c6.4804,-1.18185 12.15667,4.48007 17.05421,-2.03778c11.5948,4.79346 30.04866,4.82639 34.25867,-10.28015c7.00595,-11.43338 11.29851,-24.25136 11.56012,-37.68254c-8.2043,-6.31854 -14.70296,-14.48831 -18.43434,-24.21049c-8.62861,-14.22275 -24.3753,-22.02206 -37.28508,-31.87471c-17.12926,-11.15475 -36.8522,-23.99915 -40.20823,-46.00098c-4.08031,-16.32172 0.02216,-34.19492 11.59384,-46.57394c7.80417,-11.16946 22.31328,-21.55052 18.99293,-36.88489c-8.43674,-15.00933 -26.68094,1.9423 -34.96601,9.23433c-9.98,7.06196 -20.71845,24.17017 -34.34288,16.49594c-1.7172,-11.61691 13.7034,-18.90693 17.498,-29.74388c7.8585,-12.19844 12.51045,-26.37627 18.95516,-38.92993c11.65712,-10.85135 30.93148,-10.91782 42.45155,0.28526c14.7008,11.44654 23.86826,29.5425 22.42876,48.35335c1.4173,12.98959 -4.14301,29.91504 8.25453,38.93287c17.92052,9.9613 39.04935,12.35098 57.26444,21.89838c22.77972,10.51788 39.86913,29.49796 59.04057,45.11781c11.7964,10.71736 23.92368,21.11819 35.13879,32.44618c-7.49713,-2.24278 -14.43054,-6.05879 -21.60767,-9.15805c9.28815,12.08043 13.46152,26.94177 15.66077,41.78857c3.61584,15.73579 13.73315,31.11919 8.65729,47.77711c-4.42633,13.85214 -18.52838,-8.55096 -25.42393,-12.47198c-7.88147,-7.42908 -15.67812,-16.62666 -27.10399,-17.90884c-2.06194,13.35767 -4.18094,27.25305 -1.83514,40.63339c1.37479,11.84998 25.0215,4.73886 21.59566,13.51175c-19.80942,-2.16162 -39.69846,-0.3399 -59.55595,-0.59872l-2.94055,-0.30328l0,0z",
13
+ "eagle": "m42.43982,248.02586c11.79883,-9.19574 37.51548,5.68584 36.59332,-18.29665c11.6873,-8.23552 20.68873,-26.28419 1.79099,-32.32607c-10.7688,-5.1657 -15.8233,11.42451 -19.57125,12.4706c-7.77777,-10.83765 -3.38924,-28.5033 -0.32791,-39.95343c9.78217,-6.08578 25.82187,-13.03094 14.50231,-26.59097c-2.34529,-14.80103 -3.78094,-32.06657 -17.7612,-41.01302c-10.43393,-6.26692 -25.16679,-12.24148 -20.04643,-26.95332c-6.73619,-10.16047 -14.53631,-24.05076 -10.06464,-36.59579c10.19879,-1.80737 9.00111,23.96806 10.94535,18.5213c-3.83083,-8.28799 9.1568,-27.37077 8.41371,-9.7762c-0.78397,6.31187 -0.27625,19.10084 3.19139,6.43372c9.40052,-13.9652 0.18064,24.20846 9.40782,9.05938c6.50935,-2.10711 4.52592,9.32912 10.80828,3.67456c6.87772,5.25431 11.91442,6.4291 11.89108,15.161c9.16496,3.3132 16.00232,8.79374 14.18665,17.50479c17.88632,-4.31568 2.59483,17.992 15.32488,24.21275c6.86198,10.87837 9.94656,21.77702 9.45206,34.69591c14.12406,-3.90332 23.43909,-19.96727 38.02612,-24.96548c16.37712,-7.58971 22.24484,-26.45808 25.80173,-42.75597c1.58806,-7.86366 11.55658,-7.47865 8.4944,1.35465c11.47125,-12.36288 6.68346,-30.36211 9.92291,-45.39627c1.03862,-8.40902 -2.33224,-26.94658 4.74805,-28.67765c10.56419,9.48252 -2.34641,30.44621 7.95137,36.7387c7.25935,-13.5451 4.68625,-29.74639 5.07938,-44.52987c-0.17744,-8.53332 8.28981,-14.18234 7.88048,-2.00179c3.55096,10.5139 -0.40492,32.21981 1.64958,36.04613c8.07187,-12.48013 6.34647,-29.28694 14.90497,-41.01045c11.77513,4.41697 -3.33727,24.23894 -2.9549,34.73938c1.57841,8.06398 13.11919,-23.61583 13.7003,-6.1498c-5.31714,4.6162 -4.42737,17.32646 1.51364,7.08835c2.29477,-8.40776 17.99155,-5.58858 7.86148,2.08536c-7.52231,6.5335 13.19769,6.07413 4.12683,13.25697c6.05191,9.99521 -10.41388,15.90605 -0.99213,23.11055c-0.5419,2.90166 7.51996,8.55031 3.95645,15.5176c3.55255,6.41606 -12.64786,10.58171 -2.07687,14.97137c0.61145,14.96265 -18.29834,25.28072 -14.15472,39.25008c-1.22144,16.83496 -13.92377,30.96262 -27.51764,39.86047c-12.55846,2.38141 -22.29991,7.42523 -33.09448,14.38452c-7.10794,0.12218 -9.63133,0.08891 -13.34837,5.21904c-5.85042,-4.53848 -15.49744,-11.39697 -13.84404,2.34781c2.50378,17.06932 24.15945,18.76619 35.67772,27.84688c12.28496,4.33621 28.35258,18.74889 15.04837,30.03174c-1.28722,16.03848 -22.62962,6.43207 -28.17253,11.98065c-7.95277,1.1889 -7.12421,6.80249 -14.18958,0.10867c-6.88124,9.22229 -22.27397,-0.76007 -29.61287,-4.75983c-11.90405,5.67993 -17.34648,-22.86903 -19.53539,-2.88507c-4.83576,13.58316 -24.476,-1.01483 -24.37943,16.35269c-8.98567,-1.84631 -9.40855,12.19781 -19.04626,10.78702c6.06173,-2.81454 10.18479,-18.90897 -0.69688,-11.14999c-8.89938,-6.76031 -3.76038,16.63571 -11.0985,4.45398c-1.61417,-15.81525 16.34735,-16.12735 26.46889,-18.96848c3.63502,-9.19174 8.23714,-21.27525 7.27283,-30.1396c-9.56728,3.84567 -17.9573,12.08994 -29.11918,12.79019c0.69484,8.35417 -5.77779,21.85307 -15.72966,14.08031c14.30752,5.57813 7.98567,-25.05467 -0.66062,-9.91721c-3.38933,9.9873 -2.96938,-14.429 -12.7722,-7.32185c-5.13792,3.73692 -1.64958,12.39018 -6.75386,2.35237c-0.99273,-2.02373 -1.14814,-4.89752 0.9282,-6.35475z",
14
+ "elk": "m55.44169,70.04322c-9.46609,7.85901 -22.89024,10.68682 -35.01687,12.13352c-10.34381,-1.03976 -26.56821,7.31529 -15.97385,18.70621c7.56154,15.8879 23.87035,2.81345 34.83344,1.97973c6.74288,1.81747 9.04052,25.43575 14.68986,9.83006c3.84105,-12.93275 21.02425,-8.87709 30.14005,-4.40716c14.1686,4.39434 8.46609,22.12076 16.61138,31.95892c12.24081,12.85411 -1.67636,29.24428 -12.4499,37.76401c-12.75361,7.58044 -18.55984,19.76834 -16.78767,34.30325c0.04941,14.73842 -3.99104,30.75432 3.85034,44.19391c11.85099,1.57538 1.64103,-19.88701 4.92331,-27.40918c1.21214,-13.46214 -1.9274,-30.30058 10.90484,-39.28947c11.4828,-10.01157 23.57063,-19.55112 36.47411,-27.62581c12.21095,-0.62399 10.39299,17.77295 13.97888,26.40175c2.87054,13.20355 4.12752,27.58423 3.69688,40.50841c3.125,10.64038 5.51489,24.0757 -1.41217,31.57294c12.91045,1.34732 24.73607,-12.8914 14.16034,-24.30435c-4.26125,-15.94153 -5.71083,-32.54619 -8.8824,-48.75049c-1.29825,-11.53598 -3.35872,-25.34232 4.83759,-34.86038c12.05826,-0.41389 24.32834,12.14566 37.60088,4.59509c11.65439,-7.49344 33.21696,-6.53802 31.62036,11.82347c-3.2142,14.87534 1.55244,29.61519 2.2346,43.81203c-3.42354,18.43187 -22.15714,27.36267 -29.50255,43.57849c6.98146,9.64319 17.6196,-4.17101 24.65466,-8.5957c-1.74142,-12.99426 11.64835,-19.92599 15.71536,-30.922c6.9856,-14.97188 -3.20459,-32.25409 -2.75711,-46.36688c-5.96602,-12.06912 6.08081,-14.98056 11.07512,-3.9678c8.02901,10.14059 21.03195,16.80963 23.7973,30.43394c7.39731,10.39175 10.8736,22.49284 15.64307,34.03711c4.08353,6.21262 10.6907,18.02594 12.81412,3.55118c3.85464,-8.67506 1.42859,-14.46745 -6.31488,-15.1647c-13.17899,-14.6283 -10.83514,-37.51031 -25.72766,-51.16437c-10.90161,-6.89407 -22.06673,-14.37312 -25.85289,-27.85638c-6.71298,-10.98305 -8.98033,-24.34339 -5.63237,-36.85001c4.36508,-2.10748 7.17406,6.33847 3.86676,-3.07584c-7.08252,-11.81364 -21.74017,-16.42101 -34.30881,-20.12214c-13.86351,-4.31435 -28.287,-5.60372 -42.65346,-3.49644c-12.2518,3.14196 -25.56529,6.21495 -37.68355,0.56779c-10.80199,-6.45414 -23.34553,-5.2407 -34.37726,-0.35921c-8.31817,4.58586 -24.95089,-0.17232 -13.39404,-9.69791c-4.65558,-4.05794 -21.26908,7.53993 -8.94252,-2.36752c5.90361,-6.02524 8.73024,-18.58166 6.56192,-25.10496c-2.33636,8.03588 -5.7029,7.70039 -5.40219,-0.79288c-2.03959,15.14413 -12.13537,5.38195 -10.55587,1.00194c0.66773,6.1233 -2.56635,12.84344 -5.72467,3.23117c-0.3636,6.21597 2.87773,15.15818 -3.77972,17.71219c10.15314,9.32419 -13.24982,2.42432 -13.20099,-4.96754c-6.18471,-9.39983 -7.12771,-4.31873 -4.60736,3.21883c-4.59348,-3.34352 -10.47613,-9.66862 -5.36225,0.14767c5.84781,13.3303 21.7189,7.94385 31.61781,10.45553z",
15
+ "fish": "m127.20683,242.3436c1.50244,-15.94504 5.02446,-32.41927 12.88557,-46.10178c7.51215,-8.98547 19.63693,-8.71681 29.76314,-11.79086c-14.18819,-3.80443 -27.43222,-10.54059 -40.42705,-17.66788c-21.27006,-9.23157 -42.92073,4.06975 -62.09324,13.40138c-14.23518,6.80144 -28.31641,14.82532 -43.64474,18.1933c-10.05519,-6.98578 -1.65744,-26.80461 5.41335,-35.17271c8.9525,-11.55655 22.2043,-17.52696 31.90982,-28.07993c4.26963,-14.90575 -15.40321,-18.57297 -24.24153,-24.42971c-13.70577,-6.20512 -25.35116,-16.36843 -35.77064,-27.71589c24.19748,-1.40994 45.60231,13.61476 67.43612,22.73716c11.80957,4.27464 22.94788,10.28683 33.98999,16.23396c5.06265,-0.02556 22.24189,3.73252 20.52978,-2.03984c-12.8773,-0.57095 -11.58655,-17.22836 -2.92075,-23.83247c12.73701,-10.02242 28.26479,-15.93932 38.86842,-29.21478c4.65193,-3.7341 7.09996,-12.86792 11.03157,-15.74994c16.95282,13.24852 26.87143,34.14735 36.22475,53.96581c15.23062,3.44089 30.61246,6.23184 46.13637,7.07419c15.15991,6.93107 28.10406,19.01068 39.97369,31.27808c8.99451,6.78525 11.39157,25.24843 -0.83481,28.95241c-30.16479,16.24658 -63.84666,21.21309 -97.06413,22.77441c-4.67992,-0.32996 -8.75485,0.18372 -8.78621,6.33609c-2.92581,8.76227 -4.12184,18.94467 -9.62984,26.07907c-6.07878,-1.55455 -0.31998,-19.45975 -6.56294,-10.95245c-12.27982,13.32922 -27.04962,23.32567 -42.18671,32.26515c0,-2.18091 -0.00002,-4.36198 0.00002,-6.54276z",
16
+ "hare": "m95.22337,299.53546c-10.68459,-4.81824 3.25798,-14.45154 8.53654,-18.71286c3.55556,-3.28177 -20.37717,0.46036 -10.27298,-10.93198c11.08577,-9.30692 6.89815,-25.05217 -4.18282,-32.37115c-15.24973,-10.2968 -34.81611,-19.10942 -40.44992,-38.33635c-5.69662,-11.9756 7.81301,-24.58835 -0.87631,-35.40263c-6.99412,-14.0412 1.177,-28.68323 6.25594,-41.69022c2.33568,-17.99253 -11.97227,-32.2212 -19.84076,-47.00306c-9.74298,-14.12588 -15.35928,-30.58578 -16.16633,-47.73895c-2.11884,-7.3217 0.22601,-18.6921 8.68694,-8.82097c17.71845,14.18765 37.17033,27.65002 49.57116,47.06949c2.34735,7.01447 11.74658,27.34441 12.27144,8.93449c0.24582,-25.30315 7.97399,-52.90002 27.77682,-69.85634c13.46954,-12.2734 20.73361,9.21683 21.36209,20.13735c3.50587,21.487 -2.30553,42.79486 -8.78146,63.09225c-2.37738,9.43285 -8.56868,35.2823 9.08899,25.75117c40.67693,-15.70451 89.96005,0.78945 116.45525,34.52606c12.17961,16.33485 17.5135,37.32133 17.39308,57.47189c-6.27155,11.83836 17.03061,-0.22177 8.58704,13.43613c-4.97064,15.1297 -19.01465,23.33925 -28.85207,34.75906c-10.01038,9.15085 -2.58298,28.71576 -19.13725,31.59863c-24.15469,7.44629 -49.5191,10.70804 -74.66498,12.6066c-14.07156,2.88287 -20.90056,-13.20758 -7.41347,-19.89679c6.46608,-9.96799 24.96535,-10.66653 30.46185,-12.24564c-13.13484,1.28516 -29.33337,-4.0759 -40.40141,4.05872c-6.70294,10.88138 -12.07141,25.20364 -26.12755,28.30951c-6.3168,1.75439 -12.8116,3.16129 -19.27982,1.25558z",
17
+ "he_hen": "m176.04681,296.29803c-8.82596,-3.77927 -18.43298,1.74493 -27.86224,-3.75964c7.62581,-0.4744 19.08463,-0.03574 17.06104,-11.34488c3.33665,-13.20654 -3.43475,-27.06163 2.20258,-38.55534c-8.82878,-8.42361 -18.09561,-18.39673 -22.80272,-30.16238c-0.9447,4.74663 -1.81537,8.52257 -3.158,0.33916c-0.76965,-4.00471 -0.30261,9.89931 -3.24527,0.14346c-3.10373,-8.67493 -11.4597,-31.29446 -14.05236,-10.31462c-1.0768,10.8262 -4.45592,3.14465 -6.0004,-3.72562c-1.56924,-13.22943 -7.23737,-25.48523 -8.72193,-38.68883c5.80227,-8.36407 -0.82715,-9.5029 -3.91098,-1.15848c-3.39584,13.23767 -6.30494,26.33923 -2.7624,39.9769c-4.70789,3.85124 -13.79493,-17.92216 -9.61541,-26.27414c3.62592,-9.45018 2.81974,-19.09607 3.42313,-25.48878c3.31529,-7.21146 -3.22571,-15.04807 0.25123,-22.73853c-8.88477,9.68631 -16.83011,16.38615 -14.33428,31.58234c-1.10283,3.79079 3.703,25.58844 0.64231,17.56184c-5.77861,-15.66916 -5.78305,-33.02271 -1.43442,-49.01125c0.00535,-12.20366 -9.89253,21.0744 -9.16187,4.76299c-0.93676,-12.30159 4.13303,-25.82869 8.93452,-35.55499c-5.46675,-6.50523 -23.17289,-1.89566 -14.79648,-15.70558c8.24343,-7.01884 7.35999,-16.67057 -3.85936,-8.18394c-17.3246,12.72424 -31.69814,29.07174 -47.58007,43.52234c15.25898,-19.61487 32.46107,-38.59572 53.7519,-51.75492c20.64337,-12.99951 50.5769,-14.34346 68.38963,4.28573c4.53072,7.97979 15.06177,13.26968 17.57275,20.45337c-1.84586,10.76744 5.10652,16.10654 5.85289,25.57021c4.38731,7.30244 -3.95828,20.43125 8.52597,16.64671c14.20137,-0.01996 33.63664,-3.16645 34.74754,-20.87874c5.66772,-25.50935 8.27689,-54.0092 26.4256,-74.31131c10.08655,-5.89642 3.82147,-4.32716 -3.54926,-5.29837c-6.51613,-7.58361 6.57724,-19.75743 13.02319,-21.14511c-1.112,-17.9227 10.53479,10.74471 13.86426,-2.41437c4.99586,0.09501 7.43144,12.08141 10.46855,2.29789c9.05719,7.66376 18.6297,19.25661 6.66562,29.92943c13.61102,6.52517 -13.86911,2.29947 -2.14532,12.29652c9.6759,9.35194 2.83621,26.62759 -5.10654,34.15639c-0.3085,5.66077 9.31277,13.88494 11.24728,20.75249c9.99454,19.34809 11.9986,42.36646 8.16797,63.56847c-5.39346,19.98318 -25.46588,28.67906 -39.65833,41.37386c-12.12337,9.93893 -7.85776,27.37115 -13.59781,40.42342c0.57072,7.5369 4.77751,16.1196 10.7547,20.66925c8.66214,4.84064 18.81006,7.96561 25.81393,15.05286c-6.39667,3.34055 -19.43893,-10.21753 -19.56508,0.39017c-9.50252,-12.34393 -23.7677,-4.06104 -34.21234,-13.55405c8.69193,1.65643 19.99033,0.8027 10.47188,-9.61145c-3.75841,-8.80696 -15.07852,-11.84618 -15.37883,-22.49022c-10.66643,6.69647 -17.92447,15.81358 -25.66988,24.90395c-12.85808,-0.80322 -13.41248,25.11618 0.47165,24.73163c5.7019,1.45825 27.10161,9.40335 10.25006,7.35107c-5.02289,-0.89746 -10.47203,-4.04099 -10.31842,1.85727c-2.30338,-0.41431 -4.35982,-1.56003 -6.48019,-2.47418z",
18
+ "hen": "m131.70792,299.20142c-2.65045,-8.04401 -50.59061,2.01245 -25.50379,-8.40613c9.71836,-2.24731 29.67359,0.57056 9.8335,-5.50568c22.5928,7.62228 32.60569,-19.08859 34.06422,-37.09636c-21.02885,-6.55212 -24.67069,-31.02429 -46.83106,-37.61485c-16.88445,-13.23645 -41.63732,-12.83168 -52.35418,-33.24014c-10.17476,-18.17259 -4.4284,-40.29292 -2.74405,-59.92338c4.00956,-20.72375 12.14967,-41.69897 10.53991,-62.75727c-16.41068,9.44812 -22.4106,-11.67328 -22.78485,-18.27062c-12.07958,3.08904 -19.7317,3.22594 -6.59584,-7.5194c5.87008,-8.14037 8.78346,-25.92081 18.16113,-23.25189c2.47408,-10.763 9.04029,4.89351 16.30021,-4.61621c4.44867,3.35889 13.85731,7.10325 3.42817,13.02555c18.83147,9.50194 34.07959,23.95835 41.92437,42.43233c7.86127,18.77559 23.52317,39.06593 48.8149,33.98585c22.90038,3.93186 49.73083,-9.80992 48.68822,-32.86776c0.44391,-16.33654 16.52325,-54.48924 38.19395,-35.09801c16.24046,6.22802 34.92778,21.65468 31.09642,39.16159c-2.21887,18.0508 -0.50452,36.25767 1.60162,54.45551c-13.60181,10.0825 -11.15982,27.59631 -20.65894,40.7838c7.8804,18.56862 0.29095,38.62871 -12.60841,53.70848c-12.90314,13.89935 -31.76248,26.24356 -52.66508,24.4381c-7.98578,13.29396 9.42929,24.99069 15.57339,25.73553c-16.01053,-5.1321 -13.75549,4.70874 -8.47672,15.2244c4.94576,19.6875 -10.58037,-17.53909 -20.60904,0.27255c-7.77597,7.68976 -38.86531,10.29276 -13.69539,1.07587c21.48048,-7.96875 -24.12099,-12.95142 -13.99879,5.00586c3.34996,7.49203 22.77361,10.79092 2.32814,7.93628c-9.02753,-4.74515 -13.85625,12.10397 -21.02202,8.92599zm43.09088,-34.62769c7.8596,-9.56569 10.12141,-37.24054 -6.87671,-17.06372c-13.43553,10.88889 -18.29311,29.6301 6.87671,17.06372z",
19
+ "mouse": "m0.99942,221.57315c18.97592,-5.2153 38.89368,-5.72223 58.37582,-7.77921c22.496,-2.19991 45.89505,-1.95135 67.14781,-10.93486c14.09158,-5.66957 18.06422,-22.34355 18.92189,-36.61246c3.853,-24.50212 17.5325,-49.94102 40.26784,-59.44455c8.81084,-4.72752 21.73279,1.24299 28.77051,-3.16475c-8.53821,-11.67851 9.86266,-25.18666 17.60304,-12.64201c9.90706,2.44754 20.13632,-4.12984 22.40773,-13.63184c8.92409,7.01573 17.55354,16.51189 28.21455,21.93088c10.14639,3.852 24.18005,17.58312 11.18048,27.34964c-8.74753,9.55273 -22.39651,8.48746 -31.55023,16.51577c-9.2032,7.60971 -8.39032,20.69223 -4.77994,31.13091c0.58701,11.39519 9.68161,13.02966 17.70996,16.03508c1.32019,7.11591 -9.48019,9.15216 -14.76065,10.85889c-11.37581,1.93378 -22.26419,-2.9012 -30.79645,-10.59497c-7.75803,-9.73157 -17.02081,0.98111 -14.42018,10.56955c-13.10742,11.20265 10.79541,5.32968 13.63931,12.79547c-11.33516,4.36475 -24.3324,2.06448 -36.29933,1.86723c-15.70055,0.23059 -28.91441,-10.20818 -44.0015,-12.87645c-9.31265,3.4888 -17.24791,11.49408 -27.66536,12.5939c-30.59707,5.30119 -61.77245,4.85931 -92.6703,6.59238c-8.95057,-0.1062 -18.97236,1.51553 -27.29502,-0.55859z"
20
+ }
21
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/arrow.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "10": "m0.99679,148.19614c0.277,-34.75176 -0.17724,-69.54997 2.27791,-104.24061c60.32762,11.41171 119.94372,30.08407 179.25477,46.87597c3.18407,-17.04019 1.68541,-31.17523 4.4519,-46.93008c38.1039,33.15254 75.86421,66.77718 112.07695,102.003c-34.74261,39.95821 -74.59364,74.65916 -113.71667,110.1933c-1.26689,-16.54773 -2.53401,-33.09534 -3.80092,-49.64307c-57.66159,16.00916 -118.64064,32.56108 -176.67504,47.19652c-3.94662,-33.77068 -3.83062,-70.54794 -3.8689,-105.45503z",
3
+ "11": "m136.44681,226.75766l47.24773,-47.40907l-91.35118,0l-91.35098,0l0,-29.34846l0,-29.34849l90.303,0c49.66658,0 90.30293,-1.48752 90.30293,-3.30561c0,-1.81805 -19.77211,-23.15214 -43.93797,-47.40906l-43.93811,-44.1035l40.61224,0l40.61209,0l62.02386,62.14279l62.02383,62.14276l-62.14281,62.02386l-62.14279,62.02386l-42.75481,0l-42.75491,0l47.24786,-47.40909z",
4
+ "12": "m116.00724,294.49442c-8.01179,-8.01181 -6.96065,-12.86337 12.51841,-57.77466c9.83598,-22.67787 17.88353,-41.89153 17.88353,-42.69699c0,-0.8054 -27.16052,-1.46442 -60.3569,-1.46442l-60.3569,0l0,-42.47337l0,-42.47337l60.83526,0c46.90741,0 60.31158,-1.27951 58.54825,-5.58862c-1.25784,-3.07373 -9.83818,-23.47047 -19.06743,-45.32602c-17.39725,-41.19823 -17.39179,-52.24659 0.02688,-55.67119c8.66862,-1.70424 143.62872,129.24032 148.26757,143.85621c-44.95403,52.18671 -98.68933,106.81281 -148.18829,154.97751c-2.60997,0 -7.15958,-2.41428 -10.11037,-5.36508z",
5
+ "13": "m167.5984,129.81894c13.45454,0 26.90909,0 40.36363,0c0,13.45454 0,26.90909 0,40.36363c-13.45454,0 -26.90909,0 -40.36363,0c0,-13.45454 0,-26.90909 0,-40.36363zm-58.30304,0c14.9494,0 29.89909,0 44.8485,0c0,13.45454 0,26.90909 0,40.36363c-14.9494,0 -29.89909,0 -44.8485,0c0,-13.45454 0,-26.90909 0,-40.36363zm-53.81818,0c14.9494,0 29.89908,0 44.84848,0c0,13.45454 0,26.90909 0,40.36363c-14.9494,0 -29.89909,0 -44.84848,0c0,-13.45454 0,-26.90909 0,-40.36363zm-53.81818,0c14.9494,0 29.89908,0 44.84849,0c0,13.45454 0,26.90909 0,40.36363c-14.94941,0 -29.89908,0 -44.84849,0c0,-13.45454 0,-26.90909 0,-40.36363zm165.9394,83.23706c14.2021,-0.91132 28.40395,0.64389 42.60606,-0.26743c0.91125,-14.20201 0.48917,-28.40405 1.40042,-42.60606c13.29086,0 27.91505,0 41.20563,0c0,-13.45454 0,-26.9091 0,-40.36363c-13.45454,0 -26.90909,0 -40.36363,0c0,-14.94952 0,-29.899 0,-44.84848c-14.9494,0 -29.89908,0 -44.84848,0c0,-13.45454 0,-26.90909 0,-40.36363c14.9494,0 29.89908,0 44.84848,0c0,13.45454 0,26.90909 0,40.36363c13.29059,0 27.91478,-0.66666 41.20563,-0.66666c0.91125,14.20197 0.48918,29.0707 1.40044,43.27271c14.20209,0.91129 28.60425,-0.07731 42.80637,0.83398c0,13.29074 -0.20032,28.48132 -0.20032,41.77208c-14.9494,0 -29.89908,0 -44.84848,0c0,14.94951 0,29.89897 0,44.84848c-13.45454,0 -26.90909,0 -40.36363,0c0,13.45454 0,26.90909 0,40.36363c-14.9494,0 -29.89908,0 -44.84848,0c0,-13.29074 0,-29.0479 0,-42.33865z",
6
+ "14": "m158.38327,149.9911l-83.00266,-148.9972l149.24145,148.9972l-149.24145,148.99712l83.00266,-148.99712z",
7
+ "15": "m175.41861,150.04552l-148.89816,-149.05299l98.06119,0l148.89816,149.05299l-148.89816,149.05287l-98.06119,0l148.89816,-149.05287z",
8
+ "16": "m227.52928,183.22569c6.14276,-5.95375 12.01762,-12.81764 17.19296,-18.97911l-155.07133,-2.82724l-21.27044,24.3479l-67.38522,-2.09119c8.44345,-11.0853 17.69294,-24.10754 24.55062,-33.88853l-24.39403,-32.88164l71.89852,0l14.62907,20.54468l158.32403,0l-19.63887,-20.4987c6.06082,-6.45992 15.03049,-15.08081 19.89622,-19.60087l53.24701,52.24467l-53.36812,53.05513l-18.61044,-19.42511z",
9
+ "bent_up": "m1.00136,224.73827l204.13,0l0,-149.15997l-31.28999,0l62.57999,-74.57997l62.58002,74.57997l-31.29001,0l0,223.73997l-266.71,0z",
10
+ "callout": "m0.99757,0.99642l193.63145,0l0,111.75l53.81497,0l0,-37.25l50.55357,74.49999l-50.55357,74.50003l0,-37.25002l-53.81497,0l0,111.75l-193.63145,0z",
11
+ "chevron": "m0.99844,0.99688l223.49919,0l74.49986,149.00068l-74.49986,149.00134l-223.49919,0l74.49984,-149.00134l-74.49984,-149.00068z",
12
+ "corners": "m78.29672,150l-55.17469,-55.1747l0,27.58735l-22.12203,0l0,-121.41265l121.41265,0l0,22.12203l-27.58736,0l55.17471,55.17471l55.17471,-55.17471l-27.58736,0l0,-22.12203l121.41264,0l0,121.41265l-22.12204,0l0,-27.58735l-55.1747,55.1747l55.1747,55.17471l0,-27.58736l22.12204,0l0,121.41264l-121.41264,0l0,-22.12204l27.58736,0l-55.17471,-55.17468l-55.17471,55.17468l27.58736,0l0,22.12204l-121.41265,0l0,-121.41264l22.12203,0l0,27.58736l55.17469,-55.17471z",
13
+ "diamond": "m228.23334,205.75699c-12.96465,-22.71989 -62.74901,-33.9996 -160.88079,-36.45064l-66.35706,-1.65739l0,-19.88501l0,-19.88482l50.08599,0c59.04541,0 101.26503,-4.08251 135.71376,-13.12332c20.32901,-5.33509 27.0845,-8.73719 36.27359,-18.26725l11.29199,-11.71121l32.38853,32.49907l32.38852,32.49925l-32.75113,32.72415l-32.75122,32.72433l-5.40219,-9.46716z",
14
+ "dotted": "m164.76302,54.29618c-12.89404,-14.08136 13.13254,-37.91006 24.83243,-21.67826c9.98653,14.06865 -12.21164,31.95572 -24.83243,21.67826zm34.52623,32.04741c-10.53665,-15.50334 18.2944,-32.06738 27.41472,-16.58083c10.82574,16.19412 -18.42853,34.68893 -27.41472,16.58083zm39.30569,38.77469c-13.16362,-8.91086 -0.08168,-29.46533 13.54875,-27.63215c18.93346,2.88981 13.87328,34.44158 -4.59297,32.89478c-3.58466,-0.41574 -6.77832,-2.45136 -8.95578,-5.26263zm32.87781,34.23642c-11.00845,-13.99648 14.37656,-32.37918 25.04797,-19.05171c11.60712,14.82527 -14.29718,34.39392 -25.04797,19.05171zm-63.84386,0.7675c-12.23796,-11.58463 5.72536,-30.30273 19.24007,-25.41679c19.63696,6.28566 5.03751,36.50668 -12.48737,29.64096c-2.41074,-1.14194 -4.56958,-2.71278 -6.7527,-4.22417zm-52.05359,0c-14.38365,-13.43323 11.89731,-35.50046 24.20743,-21.44815c12.48965,14.64734 -10.94827,35.43011 -24.20743,21.44815zm-51.41751,-0.7675c-11.01524,-13.99239 14.38364,-32.38554 25.04439,-19.04626c11.57417,14.84886 -14.25791,34.38168 -25.04439,19.04626zm-48.97159,0.7675c-14.38364,-13.43323 11.89733,-35.50046 24.20746,-21.44815c12.48962,14.64734 -10.94829,35.43011 -24.20746,21.44815zm-51.41319,-0.75569c-12.62148,-16.51503 21.51373,-34.53826 27.20482,-13.82039c4.20761,13.86485 -18.57945,25.93829 -27.20482,13.82039zm232.73729,36.71002c-12.26451,-12.7252 9.54947,-34.95583 22.63777,-23.37347c16.16324,11.53831 -5.25334,38.27226 -20.09267,25.93422c-0.83693,-0.86462 -1.69453,-1.70929 -2.5451,-2.56075zm-37.22105,31.5554c-10.33875,-14.74719 16.53384,-30.93315 26.24101,-17.10368c12.66234,14.69044 -12.76988,34.70573 -24.48114,20.0298l-1.75987,-2.92612zm-33.2933,39.2449c-11.17,-10.21844 4.17313,-26.31229 16.33257,-23.575c18.50797,4.77472 6.84483,34.45702 -10.13109,28.82402c-2.6304,-0.90369 -4.76476,-2.91159 -6.20148,-5.24902z",
15
+ "hand_2": "m166.23018,238.662c7.92778,-2.90976 14.43034,-5.61938 2.1153,-5.69868c-10.87593,1.46172 -39.01099,-9.28242 -16.4619,-14.56342c14.10701,-5.508 46.21144,7.21423 46.38257,-14.54736c-2.55197,-13.63786 -43.96396,-2.98952 -30.34076,-21.27969c15.00345,-6.1348 44.75407,8.31958 49.78708,-10.66391c-4.61371,-18.40675 -33.47118,-6.65964 -47.97568,-11.74664c-14.06097,2.90031 -17.76392,-15.58949 -1.98296,-12.79868c36.48125,-1.96817 73.21696,0.92035 109.57253,-3.09619c5.87265,-3.2529 10.21371,-23.26295 2.80267,-24.61046c-52.95885,-1.09735 -106.01129,-0.08873 -158.88631,-3.36192c-18.99625,-0.19729 -4.48207,-20.48157 9.55508,-15.71787c13.37119,-4.37856 18.67023,-15.85947 28.4838,-27.19597c5.01488,-24.77942 -19.08717,-15.58241 -28.93028,-8.33138c-10.99126,7.20572 -29.89664,22.16276 -39.92577,30.01463c-8.79154,6.3571 -29.0466,13.41131 -41.36795,21.93291c-10.53185,3.7428 -22.05687,1.87943 -32.40108,2.55152c0,33.57336 0,67.14623 0,100.71958c29.2655,12.743 60.06093,23.93646 92.50566,22.65599c19.00592,-0.07739 38.55775,0.63341 57.06799,-4.26245zm-120.57521,10.76822c-14.93961,-5.74022 -29.85212,-11.55359 -44.65637,-17.63553c0.70846,-41.92598 1.41691,-83.85243 2.12533,-125.77841c11.81984,-0.44887 29.35853,5.41407 37.78343,-3.21891c22.65079,-7.26991 37.35686,-23.34933 57.21348,-35.41785c13.97373,-10.98014 25.13529,-14.72766 39.56827,-23.05481c10.96249,-5.06954 16.89815,-2.48073 29.24257,-0.27045c5.38396,8.81045 12.06773,13.36412 8.59946,30.1482c-7.23705,3.64039 -16.6288,28.10783 -2.4068,28.30228c39.59416,3.79424 79.82585,-1.53866 119.10855,5.09266c9.78171,13.24281 11.64719,42.99407 -6.25568,51.39202c-17.13269,4.95341 -35.19667,2.49629 -52.7989,3.09193c-0.00107,12.52824 2.07022,28.51608 -11.83537,34.80946c-10.26779,13.39197 -10.98985,33.06551 -27.53502,42.86476c-13.91499,14.25851 -33.72333,18.66306 -53.04445,18.19296c-31.68189,0.4295 -65.02994,3.46667 -95.10849,-8.51738l0,-0.00095z",
16
+ "hand": "m136.98543,214.15889c-14.70618,-5.74251 -4.62521,-24.05643 -14.3905,-33.27538c-12.96347,-7.75244 -2.12349,-24.16507 -12.57821,-33.28812c-7.48801,-6.64952 -5.24203,-16.62421 -3.67915,-25.18983c-29.75101,-0.23549 -59.53337,0.62366 -89.25697,-0.78464c-15.11522,1.28053 -20.03182,-18.26941 -12.80666,-28.85114c7.00419,-11.24166 21.87759,-8.31262 33.12609,-9.4029c64.97946,-0.76864 129.97618,-0.61134 194.95673,0.02921c17.26189,0.80067 37.01695,-1.19489 50.6566,11.68779c16.24808,15.16693 16.0166,39.34441 16.04852,59.94771c-0.42267,19.21857 -2.90109,42.02173 -20.4863,53.46951c-16.36914,10.95175 -36.93741,7.66907 -55.55533,8.62302c-27.94264,-0.30014 -56.07063,1.04456 -83.86891,-2.2673l-2.16592,-0.69792l0,0zm69.33224,-10.55814c9.631,-11.23128 -3.5211,-20.50227 -14.65393,-17.55965c-16.14473,-0.10535 -32.65453,-1.7021 -48.52592,1.75482c-13.67432,5.19589 -4.85582,21.54512 7.46478,18.25877c18.04872,1.02443 36.47603,1.82143 54.28616,-1.68709l1.42891,-0.76686zm65.93199,-2.17656c15.66348,-8.69865 15.78064,-28.60548 16.25079,-44.24881c-0.34195,-16.50655 1.70639,-34.58434 -7.04581,-49.36581c-7.23798,-10.84158 -20.71933,-14.52557 -33.13705,-14.12024c-23.36646,0.0377 -47.0793,-1.82723 -70.16504,2.52512c-15.66467,3.36275 -22.23152,20.93031 -23.45795,35.19015c-0.48341,13.80043 -1.82124,28.00842 1.22505,41.56039c7.24641,5.02983 15.89499,-9.13847 19.17191,-15.4227c4.31766,-11.67575 -0.61995,-26.25061 8.10953,-36.19362c8.72269,-9.46424 24.96402,-8.53419 32.52521,1.88722c8.3812,9.23244 -0.48325,21.69592 1.82307,32.51563c4.15211,9.93069 -0.70021,19.45959 -0.85791,28.5067c4.13835,6.87068 2.87872,15.02933 1.61143,22.50597c16.21062,-0.57724 32.86133,1.70529 48.65034,-2.71872c1.84845,-0.69202 3.61401,-1.59238 5.29642,-2.62128zm-126.53741,-35.9437c2.18771,-13.69858 -18.65493,-12.59653 -20.49308,-1.57007c-4.38604,12.23279 17.61123,15.56906 20.78048,7.03215c0.03699,-1.82657 -0.14053,-3.64476 -0.2874,-5.46208zm62.45076,0.42249c1.41585,-11.79691 -20.5592,-11.91444 -24.75133,-3.63126c-2.34377,5.03215 -10.03961,15.25429 1.13329,12.59268c7.54675,-1.70357 25.12254,3.75204 23.61804,-8.96143zm-62.44263,-31.11197c-0.75351,-2.94205 3.03209,-10.28735 -1.13232,-9.92064c-9.20967,1.01493 -19.08115,-0.45296 -27.70964,3.18962c-7.77171,10.63712 5.24397,21.0274 15.9218,17.53934c7.79146,0.11475 13.91219,-1.24452 12.92017,-10.80832zm61.0041,7.53122c8.85812,-9.53879 -4.95708,-21.9593 -14.94496,-15.6684c-10.39732,5.40628 -7.29182,25.10663 6.58635,19.17703c2.96956,-0.54494 6.1384,-1.30057 8.35861,-3.50864zm-53.18405,-38.39041c2.00339,-3.50816 4.00681,-7.01634 6.01019,-10.52453c-44.99024,0.24061 -90.00227,-0.61648 -134.97418,0.73022c-12.21447,-3.32573 -22.07768,15.22181 -6.82234,18.35822c24.02138,3.10667 48.39057,1.52395 72.56345,1.97845c19.07089,-0.00607 38.14179,-0.01187 57.21268,-0.01793c2.0034,-3.50815 4.00681,-7.01634 6.01019,-10.52452z",
17
+ "in_circle_1": "m5.82933,197.43428c40.71335,-0.01967 134.41318,-0.35846 180.09581,-0.39397c0,16.34004 0,32.68033 0,49.02061c32.58316,-32.50494 65.16631,-65.00987 97.74948,-97.51482c-31.92815,-31.66348 -63.85603,-63.3272 -95.78392,-94.99068c-0.78604,15.0691 -1.57207,30.13822 -2.35809,45.20756c-59.53047,-0.36446 -119.11517,1.07731 -178.59646,-1.67522c0.61495,-72.0702 150.25177,-122.40517 212.67849,-79.3467c34.44215,24.58492 61.89983,56.78898 72.41017,96.54306c3.07645,22.14599 2.45142,44.78936 0.58615,67.02389c-6.63419,36.33044 -31.19992,67.07545 -59.56813,89.58617c-20.38606,15.81168 -45.18452,26.98569 -71.36909,26.70041c-75.26421,9.28406 -124.16029,-34.86111 -155.84441,-100.16032z",
18
+ "inner": "m197.26169,150.29735l-74.64867,-74.64867l0,37.32433l-80.12502,0l0,-111.97301l215.02399,0l0,298.5947l-215.02399,0l0,-111.97301l80.12502,0l0,37.32433l74.64867,-74.64867z",
19
+ "left_right": "m0.99835,150.00092l86.49609,-86.49651l0,43.24814l125.35546,0l0,-43.24814l86.49605,86.49651l-86.49605,86.49605l0,-43.24803l-125.35546,0l0,43.24803l-86.49609,-86.49605z",
20
+ "left_up": "m0.99865,224.5l74.50004,-74.5l0,37.25l111.74991,0l0,-111.75l-37.25,0l74.5,-74.5l74.5,74.5l-37.25,0l0,186.25l-186.24989,0l0,37.25l-74.50005,-74.5z",
21
+ "pentagon": "m0.99791,0.9981l162.54547,0l135.45454,149.40899l-135.45454,149.40898l-162.54547,0z",
22
+ "recycle_3": "m28.22058,93.28644c0.00678,-2.58051 2.31667,-18.40222 5.13495,-35.15953c8.78786,-52.25238 8.91713,-52.48297 20.07468,-35.82898l6.60126,9.85321l19.30534,-9.74535c25.53492,-12.88995 56.00401,-17.65838 84.01221,-13.14781c11.88918,1.91477 24.50447,5.02692 28.034,6.91587c7.00751,3.7502 6.55832,6.97083 -4.61034,33.05528c-6.12129,14.29643 -6.70886,14.70388 -17.2827,11.98577c-17.99704,-4.62608 -47.30141,-3.16897 -61.44969,3.05553l-13.26538,5.83627l9.31132,9.7189c5.12125,5.34554 8.02238,10.51565 6.44702,11.48924c-1.57542,0.97362 -20.7427,2.87124 -42.59392,4.21677c-32.78424,2.01891 -39.72768,1.62653 -39.71874,-2.24516zm168.81314,144.07051l-14.20186,-18.81009l12.93088,-12.50398c13.30882,-12.86928 22.90733,-30.93761 27.13603,-51.08145l2.41319,-11.49524l-13.91847,2.22554c-7.65517,1.22421 -13.96558,1.06514 -14.02313,-0.35333c-0.26878,-6.62247 36.12752,-71.90508 39.66528,-71.14616c5.56261,1.19325 61.9985,50.07314 61.9985,53.6975c0,1.61765 -5.93121,3.88967 -13.18036,5.04884l-13.18039,2.10753l-1.30084,22.476c-1.66846,28.82635 -16.85831,62.09589 -38.00682,83.24434c-8.4704,8.47049 -16.91487,15.4008 -18.76544,15.4008c-1.85062,0 -9.75555,-8.46469 -17.56657,-18.81029zm-128.20031,52.72328c0,-2.07986 2.23119,-8.0961 4.95819,-13.36954c4.94765,-9.56766 4.91901,-9.61411 -13.52617,-21.86105c-28.85884,-19.16116 -50.30965,-53.17105 -57.05687,-90.46291l-2.21202,-12.22588l15.77176,-2.16168c32.51166,-4.45622 32.80855,-4.32152 39.31982,17.83711c4.39381,14.95265 9.79779,23.91347 21.44681,35.56244c8.5651,8.56514 16.76965,14.83324 18.23236,13.92926c1.46265,-0.90396 3.57973,-6.24536 4.70464,-11.86984c1.1249,-5.62448 3.47056,-10.22638 5.21256,-10.22638c3.99942,0 41.66188,59.38374 42.2598,66.63249c0.39931,4.84137 -19.96001,13.22382 -73.01952,30.06421c-3.38333,1.07379 -6.09135,0.25229 -6.09135,-1.84824z",
23
+ "turn_17": "m187.66985,234.28424l2.06375,-22.20483l-24.28615,-3.86421c-61.48712,-9.78288 -121.75832,-51.26649 -155.31676,-106.90179c-6.02069,-9.98148 -10.05047,-19.59818 -8.95503,-21.37048c2.51272,-4.06578 63.74106,-36.43469 68.91894,-36.43469c2.11224,0 7.18627,5.95309 11.27556,13.22911c17.44035,31.03078 62.57552,63.39609 94.35383,67.65826l12.88387,1.7281l-2.21523,-19.19039c-2.29968,-19.92216 -1.65292,-24.10554 3.72659,-24.10554c3.43987,0 106.12749,76.50481 109.06303,81.25475c2.22696,3.60321 -11.89679,16.9705 -62.46501,59.11911c-21.96555,18.30804 -42.4514,33.28745 -45.52422,33.28745c-4.91821,0 -5.33987,-2.65765 -3.52318,-22.20483z",
24
+ "turn_reverse": "m298.99997,168.62498c0,-51.43148 -133.41916,-93.12499 -297.99997,-93.12499l0,-74.49999l0,0c164.58081,0 297.99997,41.69347 297.99997,93.12499l0,74.49999c0,42.46484 -91.92749,79.55168 -223.49998,90.16789l0,37.25l-74.49999,-71.54289l74.49999,-77.45709l0,37.25l0,0c88.72033,-7.15858 161.96952,-26.67409 198.62153,-52.91789",
25
+ "u_turn": "m1.00059,299.00055l0,-167.62497l0,0c0,-72.00411 58.37087,-130.37499 130.375,-130.37499l0,0l0,0c34.57759,0 67.73898,13.7359 92.18906,38.18595c24.45006,24.45005 38.18593,57.61144 38.18593,92.18904l0,18.625l37.24997,0l-74.49995,74.50002l-74.50002,-74.50002l37.25,0l0,-18.625c0,-30.8589 -25.0161,-55.87498 -55.87498,-55.87498l0,0l0,0c-30.85892,0 -55.875,25.01608 -55.875,55.87498l0,167.62497z",
26
+ "up": "m1.49805,149.64304l148.50121,-148.00241l148.50121,148.00241l-74.25061,0l0,148.71457l-148.5012,0l0,-148.71457z"
27
+ }
28
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/basic.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ { "data": {
2
+ "heart": "m150,73c61,-175 300,0 0,225c-300,-225 -61,-400 0,-225z",
3
+ "frame": "m0,0l300,0l0,300l-300,0zm35,-265l0,230l230,0l0,-230z",
4
+ "donut": "m1,150l0,0c0,-82.29042 66.70958,-149 149,-149l0,0c39.51724,0 77.41599,15.69816 105.35889,43.64108c27.94293,27.94293 43.64111,65.84165 43.64111,105.35892l0,0c0,82.29041 -66.70958,149 -149,149l0,0c-82.29041,0 -149,-66.70959 -149,-149zm74.5,0l0,0c0,41.1452 33.35481,74.5 74.5,74.5c41.14522,0 74.5,-33.3548 74.5,-74.5c0,-41.1452 -33.3548,-74.5 -74.5,-74.5l0,0c-41.14519,0 -74.5,33.35481 -74.5,74.5z",
5
+ "triangle": "m1,280.375l149,-260.75l149,260.75z",
6
+ "right_triangle": "m1,299l0,-298l298,298z",
7
+ "diamond": "m1,150l149,-149l149,149l-149,149l-149,-149z",
8
+ "pentagon": "m1.00035,116.97758l148.99963,-108.4053l148.99998,108.4053l-56.91267,175.4042l-184.1741,0l-56.91284,-175.4042z",
9
+ "hexagon": "m1,149.99944l63.85715,-127.71428l170.28572,0l63.85713,127.71428l-63.85713,127.71428l-170.28572,0l-63.85715,-127.71428z",
10
+ "septagon1": "m0.99917,191.06511l29.51249,-127.7108l119.48833,-56.83673l119.48836,56.83673l29.51303,127.7108l-82.69087,102.41679l-132.62103,0l-82.69031,-102.41679z",
11
+ "heptagon": "m1,88.28171l87.28172,-87.28171l123.43653,0l87.28172,87.28171l0,123.43654l-87.28172,87.28172l-123.43653,0l-87.28172,-87.28172l0,-123.43654z",
12
+ "decagon": "m1,150.00093l28.45646,-88.40318l74.49956,-54.63682l92.08794,0l74.50002,54.63682l28.45599,88.40318l-28.45599,88.40318l-74.50002,54.63681l-92.08794,0l-74.49956,-54.63681l-28.45646,-88.40318z",
13
+ "dodecagon": "m1,110.07421l39.92579,-69.14842l69.14842,-39.92579l79.85159,0l69.14842,39.92579l39.92578,69.14842l0,79.85159l-39.92578,69.14842l-69.14842,39.92578l-79.85159,0l-69.14842,-39.92578l-39.92579,-69.14842l0,-79.85159z",
14
+ "star_points_5": "m1,116.58409l113.82668,0l35.17332,-108.13487l35.17334,108.13487l113.82666,0l-92.08755,66.83026l35.17514,108.13487l-92.08759,-66.83208l-92.08757,66.83208l35.17515,-108.13487l-92.08758,-66.83026z",
15
+ "trapezoid": "m1,299l55.875,-298l186.25001,0l55.87498,298z",
16
+ "arrow_up": "m1.49805,149.64304l148.50121,-148.00241l148.50121,148.00241l-74.25061,0l0,148.71457l-148.5012,0l0,-148.71457z",
17
+ "vertical_scrool": "m37.375,261.625l0,-242.9375l0,0c0,-10.32083 8.36669,-18.6875 18.6875,-18.6875l224.25,0c10.32083,0 18.6875,8.36667 18.6875,18.6875c0,10.32081 -8.36667,18.6875 -18.6875,18.6875l-18.6875,0l0,242.9375c0,10.32083 -8.36668,18.6875 -18.6875,18.6875l-224.25,0l0,0c-10.32083,0 -18.6875,-8.36667 -18.6875,-18.6875c0,-10.32083 8.36667,-18.6875 18.6875,-18.6875zm37.375,-261.625l0,0c10.32081,0 18.6875,8.36667 18.6875,18.6875c0,10.32081 -8.36669,18.6875 -18.6875,18.6875c-5.1604,0 -9.34375,-4.18335 -9.34375,-9.34375c0,-5.16041 4.18335,-9.34375 9.34375,-9.34375l18.6875,0m186.875,18.6875l-205.5625,0m-37.375,224.25l0,0c5.1604,0 9.34375,4.18335 9.34375,9.34375c0,5.1604 -4.18335,9.34375 -9.34375,9.34375l18.6875,0m-18.6875,18.6875l0,0c10.32081,0 18.6875,-8.36667 18.6875,-18.6875l0,-18.6875",
18
+ "smiley": "m68.49886,214.78838q81.06408,55.67332 161.93891,0m-144.36983,-109.9558c0,-8.60432 6.97517,-15.57949 15.57948,-15.57949c8.60431,0 15.57948,6.97517 15.57948,15.57949c0,8.60431 -6.97517,15.57947 -15.57948,15.57947c-8.60431,0 -15.57948,-6.97516 -15.57948,-15.57947m95.83109,0c0,-8.60432 6.97517,-15.57949 15.57948,-15.57949c8.60431,0 15.57947,6.97517 15.57947,15.57949c0,8.60431 -6.97516,15.57947 -15.57947,15.57947c-8.60429,0 -15.57948,-6.97516 -15.57948,-15.57947m-181.89903,44.73038l0,0c0,-82.60133 66.96162,-149.56296 149.56296,-149.56296c82.60135,0 149.56296,66.96162 149.56296,149.56296c0,82.60135 -66.96161,149.56296 -149.56296,149.56296c-82.60133,0 -149.56296,-66.96161 -149.56296,-149.56296zm0,0l0,0c0,-82.60133 66.96162,-149.56296 149.56296,-149.56296c82.60135,0 149.56296,66.96162 149.56296,149.56296c0,82.60135 -66.96161,149.56296 -149.56296,149.56296c-82.60133,0 -149.56296,-66.96161 -149.56296,-149.56296z",
19
+ "left_braket": "m174.24565,298.5c-13.39009,0 -24.24489,-1.80908 -24.24489,-4.04065l0,-140.4187c0,-2.23158 -10.85481,-4.04065 -24.2449,-4.04065l0,0c13.39009,0 24.2449,-1.80907 24.2449,-4.04065l0,-140.4187l0,0c0,-2.23159 10.8548,-4.04066 24.24489,-4.04066",
20
+ "uml_actor": "m40.5,100l219,0m-108.99991,94.00006l107,105m-107.00009,-106.00006l-100,106m99.5,-231l0,125m33.24219,-158.75781c0,18.35916 -14.88303,33.24219 -33.24219,33.24219c-18.35916,0 -33.2422,-14.88303 -33.2422,-33.24219c0.00002,-18.35915 14.88304,-33.24219 33.2422,-33.24219c18.35916,0 33.24219,14.88304 33.24219,33.24219z",
21
+ "dialog_balloon_1": "m0.99786,35.96579l0,0c0,-19.31077 15.28761,-34.96524 34.14583,-34.96524l15.52084,0l0,0l74.50001,0l139.68748,0c9.05606,0 17.74118,3.68382 24.14478,10.24108c6.40356,6.55726 10.00107,15.45081 10.00107,24.72416l0,87.41311l0,0l0,52.44785l0,0c0,19.31078 -15.2876,34.96524 -34.14584,34.96524l-139.68748,0l-97.32507,88.90848l22.82506,-88.90848l-15.52084,0c-18.85822,0 -34.14583,-15.65446 -34.14583,-34.96524l0,0l0,-52.44785l0,0z",
22
+ "cloud": "m182.05086,34.31005c-0.64743,0.02048 -1.27309,0.07504 -1.92319,0.13979c-10.40161,1.03605 -19.58215,7.63722 -24.24597,17.4734l-2.47269,7.44367c0.53346,-2.57959 1.35258,-5.08134 2.47269,-7.44367c-8.31731,-8.61741 -19.99149,-12.59487 -31.52664,-10.72866c-11.53516,1.8662 -21.55294,9.3505 -27.02773,20.19925c-15.45544,-9.51897 -34.72095,-8.94245 -49.62526,1.50272c-14.90431,10.44516 -22.84828,28.93916 -20.43393,47.59753l1.57977,7.58346c-0.71388,-2.48442 -1.24701,-5.01186 -1.57977,-7.58346l-0.2404,0.69894c-12.95573,1.4119 -23.58103,11.46413 -26.34088,24.91708c-2.75985,13.45294 2.9789,27.25658 14.21789,34.21291l17.54914,4.26352c-6.1277,0.50439 -12.24542,-0.9808 -17.54914,-4.26352c-8.66903,9.71078 -10.6639,24.08736 -4.94535,35.96027c5.71854,11.87289 17.93128,18.70935 30.53069,17.15887l7.65843,-2.02692c-2.46413,1.0314 -5.02329,1.70264 -7.65843,2.02692c7.15259,13.16728 19.01251,22.77237 32.93468,26.5945c13.92217,3.82214 28.70987,1.56322 41.03957,-6.25546c10.05858,15.86252 27.91113,24.19412 45.81322,21.38742c17.90208,-2.8067 32.66954,-16.26563 37.91438,-34.52742l1.82016,-10.20447c-0.27254,3.46677 -0.86394,6.87508 -1.82016,10.20447c12.31329,8.07489 27.80199,8.52994 40.52443,1.18819c12.72244,-7.34175 20.6609,-21.34155 20.77736,-36.58929l-4.56108,-22.7823l-17.96776,-15.41455c13.89359,8.70317 22.6528,21.96329 22.52884,38.19685c16.5202,0.17313 30.55292,-13.98268 36.84976,-30.22897c6.29684,-16.24631 3.91486,-34.76801 -6.2504,-48.68089c4.21637,-10.35873 3.96622,-22.14172 -0.68683,-32.29084c-4.65308,-10.14912 -13.23602,-17.69244 -23.55914,-20.65356c-2.31018,-13.45141 -11.83276,-24.27162 -24.41768,-27.81765c-12.58492,-3.54603 -25.98557,0.82654 -34.41142,11.25287l-5.11707,8.63186c1.30753,-3.12148 3.01521,-6.03101 5.11707,-8.63186c-5.93959,-8.19432 -15.2556,-12.8181 -24.96718,-12.51096z",
23
+ "cylinder": "m299.0007,83.77844c0,18.28676 -66.70958,33.11111 -149.00002,33.11111m149.00002,-33.11111l0,0c0,18.28676 -66.70958,33.11111 -149.00002,33.11111c-82.29041,0 -148.99997,-14.82432 -148.99997,-33.11111m0,0l0,0c0,-18.28674 66.70956,-33.1111 148.99997,-33.1111c82.29044,0 149.00002,14.82436 149.00002,33.1111l0,132.44449c0,18.28674 -66.70958,33.11105 -149.00002,33.11105c-82.29041,0 -148.99997,-14.82431 -148.99997,-33.11105z",
24
+ "arrow_u_turn": "m1.00059,299.00055l0,-167.62497l0,0c0,-72.00411 58.37087,-130.37499 130.375,-130.37499l0,0l0,0c34.57759,0 67.73898,13.7359 92.18906,38.18595c24.45006,24.45005 38.18593,57.61144 38.18593,92.18904l0,18.625l37.24997,0l-74.49995,74.50002l-74.50002,-74.50002l37.25,0l0,-18.625c0,-30.8589 -25.0161,-55.87498 -55.87498,-55.87498l0,0l0,0c-30.85892,0 -55.875,25.01608 -55.875,55.87498l0,167.62497z",
25
+ "arrow_left_up": "m0.99865,224.5l74.50004,-74.5l0,37.25l111.74991,0l0,-111.75l-37.25,0l74.5,-74.5l74.5,74.5l-37.25,0l0,186.25l-186.24989,0l0,37.25l-74.50005,-74.5z",
26
+ "maximize": "m1.00037,150.34581l55.30305,-55.30267l0,27.65093l22.17356,0l0,-44.21833l44.21825,0l0,-22.17357l-27.65095,0l55.30267,-55.30292l55.3035,55.30292l-27.65175,0l0,22.17357l44.21835,0l0,44.21833l22.17357,0l0,-27.65093l55.30345,55.30267l-55.30345,55.3035l0,-27.65175l-22.17357,0l0,44.21834l-44.21835,0l0,22.17355l27.65175,0l-55.3035,55.30348l-55.30267,-55.30348l27.65095,0l0,-22.17355l-44.21825,0l0,-44.21834l-22.17356,0l0,27.65175l-55.30305,-55.3035z",
27
+ "cross": "m0.99844,99.71339l98.71494,0l0,-98.71495l101.26279,0l0,98.71495l98.71495,0l0,101.2628l-98.71495,0l0,98.71494l-101.26279,0l0,-98.71494l-98.71494,0z",
28
+ "plaque": "m-0.00197,49.94376l0,0c27.5829,0 49.94327,-22.36036 49.94327,-49.94327l199.76709,0l0,0c0,27.5829 22.36037,49.94327 49.94325,49.94327l0,199.7671l0,0c-27.58289,0 -49.94325,22.36034 -49.94325,49.94325l-199.76709,0c0,-27.58292 -22.36037,-49.94325 -49.94327,-49.94325z",
29
+ "page": "m249.3298,298.99744l9.9335,-39.73413l39.73413,-9.93355l-49.66763,49.66768l-248.33237,0l0,-298.00001l298.00001,0l0,248.33234"
30
+ }
31
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/categories.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"categories" : {
2
+ "basic": "Basic",
3
+ "object": "Objects",
4
+ "symbol": "Symbols",
5
+ "arrow": "Arrows",
6
+ "flowchart": "Flowchart",
7
+ "animal": "Animals",
8
+ "game": "Cards & Chess",
9
+ "dialog_balloon": "Balloons",
10
+ "math": "Mathematical",
11
+ "music": "Music",
12
+ "misc": "Miscellaneous"
13
+ }
14
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/dialog_balloon.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "1": "m0.99786,35.96579l0,0c0,-19.31077 15.28761,-34.96524 34.14583,-34.96524l15.52084,0l0,0l74.50001,0l139.68748,0c9.05606,0 17.74118,3.68382 24.14478,10.24108c6.40356,6.55726 10.00107,15.45081 10.00107,24.72416l0,87.41311l0,0l0,52.44785l0,0c0,19.31078 -15.2876,34.96524 -34.14584,34.96524l-139.68748,0l-97.32507,88.90848l22.82506,-88.90848l-15.52084,0c-18.85822,0 -34.14583,-15.65446 -34.14583,-34.96524l0,0l0,-52.44785l0,0z",
3
+ "4": "m1,1l49.66667,0l0,0l74.5,0l173.83334,0l0,115.8889l0,0l0,49.66666l0,33.11111l-173.83334,0l-123.68433,97.37498l49.18433,-97.37498l-49.66667,0l0,-33.11111l0,-49.66666l0,0z",
4
+ "5": "m3.88165,296.34811l58.64952,-105.30074l0,0c-62.13446,-31.76456 -79.86445,-91.6022 -40.96117,-138.24044c38.90255,-46.63797 121.70818,-64.81269 191.29914,-41.98796c69.59094,22.8246 103.19446,79.17835 77.63046,130.19172c-25.56265,51.01335 -101.92546,79.99094 -176.41714,66.94487l-110.20081,88.39255z",
5
+ "6": "m4.33333,266.6662c0,-1.854 2.23757,-3.35571 5,-3.35571c2.76243,0 5,1.50171 5,3.35571c0,1.85394 -2.23757,3.35565 -5,3.35565c-2.76243,0 -5,-1.50171 -5,-3.35565zm10.25,-24.11072c0,-4.6351 5.59392,-8.38943 12.50001,-8.38943c6.90608,0 12.5,3.75433 12.5,8.38943c0,4.63489 -5.59392,8.38928 -12.5,8.38928c-6.90609,0 -12.50001,-3.75433 -12.50001,-8.38928zm23.75001,-36.55524c0,-12.81482 19.46685,-23.19473 43.50002,-23.19473c24.0331,0 43.49996,10.37991 43.49996,23.19473c0,12.81473 -19.46686,23.19455 -43.49996,23.19455c-24.03317,0 -43.50002,-10.37982 -43.50002,-23.19455zm-37.33334,-104.99994c0,-55.2486 66.67956,-100 149,-100c82.32047,0 149,44.7514 149,100c0,55.24866 -66.67953,100 -149,100c-82.32044,0 -149,-44.75134 -149,-100z",
6
+ "scream": "m299.67374,132.67729l-35.72574,1.97192l-9.55817,48.04506l-31.60561,-11.61551l-45.83566,36.86661l-17.45096,-21.51509l-146.98414,92.00807l81.6677,-102.60858l-67.83573,-13.33963l21.22697,-19.84731l-46.57336,-36.42733l33.47025,-8.80944l-10.52427,-47.94958l35.08694,5.02536l28.86619,-44.2482l25.5638,17.26465l59.09183,-26.49832l7.92432,24.02253l70.55626,-0.33542l-12.23108,23.15343l59.61954,25.93398l-28.50317,14.93327l29.75409,43.96953z",
7
+ "thought": "m12,1c-6.094,0 -11,4.906 -11,11l0,147c0,6.09399 4.906,11 11,11l49.15625,0c-2.03143,2.32526 -3.15625,4.84886 -3.15625,7.5c0,11.32597 20.36188,20.5 45.5,20.5c25.13812,0 45.5,-9.17403 45.5,-20.5c0,-2.65114 -1.12482,-5.17474 -3.15625,-7.5l142.15625,0c6.09399,0 11,-4.90601 11,-11l0,-147c0,-6.094 -4.90601,-11 -11,-11l-276,0zm54,199c-13.81215,0 -25,5.37016 -25,12c0,6.62984 11.18785,12 25,12c13.81216,0 25,-5.37016 25,-12c0,-6.62984 -11.18784,-12 -25,-12zm-25,30c-7.73481,0 -14,4.02762 -14,9c0,4.97238 6.26519,9 14,9c7.73481,0 14,-4.02762 14,-9c0,-4.97238 -6.26519,-9 -14,-9zm-24,22c-4.97238,0 -9,2.23756 -9,5c0,2.76242 4.02762,5 9,5c4.97238,0 9,-2.23758 9,-5c0,-2.76244 -4.02762,-5 -9,-5z"
8
+ }
9
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/electronics.json ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "capacitor": "m292.103577,149.999374l-117.073944,-0.445328m-167.175035,0.445328l116.628588,0m0.44532,-72.035179l11.364601,0l0,144.640358l-11.364601,0l0,-144.640358zm38.244209,-0.569977l11.364594,0l0,144.640297l-11.364594,0l0,-144.640297zm-162.171733,68.98156l6.905184,0l0,6.905212l-6.905184,0l0,-6.905212zm291.101741,0.325241l6.905182,0l0,6.905212l-6.905182,0l0,-6.905212z",
3
+ "diode": "m180.228439,90.39769l21.70816,0l0,117.211075l-21.70816,0l0,-117.211075zm23.345947,59.602753l88.556381,0m-284.3409,-1.995804l85.541058,0l0,-65.011185l87.251961,66.722031l-87.250778,67.291931l0,-68.720001m-92.331572,-3.917542l6.811423,0l0,6.811447l-6.811423,0l0,-6.811447zm291.20439,2.03891l6.811401,0l0,6.811462l-6.811401,0l0,-6.811462z",
4
+ "gate_and": "m7.454795,178.082489l67.605378,0m-67.605378,-54.850876l67.605393,0.000015m-0.155602,-30.065033l0,113.750015c194.70015,10.208389 199.234482,-124.687454 0,-113.750015zm217.618942,56.662766l-70.312149,0m-221.397258,-29.817062l6.68369,0l0,6.683685l-6.68369,0l0,-6.683685zm-0.314375,54.532364l6.68369,0l0,6.683685l-6.68369,0l0,-6.683685zm291.95109,-27.976547l6.683685,0l0,6.683685l-6.683685,0l0,-6.683685z",
5
+ "gate_inverter": "m292.351624,149.998962l-70.506393,0m-0.189026,0a19.883057,19.883057 0 1 1-39.766113,0a19.883057,19.883057 0 1 139.766113,0zm-213.972072,2.405243l69.321826,0l0,-61.05407l101.250404,58.4571l-101.19664,58.840652l0,-56.176727m-76.061115,-3.699677l6.780182,0l0,6.779526l-6.780182,0l0,-6.779526zm291.428455,-2.135864l6.780518,0l0,6.780548l-6.780518,0l0,-6.780548z",
6
+ "gate_nand": "m8.042537,173.038879l60.699101,-0.672531m-60.699101,-49.879471l61.371335,0m-0.785973,-24.868042l0,104.835098c179.441437,9.408417 183.619827,-114.915443 0,-104.835098zm223.921448,50.643158l-64.591507,0m0.637238,0a11.937837,11.937837 0 1 1-23.87648,0a11.937837,11.937837 0 1 123.87648,0zm-227.445681,-29.373505l6.739111,0l0,6.739143l-6.739111,0l0,-6.739143zm-0.150617,50.613495l6.73911,0l0,6.739151l-6.73911,0l0,-6.739151zm291.47287,-24.654327l6.739105,0l0,6.739151l-6.739105,0l0,-6.739151z",
7
+ "gate_nor": "m292.610077,150.214462l-69.483139,-0.215668m0.147217,0.215668a12.942393,12.942393 0 1 1-25.884689,0a12.942393,12.942393 0 1 125.884689,0zm-215.590108,29.264374l63.620397,0m-63.620397,-54.805801l65.561368,-0.431335m-20.75433,-33.139984c129.343479,0 143.580387,58.405624 143.580387,58.405624l-0.347778,0c-18.514755,69.097885 -143.580379,58.057999 -143.580379,58.057999c59.7962,-58.405655 0.347775,-116.463623 0.347775,-116.463623zm-51.490408,30.117874l6.644974,0l0,6.645012l-6.644974,0l0,-6.645012zm0.003831,54.852463l6.644983,0l0,6.64502l-6.644983,0l0,-6.64502zm291.530706,-29.571609l6.644989,0l0,6.64502l-6.644989,0l0,-6.64502z",
8
+ "gate_or": "m7.681484,183.57515l71.7616,0m-71.7616,-60.67144l73.093784,-0.000015m-23.092442,-37.784157c143.186604,0 158.947315,64.65654 158.947315,64.65654l75.817307,0l-76.202316,0c-20.49614,76.493118 -158.94717,64.271667 -158.94717,64.271667c66.195942,-64.656525 0.385136,-128.928207 0.385136,-128.928207zm-56.684011,33.939781l6.677925,0l0,6.677956l-6.677925,0l0,-6.677956zm291.510831,27.410866l6.677948,0l0,6.677948l-6.677948,0l0,-6.677948zm-291.404498,33.607208l6.677927,0l0,6.677917l-6.677927,0l0,-6.677917z",
9
+ "gate_xor": "m80.450493,91.498093c129.22271,0 143.446312,58.351089 143.446312,58.351089l68.423569,0l-68.770889,0c-18.497391,69.033295 -143.446304,58.003708 -143.446304,58.003708c59.740372,-58.351089 0.347511,-116.354797 0.347511,-116.354797zm-22.576313,4.515259c43.415966,54.530457 0,108.018921 0,108.018921m-50.015199,-26.867355l63.560987,0m-63.560987,-54.7547l63.560987,0m-70.418914,-3.722206l6.82584,0l0,6.825867l-6.82584,0l0,-6.825867zm0.057968,54.832268l6.825839,0l0,6.825867l-6.825839,0l0,-6.825867zm291.170364,-27.096024l6.825836,0l0,6.825867l-6.825836,0l0,-6.825867z",
10
+ "inductor": "m7.783882,182.663147l59.679306,0c0,0 -30.829735,-67.744125 15.054253,-68.81945c42.462807,-0.995041 37.635605,69.357201 24.194321,69.357201c-13.441284,0 -12.903625,-68.81955 22.043701,-68.81955c34.947357,0 40.323868,68.819366 20.968399,68.819366c-19.355423,0 -11.828323,-68.819366 22.58139,-68.819366c34.409683,0 41.399155,68.81955 19.893112,68.81955c-21.506073,0 -9.67775,-68.81955 24.19429,-68.81955c33.87207,0 29.570831,68.819366 18.280151,68.819366c-11.290665,0 57.528732,-0.537659 57.528732,-0.537659m-291.202282,-3.571106l6.772959,0l0,6.772995l-6.772959,0l0,-6.772995zm291.221844,0.301132l6.772949,0l0,6.772995l-6.772949,0l0,-6.772995z",
11
+ "junction_1": "m0.99971,146.64024l6.71786,0l0,6.7179l-6.71786,0l0,-6.7179zm7.44043,3.36145l283.11684,0m0.72388,-3.35979l6.71786,0l0,6.7179l-6.71786,0l0,-6.7179zm-145.6413,152.35712l0,-6.71786l6.7179,0l0,6.71786l-6.7179,0zm3.36145,-7.44043l0,-283.11688m-3.35944,-0.72348l0,-6.71786l6.71793,0l0,6.71786l-6.71793,0z",
12
+ "junction_2": "m0.99971,146.64024l6.71786,0l0,6.7179l-6.71786,0l0,-6.7179zm7.44043,3.36145l121.77922,0c0,-29.3896 38.77921,-31.3896 38.77921,0l122.55841,0m0.72391,-3.35979l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm-145.6413,152.35712l0,-6.71786l6.7179,0l0,6.71786l-6.7179,0zm3.36145,-7.44043l0,-283.11688m-3.35945,-0.72348l0,-6.71786l6.71794,0l0,6.71786l-6.71794,0z",
13
+ "junction_3": "m143.58945,150.00009c0,-3.49425 2.83032,-6.32455 6.32455,-6.32455c3.49423,0 6.32455,2.83031 6.32455,6.32455c0,3.49423 -2.83032,6.32455 -6.32455,6.32455c-3.49423,0 -6.32455,-2.83032 -6.32455,-6.32455zm-142.59006,-3.35985l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm7.44043,3.36145l283.11682,0m0.72394,-3.35979l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm-145.6413,152.35712l0,-6.71786l6.7179,0l0,6.71786l-6.7179,0zm3.36145,-7.44043l0,-283.11688m-3.35947,-0.72348l0,-6.71786l6.71796,0l0,6.71786l-6.71796,0z",
14
+ "junction_tee": "m149.914,143.67554zm-148.91461,2.96471l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm7.44043,3.36145l283.11682,0m0.72394,-3.35979l6.71783,0l0,6.7179l-6.71783,0l0,-6.7179zm-141.61324,2.91669l-0.66661,-141.11688m-3.35947,-0.72348l0,-6.71786l6.71796,0l0,6.71786l-6.71796,0z",
15
+ "resistor": "m7.868202,151.620193l82.343018,0l11.393402,-32.392784l18.643684,62.356071l20.71521,-63.165901l18.12587,62.356071l19.679459,-61.546242l19.679443,61.951149l10.875488,-30.368195l82.860886,0m-291.18655,-2.813812l6.844604,0l0,6.844635l-6.844604,0l0,-6.844635zm291.194058,-0.465622l6.844604,0l0,6.844635l-6.844604,0l0,-6.844635z",
16
+ "source_AC_h": "m7.841724,149.837311l67.250737,0m149.928139,0.389923l67.250793,0m-67.653702,-0.227753a74.615135,74.615135 0 1 1-149.230286,0a74.615135,74.615135 0 1 1149.230286,0zm-126.528297,-1.996506c49.250984,-78.535637 61.230949,87.853104 103.826454,2.662094m-200.917796,-4.522659l6.717863,0l0,6.717896l-6.717863,0l0,-6.717896zm291.36706,0.642181l6.717865,0l0,6.717896l-6.717865,0l0,-6.717896z",
17
+ "source_DC": "m221.862747,94.98175l0,31.813873m-21.510544,-15.906944l43.020996,0m48.613678,39.407722l-121.593582,0m-162.447085,0l115.809275,0m1.040596,-37.757935l7.284134,0l0,75.963058l-7.284134,0l0,-75.963058zm37.461227,-41.623596l7.284134,0l0,158.169647l-7.284134,0l0,-158.169647zm-161.255614,75.613235l6.954941,0l0,6.954971l-6.954941,0l0,-6.954971zm291.012953,0.175003l6.954956,0l0,6.954971l-6.954956,0l0,-6.954971z",
18
+ "speaker": "m21.35352,187l77,0m-83.70878,3.11937l0,-6.71786l6.71793,0l0,6.71786l-6.71793,0zm6.70878,-76.11937l77,0m-83.70878,3.11937l0,-6.71786l6.71793,0l0,6.71786l-6.71793,0zm155.70878,-32.61937l115,-83l0,296.5l-115,-82.5l0,-131zm-70.99999,0l70.99999,0l0,131l-70.99999,0l0,-131z"
19
+ }
20
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/flowchart.json ADDED
@@ -0,0 +1,25 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "manual_input": "m1,103.64394l298,-30.9037l0,154.51852l-298,0z",
3
+ "callout_left_right": "m1,150.0006l58.10869,-58.1087l0,29.05434l46.81141,0l0,-87.16304l87.1598,0l0,87.16304l46.8114,0l0,-29.05434l58.1087,58.1087l-58.1087,58.10869l0,-29.05435l-46.8114,0l0,87.16306l-87.1598,0l0,-87.16306l-46.81141,0l0,29.05435l-58.10869,-58.10869z",
4
+ "card": "m1,60.5l59.5,-59.5l238.5,0l0,298l-298,0l0,-238.5z",
5
+ "collate": "m0,1l299,0l-149.5,149l149.5,149l-299.00031,0l149.50031,-149l-149.5,-149z",
6
+ "connector_offpage": "m0.99775,0.99775l297.99984,0l0,238.39982l-149.00002,59.60002l-148.99999,-59.60002l0.00017,-238.39982z",
7
+ "data_stored": "m50.83397,0.99813l249.16667,0c-27.52219,0 -49.83333,66.78392 -49.83333,149.16604c0,82.38213 22.31114,149.16603 49.83333,149.16603l-249.16667,0l0,0c-27.52219,0 -49.83333,-66.78391 -49.83333,-149.16603c0,-82.38212 22.31114,-149.16604 49.83333,-149.16604z",
8
+ "data": "m1.00038,249.33351l59.60001,-198.66668l238.40001,0l-59.60001,198.66668z",
9
+ "decision": "m0.99837,149.99953l148.79352,-102.86476l148.79387,102.86476l-148.79387,102.86476l-148.79352,-102.86476z",
10
+ "delay": "m1,1l149,0l0,0c82.29044,0 149,66.70957 149,149c0,82.29044 -66.70956,149 -149,149l-149,0z",
11
+ "display": "m1,149.99924l49.66672,-97.42307l198.66612,0c27.43034,0 49.66716,43.61774 49.66716,97.42307c0,53.80476 -22.23682,97.42308 -49.66716,97.42308l-198.66612,0l-49.66672,-97.42308z",
12
+ "document_multiple": "m1.00054,45.02563l253.99998,0l0,206.43799c-126.99997,0 -126.99997,78.65668 -253.99998,33.96539zm21.49946,-240.92902l0,-19.5l255,0l0,207l-22.5,1m-210.5,-207l0,-25l255,0l0,207l-21.5,0",
13
+ "document": "m1.00064,1.00098l298,0l0,242.19891c-149,0 -149,92.28223 -298,39.84915z",
14
+ "filter1": "m75.5,150l74.5,-149l74.5,149l-74.5,149l-74.5,-149zm0,0l149,0",
15
+ "or_junction": "m0.99865,149.9991l0,0c0,-82.29043 66.70957,-149 149.00001,-149l0,0c39.51724,0 77.41597,15.69817 105.3589,43.64109c27.94292,27.94292 43.64107,65.84166 43.64107,105.35891l0,0c0,82.29041 -66.70956,148.99998 -148.99997,148.99998l0,0c-82.29044,0 -149.00001,-66.70958 -149.00001,-148.99998zm149.00001,-149l0,297.99998m-149.00001,-148.99998l297.99998,0",
16
+ "preparation": "m1.00063,150.00006l59.58485,-82.24058l178.75446,0l59.58505,82.24058l-59.58505,82.24086l-178.75446,0l-59.58485,-82.24086z",
17
+ "process": "m1,51.87891l298,0l0,196.24391l-298,0zm37.25,-196.24391l0,196.24391m223.5,-196.24391l0,196.24391",
18
+ "punched_tape": "m1.00047,30.80047l0,0c0,16.45808 33.35479,29.8 74.50001,29.8c41.1452,0 74.49998,-13.34192 74.49998,-29.8l0,0c0,-16.45809 33.3548,-29.8 74.50002,-29.8c41.14522,0 74.49998,13.34192 74.49998,29.8l0,238.4c0,-16.45808 -33.35477,-29.80002 -74.49998,-29.80002c-41.14522,0 -74.50002,13.34193 -74.50002,29.80002c0,16.45807 -33.35478,29.79999 -74.49998,29.79999c-41.14522,0 -74.50001,-13.34192 -74.50001,-29.79999z",
19
+ "sequential_data_storage": "m150,299l0,0c-82.29043,0 -149,-66.70955 -149,-149l0,0c0,-82.29043 66.70957,-149 149,-149l0,0c39.51726,0 77.41599,15.69817 105.3589,43.64108c27.94292,27.94293 43.6411,65.84165 43.6411,105.35892l0,0c0,39.51726 -15.69818,77.41599 -43.6411,105.3589l43.6411,0l0,43.6411z",
20
+ "sort": "m-0.0038,150.00102l299.00334,0m-299.00334,-0.00002l149.50209,-150.00059l149.50131,150.00059l-149.50131,150.00018l-149.50209,-150.00018z",
21
+ "storage_internal": "m1,1l297.99997,0l0,297.99997l-297.99997,0zm37.25,-297.99997l0,297.99997m-37.25,-260.74997l297.99997,0",
22
+ "terminal": "m48.94167,99.12235l202.11729,0l0,0c26.47794,0 47.9425,22.7794 47.9425,50.8792c0,28.09979 -21.46457,50.87918 -47.9425,50.87918l-202.11729,0l0,0c-26.47791,0 -47.9425,-22.77939 -47.9425,-50.87918c0,-28.09981 21.46459,-50.8792 47.9425,-50.8792z",
23
+ "wave": "m1,37.20809c99.33355,-125.42461 198.66708,125.4246 298.00061,0l0,225.76426c-99.33353,125.42462 -198.66706,-125.42459 -298.00061,0z"
24
+ }
25
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/game.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "cards_clubs": "m107.57338,275.50809c15.10838,-15.77673 27.93053,-34.56763 33.34637,-55.90254c-16.19595,12.31328 -31.05006,32.11845 -53.64258,31.36813c-17.05595,0.97891 -37.37346,0.99548 -49.37947,-13.26945c-26.83,-21.5751 -34.03729,-64.69673 -12.00568,-92.15404c15.07669,-19.82526 41.4039,-28.23172 65.56467,-25.25816c15.22319,-6.45935 -2.97749,-22.81502 -4.80785,-33.02267c-11.33012,-37.02704 15.36169,-81.44029 54.60988,-85.70572c28.15103,-4.0415 55.67099,14.18231 69.44571,37.83293c7.4856,16.54877 3.58533,35.33045 1.83887,52.49866c-5.88113,8.62766 -20.94342,29.50022 0.55099,27.85616c21.2518,-0.33633 43.69397,5.90277 57.70761,22.8026c20.49747,22.76067 22.37766,60.37286 1.7551,83.63007c-10.90869,14.16582 -27.2782,25.50356 -45.80551,24.87234c-18.13391,1.83067 -37.77023,-2.10338 -50.62924,-15.92061c-5.48438,-3.84309 -18.92297,-18.36311 -18.91833,-15.17883c13.43222,27.98354 28.62112,57.04413 55.49167,74.38477c9.60062,7.71954 -14.62323,2.41226 -20.4874,3.98563c-35.53012,0.0314 -71.06009,0.06342 -106.59021,0.09497c7.31842,-7.63818 14.6373,-15.27603 21.9554,-22.91422z",
3
+ "cards_diamonds": "m34.92883,153.9321c25.56111,-56.62673 71.64644,-104.95768 110.85236,-152.92286c45.60773,30.78102 85.01025,98.49872 119.29071,145.66264c-30.57587,54.55344 -74.58923,104.23671 -114.23947,153.1615c-42.74368,-44.7616 -79.29648,-95.90262 -115.90359,-145.90128z",
4
+ "cards_hearts": "m106.76112,245.09012c-77.74644,-57.80281 -105.54389,-94.36783 -105.76917,-139.13003c-0.20544,-40.80623 34.10907,-80.19025 69.67002,-79.96313c17.75755,0.11364 55.84863,15.13257 69.33681,27.33919c6.79614,6.1504 10.01512,5.54391 25.146,-4.73779c41.17987,-27.98239 81.39243,-28.56973 107.43585,-1.56907c41.62292,43.15273 34.04501,94.68497 -21.78392,148.13782c-29.68187,28.41864 -94.50056,78.8349 -101.35565,78.8349c-2.08591,0 -21.29187,-13.01038 -42.67994,-28.9119z",
5
+ "cards_spades": "m92.84135,287.13989c18.3756,-17.73279 31.81261,-40.18849 43.07161,-62.94162c6.87787,-9.075 0.36623,-17.01425 -9.00183,-9.3188c-24.07579,16.07495 -56.84848,21.58751 -82.91551,6.92194c-29.46779,-15.23779 -42.75618,-51.47162 -36.07021,-83.04361c4.23415,-31.99545 27.52112,-57.07481 52.80524,-75.08997c29.04437,-20.7771 60.40868,-38.61331 86.95355,-62.67224c11.08365,0.22219 19.42508,17.61496 31.35349,22.21747c31.67316,23.59131 69.20874,40.95643 94.15042,72.50237c12.60098,17.9752 19.78281,40.10946 20.58459,61.98948c-3.83926,29.67093 -21.5314,60.96272 -52.04169,69.41241c-26.37521,7.98038 -53.51129,-2.14038 -76.49545,-15.01619c-2.80743,-0.60251 -13.10471,-8.7151 -9.02362,-2.41039c13.74066,28.19803 28.79581,56.19804 50.59952,79.09325c1.28156,2.89285 11.33243,9.75613 5.98334,9.64709c-44.76935,0 -89.53856,0 -134.30794,0c4.78471,-3.7637 9.5696,-7.5275 14.35449,-11.2912z",
6
+ "chess_bishop": "m61.92021,296.91153c0.43627,-9.82327 20.22808,-4.98053 9.33225,-14.55078c3.63447,-11.80536 14.91982,-19.66748 21.741,-29.79436c5.22913,-8.62125 17.00826,-19.01086 11.31252,-29.67047c-10.46021,-5.58662 -7.49181,-18.00824 5.30239,-15.28014c8.2272,-7.58801 8.79371,-20.26302 11.57766,-30.59467c2.52694,-12.36574 4.07327,-24.95554 3.66998,-37.5896c-14.99698,0.03661 -30.27584,-0.68196 -44.73978,-4.74928c2.8019,-11.20453 20.86148,-8.79659 28.26084,-15.67982c-6.87532,-6.18329 13.89957,-5.56496 8.46355,-15.34472c-0.37302,-11.20033 -9.19685,-14.44135 -16.26585,-22.60765c-9.44371,-12.76132 5.36173,-25.51221 13.58463,-34.13964c9.16566,-9.37672 19.64847,-19.36716 22.45389,-32.62941c-3.77451,-3.10155 -12.3967,-7.54239 -3.59866,-11.78228c12.01596,-2.03703 24.83499,-2.28521 36.61118,1.05654c7.81644,7.61585 -11.93045,8.03119 -3.43417,17.63365c10.07373,12.07176 -3.50795,18.30174 -11.52704,25.27969c-4.66763,5.89621 -18.59915,13.67189 -16.20224,19.78346c13.63968,-0.47554 21.5871,-13.67976 31.31615,-21.49704c10.67101,-13.68708 20.99446,8.43092 27.81822,15.94714c8.40642,11.39094 2.60674,26.70086 -10.05556,31.59287c-6.28001,6.46729 -10.44972,24.88914 4.57674,22.14657c8.72636,3.17196 -8.52979,3.51371 1.37608,6.446c6.58298,2.52787 32.25821,8.30554 18.1142,16.0547c-12.00471,2.71368 -24.40523,2.6017 -36.6002,1.50584c-0.75204,18.52477 1.89484,36.97644 7.35446,54.6958c1.35513,5.04123 2.71027,10.08244 4.06541,15.12361c6.52129,-0.129 19.98573,-1.55484 13.76321,9.18311c-13.08994,7.21928 -5.0789,22.41203 2.17738,31.05447c8.99446,11.37192 22.40833,22.01788 22.98288,37.58719c3.59734,2.14404 15.56946,8.03415 12.10645,12.64545c-57.30759,-0.2937 -114.6481,0.84897 -171.9265,-1.25046l-1.98901,-0.18246l-1.62205,-0.39337l0,0z",
7
+ "chess_king": "m75.6993,294.60599c-8.08068,-9.43317 12.65705,-9.68567 9.39906,-20.14252c5.95673,-13.85672 21.44485,-22.24414 23.72572,-37.99019c-6.28166,-4.37628 -9.89445,-14.96013 2.0899,-13.70361c8.78859,-6.61539 7.6902,-20.15297 10.33321,-30.0876c2.47588,-16.03471 3.03656,-32.26408 4.10001,-48.43053c-10.16894,-0.78108 -20.58942,-0.23701 -30.49778,-2.84268c0.28501,-10.75136 20.44619,-6.62604 21.3638,-16.77121c14.65907,-0.2649 0.81196,-22.15992 -5.15776,-27.38371c-7.64118,-8.81222 -12.7306,-22.72323 -6.92168,-33.60618c8.30865,-5.52043 27.09519,-2.1601 26.24604,-16.66769c-5.65058,-3.22095 -12.82484,-1.17552 -19.15805,-1.74514c0.38948,-6.7649 0.77895,-13.52979 1.16843,-20.29469c8.37558,-0.64424 16.75118,-1.28853 25.12676,-1.93283c-4.25133,-4.41846 -10.61392,-7.6702 -12.20608,-13.92034c5.41558,-8.90246 18.46751,-8.1166 27.81776,-8.03243c9.09207,-0.62713 25.66919,5.43749 13.27614,15.20592c-1.00447,2.39887 -10.78024,8.36352 -4.73895,7.71326c7.73515,0 15.47028,0 23.20541,0c-0.02223,6.6133 -0.20001,13.29232 1.35312,19.76423c-5.90448,4.39723 -25.05112,-3.75612 -19.59946,9.81149c6.13853,5.67249 15.53992,5.52279 23.32581,8.02098c4.54138,0.45371 8.15405,1.63713 6.5175,6.94557c0.85359,9.85596 -1.63307,19.77049 -8.40776,27.25217c-4.79567,7.80693 -15.56667,17.58031 -12.3781,26.61691c6.03265,-0.98199 10.87871,2.97905 6.06032,7.43356c4.94479,3.66121 22.35728,2.82278 18.59119,11.98875c-8.82205,2.92029 -18.29916,1.70366 -27.45192,2.00166c2.43703,25.01987 5.80666,50.04211 11.43709,74.54305c3.28979,5.43672 16.35808,9.61523 5.63309,16.70296c-4.00256,13.19919 8.78183,23.08223 16.81097,31.55379c8.82797,6.61176 4.54482,19.91519 17.0338,22.03693c9.83562,9.52774 -13.5036,9.27408 -19.49568,9.29486c-39.66827,0.42773 -79.37933,1.02615 -119.03208,-0.25211c-3.24605,-0.40967 -7.25645,-0.31595 -9.56982,-3.08264z",
8
+ "chess_knight": "m100.17753,299.2356c-10.0382,0.34137 -24.72987,-4.84531 -14.46609,-16.41525c11.17445,-4.40472 -1.98608,-19.00409 9.21265,-25.88123c8.98889,-12.79953 21.20518,-24.48807 24.89179,-40.11865c-0.57252,-10.60066 -13.22608,-16.87427 -7.18922,-28.60765c-5.92265,-18.77635 -4.55389,-40.38806 6.25748,-57.26643c9.18032,-15.67659 20.32635,-32.28713 19.15084,-51.25797c-11.5139,4.80804 -23.70148,9.0206 -36.37307,6.83708c-11.91311,-1.1064 -22.59742,8.54017 -34.74928,3.29494c-12.31807,-2.55921 -19.64501,-19.02957 -10.4606,-28.65753c10.03679,-8.57325 24.78339,-8.84916 34.35549,-18.41713c12.62932,-10.46186 24.31081,-24.61204 41.71716,-26.46155c7.69322,-1.76131 10.99294,-9.49197 15.25148,-15.2854c3.53894,9.18849 9.69408,17.31353 18.95801,21.387c18.83824,10.9118 23.5276,33.98066 30.47462,52.94444c5.13654,14.85179 9.41592,30.35814 18.01733,43.6171c0.09145,6.36343 -9.56343,9.05308 -3.04225,16.51302c3.39153,20.2325 3.53752,40.95071 3.23686,61.41966c-5.72005,10.01691 -10.93028,21.19722 -3.29993,32.69295c5.09689,14.05096 17.7905,23.26645 24.03563,36.52565c3.53024,6.8656 -6.88226,16.83319 6.09091,15.10654c11.84755,6.2681 2.28101,21.56821 -9.50232,17.11713c-44.15834,1.12289 -88.41394,2.24417 -132.5675,0.9133z",
9
+ "chess_pawn": "m76.17518,297.98557c-10.50418,1.59836 -25.59558,-8.37918 -12.29734,-17.44669c11.25366,-5.8967 0.45475,-21.25174 12.35514,-28.71019c12.10069,-16.52 24.98341,-33.40712 31.01369,-53.22789c-0.84142,-9.49573 -19.64921,-25.21422 -0.595,-28.29408c15.7114,1.82648 9.96503,-21.69583 15.39529,-31.88779c3.26528,-15.46995 5.63882,-31.19783 5.05293,-47.04268c-10.94164,-0.30554 -22.10724,0.96841 -32.83411,-1.63306c-6.84238,-8.98132 15.45903,-13.45317 19.13895,-21.55999c7.72121,-11.65172 -11.3031,-24.52544 -3.15941,-38.29919c5.20168,-20.85055 29.26575,-34.36854 49.62741,-26.73076c21.08499,5.46792 36.67119,30.37529 26.64961,51.09357c-0.80009,3.99703 -7.062,9.17959 -4.97066,12.36269c9.12987,6.33601 19.70087,11.85771 25.48528,21.64108c-8.18987,5.93826 -21.89375,1.4159 -32.1122,4.23674c-9.29645,8.24593 -0.11353,25.10609 0.36266,36.41936c2.90009,12.9261 5.46037,25.96617 8.78381,38.77452c6.98657,2.72525 21.33679,5.88095 13.4649,17.20207c-11.22217,9.11032 -5.7289,23.62137 0.60231,33.84465c7.87996,15.78793 21.40668,27.84862 29.69345,43.27188c3.07736,7.12057 -7.92374,19.7316 5.78708,16.78259c14.86404,3.15744 5.96938,23.76761 -7.3875,18.8981c-49.21407,1.73288 -98.52922,2.43631 -147.74446,0.51953l-2.31185,-0.21448l0,0z",
10
+ "chess_queen": "m59.54884,298.46313c-11.18457,2.51251 -19.80814,-14.30008 -5.94004,-16.129c12.20336,0.23074 -3.0349,-11.94995 7.98012,-16.05304c12.67021,-12.36537 25.23749,-25.26018 33.3575,-41.17609c-4.09126,-5.42482 -10.84344,-10.60782 -9.96117,-18.03085c7.964,-2.71161 19.82806,-0.87375 20.29981,-13.44502c7.24239,-22.68985 9.1741,-46.67986 10.76167,-70.3136c-7.99255,-6.33596 -24.45116,-0.33371 -35.62089,-3.56097c-16.94488,-4.5746 6.31873,-13.33291 13.78075,-12.6113c6.70493,0.01006 16.63324,-4.12222 5.41084,-7.2804c9.46686,-0.43687 23.08297,-12.44518 7.51486,-16.77373c11.54188,-8.28655 2.64816,-26.31929 -2.17102,-36.68976c-7.265,-12.52285 -19.21146,-21.59242 -32.71435,-26.42871c-2.18616,-12.77 18.63421,-8.99565 27.07909,-9.65835c12.78728,0.48775 25.82639,-0.15282 36.96732,-7.11507c15.05278,-6.96464 27.8495,4.65901 41.61934,7.11611c13.92807,0.89699 28.41634,-2.50577 41.97807,1.44028c4.20209,2.98911 11.18788,7.71034 2.77457,9.97613c-16.06789,8.94404 -31.07338,22.15693 -35.10127,40.92605c-6.0766,10.44077 4.6955,19.50048 -5.15381,26.98807c-0.10249,8.80961 22.85634,10.04067 10.00395,14.37878c8.80815,4.77542 27.69864,1.76332 29.62625,12.3696c-7.99612,6.2903 -19.2092,3.80788 -28.79007,4.39512c-3.2489,1.10706 -11.41316,-2.70125 -10.17032,2.89742c-0.6366,25.08775 5.87923,49.75521 12.1806,73.83221c0.00804,11.79608 29.09497,5.10777 12.92737,18.49597c-11.94247,10.28146 5.56685,24.68452 11.63272,33.82986c8.25099,10.03221 22.89711,15.11021 21.67468,29.8362c8.40468,0.60507 18.40166,13.69095 6.78131,16.95151c-62.8902,1.31946 -125.82766,2.22778 -188.72791,1.83258z",
11
+ "chess_rock": "m70.40736,299.11804c-15.60727,2.87628 -15.90823,-19.81082 -1.8931,-20.53482c-4.2011,-9.73361 -0.98556,-21.67557 5.22356,-30.68398c8.90442,-15.05035 22.29623,-30.00999 19.52936,-48.8515c-0.95786,-9.8022 -13.10349,-27.37677 5.72565,-24.85997c5.09087,-9.77498 2.13017,-24.16621 5.9483,-35.39389c3.33424,-21.28385 10.75552,-43.9948 2.86147,-65.09612c-4.97705,-11.23243 -17.62387,-18.62589 -16.26645,-32.35733c-1.42947,-13.39034 -0.95647,-26.88279 0.60455,-40.23392c6.07738,0.50975 12.84039,-1.27954 18.38155,1.475c-0.04153,12.96106 12.26991,10.08973 10.7935,-0.92486c3.23881,-1.28251 8.60017,-0.18413 12.6562,-0.55014c18.03256,0 36.06522,0 54.09778,0c-2.06311,7.51434 3.5195,17.19948 10.5887,8.35272c-1.93379,-11.75267 14.25911,-7.86334 10.37854,2.24694c0.22855,13.39515 1.87041,27.25403 -1.89201,40.29753c-6.12787,5.2086 -6.22449,15.45995 -13.90137,21.60233c-6.16908,11.51656 -3.45045,25.43306 -2.7644,37.9428c2.61279,18.51363 6.92676,36.79671 8.00221,55.52328c-0.76923,10.18126 20.18948,7.18474 11.15244,19.71645c-9.87662,8.41151 -4.0954,22.61668 -0.18413,32.66171c7.71916,17.36203 23.99019,32.95758 21.5343,53.32025c-1.94743,8.89606 14.16618,5.88821 9.97758,17.34372c-0.12151,14.11871 -21.10172,5.04239 -30.39526,8.00793c-46.7146,0.56656 -93.44374,1.44144 -140.159,0.99585z"
12
+ }
13
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/math.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "divide": "m150,0.99785l0,0c25.17819,0 45.58916,20.41097 45.58916,45.58916c0,25.17821 -20.41096,45.58916 -45.58916,45.58916c-25.17822,0 -45.58916,-20.41093 -45.58916,-45.58916c0,-25.1782 20.41093,-45.58916 45.58916,-45.58916zm0,296.25203c-25.17822,0 -45.58916,-20.41095 -45.58916,-45.58917c0,-25.17819 20.41093,-45.58916 45.58916,-45.58916c25.17819,0 45.58916,20.41096 45.58916,45.58916c0,25.17822 -20.41096,45.58917 -45.58916,45.58917zm-134.06754,-193.71518l268.13507,0l0,91.17833l-268.13507,0z",
3
+ "equal": "m0.99915,31.03476l297.3767,0l0,95.17349l-297.3767,0zm0,47.58677l297.3767,0l0,95.17349l-297.3767,0z",
4
+ "minus": "m0.99887,102.39503l297.49445,0l0,95.2112l-297.49445,0z",
5
+ "not_equal": "m40.81188,62.2131l103.7978,0l22.27972,-61.2131l65.67503,23.90375l-13.5795,37.30935l40.20317,0l0,69.88993l-65.64099,0l-12.71893,34.94495l78.35992,0l0,69.88991l-103.79779,0l-22.27972,61.21309l-65.67503,-23.90378l13.57949,-37.30933l-40.20319,0l0,-69.88991l65.64102,0l12.71894,-34.94498l-78.35995,0z",
6
+ "times": "m1.00089,73.36786l72.36697,-72.36697l76.87431,76.87368l76.87431,-76.87368l72.36765,72.36697l-76.87433,76.87431l76.87433,76.87431l-72.36765,72.36765l-76.87431,-76.87433l-76.87431,76.87433l-72.36697,-72.36765l76.87368,-76.87431l-76.87368,-76.87431z",
7
+ "plus": "m1.00211,102.40185l101.39974,0l0,-101.39975l95.45412,0l0,101.39975l101.3997,0l0,95.45412l-101.3997,0l0,101.3997l-95.45412,0l0,-101.3997l-101.39974,0z"
8
+ }
9
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/misc.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "3_ways": "m1,159.61292l52.87097,-52.87097l0,26.43549l69.69355,0l0,-79.30646l-26.43549,0l52.87096,-52.87097l52.87097,52.87097l-26.43549,0l0,79.30646l69.69356,0l0,-26.43549l52.87096,52.87097l-52.87096,52.87097l0,-26.43549l-192.25807,0l0,26.43549l-52.87097,-52.87097z",
3
+ "3D_plane_1": "m1,187.25l74.49999,-74.5l223.49998,0l-74.5,74.5l-223.49997,0z",
4
+ "3D_plane_2": "m112.75,75.50002l74.5,-74.50002l0,223.50002l-74.5,74.49998l0,-223.49998z",
5
+ "babe": "m299.04794,205.18787c-3.77606,12.02469 -14.23288,15.70245 -23.42029,7.51477c-4.99579,-3.63025 -15.93668,-4.01721 -8.27643,4.11765c4.3663,3.89154 12.96597,18.43826 2.6701,7.63031c-6.72076,-9.88528 -21.45963,-10.97299 -26.80637,-21.01428c-0.7126,-12.09052 -19.01982,-9.85156 -28.21417,-13.29294c-7.97734,0.2787 -20.34282,-8.29872 -23.22426,-8.2877c7.17442,8.54059 6.05238,22.25063 13.10196,29.89879c9.38933,2.61444 12.97119,14.02899 0.81691,15.99643c-14.79422,5.33719 -12.22833,-12.63193 -20.04561,-20.07751c-5.76567,-2.6597 -0.17117,23.97388 -5.6981,17.70459c0.14073,-11.08301 -5.26385,-21.19345 -7.43376,-31.72055c3.66939,-3.90994 3.24513,-15.0824 -1.24792,-6.28702c-9.32401,15.52066 -21.53839,29.02148 -33.42717,42.58749c-12.32529,3.3429 -25.61986,1.75922 -38.28926,0.99091c-13.33909,0.21539 -16.41985,-23.40515 -24.5597,-24.14911c-1.69956,6.7645 0.04348,10.7413 3.54543,14.16528c-5.43895,6.35352 -17.0083,4.24969 -24.32439,1.67859c-12.99512,4.18167 4.10523,-7.37332 9.39456,-5.37735c0.12955,-9.23239 1.69711,-21.43146 -1.15234,-30.31955c-4.26376,-4.21536 -13.54346,-25.27448 -12.61225,-10.56541c-2.43563,17.92097 -10.72475,34.53096 -12.64814,52.59737c-1.6411,10.13943 -15.83897,5.33594 -23.08624,5.82672c-7.30112,2.27881 -6.50991,0.30469 -13.11051,0.69199c7.01961,-9.43863 23.73587,-3.27213 28.50491,-13.30713c2.12957,-14.98691 1.05568,-30.67914 6.12082,-45.11276c-2.11474,-14.92252 -6.78208,-29.69904 -6.85915,-44.79436c2.37534,-9.86703 8.15515,-18.85688 7.95601,-29.33565c4.35726,-11.70351 7.18935,-24.90283 15.98966,-34.19202c9.32926,-10.04192 23.95938,-2.34001 28.82026,8.23518c5.23969,11.5593 -2.89557,23.16132 -3.7411,34.79802c10.97217,2.97472 2.07053,18.22128 16.21945,16.77118c11.11885,1.02463 7.90206,16.12445 0.58741,20.71976c-0.2656,7.05571 8.13246,16.23514 6.20955,25.48418c5.50479,6.05925 12.30074,9.05171 12.7784,-1.61943c3.7646,-14.17346 5.15414,-29.11295 11.81579,-42.45001c2.65157,-10.67883 13.6115,-24.48097 25.27724,-15.69678c10.81068,5.92413 13.54153,23.94177 22.32231,28.34891c10.75034,-9.00977 20.01573,4.53285 28.83136,9.38853c13.27853,7.35518 24.98924,17.12993 37.79256,25.23851c13.37863,6.81644 27.61211,12.28633 40.07347,20.72394c8.47791,4.65475 17.41223,-4.71762 19.34897,6.49048zm-149.77098,-49.39249c-1.45267,7.65393 4.38054,3.60388 0,0z",
6
+ "bevel": "m24.5,277l-24,23m276,-22l23,22m-23,-274l23,-24m-275,23l-23,-22m23,21.5l252,0l0,252l-252,0l0,-252zm-23.5,-23.5l299,0l0,299l-299,0l0,-299z",
7
+ "bone": "m273.3559,119.27242c-11.58661,5.90293 -23.89537,9.95385 -36.67676,12.27164c-53.42084,0.2984 -105.13121,0.41397 -158.74251,2.97562c-14.28426,-2.65407 -30.58815,0.18161 -42.82426,-9.13783c-9.06827,-7.25944 -28.17529,-2.4415 -25.05096,11.36483c6.17649,14.08824 -14.61965,21.70474 -7.59176,36.00003c6.11589,14.67987 24.54805,9.02721 35.59484,4.1729c20.29636,-4.79665 40.55842,-9.8537 60.92737,-14.38416c42.52868,-4.82219 82.54949,-1.83121 124.59118,1.02063c11.68694,2.54654 23.55803,4.03351 35.45654,5.38187c10.1839,0.16006 18.34979,7.46698 27.92017,8.65919c12.6539,-1.22533 16.41983,-19.19981 7.59747,-27.17406c-13.18918,-8.72406 6.75436,-24.14882 -8.14166,-31.38885c-4.25287,-2.31086 -8.733,-0.75754 -13.05966,0.23817z",
8
+ "chord": "m277.04315,255.07486c-47.63342,47.63342 -121.3194,57.33392 -179.65791,23.65366c-58.33851,-33.6824 -86.78111,-102.34741 -69.34571,-167.41564c17.43547,-65.06779 76.39998,-110.31287 143.76268,-110.31287l105.24094,254.07486z",
9
+ "circle_band": "m1,224.5l0,0c0,-82.29044 66.70957,-149 149,-149c82.29042,0 149,66.70956 149,149l-74.5,0c0,-41.14522 -33.3548,-74.5 -74.5,-74.5c-41.1452,0 -74.5,33.35478 -74.5,74.5z",
10
+ "circle_pie": "m299,150l0,0c0,82.29044 -66.70956,149 -149,149c-82.29044,0 -149,-66.70956 -149,-149c0,-82.29043 66.70956,-149 149,-149l0,149z",
11
+ "cube": "m30.42785,1.56129l-29.42785,29.42785l0,268.21907l264.28937,0.68124l33.35693,-30.10974l0,-268.21843l-268.21845,0zm236.46521,28.94674l0,269.42122m0,-269.42122l33.35693,-29.50804m-33.35693,30.791l-265.57233,-1.28296",
12
+ "dagger": "m1.57422,47.21264c-2.775,14.24454 5.08469,27.79975 11.2199,40.10517c13.07098,21.70464 28.2358,42.59465 47.26681,59.46329c12.98537,10.6889 24.68548,22.99878 39.38902,31.4678c19.22253,12.95224 39.86254,23.55869 61.26455,32.3793c15.9138,6.93546 32.60274,11.85577 49.65401,15.08282c4.95967,1.28564 18.82625,4.91663 10.19991,-3.60251c-7.15544,-3.02133 -14.76756,-5.22583 -21.96236,-8.37695c-34.92769,-14.34082 -72.04247,-26.94104 -100.21951,-53.10463c-4.66899,-6.20064 8.95855,3.3492 11.3067,5.96803c23.50703,16.73581 50.36192,27.95749 76.84653,39.04178c13.47301,4.46384 28.20039,13.97903 42.51408,7.22675c12.36502,-4.72467 -2.95702,-5.44891 -8.42033,-7.24844c-24.28337,-6.90491 -48.85286,-13.54227 -71.13893,-25.76019c-12.72568,-4.65573 -23.42126,-13.22678 -34.85331,-20.29132c-12.35065,-8.53128 -23.65424,-18.49934 -35.67798,-27.49634c-7.86864,-5.96642 -15.68669,-11.98865 -22.20108,-19.46664c-11.01625,-11.02383 -21.70009,-22.36108 -31.68482,-34.33246c-6.52307,-7.36439 -13.86146,-14.10685 -18.44664,-22.93894l-5.05655,-8.11652zm256.45175,139.13108c-1.50562,-0.04745 -3.06,0.28214 -4.36211,1.15021c-9.72246,4.86124 -7.63908,13.88922 -13.19478,20.83386c-4.16678,5.55569 -9.028,8.33356 -15.97261,10.41693c1.38892,2.77783 4.16675,6.94461 4.16675,10.41693c0,7.63907 -9.02798,14.58368 -15.97261,13.88922c-2.77786,-0.69446 -9.028,-4.16678 -11.11139,0c-0.69446,1.38895 -0.69446,2.77786 0,3.47232c0,2.77786 3.47231,4.16678 6.25015,5.55569c7.63908,2.08337 15.97263,-0.69446 22.22279,-4.86124c4.86122,-2.77783 8.33353,-7.63907 9.72246,-13.19479l1.38892,-9.02798c0.69446,-2.77783 3.47232,-3.47232 6.94463,-8.33353c4.16676,-5.55569 8.33354,-15.2782 13.88924,-19.44495c2.08337,-1.38892 4.16675,-2.0834 6.94461,-2.77786c-1.38892,-2.08337 -2.77786,-3.47229 -4.16678,-5.55566c-1.38892,-0.69449 -2.77783,-2.0834 -4.16675,-2.0834c-0.78128,-0.26041 -1.6792,-0.42728 -2.58252,-0.45575zm29.4061,26.21594c-2.61084,-0.02899 -5.33868,0.54254 -8.07312,1.32382l5.55569,3.47232c-1.38895,2.77783 -4.86121,8.33353 -4.16678,11.80585c0.69449,6.94461 10.41693,6.94461 14.58371,2.77783c4.86124,-5.55569 4.86124,-13.88922 -2.08337,-18.056c-1.82297,-0.91147 -3.78549,-1.30127 -5.81613,-1.32382zm-13.39011,3.40723c-0.54364,0.00192 -1.07498,0.00705 -1.60593,0.0217c-3.8486,0.21091 -7.69568,0.50116 -11.54541,0.67276c-2.41867,0.03116 -4.88754,-0.00473 -7.22676,0.69446c-3.17285,2.02515 -5.29396,5.38272 -6.53229,8.87607c-0.16666,0.50345 -0.30807,1.02072 -0.41234,1.54083c3.86218,1.74924 8.17189,1.5618 12.30499,1.41064c2.50439,-0.06696 5.00949,0.24561 7.50888,0.36893c1.7876,0.07916 3.57104,0.32327 5.36038,0.26044c2.19412,-0.07278 4.22598,-1.3168 5.38205,-3.16849c0.99927,-1.58255 1.9447,-3.21933 2.56085,-4.99146c0.49768,-1.59048 0.5896,-3.80087 -1.06339,-4.75272c-1.43857,-0.79446 -3.10013,-0.93906 -4.73105,-0.93317zm2.53915,15.9726c-0.69449,0.69446 -1.38892,0.69446 -2.0834,1.38892c-0.69446,3.47232 8.33356,11.80588 9.72247,4.16678c-3.47232,-1.38892 -5.55573,-2.77786 -7.63907,-5.55569z",
13
+ "diamonds": "m79.28394,70.5173l69.51914,-69.51918l69.53062,69.51918l-69.53062,69.5193l-69.51914,-69.5193zm-78.28265,78.73502l69.53064,-69.51916l69.51917,69.51916l-69.51917,69.53081l-69.53064,-69.53081zm158.04381,1.41991l69.53076,-69.50788l69.50775,69.50788l-69.50775,69.53059l-69.53076,-69.53059zm-78.26005,78.74646l69.50779,-69.51927l69.53087,69.51927l-69.53087,69.5197l-69.50779,-69.5197z",
14
+ "dog": "m244.35188,22.54387l-69.54898,69.54889c-119.32899,0.00291 -120.2569,-0.00142 -121.18423,0c-10.16035,0.01348 -20.31404,-0.04446 -30.47281,0.1654c-17.41192,-3.13311 -29.41997,20.08429 -17.10143,32.59326c9.91919,10.04415 24.91881,5.84701 37.58711,6.70858c0.082,39.19679 0.15858,78.39276 0.24066,117.58955c-1.93424,11.60912 7.01076,23.37389 18.92138,24.38115c10.04872,1.3252 21.64701,-4.10141 24.54638,-14.3645c2.0378,-20.77086 0.69009,-41.75818 1.06802,-62.62978c15.7105,0 58.3028,0.55273 93.34407,0.94731c0.05244,10.48698 0.11156,36.08763 0.16484,43.1525c-0.20064,9.60797 -0.94731,36.79358 17.44778,36.82019c18.39429,0.02664 19.96759,-19.29745 19.74867,-23.16328c-0.13904,-5.1078 0.14149,-42.99934 0.54108,-56.44814c2.24173,0.01166 4.87888,0.02997 6.54291,0.02997c-0.00998,-0.00999 -0.01997,-0.01997 -0.02995,-0.02997c0.10487,0.06078 0.2106,0.11987 0.31549,0.18065c0.19894,-16.80684 -0.38959,-50.0226 -0.04497,-66.82692c15.38005,-0.19313 30.76425,-0.09573 46.14514,-0.13486c13.52618,3.45377 34.10559,-4.10139 23.59946,-20.81667c-16.37396,-18.52205 -34.58011,-35.37009 -51.83061,-53.07936l0,-34.62398z",
15
+ "frame_half": "m1,1l297,0l-98.99899,98.99902l-99.00199,0l0,99.00198l-98.99902,98.99901z",
16
+ "hand_stop": "m136.25574,297.49808c-29.33714,-5.08954 -54.45634,-27.86633 -62.06976,-56.71431c-3.62096,-14.72525 -1.50079,-30.17319 -2.21442,-45.21799c-0.13461,-38.62221 -0.20337,-77.24464 -0.30453,-115.86696c3.44471,-11.98872 17.98409,-18.29414 29.04424,-12.36688c0.96214,-3.14931 0.25692,-8.79729 0.59418,-12.8885c-1.96137,-11.24498 6.05913,-22.68389 17.70836,-23.44487c6.68523,-0.04347 14.68906,5.03699 11.64235,-6.21321c-2.06573,-11.58701 7.02885,-24.78486 19.46753,-23.71677c11.8866,-1.10308 20.91313,10.99307 19.47894,22.20545c0.55293,6.69356 15.04739,-4.38583 20.11427,3.0555c6.46245,3.83537 10.88301,11.15349 9.66263,18.71955c0.37462,20.72639 -0.50464,41.58417 0.94255,62.21075c10.62856,-5.38028 25.7729,1.23052 27.94981,13.06696c-0.24077,36.77421 0.61372,73.57438 -0.64664,110.32743c-4.27835,37.80429 -40.23309,69.77301 -78.61711,67.50256c-4.25351,0.01132 -8.54422,0.05313 -12.75241,-0.65872zm26.24695,-10.04156c32.22029,-5.44516 57.56776,-36.59567 55.75252,-69.35173c0.24638,-31.65953 1.24834,-63.36566 0.07516,-95.00381c-0.74966,-11.56753 -19.92574,-8.76712 -18.68594,1.90652c-0.00584,23.46449 -0.01172,46.92897 -0.01762,70.39346c-5.97046,6.15695 -16.65688,2.44864 -23.81619,7.45261c-15.91585,6.94403 -26.02902,23.94809 -26.37592,41.0688c-8.5842,13.31046 -12.47054,-8.35147 -7.54663,-15.48785c5.69263,-21.52615 25.72418,-37.58736 47.72688,-39.6965c-0.18001,-49.52237 0.46608,-99.06258 -0.57811,-148.57061c-6.22968,-14.02401 -23.68619,-1.72364 -19.04016,10.55674c-0.45773,37.44105 -0.04761,74.89084 -0.68825,112.32923c-4.16106,6.65674 -12.04573,0.3437 -9.47389,-5.79948c-0.17776,-46.90031 -0.35556,-93.80062 -0.53333,-140.70093c-3.33864,-8.28292 -18.12991,-6.98883 -18.3627,2.10197c-0.18286,48.40011 -0.36572,96.80021 -0.5486,145.20032c-3.89212,5.48285 -11.88664,0.71593 -9.73376,-5.26897c-0.14377,-36.45805 0.40013,-72.93186 -0.55034,-109.37686c-0.24316,-10.84745 -18.40633,-10.5788 -18.64873,-0.51889c-0.36327,37.37112 0.09734,74.76224 -0.99649,112.11712c1.02982,9.51479 -12.37218,4.97615 -9.28424,-2.22137c-0.16375,-25.39479 0.44627,-50.81747 -0.58949,-76.18918c-6.1088,-15.65501 -24.37704,-2.73073 -19.28278,10.2811c0.06127,45.03139 -0.41048,90.08521 0.72834,135.10263c2.79378,34.58762 36.09247,63.06729 70.73276,60.79437c3.26721,-0.13614 6.52469,-0.50925 9.73752,-1.11868z",
17
+ "L_shape": "m1,1l149,0l0,149l149,0l0,149l-298,0l0,-298z",
18
+ "lightning_bolt": "m117.48906,0.99793l60.3351,83.60071l-24.88768,9.85823l75.99797,71.63888l-24.88768,11.96198l93.95412,119.94316l-159.33742,-91.91997l30.38835,-12.76016l-99.00077,-58.87717l35.47526,-18.19279l-104.52837,-61.76487l116.49113,-53.48799z",
19
+ "logo_apple": "m209.28954,1.00088c-43.04727,7.92585 -57.33284,43.96882 -57.8894,64.561c23.68694,1.71168 38.47275,-11.65597 44.5219,-19.4791c9.85237,-11.09263 12.25443,-26.71591 13.36751,-45.0819zm5.28372,71.19604c-31.11621,-0.01418 -48.48506,12.70539 -57.04939,12.84402c-9.82712,-0.76584 -38.46593,-12.28108 -55.16231,-12.46661c-58.47802,1.74345 -75.23289,65.28636 -74.50751,92.61087c4.76329,104.60263 68.59296,131.60016 79.02421,134.12564c8.36713,1.64984 36.57712,-12.89731 57.32939,-12.23529c22.65837,2.3606 38.49214,11.76068 47.58983,11.10309c11.51012,-0.79871 49.05655,-31.14218 60.37299,-77.89201c-22.81836,-19.29358 -36.89403,-36.77824 -38.15468,-53.37267c-0.584,-7.50279 10.70016,-49.91425 28.69514,-61.83392c2.59723,-14.65567 -24.13031,-33.25182 -45.08191,-32.83442c-1.03252,-0.02777 -2.05203,-0.0482 -3.05577,-0.04871z",
20
+ "man": "m125.90131,25.2503c0,-13.33112 10.79823,-24.12934 24.12934,-24.12934c13.33113,0 24.12932,10.79822 24.12932,24.12934c0,13.33112 -10.79819,24.12934 -24.12932,24.12934c-13.33113,0 -24.12934,-10.79822 -24.12934,-24.12934zm81.12696,68.30144v-12.18601c0,-12.82147 -10.38806,-23.21696 -23.21696,-23.21696h-67.63607c-12.82147,0 -23.21695,10.39549 -23.21695,23.21696v12.18601c-0.02242,0.2766 -0.03739,0.56071 -0.03739,0.84853v70.18918c0,5.4538 4.41839,9.87215 9.87218,9.87215c5.44633,0 9.87589,-4.41837 9.87589,-9.87215v-69.14999h6.62006v79.02961h0.04859v111.66646c0,7.25925 5.89491,13.15787 13.16164,13.15787c7.27048,0 13.16164,-5.89114 13.16164,-13.15787v-111.66646h8.68347v111.66646c0,7.25925 5.89856,13.15787 13.16162,13.15787c7.27045,0 13.16161,-5.89114 13.16161,-13.15787v-111.66646h0.04112v-79.02961h6.62007v69.14623c0,5.45381 4.42955,9.8759 9.8759,9.8759c5.45386,0 9.87218,-4.42209 9.87218,-9.8759v-70.18916c-0.00371,-0.29156 -0.02617,-0.56819 -0.0486,-0.8448z",
21
+ "maximize_2": "m1,149.99998l67.05,-67.05l0,33.52501l48.425,0l0,-48.425l-33.52501,0l67.05,-67.05l67.04999,67.05l-33.52499,0l0,48.425l48.42502,0l0,-33.52501l67.04997,67.05l-67.04997,67.04999l0,-33.52499l-48.42502,0l0,48.42502l33.52499,0l-67.04999,67.04997l-67.05,-67.04997l33.52501,0l0,-48.42502l-48.425,0l0,33.52499l-67.05,-67.04999z",
22
+ "moon": "m227,299.94119l0,0c-85.05185,0 -154,-66.92029 -154,-149.4706c0,-82.55034 68.94815,-149.4706 154,-149.4706l0,0c-48.47263,35.28521 -77,90.6619 -77,149.4706c0,58.80869 28.52737,114.18535 77,149.4706z",
23
+ "mythic_unicorn_2": "m182.0204,297.85391c-5.77818,-7.90314 -14.7635,-8.80438 -16.9241,-20.05347c-1.69348,-6.11859 -17.65829,-14.32483 -8.20955,-3.3428c7.2961,6.61768 15.96432,31.02682 -1.98563,23.31473c-13.65228,-5.01041 -14.2377,-20.48209 -17.89716,-32.06519c-11.90031,-8.25644 3.07674,-25.71408 -9.73651,-36.29276c-10.87482,-11.04288 -3.30119,-31.72456 -18.8404,-39.55457c-7.79965,-3.16566 -11.1757,18.69177 -12.48895,2.70163c-4.27309,-16.17242 -19.36451,7.86156 -29.42789,5.31358c-8.12057,-0.70595 13.58361,-6.35143 3.22626,-7.87068c-6.08933,3.33348 -11.72343,9.09727 -12.68681,-0.44351c-7.3251,-4.35046 -22.68599,-11.29797 -22.28696,-18.20909c6.3611,-1.99829 27.83545,3.78387 24.11403,-4.25029c-6.38573,-2.42343 -7.54573,-9.04803 0.27553,-4.60205c15.41352,0.48352 33.48255,-5.66917 46.30758,6.09853c6.68958,4.11612 13.26701,18.87857 16.84827,4.53223c11.5443,-13.92389 34.83883,-15.10329 41.95536,-33.13124c1.72211,-8.72215 -5.28903,-13.69839 -11.24521,-15.46512c-1.15878,-2.86641 -3.13139,-15.03612 -8.05675,-8.8949c0.22449,-5.37502 4.84473,-18.22859 -5.38927,-12.53831c-1.03801,-11.44846 8.74879,-22.87025 -4.19783,-31.20716c12.13029,2.25027 9.73825,-11.57887 7.09616,-13.77212c7.19073,-1.02106 15.62939,-7.49186 11.66467,-15.50808c7.80894,14.17675 8.07971,-17.19902 14.50877,-3.67512c11.83272,1.93988 -3.67599,-10.57163 7.20721,-7.77902c6.21443,0.21264 4.83423,-6.80917 10.41692,-1.50957c7.3886,-4.03149 -5.66409,-16.21531 6.26559,-7.74985c4.01033,3.484 16.77809,12.60911 14.48726,0.56772c11.33586,12.0923 20.25659,-11.23169 29.67625,-16.06186c3.73633,-4.47003 11.8613,-9.20071 4.36795,-0.66791c-4.97461,10.87669 -21.85179,22.64296 -17.31131,33.45053c-4.10985,3.74163 8.29224,8.44421 -1.58034,7.02768c-5.8488,6.31351 7.84134,18.1257 8.93388,28.06219c-3.13588,6.80826 -15.07657,14.53744 -19.90688,14.29315c1.76543,-8.76564 -2.06178,-20.19066 -13.24036,-15.23595c6.26202,11.45789 14.72818,22.40379 20.03253,34.86404c5.18462,12.24902 13.59059,26.39416 24.64981,10.62966c7.04883,-10.04763 27.18559,-9.90218 21.65419,6.41521c-2.82767,16.0232 4.74286,37.1706 -9.80374,48.20794c-8.77531,16.90973 -18.50392,-6.2874 -11.60965,-15.06308c-1.75673,-2.50781 -3.11575,-4.27809 2.02489,-7.7061c-1.06146,-2.57137 14.7939,-12.24554 6.80286,-18.18176c-9.0885,10.30594 -22.38708,22.23511 -18.69125,37.55475c2.99957,10.26601 -21.73944,27.86615 -19.76117,10.82875c0.44312,-6.62131 9.89648,-19.45415 7.72044,-21.10741c-6.90181,12.95006 -16.71997,25.39136 -31.55621,29.23625c-12.34084,0.73132 -18.80547,10.66779 -12.94504,21.69241c1.11998,15.62238 -7.12646,29.76141 -9.02499,44.972c3.52914,16.13283 25.01552,19.39287 27.93198,35.84959c5.01138,11.05234 -7.52405,9.41898 -13.36446,6.32639zm-30.55545,-48.12944c-1.80891,-7.29253 -5.53151,18.95699 -0.94273,5.02481l0.68695,-2.46143l0.25578,-2.56339z",
24
+ "page": "m249.3298,298.99744l9.9335,-39.73413l39.73413,-9.93355l-49.66763,49.66768l-248.33237,0l0,-298.00001l298.00001,0l0,248.33234",
25
+ "people_business_woman_1": "m152.09991,291.25156c-2.47678,-44.58551 4.65103,-89.4209 -0.87244,-133.89311c-8.95648,25.8877 -13.19429,53.17113 -13.68393,80.52692c-0.41364,17.0155 -0.16316,34.03816 -0.23213,51.05714c-6.59424,1.84573 -15.25726,1.21277 -19.31381,7.46753c-5.79991,2.60486 -12.31924,1.35736 -18.48087,1.65521c6.01304,-4.82208 13.37695,-9.59021 13.6609,-18.23849c6.31746,-52.60599 2.67181,-105.66583 3.06088,-158.49306c0.43537,-21.1868 -1.16552,-42.66898 2.64828,-63.61227c2.03822,-10.62624 19.15558,-5.1272 18.60609,-18.67488c3.03041,-11.80116 0.67964,-26.03735 9.52867,-35.60117c10.5938,-7.7376 21.95103,4.42952 20.767,15.48053c1.06621,11.41806 -1.19225,25.92375 9.12468,33.77226c11.50188,2.75379 13.11151,17.72176 18.13281,26.80961c4.23164,10.69022 9.72182,23.87735 0.08774,33.44124c-5.93716,8.68594 -16.90076,16.78377 -12.99744,28.7057c-0.60452,31.03065 -6.76558,61.62357 -9.34036,92.51013c-2.09418,17.62329 -2.81628,35.5533 -6.9491,52.84404c-0.55614,5.69342 -5.84515,19.49838 -12.14343,10.53711c-0.87442,-1.99588 -1.26941,-4.15509 -1.60355,-6.29443zm-31.23076,-126.74179c-4.61314,-4.02649 0.43039,13.47859 0.48324,1.7234l-0.48324,-1.7234l0,0zm6.80929,-33.43718c-1.88333,-6.96362 -7.13425,10.3817 -5.38842,14.89726c-0.28574,6.8293 0.74596,4.17953 2.10389,-0.81731c1.48602,-4.58557 2.79638,-9.27054 3.28453,-14.07996zm61.63647,-23.18116c5.52028,-11.36497 -2.7056,-23.94508 -11.13263,-31.31998c-8.36171,1.6476 -4.1756,17.26677 -4.09579,24.50607c-0.37729,9.19583 11.31773,21.60236 15.22842,6.8139zm-59.09369,-11.57291c-3.00658,-5.39182 -0.968,23.24248 0.49254,8.1709c0.11818,-2.72906 0.0034,-5.48079 -0.49254,-8.1709z",
26
+ "plant_tree_1": "m122.82124,295.43991c-9.60714,-8.11343 -1.74962,-22.4458 -1.18428,-32.9653c4.14859,-11.24323 3.96359,-85.81235 -10.94936,-86.09872c-15.83897,-4.80884 -33.8653,1.83771 -48.3958,-7.59918c-9.84084,-5.82912 -12.90007,-17.71764 -12.64209,-28.40579c0.19444,-11.07701 -10.96857,-15.73981 -14.56149,-25.02111c-4.85892,-11.57952 -0.66407,-24.81283 7.67092,-33.63805c7.87535,-8.99152 0.96225,-20.76784 4.99341,-30.60822c5.74977,-13.3805 22.92119,-7.46461 32.14548,-16.67288c9.90182,-6.99356 18.35265,-19.09785 32.07681,-17.29906c13.25371,0.83774 28.05221,3.21463 39.26759,-5.80136c10.45538,-8.74133 25.08881,-13.41753 38.21471,-8.04486c12.4521,3.84588 26.61226,11.87612 26.66945,26.64145c-3.79947,15.14795 10.55962,14.96229 20.88582,17.05112c12.22475,5.50745 24.82689,14.06517 29.88231,26.94686c1.34924,14.72554 -15.32854,26.93484 -7.76337,41.96729c2.96521,14.64848 -9.76962,22.78136 -18.92447,30.72028c-3.76666,14.33221 -18.04883,25.98621 -33.39958,22.57785c-12.36432,-2.02824 -19.98886,11.49191 -32.59709,10.30693c-8.35739,8.60075 -2.66228,82.40933 -1.11533,92.59302c6.29385,12.59021 -2.48013,26.51376 -16.65036,26.0885c-11.10333,1.33105 -23.19679,1.95465 -33.62328,-2.73877z",
27
+ "rectangle_2_rounded": "m50.66998,1l198.6639,0l0,0c13.17268,0 25.80577,5.2328 35.12022,14.54726c9.31445,9.31446 14.54727,21.94758 14.54727,35.12021l0,248.33141c0,0.00134 -0.00116,0.00247 -0.0025,0.00247l-297.99637,-0.00247l0,0c-0.00136,0 -0.0025,-0.0011 -0.0025,-0.0025l0.0025,-248.3289l0,0c0,-27.43059 22.23686,-49.66747 49.66748,-49.66747z",
28
+ "rectangle_3_rounded": "m50.66972,1l248.33028,0c0.0007,0 0.00134,0.00024 0.00177,0.00072c0.00049,0.00048 0.00076,0.00108 0.00076,0.0018l-0.00253,248.32779c0,27.43044 -22.23679,49.66722 -49.66722,49.66722l-248.3303,0l0,0c-0.00138,0 -0.00248,-0.00113 -0.00248,-0.0025l0.00248,-248.32779l0,0c0,-27.43045 22.23678,-49.66723 49.66724,-49.66723z",
29
+ "ribbon_up": "m0.99887,298.99884l37.37486,-124.16641l-37.37486,-124.16684l74.74943,0l0,-37.25092l0,0c0,-6.85776 4.18383,-12.41691 9.34372,-12.41691l130.81201,0c5.16063,0 9.34372,5.55916 9.34372,12.41691l0,37.25092l0,0l74.74974,0l-37.37488,124.16684l37.37488,124.16641l-102.7809,0c-5.15987,0 -9.3437,-5.55884 -9.3437,-12.41577c0,-6.85834 4.18384,-12.41724 9.3437,-12.41724l18.68744,0c5.16063,0 9.34372,-5.5603 9.34372,-12.41721c0,-6.85834 -4.18309,-12.41722 -9.34372,-12.41722l-130.81201,0c-5.15989,0 -9.34372,5.55888 -9.34372,12.41722c0,6.85693 4.18383,12.41721 9.34372,12.41721l18.68743,0c5.1606,0 9.34372,5.5589 9.34372,12.41724c0,6.85693 -4.18312,12.41577 -9.34372,12.41577zm121.79819,-30.86179l-0.71873,-217.77046m-149.49945,214.90504l0.71875,-213.47234m110.6871,199.14535l0.71873,41.54834m-74.03098,-1.43271l-0.71874,-40.11563",
30
+ "sflowchart_filter2": "m1,75.5l298,0l-149,74.5l149,74.5l-298,0l149,-74.5l-149,-74.5z",
31
+ "sign_no": "m0.99794,149.99951l0,0c0,-82.29002 66.70967,-148.99969 148.99992,-148.99969l0,0c39.51779,0 77.41692,15.69819 105.35898,43.64116c27.94318,27.94297 43.64124,65.84185 43.64124,105.35853l0,0c0,82.29103 -66.7092,149.00024 -149.00021,149.00024l0,0c-82.29025,0 -148.99992,-66.70921 -148.99992,-149.00024zm240.6012,66.65504l0,0c32.80489,-45.08388 27.92851,-107.33437 -11.49672,-146.75905c-39.42525,-39.42501 -101.67574,-44.30139 -146.75847,-11.49616l158.25519,158.25521zm-183.20167,-133.30872c-32.80512,45.08364 -27.92886,107.33413 11.49615,146.75825c39.4249,39.42525 101.67541,44.30159 146.75814,11.49672l-158.2543,-158.25497z",
32
+ "skull": "m74.9404,81.44109c-2.88919,16.35929 -10.26919,31.99403 -10.76614,48.86361c0.66122,9.76746 -5.89156,15.01402 -14.86213,14.8293c-9.64813,10.00099 1.19087,25.80647 12.10749,29.84357c11.14103,7.47832 24.96226,-0.87791 35.99846,5.83044c14.65424,11.4554 20.77205,31.76607 15.71635,49.57211c-5.02672,14.69893 20.70476,9.35306 11.02628,-2.39693c-7.47506,-11.48471 14.09103,-7.68764 8.56998,3.21603c-1.04326,8.75262 6.45616,11.58562 3.11867,20.06531c8.69472,4.98558 -0.72885,7.77708 -6.02475,8.71843c-12.40178,6.18225 2.24324,-11.07452 -7.58144,-16.17874c-8.99694,1.95532 -2.90059,17.02136 -5.98875,15.28125c-6.3575,-4.97824 -6.35281,-23.59047 -17.02285,-11.44621c-3.54128,-14.96387 2.92009,-30.54814 -2.05737,-45.42514c2.03897,-11.11034 -15.50281,-14.9426 -13.28409,-2.05647c0.88449,19.66696 -5.0876,39.29475 -1.66005,58.86481c4.72071,12.07065 17.92378,17.50833 26.2104,26.82291c6.80557,7.18207 15.6284,14.86087 26.22089,12.5997c12.0141,-0.52078 24.05035,-1.63034 36.01024,0.2771c15.04311,0.47446 26.52666,-11.41623 39.36443,-17.5242c15.0918,-11.98355 12.71564,-33.38867 11.21118,-50.43889c-1.84476,-10.52664 2.20334,-21.05807 1.44894,-31.48618c-10.88037,-13.31276 -19.80722,10.08708 -16.70779,20.14043c-0.00076,12.64635 2.42783,28.93701 -9.63577,37.17496c-9.95572,-0.25104 -19.43069,3.36517 -29.4632,1.4744c-8.14081,4.83435 -21.32692,4.71021 -24.01404,-6.79811c-1.07281,-10.22015 3.55807,-20.93494 -2.73401,-30.47318c5.52835,4.7614 15.17361,-4.11226 9.79822,6.56248c-6.55643,8.68922 5.55173,22.07874 10.10989,9.25331c1.51227,-8.60512 -6.54141,-20.02596 6.69714,-18.18237c2.6998,3.03528 -9.21959,24.26701 7.07346,18.90152c11.61606,-2.54445 -2.06659,-20.76607 13.66382,-20.82939c7.61295,-8.9626 5.56317,-25.76184 17.20825,-32.56114c12.98419,-8.78706 33.2569,-2.44315 42.52423,-17.32399c7.89911,-7.61507 4.18182,-28.72154 -9.44128,-21.72794c-17.02448,1.65962 -3.51318,-23.0582 -3.98819,-32.32024c4.01126,-8.06691 -4.87137,-25.04774 -1.81268,-26.84933c5.77948,8.84253 7.84946,19.18484 6.60651,29.51878c-0.10681,8.76352 -3.8233,32.51385 8.36014,17.87288c4.12442,-10.20347 2.92487,-21.76073 5.86331,-32.37626c5.66748,-22.91865 -4.48026,-45.85004 -15.79309,-65.262c-9.63495,-10.45038 -21.86679,-18.78104 -33.35342,-26.98327c-19.32092,-7.26658 -40.65421,-8.56836 -61.06006,-6.74718c-18.04979,3.12863 -37.13738,6.42709 -51.51633,18.73374c-14.01352,8.25707 -27.43441,19.22373 -32.97453,35.08961c-4.82798,12.78156 -13.28239,25.798 -9.43994,39.99647c3.67479,11.83601 1.72576,24.12813 2.32075,36.22574c6.26442,13.82637 12.1788,-7.07504 11.59255,-13.98853c0.3468,-13.11021 7.26362,-24.71465 12.36033,-36.35318zm115.06042,28.12622c12.88235,0.92311 29.19336,8.09689 29.54492,23.0528c1.95883,15.00865 -10.16846,29.55684 -25.7099,28.08501c-14.11661,-1.15955 -23.14499,-13.35332 -22.20761,-27.06258c-4.7262,-9.82969 2.6286,-20.35741 12.49942,-22.61709c1.91415,-0.64365 3.88168,-1.12543 5.87317,-1.45815zm-86.93419,1.27835c14.94448,-2.65778 31.94749,6.61306 31.99739,23.15527c1.40359,15.99194 -15.57494,19.12508 -27.15695,23.1313c-8.01422,5.17467 -16.3391,0.35667 -22.99829,-4.85698c-8.63997,-9.0434 -6.10048,-27.26721 3.02245,-35.52229c4.42388,-3.27404 9.90028,-4.56108 15.1354,-5.9073zm51.1378,42.18812c7.2348,9.94383 15.92023,25.10751 6.56407,36.39339c-8.30571,6.66107 -9.35284,-9.47466 -18.07048,-1.8754c-8.17816,-7.1624 -0.63536,-21.73717 5.10291,-29.01329c1.8913,-2.09525 4.05559,-3.93987 6.4035,-5.5047z",
33
+ "star_32": "m1,150l37.78866,-10.95375l-34.9264,-18.11479l39.19976,-3.37057l-30.72019,-24.58047l39.1037,4.34019l-25.33452,-30.10049l37.5051,11.88636l-18.97492,-34.46539l34.46528,18.97503l-11.88614,-37.50511l30.10025,25.33441l-4.34019,-39.10359l24.58048,30.72008l3.37057,-39.19964l18.11479,34.92639l10.95375,-37.78866l10.95375,37.78866l18.11479,-34.92639l3.37057,39.19964l24.58047,-30.72008l-4.34018,39.10359l30.10023,-25.33441l-11.88614,37.50511l34.4653,-18.97503l-18.97491,34.46539l37.50508,-11.88636l-25.33452,30.10049l39.10347,-4.34019l-30.71994,24.58047l39.1994,3.37057l-34.92581,18.11479l37.78842,10.95375l-37.78842,10.95375l34.92581,18.11479l-39.1994,3.37057l30.71994,24.58047l-39.10347,-4.34018l25.33452,30.10025l-37.50508,-11.88615l18.97491,34.4653l-34.4653,-18.97493l11.88614,37.5051l-30.10023,-25.33452l4.34018,39.10347l-24.58047,-30.71994l-3.37057,39.1994l-18.11479,-34.92581l-10.95375,37.78842l-10.95375,-37.78842l-18.11479,34.92581l-3.37057,-39.1994l-24.58048,30.71994l4.34019,-39.10347l-30.10025,25.33452l11.88614,-37.5051l-34.46528,18.97493l18.97492,-34.4653l-37.5051,11.88615l25.33452,-30.10025l-39.1037,4.34018l30.72019,-24.58047l-39.19976,-3.37057l34.9264,-18.11479l-37.78866,-10.95375z",
34
+ "sun": "m298.99939,149.99919l-60.12755,21.3835l0,-42.76601l60.12755,21.38251zm-43.65198,-105.36193l-27.38881,57.64266l-30.23897,-30.23995l57.62778,-27.40271zm-105.34804,-43.63768l21.38251,60.12764l-42.76602,0l21.38351,-60.12764zm-105.36263,43.63768l57.64236,27.40271l-30.23955,30.23995l-27.40281,-57.64266zm-43.63767,105.36193l60.12774,-21.38251l0,42.76601l-60.12774,-21.3835zm43.63767,105.34903l27.40281,-57.62877l30.23955,30.23996l-57.64236,27.38881zm105.36263,43.65096l-21.38351,-60.12753l42.76602,0l-21.38251,60.12753zm105.34804,-43.65096l-57.62778,-27.38881l30.23897,-30.23996l27.38881,57.62877zm-179.84834,-105.34903l0,0c0,-41.14515 33.35516,-74.5 74.50031,-74.5c41.14514,0 74.5,33.35485 74.5,74.5c0,41.14514 -33.35486,74.49998 -74.5,74.49998c-41.14514,0 -74.50031,-33.35484 -74.50031,-74.49998z",
35
+ "woman": "m150.04984,49.03255c13.33249,0 24.15346,-10.81348 24.15346,-24.15346c0,-13.34748 -10.82097,-24.16844 -24.15346,-24.16844c-13.34375,0 -24.16843,10.82096 -24.16843,24.16844c0,13.33998 10.82095,24.15346 24.16843,24.15346zm67.74049,104.1672l-21.67561,-80.39177c-0.20212,-0.72988 -0.48662,-1.42607 -0.83093,-2.06987c-2.46291,-7.53088 -9.53339,-12.9844 -17.88399,-12.9844h-54.86088c-8.70618,0 -16.01627,5.9214 -18.16845,13.95758c-0.14598,0.35184 -0.26575,0.7224 -0.37429,1.10417l-21.2901,80.38803c-1.41861,5.2701 1.71053,10.6862 6.98811,12.1048c5.27014,1.4111 10.68626,-1.71803 12.10487,-6.98813l16.71989,-63.14786h6.96569l-30.34438,114.25453h28.5927v78.87959c0,6.06738 4.91077,10.9819 10.98564,10.9819c6.05989,0 10.9819,-4.9108 10.9819,-10.9819v-78.87959h8.73613v78.87959c0,6.06738 4.91826,10.9819 10.99315,10.9819c6.05988,0 10.9819,-4.9108 10.9819,-10.9819v-78.87959h28.57767l-30.45665,-114.25453h7.14911l17.02679,63.14786c1.41859,5.2701 6.83472,8.39923 12.10481,6.98813c5.2589,-1.41859 8.38803,-6.83842 6.97693,-12.10854z"
36
+ }
37
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/music.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "clef_alto": "m51.25065,150.28749c0,-49.53207 0,-99.06413 0,-148.5962c11.59261,0 23.18523,0 34.77784,0c0,99.06413 0,198.12827 0,297.1924c-11.59261,0 -23.18522,0 -34.77784,0c0,-49.53209 0,-99.06413 0,-148.59621zm51.37634,0c0,-49.53207 0,-99.06413 0,-148.5962c8.48285,-2.46703 12.93837,1.84261 11.08508,10.0007c0.12527,45.40251 0.25053,90.80502 0.37581,136.20751c21.44767,-15.32626 29.57346,-41.86327 36.21976,-66.10667c3.81448,15.78812 9.88112,35.01518 27.29865,40.16045c16.60112,4.98381 31.30354,-10.63891 31.13045,-26.64445c2.89955,-20.45341 3.30077,-41.70258 -1.14742,-61.93042c-4.16455,-12.79745 -16.64639,-23.36595 -30.52771,-22.52039c-11.42384,-5.25948 -24.23628,10.96936 -9.59547,16.90924c12.31264,13.08186 -1.99968,35.47687 -19.11742,30.23324c-16.59583,-3.55596 -21.00951,-25.43777 -11.40723,-37.80838c13.77419,-17.97563 39.16574,-20.24264 60.03438,-17.62625c27.15413,3.08944 47.80745,27.56302 50.7352,54.02297c3.73869,23.61245 -2.35521,50.29027 -22.12251,65.37829c-16.57411,13.95533 -40.93645,15.69794 -60.41183,7.1722c-4.73631,7.1261 -9.47264,14.25217 -14.20895,21.37825c4.65338,6.95274 9.30673,13.90549 13.96008,20.8582c23.58311,-10.57065 54.40877,-5.07518 69.99907,16.43117c21.95821,28.96715 17.67499,75.52599 -10.84692,98.64314c-17.91376,14.62869 -43.09233,14.67899 -64.38158,8.83109c-16.11131,-4.2995 -31.82996,-19.966 -26.84735,-37.82117c2.51375,-15.55998 23.9128,-21.41389 34.33803,-9.83356c14.19543,12.82462 -6.37968,25.74036 -5.32516,38.10141c15.79561,11.97195 41.38054,0.70062 45.05746,-18.39487c5.84576,-20.96526 4.47285,-43.25116 1.61388,-64.56879c-1.53316,-14.33195 -14.00139,-28.78069 -29.45882,-24.78352c-16.25957,3.69221 -24.37509,20.62003 -27.1602,35.64745c-3.41434,11.00523 -4.50349,-10.5222 -7.16806,-14.04636c-5.53896,-17.66304 -15.20212,-35.01096 -30.07851,-46.1468c-1.53252,4.76282 -0.13866,10.70403 -0.62897,15.96893c-0.11874,43.15994 -0.2375,86.31984 -0.35623,129.47978c-8.48793,2.46848 -12.93407,-1.8443 -11.0575,-10.00076c0,-46.19846 0,-92.39696 0,-138.59544z",
3
+ "clef_bass": "m21.53929,297.24106c0.11552,-13.50244 21.89277,-17.95071 30.83244,-27.31851c34.50853,-23.15955 68.13189,-49.8976 89.28437,-86.39645c22.47179,-37.29227 34.65842,-82.97259 25.51732,-126.22972c-4.84746,-26.84145 -30.93637,-48.32386 -58.5412,-44.96438c-18.18078,2.48732 -39.18159,6.6724 -49.70108,23.45858c-11.41858,8.57642 -5.13639,28.67733 10.08619,21.04295c19.47556,-7.4344 43.93666,7.72539 43.16644,29.21231c0.02258,20.3737 -20.60109,34.74615 -39.82058,32.83379c-21.40677,-0.21405 -42.59771,-17.48695 -42.15028,-39.87929c-1.48358,-36.0903 29.74187,-65.56665 63.16554,-73.13066c29.88613,-9.31284 64.6309,-5.56545 89.8325,13.80772c18.75227,12.81883 33.51952,32.25211 36.60045,55.18989c6.65193,29.82199 -1.94455,60.59844 -16.85703,86.54317c-19.16537,34.9521 -48.44911,63.56561 -82.44233,84.09172c-31.5721,20.13449 -64.41224,38.31845 -98.38529,54.07944c-0.19582,-0.78018 -0.39163,-1.56039 -0.58745,-2.34058zm226.81013,-147.1503c-16.25441,-7.36092 -12.66826,-37.2715 6.2514,-37.94421c14.1568,-3.30239 27.38025,11.49424 23.01007,25.17739c-2.75677,12.80446 -18.12839,18.35408 -29.26147,12.76682zm0,-81.82211c-16.25441,-7.36089 -12.66826,-37.2715 6.2514,-37.9442c14.1568,-3.30238 27.38025,11.49425 23.01007,25.17739c-2.82837,12.84788 -18.04926,18.33069 -29.26147,12.76681z",
4
+ "clef_treble": "m142.57787,298.08936c-19.93291,-3.16858 -30.69543,-32.78793 -10.77837,-43.63799c20.76305,-10.6983 33.11169,27.38725 10.4319,31.10985c-12.41878,4.65247 16.12379,12.44363 21.44362,4.62054c16.62259,-8.04572 14.05481,-28.98639 10.0555,-43.73428c-1.38792,-11.29834 -3.1236,-23.3942 -17.37872,-16.97299c-34.39165,2.76706 -61.61951,-32.12309 -58.88461,-64.7627c0.92851,-30.78641 26.14601,-51.87253 44.81895,-73.25146c-6.13037,-27.96899 -7.98138,-60.28084 9.78998,-84.65368c16.36949,-19.81244 24.67825,16.44271 27.44722,28.74505c6.15059,28.7567 -6.11317,58.97542 -26.51985,79.24646c1.94853,9.61536 3.86572,19.23715 5.85146,28.84491c21.56471,-4.16351 42.14922,14.0585 43.32542,35.40215c3.33209,19.27364 -9.02991,37.47516 -25.91515,45.75842c-0.27765,16.55051 8.86742,33.71834 5.58147,50.80913c-3.15567,17.67035 -22.97263,26.33539 -39.26881,22.47659zm22.51283,-75.40413c6.10963,-11.46864 -4.97238,-31.72308 -5.58083,-46.4445c0.2393,-25.67101 -26.99069,4.97273 -18.89308,17.57916c2.40038,7.45953 23.23523,21.13914 4.09677,12.70238c-19.98106,-11.95877 -19.06588,-42.72807 -0.80893,-55.71979c15.31693,-3.39279 5.96193,-23.83228 3.07584,-30.54592c-18.81245,17.14481 -40.13555,38.73356 -36.89114,66.48257c2.4439,26.00902 30.79729,41.78694 55.00137,35.94611zm12.65782,-4.96449c17.94263,-11.51868 17.35378,-41.74863 -2.27676,-51.12454c-20.94589,-11.06784 -6.59929,17.92804 -6.2155,28.9649c2.90686,4.22505 1.26024,28.84393 8.49226,22.15964zm-22.11331,-138.56764c11.03699,-13.35171 23.65346,-32.62746 15.90224,-50.28019c-16.69221,-11.01859 -25.9682,18.77171 -26.37872,31.81623c-0.15186,8.45836 -1.39836,37.61288 10.47649,18.46396l0,0z",
5
+ "note_16th": "m88.44206,298.30295c-13.87988,-2.82538 -24.35809,-16.50861 -20.88289,-30.73529c4.91499,-19.9595 23.53616,-33.76636 42.17206,-40.32825c12.41348,-4.12247 26.50006,-3.4993 38.15588,2.63036c1.0408,-76.23686 0.44647,-152.49294 0.60452,-228.73842c4.20728,-0.00103 9.6062,-1.35928 8.46304,4.73352c0.58707,13.69153 7.31578,26.22541 17.65646,35.05743c23.06891,21.49232 49.01909,44.8303 54.31831,77.58647c1.50432,13.81924 -0.10796,27.74641 -3.17799,41.24139c9.09166,16.96843 8.54382,37.52667 4.8522,55.93042c-2.39383,9.71803 -6.29839,19.07953 -11.26178,27.74855c-11.71941,5.45538 1.38908,-8.91675 1.22467,-14.09427c6.33897,-15.55397 7.06616,-32.87975 4.18297,-49.26376c-6.28082,-23.96758 -30.02579,-35.67821 -49.12051,-48.20921c-6.90894,-2.70374 -21.67717,-19.0106 -18.74876,-3.03152c-0.64005,43.31421 -0.53076,86.63467 -0.73126,129.95221c-8.01517,20.08276 -26.40254,35.40967 -47.75954,39.25299c-6.54287,1.13068 -13.39496,1.54416 -19.94739,0.2674zm133.16364,-163.77284c0.19041,-24.65028 -18.17068,-44.59457 -36.16211,-59.2127c-9.00275,-6.78731 -18.53905,-13.97798 -28.66229,-18.37087c0.62265,14.17498 7.10901,27.98635 14.87303,39.75766c14.63148,19.60416 36.7207,32.71725 48.97745,54.30224c1.46973,-5.35919 1.02641,-10.98389 0.97392,-16.47633z",
6
+ "note_2_16th": "m49.3958,299.54056c-16.81947,-3.04166 -22.61933,-24.29047 -12.59162,-37.02081c13.30804,-19.68834 41.77522,-32.96074 64.07959,-20.53789c0.44453,-69.33055 0.18797,-138.66488 0.25596,-207.99711c55.61466,-11.21983 111.34956,-21.8626 166.98527,-32.98482c-0.12048,77.7042 -0.24097,155.40843 -0.36145,233.1126c-8.71588,23.50243 -36.87907,39.79991 -61.40202,32.51219c-14.59976,-4.3703 -18.09988,-23.21532 -9.97012,-34.76195c11.13289,-17.22395 31.85399,-29.0497 52.68539,-25.82347c5.94469,-0.60136 14.69865,9.02304 12.18605,-1.86462c0,-54.46642 0,-108.93282 0,-163.39921c-51.0519,10.27703 -102.20471,20.06591 -153.28023,30.23172c-0.17435,63.38239 0.43399,126.77441 -0.45506,190.14903c-1.62524,19.24988 -20.10281,32.38318 -37.35132,37.51443c-6.81397,1.14908 -13.90893,1.86209 -20.78043,0.8699zm133.17406,-258.40903c26.23065,-5.16204 52.47366,-10.26209 78.69298,-15.48133c3.33676,-13.29303 -11.59628,-4.66015 -18.89926,-4.33564c-44.78732,8.84114 -89.60051,17.55139 -134.38097,26.42687c-3.33676,13.29303 11.59627,4.66015 18.89925,4.33564c18.56081,-3.65804 37.12405,-7.30357 55.688,-10.94555z",
7
+ "note_2_32nd": "m49.39585,299.53995c-16.81947,-3.04169 -22.61932,-24.29047 -12.59161,-37.02081c13.30804,-19.68835 41.77521,-32.96077 64.07959,-20.53792c0.44453,-69.33055 0.18797,-138.66488 0.25596,-207.9971c55.61465,-11.21984 111.34956,-21.86261 166.98528,-32.98483c-0.12048,77.70421 -0.24097,155.40842 -0.36145,233.11262c-8.71591,23.50241 -36.8791,39.7999 -61.40204,32.51218c-14.59978,-4.3703 -18.09987,-23.21533 -9.97015,-34.76193c11.13292,-17.22395 31.854,-29.0497 52.68541,-25.82347c5.9447,-0.60136 14.69868,9.02304 12.18605,-1.86462c0,-46.71117 0,-93.42232 0,-140.13348c-51.05188,10.27702 -102.20473,20.0659 -153.28023,30.23172c-0.22871,56.35212 0.56696,112.72466 -0.58765,169.06043c-3.51923,18.91183 -22.11423,32.00891 -40.05743,35.8262c-5.92716,0.70624 -12.00983,1.31848 -17.94172,0.38101zm133.17405,-235.14331c26.23065,-5.16204 52.47366,-10.26208 78.69298,-15.48132c3.33676,-13.29303 -11.59628,-4.66015 -18.89923,-4.33564c-44.78734,8.84113 -89.60054,17.55138 -134.381,26.42687c-3.33677,13.29303 11.59627,4.66015 18.89925,4.33564c18.56078,-3.65805 37.12405,-7.30357 55.688,-10.94555zm0,-23.26575c26.23065,-5.16204 52.47366,-10.26209 78.69298,-15.48133c3.33676,-13.29302 -11.59628,-4.66015 -18.89923,-4.33563c-44.78734,8.84113 -89.60054,17.55139 -134.381,26.42687c-3.33677,13.29303 11.59627,4.66016 18.89925,4.33564c18.56078,-3.65804 37.12405,-7.30358 55.688,-10.94555z",
8
+ "note_2_64th": "m49.39639,299.53995c-16.81947,-3.04169 -22.61932,-24.29047 -12.59161,-37.02081c13.30804,-19.68835 41.77522,-32.9608 64.07959,-20.53792c0.44453,-69.33055 0.18797,-138.66488 0.25596,-207.99711c55.61465,-11.21983 111.34957,-21.86261 166.98528,-32.98482c-0.12048,77.70421 -0.24097,155.40842 -0.36145,233.11262c-8.71591,23.50241 -36.8791,39.7999 -61.40205,32.51218c-14.59976,-4.3703 -18.09987,-23.21533 -9.97012,-34.76193c11.1329,-17.22395 31.85399,-29.0497 52.68539,-25.8235c5.94467,-0.60133 14.69868,9.02307 12.18605,-1.86459c0,-38.95592 0,-77.91182 0,-116.86773c-51.0519,10.27703 -102.20474,20.06591 -153.28024,30.23172c-0.23563,48.66071 0.58183,97.34513 -0.58977,145.98728c-3.69252,18.80173 -22.14742,31.83179 -40.05531,35.63361c-5.92716,0.70627 -12.00984,1.31848 -17.94173,0.38101zm133.17406,-211.87756c26.23067,-5.16204 52.47368,-10.26209 78.69298,-15.48133c3.33676,-13.29303 -11.59627,-4.66015 -18.89925,-4.33564c-44.78732,8.84113 -89.60051,17.55138 -134.38099,26.42688c-3.33676,13.29302 11.59627,4.66015 18.89925,4.33562c18.56079,-3.65804 37.12405,-7.30356 55.688,-10.94553zm0,-23.26575c26.23067,-5.16204 52.47368,-10.26208 78.69298,-15.48132c3.33676,-13.29303 -11.59627,-4.66015 -18.89925,-4.33564c-44.78732,8.84113 -89.60051,17.55138 -134.38099,26.42687c-3.33676,13.29303 11.59627,4.66015 18.89925,4.33564c18.56079,-3.65805 37.12405,-7.30357 55.688,-10.94555zm0,-23.26575c26.23067,-5.16204 52.47368,-10.26209 78.69298,-15.48133c3.33676,-13.29302 -11.59627,-4.66015 -18.89925,-4.33563c-44.78732,8.84113 -89.60051,17.55139 -134.38099,26.42687c-3.33676,13.29303 11.59627,4.66016 18.89925,4.33564c18.56079,-3.65804 37.12405,-7.30357 55.688,-10.94554z",
9
+ "note_2_8th": "m49.39571,299.54196c-16.81947,-3.04169 -22.61933,-24.29047 -12.59162,-37.02081c13.30804,-19.68834 41.77522,-32.96077 64.07959,-20.53792c0.44447,-69.55862 0.18803,-139.12106 0.25597,-208.68139c55.61337,-11.00192 111.35248,-21.38966 166.98529,-32.30051c-0.12051,77.70421 -0.24097,155.40842 -0.36145,233.11263c-8.71594,23.50241 -36.8791,39.7999 -61.40207,32.51218c-14.59976,-4.3703 -18.09987,-23.21533 -9.97012,-34.76193c11.1329,-17.22395 31.854,-29.0497 52.68538,-25.82347c5.9447,-0.60136 14.69872,9.02304 12.18608,-1.86462c-0.20636,-61.46065 0.51324,-122.93768 -0.53098,-184.38539c-9.07608,-3.36956 -25.21706,4.38308 -36.83795,5.01031c-38.86079,7.56314 -77.80466,14.7255 -116.5762,22.73074c1.16985,68.10055 0.62434,136.24279 0.45018,204.35774c2.05843,15.54877 -6.51154,30.19547 -19.54225,38.30072c-11.24453,8.17932 -25.1371,11.12784 -38.82984,9.35175z",
10
+ "note_3_16th": "m15.05685,274.22351c-14.31707,-1.91919 -18.42601,-20.36026 -8.93697,-29.99135c10.38879,-13.67648 30.27091,-22.30884 46.50806,-13.88651c0.66153,-52.11798 0.28726,-104.24728 0.38611,-156.37085c81.97754,-16.40272 164.06679,-32.26359 246.07988,-48.4937c-0.2363,57.62228 0.57657,115.26416 -0.57095,172.87157c-1.96915,14.86053 -17.13602,24.73001 -30.79037,27.8163c-11.96523,3.66803 -28.81345,-4.27913 -25.97942,-18.60889c3.50381,-15.4984 19.49126,-26.6657 34.85991,-28.02376c8.59586,-2.14986 20.61923,9.25734 16.69226,-5.91415c0.09525,-39.33675 -0.07153,-78.67297 -0.13177,-118.00977c-38.18202,7.50178 -76.35632,15.04294 -114.54555,22.50813c-0.23268,48.18274 0.55394,96.38557 -0.57504,144.55286c-2.30531,15.49788 -18.60167,25.74417 -33.19453,27.71848c-14.44766,3.90948 -29.61349,-11.1328 -21.45115,-25.13463c9.01589,-16.79831 32.00478,-28.23689 49.88007,-18.48071c0.13591,-41.88866 0.57454,-83.7979 -0.20747,-125.67833c-9.66763,-2.10095 -24.53024,4.47319 -35.97192,5.4189c-26.23273,5.15636 -52.45877,10.34411 -78.68841,15.51694c-0.35831,49.24326 0.12716,98.5107 -1.08934,147.73389c-6.17624,16.23714 -25.20985,26.82423 -42.27338,24.45558l0,0zm101.53641,-195.02805c18.87659,-3.72421 37.75267,-7.44825 56.62927,-11.17233c3.17946,-13.298 -14.34059,-1.80056 -21.35852,-2.54169c-31.16307,6.26984 -62.32049,12.56754 -93.49695,18.76997c-1.80596,13.61728 18.79422,-0.36912 26.46645,1.18459c10.58865,-2.07109 21.17471,-4.15247 31.75974,-6.24054zm119.43625,-23.77348c18.94301,-3.80857 37.98227,-7.27608 56.8645,-11.31118c2.82892,-13.23786 -18.20215,0.42724 -25.56601,-1.09475c-29.37257,5.74051 -58.85892,11.05022 -88.16765,17.02801c-3.13623,14.00632 18.26294,0.04643 25.92744,1.45249c10.31323,-2.02774 20.62746,-4.05219 30.94171,-6.07457z",
11
+ "note_3_32th": "m15.05685,274.22333c-14.31707,-1.91882 -18.42601,-20.36018 -8.93697,-29.99106c10.3888,-13.67676 30.27089,-22.30908 46.50806,-13.88647c0.66166,-52.11824 0.28732,-104.24765 0.38611,-156.37099c81.97754,-16.40273 164.06694,-32.2636 246.07988,-48.4937c-0.2363,57.6225 0.57663,115.26395 -0.57123,172.87143c-1.96881,14.86089 -17.13586,24.73018 -30.79025,27.81644c-11.96498,3.66806 -28.81322,-4.27921 -25.97935,-18.60878c3.50368,-15.49834 19.49123,-26.6657 34.86018,-28.02408c8.67697,-2.20874 20.51364,9.40097 16.68222,-5.83759c-0.09845,-33.39989 0.78769,-66.86396 -0.50803,-100.22556c-37.99194,7.33447 -75.93604,14.91556 -113.90202,22.38341c-0.40428,43.27432 0.22905,86.58281 -1.10269,129.83c-6.66052,18.05263 -29.74564,30.16772 -47.98743,22.50237c-14.38366,-7.43967 -7.95995,-27.06667 2.9687,-34.4792c10.34322,-10.82147 29.63336,-12.35156 40.562,-8.05225c0.25528,-36.18434 0.11931,-72.37016 0.15388,-108.55522c-38.40674,7.73776 -76.89246,15.09384 -115.31775,22.74432c-0.2578,42.95952 0.63174,85.96188 -0.70086,128.88727c-5.20541,16.91916 -25.24538,27.88303 -42.40446,25.48965zm99.21976,-176.85336c19.73389,-3.88507 39.47778,-7.71994 59.20331,-11.64712c1.63908,-13.07382 -17.1093,-0.27914 -24.42491,-1.54683c-30.21908,5.91451 -60.4242,11.89998 -90.63543,17.85444c-2.77443,12.63378 14.55762,1.2752 21.41661,2.10594c11.47932,-2.25961 22.95964,-4.51424 34.44042,-6.76643zm2.31665,-18.17461c18.87643,-3.72409 37.75285,-7.44817 56.62927,-11.17224c3.17953,-13.298 -14.34081,-1.80056 -21.35843,-2.5417c-31.16306,6.26989 -62.32067,12.56752 -93.49722,18.77c-1.80564,13.61723 18.7942,-0.36929 26.46687,1.1845c10.58833,-2.07081 21.17455,-4.15248 31.7595,-6.24056zm119.82236,-6.10279c19.00511,-3.73167 38.01025,-7.46333 57.01538,-11.195c2.25488,-12.51775 -14.43167,-1.31337 -21.22391,-2.14778c-31.1899,6.14801 -62.39635,12.21269 -93.57906,18.3969c-0.48149,12.89743 19.70058,-0.51178 28.22481,0.73691c9.85522,-1.92534 19.70935,-3.85638 29.56277,-5.79102zm-0.38611,-17.67059c18.94318,-3.80859 37.98227,-7.27608 56.86438,-11.31118c2.82913,-13.23785 -18.20197,0.42724 -25.56577,-1.09474c-29.37247,5.74053 -58.85913,11.0502 -88.1676,17.028c-3.13618,14.00631 18.26254,0.04646 25.92732,1.45247c10.31334,-2.02773 20.6273,-4.05214 30.94167,-6.07454z",
12
+ "note_3_64th": "m15.05833,274.22296c-14.317,-1.9187 -18.42625,-20.3604 -8.93719,-29.99104c10.38896,-13.67708 30.27131,-22.30949 46.50857,-13.88661c0.66169,-52.1188 0.28732,-104.24842 0.38611,-156.37186c81.97786,-16.40303 164.06815,-32.26401 246.08122,-48.49419c-0.23633,57.62288 0.57712,115.26462 -0.57092,172.87238c-1.96869,14.86116 -17.13614,24.73065 -30.79056,27.81697c-11.96483,3.66806 -28.81317,-4.27963 -25.97963,-18.60901c3.50381,-15.49847 19.49141,-26.66583 34.8607,-28.02443c7.61099,-2.92159 20.18073,9.65431 16.68201,-4.30438c0.21829,-27.96678 0.10867,-55.9346 0.13544,-83.90191c-38.27235,7.48128 -76.53494,15.0156 -114.80267,22.52314c-0.22958,36.48441 0.55602,72.99504 -0.58997,109.45938c-3.18001,15.89902 -20.29759,26.40845 -35.74976,27.23267c-14.89929,2.89737 -27.08599,-14.42255 -17.93506,-27.04372c9.64191,-15.67046 31.65898,-26.22467 48.93309,-16.72427c0.33206,-30.58104 0.14311,-61.16617 0.19254,-91.74873c-38.39642,7.82673 -76.92161,15.04803 -115.31823,22.87476c-0.25736,36.94054 0.62957,73.92738 -0.70087,110.83084c-5.2055,16.9194 -25.24553,27.88339 -42.40482,25.49002l0,0zm101.38524,-159.31403c18.83891,-3.75145 37.70946,-7.35722 56.50069,-11.3393c2.95145,-13.53962 -17.91554,0.08701 -25.35307,-1.30814c-29.80621,5.87558 -59.6283,11.67136 -89.42722,17.5835c-2.26596,13.04952 15.28052,1.23864 22.46973,2.11949c11.93564,-2.35683 23.87244,-4.70798 35.80987,-7.05554zm-2.1648,-17.54025c19.73418,-3.88531 39.47784,-7.72015 59.20348,-11.64717c1.63916,-13.07402 -17.10936,-0.27902 -24.42487,-1.54701c-30.21927,5.9147 -60.42458,11.89994 -90.63596,17.8548c-2.77449,12.63354 14.55767,1.27519 21.41672,2.10558c11.47937,-2.25951 22.95979,-4.51389 34.44062,-6.7662zm123.16869,-6.50159c18.66148,-3.66445 37.32301,-7.3289 55.98506,-10.99284c1.75296,-13.03485 -16.50751,-0.89732 -23.95999,-1.87753c-30.19955,5.92758 -60.38982,11.90097 -90.58421,17.8548c-3.55789,11.04535 8.5943,3.94657 14.87352,3.58826c14.56204,-2.85567 29.12408,-5.71393 43.68562,-8.57269zm-120.85203,-11.67342c18.8765,-3.72417 37.75323,-7.44803 56.62942,-11.17215c3.18001,-13.29807 -14.34068,-1.80056 -21.35812,-2.54169c-31.16348,6.26993 -62.3213,12.56734 -93.49802,18.77035c-1.80566,13.61685 18.79432,-0.36964 26.46704,1.18407c10.58839,-2.07059 21.17467,-4.1525 31.75968,-6.24059zm119.82291,-6.10266c19.0054,-3.73169 38.01082,-7.46337 57.01573,-11.19506c2.25491,-12.51782 -14.4313,-1.3134 -21.22379,-2.14781c-31.19003,6.14807 -62.39655,12.21279 -93.5799,18.39685c-0.48135,12.89765 19.70091,-0.51173 28.22522,0.73721c9.8551,-1.92541 19.70967,-3.85648 29.56273,-5.7912zm-0.38611,-17.67071c18.94363,-3.8086 37.9825,-7.27608 56.86485,-11.31125c2.82944,-13.23789 -18.20175,0.42725 -25.56567,-1.09475c-29.37276,5.7406 -58.85979,11.05029 -88.16818,17.02811c-3.13626,14.0062 18.26253,0.04649 25.9276,1.4525c10.31329,-2.02775 20.62709,-4.05215 30.94141,-6.07461z",
13
+ "note_3_8th": "m15.02169,274.2272c-14.31707,-1.91879 -18.42601,-20.36015 -8.93697,-29.99103c10.3888,-13.67676 30.27088,-22.3091 46.50806,-13.88649c0.66166,-52.11824 0.28732,-104.24764 0.38611,-156.37097c81.97754,-16.40273 164.06694,-32.2636 246.07985,-48.4937c-0.2363,57.6225 0.57663,115.26395 -0.5712,172.87141c-1.96884,14.86089 -17.13589,24.73018 -30.79025,27.81644c-11.965,3.66806 -28.81323,-4.27919 -25.97937,-18.60878c3.50368,-15.49834 19.49124,-26.66568 34.8602,-28.02408c8.2316,-2.53128 20.41348,9.51646 16.65692,-5.23953c-0.07721,-45.31436 0.85016,-90.69309 -0.45593,-135.96806c-37.90379,6.83744 -76.18053,14.4211 -114.18623,21.74638c-0.22679,54.0925 0.53969,108.20272 -0.57019,162.28107c-1.77496,14.91302 -17.02997,24.75598 -30.69292,27.71687c-13.90182,4.60379 -31.50981,-7.66069 -24.80507,-22.93971c8.1866,-17.99985 32.25569,-30.36769 50.72748,-20.3566c0.32813,-48.569 0.14423,-97.14091 0.19258,-145.71125c-38.34256,7.86306 -76.73341,15.50194 -115.11303,23.18613c-0.70871,54.82025 0.60002,109.69145 -0.90556,164.48224c-5.27564,16.97054 -25.17379,27.85027 -42.40448,25.48964z",
14
+ "note_32nd": "m96.7115,298.78342c-12.19044,-1.97687 -21.5796,-13.65018 -18.87752,-26.14322c3.19898,-16.4884 18.16196,-28.11014 32.8273,-34.56326c11.8622,-4.83313 26.35187,-5.63437 37.63535,1.13913c0.44954,-79.35593 0.19681,-158.71518 0.26346,-238.07262c3.98198,-0.1698 8.54333,-0.99947 7.45644,4.60387c0.32353,13.2127 8.16176,24.35488 17.90031,32.62089c20.68701,19.0793 43.62003,41.1507 45.44289,71.03391c1.94933,11.70761 -4.32771,23.23071 -1.67,34.59584c2.53688,11.20206 1.78056,22.8308 0.17831,34.09036c7.53368,20.20854 5.71452,43.47615 -2.49284,63.20886c0.75815,6.16689 -13.8391,16.22797 -7.44476,5.95023c8.63434,-18.74539 13.17647,-41.8004 3.81317,-61.08943c-11.33986,-18.69514 -31.97612,-28.28085 -48.89772,-41.04474c-11.778,-11.86667 -5.42902,11.18993 -7.18364,18.06325c-0.26184,33.71661 -0.28255,67.43445 -0.41075,101.15173c-5.27325,12.84436 -14.94577,23.71875 -27.82796,29.29456c-9.44402,4.40988 -20.29373,7.32529 -30.71203,5.16064zm114.86545,-145.34879c-7.29857,-26.18551 -30.51866,-43.93251 -53.18727,-56.72259c-6.20538,-0.86809 1.83978,14.15399 3.5831,18.80585c8.11926,15.92772 24.10783,25.32948 35.63724,38.48439c5.02966,4.16844 10.75517,12.77017 14.6803,15.07132c0.57034,-5.18866 0.22502,-10.51091 -0.71336,-15.63898zm0.91826,-35.72012c-0.11551,-22.00919 -16.64085,-39.55235 -32.65781,-52.65142c-7.46819,-4.94457 -16.49954,-13.27054 -24.16978,-14.26883c1.45969,12.25124 6.9503,24.24821 17.03656,31.76259c14.34996,13.93145 29.52126,27.82796 39.47783,45.32379c1.14618,-3.04146 0.13112,-6.92123 0.3132,-10.16613z",
15
+ "note_4th": "m126.58881,297.40149c-11.87886,-2.65546 -23.26585,-13.54025 -21.01448,-26.56512c0.1731,-16.24911 13.85612,-27.71617 25.94878,-36.50977c15.62231,-10.78831 37.15717,-14.20154 54.34061,-5.04248c1.02979,-75.90828 0.44815,-151.83525 0.60191,-227.75206c3.00182,0.70564 9.53603,-2.12083 8.02534,3.09698c-0.14726,78.93155 0.33716,157.8673 -0.38513,236.79541c-0.07584,10.70851 -0.22026,22.31233 -7.75522,30.804c-13.91748,17.52454 -37.15509,29.1525 -59.76181,25.17303z",
16
+ "note_64th": "m104.92412,299.31976c-12.00094,-1.27536 -20.94641,-13.79388 -17.06551,-25.49271c6.43043,-17.60776 24.98182,-29.7767 43.42287,-30.74879c7.6006,-2.50558 20.88075,10.01114 17.93382,-3.27145c0.48503,-79.47305 0.24155,-158.94821 0.30153,-238.42232c5.75809,-1.70799 6.23006,2.55972 6.32732,7.33913c1.78415,17.85563 19.14293,26.89136 29.82072,39.25721c15.39714,15.12255 27.5349,36.04512 24.51741,58.34038c-3.08612,10.64033 -0.83701,20.84729 0.30066,31.5748c0.06851,11.58006 -4.18433,22.62605 -0.40593,34.00638c1.68036,11.01886 -3.23894,22.12428 2.03442,32.51251c2.40002,18.25101 0.69795,38.47595 -10.52008,53.59502c-7.11406,1.93207 2.97337,-8.35378 2.33067,-11.88858c6.3118,-18.25085 7.27405,-41.79056 -8.5262,-55.64728c-12.36734,-10.82431 -26.50575,-19.43405 -39.98901,-28.77931c-0.71652,35.81755 -0.4848,71.65158 -0.68907,107.47679c-5.08496,13.03387 -16.00215,23.09641 -29.22493,27.57315c-6.53331,2.3526 -13.63996,3.72845 -20.5687,2.57507zm98.72386,-126.48091c-6.34319,-22.74789 -26.51086,-38.16362 -46.20412,-49.27464c-5.25957,0.57732 2.32552,14.64314 4.87614,19.57021c8.86444,13.06609 22.37558,21.98311 32.7415,33.78232c3.44377,1.45969 10.43367,15.90742 9.37975,5.93784c0.13239,-3.35165 -0.09975,-6.73082 -0.79327,-10.01572zm0.7843,-31.02991c0.01227,-19.15482 -14.53879,-34.37045 -28.41721,-45.78492c-6.00691,-3.41928 -16.78343,-14.40513 -20.81033,-10.93629c1.48004,11.20951 7.52783,21.1048 16.47551,27.9065c11.85971,11.75211 24.67769,23.13779 32.59132,38.04211c0.77432,-2.77734 0.04828,-6.25352 0.16071,-9.2274zm0.01279,-39.15976c-0.40309,-21.71703 -17.74644,-38.41104 -34.56728,-49.83583c-4.69977,-2.50358 -18.46306,-14.73891 -13.78862,-1.7836c3.12802,17.13914 19.8609,25.3779 30.46255,37.43516c7.16287,5.47251 13.39691,18.87303 18.00247,22.03555c0.14136,-2.61625 -0.03749,-5.23595 -0.10913,-7.85128z",
17
+ "note_8th": "m92.11929,299.44888c-12.88673,-2.17523 -24.85642,-14.0065 -22.42534,-27.8176c1.23042,-15.16177 13.28207,-27.36446 25.40788,-35.40434c16.13786,-10.9864 38.20284,-15.06764 55.98708,-5.59207c1.04205,-76.42476 0.44817,-152.86866 0.60602,-229.30206c11.21484,-2.71548 7.58873,11.96767 10.1358,18.75797c2.43044,19.96716 15.82285,35.63469 29.15343,49.62502c16.53877,17.58521 34.10059,36.23084 39.47629,60.59399c5.87012,28.26657 -3.51422,57.18356 -15.69261,82.51581c-0.88187,8.11874 -15.77403,19.86469 -8.67888,5.1937c11.94699,-25.09727 21.81674,-54.00095 13.66216,-81.79225c-7.76553,-27.73048 -31.97011,-50.88958 -60.78398,-55.04219c-0.18622,58.55498 0.45346,117.12103 -0.68288,175.66663c-2.83272,17.24548 -17.81155,30.04147 -32.83268,37.34811c-10.35778,4.50974 -22.04797,7.23831 -33.33228,5.2493z",
18
+ "note_half": "m126.15042,298.46863c-16.82465,-2.00256 -23.94094,-21.72537 -20.50175,-36.48892c5.91676,-23.32147 29.06407,-39.43811 52.28738,-42.05833c8.81128,-0.72736 18.52644,-0.60411 25.78337,4.94891c5.95566,-2.36537 1.76544,-11.69408 2.85246,-17.2854c0,-68.81003 0,-137.6201 0,-206.43012c14.97716,-2.18183 5.30603,19.02521 7.94768,27.71113c-0.09924,75.95386 0.62134,151.91534 -0.76007,227.86198c-7.30341,28.38443 -39.39244,46.36703 -67.60907,41.74075zm2.8452,-12.40747c22.98492,-7.3089 44.37535,-22.56259 55.31068,-44.49013c0.95541,-13.55527 -16.00528,-10.73553 -23.6718,-6.15868c-13.5024,6.76553 -26.21068,15.65268 -36.74068,26.51123c-6.99238,6.4256 -15.89267,26.17618 0.78696,25.05563l2.30408,-0.3252l2.01074,-0.59286l0,0z",
19
+ "note_whole": "m130.51953,195.65829c-18.47874,-2.9818 -38.13104,-9.41365 -49.81914,-24.96915c-4.87284,-6.5025 -6.85786,-14.78229 -6.23731,-22.81049c-0.81288,-10.41815 5.23877,-19.78279 13.11027,-26.04227c15.71593,-12.69998 36.4436,-17.12403 56.18739,-18.21444c21.01479,-0.84168 42.85126,2.6237 61.20964,13.32044c11.19275,6.86285 21.10484,18.66567 20.54733,32.45548c0.612,8.09668 -0.91914,16.68852 -6.59294,22.84065c-11.24144,13.63681 -28.92738,19.59387 -45.72455,22.87505c-14.06622,2.54445 -28.55254,2.69426 -42.68069,0.54472zm34.33258,-7.95905c9.06644,-1.9348 15.01314,-11.03741 14.88672,-20.03276c1.54852,-18.89767 -4.73529,-39.56404 -20.09192,-51.52234c-8.61502,-6.06224 -20.8895,-6.65757 -30.00668,-1.42353c-6.79661,4.10276 -9.33514,12.23845 -9.31819,19.7824c-0.73656,16.04378 3.97748,32.8201 14.66045,45.0217c7.49542,7.87076 19.3475,12.08484 29.86963,8.17453z"
20
+ }
21
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/object.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "ball": "m1.36762,144.54343c-0.61252,-24.33647 11.43968,-48.24649 31.71385,-61.85355c33.0555,-25.12355 76.68359,-36.57172 117.69406,-29.65477c20.30775,-3.13354 29.29549,17.94864 22.15137,34.18353c-11.04268,10.79923 -30.25032,0.52836 -44.5518,6.11385c-46.3661,5.97041 -92.1348,26.12911 -123.47163,61.54787c-0.19116,-3.78908 -5.04203,-6.31387 -3.53584,-10.33693zm0.56006,21.59657c2.46893,-17.16783 19.59014,-26.10648 31.49495,-36.53964c40.07716,-28.36518 90.31613,-39.61352 138.89854,-37.70576c1.20387,19.56051 -8.00084,38.23036 -19.07559,53.7263c-15.20721,8.47826 -34.11861,-1.17561 -50.23914,6.54221c-28.27367,6.8441 -59.74523,15.46761 -77.84163,40.11734c-6.57559,19.79451 -20.47401,-0.35286 -21.54921,-12.00313c-1.52846,-4.62877 -1.3158,-9.384 -1.6879,-14.13731zm7.76269,-58.70418c2.42006,-21.53997 16.61662,-39.35048 29.64042,-55.76294c14.68114,-17.49181 34.66698,-30.31521 57.12629,-35.01287c17.80165,-4.64955 36.14864,-6.58389 54.39959,-8.53692c13.84103,10.63111 22.64574,29.11792 20.32661,46.60463c-10.75017,2.72292 -29.7578,-6.48294 -44.25362,-4.23798c-41.11142,0.38721 -83.13954,16.86419 -110.9226,47.60359c-2.31326,2.96635 -4.3931,6.11006 -6.31669,9.34248zm-2.20363,84.97105c15.37329,12.3277 15.8773,33.69405 25.32488,49.77684c-11.32475,-14.57886 -21.29314,-31.61081 -25.32488,-49.77684zm12.17333,11.7446c4.82258,-13.28815 19.94093,-31.96367 32.55468,-30.57486c5.04242,12.98813 7.22698,27.06129 15.42273,38.77007c22.00548,40.39473 62.27551,75.33984 110.15025,76.43997c7.82913,1.58691 28.58411,-3.6853 27.74063,-1.50394c-20.00963,9.82742 -43.17618,11.98239 -65.22374,11.19174c-40.94611,-2.71915 -81.7309,-22.38535 -106.34646,-55.65858c-6.96676,-11.95032 -10.92698,-25.33659 -14.29809,-38.66251zm33.70255,-33.88084c11.04849,-5.13829 31.74819,-20.7682 40.05036,-8.17067c20.26116,39.90601 54.51507,73.83781 96.68548,89.7942c21.8947,7.30453 46.52556,7.18939 67.87685,-1.92662c-8.90472,13.82597 -23.64018,22.69292 -37.52655,30.83714c-35.49046,15.14874 -78.39111,6.93469 -108.29421,-16.68286c-28.94243,-22.9118 -51.66176,-55.70389 -58.71476,-92.285l-0.04169,-0.84726l-0.03548,-0.71893l0,0l0,0zm14.80587,-143.69432c26.85995,-18.47492 60.14433,-27.13922 92.60995,-24.83766c-16.61871,10.60714 -37.47179,6.57748 -55.695,12.32051c-12.71339,2.76803 -25.33243,6.4903 -36.91495,12.51714zm23.19239,130.17215c17.68391,-8.37067 37.80864,-8.2348 56.92004,-7.08942c11.52194,17.94525 19.73788,38.80402 37.6284,51.74121c20.84937,18.617 51.18832,23.87227 77.45898,15.12419c9.02167,-6.09496 19.03778,-2.20023 14.1109,9.88971c-5.93085,20.07378 -26.98962,28.88977 -46.28781,29.86346c-39.48146,3.94382 -75.60028,-18.48682 -102.27098,-45.57831c-15.55914,-15.57706 -28.70033,-33.74123 -37.55954,-53.95085zm59.9713,-149.25921c14.39017,-11.41684 33.98842,-1.08634 48.71259,4.37706c14.6449,12.52997 16.60739,33.37817 20.47758,51.17717c6.47049,41.78263 3.85324,86.6684 -15.69031,124.8082c-4.67027,13.36929 -18.09242,20.61154 -26.69522,6.15724c-9.99724,-11.02568 -17.64142,-23.85532 -24.85538,-36.77173c-4.26648,-12.35977 9.69913,-21.07201 12.62395,-32.37317c5.6987,-11.2672 7.1479,-23.94022 7.7876,-36.27168c2.68518,-18.44756 0.04341,-37.58501 -4.80806,-55.44724c-3.40224,-9.88385 -8.92734,-19.45691 -17.55275,-25.65586zm41.36089,197.33399c28.32747,-32.0033 32.81847,-77.44762 30.6862,-118.36129c-1.29825,-24.12249 -4.96657,-49.05092 -17.68674,-70.0582c13.14473,0.40704 27.28206,12.75397 37.58124,21.8466c29.18982,37.11403 37.77368,91.40852 15.58273,134.05255c-8.72922,17.24329 -20.55305,32.80717 -34.43375,46.22929c-11.62009,-0.9548 -23.39864,-5.3515 -31.72969,-13.70895zm32.30334,13.89389c30.50691,-29.40305 52.59978,-71.66214 46.00664,-114.99303c-2.62479,-20.29454 -10.03497,-39.89902 -21.13239,-57.06778c20.32477,12.66527 31.62595,35.09759 41.79111,55.93748c14.61285,36.42265 6.66864,80.8159 -19.44537,109.92648c-13.41086,7.60643 -32.33356,8.77071 -47.21999,6.19685zm50.22404,-6.80072c10.46527,-18.28113 22.34006,-36.81323 23.43076,-58.50224c1.62656,-7.25171 -0.89633,14.22787 -1.77191,18.74721c-2.78329,15.96013 -6.41766,32.99399 -16.3092,46.01608c-2.27573,-1.26239 -1.2605,-7.4102 -5.34964,-6.26105z",
3
+ "bolt": "m178.14388,74.00616l-108.49727,68.79685l107.15599,23.63498l-99.04335,73.85934l-39.98779,-12.47227l28.36194,71.19228l112.7131,-31.06076l-47.58928,-12.98325l129.22581,-106.08589l-118.12698,-19.22734l114.07071,-71.6874l-65.0681,-10.76349l70.86891,-45.56109l-26.03423,-0.65478l-109.97452,62.50492l51.92505,10.50792z",
4
+ "bulb": "m148.28435,1.01645c-19.71313,-0.08707 -41.0383,4.93402 -53.87904,21.08005c-10.00002,11.90277 -20.52196,24.53872 -22.82235,40.47736c-5.18059,28.1529 -4.92928,57.93743 3.64143,85.4047c4.96631,13.63997 16.45209,23.50325 23.37698,36.11604c9.14968,13.20706 13.47519,29.26166 12.26267,45.27029c24.17088,0 48.34173,0 72.5126,0c0.07924,-23.9402 14.94635,-43.62665 28.19687,-62.22926c9.25131,-10.94521 15.23657,-24.20433 17.34691,-38.38177c4.07767,-25.40971 5.00331,-52.60092 -4.43568,-76.9665c-8.96201,-18.6421 -19.94247,-39.09958 -40.93047,-46.16479c-11.25407,-4.11034 -23.39734,-4.80265 -35.26991,-4.60611zm-36.97603,226.70836c24.34058,0 48.68115,0 73.0217,0c-4.36798,8.93942 -9.9079,18.74007 -6.84158,28.88942c-4.05983,8.82452 1.13719,17.61151 -5.54364,25.68655c-2.46005,11.06699 -16.46573,11.92905 -25.84717,12.23193c-10.13806,1.12546 -21.40701,-1.68927 -25.2739,-12.25085c-8.04343,-5.6481 1.65114,-12.52795 -4.58124,-18.87732c7.18661,-7.80208 -5.34555,-11.88156 -0.88777,-20.35059c-1.22452,-5.78517 -5.73284,-8.48584 -4.0464,-15.32915zm-0.15865,0.0249c24.34056,0 48.68114,0 73.02171,0c-1.83408,8.68544 -9.76653,16.89687 -6.75067,25.63821c1.71628,7.25716 -5.42461,13.19765 -1.14021,20.86113c-3.26378,9.1944 -9.79655,19.57855 -20.90657,19.54898c-10.7323,0.01825 -25.30243,3.58121 -31.95258,-7.11847c-2.51509,-6.44772 -10.6368,-10.31369 -4.40095,-17.31061c-7.73209,-5.79929 5.18552,-14.38748 -4.75156,-18.20934c4.72482,-9.15317 -5.09683,-14.41997 -3.11917,-23.40991l0,0zm-0.30553,-0.19208c24.34058,0 48.68115,0 73.02173,0c-1.83408,8.68544 -9.76651,16.89688 -6.75064,25.63823c1.71623,7.25714 -5.42465,13.19763 -1.14023,20.86111c-4.2211,6.69464 -8.74136,17.62585 -17.58711,18.4115c-9.70837,0.11472 -19.41676,0.2294 -29.12514,0.34415c-6.65182,-7.13144 -16.14077,-15.45563 -10.92694,-24.96432c-7.35572,-5.15384 5.77059,-13.49446 -4.37249,-16.88078c4.72483,-9.15317 -5.09684,-14.41994 -3.11918,-23.40988l0,0zm19.95543,64.05962c10.3149,0 20.62982,0 30.94472,0c-3.3429,2.41727 -5.36609,8.04688 -10.20465,6.82349c-4.97464,-0.38892 -10.5618,0.58282 -15.16096,-0.64023c-1.8597,-2.0611 -3.71941,-4.12219 -5.5791,-6.18326zm11.23076,-64.53401c-3.56728,-52.49875 -7.20926,-74.75493 -20.64074,-106.52489c-13.43148,-31.76996 -2.88758,-21.17014 27.12348,-24.60654c30.01106,-3.43639 13.46907,9.90684 13.48128,34.43486c0.01221,24.52803 1.7489,36.82391 3.69955,58.10826c-1.9278,20.61055 1.80084,20.75101 -2.79076,37.25708",
5
+ "car_smart": "m28.92024,238.37814c-20.54175,-8.15092 -27.36674,-32.3504 -27.6178,-52.52942c-2.7836,-14.94118 14.71887,-25.93048 8.95686,-41.2937c-2.18657,-22.71175 4.68564,-45.20703 14.9548,-65.22043c0.32475,-12.85873 10.87969,-17.84956 22.37955,-17.11762c37.15603,-4.71741 74.98359,-4.84966 112.15372,-0.39277c22.18198,4.11681 39.85953,19.32546 58.61859,30.81274c11.63586,8.63808 25.21985,14.32888 36.92355,22.63131c12.64026,10.62529 24.51556,22.47708 33.27448,36.57193c3.15143,14.09033 7.38165,28.09947 9.54742,42.2829c4.39661,13.27223 -4.6037,21.62047 -11.41214,30.84103c-10.34,12.57306 -29.90723,17.53416 -44.71561,10.78313c-10.28528,-3.75465 -14.07077,-19.70746 -25.7968,-18.60466c-44.20906,-0.65964 -88.41812,-1.31926 -132.62719,-1.97884c-10.24168,13.44736 -24.40165,28.14365 -42.91705,26.05086c-4.02312,-0.33679 -7.97831,-1.33774 -11.7224,-2.83646z",
6
+ "car": "m26.77284,183.48201c-8.08779,-6.80998 -23.25337,0.56996 -25.08215,-11.86069c-3.52016,-11.04616 7.23365,-19.6761 14.38957,-26.36473c12.51913,-6.23676 26.95447,-6.99092 40.49323,-9.84883c16.2238,-2.35439 33.11552,-4.36668 47.10119,-13.71207c15.9294,-9.9651 33.67083,-18.25834 52.86141,-18.11141c26.44141,-0.91634 53.7986,-0.02856 78.2453,11.26058c15.36688,6.93465 31.87709,10.4591 48.27711,13.85143c13.95395,1.83385 10.70889,16.88237 15.35007,26.15973c3.54291,10.65329 -4.11594,21.25732 -15.32654,21.59605c-11.85318,2.69405 -25.72552,2.95921 -34.00009,13.30453c-8.47623,9.38277 -23.69647,9.05888 -32.32811,0.09547c-3.56866,-2.21568 -5.9512,-7.58008 -10.70335,-6.65411c-44.31184,0.24008 -88.64653,-0.63266 -132.93902,0.78894c-11.57394,-0.92139 -16.38131,13.44077 -28.69251,12.44249c-6.30352,0.19554 -12.27285,-9.98318 -17.64611,-12.94739z",
7
+ "coud": "m193.50864,67.27344c-28.56444,0 -53.08249,14.81322 -65.08365,36.1982c-4.7932,-2.67596 -10.08009,-4.29625 -15.72245,-4.29625c-17.06268,0 -31.26126,13.72618 -35.64974,32.35901c-7.49058,-2.96072 -16.20005,-4.7533 -25.50328,-4.7533c-27.90971,0 -50.54951,15.27039 -50.54951,34.09579c0,16.99312 18.56764,30.96303 42.68829,33.54732c-1.08106,1.83421 -1.91961,3.65059 -1.91961,5.57599c0,18.02431 49.38134,32.72462 110.23999,32.72462c60.85864,0 110.24005,-14.70032 110.23999,-32.72462c0,-1.21274 -0.75272,-2.29501 -1.18832,-3.47357c2.66562,0.6629 5.30496,1.37115 8.22687,1.37115c16.28061,0.00005 29.5253,-11.06223 29.5253,-24.6806c0,-13.61838 -13.24469,-24.68059 -29.5253,-24.68059c-1.99515,0 -3.69165,0.68915 -5.57599,1.00551c1.64767,-5.44531 2.74228,-11.00153 2.74228,-16.91078c0,-36.04859 -32.63087,-65.35786 -72.94485,-65.35786z",
8
+ "drop": "m101.50413,119.73441c-169.70167,149.53423 29.55369,277.04852 105.31838,71.70643l58.26123,-190.46983l-163.57961,118.7634z",
9
+ "drop": "m115.15536,295.759c-42.01334,-15.78687 -72.12711,-65.94934 -65.28346,-108.74701c4.3154,-26.98718 95.35947,-190.81818 103.3105,-185.90417c2.59511,1.60386 25.68835,39.79974 51.31831,84.87975c41.0565,72.21342 46.5999,85.67899 46.5999,113.19665c0,55.77716 -44.6394,101.46498 -98.23825,100.54555c-15.6409,-0.26834 -32.60906,-2.05518 -37.707,-3.97076zm42.09262,-28.05386c1.39066,-7.22116 -1.85785,-10.74289 -9.90955,-10.74289c-18.35065,0 -43.80598,-23.24161 -49.49309,-45.18889c-6.0666,-23.41179 -22.15186,-26.19615 -24.52774,-4.24574c-4.57746,42.29059 76.21872,100.22086 83.93037,60.17752z",
10
+ "electric_guitar": "m168.96899,1.09303c-2.62799,0.19977 -5.017,2.04496 -6.96899,4.55579c0.009,13.46278 -11.116,25.03858 -14.875,34.35928c2.30499,1.8475 1.13,2.9332 -1.03101,4.4286c-0.17,2.5165 0.468,4.9685 2.468,7.3554c-2.591,41.8755 -6.024,92.17889 -8.718,134.4599c6.14801,0.138 12.354,1.117 18.81201,0.687c-0.007,-32.55499 2.539,-84.562 3.282,-116.00749c-0.101,-10.2094 -0.504,-24.029 13.12399,-28.8618c-6.94499,-14.7833 5.922,-35.70095 -5.562,-40.97666c-0.146,-0.00122 -0.293,-0.00885 -0.438,0c-0.03099,0.00187 -0.062,-0.00236 -0.093,0l0,-0.00001zm11.692,171.76396c-4.715,6.66701 -11.79199,10.17 -14.146,13.60501c-5.37599,8.46799 -14.379,-3.16701 -26.89,2.99599c0.065,-1.02399 0.153,-2.172 0.21899,-3.20599c-0.07199,-0.002 -0.14699,0.00101 -0.21899,0c-6.659,1.013 -12.157,-7.713 -12.594,-15.44901c5.55199,-11.89 -14.242,-18.006 -19.5,-5.82899c-3.943,13.605 -0.41,27.51199 4.78201,40.672c5.933,16.162 -8.871,30.179 -13.2192,45.17601c-4.1375,9.502 -4.2709,20.46999 2.68719,29.192c9.486,13.58398 29.413,18.62799 47.563,18.758c3.23401,0.224 6.44801,0.414 9.68701,0.58499c57.61699,3.284 34.35399,-35.13699 25.282,-68.41299c-5.82201,-21.66299 1.48199,-36.38 6.269,-42.614c2.659,-7.35001 6.02899,-23 -9.92101,-15.472l0,-0.00101zm-34.567,-128.4203c2.43501,-11.918 -8.10399,0.709 0,0z",
11
+ "guitar": "m158.45264,1.00012c-0.96039,0.00612 -1.8884,0.06411 -2.73161,0.18457c-4.49716,0.64245 -8.99768,2.5655 -8.99768,2.5655c0,0 0.00569,8.99612 -0.63676,15.42064c-0.64244,6.42453 -3.21147,17.34015 -3.21147,17.34015l3.15611,6.32144l0.05536,-1.172l10.62189,1.86414l0.94128,0.05537c0,0 1.28059,-1.28413 2.56551,-3.21148c1.2849,-1.92736 3.85747,-3.21148 3.85747,-3.21148c0,0 0.63675,-9.63641 0.63675,-16.70339c0,-7.06698 2.57472,-18.63212 2.57472,-18.63212c0,0 -4.66991,-0.84783 -8.83156,-0.82133zm-1.74417,42.52442l-10.62189,-0.58139l-0.05536,-0.11074l-5.5278,113.65688c0.19376,0.03734 0.44296,0.08304 0.44296,0.08304c0.14801,2.18161 0.8121,3.84209 1.8549,5.14021l11.84926,5.41707c0.3562,0.09476 0.71249,0.18806 1.07048,0.28609l1.28276,-123.83578l-0.29532,-0.05537zm-0.98744,123.89115l0,0.20302l-1.07048,-0.48911c-4.80661,-1.27875 -9.3821,-2.34575 -11.84926,-5.41707l-2.5009,-1.14432l0.20303,-4.07893c-2.16553,-0.41753 -15.40038,-2.83867 -20.1179,-0.47989c-5.13962,2.56979 -8.99552,6.42279 -10.28043,14.77466c-1.2849,8.3519 2.57119,23.77351 1.92873,34.05275c-0.64246,10.27924 -7.71416,19.91469 -10.92641,28.26657c-3.21227,8.35188 -6.4202,17.99007 -2.5655,32.12404c3.85472,14.13391 17.99164,23.77151 25.70107,26.9838c7.70942,3.21225 23.7631,5.14023 23.7631,5.14023c0,0 15.42752,2.58041 25.06432,1.93796c20.23672,-3.64624 28.72404,-15.65756 29.98303,-30.66595c1.259,-15.00839 -4.71521,-33.01251 -13.40884,-48.65207c-9.50552,-17.10013 8.59656,-39.76326 -0.76596,-52.52802c-9.74182,-13.28188 -16.9409,8.64334 -23.78156,3.87593c-2.77655,-1.93504 -6.09895,-3.00655 -9.37605,-3.90359z",
12
+ "helicopter": "m145.07504,214.22588c7.36339,2.46503 20.68225,-9.04681 7.26401,-9.72079c-9.08205,-5.71648 20.13416,-1.63675 8.22827,-13.70961c-12.73747,-2.77332 -22.69479,-12.46857 -27.12979,-24.871c-5.18111,-13.36012 -22.04633,-9.68964 -33.09622,-13.54991c-22.05075,-3.93678 -44.07657,-8.59007 -66.50366,-9.73877c-7.45861,8.40495 -10.97594,26.46114 -24.24853,25.75703c-13.26779,-6.6758 0.56035,-23.43509 -3.41489,-33.00934c-7.79329,-2.62592 -6.3066,-7.72096 1.2938,-8.36586c11.59587,-8.00312 1.94812,-23.47349 -0.57486,-34.01581c-6.13778,-10.01295 7.00565,-18.8414 12.01386,-7.02641c6.38165,12.3224 10.0863,25.85204 15.15507,38.7706c1.5816,8.28716 13.30507,3.58878 19.44516,6.06101c25.89155,2.78554 51.80775,5.58556 77.83869,6.66318c13.03992,-5.6261 26.8783,-10.34038 41.29993,-8.34114c10.08574,3.05644 15.78185,-0.7104 15.3338,-11.13895c5.72609,-15.02095 -14.03151,-8.3312 -22.93935,-10.54208c-35.53757,-1.72837 -71.18015,-2.25171 -106.70476,-0.12757c-7.88696,-1.96813 10.41693,-1.78943 13.19444,-2.24187c37.48436,-1.98021 75.04819,-1.00611 112.54227,-2.69012c10.81163,-3.98792 21.54251,3.11311 32.56555,1.91049c27.80304,1.13907 55.63103,1.5356 83.45552,1.62198c-7.86588,5.84674 -22.53885,0.05771 -32.94354,1.5061c-20.90826,-0.64194 -41.94905,-1.24406 -62.73434,1.6021c-8.09567,7.82163 -3.84563,24.5245 6.28453,28.41502c10.32359,5.55025 20.91692,10.41565 30.31529,17.0117c5.93991,11.31316 22.72864,20.80537 17.77679,35.05132c-5.67494,11.7886 -26.25294,4.37625 -31.4632,7.69153c3.85466,6.8309 17.16597,7.52176 19.55997,10.01913c-13.12518,3.78056 -0.61014,11.85339 6.85498,9.29091c9.21201,2.18106 -9.36668,3.71298 -12.4339,2.99583c-14.92371,0.12004 -29.83833,-0.52202 -44.7583,-0.72722c14.41679,-0.6433 28.87468,-0.63033 43.24721,-2.05975c-3.35245,-13.78374 -21.0649,-7.04161 -31.27078,-9.43388c-4.97525,-2.55072 -21.3748,0.68501 -13.06122,5.71829c4.63876,-2.08994 15.97667,-0.09111 5.65021,2.25237c-18.67735,0.60303 -37.42494,0.87289 -56.04201,-1.0285zm45.45972,-5.72816c-5.69293,-8.23618 -25.36656,-6.65369 -28.94688,0.84814c6.97417,5.6115 21.3663,3.65866 28.78714,0.2599l0.15974,-1.10805l0,0zm41.15115,-4.79669c-8.39107,-5.92067 -23.748,-6.57408 -31.28664,-1.76099c9.46599,4.52687 21.07687,2.68456 31.28664,1.76099zm-41.46053,-2.71213c8.91602,-7.60876 -15.73071,-6.19264 -21.17932,-5.80487c-13.47525,6.12955 5.46666,7.82239 11.1256,6.8177c3.37151,-0.02223 6.75697,-0.27522 10.05373,-1.01283z",
13
+ "katana": "m127.28507,65.14041c-7.0962,-0.54353 -19.86895,7.61395 -17.02093,-6.32892c4.93732,-8.55679 18.30521,-4.48845 16.78561,5.48313l0.17354,0.62374l0.06178,0.22205l0,0zm17.16403,-18.49577c-6.77293,11.60114 -22.03173,12.43076 -33.48896,16.75148c-5.30647,3.04373 -26.81981,5.02184 -18.62814,-4.27034c11.69819,-7.75446 26.08649,-9.62626 39.25734,-13.85468c4.24069,-0.99664 9.15976,-1.38791 12.85976,1.37354zm-35.03055,12.26915c-5.16663,-17.73298 -10.33324,-35.46593 -15.49986,-53.19891c6.32053,-8.5978 20.25586,-4.8693 18.32531,6.59137c4.01678,13.78642 8.03355,27.57289 12.05032,41.35935m-5.56697,9.33072c22.56753,79.08354 48.81091,157.2375 81.6054,232.70842m-75.6467,-234.76585c22.79797,74.42342 46.12929,148.92492 77.59851,220.23124c0.43317,5.52475 14.80417,22.08911 1.77542,17.81497c-4.05151,-1.9415 -10.97104,-0.62137 -11.72156,-6.31741c-30.74268,-74.29929 -57.39734,-150.28568 -79.92033,-227.47363",
14
+ "leaf_1": "m35.63904,285.5213c9.77121,-31.99348 23.14531,-59.08864 35.83149,-72.59245c13.5912,-14.46718 7.56125,-20.74258 -6.45918,-6.72212c-5.89857,5.89853 -7.58387,1.61555 -7.58387,-19.2735c0,-49.83961 25.83589,-80.67891 87.99842,-105.04016c52.59872,-20.61333 91.37741,-43.79435 107.45589,-64.23479l13.10197,-16.65652l0,28.9807c0,35.83507 -11.11781,89.97318 -23.42422,114.0641c-13.0549,25.55626 -57.80217,72.72934 -79.76038,84.08435c-19.67261,10.17316 -61.687,13.16808 -84.14172,5.99792c-11.19011,-3.57314 -14.7415,-0.84308 -20.53963,15.78944c-3.8556,11.06018 -7.0102,26.79501 -7.0102,34.96616c0,9.27652 -3.72057,14.8566 -9.90572,14.8566c-7.3461,0 -8.78352,-3.67429 -5.56284,-14.21973z",
15
+ "menorah": "m86.17095,270.72717c9.02267,-23.09398 33.59461,-36.70894 57.45916,-38.45409c0,-4.91623 0,-9.83244 0,-14.74866c-38.305,-2.75075 -76.20534,-18.86525 -101.66333,-48.29793c-23.2569,-24.97108 -35.58256,-58.55817 -37.27682,-92.42073c-13.45491,-9.58464 12.56556,-16.55834 15.7355,-5.95607c-7.24909,8.79617 -0.22592,22.59306 0.80432,33.36646c11.47956,50.91395 56.38975,91.60496 107.78628,98.82449c13.14264,5.82442 16.6395,-2.00252 14.39308,-13.99509c2.81267,-9.48175 -7.44086,-6.60333 -13.57417,-8.37358c-40.52152,-7.1041 -75.7263,-38.65041 -86.11595,-78.75394c-2.97659,-11.47399 -3.94458,-24.11363 -7.5694,-33.51495c7.70256,-6.02401 26.19639,-1.60448 15.97076,9.15671c1.09565,45.56244 38.91488,85.76277 83.65269,91.48959c9.24995,4.52249 8.18915,-3.21457 7.85701,-9.40932c4.90146,-15.06035 -9.71606,-12.79654 -19.53952,-16.50067c-27.62657,-9.39215 -47.87568,-36.35101 -49.79039,-65.51331c-13.2153,-11.51691 15.74928,-17.53994 15.95383,-5.55531c-7.59098,8.84892 0.96818,23.21689 5.54156,32.6564c10.3335,16.84724 28.24842,28.22102 47.83452,30.47823c0,-7.52246 0,-15.04491 0,-22.56738c-18.20905,-2.81535 -32.7534,-18.72141 -34.8131,-36.97318c-12.40635,-10.10166 14.58986,-14.97282 16.53119,-5.29626c-6.736,5.28018 -1.66743,13.75206 2.28733,19.47478c2.82583,3.38407 16.81124,15.16281 15.99458,6.28913c0,-10.03232 0,-20.06463 0,-30.09695c-8.52963,-5.41637 3.21713,-9.02356 -1.91258,-15.41792c2.95047,-6.63559 4.28693,-23.79965 6.49635,-24.00391c7.40089,10.5439 4.63795,25.17949 11.62167,34.34932c-3.85376,4.14688 -4.52328,8.74758 -3.86568,14.89357c0,8.05796 0,16.11592 0,24.17388c11.03737,-3.24367 21.02812,-12.42406 21.72646,-24.48188c-12.61211,-14.80839 30.69243,-11.52931 12.71999,1.59949c-1.87195,17.85434 -17.0993,32.57059 -34.44644,35.57887c0,7.49281 0,14.98562 0,22.47842c29.68999,-2.98224 55.87296,-29.1582 56.39926,-59.47436c-12.36238,-13.6567 27.91393,-12.75137 14.12813,-0.52898c-3.16423,14.80594 -6.23018,30.54218 -16.29872,42.63571c-12.70108,17.1765 -33.04718,27.37456 -53.98901,29.78134c0.16994,9.14496 -4.65584,28.46082 11.13493,20.75519c39.31322,-6.69104 72.74197,-39.63307 78.74797,-79.43351c5.73982,-8.84732 -8.70837,-25.00382 8.28397,-22.77648c10.50046,-2.44997 11.98193,6.34405 5.8692,11.72792c-2.04736,35.89314 -21.91298,70.45303 -53.09749,88.60141c-15.52945,9.13074 -33.16388,14.88533 -51.17824,15.85547c0.17836,7.53169 -0.4761,15.16116 0.61618,22.6142c35.31798,-2.81911 70.08339,-18.10321 93.11932,-45.67516c20.51892,-23.04272 31.08511,-53.43816 32.84753,-84.00375c-10.43478,-10.04525 11.39471,-11.61442 16.59445,-7.04305c-5.883,11.66189 -5.21661,27.04671 -9.11984,40.52295c-12.68921,53.08224 -58.41412,95.84925 -111.85593,105.51876c-7.32545,1.56883 -14.77785,2.36348 -22.20172,3.29227c-0.71042,9.09981 -0.50818,18.35449 11.59822,16.61531c20.59241,4.32626 40.36211,18.55411 46.94081,39.19469c-43.09088,0 -86.18179,0 -129.2727,0c0.31159,-0.88608 0.62314,-1.77219 0.93477,-2.65823zm-82.88959,-208.5947c-0.54892,-8.1144 4.33617,-25.42208 5.66115,-27.43132c2.27143,7.42761 12.58555,23.78434 4.72879,28.60384c-3.29131,-0.38358 -8.04816,1.57556 -10.38994,-1.17252zm34.52483,0.55147c-1.7146,-10.01769 5.4567,-19.41309 4.51432,-29.75311c3.2196,8.43034 16.36395,29.47998 1.96646,30.42084c-2.16732,-0.0773 -4.38702,0.03559 -6.48078,-0.66772zm35.62526,-0.17229c-1.52428,-9.82734 5.20364,-19.12723 4.61758,-29.264c3.98769,8.50923 17.39558,32.7104 -0.82941,30.07944l-1.91212,-0.12625l-1.87605,-0.68919l0,0zm34.60818,0.26421c-1.9521,-10.01891 5.40411,-19.48301 4.43661,-29.84504c3.27068,8.4848 16.29427,29.36411 1.98981,30.63179c-2.15335,-0.08198 -4.37302,0.0215 -6.42642,-0.78675zm69.2087,-0.38279c-1.5544,-10.07727 5.31645,-19.6095 4.34973,-30.05398c2.70531,5.08463 6.32187,13.73424 7.91895,20.50951c4.77353,11.03205 -3.95122,12.51878 -12.26868,9.54446zm35.71176,0.44493c-2.89404,-9.75608 5.30412,-19.55815 4.07715,-29.90718c3.42241,8.32418 12.40758,23.15913 6.53528,30.337c-3.53609,0.01955 -7.13571,0.41735 -10.61243,-0.42982zm34.8703,-0.20629c-2.23303,-8.13288 4.34842,-24.82986 5.07388,-28.23849c3.49849,8.39077 16.5291,33.58521 -2.7937,28.93562l-2.28018,-0.69713l0,0zm35.10023,-0.15336c-1.90784,-8.93159 5.20419,-21.786 4.83258,-28.71239c3.47043,8.02287 16.97986,32.30244 -0.94669,29.60343l-1.89111,-0.14957l-1.99478,-0.74147l0,0z",
16
+ "sun": "m238.69324,135.65587c0,46.60593 -40.30034,84.38748 -90.01332,84.38748c-49.71299,0 -90.01332,-37.78156 -90.01332,-84.38748c0,-46.6059 40.30033,-84.38747 90.01332,-84.38747c49.71298,0 90.01332,37.78154 90.01332,84.38747zm-7.30318,120.56636c-4.20586,5.25757 -51.12886,-47.27794 -57.30507,-44.69331c-6.17622,2.58458 -15.51068,86.52086 -22.0425,87.47173c-6.53188,0.9509 -17.76118,-85.09837 -24.12714,-87.15329c-6.36602,-2.05495 -43.23042,49.74286 -48.75608,45.85272c-5.52563,-3.89009 13.12091,-67.11951 10.04803,-73.73549c-3.07288,-6.61595 -73.34953,-9.72229 -74.79697,-17.10284c-1.44742,-7.38055 63.69369,-26.7453 64.2322,-34.0554c0.53854,-7.31011 -43.73452,-48.6129 -41.1993,-55.02096c2.53526,-6.40806 61.81988,21.03078 65.82475,15.40928c4.00487,-5.62149 -7.80805,-76.34053 -1.73039,-78.4587c6.07763,-2.11818 42.59449,47.54089 49.0827,47.30339c6.48817,-0.23753 26.02002,-62.46352 32.64861,-61.00949c6.62865,1.45401 3.32251,66.01247 8.45366,70.32287c5.13113,4.31043 55.87381,-16.15842 59.63792,-10.29998c3.76414,5.85843 -29.09575,62.86814 -27.11681,69.62658c1.97902,6.75845 62.18188,13.20758 61.3595,20.19514c-0.82245,6.98758 -75.2742,9.96732 -78.37666,16.73535c-3.10245,6.76802 28.36942,83.35484 24.16354,88.6124z",
17
+ "chair": "m118.11539,289.55515c-7.47328,-14.4328 15.76004,-21.83389 9.75156,-35.26642c-9.58212,-8.59285 -23.93785,-6.58557 -35.88018,-5.92961c-12.89955,-1.58955 -16.67669,11.62587 -24.11323,17.11729c-14.66394,-4.57965 -9.41961,-23.5907 3.95336,-25.69879c17.48831,-7.56879 36.79559,-3.21786 54.96046,-6.57193c13.14571,-7.65541 -3.09947,-24.09541 -13.42245,-25.84244c-17.08451,-6.9008 -38.18468,-7.0844 -51.24073,-21.62146c-5.1916,-11.32457 -3.84497,-32.04767 10.15321,-36.01445c6.34414,-10.73523 5.01785,-24.55999 3.35027,-36.47948c1.42348,-12.67513 -26.70474,-5.25126 -14.90233,-18.24577c10.64336,-8.15804 24.36629,-13.15867 37.81105,-12.959c10.96933,0.36309 11.71716,12.99065 -0.37628,9.89848c-12.30081,6.18077 -7.72121,23.86169 -7.25122,35.16668c5.93514,11.39347 22.04794,5.36764 32.49831,7.07384c14.8665,0.39955 21.73593,0.44463 35.83476,5.23605c14.25958,-1.05464 8.64325,-20.61657 0.17079,-21.97119c-13.03212,-2.87206 -25.91483,-10.25501 -33.20317,-21.62909c-4.07215,-13.26593 1.69855,-27.24597 4.77583,-40.18096c9.18196,-28.0861 34.13237,-54.57027 65.33606,-54.63913c19.15414,0.28833 38.85675,14.48402 42.13089,33.82922c2.48616,20.34066 -5.57245,41.0622 -0.32005,61.11538c12.75343,7.04288 -8.70227,17.78406 -9.16336,27.50478c-5.43883,14.13736 6.97403,30.55498 -3.65417,43.29654c-6.64983,9.38159 -22.16026,14.5639 -22.43275,27.04953c-3.81845,11.24202 -21.47061,10.39703 -30.28923,17.71931c-9.74564,2.86838 -15.08257,19.17726 -0.15649,15.9317c14.55153,-0.35892 29.03516,-5.81784 43.55118,-3.3181c10.39314,7.10063 -0.45073,21.22018 -10.9113,14.54475c-5.46445,0.08383 -25.63857,2.80356 -18.76688,8.69054c17.18895,4.015 35.8273,9.2104 46.95854,24.0352c10.43184,13.90863 -12.73763,17.22995 -17.34935,5.0022c-19.29245,-15.75378 -48.30531,-24.24933 -70.97163,-10.48508c-13.71143,5.73386 -10.53542,20.53958 -11.98199,31.56015c-5.57972,6.09451 -13.26627,-2.5275 -14.84946,-7.91876zm100.26077,-153.99353c-4.62421,-8.64436 -27.69229,-17.16811 -30.82967,-4.71919c1.76141,12.68575 19.62196,15.68971 29.15408,10.51048c1.73547,-1.32053 2.45361,-3.74493 1.67558,-5.79129z"
18
+ }
19
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/raphael.txt ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ All Raphaël icons were retrieved from here:
2
+ http://raphaeljs.com/icons/
3
+
4
+ And fall under the MIT license:
5
+
6
+ Copyright © 2008 Dmitry Baranovskiy
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ The software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.
app/code/local/AuIt/PublicationBasic/data/shapelib/raphael_1.json ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"size": 32,
2
+ "fill": true,
3
+ "data": {
4
+ "raph_?": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z",
5
+ "raph_i": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M14.757,8h2.42v2.574h-2.42V8z M18.762,23.622H16.1c-1.034,0-1.475-0.44-1.475-1.496v-6.865c0-0.33-0.176-0.484-0.484-0.484h-0.88V12.4h2.662c1.035,0,1.474,0.462,1.474,1.496v6.887c0,0.309,0.176,0.484,0.484,0.484h0.88V23.622z",
6
+ "raph_$": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.255,23.88v2.047h-1.958v-2.024c-3.213-0.44-4.621-3.08-4.621-3.08l2.002-1.673c0,0,1.276,2.223,3.586,2.223c1.276,0,2.244-0.683,2.244-1.849c0-2.729-7.349-2.398-7.349-7.459c0-2.2,1.738-3.785,4.137-4.159V5.859h1.958v2.046c1.672,0.22,3.652,1.1,3.652,2.993v1.452h-2.596v-0.704c0-0.726-0.925-1.21-1.959-1.21c-1.32,0-2.288,0.66-2.288,1.584c0,2.794,7.349,2.112,7.349,7.415C21.413,21.614,19.785,23.506,17.255,23.88z",
7
+ "raph_temp": "M19.361,17.744V3.438c0-1.85-1.504-3.348-3.352-3.348c-1.852,0-3.35,1.498-3.35,3.348v14.193c-2.106,1.154-3.536,3.391-3.536,5.961c0,3.752,3.042,6.793,6.793,6.793c3.753,0,6.793-3.041,6.793-6.793C22.71,21.099,21.363,18.924,19.361,17.744zM15.917,29.27c-3.129,0-5.676-2.548-5.676-5.68c0-2.072,1.132-3.98,2.954-4.979l0.581-0.316V3.437c0-1.231,1.003-2.231,2.236-2.231c1.231,0,2.232,1,2.232,2.231v14.942l0.548,0.324c1.756,1.036,2.806,2.861,2.806,4.887C21.596,26.722,19.048,29.27,15.917,29.27zM18.225,19.666l-1.099-0.647V9.26h-2.233v9.695l-1.161,0.635c-1.464,0.805-2.375,2.334-2.375,4c0,2.514,2.047,4.561,4.56,4.561c2.515,0,4.56-2.047,4.56-4.561C20.479,21.988,19.616,20.485,18.225,19.666z",
8
+ "raph_thunder": "M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h5.271l-2.166,3.398l1.977-0.411L10,30.875l9.138-10.102L17,21l2.167-2.023h4.269c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979z",
9
+ "raph_snow": "M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM16.667,24.09l1.119-1.119c0.389-0.391,0.389-1.025,0-1.416c-0.392-0.391-1.025-0.391-1.415,0l-1.119,1.119l-1.119-1.119c-0.391-0.391-1.025-0.391-1.415,0c-0.391,0.391-0.391,1.025,0,1.416l1.118,1.117l-1.12,1.121c-0.389,0.393-0.389,1.021,0,1.414c0.195,0.188,0.451,0.293,0.707,0.293c0.256,0,0.512-0.104,0.708-0.293l1.12-1.119l1.12,1.119c0.195,0.188,0.451,0.293,0.708,0.293c0.256,0,0.512-0.104,0.707-0.293c0.391-0.396,0.391-1.021,0-1.414L16.667,24.09zM25.119,21.817c-0.393-0.392-1.025-0.392-1.415,0l-1.12,1.121l-1.12-1.121c-0.391-0.392-1.022-0.392-1.414,0c-0.39,0.392-0.39,1.022,0,1.416l1.119,1.119l-1.119,1.119c-0.39,0.391-0.39,1.022,0,1.413c0.195,0.195,0.451,0.294,0.707,0.294c0.257,0,0.513-0.099,0.707-0.294l1.12-1.118l1.12,1.118c0.194,0.195,0.45,0.294,0.707,0.294c0.256,0,0.513-0.099,0.708-0.294c0.389-0.391,0.389-1.022,0-1.413l-1.12-1.119l1.12-1.119C25.507,22.842,25.507,22.209,25.119,21.817zM9.334,23.953l1.119-1.119c0.389-0.394,0.389-1.021,0-1.414c-0.391-0.394-1.025-0.394-1.415,0l-1.119,1.119l-1.12-1.121c-0.391-0.39-1.023-0.39-1.415,0c-0.391,0.396-0.391,1.024,0,1.418l1.119,1.117l-1.12,1.118c-0.391,0.394-0.391,1.025,0,1.414c0.196,0.195,0.452,0.293,0.708,0.293c0.256,0,0.511-0.098,0.707-0.293l1.12-1.119l1.121,1.121c0.195,0.195,0.451,0.293,0.707,0.293s0.513-0.098,0.708-0.293c0.389-0.391,0.389-1.022,0-1.416L9.334,23.953z",
10
+ "raph_hail": "M25.372,6.912c-0.093-3.925-3.302-7.078-7.248-7.08c-2.638,0.002-4.942,1.412-6.208,3.518c-0.595-0.327-1.28-0.518-2.01-0.518C7.627,2.834,5.773,4.639,5.69,6.898c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.875c3.312,0,6-2.688,6-6C29.434,9.944,27.732,7.715,25.372,6.912zM23.436,16.584H7.562c-2.209-0.006-3.997-1.793-4.001-4c-0.002-1.983,1.45-3.619,3.35-3.933c0.265-0.043,0.502-0.19,0.657-0.414C7.723,8.015,7.78,7.74,7.731,7.475C7.703,7.326,7.686,7.187,7.686,7.051c0.004-1.225,0.995-2.217,2.22-2.219c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.31c0.342-0.066,0.626-0.308,0.748-0.631c0.749-1.992,2.662-3.412,4.911-3.41c2.898,0.004,5.244,2.351,5.251,5.25c0,0.16-0.009,0.325-0.026,0.496c-0.05,0.518,0.305,0.984,0.814,1.079c1.859,0.345,3.273,1.966,3.271,3.923C27.43,14.791,25.645,16.578,23.436,16.584zM11.503,23.709c-0.784-0.002-1.418-0.636-1.418-1.416c0-0.785,0.634-1.416,1.418-1.418c0.78,0.002,1.413,0.633,1.416,1.418C12.917,23.073,12.284,23.707,11.503,23.709zM19.002,23.709c-0.783-0.002-1.418-0.636-1.418-1.416c0-0.785,0.635-1.416,1.418-1.418c0.779,0.002,1.414,0.633,1.414,1.418C20.417,23.073,19.784,23.707,19.002,23.709zM7.503,28.771c-0.783-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.415,0.635,1.415,1.416C8.917,28.135,8.284,28.77,7.503,28.771zM15.001,28.771c-0.782-0.002-1.417-0.637-1.417-1.418s0.634-1.414,1.417-1.416c0.78,0.002,1.413,0.635,1.415,1.416C16.415,28.135,15.784,28.77,15.001,28.771zM22.5,28.771c-0.782-0.002-1.416-0.634-1.416-1.416c0-0.785,0.634-1.418,1.416-1.42c0.781,0.002,1.414,0.635,1.418,1.42C23.915,28.138,23.282,28.77,22.5,28.771z",
11
+ "raph_rain": "M25.371,7.306c-0.092-3.924-3.301-7.077-7.248-7.079c-2.638,0.001-4.942,1.412-6.208,3.517c-0.595-0.327-1.28-0.517-2.01-0.517C7.626,3.229,5.772,5.033,5.689,7.293c-2.393,0.786-4.125,3.025-4.127,5.686c0,3.312,2.687,6,6,6v-0.002h15.874c3.312,0,6-2.688,6-6C29.434,10.34,27.732,8.11,25.371,7.306zM23.436,16.979H7.561c-2.209-0.006-3.997-1.792-4.001-4.001c-0.002-1.982,1.45-3.618,3.35-3.931c0.265-0.043,0.502-0.191,0.657-0.414C7.722,8.41,7.779,8.136,7.73,7.87C7.702,7.722,7.685,7.582,7.685,7.446C7.689,6.221,8.68,5.23,9.905,5.228c0.647,0,1.217,0.278,1.633,0.731c0.233,0.257,0.587,0.375,0.927,0.309c0.342-0.066,0.626-0.307,0.748-0.63c0.749-1.992,2.662-3.412,4.911-3.41c2.899,0.004,5.244,2.35,5.251,5.249c0,0.161-0.009,0.326-0.027,0.497c-0.049,0.517,0.305,0.984,0.815,1.079c1.86,0.344,3.274,1.966,3.271,3.923C27.43,15.186,25.645,16.973,23.436,16.979zM9.029,26.682c0-1.115,0.021-5.425,0.021-5.432c0.002-0.409-0.247-0.779-0.628-0.932c-0.38-0.152-0.815-0.059-1.099,0.24c-0.006,0.008-1.037,1.098-2.081,2.342c-0.523,0.627-1.048,1.287-1.463,1.896c-0.399,0.648-0.753,1.066-0.811,1.885C2.971,28.355,4.324,29.711,6,29.714C7.672,29.71,9.029,28.354,9.029,26.682zM4.971,26.727c0.091-0.349,1.081-1.719,1.993-2.764c0.025-0.029,0.051-0.061,0.076-0.089c-0.005,1.124-0.01,2.294-0.01,2.808c0,0.567-0.461,1.028-1.029,1.03C5.447,27.71,4.997,27.273,4.971,26.727zM16.425,26.682c0-1.115,0.021-5.424,0.021-5.43c0.002-0.41-0.247-0.779-0.628-0.934c-0.381-0.152-0.814-0.058-1.1,0.242c-0.006,0.008-1.035,1.094-2.08,2.342c-0.522,0.623-1.047,1.285-1.463,1.894c-0.399,0.649-0.753,1.068-0.809,1.888c0,1.672,1.354,3.028,3.029,3.028C15.068,29.711,16.425,28.354,16.425,26.682zM12.365,26.729c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.03,0.05-0.06,0.075-0.089c-0.005,1.123-0.011,2.294-0.011,2.807c-0.002,0.568-0.461,1.027-1.028,1.029C12.84,27.709,12.392,27.273,12.365,26.729zM23.271,20.317c-0.38-0.153-0.816-0.06-1.099,0.24c-0.009,0.008-1.037,1.097-2.08,2.342c-0.523,0.625-1.049,1.285-1.462,1.896c-0.402,0.649-0.754,1.067-0.812,1.886c0,1.672,1.354,3.029,3.03,3.029c1.673,0,3.027-1.357,3.027-3.029c0-1.115,0.022-5.425,0.022-5.431C23.9,20.84,23.651,20.47,23.271,20.317zM21.879,26.681c-0.004,0.568-0.463,1.027-1.031,1.029c-0.553-0.002-1.002-0.438-1.028-0.982c0.092-0.349,1.081-1.72,1.993-2.765c0.025-0.028,0.05-0.059,0.074-0.088C21.883,24.998,21.879,26.167,21.879,26.681z",
12
+ "raph_undo": "M14.378,6.781c0.41,0.988,1.938,0.346,1.524-0.648C15.708,5.667,15.515,5.2,15.32,4.734c-0.289-0.695-0.875-3.233-2.042-2.747c-1.03,0.433-0.128,1.846,0.142,2.494C13.739,5.248,14.059,6.015,14.378,6.781M20.8,7.223c1.094,0.453,1.538-1.551,1.813-2.216c0.281-0.677,1.478-2.565,0.357-3.029c-1.092-0.453-1.537,1.548-1.813,2.216C20.876,4.872,19.68,6.757,20.8,7.223M18.137,6.692c1.183,0,0.829-2.019,0.829-2.742c0-0.732,0.383-2.935-0.829-2.935c-1.183,0-0.828,2.019-0.828,2.742C17.309,4.49,16.926,6.692,18.137,6.692M23.058,8.729c0.852,0.85,2.142-0.972,2.659-1.49c0.512-0.513,2.187-1.687,1.352-2.524c-0.834-0.836-2.013,0.843-2.522,1.353C24.028,6.585,22.198,7.874,23.058,8.729M24.565,10.986c0.448,1.091,2.183-0.01,2.849-0.286c0.676-0.28,2.858-0.771,2.394-1.89c-0.455-1.091-2.181,0.008-2.849,0.285C26.281,9.377,24.102,9.866,24.565,10.986M12.036,8.742c0.752,0.75,1.932-0.415,1.17-1.173c-0.253-0.347-0.646-0.645-0.949-0.946c-0.541-0.539-2.162-2.799-3.068-1.889c-0.79,0.791,0.586,1.755,1.083,2.25C10.859,7.57,11.447,8.156,12.036,8.742M29.365,17.397c-0.768-0.317-1.534-0.635-2.302-0.952c-0.646-0.268-2.07-1.169-2.495-0.135c-0.481,1.168,2.054,1.747,2.751,2.035c0.455,0.188,0.911,0.377,1.367,0.565C29.7,19.331,30.379,17.816,29.365,17.397M29.942,12.817c-0.83,0-1.66,0-2.49,0c-0.701,0-2.357-0.288-2.355,0.83c0,1.262,2.567,0.827,3.319,0.827c0.493,0,0.986,0,1.479-0.001C30.99,14.473,31.043,12.815,29.942,12.817M24.234,18.568c-0.673-0.673-1.773,0.189-1.281,1.007c-0.295-0.264-0.614-0.499-0.961-0.69c3.894-2.866,3.328-9.006-1.021-11.107c-2.024-0.978-4.481-0.828-6.368,0.394c-0.871,0.564-1.603,1.336-2.119,2.236c-0.262,0.456-0.468,0.943-0.612,1.449c-0.074,0.258-0.131,0.521-0.172,0.786c-0.083,0.534-0.109,0.553-0.553,0.871c-0.182-0.957-1.64-0.675-2.326-0.674c-0.815,0.001-1.963-0.217-2.752,0.046c-0.867,0.289-0.652,1.615,0.263,1.613c0.324,0.052,0.701-0.001,1.028-0.001c0.904-0.001,1.809-0.002,2.713-0.003c-0.308,0.352-0.496,0.969-0.94,0.77c-0.467-0.209-0.978-0.319-1.49-0.319c-0.951,0-1.877,0.375-2.561,1.036c-0.681,0.658-1.088,1.569-1.123,2.516c-0.944,0.31-1.791,0.891-2.421,1.658c-2.756,3.354-0.265,8.554,4.058,8.554v-0.002c3.597,0,7.194,0,10.792,0c1.341,0,2.843,0.167,4.168-0.113c3.652-0.772,5.361-5.21,3.133-8.229c0.548,0.547,1.096,1.094,1.644,1.641c0.183,0.183,0.364,0.424,0.575,0.574c0.552,0.552,1.524,0.066,1.403-0.713c-0.097-0.622-1.042-1.267-1.448-1.673C25.319,19.652,24.776,19.11,24.234,18.568M18.137,8.787c4.559,0.009,6.576,5.979,2.912,8.734c-0.637-3.505-4.161-5.824-7.629-5.03C13.943,10.367,15.852,8.792,18.137,8.787M22.895,24.08c-0.633,3.346-4.149,2.879-6.68,2.879c-3.017,0-6.033,0-9.049,0c-0.767,0-1.62,0.084-2.373-0.095c-2.274-0.538-3.416-3.242-2.172-5.235c0.678-1.087,1.568-1.19,2.626-1.67c0.604-0.273,0.456-0.807,0.456-1.331c0.002-0.597,0.284-1.169,0.756-1.533c0.787-0.608,1.943-0.497,2.611,0.234c1.098,1.205,1.96-1.346,2.507-1.893c2.025-2.025,5.475-1.708,7.068,0.684c0.344,0.516,0.581,1.102,0.693,1.712c0.097,0.529-0.115,1.341,0.188,1.796c0.291,0.47,0.943,0.463,1.397,0.68c0.508,0.23,0.963,0.591,1.304,1.034C22.834,22.125,23.064,23.107,22.895,24.08M6.906,9.917c0.881,0.364,1.763,0.727,2.644,1.091c0.353,0.146,0.707,0.292,1.06,0.437c0.997,0.412,1.637-1.119,0.642-1.526C10.47,9.441,9.456,9.177,8.609,8.828c-0.354-0.146-0.707-0.292-1.06-0.437C6.554,7.98,5.912,9.505,6.906,9.917",
13
+ "raph_sun": "M15.502,7.504c-4.35,0-7.873,3.523-7.873,7.873c0,4.347,3.523,7.872,7.873,7.872c4.346,0,7.871-3.525,7.871-7.872C23.374,11.027,19.85,7.504,15.502,7.504zM15.502,21.25c-3.244-0.008-5.866-2.63-5.874-5.872c0.007-3.243,2.63-5.866,5.874-5.874c3.242,0.008,5.864,2.631,5.871,5.874C21.366,18.62,18.744,21.242,15.502,21.25zM15.502,6.977c0.553,0,1-0.448,1-1.001V1.125c-0.002-0.553-0.448-1-1-1c-0.553,0-1.001,0.449-1,1.002v4.85C14.502,6.528,14.949,6.977,15.502,6.977zM18.715,7.615c0.125,0.053,0.255,0.076,0.382,0.077c0.394,0,0.765-0.233,0.925-0.618l1.856-4.483c0.21-0.511-0.031-1.095-0.541-1.306c-0.511-0.211-1.096,0.031-1.308,0.541L18.174,6.31C17.963,6.82,18.205,7.405,18.715,7.615zM21.44,9.436c0.195,0.194,0.451,0.293,0.707,0.293s0.512-0.098,0.707-0.293l3.43-3.433c0.391-0.39,0.39-1.023,0-1.415c-0.392-0.39-1.025-0.39-1.415,0.002L21.44,8.021C21.049,8.412,21.049,9.045,21.44,9.436zM23.263,12.16c0.158,0.385,0.531,0.617,0.923,0.617c0.127,0,0.257-0.025,0.383-0.078l4.48-1.857c0.511-0.211,0.753-0.797,0.541-1.307s-0.796-0.752-1.307-0.54l-4.481,1.857C23.292,11.064,23.051,11.65,23.263,12.16zM29.752,14.371l-4.851,0.001c-0.552,0-1,0.448-0.998,1.001c0,0.553,0.447,0.999,0.998,0.999l4.852-0.002c0.553,0,0.999-0.449,0.999-1C30.752,14.817,30.304,14.369,29.752,14.371zM29.054,19.899l-4.482-1.854c-0.512-0.212-1.097,0.03-1.307,0.541c-0.211,0.511,0.031,1.096,0.541,1.308l4.482,1.854c0.126,0.051,0.256,0.075,0.383,0.075c0.393,0,0.765-0.232,0.925-0.617C29.806,20.695,29.563,20.109,29.054,19.899zM22.86,21.312c-0.391-0.391-1.023-0.391-1.414,0.001c-0.391,0.39-0.39,1.022,0,1.413l3.434,3.429c0.195,0.195,0.45,0.293,0.706,0.293s0.513-0.098,0.708-0.293c0.391-0.392,0.389-1.025,0-1.415L22.86,21.312zM20.029,23.675c-0.211-0.511-0.796-0.752-1.307-0.541c-0.51,0.212-0.752,0.797-0.54,1.308l1.86,4.48c0.159,0.385,0.531,0.617,0.925,0.617c0.128,0,0.258-0.024,0.383-0.076c0.511-0.211,0.752-0.797,0.54-1.309L20.029,23.675zM15.512,23.778c-0.553,0-1,0.448-1,1l0.004,4.851c0,0.553,0.449,0.999,1,0.999c0.553,0,1-0.448,0.998-1l-0.003-4.852C16.511,24.226,16.062,23.777,15.512,23.778zM12.296,23.142c-0.51-0.21-1.094,0.031-1.306,0.543l-1.852,4.483c-0.21,0.511,0.033,1.096,0.543,1.307c0.125,0.052,0.254,0.076,0.382,0.076c0.392,0,0.765-0.234,0.924-0.619l1.853-4.485C13.051,23.937,12.807,23.353,12.296,23.142zM9.57,21.325c-0.392-0.391-1.025-0.389-1.415,0.002L4.729,24.76c-0.391,0.392-0.389,1.023,0.002,1.415c0.195,0.194,0.45,0.292,0.706,0.292c0.257,0,0.513-0.098,0.708-0.293l3.427-3.434C9.961,22.349,9.961,21.716,9.57,21.325zM7.746,18.604c-0.213-0.509-0.797-0.751-1.307-0.54L1.96,19.925c-0.511,0.212-0.752,0.798-0.54,1.308c0.16,0.385,0.531,0.616,0.924,0.616c0.127,0,0.258-0.024,0.383-0.076l4.479-1.861C7.715,19.698,7.957,19.113,7.746,18.604zM7.1,15.392c0-0.553-0.447-0.999-1-0.999l-4.851,0.006c-0.553,0-1.001,0.448-0.999,1.001c0.001,0.551,0.449,1,1,0.998l4.852-0.006C6.654,16.392,7.102,15.942,7.1,15.392zM1.944,10.869l4.485,1.85c0.125,0.053,0.254,0.076,0.381,0.076c0.393,0,0.766-0.232,0.925-0.618c0.212-0.511-0.032-1.097-0.544-1.306L2.708,9.021c-0.511-0.21-1.095,0.032-1.306,0.542C1.19,10.074,1.435,10.657,1.944,10.869zM8.137,9.451c0.195,0.193,0.449,0.291,0.705,0.291s0.513-0.098,0.709-0.295c0.391-0.389,0.389-1.023-0.004-1.414L6.113,4.609C5.723,4.219,5.088,4.221,4.699,4.612c-0.391,0.39-0.389,1.024,0.002,1.414L8.137,9.451zM10.964,7.084c0.16,0.384,0.532,0.615,0.923,0.615c0.128,0,0.258-0.025,0.384-0.077c0.51-0.212,0.753-0.798,0.54-1.307l-1.864-4.479c-0.212-0.51-0.798-0.751-1.308-0.539C9.129,1.51,8.888,2.096,9.1,2.605L10.964,7.084z",
14
+ "raph_undo": "M12.981,9.073V6.817l-12.106,6.99l12.106,6.99v-2.422c3.285-0.002,9.052,0.28,9.052,2.269c0,2.78-6.023,4.263-6.023,4.263v2.132c0,0,13.53,0.463,13.53-9.823C29.54,9.134,17.952,8.831,12.981,9.073z",
15
+ "raph_merge": "M26.92,10.928l-3.574-2.064v2.297h-6.414c-1.123,0.084-3.062-1.19-5.218-2.881C9.543,6.676,7.062,4.709,3.74,4.656H1.505v3.662H3.74c1.627-0.047,3.633,1.232,5.769,2.883c0.796,0.577,1.599,1.213,2.45,1.788c-0.851,0.575-1.653,1.212-2.45,1.789c-2.136,1.646-4.142,2.929-5.767,2.882H1.505v3.668h2.236c3.315-0.047,5.797-2.02,7.975-3.621c2.156-1.691,4.094-2.966,5.218-2.883h6.412v2.297l3.574-2.062l3.576-2.064L26.92,10.928z",
16
+ "raph_split": "M23.346,23.979l3.576-2.062l3.574-2.062l-3.576-2.064l-3.574-2.062v2.293c-0.876,0-1.894,0-2.235,0c-1.626,0.046-3.633-1.233-5.768-2.883c-0.796-0.578-1.599-1.214-2.45-1.789c0.851-0.575,1.653-1.211,2.45-1.789c2.135-1.647,4.142-2.929,5.766-2.882l2.237-0.001v2.296l3.574-2.063l3.576-2.064L26.92,4.78l-3.574-2.064v2.295H21.11c-3.321,0.047-5.803,2.019-7.975,3.622c-2.156,1.691-4.094,2.965-5.218,2.882H1.505v3.664h6.414c1.123-0.083,3.062,1.191,5.218,2.882c2.171,1.604,4.652,3.575,7.974,3.622h2.235V23.979L23.346,23.979z",
17
+ "raph_fork": "M26.268,22.562l3.514-2.03l-3.514-2.028l-3.515-2.028v2.256c-0.922-0.002-2.45-0.002-2.883-0.002c-1.28-0.03-2.12-0.431-2.994-1.148c-1.303-1.07-2.415-2.997-3.756-4.853c-0.682-0.923-1.442-1.839-2.454-2.575C9.664,9.415,8.355,8.902,6.9,8.912H0.593v3.604H6.9c0.877,0.016,1.432,0.302,2.189,1.012c1.12,1.055,2.212,3.072,3.718,4.983c1.476,1.893,3.747,3.804,7.041,3.823h2.905v2.256L26.268,22.562zM11.401,8.912c0.04,0.028,0.082,0.053,0.121,0.082c1.202,0.874,2.07,1.947,2.757,2.88c0.158,0.218,0.298,0.428,0.448,0.642h8.026v2.257l3.515-2.028l3.514-2.029l-3.514-2.029l-3.515-2.03v2.255H11.401z",
18
+ "raph_shuffle": "M9.089,13.133c0.346,0.326,0.69,0.75,1.043,1.228c0.051-0.073,0.099-0.144,0.15-0.219c0.511-0.75,1.09-1.599,1.739-2.421c0.103-0.133,0.211-0.245,0.316-0.371c-0.487-0.572-1.024-1.12-1.672-1.592C9.663,9.02,8.354,8.506,6.899,8.517H0.593v3.604H6.9C7.777,12.138,8.333,12.422,9.089,13.133zM22.753,16.082v2.256c-0.922-0.002-2.45-0.002-2.883-0.002c-1.28-0.03-2.12-0.438-2.994-1.148c-0.378-0.311-0.74-0.7-1.097-1.133c-0.268,0.376-0.538,0.764-0.813,1.168c-0.334,0.488-0.678,0.99-1.037,1.484c-0.089,0.121-0.189,0.246-0.283,0.369c1.455,1.528,3.473,2.846,6.202,2.862h2.905v2.256l3.515-2.026l3.521-2.03l-3.521-2.028L22.753,16.082zM16.876,13.27c0.874-0.712,1.714-1.118,2.994-1.148c0.433,0,1.961,0,2.883-0.002v2.256l3.515-2.026l3.521-2.028l-3.521-2.029l-3.515-2.027V8.52h-2.905c-3.293,0.02-5.563,1.93-7.041,3.822c-1.506,1.912-2.598,3.929-3.718,4.982C8.332,18.033,7.777,18.32,6.9,18.336H0.593v3.604H6.9c1.455,0.011,2.764-0.502,3.766-1.242c1.012-0.735,1.772-1.651,2.454-2.573C14.461,16.267,15.574,14.34,16.876,13.27z",
19
+ "raph_refresh": "M15.999,4.308c1.229,0.001,2.403,0.214,3.515,0.57L18.634,6.4h6.247l-1.562-2.706L21.758,0.99l-0.822,1.425c-1.54-0.563-3.2-0.878-4.936-0.878c-7.991,0-14.468,6.477-14.468,14.468c0,3.317,1.128,6.364,3.005,8.805l2.2-1.689c-1.518-1.973-2.431-4.435-2.436-7.115C4.312,9.545,9.539,4.318,15.999,4.308zM27.463,7.203l-2.2,1.69c1.518,1.972,2.431,4.433,2.435,7.114c-0.011,6.46-5.238,11.687-11.698,11.698c-1.145-0.002-2.24-0.188-3.284-0.499l0.828-1.432H7.297l1.561,2.704l1.562,2.707l0.871-1.511c1.477,0.514,3.058,0.801,4.709,0.802c7.992-0.002,14.468-6.479,14.47-14.47C30.468,12.689,29.339,9.643,27.463,7.203z",
20
+ "raph_smile2": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,29.534C8.539,29.534,2.466,23.462,2.466,16C2.466,8.539,8.539,2.466,16,2.466c7.462,0,13.535,6.072,13.535,13.533C29.534,23.462,23.462,29.534,16,29.534zM11.104,14c0.932,0,1.688-1.483,1.688-3.312s-0.755-3.312-1.688-3.312s-1.688,1.483-1.688,3.312S10.172,14,11.104,14zM20.729,14c0.934,0,1.688-1.483,1.688-3.312s-0.756-3.312-1.688-3.312c-0.932,0-1.688,1.483-1.688,3.312S19.798,14,20.729,14zM8.143,21.189C10.458,24.243,13.148,26,16.021,26c2.969,0,5.745-1.868,8.11-5.109c-2.515,1.754-5.292,2.734-8.215,2.734C13.164,23.625,10.54,22.756,8.143,21.189z",
21
+ "raph_smile": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM20.729,7.375c0.934,0,1.688,1.483,1.688,3.312S21.661,14,20.729,14c-0.932,0-1.688-1.483-1.688-3.312S19.798,7.375,20.729,7.375zM11.104,7.375c0.932,0,1.688,1.483,1.688,3.312S12.037,14,11.104,14s-1.688-1.483-1.688-3.312S10.172,7.375,11.104,7.375zM16.021,26c-2.873,0-5.563-1.757-7.879-4.811c2.397,1.564,5.021,2.436,7.774,2.436c2.923,0,5.701-0.98,8.215-2.734C21.766,24.132,18.99,26,16.021,26z",
22
+ "raph_alarm": "M15.499,5.125c-0.553,0-0.999,0.448-0.999,1v9.221L8.454,17.99c-0.506,0.222-0.736,0.812-0.514,1.318c0.164,0.375,0.53,0.599,0.915,0.599c0.134,0,0.271-0.027,0.401-0.085l6.626-2.898c0.005-0.002,0.009-0.004,0.013-0.006l0.004-0.002c0.015-0.006,0.023-0.02,0.037-0.025c0.104-0.052,0.201-0.113,0.279-0.195c0.034-0.034,0.053-0.078,0.079-0.117c0.048-0.064,0.101-0.127,0.13-0.204c0.024-0.06,0.026-0.125,0.038-0.189c0.013-0.064,0.038-0.121,0.038-0.186V6.124C16.5,5.573,16.052,5.125,15.499,5.125zM31.125,6.832c0-3.832-3.105-6.938-6.938-6.938c-1.938,0-3.686,0.796-4.94,2.077C18.05,1.652,16.798,1.466,15.5,1.466c-1.334,0-2.62,0.195-3.847,0.531c-1.259-1.295-3.016-2.103-4.965-2.103C2.856-0.106-0.25,3-0.25,6.832c0,1.845,0.726,3.517,1.901,4.76c-0.443,1.39-0.685,2.87-0.685,4.408c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534c0-1.575-0.259-3.087-0.722-4.508C30.436,10.261,31.125,8.629,31.125,6.832zM15.5,27.533C9.139,27.533,3.966,22.359,3.966,16c0-6.36,5.173-11.534,11.534-11.534c6.361,0,11.533,5.173,11.533,11.534C27.033,22.361,21.859,27.533,15.5,27.533z",
23
+ "raph_clock": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,27.533C9.639,27.533,4.466,22.359,4.466,16C4.466,9.64,9.639,4.466,16,4.466c6.361,0,11.533,5.173,11.533,11.534C27.533,22.361,22.359,27.533,16,27.533zM15.999,5.125c-0.553,0-0.999,0.448-0.999,1v9.221L8.954,17.99c-0.506,0.222-0.736,0.812-0.514,1.318c0.164,0.375,0.53,0.599,0.915,0.599c0.134,0,0.271-0.027,0.401-0.085l6.626-2.898c0.005-0.002,0.009-0.004,0.013-0.006l0.004-0.002c0.015-0.006,0.023-0.02,0.037-0.025c0.104-0.052,0.201-0.113,0.279-0.195c0.034-0.034,0.053-0.078,0.079-0.117c0.048-0.064,0.101-0.127,0.13-0.204c0.024-0.06,0.026-0.125,0.038-0.189C16.975,16.121,17,16.064,17,15.999V6.124C17,5.573,16.552,5.125,15.999,5.125z",
24
+ "raph_globeAlt2": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM8.251,7.48c0.122,0.055,0.255,0.104,0.28,0.137C8.57,7.668,8.621,7.823,8.557,7.861C8.492,7.9,8.39,7.887,8.376,7.771c-0.013-0.115-0.026-0.128-0.18-0.18c-0.022-0.007-0.035-0.01-0.051-0.015C8.18,7.544,8.216,7.512,8.251,7.48zM7.733,7.974c0.031,0.087,0.113,0.125,0,0.17C7.673,8.168,7.611,8.172,7.559,8.165C7.617,8.102,7.672,8.035,7.733,7.974zM16,27.533C9.639,27.533,4.466,22.36,4.466,16c0-0.085,0.011-0.168,0.013-0.254c0.004-0.003,0.008-0.006,0.012-0.009c0.129-0.102,0.283-0.359,0.334-0.45c0.052-0.089,0.181-0.154,0.116-0.256c-0.059-0.096-0.292-0.23-0.407-0.261c0.01-0.099,0.032-0.195,0.045-0.294c0.063,0.077,0.137,0.17,0.208,0.194c0.115,0.038,0.501,0.052,0.566,0.052c0.063,0,0.334,0.014,0.386-0.064c0.051-0.077,0.09-0.077,0.154-0.077c0.064,0,0.18,0.231,0.271,0.257c0.089,0.026,0.257,0.013,0.244,0.181c-0.012,0.166,0.077,0.309,0.167,0.321c0.09,0.013,0.296-0.194,0.296-0.194s0,0.322-0.012,0.438C6.846,15.698,7,16.124,7,16.124s0.193,0.397,0.244,0.488c0.052,0.09,0.27,0.36,0.27,0.476c0,0.117,0.026,0.297,0.104,0.297s0.155-0.206,0.244-0.335c0.091-0.128,0.117-0.31,0.155-0.438c0.039-0.129,0.039-0.36,0.039-0.45c0-0.091,0.076-0.168,0.257-0.245c0.181-0.077,0.309-0.296,0.463-0.412c0.155-0.116,0.142-0.309,0.452-0.309c0.308,0,0.282,0,0.36-0.078c0.077-0.077,0.154-0.128,0.192,0.013c0.039,0.142,0.257,0.347,0.296,0.399c0.039,0.052,0.116,0.193,0.104,0.348c-0.013,0.153,0.012,0.334,0.077,0.334c0.064,0,0.193-0.219,0.193-0.219s0.283-0.192,0.27,0.014c-0.014,0.205,0.025,0.425,0.025,0.552c0,0.13,0.232,0.438,0.232,0.362c0-0.079,0.103-0.296,0.103-0.413c0-0.114,0.064-0.063,0.231,0.051c0.167,0.116,0.283,0.349,0.283,0.349s0.168,0.154,0.193,0.219c0.026,0.064,0.206-0.025,0.244-0.104c0.039-0.076,0.065-0.115,0.167-0.141c0.104-0.026,0.231-0.026,0.271-0.168c0.039-0.142,0.154-0.308,0-0.502c-0.154-0.193-0.232-0.321-0.347-0.412c-0.117-0.09-0.206-0.322-0.206-0.322s0.244-0.218,0.321-0.296c0.079-0.077,0.193-0.025,0.207,0.064c0.013,0.091-0.115,0.168-0.141,0.361c-0.026,0.192,0.154,0.257,0.206,0.192c0.051-0.065,0.18-0.219,0.18-0.257c0-0.039-0.089-0.026-0.102-0.167c-0.013-0.142,0.166-0.245,0.23-0.207c0.066,0.039,0.477-0.051,0.67-0.154s0.308-0.322,0.425-0.412c0.116-0.089,0.515-0.386,0.489-0.527c-0.026-0.142,0.012-0.334-0.09-0.515c-0.103-0.18-0.232-0.295-0.283-0.373c-0.051-0.077,0.219-0.09,0.347-0.206c0.129-0.116,0-0.219-0.064-0.206c-0.064,0.013-0.232,0.052-0.296,0.039c-0.064-0.013-0.103-0.077-0.206-0.155c-0.102-0.077,0.026-0.192,0.091-0.179c0.064,0.013,0.23-0.129,0.308-0.193c0.077-0.064,0.193-0.115,0.154-0.051c-0.038,0.064-0.128,0.296-0.026,0.309c0.104,0.013,0.348-0.193,0.388-0.18c0.038,0.013,0.102,0.18,0.064,0.257c-0.039,0.077-0.039,0.206,0.013,0.193c0.051-0.013,0.154-0.129,0.18-0.09c0.027,0.039,0.154,0.116,0.09,0.257c-0.063,0.142-0.193,0.193-0.039,0.284c0.154,0.089,0.206,0.012,0.322-0.052c0.115-0.064,0.193-0.347,0.128-0.438c-0.064-0.09-0.218-0.27-0.218-0.334c0-0.064,0.257-0.064,0.257-0.167s0.09-0.18,0.18-0.219c0.091-0.039,0.206-0.206,0.244-0.154c0.039,0.052,0.271,0.116,0.334,0.039c0.064-0.077,0.4-0.36,0.605-0.515c0.206-0.154,0.283-0.334,0.336-0.515c0.051-0.18,0.128-0.296,0.102-0.437v0c0.077,0.18,0.09,0.309,0.077,0.45c-0.013,0.142,0,0.438,0.026,0.476c0.025,0.039,0.129,0.128,0.192,0.103c0.064-0.025-0.025-0.283-0.025-0.334c0-0.052,0.09-0.129,0.142-0.142c0.052-0.013,0-0.231-0.065-0.322c-0.063-0.09-0.154-0.142-0.102-0.154c0.051-0.013,0.115-0.116,0.077-0.142c-0.039-0.025-0.014-0.116-0.103-0.09c-0.065,0.019-0.241-0.015-0.235,0.095c-0.037-0.11-0.116-0.183-0.216-0.172c-0.116,0.013-0.181,0.077-0.296,0.077s-0.025-0.18-0.077-0.18c-0.051,0-0.168,0.167-0.231,0.077c-0.064-0.09,0.18-0.206,0.373-0.27c0.192-0.064,0.514-0.438,0.644-0.451c0.128-0.013,0.45,0.026,0.733,0.013c0.283-0.013,0.373-0.129,0.463-0.064s0.283,0.142,0.399,0.129c0.116-0.014,0.064,0,0.244-0.129c0.18-0.129,0.348-0.193,0.438-0.296c0.09-0.103,0.335-0.18,0.348-0.077c0.014,0.103-0.026,0.206,0.077,0.206s0.258-0.103,0.386-0.154c0.129-0.051,0.231-0.116,0.231-0.116s-0.527,0.36-0.655,0.438c-0.129,0.077-0.438,0.129-0.567,0.283c-0.128,0.155-0.205,0.206-0.192,0.374c0.014,0.167,0.231,0.386,0.128,0.54c-0.103,0.154-0.141,0.373-0.141,0.373s0.154-0.219,0.373-0.36s0.348-0.334,0.425-0.412s0.309-0.091,0.309-0.181s0.064-0.206,0.104-0.309c0.038-0.103-0.077-0.078,0-0.206c0.076-0.129,0.064-0.232,0.45-0.232s0.257,0.026,0.566,0.013c0.309-0.013,0.424-0.167,0.72-0.245c0.296-0.077,0.527-0.128,0.618-0.089c0.09,0.038,0.232,0.012,0.141-0.078c-0.089-0.09-0.295-0.219-0.193-0.245c0.104-0.026,0.207-0.039,0.246-0.142c0.039-0.103-0.142-0.283-0.039-0.386c0.104-0.103-0.077-0.231-0.207-0.257c-0.128-0.025-0.63,0.026-0.731-0.025c-0.104-0.052-0.271-0.116-0.322-0.078c-0.052,0.039-0.168,0.245-0.168,0.245s-0.09,0.025-0.168-0.09c-0.076-0.116-0.5-0.103-0.629-0.103s-0.271,0.025-0.413,0.039c-0.141,0.013-0.219,0.052-0.322-0.039c-0.102-0.09-0.243-0.129-0.296-0.167c-0.051-0.039-0.334-0.039-0.553-0.012c-0.218,0.025-0.438,0.025-0.438,0.025s-0.104-0.039-0.257-0.129c-0.154-0.09-0.309-0.154-0.361-0.154c-0.051,0-0.449,0.064-0.539,0c-0.091-0.064-0.181-0.103-0.245-0.103s-0.115-0.103-0.038-0.103s0.437-0.103,0.437-0.103s-0.103-0.142-0.231-0.142c-0.128,0-0.359-0.064-0.424-0.064s-0.014,0.064-0.142,0.039c-0.13-0.026-0.258-0.078-0.335-0.026c-0.076,0.051-0.258,0.128-0.064,0.18c0.193,0.052,0.373,0,0.425,0.078c0.052,0.077,0,0.115,0,0.167s-0.103,0.193-0.167,0.219c-0.064,0.025-0.143-0.039-0.27,0.025c-0.129,0.064-0.451,0.013-0.49,0.052c-0.038,0.039-0.115-0.103-0.18-0.077c-0.064,0.025-0.232,0.193-0.322,0.18c-0.089-0.013-0.206-0.103-0.206-0.206s-0.038-0.232-0.077-0.258c-0.038-0.025-0.322-0.039-0.425-0.025c-0.103,0.013-0.424,0.038-0.477,0.09c-0.052,0.052-0.193,0.09-0.283,0.09s-0.167-0.09-0.36-0.116c-0.192-0.026-0.617-0.039-0.669-0.026s-0.218-0.025-0.155-0.077c0.065-0.051,0.257-0.219,0.143-0.295c-0.117-0.078-0.375-0.078-0.489-0.09c-0.117-0.013-0.232-0.039-0.413-0.013c-0.181,0.026-0.219,0.116-0.296,0.039c-0.077-0.077,0.193,0.039-0.077-0.077c-0.27-0.116-0.399-0.103-0.477-0.064c-0.077,0.039,0.013,0.025-0.192,0.103c-0.206,0.078-0.322,0.116-0.374,0.129c-0.051,0.012-0.372-0.065-0.411-0.091c-0.038-0.025-0.181,0.013-0.309,0.064S9.895,7.025,9.767,7C9.638,6.973,9.432,6.973,9.303,7.025C9.174,7.076,9.084,7.076,8.956,7.166c-0.13,0.09-0.373,0.142-0.373,0.142S8.522,7.305,8.448,7.301C10.474,5.541,13.111,4.466,16,4.466c6.361,0,11.534,5.173,11.534,11.534S22.36,27.533,16,27.533zM14.888,19.92c0,0,0.207-0.026,0.207-0.117c0-0.089-0.207-0.205-0.282-0.102c-0.078,0.102-0.219,0.205-0.207,0.296C14.625,20.138,14.888,19.92,14.888,19.92zM14.875,17.023c-0.181,0.233-0.167,0.182-0.296,0.128c-0.128-0.05-0.334,0.116-0.296,0.182c0.039,0.064,0.322-0.014,0.386,0.102c0.065,0.116,0.065,0.129,0.193,0.104c0.128-0.026,0.257-0.205,0.219-0.295C15.043,17.151,14.875,17.023,14.875,17.023zM14.837,18.245c-0.051,0-0.412,0.064-0.451,0.079c-0.039,0.013-0.27-0.025-0.27-0.025c-0.09,0.089-0.026,0.179,0.116,0.166s0.438-0.052,0.502-0.052C14.799,18.413,14.888,18.245,14.837,18.245zM14.284,14.668c-0.19,0.03-0.308,0.438-0.155,0.425C14.284,15.081,14.451,14.643,14.284,14.668zM14.734,16.959c-0.052-0.064-0.181-0.271-0.323-0.219c-0.042,0.017-0.153,0.245-0.012,0.245C14.541,16.985,14.786,17.023,14.734,16.959zM14.85,16.805c0.232-0.013,0.167-0.245-0.013-0.257C14.786,16.544,14.618,16.818,14.85,16.805zM17.591,18.928c-0.193-0.039-0.244-0.102-0.45-0.205c-0.207-0.103-0.67-0.103-0.682-0.039c-0.014,0.064,0,0-0.155-0.05c-0.153-0.054-0.271,0-0.309-0.091c-0.038-0.091-0.128-0.117-0.244-0.002c-0.097,0.097-0.142,0.104,0.078,0.143c0.218,0.039,0.283,0.039,0.192,0.141c-0.09,0.104-0.154,0.233-0.077,0.244c0.077,0.015,0.309-0.05,0.334,0c0.026,0.054-0.051,0.064,0.207,0.105c0.258,0.037,0.309,0.128,0.359,0.178c0.051,0.052,0.206,0.22,0.104,0.22c-0.104,0-0.219,0.128-0.142,0.143c0.077,0.013,0.309-0.039,0.321,0c0.014,0.037,0.143,0.283,0.271,0.271c0.129-0.013,0.206-0.244,0.27-0.31c0.065-0.064,0.322-0.104,0.349,0.012c0.026,0.116,0.104,0.233,0.257,0.311c0.154,0.076,0.335,0.154,0.348,0.089c0.013-0.064-0.077-0.309-0.181-0.346c-0.103-0.041-0.282-0.259-0.282-0.348c0-0.091-0.155-0.117-0.232-0.182C17.849,19.147,17.784,18.967,17.591,18.928zM8.042,17.023c-0.084,0.037-0.155,0.476,0,0.527c0.154,0.052,0.244-0.205,0.193-0.271C8.183,17.218,8.158,16.973,8.042,17.023zM15.429,18.117c-0.118-0.05-0.335,0.424-0.181,0.463C15.403,18.62,15.518,18.156,15.429,18.117zM15.687,13.703c0.077,0,0.18-0.051,0.18-0.193c0-0.142,0.18,0,0.27-0.013s0.141-0.103,0.18-0.206c0.005-0.013,0.008-0.021,0.009-0.027c-0.003,0.024-0.001,0.093,0.095,0.117c0.154,0.038,0.205-0.064,0.205-0.103s0.283-0.103,0.336-0.142c0.051-0.038,0.258-0.103,0.27-0.154c0.013-0.051,0-0.348,0.064-0.373c0.064-0.026,0.154-0.026,0.052-0.206c-0.104-0.181-0.104-0.348-0.232-0.271c-0.095,0.057-0.038,0.284-0.115,0.438s-0.142,0.296-0.193,0.296s-0.321,0.103-0.399,0.18c-0.076,0.077-0.45-0.064-0.501,0c-0.052,0.064-0.154,0.141-0.219,0.193c-0.065,0.051-0.245,0.013-0.207,0.167C15.518,13.562,15.609,13.703,15.687,13.703zM17.449,12.056c0.18-0.013,0.348-0.064,0.348-0.064s0.271,0.013,0.232-0.116c-0.04-0.128-0.322-0.141-0.375-0.128c-0.051,0.013-0.142-0.142-0.244-0.116c-0.096,0.023-0.128,0.155-0.128,0.193c0,0.039-0.36,0.115-0.245,0.219C17.153,12.146,17.27,12.069,17.449,12.056zM13.91,19.058c0.104,0.064,0.296-0.219,0.349-0.13c0.051,0.091-0.013,0.13,0.076,0.246c0.091,0.114,0.258,0.102,0.258,0.102s-0.013-0.309-0.155-0.387c-0.142-0.077-0.232-0.166-0.064-0.141c0.167,0.026,0.257-0.039,0.219-0.114c-0.039-0.078-0.283-0.039-0.361-0.026s-0.193-0.052-0.193-0.052c-0.077,0.024-0.063,0.089-0.09,0.219C13.923,18.902,13.807,18.992,13.91,19.058zM20.924,21.618c-0.231-0.052-0.077,0.039,0,0.154c0.077,0.116,0.232,0.176,0.258,0.05C21.193,21.759,21.155,21.67,20.924,21.618zM21.915,24.744c-0.077,0.064,0,0.091-0.219,0.22c-0.22,0.13-0.49,0.271-0.541,0.386c-0.052,0.116,0.051,0.181,0.258,0.192c0.206,0.013,0.154,0.053,0.296-0.103s0.271-0.244,0.438-0.373c0.168-0.128,0.168-0.322,0.168-0.322s-0.181-0.178-0.193-0.141C22.1,24.665,21.992,24.681,21.915,24.744zM18.504,21.618c0.014-0.116-0.219-0.116-0.334-0.207c-0.116-0.089-0.128-0.359-0.193-0.515c-0.064-0.153-0.192-0.257-0.322-0.397c-0.128-0.143-0.192-0.465-0.23-0.438c-0.039,0.025-0.154,0.399-0.064,0.515c0.09,0.116-0.039,0.348-0.103,0.503c-0.065,0.153-0.22-0.026-0.349-0.104c-0.129-0.078-0.308-0.128-0.398-0.219c-0.09-0.091,0.155-0.335,0.091-0.426c-0.065-0.09-0.412-0.013-0.45-0.013c-0.039,0-0.116-0.128-0.194-0.128c-0.077,0-0.064,0.258-0.064,0.258s-0.078-0.091-0.193-0.207c-0.117-0.115,0.012,0.077-0.103,0.193c-0.117,0.117-0.079,0.078-0.129,0.206c-0.051,0.129-0.167,0.077-0.283-0.052c-0.116-0.128-0.179-0.037-0.258,0c-0.077,0.039-0.141,0.259-0.18,0.309c-0.039,0.052-0.309,0.117-0.374,0.182c-0.064,0.062-0.09,0.27-0.09,0.322c0,0.05-0.271,0.023-0.361,0.089c-0.09,0.064-0.23,0.025-0.321,0.025c-0.09,0-0.399,0.244-0.502,0.308c-0.103,0.066-0.103,0.298-0.051,0.362c0.051,0.063,0.154,0.219,0.09,0.244c-0.064,0.026-0.104,0.206,0.051,0.359c0.154,0.155,0.103,0.194,0.115,0.271c0.014,0.077,0.078,0.104,0.181,0.232c0.102,0.128-0.181,0.231-0.219,0.31c-0.039,0.076,0.091,0.192,0.167,0.257c0.077,0.063,0.271,0.026,0.386-0.013c0.117-0.039,0.245-0.143,0.321-0.155c0.079-0.013,0.438-0.026,0.438-0.026s0.129-0.192,0.219-0.296c0.089-0.102,0.372-0.013,0.372-0.013s0.117-0.076,0.426-0.141c0.309-0.065,0.179,0.064,0.296,0.104c0.115,0.037,0.27,0.062,0.359,0.128c0.09,0.064,0,0.218-0.012,0.283c-0.014,0.064,0.219,0.038,0.23-0.026c0.014-0.064,0.077-0.128,0.207-0.205c0.128-0.078,0.025,0.114,0.076,0.231c0.052,0.116,0.129-0.157,0.129-0.026c0,0.039,0.039,0.078,0.051,0.116c0.014,0.039,0.181,0.052,0.181,0.18c0,0.13,0,0.207,0.039,0.231c0.038,0.026,0.244,0,0.335,0.155c0.089,0.154,0.154,0.013,0.205-0.052c0.052-0.064,0.231,0.026,0.283,0.078c0.052,0.05,0.193-0.104,0.387-0.155c0.192-0.051,0.167-0.039,0.219-0.115c0.051-0.078,0.09-0.283,0.205-0.438c0.115-0.153,0.271-0.424,0.271-0.631c0-0.206-0.014-0.682-0.155-0.899C18.761,21.953,18.492,21.733,18.504,21.618zM18.029,24.77c-0.065-0.013-0.207-0.062-0.207-0.062c-0.142,0.141,0.142,0.141,0.104,0.283c-0.039,0.141,0.193,0.089,0.257,0.064c0.063-0.027,0.22-0.323,0.193-0.399C18.351,24.577,18.093,24.783,18.029,24.77zM22.803,24.178c-0.052,0-0.077,0.064-0.192,0c-0.117-0.063-0.091-0.037-0.168-0.167c-0.077-0.127-0.091-0.296-0.219-0.23c-0.051,0.025,0,0.168,0.051,0.218c0.053,0.052,0.077,0.231,0.064,0.283c-0.012,0.052-0.231,0.116-0.129,0.18c0.104,0.064,0.297,0,0.271,0.078c-0.025,0.077-0.129,0.179-0.013,0.205c0.115,0.025,0.154-0.089,0.207-0.178c0.051-0.093,0.089-0.169,0.179-0.221C22.944,24.294,22.854,24.178,22.803,24.178zM22.815,21.18c0.168,0.064,0.464-0.231,0.347-0.27C23.047,20.871,22.815,21.18,22.815,21.18zM13.923,19.906c-0.029,0.115,0.193,0.167,0.206,0.039C14.141,19.816,13.949,19.803,13.923,19.906zM14.27,16.47c-0.064,0.065-0.257,0.193-0.283,0.31c-0.025,0.115,0.309-0.182,0.399-0.296c0.091-0.117,0.27-0.052,0.308-0.117c0.04-0.063,0.04-0.063,0.04-0.063s-0.142-0.025-0.257-0.063c-0.117-0.039-0.258,0.102-0.193-0.104c0.064-0.206,0.257-0.167,0.219-0.322c-0.039-0.154-0.168-0.193-0.207-0.193c-0.09,0,0.013,0.141-0.116,0.231c-0.128,0.09-0.271,0.128-0.193,0.283C14.064,16.29,14.334,16.405,14.27,16.47zM13.254,19.751c0.013-0.076-0.142-0.192-0.206-0.192c-0.065,0-0.386-0.077-0.386-0.077c-0.058,0.023-0.135,0.045-0.158,0.077c-0.007-0.011-0.022-0.024-0.049-0.039c-0.142-0.075-0.309,0-0.361-0.102c-0.05-0.104-0.127-0.104-0.179-0.039c-0.094,0.117,0.025,0.206,0.063,0.231c0.038,0.024,0.181,0.052,0.309,0.039c0.08-0.008,0.181-0.027,0.21-0.059c0.004,0.014,0.016,0.027,0.035,0.044c0.103,0.092,0.167,0.13,0.321,0.116C13.009,19.74,13.241,19.829,13.254,19.751zM12.881,18.992c0.065,0,0.193,0,0.283,0.026c0.09,0.025,0.386,0.05,0.373-0.064c-0.013-0.115-0.038-0.297,0.089-0.411c0.13-0.117,0.257-0.18,0.193-0.348c-0.063-0.167-0.193-0.271-0.103-0.349c0.09-0.076,0.192-0.102,0.192-0.166c0-0.065-0.217,0.18-0.244-0.246c-0.005-0.091-0.206,0.025-0.219,0.116c-0.012,0.091,0.142,0.167-0.103,0.167c-0.245,0-0.257,0.194-0.309,0.232c-0.052,0.039-0.103,0.051-0.207,0.076c-0.102,0.026-0.127,0.13-0.153,0.194c-0.025,0.063-0.206-0.116-0.257-0.064c-0.051,0.052-0.013,0.296,0.077,0.501C12.585,18.863,12.816,18.992,12.881,18.992zM11.979,18.928c0.065-0.077,0.038-0.192-0.063-0.18c-0.103,0.013-0.193-0.168-0.36-0.283c-0.168-0.114-0.296-0.194-0.451-0.36c-0.154-0.167-0.347-0.271-0.45-0.359c-0.104-0.091-0.257-0.13-0.322-0.116c-0.159,0.032,0.231,0.309,0.271,0.346c0.039,0.041,0.387,0.335,0.387,0.478s0.231,0.476,0.296,0.527c0.064,0.052,0.385,0.244,0.437,0.348c0.052,0.103,0.167,0.13,0.167-0.013C11.89,19.174,11.916,19.006,11.979,18.928zM11.002,17.474c0.064,0.232,0.193,0.464,0.244,0.555c0.052,0.089,0.271,0.217,0.348,0.281c0.077,0.064,0.192-0.024,0.143-0.102c-0.052-0.078-0.155-0.192-0.167-0.283c-0.013-0.091-0.078-0.233-0.181-0.387c-0.102-0.153-0.192-0.192-0.257-0.295c-0.064-0.104-0.296-0.297-0.296-0.297c-0.102,0.013-0.102,0.205-0.051,0.271C10.834,17.28,10.938,17.243,11.002,17.474z",
25
+ "raph_globeAlt": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM27.436,17.39c0.001,0.002,0.004,0.002,0.005,0.004c-0.022,0.187-0.054,0.37-0.085,0.554c-0.015-0.012-0.034-0.025-0.047-0.036c-0.103-0.09-0.254-0.128-0.318-0.115c-0.157,0.032,0.229,0.305,0.267,0.342c0.009,0.009,0.031,0.03,0.062,0.058c-1.029,5.312-5.709,9.338-11.319,9.338c-4.123,0-7.736-2.18-9.776-5.441c0.123-0.016,0.24-0.016,0.28-0.076c0.051-0.077,0.102-0.241,0.178-0.331c0.077-0.089,0.165-0.229,0.127-0.292c-0.039-0.064,0.101-0.344,0.088-0.419c-0.013-0.076-0.127-0.256,0.064-0.407s0.394-0.382,0.407-0.444c0.012-0.063,0.166-0.331,0.152-0.458c-0.012-0.127-0.152-0.28-0.24-0.318c-0.09-0.037-0.28-0.05-0.356-0.151c-0.077-0.103-0.292-0.203-0.368-0.178c-0.076,0.025-0.204,0.05-0.305-0.015c-0.102-0.062-0.267-0.139-0.33-0.189c-0.065-0.05-0.229-0.088-0.305-0.088c-0.077,0-0.065-0.052-0.178,0.101c-0.114,0.153,0,0.204-0.204,0.177c-0.204-0.023,0.025-0.036,0.141-0.189c0.113-0.152-0.013-0.242-0.141-0.203c-0.126,0.038-0.038,0.115-0.241,0.153c-0.203,0.036-0.203-0.09-0.076-0.115s0.355-0.139,0.355-0.19c0-0.051-0.025-0.191-0.127-0.191s-0.077-0.126-0.229-0.291c-0.092-0.101-0.196-0.164-0.299-0.204c-0.09-0.579-0.15-1.167-0.15-1.771c0-2.844,1.039-5.446,2.751-7.458c0.024-0.02,0.048-0.034,0.069-0.036c0.084-0.009,0.31-0.025,0.51-0.059c0.202-0.034,0.418-0.161,0.489-0.153c0.069,0.008,0.241,0.008,0.186-0.042C8.417,8.2,8.339,8.082,8.223,8.082S8.215,7.896,8.246,7.896c0.03,0,0.186,0.025,0.178,0.11C8.417,8.091,8.471,8.2,8.625,8.167c0.156-0.034,0.132-0.162,0.102-0.195C8.695,7.938,8.672,7.853,8.642,7.794c-0.031-0.06-0.023-0.136,0.14-0.153C8.944,7.625,9.168,7.708,9.16,7.573s0-0.28,0.046-0.356C9.253,7.142,9.354,7.09,9.299,7.065C9.246,7.04,9.176,7.099,9.121,6.972c-0.054-0.127,0.047-0.22,0.108-0.271c0.02-0.015,0.067-0.06,0.124-0.112C11.234,5.257,13.524,4.466,16,4.466c3.213,0,6.122,1.323,8.214,3.45c-0.008,0.022-0.01,0.052-0.031,0.056c-0.077,0.013-0.166,0.063-0.179-0.051c-0.013-0.114-0.013-0.331-0.102-0.203c-0.089,0.127-0.127,0.127-0.127,0.191c0,0.063,0.076,0.127,0.051,0.241C23.8,8.264,23.8,8.341,23.84,8.341c0.036,0,0.126-0.115,0.239-0.141c0.116-0.025,0.319-0.088,0.332,0.026c0.013,0.115,0.139,0.152,0.013,0.203c-0.128,0.051-0.267,0.026-0.293-0.051c-0.025-0.077-0.114-0.077-0.203-0.013c-0.088,0.063-0.279,0.292-0.279,0.292s-0.306,0.139-0.343,0.114c-0.04-0.025,0.101-0.165,0.203-0.228c0.102-0.064,0.178-0.204,0.14-0.242c-0.038-0.038-0.088-0.279-0.063-0.343c0.025-0.063,0.139-0.152,0.013-0.216c-0.127-0.063-0.217-0.14-0.318-0.178s-0.216,0.152-0.305,0.204c-0.089,0.051-0.076,0.114-0.191,0.127c-0.114,0.013-0.189,0.165,0,0.254c0.191,0.089,0.255,0.152,0.204,0.204c-0.051,0.051-0.267-0.025-0.267-0.025s-0.165-0.076-0.268-0.076c-0.101,0-0.229-0.063-0.33-0.076c-0.102-0.013-0.306-0.013-0.355,0.038c-0.051,0.051-0.179,0.203-0.28,0.152c-0.101-0.051-0.101-0.102-0.241-0.051c-0.14,0.051-0.279-0.038-0.355,0.038c-0.077,0.076-0.013,0.076-0.255,0c-0.241-0.076-0.189,0.051-0.419,0.089s-0.368-0.038-0.432,0.038c-0.064,0.077-0.153,0.217-0.19,0.127c-0.038-0.088,0.126-0.241,0.062-0.292c-0.062-0.051-0.33-0.025-0.367,0.013c-0.039,0.038-0.014,0.178,0.011,0.229c0.026,0.05,0.064,0.254-0.011,0.216c-0.077-0.038-0.064-0.166-0.141-0.152c-0.076,0.013-0.165,0.051-0.203,0.077c-0.038,0.025-0.191,0.025-0.229,0.076c-0.037,0.051,0.014,0.191-0.051,0.203c-0.063,0.013-0.114,0.064-0.254-0.025c-0.14-0.089-0.14-0.038-0.178-0.012c-0.038,0.025-0.216,0.127-0.229,0.012c-0.013-0.114,0.025-0.152-0.089-0.229c-0.115-0.076-0.026-0.076,0.127-0.025c0.152,0.05,0.343,0.075,0.622-0.013c0.28-0.089,0.395-0.127,0.28-0.178c-0.115-0.05-0.229-0.101-0.406-0.127c-0.179-0.025-0.42-0.025-0.7-0.127c-0.279-0.102-0.343-0.14-0.457-0.165c-0.115-0.026-0.813-0.14-1.132-0.089c-0.317,0.051-1.193,0.28-1.245,0.318s-0.128,0.19-0.292,0.318c-0.165,0.127-0.47,0.419-0.712,0.47c-0.241,0.051-0.521,0.254-0.521,0.305c0,0.051,0.101,0.242,0.076,0.28c-0.025,0.038,0.05,0.229,0.191,0.28c0.139,0.05,0.381,0.038,0.393-0.039c0.014-0.076,0.204-0.241,0.217-0.127c0.013,0.115,0.14,0.292,0.114,0.368c-0.025,0.077,0,0.153,0.09,0.14c0.088-0.012,0.559-0.114,0.559-0.114s0.153-0.064,0.127-0.166c-0.026-0.101,0.166-0.241,0.203-0.279c0.038-0.038,0.178-0.191,0.014-0.241c-0.167-0.051-0.293-0.064-0.115-0.216s0.292,0,0.521-0.229c0.229-0.229-0.051-0.292,0.191-0.305c0.241-0.013,0.496-0.025,0.444,0.051c-0.05,0.076-0.342,0.242-0.508,0.318c-0.166,0.077-0.14,0.216-0.076,0.292c0.063,0.076,0.09,0.254,0.204,0.229c0.113-0.025,0.254-0.114,0.38-0.101c0.128,0.012,0.383-0.013,0.42-0.013c0.039,0,0.216,0.178,0.114,0.203c-0.101,0.025-0.229,0.013-0.445,0.025c-0.215,0.013-0.456,0.013-0.456,0.051c0,0.039,0.292,0.127,0.19,0.191c-0.102,0.063-0.203-0.013-0.331-0.026c-0.127-0.012-0.203,0.166-0.241,0.267c-0.039,0.102,0.063,0.28-0.127,0.216c-0.191-0.063-0.331-0.063-0.381-0.038c-0.051,0.025-0.203,0.076-0.331,0.114c-0.126,0.038-0.076-0.063-0.242-0.063c-0.164,0-0.164,0-0.164,0l-0.103,0.013c0,0-0.101-0.063-0.114-0.165c-0.013-0.102,0.05-0.216-0.013-0.241c-0.064-0.026-0.292,0.012-0.33,0.088c-0.038,0.076-0.077,0.216-0.026,0.28c0.052,0.063,0.204,0.19,0.064,0.152c-0.14-0.038-0.317-0.051-0.419,0.026c-0.101,0.076-0.279,0.241-0.279,0.241s-0.318,0.025-0.318,0.102c0,0.077,0,0.178-0.114,0.191c-0.115,0.013-0.268,0.05-0.42,0.076c-0.153,0.025-0.139,0.088-0.317,0.102s-0.204,0.089-0.038,0.114c0.165,0.025,0.418,0.127,0.431,0.241c0.014,0.114-0.013,0.242-0.076,0.356c-0.043,0.079-0.305,0.026-0.458,0.026c-0.152,0-0.456-0.051-0.584,0c-0.127,0.051-0.102,0.305-0.064,0.419c0.039,0.114-0.012,0.178-0.063,0.216c-0.051,0.038-0.065,0.152,0,0.204c0.063,0.051,0.114,0.165,0.166,0.178c0.051,0.013,0.215-0.038,0.279,0.025c0.064,0.064,0.127,0.216,0.165,0.178c0.039-0.038,0.089-0.203,0.153-0.166c0.064,0.039,0.216-0.012,0.331-0.025s0.177-0.14,0.292-0.204c0.114-0.063,0.05-0.063,0.013-0.14c-0.038-0.076,0.114-0.165,0.204-0.254c0.088-0.089,0.253-0.013,0.292-0.115c0.038-0.102,0.051-0.279,0.151-0.267c0.103,0.013,0.243,0.076,0.331,0.076c0.089,0,0.279-0.14,0.332-0.165c0.05-0.025,0.241-0.013,0.267,0.102c0.025,0.114,0.241,0.254,0.292,0.279c0.051,0.025,0.381,0.127,0.433,0.165c0.05,0.038,0.126,0.153,0.152,0.254c0.025,0.102,0.114,0.102,0.128,0.013c0.012-0.089-0.065-0.254,0.025-0.242c0.088,0.013,0.191-0.026,0.191-0.026s-0.243-0.165-0.331-0.203c-0.088-0.038-0.255-0.114-0.331-0.241c-0.076-0.127-0.267-0.153-0.254-0.279c0.013-0.127,0.191-0.051,0.292,0.051c0.102,0.102,0.356,0.241,0.445,0.33c0.088,0.089,0.229,0.127,0.267,0.242c0.039,0.114,0.152,0.241,0.19,0.292c0.038,0.051,0.165,0.331,0.204,0.394c0.038,0.063,0.165-0.012,0.229-0.063c0.063-0.051,0.179-0.076,0.191-0.178c0.013-0.102-0.153-0.178-0.203-0.216c-0.051-0.038,0.127-0.076,0.191-0.127c0.063-0.05,0.177-0.14,0.228-0.063c0.051,0.077,0.026,0.381,0.051,0.432c0.025,0.051,0.279,0.127,0.331,0.191c0.05,0.063,0.267,0.089,0.304,0.051c0.039-0.038,0.242,0.026,0.294,0.038c0.049,0.013,0.202-0.025,0.304-0.05c0.103-0.025,0.204-0.102,0.191,0.063c-0.013,0.165-0.051,0.419-0.179,0.546c-0.127,0.127-0.076,0.191-0.202,0.191c-0.06,0-0.113,0-0.156,0.021c-0.041-0.065-0.098-0.117-0.175-0.097c-0.152,0.038-0.344,0.038-0.47,0.19c-0.128,0.153-0.178,0.165-0.204,0.114c-0.025-0.051,0.369-0.267,0.317-0.331c-0.05-0.063-0.355-0.038-0.521-0.038c-0.166,0-0.305-0.102-0.433-0.127c-0.126-0.025-0.292,0.127-0.418,0.254c-0.128,0.127-0.216,0.038-0.331,0.038c-0.115,0-0.331-0.165-0.331-0.165s-0.216-0.089-0.305-0.089c-0.088,0-0.267-0.165-0.318-0.165c-0.05,0-0.19-0.115-0.088-0.166c0.101-0.05,0.202,0.051,0.101-0.229c-0.101-0.279-0.33-0.216-0.419-0.178c-0.088,0.039-0.724,0.025-0.775,0.025c-0.051,0-0.419,0.127-0.533,0.178c-0.116,0.051-0.318,0.115-0.369,0.14c-0.051,0.025-0.318-0.051-0.433,0.013c-0.151,0.084-0.291,0.216-0.33,0.216c-0.038,0-0.153,0.089-0.229,0.28c-0.077,0.19,0.013,0.355-0.128,0.419c-0.139,0.063-0.394,0.204-0.495,0.305c-0.102,0.101-0.229,0.458-0.355,0.623c-0.127,0.165,0,0.317,0.025,0.419c0.025,0.101,0.114,0.292-0.025,0.471c-0.14,0.178-0.127,0.266-0.191,0.279c-0.063,0.013,0.063,0.063,0.088,0.19c0.025,0.128-0.114,0.255,0.128,0.369c0.241,0.113,0.355,0.217,0.418,0.367c0.064,0.153,0.382,0.407,0.382,0.407s0.229,0.205,0.344,0.293c0.114,0.089,0.152,0.038,0.177-0.05c0.025-0.09,0.178-0.104,0.355-0.104c0.178,0,0.305,0.04,0.483,0.014c0.178-0.025,0.356-0.141,0.42-0.166c0.063-0.025,0.279-0.164,0.443-0.063c0.166,0.103,0.141,0.241,0.23,0.332c0.088,0.088,0.24,0.037,0.355-0.051c0.114-0.09,0.064-0.052,0.203,0.025c0.14,0.075,0.204,0.151,0.077,0.267c-0.128,0.113-0.051,0.293-0.128,0.47c-0.076,0.178-0.063,0.203,0.077,0.278c0.14,0.076,0.394,0.548,0.47,0.638c0.077,0.088-0.025,0.342,0.064,0.495c0.089,0.151,0.178,0.254,0.077,0.331c-0.103,0.075-0.28,0.216-0.292,0.47s0.051,0.431,0.102,0.521s0.177,0.331,0.241,0.419c0.064,0.089,0.14,0.305,0.152,0.445c0.013,0.14-0.024,0.306,0.039,0.381c0.064,0.076,0.102,0.191,0.216,0.292c0.115,0.103,0.152,0.318,0.152,0.318s0.039,0.089,0.051,0.229c0.012,0.14,0.025,0.228,0.152,0.292c0.126,0.063,0.215,0.076,0.28,0.013c0.063-0.063,0.381-0.077,0.546-0.063c0.165,0.013,0.355-0.075,0.521-0.19s0.407-0.419,0.496-0.508c0.089-0.09,0.292-0.255,0.268-0.356c-0.025-0.101-0.077-0.203,0.024-0.254c0.102-0.052,0.344-0.152,0.356-0.229c0.013-0.077-0.09-0.395-0.115-0.457c-0.024-0.064,0.064-0.18,0.165-0.306c0.103-0.128,0.421-0.216,0.471-0.267c0.051-0.053,0.191-0.267,0.217-0.433c0.024-0.167-0.051-0.369,0-0.457c0.05-0.09,0.013-0.165-0.103-0.268c-0.114-0.102-0.089-0.407-0.127-0.457c-0.037-0.051-0.013-0.319,0.063-0.345c0.076-0.023,0.242-0.279,0.344-0.393c0.102-0.114,0.394-0.47,0.534-0.496c0.139-0.025,0.355-0.229,0.368-0.343c0.013-0.115,0.38-0.547,0.394-0.635c0.013-0.09,0.166-0.42,0.102-0.497c-0.062-0.076-0.559,0.115-0.622,0.141c-0.064,0.025-0.241,0.127-0.446,0.113c-0.202-0.013-0.114-0.177-0.127-0.254c-0.012-0.076-0.228-0.368-0.279-0.381c-0.051-0.012-0.203-0.166-0.267-0.317c-0.063-0.153-0.152-0.343-0.254-0.458c-0.102-0.114-0.165-0.38-0.268-0.559c-0.101-0.178-0.189-0.407-0.279-0.572c-0.021-0.041-0.045-0.079-0.067-0.117c0.118-0.029,0.289-0.082,0.31-0.009c0.024,0.088,0.165,0.279,0.19,0.419s0.165,0.089,0.178,0.216c0.014,0.128,0.14,0.433,0.19,0.47c0.052,0.038,0.28,0.242,0.318,0.318c0.038,0.076,0.089,0.178,0.127,0.369c0.038,0.19,0.076,0.444,0.179,0.482c0.102,0.038,0.444-0.064,0.508-0.102s0.482-0.242,0.635-0.255c0.153-0.012,0.179-0.115,0.368-0.152c0.191-0.038,0.331-0.177,0.458-0.28c0.127-0.101,0.28-0.355,0.33-0.444c0.052-0.088,0.179-0.152,0.115-0.253c-0.063-0.103-0.331-0.254-0.433-0.268c-0.102-0.012-0.089-0.178-0.152-0.178s-0.051,0.088-0.178,0.153c-0.127,0.063-0.255,0.19-0.344,0.165s0.026-0.089-0.113-0.203s-0.192-0.14-0.192-0.228c0-0.089-0.278-0.255-0.304-0.382c-0.026-0.127,0.19-0.305,0.254-0.19c0.063,0.114,0.115,0.292,0.279,0.368c0.165,0.076,0.318,0.204,0.395,0.229c0.076,0.025,0.267-0.14,0.33-0.114c0.063,0.024,0.191,0.253,0.306,0.292c0.113,0.038,0.495,0.051,0.559,0.051s0.33,0.013,0.381-0.063c0.051-0.076,0.089-0.076,0.153-0.076c0.062,0,0.177,0.229,0.267,0.254c0.089,0.025,0.254,0.013,0.241,0.179c-0.012,0.164,0.076,0.305,0.165,0.317c0.09,0.012,0.293-0.191,0.293-0.191s0,0.318-0.012,0.433c-0.014,0.113,0.139,0.534,0.139,0.534s0.19,0.393,0.241,0.482s0.267,0.355,0.267,0.47c0,0.115,0.025,0.293,0.103,0.293c0.076,0,0.152-0.203,0.24-0.331c0.091-0.126,0.116-0.305,0.153-0.432c0.038-0.127,0.038-0.356,0.038-0.444c0-0.09,0.075-0.166,0.255-0.242c0.178-0.076,0.304-0.292,0.456-0.407c0.153-0.115,0.141-0.305,0.446-0.305c0.305,0,0.278,0,0.355-0.077c0.076-0.076,0.151-0.127,0.19,0.013c0.038,0.14,0.254,0.343,0.292,0.394c0.038,0.052,0.114,0.191,0.103,0.344c-0.013,0.152,0.012,0.33,0.075,0.33s0.191-0.216,0.191-0.216s0.279-0.189,0.267,0.013c-0.014,0.203,0.025,0.419,0.025,0.545c0,0.053,0.042,0.135,0.088,0.21c-0.005,0.059-0.004,0.119-0.009,0.178C27.388,17.153,27.387,17.327,27.436,17.39zM20.382,12.064c0.076,0.05,0.102,0.127,0.152,0.203c0.052,0.076,0.14,0.05,0.203,0.114c0.063,0.064-0.178,0.14-0.075,0.216c0.101,0.077,0.151,0.381,0.165,0.458c0.013,0.076-0.279,0.114-0.369,0.102c-0.089-0.013-0.354-0.102-0.445-0.127c-0.089-0.026-0.139-0.343-0.025-0.331c0.116,0.013,0.141-0.025,0.267-0.139c0.128-0.115-0.189-0.166-0.278-0.191c-0.089-0.025-0.268-0.305-0.331-0.394c-0.062-0.089-0.014-0.228,0.141-0.331c0.076-0.051,0.279,0.063,0.381,0c0.101-0.063,0.203-0.14,0.241-0.165c0.039-0.025,0.293,0.038,0.33,0.114c0.039,0.076,0.191,0.191,0.141,0.229c-0.052,0.038-0.281,0.076-0.356,0c-0.075-0.077-0.255,0.012-0.268,0.152C20.242,12.115,20.307,12.013,20.382,12.064zM16.875,12.28c-0.077-0.025,0.025-0.178,0.102-0.229c0.075-0.051,0.164-0.178,0.241-0.305c0.076-0.127,0.178-0.14,0.241-0.127c0.063,0.013,0.203,0.241,0.241,0.318c0.038,0.076,0.165-0.026,0.217-0.051c0.05-0.025,0.127-0.102,0.14-0.165s0.127-0.102,0.254-0.102s0.013,0.102-0.076,0.127c-0.09,0.025-0.038,0.077,0.113,0.127c0.153,0.051,0.293,0.191,0.459,0.279c0.165,0.089,0.19,0.267,0.088,0.292c-0.101,0.025-0.406,0.051-0.521,0.038c-0.114-0.013-0.254-0.127-0.419-0.153c-0.165-0.025-0.369-0.013-0.433,0.077s-0.292,0.05-0.395,0.05c-0.102,0-0.228,0.127-0.253,0.077C16.875,12.534,16.951,12.306,16.875,12.28zM17.307,9.458c0.063-0.178,0.419,0.038,0.355,0.127C17.599,9.675,17.264,9.579,17.307,9.458zM17.802,18.584c0.063,0.102-0.14,0.431-0.254,0.407c-0.113-0.027-0.076-0.318-0.038-0.382C17.548,18.545,17.769,18.529,17.802,18.584zM13.189,12.674c0.025-0.051-0.039-0.153-0.127-0.013C13.032,12.71,13.164,12.725,13.189,12.674zM20.813,8.035c0.141,0.076,0.339,0.107,0.433,0.013c0.076-0.076,0.013-0.204-0.05-0.216c-0.064-0.013-0.104-0.115,0.062-0.203c0.165-0.089,0.343-0.204,0.534-0.229c0.19-0.025,0.622-0.038,0.774,0c0.152,0.039,0.382-0.166,0.445-0.254s-0.203-0.152-0.279-0.051c-0.077,0.102-0.444,0.076-0.521,0.051c-0.076-0.025-0.686,0.102-0.812,0.102c-0.128,0-0.179,0.152-0.356,0.229c-0.179,0.076-0.42,0.191-0.509,0.229c-0.088,0.038-0.177,0.19-0.101,0.216C20.509,7.947,20.674,7.959,20.813,8.035zM14.142,12.674c0.064-0.089-0.051-0.217-0.114-0.217c-0.12,0-0.178,0.191-0.103,0.254C14.002,12.776,14.078,12.763,14.142,12.674zM14.714,13.017c0.064,0.025,0.114,0.102,0.165,0.114c0.052,0.013,0.217,0,0.167-0.127s-0.167-0.127-0.204-0.127c-0.038,0-0.203-0.038-0.267,0C14.528,12.905,14.65,12.992,14.714,13.017zM11.308,10.958c0.101,0.013,0.217-0.063,0.305-0.101c0.088-0.038,0.216-0.114,0.216-0.229c0-0.114-0.025-0.216-0.077-0.267c-0.051-0.051-0.14-0.064-0.216-0.051c-0.115,0.02-0.127,0.14-0.203,0.14c-0.076,0-0.165,0.025-0.14,0.114s0.077,0.152,0,0.19C11.117,10.793,11.205,10.946,11.308,10.958zM11.931,10.412c0.127,0.051,0.394,0.102,0.292,0.153c-0.102,0.051-0.28,0.19-0.305,0.267s0.216,0.153,0.216,0.153s-0.077,0.089-0.013,0.114c0.063,0.025,0.102-0.089,0.203-0.089c0.101,0,0.304,0.063,0.406,0.063c0.103,0,0.267-0.14,0.254-0.229c-0.013-0.089-0.14-0.229-0.254-0.28c-0.113-0.051-0.241-0.28-0.317-0.331c-0.076-0.051,0.076-0.178-0.013-0.267c-0.09-0.089-0.153-0.076-0.255-0.14c-0.102-0.063-0.191,0.013-0.254,0.089c-0.063,0.076-0.14-0.013-0.217,0.012c-0.102,0.035-0.063,0.166-0.012,0.229C11.714,10.221,11.804,10.361,11.931,10.412zM24.729,17.198c-0.083,0.037-0.153,0.47,0,0.521c0.152,0.052,0.241-0.202,0.191-0.267C24.868,17.39,24.843,17.147,24.729,17.198zM20.114,20.464c-0.159-0.045-0.177,0.166-0.304,0.306c-0.128,0.141-0.267,0.254-0.317,0.241c-0.052-0.013-0.331,0.089-0.242,0.279c0.089,0.191,0.076,0.382-0.013,0.472c-0.089,0.088,0.076,0.342,0.052,0.482c-0.026,0.139,0.037,0.229,0.215,0.229s0.242-0.064,0.318-0.229c0.076-0.166,0.088-0.331,0.164-0.47c0.077-0.141,0.141-0.434,0.179-0.51c0.038-0.075,0.114-0.316,0.102-0.457C20.254,20.669,20.204,20.489,20.114,20.464zM10.391,8.802c-0.069-0.06-0.229-0.102-0.306-0.11c-0.076-0.008-0.152,0.06-0.321,0.06c-0.168,0-0.279,0.067-0.347,0C9.349,8.684,9.068,8.65,9.042,8.692C9.008,8.749,8.941,8.751,9.008,8.87c0.069,0.118,0.12,0.186,0.179,0.178s0.262-0.017,0.288,0.051C9.5,9.167,9.569,9.226,9.712,9.184c0.145-0.042,0.263-0.068,0.296-0.119c0.033-0.051,0.263-0.059,0.263-0.059S10.458,8.861,10.391,8.802z",
26
+ "raph_globe": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM19.158,23.269c-0.079,0.064-0.183,0.13-0.105,0.207c0.078,0.078-0.09,0.131-0.09,0.17s0.104,0.246,0.052,0.336c-0.052,0.092-0.091,0.223-0.13,0.301c-0.039,0.077-0.131,0.155-0.104,0.272c0.025,0.116-0.104,0.077-0.104,0.194c0,0.116,0.116,0.065,0.09,0.208c-0.025,0.144-0.09,0.183-0.09,0.285c0,0.104,0.064,0.247,0.064,0.286s-0.064,0.17-0.155,0.272c-0.092,0.104-0.155,0.17-0.144,0.233c0.014,0.065,0.104,0.144,0.091,0.184c-0.013,0.037-0.129,0.168-0.116,0.259c0.014,0.09,0.129,0.053,0.155,0.116c0.026,0.065-0.155,0.118-0.078,0.183c0.078,0.064,0.183,0.051,0.156,0.208c-0.019,0.112,0.064,0.163,0.126,0.198c-0.891,0.221-1.818,0.352-2.777,0.352C9.639,27.533,4.466,22.36,4.466,16c0-2.073,0.557-4.015,1.518-5.697c0.079-0.042,0.137-0.069,0.171-0.062c0.065,0.013,0.079,0.104,0.183,0.13c0.104,0.026,0.195-0.078,0.26-0.117c0.064-0.039,0.116-0.195,0.051-0.182c-0.065,0.013-0.234,0-0.234,0s0.183-0.104,0.183-0.169s0.025-0.169,0.129-0.208C6.83,9.655,6.83,9.681,6.765,9.837C6.7,9.993,6.896,9.928,6.973,9.863s0.13-0.013,0.272-0.104c0.143-0.091,0.143-0.143,0.221-0.143c0.078,0,0.221,0.143,0.299,0.091c0.077-0.052,0.299,0.065,0.429,0.065c0.129,0,0.545,0.169,0.624,0.169c0.078,0,0.312,0.09,0.325,0.259c0.013,0.169,0.09,0.156,0.168,0.156s0.26,0.065,0.26,0.13c0,0.065-0.052,0.325,0.078,0.39c0.129,0.064,0.247,0.169,0.299,0.143c0.052-0.026,0-0.233-0.064-0.26c-0.065-0.026-0.027-0.117-0.052-0.169c-0.026-0.051,0.078-0.051,0.117,0.039c0.039,0.091,0.143,0.26,0.208,0.26c0.064,0,0.208,0.156,0.168,0.247c-0.039,0.091,0.039,0.221,0.156,0.221c0.116,0,0.26,0.182,0.312,0.195c0.052,0.013,0.117,0.078,0.117,0.117c0,0.04,0.065,0.26,0.065,0.351c0,0.09-0.04,0.454-0.053,0.597s0.104,0.39,0.234,0.52c0.129,0.13,0.246,0.377,0.324,0.429c0.079,0.052,0.13,0.195,0.247,0.182c0.117-0.013,0.195,0.078,0.299,0.26c0.104,0.182,0.208,0.48,0.286,0.506c0.078,0.026,0.208,0.117,0.142,0.182c-0.064,0.064-0.168,0.208-0.051,0.208c0.117,0,0.156-0.065,0.247,0.053c0.09,0.116,0.208,0.181,0.194,0.26c-0.013,0.077,0.104,0.103,0.156,0.116c0.052,0.013,0.169,0.247,0.286,0.143c0.117-0.104-0.155-0.259-0.234-0.326c-0.078-0.064,0-0.207-0.182-0.35c-0.182-0.143-0.156-0.247-0.286-0.351c-0.13-0.104-0.233-0.195-0.104-0.286c0.13-0.091,0.143,0.091,0.195,0.208c0.052,0.116,0.324,0.351,0.441,0.454c0.117,0.104,0.326,0.468,0.39,0.468s0.247,0.208,0.247,0.208s0.103,0.168,0.064,0.22c-0.039,0.052,0.053,0.247,0.144,0.299c0.09,0.052,0.455,0.22,0.507,0.247c0.052,0.027,0.155,0.221,0.299,0.221c0.142,0,0.247,0.014,0.286,0.053c0.039,0.038,0.155,0.194,0.234,0.104c0.078-0.092,0.09-0.131,0.208-0.131c0.117,0,0.168,0.091,0.233,0.156c0.065,0.065,0.247,0.235,0.338,0.222c0.091-0.013,0.208,0.104,0.273,0.064s0.169,0.025,0.22,0.052c0.054,0.026,0.234,0.118,0.222,0.272c-0.013,0.157,0.103,0.195,0.182,0.234c0.078,0.039,0.182,0.13,0.248,0.195c0.064,0.063,0.206,0.077,0.246,0.116c0.039,0.039,0.065,0.117,0.182,0.052c0.116-0.064,0.092-0.181,0.092-0.181s0.129-0.026,0.194,0.026c0.064,0.05,0.104,0.22,0.144,0.246c0.038,0.026,0.115,0.221,0.063,0.362c-0.051,0.145-0.038,0.286-0.091,0.286c-0.052,0-0.116,0.17-0.195,0.209c-0.076,0.039-0.285,0.221-0.272,0.286c0.013,0.063,0.131,0.258,0.104,0.35c-0.025,0.091-0.194,0.195-0.154,0.338c0.038,0.144,0.312,0.183,0.323,0.312c0.014,0.131,0.209,0.417,0.235,0.546c0.025,0.13,0.246,0.272,0.246,0.453c0,0.184,0.312,0.3,0.377,0.312c0.063,0.013,0.182,0.131,0.272,0.17s0.169,0.116,0.233,0.221s0.053,0.261,0.053,0.299c0,0.039-0.039,0.44-0.078,0.674C19.145,23.021,19.235,23.203,19.158,23.269zM10.766,11.188c0.039,0.013,0.117,0.091,0.156,0.091c0.04,0,0.234,0.156,0.286,0.208c0.053,0.052,0.053,0.195-0.013,0.208s-0.104-0.143-0.117-0.208c-0.013-0.065-0.143-0.065-0.208-0.104C10.805,11.344,10.66,11.152,10.766,11.188zM27.51,16.41c-0.144,0.182-0.13,0.272-0.195,0.286c-0.064,0.013,0.065,0.065,0.09,0.194c0.022,0.112-0.065,0.224,0.063,0.327c-0.486,4.619-3.71,8.434-8.016,9.787c-0.007-0.011-0.019-0.025-0.021-0.034c-0.027-0.078-0.027-0.233,0.064-0.285c0.091-0.053,0.312-0.233,0.363-0.272c0.052-0.04,0.13-0.221,0.091-0.247c-0.038-0.026-0.232,0-0.26-0.039c-0.026-0.039-0.026-0.092,0.104-0.182c0.13-0.091,0.195-0.222,0.247-0.26c0.052-0.039,0.155-0.117,0.195-0.209c0.038-0.09-0.041-0.039-0.118-0.039s-0.117-0.142-0.117-0.207s0.195,0.026,0.339,0.052c0.143,0.024,0.077-0.065,0.064-0.142c-0.013-0.078,0.026-0.209,0.105-0.17c0.076,0.039,0.479-0.013,0.531-0.026c0.052-0.013,0.194-0.246,0.246-0.312c0.053-0.065,0.064-0.129,0-0.168c-0.065-0.04-0.143-0.184-0.168-0.221c-0.026-0.041-0.039-0.274-0.013-0.34c0.025-0.063,0,0.377,0.181,0.43c0.183,0.052,0.286,0.078,0.455-0.078c0.169-0.155,0.298-0.26,0.312-0.363c0.013-0.104,0.052-0.209,0.117-0.246c0.065-0.039,0.104,0.103,0.182-0.065c0.078-0.17,0.156-0.157,0.234-0.299c0.077-0.144-0.13-0.325,0.024-0.43c0.157-0.103,0.43-0.233,0.43-0.233s0.078-0.039,0.234-0.078c0.155-0.038,0.324-0.014,0.376-0.09c0.052-0.079,0.104-0.247,0.182-0.338c0.079-0.092,0.169-0.234,0.13-0.299c-0.039-0.065,0.104-0.352,0.091-0.429c-0.013-0.078-0.13-0.261,0.065-0.416s0.402-0.391,0.416-0.454c0.012-0.065,0.169-0.338,0.154-0.469c-0.012-0.129-0.154-0.285-0.245-0.325c-0.092-0.037-0.286-0.05-0.364-0.154s-0.299-0.208-0.377-0.182c-0.077,0.026-0.208,0.051-0.312-0.015c-0.104-0.063-0.272-0.143-0.337-0.194c-0.066-0.051-0.234-0.09-0.312-0.09s-0.065-0.053-0.182,0.103c-0.117,0.157,0,0.209-0.208,0.182c-0.209-0.024,0.025-0.038,0.144-0.194c0.115-0.155-0.014-0.247-0.144-0.207c-0.13,0.039-0.039,0.117-0.247,0.156c-0.207,0.038-0.207-0.092-0.077-0.117c0.13-0.026,0.363-0.143,0.363-0.194c0-0.053-0.026-0.196-0.13-0.196s-0.078-0.129-0.233-0.297c-0.156-0.17-0.351-0.274-0.508-0.249c-0.154,0.026-0.272,0.065-0.35-0.076c-0.078-0.144-0.169-0.17-0.222-0.247c-0.051-0.078-0.182,0-0.221-0.039s-0.039-0.039-0.039-0.039s-0.169,0.039-0.077-0.078c0.09-0.117,0.129-0.338,0.09-0.325c-0.038,0.013-0.104,0.196-0.168,0.183c-0.064-0.013-0.014-0.04-0.144-0.117c-0.13-0.078-0.337-0.013-0.337,0.052c0,0.065-0.065,0.117-0.065,0.117s-0.039-0.038-0.078-0.117c-0.039-0.078-0.221-0.091-0.312-0.013c-0.09,0.078-0.142-0.196-0.207-0.196s-0.194,0.065-0.26,0.184c-0.064,0.116-0.038,0.285-0.092,0.272c-0.05-0.013-0.063-0.233-0.05-0.312c0.012-0.079,0.155-0.208,0.05-0.234c-0.103-0.026-0.259,0.13-0.323,0.143c-0.065,0.013-0.195,0.104-0.273,0.209c-0.077,0.103-0.116,0.168-0.195,0.207c-0.077,0.039-0.193,0-0.167-0.039c0.025-0.039-0.222-0.181-0.261-0.13c-0.04,0.052-0.155,0.091-0.272,0.144c-0.117,0.052-0.222-0.065-0.247-0.117s-0.079-0.064-0.091-0.234c-0.013-0.168,0.027-0.351,0.065-0.454c0.038-0.104-0.195-0.312-0.286-0.3c-0.091,0.015-0.182,0.105-0.272,0.091c-0.092-0.012-0.052-0.038-0.195-0.038c-0.143,0-0.026-0.025,0-0.143c0.025-0.116-0.052-0.273,0.092-0.377c0.142-0.104,0.091-0.351,0-0.363c-0.092-0.014-0.261,0.039-0.377,0.026c-0.116-0.014-0.208,0.091-0.169,0.207c0.039,0.117-0.065,0.195-0.104,0.183c-0.039-0.013-0.09-0.078-0.234,0.026c-0.142,0.103-0.194,0.064-0.337-0.052c-0.143-0.118-0.299-0.234-0.325-0.416c-0.026-0.182-0.04-0.364,0.013-0.468c0.051-0.104,0.051-0.285-0.026-0.312c-0.078-0.025,0.09-0.155,0.181-0.181c0.092-0.026,0.234-0.143,0.26-0.195c0.026-0.052,0.156-0.04,0.298-0.04c0.143,0,0.169,0,0.312,0.078c0.143,0.078,0.169-0.039,0.169-0.078c0-0.039,0.052-0.117,0.208-0.104c0.156,0.013,0.376-0.052,0.416-0.013s0.116,0.195,0.194,0.143c0.079-0.051,0.104-0.143,0.131,0.014c0.025,0.155,0.09,0.39,0.208,0.429c0.116,0.039,0.052,0.194,0.168,0.207c0.115,0.013,0.17-0.246,0.131-0.337c-0.04-0.09-0.118-0.363-0.183-0.428c-0.064-0.065-0.064-0.234,0.064-0.286c0.13-0.052,0.442-0.312,0.532-0.389c0.092-0.079,0.338-0.144,0.261-0.248c-0.078-0.104-0.104-0.168-0.104-0.247s0.078-0.052,0.117,0s0.194-0.078,0.155-0.143c-0.038-0.064-0.026-0.155,0.065-0.143c0.091,0.013,0.116-0.065,0.078-0.117c-0.039-0.052,0.091-0.117,0.182-0.091c0.092,0.026,0.325-0.013,0.364-0.065c0.038-0.052-0.078-0.104-0.078-0.208c0-0.104,0.155-0.195,0.247-0.208c0.091-0.013,0.207,0,0.221-0.039c0.012-0.039,0.143-0.143,0.155-0.052c0.014,0.091,0,0.247,0.104,0.247c0.104,0,0.232-0.117,0.272-0.129c0.038-0.013,0.286-0.065,0.338-0.078c0.052-0.013,0.363-0.039,0.325-0.13c-0.039-0.09-0.078-0.181-0.118-0.22c-0.039-0.039-0.077,0.013-0.13,0.078c-0.051,0.065-0.143,0.065-0.168,0.013c-0.026-0.051,0.012-0.207-0.078-0.156c-0.092,0.052-0.104,0.104-0.157,0.078c-0.052-0.026-0.103-0.117-0.103-0.117s0.129-0.064,0.038-0.182c-0.09-0.117-0.221-0.091-0.35-0.025c-0.13,0.064-0.118,0.051-0.273,0.09s-0.234,0.078-0.234,0.078s0.209-0.129,0.299-0.208c0.091-0.078,0.209-0.117,0.286-0.195c0.078-0.078,0.285,0.039,0.285,0.039s0.105-0.104,0.105-0.039s-0.027,0.234,0.051,0.234c0.079,0,0.299-0.104,0.21-0.131c-0.093-0.026,0.129,0,0.219-0.065c0.092-0.065,0.194-0.065,0.247-0.09c0.052-0.026,0.092-0.143,0.182-0.143c0.092,0,0.13,0.117,0,0.195s-0.143,0.273-0.208,0.325c-0.064,0.052-0.026,0.117,0.078,0.104c0.104-0.013,0.194,0.013,0.286-0.013s0.143,0.026,0.168,0.065c0.026,0.039,0.104-0.039,0.104-0.039s0.169-0.039,0.221,0.026c0.053,0.064,0.092-0.039,0.053-0.104c-0.039-0.064-0.092-0.129-0.13-0.208c-0.039-0.078-0.091-0.104-0.194-0.078c-0.104,0.026-0.13-0.026-0.195-0.064c-0.065-0.04-0.118,0.052-0.065-0.04c0.053-0.09,0.078-0.117,0.117-0.195c0.039-0.078,0.209-0.221,0.039-0.259c-0.169-0.04-0.222-0.065-0.247-0.143c-0.026-0.078-0.221-0.221-0.272-0.221c-0.053,0-0.233,0-0.247-0.065c-0.013-0.065-0.143-0.208-0.208-0.273c-0.064-0.065-0.312-0.351-0.351-0.377c-0.039-0.026-0.091-0.013-0.208,0.143c-0.116,0.157-0.22,0.183-0.312,0.144c-0.091-0.039-0.104-0.026-0.193-0.13c-0.093-0.104,0.09-0.117,0.051-0.182c-0.04-0.064-0.247-0.091-0.377-0.104c-0.13-0.013-0.221-0.156-0.416-0.169c-0.194-0.013-0.428,0.026-0.493,0.026c-0.064,0-0.064,0.091-0.09,0.234c-0.027,0.143,0.09,0.182-0.027,0.208c-0.116,0.026-0.169,0.039-0.052,0.091c0.117,0.052,0.273,0.26,0.273,0.26s0,0.117-0.092,0.182c-0.09,0.065-0.182,0.13-0.233,0.053c-0.053-0.079-0.195-0.065-0.155,0.013c0.038,0.078,0.116,0.117,0.116,0.195c0,0.077,0.117,0.272,0.039,0.337c-0.078,0.065-0.168,0.014-0.233,0.026s-0.131-0.104-0.078-0.13c0.051-0.026-0.014-0.221-0.014-0.221s-0.155,0.221-0.143,0.104c0.014-0.117-0.064-0.13-0.064-0.221c0-0.091-0.079-0.13-0.194-0.104c-0.118,0.026-0.26-0.04-0.482-0.079c-0.22-0.039-0.311-0.064-0.493-0.156c-0.182-0.091-0.247-0.026-0.338-0.013c-0.091,0.013-0.052-0.182-0.169-0.207c-0.116-0.027-0.181,0.025-0.207-0.144c-0.026-0.168,0.039-0.208,0.324-0.39c0.286-0.182,0.247-0.26,0.468-0.286c0.22-0.026,0.325,0.026,0.325-0.039s0.052-0.325,0.052-0.195S16.95,9.109,16.832,9.2c-0.116,0.091-0.052,0.104,0.04,0.104c0.091,0,0.259-0.091,0.259-0.091s0.208-0.091,0.26-0.013c0.053,0.078,0.053,0.156,0.144,0.156s0.285-0.104,0.116-0.195c-0.168-0.091-0.272-0.078-0.376-0.182s-0.078-0.065-0.195-0.039c-0.116,0.026-0.116-0.039-0.156-0.039s-0.104,0.026-0.13-0.026c-0.025-0.052,0.014-0.065,0.145-0.065c0.129,0,0.285,0.039,0.285,0.039s0.155-0.052,0.194-0.065c0.039-0.013,0.247-0.039,0.208-0.155c-0.04-0.117-0.169-0.117-0.208-0.156s0.078-0.09,0.143-0.117c0.065-0.026,0.247,0,0.247,0s0.117,0.013,0.117-0.039S17.897,8.2,17.976,8.239s0,0.156,0.117,0.13c0.116-0.026,0.143,0,0.207,0.039c0.065,0.039-0.013,0.195-0.077,0.221c-0.065,0.025-0.169,0.077-0.026,0.09c0.144,0.014,0.246,0.014,0.246,0.014s0.092-0.091,0.131-0.169c0.038-0.078,0.104-0.026,0.155,0c0.052,0.025,0.247,0.065,0.065,0.117c-0.183,0.052-0.221,0.117-0.26,0.182c-0.038,0.065-0.053,0.104-0.221,0.065c-0.17-0.039-0.26-0.026-0.299,0.039c-0.039,0.064-0.013,0.273,0.053,0.247c0.063-0.026,0.129-0.026,0.207-0.052c0.078-0.026,0.39,0.026,0.467,0.013c0.078-0.013,0.209,0.13,0.248,0.104c0.039-0.026,0.117,0.052,0.194,0.104c0.078,0.052,0.052-0.117,0.194-0.013c0.144,0.104,0.065,0.104,0.144,0.104c0.076,0,0.246,0.013,0.246,0.013s0.014-0.129,0.144-0.104c0.13,0.026,0.245,0.169,0.232,0.064c-0.012-0.103,0.013-0.181-0.09-0.259c-0.104-0.078-0.272-0.13-0.299-0.169c-0.026-0.039-0.052-0.091-0.013-0.117c0.039-0.025,0.221,0.013,0.324,0.079c0.104,0.065,0.195,0.13,0.273,0.078c0.077-0.052,0.17-0.078,0.208-0.117c0.038-0.04,0.13-0.156,0.13-0.156s-0.391-0.051-0.441-0.117c-0.053-0.065-0.235-0.156-0.287-0.156s-0.194,0.091-0.246-0.039s-0.052-0.286-0.105-0.299c-0.05-0.013-0.597-0.091-0.674-0.13c-0.078-0.039-0.39-0.13-0.507-0.195s-0.286-0.156-0.389-0.156c-0.104,0-0.533,0.052-0.611,0.039c-0.078-0.013-0.312,0.026-0.403,0.039c-0.091,0.013,0.117,0.182-0.077,0.221c-0.195,0.039-0.169,0.065-0.13-0.13c0.038-0.195-0.131-0.247-0.299-0.169c-0.169,0.078-0.442,0.13-0.377,0.221c0.065,0.091-0.012,0.157,0.117,0.247c0.13,0.091,0.183,0.117,0.35,0.104c0.17-0.013,0.339,0.025,0.339,0.025s0,0.157-0.064,0.182c-0.065,0.026-0.169,0.026-0.196,0.104c-0.025,0.078-0.155,0.117-0.155,0.078s0.065-0.169-0.026-0.234c-0.09-0.065-0.117-0.078-0.221-0.013c-0.104,0.065-0.116,0.091-0.169-0.013C16.053,8.291,15.897,8.2,15.897,8.2s-0.104-0.129-0.182-0.194c-0.077-0.065-0.22-0.052-0.234,0.013c-0.013,0.064,0.026,0.129,0.078,0.247c0.052,0.117,0.104,0.337,0.013,0.351c-0.091,0.013-0.104,0.026-0.195,0.052c-0.091,0.026-0.13-0.039-0.13-0.143s-0.04-0.195-0.013-0.234c0.026-0.039-0.104,0.027-0.234,0c-0.13-0.025-0.233,0.052-0.104,0.092c0.13,0.039,0.157,0.194,0.039,0.233c-0.117,0.039-0.559,0-0.702,0s-0.35,0.039-0.39-0.039c-0.039-0.078,0.118-0.129,0.208-0.129c0.091,0,0.363,0.012,0.467-0.13c0.104-0.143-0.13-0.169-0.233-0.169c-0.104,0-0.183-0.039-0.299-0.155c-0.118-0.117,0.078-0.195,0.052-0.247c-0.026-0.052-0.156-0.014-0.272-0.014c-0.117,0-0.299-0.09-0.299,0.014c0,0.104,0.143,0.402,0.052,0.337c-0.091-0.064-0.078-0.156-0.143-0.234c-0.065-0.078-0.168-0.065-0.299-0.052c-0.129,0.013-0.35,0.052-0.415,0.039c-0.064-0.013-0.013-0.013-0.156-0.078c-0.142-0.065-0.208-0.052-0.312-0.117C12.091,7.576,12.182,7.551,12,7.538c-0.181-0.013-0.168,0.09-0.35,0.065c-0.182-0.026-0.234,0.013-0.416,0c-0.182-0.013-0.272-0.026-0.299,0.065c-0.025,0.091-0.078,0.247-0.156,0.247c-0.077,0-0.169,0.091,0.078,0.104c0.247,0.013,0.105,0.129,0.325,0.117c0.221-0.013,0.416-0.013,0.468-0.117c0.052-0.104,0.091-0.104,0.117-0.065c0.025,0.039,0.22,0.272,0.22,0.272s0.131,0.104,0.183,0.13c0.051,0.026-0.052,0.143-0.156,0.078c-0.104-0.065-0.299-0.051-0.377-0.116c-0.078-0.065-0.429-0.065-0.52-0.052c-0.09,0.013-0.247-0.039-0.299-0.039c-0.051,0-0.221,0.13-0.221,0.13S10.532,8.252,10.494,8.2c-0.039-0.052-0.104,0.052-0.156,0.065c-0.052,0.013-0.208-0.104-0.364-0.052C9.818,8.265,9.87,8.317,9.649,8.304s-0.272-0.052-0.35-0.039C9.22,8.278,9.22,8.278,9.22,8.278S9.233,8.33,9.143,8.382C9.052,8.434,8.986,8.499,8.921,8.421C8.857,8.343,8.818,8.343,8.779,8.33c-0.04-0.013-0.118-0.078-0.286-0.04C8.324,8.33,8.064,8.239,8.013,8.239c-0.04,0-0.313-0.015-0.491-0.033c2.109-2.292,5.124-3.74,8.478-3.74c2.128,0,4.117,0.589,5.83,1.598c-0.117,0.072-0.319,0.06-0.388,0.023c-0.078-0.043-0.158-0.078-0.475-0.061c-0.317,0.018-0.665,0.122-0.595,0.226c0.072,0.104-0.142,0.165-0.197,0.113c-0.055-0.052-0.309,0.06-0.293,0.165c0.016,0.104-0.039,0.225-0.175,0.199c-0.134-0.027-0.229,0.06-0.237,0.146c-0.007,0.087-0.309,0.147-0.332,0.147c-0.024,0-0.412-0.008-0.27,0.095c0.097,0.069,0.15,0.027,0.27,0.052c0.119,0.026,0.214,0.217,0.277,0.243c0.062,0.026,0.15,0,0.189-0.052c0.04-0.052,0.095-0.234,0.095-0.234s0,0.173,0.097,0.208c0.095,0.035,0.331-0.026,0.395-0.017c0.064,0.008,0.437,0.061,0.538,0.112c0.104,0.052,0.356,0.087,0.428,0.199c0.071,0.113,0.08,0.503,0.119,0.546c0.04,0.043,0.174-0.139,0.205-0.182c0.031-0.044,0.198-0.018,0.254,0.042c0.056,0.061,0.182,0.208,0.175,0.269C21.9,8.365,21.877,8.459,21.83,8.425c-0.048-0.034-0.127-0.025-0.096-0.095c0.032-0.069,0.048-0.217-0.015-0.217c-0.064,0-0.119,0-0.119,0s-0.12-0.035-0.199,0.095s-0.015,0.26,0.04,0.26s0.184,0,0.184,0.034c0,0.035-0.136,0.139-0.128,0.2c0.009,0.061,0.11,0.268,0.144,0.312c0.031,0.043,0.197,0.086,0.244,0.096c0.049,0.008-0.111,0.017-0.07,0.077c0.04,0.061,0.102,0.208,0.189,0.243c0.087,0.035,0.333,0.19,0.363,0.26c0.032,0.069,0.222-0.052,0.262-0.061c0.04-0.008,0.032,0.182,0.143,0.191c0.11,0.008,0.15-0.018,0.245-0.096s0.072-0.182,0.079-0.26c0.009-0.078,0-0.138,0.104-0.113c0.104,0.026,0.158-0.018,0.15-0.104c-0.008-0.087-0.095-0.191,0.07-0.217c0.167-0.026,0.254-0.138,0.357-0.138c0.103,0,0.389,0.043,0.419,0c0.032-0.043,0.167-0.243,0.254-0.251c0.067-0.007,0.224-0.021,0.385-0.042c1.582,1.885,2.561,4.284,2.673,6.905c-0.118,0.159-0.012,0.305,0.021,0.408c0.001,0.03,0.005,0.058,0.005,0.088c0,0.136-0.016,0.269-0.021,0.404C27.512,16.406,27.512,16.408,27.51,16.41zM17.794,12.084c-0.064,0.013-0.169-0.052-0.169-0.143s-0.091,0.169-0.04,0.247c0.053,0.078-0.104,0.169-0.155,0.169s-0.091-0.116-0.078-0.233c0.014-0.117-0.077-0.221-0.221-0.208c-0.143,0.014-0.208,0.13-0.259,0.169c-0.053,0.039-0.053,0.259-0.04,0.312s0.013,0.235-0.116,0.221c-0.118-0.013-0.092-0.233-0.079-0.312c0.014-0.078-0.039-0.273,0.014-0.376c0.053-0.104,0.207-0.143,0.312-0.156s0.324,0.065,0.363,0.052c0.04-0.014,0.222-0.014,0.312,0C17.729,11.837,17.858,12.071,17.794,12.084zM18.027,12.123c0.04,0.026,0.311-0.039,0.364,0.026c0.051,0.065-0.054,0.078-0.183,0.13c-0.129,0.052-0.169,0.039-0.221,0.104s-0.221,0.09-0.299,0.168c-0.078,0.079-0.217,0.125-0.246,0.065c-0.04-0.078,0.013-0.039,0.025-0.078c0.013-0.039,0.245-0.129,0.245-0.129S17.988,12.097,18.027,12.123zM16.988,11.668c-0.038,0.013-0.182-0.026-0.3-0.026c-0.116,0-0.091-0.078-0.143-0.064c-0.051,0.013-0.168,0.039-0.247,0.078c-0.078,0.039-0.208,0.03-0.208-0.04c0-0.104,0.052-0.078,0.221-0.143c0.169-0.065,0.352-0.247,0.429-0.169c0.078,0.078,0.221,0.169,0.312,0.182C17.144,11.5,17.026,11.655,16.988,11.668zM15.659,7.637c-0.079,0.026-0.347,0.139-0.321,0.199c0.01,0.023,0.078,0.069,0.19,0.052c0.113-0.018,0.276-0.035,0.355-0.043c0.078-0.009,0.095-0.139,0.009-0.147C15.805,7.689,15.736,7.611,15.659,7.637zM14.698,7.741c-0.061,0.026-0.243-0.043-0.338,0.018c-0.061,0.038-0.026,0.164,0.07,0.172c0.095,0.009,0.259-0.06,0.276-0.008c0.018,0.052,0.078,0.286,0.234,0.208c0.156-0.078,0.147-0.147,0.19-0.156c0.043-0.009-0.008-0.199-0.078-0.243C14.983,7.689,14.758,7.715,14.698,7.741zM14.385,7.005c0.017,0.044-0.008,0.078,0.113,0.095c0.121,0.018,0.173,0.035,0.243,0.035c0.069,0,0.042-0.113-0.018-0.19c-0.061-0.078-0.043-0.069-0.199-0.113c-0.156-0.043-0.312-0.043-0.416-0.035c-0.104,0.009-0.217-0.017-0.243,0.104c-0.013,0.062,0.07,0.112,0.174,0.112S14.368,6.962,14.385,7.005zM14.611,7.481c0.043,0.095,0.043,0.051,0.165,0.061C14.896,7.551,14.991,7.421,15,7.378c0.009-0.044-0.061-0.13-0.225-0.113c-0.165,0.017-0.667-0.026-0.736,0.034c-0.066,0.058,0,0.233-0.026,0.251c-0.026,0.017,0.009,0.095,0.077,0.078c0.069-0.017,0.104-0.182,0.157-0.182C14.299,7.447,14.568,7.386,14.611,7.481zM12.982,7.126c0.052,0.043,0.183,0.008,0.173-0.035c-0.008-0.043,0.053-0.217-0.051-0.225C13,6.858,12.854,6.962,12.697,7.014c-0.101,0.033-0.078,0.13-0.009,0.13S12.931,7.083,12.982,7.126zM13.72,7.282c-0.087,0.043-0.114,0.069-0.191,0.052c-0.078-0.017-0.078-0.156-0.217-0.13c-0.138,0.026-0.164,0.104-0.207,0.139s-0.139,0.061-0.173,0.043c-0.034-0.017-0.234-0.129-0.234-0.129s-0.416-0.018-0.433-0.07c-0.017-0.052-0.086-0.138-0.277-0.121s-0.52,0.13-0.572,0.13c-0.052,0,0.062,0.104-0.009,0.104c-0.069,0-0.155-0.008-0.181,0.069c-0.018,0.053,0.078,0.052,0.189,0.052c0.112,0,0.295,0,0.347-0.026c0.052-0.026,0.312-0.087,0.303-0.009c-0.009,0.079,0.104,0.199,0.164,0.182c0.061-0.017,0.183-0.13,0.243-0.086c0.061,0.043,0.07,0.146,0.13,0.173c0.061,0.025,0.226,0.025,0.304,0c0.077-0.027,0.294-0.027,0.389-0.009c0.095,0.018,0.373,0.069,0.399,0.018c0.026-0.053,0.104-0.061,0.112-0.113s0.051-0.216,0.051-0.216S13.806,7.239,13.72,7.282zM18.105,16.239c-0.119,0.021-0.091,0.252,0.052,0.21C18.3,16.407,18.223,16.217,18.105,16.239zM19.235,15.929c-0.104-0.026-0.221,0-0.299,0.013c-0.078,0.013-0.299,0.208-0.299,0.208s0.143,0.026,0.233,0.026c0.092,0,0.144,0.051,0.221,0.09c0.078,0.04,0.221-0.052,0.272-0.052c0.053,0,0.118,0.156,0.131-0.013C19.508,16.032,19.339,15.955,19.235,15.929zM15.616,7.507c-0.043-0.104-0.259-0.139-0.304-0.035C15.274,7.563,15.659,7.611,15.616,7.507zM18.093,15.292c0.143-0.026,0.064-0.144-0.053-0.13C17.922,15.175,17.949,15.318,18.093,15.292zM19.82,16.095c-0.119,0.022-0.092,0.253,0.051,0.211C20.015,16.264,19.937,16.074,19.82,16.095zM18.247,15.708c-0.09,0.013-0.285-0.09-0.389-0.182c-0.104-0.091-0.299-0.091-0.377-0.091c-0.077,0-0.39,0.091-0.39,0.091c-0.013,0.13,0.117,0.091,0.273,0.091s0.429-0.026,0.479,0.039c0.053,0.064,0.286,0.168,0.352,0.221c0.064,0.052,0.272,0.065,0.285,0.013S18.338,15.695,18.247,15.708zM16.698,7.412c-0.13-0.009-0.295-0.009-0.399,0c-0.104,0.008-0.182-0.069-0.26-0.113c-0.077-0.043-0.251-0.182-0.354-0.199c-0.104-0.017-0.086-0.017-0.303-0.069c-0.11-0.027-0.294-0.061-0.294-0.086c0-0.026-0.052,0.121,0.043,0.165c0.095,0.043,0.251,0.121,0.363,0.164c0.114,0.043,0.329,0.052,0.399,0.139c0.069,0.086,0.303,0.156,0.303,0.156l0.277,0.026c0,0,0.191-0.043,0.39-0.026c0.199,0.017,0.493,0.043,0.659,0.035c0.163-0.008,0.189-0.061,0.208-0.095c0.016-0.035-0.304-0.104-0.383-0.095C17.271,7.42,16.827,7.42,16.698,7.412zM17.182,9.404c-0.034,0.039,0.157,0.095,0.191,0.043C17.407,9.396,17.271,9.309,17.182,9.404zM17.764,9.585c0.086-0.035,0.043-0.139-0.079-0.104C17.547,9.521,17.676,9.62,17.764,9.585z",
27
+ "raph_warning": "M29.225,23.567l-3.778-6.542c-1.139-1.972-3.002-5.2-4.141-7.172l-3.778-6.542c-1.14-1.973-3.003-1.973-4.142,0L9.609,9.853c-1.139,1.972-3.003,5.201-4.142,7.172L1.69,23.567c-1.139,1.974-0.207,3.587,2.071,3.587h23.391C29.432,27.154,30.363,25.541,29.225,23.567zM16.536,24.58h-2.241v-2.151h2.241V24.58zM16.428,20.844h-2.023l-0.201-9.204h2.407L16.428,20.844z",
28
+ "raph_arrowleftalt": "M16,30.534c8.027,0,14.534-6.507,14.534-14.534c0-8.027-6.507-14.534-14.534-14.534C7.973,1.466,1.466,7.973,1.466,16C1.466,24.027,7.973,30.534,16,30.534zM18.335,6.276l3.536,3.538l-6.187,6.187l6.187,6.187l-3.536,3.537l-9.723-9.724L18.335,6.276z",
29
+ "raph_arrowalt": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM13.665,25.725l-3.536-3.539l6.187-6.187l-6.187-6.187l3.536-3.536l9.724,9.723L13.665,25.725z",
30
+ "raph_code": "M8.982,7.107L0.322,15.77l8.661,8.662l3.15-3.15L6.621,15.77l5.511-5.511L8.982,7.107zM21.657,7.107l-3.148,3.151l5.511,5.511l-5.511,5.511l3.148,3.15l8.662-8.662L21.657,7.107z",
31
+ "raph_arrowleft": "M21.871,9.814 15.684,16.001 21.871,22.188 18.335,25.725 8.612,16.001 18.335,6.276",
32
+ "raph_arrow": "M10.129,22.186 16.316,15.999 10.129,9.812 13.665,6.276 23.389,15.999 13.665,25.725",
33
+ "raph_pensil": "M25.31,2.872l-3.384-2.127c-0.854-0.536-1.979-0.278-2.517,0.576l-1.334,2.123l6.474,4.066l1.335-2.122C26.42,4.533,26.164,3.407,25.31,2.872zM6.555,21.786l6.474,4.066L23.581,9.054l-6.477-4.067L6.555,21.786zM5.566,26.952l-0.143,3.819l3.379-1.787l3.14-1.658l-6.246-3.925L5.566,26.952z",
34
+ "raph_pen": "M13.587,12.074c-0.049-0.074-0.11-0.147-0.188-0.202c-0.333-0.243-0.803-0.169-1.047,0.166c-0.244,0.336-0.167,0.805,0.167,1.048c0.303,0.22,0.708,0.167,0.966-0.091l-7.086,9.768l-2.203,7.997l6.917-4.577L26.865,4.468l-4.716-3.42l-1.52,2.096c-0.087-0.349-0.281-0.676-0.596-0.907c-0.73-0.529-1.751-0.369-2.28,0.363C14.721,6.782,16.402,7.896,13.587,12.074zM10.118,25.148L6.56,27.503l1.133-4.117L10.118,25.148zM14.309,11.861c2.183-3.225,1.975-4.099,3.843-6.962c0.309,0.212,0.664,0.287,1.012,0.269L14.309,11.861z",
35
+ "raph_plus": "M25.979,12.896 19.312,12.896 19.312,6.229 12.647,6.229 12.647,12.896 5.979,12.896 5.979,19.562 12.647,19.562 12.647,26.229 19.312,26.229 19.312,19.562 25.979,19.562",
36
+ "raph_minus": "M25.979,12.896,19.312,12.896,5.979,12.896,5.979,19.562,25.979,19.562",
37
+ "raph_tshirt": "M20.1,4.039c-0.681,1.677-2.32,2.862-4.24,2.862c-1.921,0-3.56-1.185-4.24-2.862L1.238,8.442l2.921,6.884l3.208-1.361V28h17.099V14.015l3.093,1.312l2.922-6.884L20.1,4.039z",
38
+ "raph_raphael": "M27.777,18.941c0.584-0.881,0.896-1.914,0.896-2.998c0-1.457-0.567-2.826-1.598-3.854l-6.91-6.911l-0.003,0.002c-0.985-0.988-2.35-1.6-3.851-1.6c-1.502,0-2.864,0.612-3.85,1.6H12.46l-6.911,6.911c-1.031,1.029-1.598,2.398-1.598,3.854c0,1.457,0.567,2.826,1.598,3.854l6.231,6.229c0.25,0.281,0.512,0.544,0.789,0.785c1.016,0.961,2.338,1.49,3.743,1.49c1.456,0,2.825-0.565,3.854-1.598l6.723-6.725c0.021-0.019,0.034-0.032,0.051-0.051l0.14-0.138c0.26-0.26,0.487-0.54,0.688-0.838c0.004-0.008,0.01-0.015,0.014-0.021L27.777,18.941zM26.658,15.946c0,0.678-0.197,1.326-0.561,1.879c-0.222,0.298-0.447,0.559-0.684,0.784L25.4,18.625c-1.105,1.052-2.354,1.35-3.414,1.35c-0.584,0-1.109-0.09-1.523-0.195c-2.422-0.608-5.056-2.692-6.261-5.732c0.649,0.274,1.362,0.426,2.11,0.426c2.811,0,5.129-2.141,5.415-4.877l3.924,3.925C26.301,14.167,26.658,15.029,26.658,15.946zM16.312,5.6c1.89,0,3.426,1.538,3.426,3.427c0,1.89-1.536,3.427-3.426,3.427c-1.889,0-3.426-1.537-3.426-3.427C12.886,7.138,14.423,5.6,16.312,5.6zM6.974,18.375c-0.649-0.648-1.007-1.512-1.007-2.429c0-0.917,0.357-1.78,1.007-2.428l2.655-2.656c-0.693,2.359-0.991,4.842-0.831,7.221c0.057,0.854,0.175,1.677,0.345,2.46L6.974,18.375zM11.514,11.592c0.583,4.562,4.195,9.066,8.455,10.143c0.693,0.179,1.375,0.265,2.033,0.265c0.01,0,0.02,0,0.027,0l-3.289,3.289c-0.648,0.646-1.512,1.006-2.428,1.006c-0.638,0-1.248-0.177-1.779-0.5l0.001-0.002c-0.209-0.142-0.408-0.295-0.603-0.461c-0.015-0.019-0.031-0.026-0.046-0.043l-0.665-0.664c-1.367-1.567-2.227-3.903-2.412-6.671C10.669,15.856,10.921,13.673,11.514,11.592",
39
+ "raph_graphael": "M28.832,16.104c0-1.477-0.574-2.863-1.617-3.905l-7.002-7.001L20.211,5.2c-1.027-1.03-2.445-1.62-3.9-1.62c-1.455,0-2.871,0.59-3.9,1.621l-0.002-0.002l-7,7c-1.033,1.031-1.619,2.445-1.619,3.905c0,1.458,0.586,2.872,1.619,3.903l6.312,6.312c0.253,0.284,0.519,0.55,0.8,0.794c1.049,0.994,2.463,1.54,3.908,1.51c1.417-0.028,2.783-0.612,3.785-1.615l6.811-6.811c0.018-0.017,0.035-0.034,0.053-0.052l0.137-0.138c0.27-0.268,0.49-0.564,0.713-0.868l-0.002-0.002C28.516,18.244,28.832,17.198,28.832,16.104zM23.08,21.252l-0.051,0.006l-0.955,0.974c0.01,0-3.305,3.332-3.305,3.332c-1.121,1.119-2.906,1.337-4.261,0.511l0.002-0.002c-0.213-0.141-0.414-0.299-0.61-0.467c-0.016-0.015-0.032-0.027-0.047-0.042l-3.024-3.024h-0.001l-3.976-3.976c-1.34-1.339-1.342-3.581,0-4.921l2.689-2.689l0.052-0.005l0.956-0.973c-0.01,0,3.303-3.332,3.303-3.332c1.121-1.12,2.908-1.337,4.261-0.511v0.002c0.211,0.14,0.414,0.299,0.609,0.467c0.016,0.015,0.031,0.028,0.047,0.042l3.025,3.024l0,0l3.975,3.976c0.389,0.388,0.66,0.852,0.824,1.348l-2.617,0.008c-0.537-3.754-3.764-6.64-7.666-6.64c-4.277,0-7.744,3.467-7.745,7.746c0.001,4.277,3.468,7.743,7.745,7.744c3.919-0.001,7.156-2.911,7.671-6.688l2.635-0.009c-0.16,0.52-0.441,1.007-0.846,1.412L23.08,21.252zM16.311,17.184c0.002,0,0.002,0,0.004,0l5.476-0.018c-0.5,2.573-2.76,4.516-5.48,4.52c-3.084-0.005-5.578-2.5-5.584-5.582c0.006-3.084,2.5-5.579,5.584-5.584c2.707,0.005,4.96,1.929,5.472,4.485l-5.476,0.018c-0.596,0.002-1.078,0.488-1.076,1.084C15.233,16.702,15.715,17.184,16.311,17.184z",
40
+ "raph_page": "M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z",
41
+ "raph_page2": "M23.024,5.673c-1.744-1.694-3.625-3.051-5.168-3.236c-0.084-0.012-0.171-0.019-0.263-0.021H7.438c-0.162,0-0.322,0.063-0.436,0.18C6.889,2.71,6.822,2.87,6.822,3.033v25.75c0,0.162,0.063,0.317,0.18,0.435c0.117,0.116,0.271,0.179,0.436,0.179h18.364c0.162,0,0.317-0.062,0.434-0.179c0.117-0.117,0.182-0.272,0.182-0.435V11.648C26.382,9.659,24.824,7.49,23.024,5.673zM22.157,6.545c0.805,0.786,1.529,1.676,2.069,2.534c-0.468-0.185-0.959-0.322-1.42-0.431c-1.015-0.228-2.008-0.32-2.625-0.357c0.003-0.133,0.004-0.283,0.004-0.446c0-0.869-0.055-2.108-0.356-3.2c-0.003-0.01-0.005-0.02-0.009-0.03C20.584,5.119,21.416,5.788,22.157,6.545zM25.184,28.164H8.052V3.646h9.542v0.002c0.416-0.025,0.775,0.386,1.05,1.326c0.25,0.895,0.313,2.062,0.312,2.871c0.002,0.593-0.027,0.991-0.027,0.991l-0.049,0.652l0.656,0.007c0.003,0,1.516,0.018,3,0.355c1.426,0.308,2.541,0.922,2.645,1.617c0.004,0.062,0.005,0.124,0.004,0.182V28.164z",
42
+ "raph_plugin": "M26.33,15.836l-3.893-1.545l3.136-7.9c0.28-0.705-0.064-1.505-0.771-1.785c-0.707-0.28-1.506,0.065-1.785,0.771l-3.136,7.9l-4.88-1.937l3.135-7.9c0.281-0.706-0.064-1.506-0.77-1.786c-0.706-0.279-1.506,0.065-1.785,0.771l-3.136,7.9L8.554,8.781l-1.614,4.066l2.15,0.854l-2.537,6.391c-0.61,1.54,0.143,3.283,1.683,3.895l1.626,0.646L8.985,26.84c-0.407,1.025,0.095,2.188,1.122,2.596l0.93,0.369c1.026,0.408,2.188-0.095,2.596-1.121l0.877-2.207l1.858,0.737c1.54,0.611,3.284-0.142,3.896-1.682l2.535-6.391l1.918,0.761L26.33,15.836z",
43
+ "raph_svg": "M31.274,15.989c0-2.473-2.005-4.478-4.478-4.478l0,0c0.81-0.811,1.312-1.93,1.312-3.167c0-2.474-2.005-4.479-4.479-4.479c-1.236,0-2.356,0.501-3.167,1.312c0-2.473-2.005-4.478-4.478-4.478c-2.474,0-4.479,2.005-4.479,4.478c-0.811-0.81-1.93-1.312-3.167-1.312c-2.474,0-4.479,2.005-4.479,4.479c0,1.236,0.501,2.356,1.312,3.166c-2.474,0-4.479,2.005-4.479,4.479c0,2.474,2.005,4.479,4.479,4.479c-0.811,0.81-1.312,1.93-1.312,3.167c0,2.473,2.005,4.478,4.479,4.478c1.236,0,2.356-0.501,3.167-1.312c0,2.473,2.005,4.479,4.479,4.479c2.473,0,4.478-2.006,4.478-4.479l0,0c0.811,0.811,1.931,1.312,3.167,1.312c2.474,0,4.478-2.005,4.478-4.478c0-1.237-0.501-2.357-1.312-3.168c0.001,0,0.001,0,0.001,0C29.27,20.467,31.274,18.463,31.274,15.989zM23.583,21.211c0.016,0,0.031-0.001,0.047-0.001c1.339,0,2.424,1.085,2.424,2.425c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-0.017,0.001-0.031,0.001-0.047l-3.541-3.542v5.009c0.457,0.44,0.743,1.06,0.743,1.746c0,1.339-1.086,2.424-2.424,2.424c-1.339,0-2.425-1.085-2.425-2.424c0-0.687,0.286-1.306,0.743-1.746v-5.009l-3.541,3.542c0,0.016,0.001,0.031,0.001,0.047c0,1.338-1.085,2.424-2.424,2.424s-2.424-1.086-2.424-2.424c0-1.34,1.085-2.425,2.424-2.425c0.015,0,0.031,0.001,0.046,0.001l3.542-3.541H6.919c-0.44,0.458-1.06,0.743-1.746,0.743c-1.339,0-2.424-1.085-2.424-2.424s1.085-2.424,2.424-2.424c0.686,0,1.305,0.285,1.746,0.744h5.008l-3.542-3.542c-0.015,0-0.031,0.001-0.046,0.001c-1.339,0-2.424-1.085-2.424-2.424S7.001,5.92,8.34,5.92s2.424,1.085,2.424,2.424c0,0.015-0.001,0.031-0.001,0.046l3.541,3.542V6.924c-0.457-0.441-0.743-1.06-0.743-1.746c0-1.339,1.086-2.425,2.425-2.425c1.338,0,2.424,1.085,2.424,2.425c0,0.686-0.286,1.305-0.743,1.746v5.008l3.541-3.542c0-0.015-0.001-0.031-0.001-0.046c0-1.339,1.085-2.424,2.424-2.424s2.424,1.085,2.424,2.424c0,1.339-1.085,2.424-2.424,2.424c-0.016,0-0.031-0.001-0.047-0.001l-3.541,3.542h5.008c0.441-0.458,1.061-0.744,1.747-0.744c1.338,0,2.423,1.085,2.423,2.424s-1.085,2.424-2.423,2.424c-0.687,0-1.306-0.285-1.747-0.743h-5.008L23.583,21.211z",
44
+ "raph_bookmark": "M17.396,1.841L6.076,25.986l7.341-4.566l1.186,8.564l11.32-24.146L17.396,1.841zM19.131,9.234c-0.562-0.264-0.805-0.933-0.541-1.495c0.265-0.562,0.934-0.805,1.496-0.541s0.805,0.934,0.541,1.496S19.694,9.498,19.131,9.234z",
45
+ "raph_hammer": "M7.831,29.354c0.685,0.353,1.62,1.178,2.344,0.876c0.475-0.195,0.753-1.301,1.048-1.883c2.221-4.376,4.635-9.353,6.392-13.611c0-0.19,0.101-0.337-0.049-0.595c0.983-1.6,1.65-3.358,2.724-5.138c0.34-0.566,0.686-1.351,1.163-1.577l0.881-0.368c1.12-0.288,1.938-0.278,2.719,0.473c0.396,0.383,0.578,1.015,0.961,1.395c0.259,0.26,1.246,0.899,1.613,0.8c0.285-0.077,0.52-0.364,0.72-0.728l0.696-1.286c0.195-0.366,0.306-0.718,0.215-0.999c-0.117-0.362-1.192-0.84-1.552-0.915c-0.528-0.113-1.154,0.081-1.692-0.041c-1.057-0.243-1.513-0.922-1.883-2.02c-2.608-1.533-6.119-2.53-10.207-1.244c-1.109,0.349-2.172,0.614-2.901,1.323c-0.146,0.412,0.143,0.494,0.446,0.489c-0.237,0.216-0.62,0.341-0.399,0.848c2.495-1.146,7.34-1.542,7.669,0.804c0.072,0.522-0.395,1.241-0.682,1.835c-0.905,1.874-2.011,3.394-2.813,5.091c-0.298,0.017-0.366,0.18-0.525,0.287c-2.604,3.8-5.451,8.541-7.9,12.794c-0.326,0.566-1.098,1.402-1.002,1.906C5.961,28.641,7.146,29,7.831,29.354z",
46
+ "raph_users": "M21.053,20.8c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68h-0.34c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888C28.469,23.686,22.185,21.252,21.053,20.8zM8.583,20.628c-0.099-0.18-0.148-0.31-0.148-0.31s-0.432,0.239-0.432-0.432s0.432,0.432,0.864-2.159c0,0,1.199-0.336,0.959-3.119H9.538c0,0,0.143-0.591,0.237-1.334c-0.004-0.308,0.006-0.636,0.037-0.996l0.038-0.426c-0.021-0.492-0.107-0.939-0.312-1.226C8.818,9.619,8.53,8.947,6.947,8.467c-1.583-0.48-1.008-0.385-2.159-0.336C3.636,8.179,2.676,8.802,2.676,9.139c0,0-0.72,0.048-1.008,0.336c-0.271,0.271-0.705,1.462-0.757,1.885v0.281c0.047,0.653,0.258,2.449,0.469,2.872l-0.286,0.096c-0.239,2.783,0.959,3.119,0.959,3.119c0.432,2.591,0.864,1.488,0.864,2.159s-0.432,0.432-0.432,0.432s-0.383,1.057-1.343,1.439c-0.061,0.024-0.139,0.056-0.232,0.092v5.234h0.575c-0.029-1.278,0.077-2.927,0.746-3.594C2.587,23.135,3.754,22.551,8.583,20.628zM30.913,11.572c-0.04-0.378-0.127-0.715-0.292-0.946c-0.719-1.008-1.008-1.679-2.59-2.159c-1.584-0.48-1.008-0.385-2.16-0.336C24.72,8.179,23.76,8.802,23.76,9.139c0,0-0.719,0.048-1.008,0.336c-0.271,0.272-0.709,1.472-0.758,1.891h0.033l0.08,0.913c0.02,0.231,0.022,0.436,0.027,0.645c0.09,0.666,0.21,1.35,0.33,1.589l-0.286,0.096c-0.239,2.783,0.96,3.119,0.96,3.119c0.432,2.591,0.863,1.488,0.863,2.159s-0.432,0.432-0.432,0.432s-0.053,0.142-0.163,0.338c4.77,1.9,5.927,2.48,6.279,2.834c0.67,0.667,0.775,2.315,0.746,3.594h0.48v-5.306c-0.016-0.006-0.038-0.015-0.052-0.021c-0.959-0.383-1.343-1.439-1.343-1.439s-0.433,0.239-0.433-0.432s0.433,0.432,0.864-2.159c0,0,0.804-0.229,0.963-1.841v-1.227c-0.001-0.018-0.001-0.033-0.003-0.051h-0.289c0,0,0.215-0.89,0.292-1.861V11.572z",
47
+ "raph_user": "M20.771,12.364c0,0,0.849-3.51,0-4.699c-0.85-1.189-1.189-1.981-3.058-2.548s-1.188-0.454-2.547-0.396c-1.359,0.057-2.492,0.792-2.492,1.188c0,0-0.849,0.057-1.188,0.397c-0.34,0.34-0.906,1.924-0.906,2.321s0.283,3.058,0.566,3.624l-0.337,0.113c-0.283,3.283,1.132,3.68,1.132,3.68c0.509,3.058,1.019,1.756,1.019,2.548s-0.51,0.51-0.51,0.51s-0.452,1.245-1.584,1.698c-1.132,0.452-7.416,2.886-7.927,3.396c-0.511,0.511-0.453,2.888-0.453,2.888h26.947c0,0,0.059-2.377-0.452-2.888c-0.512-0.511-6.796-2.944-7.928-3.396c-1.132-0.453-1.584-1.698-1.584-1.698s-0.51,0.282-0.51-0.51s0.51,0.51,1.02-2.548c0,0,1.414-0.397,1.132-3.68H20.771z",
48
+ "raph_mail": "M28.516,7.167H3.482l12.517,7.108L28.516,7.167zM16.74,17.303C16.51,17.434,16.255,17.5,16,17.5s-0.51-0.066-0.741-0.197L2.5,10.06v14.773h27V10.06L16.74,17.303z",
49
+ "raph_picture": "M2.5,4.833v22.334h27V4.833H2.5zM25.25,25.25H6.75V6.75h18.5V25.25zM11.25,14c1.426,0,2.583-1.157,2.583-2.583c0-1.427-1.157-2.583-2.583-2.583c-1.427,0-2.583,1.157-2.583,2.583C8.667,12.843,9.823,14,11.25,14zM24.251,16.25l-4.917-4.917l-6.917,6.917L10.5,16.333l-2.752,2.752v5.165h16.503V16.25z",
50
+ "raph_bubble": "M16,5.333c-7.732,0-14,4.701-14,10.5c0,1.982,0.741,3.833,2.016,5.414L2,25.667l5.613-1.441c2.339,1.317,5.237,2.107,8.387,2.107c7.732,0,14-4.701,14-10.5C30,10.034,23.732,5.333,16,5.333z",
51
+ "raph_codetalk": "M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM13.704,19.47l-2.338,2.336l-6.43-6.431l6.429-6.432l2.339,2.341l-4.091,4.091L13.704,19.47zM20.775,21.803l-2.337-2.339l4.092-4.09l-4.092-4.092l2.337-2.339l6.43,6.426L20.775,21.803z",
52
+ "raph_talkq": "M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.868,21.375h-1.969v-1.889h1.969V21.375zM16.772,18.094h-1.777l-0.176-8.083h2.113L16.772,18.094z",
53
+ "raph_talke": "M16,4.938c-7.732,0-14,4.701-14,10.5c0,1.981,0.741,3.833,2.016,5.414L2,25.272l5.613-1.44c2.339,1.316,5.237,2.106,8.387,2.106c7.732,0,14-4.701,14-10.5S23.732,4.938,16,4.938zM16.982,21.375h-1.969v-1.889h1.969V21.375zM16.982,17.469v0.625h-1.969v-0.769c0-2.321,2.641-2.689,2.641-4.337c0-0.752-0.672-1.329-1.553-1.329c-0.912,0-1.713,0.672-1.713,0.672l-1.12-1.393c0,0,1.104-1.153,3.009-1.153c1.81,0,3.49,1.121,3.49,3.009C19.768,15.437,16.982,15.741,16.982,17.469z",
54
+ "raph_home": "M27.812,16l-3.062-3.062V5.625h-2.625v4.688L16,4.188L4.188,16L7,15.933v11.942h17.875V16H27.812zM16,26.167h-5.833v-7H16V26.167zM21.667,23.167h-3.833v-4.042h3.833V23.167z",
55
+ "raph_linkedin": "M27.25,3.125h-22c-1.104,0-2,0.896-2,2v22c0,1.104,0.896,2,2,2h22c1.104,0,2-0.896,2-2v-22C29.25,4.021,28.354,3.125,27.25,3.125zM11.219,26.781h-4v-14h4V26.781zM9.219,11.281c-1.383,0-2.5-1.119-2.5-2.5s1.117-2.5,2.5-2.5s2.5,1.119,2.5,2.5S10.602,11.281,9.219,11.281zM25.219,26.781h-4v-8.5c0-0.4-0.403-1.055-0.687-1.213c-0.375-0.211-1.261-0.229-1.665-0.034l-1.648,0.793v8.954h-4v-14h4v0.614c1.583-0.723,3.78-0.652,5.27,0.184c1.582,0.886,2.73,2.864,2.73,4.702V26.781z",
56
+ "raph_github": "M28.436,15.099c-1.201-0.202-2.451-0.335-3.466-0.371l-0.179-0.006c0.041-0.09,0.072-0.151,0.082-0.16c0.022-0.018,0.04-0.094,0.042-0.168c0-0.041,0.018-0.174,0.046-0.35c0.275,0.01,0.64,0.018,1.038,0.021c1.537,0.012,3.145,0.136,4.248,0.331c0.657,0.116,0.874,0.112,0.389-0.006c-0.491-0.119-1.947-0.294-3.107-0.37c-0.779-0.053-1.896-0.073-2.554-0.062c0.019-0.114,0.041-0.241,0.064-0.371c0.093-0.503,0.124-1.009,0.126-2.016c0.002-1.562-0.082-1.992-0.591-3.025c-0.207-0.422-0.441-0.78-0.724-1.104c0.247-0.729,0.241-1.858-0.015-2.848c-0.211-0.812-0.285-0.864-1.021-0.708C22.19,4.019,21.69,4.2,21.049,4.523c-0.303,0.153-0.721,0.391-1.024,0.578c-0.79-0.278-1.607-0.462-2.479-0.561c-0.884-0.1-3.051-0.044-3.82,0.098c-0.752,0.139-1.429,0.309-2.042,0.511c-0.306-0.189-0.75-0.444-1.067-0.604C9.973,4.221,9.473,4.041,8.847,3.908c-0.734-0.157-0.81-0.104-1.02,0.708c-0.26,1.003-0.262,2.151-0.005,2.878C7.852,7.577,7.87,7.636,7.877,7.682c-1.042,1.312-1.382,2.78-1.156,4.829c0.059,0.534,0.15,1.024,0.277,1.473c-0.665-0.004-1.611,0.02-2.294,0.064c-1.162,0.077-2.618,0.25-3.109,0.369c-0.484,0.118-0.269,0.122,0.389,0.007c1.103-0.194,2.712-0.32,4.248-0.331c0.29-0.001,0.561-0.007,0.794-0.013c0.07,0.237,0.15,0.463,0.241,0.678L7.26,14.759c-1.015,0.035-2.264,0.168-3.465,0.37c-0.901,0.151-2.231,0.453-2.386,0.54c-0.163,0.091-0.03,0.071,0.668-0.106c1.273-0.322,2.928-0.569,4.978-0.741l0.229-0.02c0.44,1.022,1.118,1.802,2.076,2.41c0.586,0.373,1.525,0.756,1.998,0.816c0.13,0.016,0.508,0.094,0.84,0.172c0.333,0.078,0.984,0.195,1.446,0.262h0.011c-0.009,0.006-0.017,0.01-0.025,0.016c-0.56,0.291-0.924,0.744-1.169,1.457c-0.11,0.033-0.247,0.078-0.395,0.129c-0.529,0.18-0.735,0.217-1.271,0.221c-0.556,0.004-0.688-0.02-1.02-0.176c-0.483-0.225-0.933-0.639-1.233-1.133c-0.501-0.826-1.367-1.41-2.089-1.41c-0.617,0-0.734,0.25-0.288,0.615c0.672,0.549,1.174,1.109,1.38,1.537c0.116,0.24,0.294,0.611,0.397,0.824c0.109,0.227,0.342,0.535,0.564,0.748c0.522,0.498,1.026,0.736,1.778,0.848c0.504,0.074,0.628,0.074,1.223-0.002c0.287-0.035,0.529-0.076,0.746-0.127c0,0.244,0,0.525,0,0.855c0,1.766-0.021,2.334-0.091,2.5c-0.132,0.316-0.428,0.641-0.716,0.787c-0.287,0.146-0.376,0.307-0.255,0.455c0.067,0.08,0.196,0.094,0.629,0.066c0.822-0.051,1.403-0.355,1.699-0.891c0.095-0.172,0.117-0.518,0.147-2.318c0.032-1.953,0.046-2.141,0.173-2.42c0.077-0.166,0.188-0.346,0.25-0.395c0.104-0.086,0.111,0.084,0.111,2.42c-0.001,2.578-0.027,2.889-0.285,3.385c-0.058,0.113-0.168,0.26-0.245,0.33c-0.135,0.123-0.192,0.438-0.098,0.533c0.155,0.154,0.932-0.088,1.356-0.422c0.722-0.572,0.808-1.045,0.814-4.461l0.003-2.004l0.219,0.021l0.219,0.02l0.036,2.621c0.041,2.951,0.047,2.994,0.549,3.564c0.285,0.322,0.572,0.5,1.039,0.639c0.625,0.188,0.813-0.102,0.393-0.605c-0.457-0.547-0.479-0.756-0.454-3.994c0.017-2.076,0.017-2.076,0.151-1.955c0.282,0.256,0.336,0.676,0.336,2.623c0,2.418,0.069,2.648,0.923,3.07c0.399,0.195,0.511,0.219,1.022,0.221c0.544,0.002,0.577-0.006,0.597-0.148c0.017-0.115-0.05-0.193-0.304-0.348c-0.333-0.205-0.564-0.467-0.709-0.797c-0.055-0.127-0.092-0.959-0.117-2.672c-0.036-2.393-0.044-2.502-0.193-2.877c-0.201-0.504-0.508-0.902-0.897-1.166c-0.101-0.066-0.202-0.121-0.333-0.162c0.161-0.016,0.317-0.033,0.468-0.055c1.572-0.209,2.403-0.383,3.07-0.641c1.411-0.543,2.365-1.445,2.882-2.724c0.046-0.114,0.092-0.222,0.131-0.309l0.398,0.033c2.051,0.173,3.706,0.42,4.979,0.743c0.698,0.177,0.831,0.198,0.668,0.105C30.666,15.551,29.336,15.25,28.436,15.099zM22.422,15.068c-0.233,0.512-0.883,1.17-1.408,1.428c-0.518,0.256-1.33,0.451-2.25,0.544c-0.629,0.064-4.137,0.083-4.716,0.026c-1.917-0.188-2.991-0.557-3.783-1.296c-0.75-0.702-1.1-1.655-1.039-2.828c0.039-0.734,0.216-1.195,0.679-1.755c0.421-0.51,0.864-0.825,1.386-0.985c0.437-0.134,1.778-0.146,3.581-0.03c0.797,0.051,1.456,0.051,2.252,0c1.886-0.119,3.145-0.106,3.61,0.038c0.731,0.226,1.397,0.834,1.797,1.644c0.18,0.362,0.215,0.516,0.241,1.075C22.808,13.699,22.675,14.517,22.422,15.068zM12.912,11.762c-1.073-0.188-1.686,1.649-0.863,2.587c0.391,0.445,0.738,0.518,1.172,0.248c0.402-0.251,0.62-0.72,0.62-1.328C13.841,12.458,13.472,11.862,12.912,11.762zM19.425,11.872c-1.073-0.188-1.687,1.647-0.864,2.586c0.392,0.445,0.738,0.519,1.173,0.247c0.401-0.25,0.62-0.72,0.62-1.328C20.354,12.569,19.985,11.971,19.425,11.872zM16.539,15.484c-0.023,0.074-0.135,0.184-0.248,0.243c-0.286,0.147-0.492,0.096-0.794-0.179c-0.187-0.169-0.272-0.258-0.329-0.081c-0.053,0.164,0.28,0.493,0.537,0.594c0.236,0.094,0.405,0.097,0.661-0.01c0.254-0.106,0.476-0.391,0.476-0.576C16.842,15.303,16.595,15.311,16.539,15.484zM16.222,14.909c0.163-0.144,0.2-0.44,0.044-0.597s-0.473-0.133-0.597,0.043c-0.144,0.206-0.067,0.363,0.036,0.53C15.865,15.009,16.08,15.034,16.222,14.909z",
57
+ "raph_flickr": "M21.77,8.895c-2.379,0-4.479,1.174-5.77,2.969c-1.289-1.795-3.39-2.969-5.77-2.969c-3.924,0-7.105,3.181-7.105,7.105c0,3.924,3.181,7.105,7.105,7.105c2.379,0,4.48-1.175,5.77-2.97c1.29,1.795,3.391,2.97,5.77,2.97c3.925,0,7.105-3.182,7.105-7.105C28.875,12.075,25.694,8.895,21.77,8.895zM21.769,21.822c-3.211,0-5.821-2.61-5.821-5.821c0-3.213,2.61-5.824,5.821-5.824c3.213,0,5.824,2.611,5.824,5.824C27.593,19.212,24.981,21.822,21.769,21.822z",
58
+ "raph_lock": "M22.335,12.833V9.999h-0.001C22.333,6.501,19.498,3.666,16,3.666S9.666,6.502,9.666,10h0v2.833H7.375V25h17.25V12.833H22.335zM11.667,10C11.667,10,11.667,10,11.667,10c0-2.39,1.944-4.334,4.333-4.334c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h-8.668V10z",
59
+ "raph_clip": "M23.898,6.135c-1.571-1.125-3.758-0.764-4.884,0.808l-8.832,12.331c-0.804,1.122-0.546,2.684,0.577,3.488c1.123,0.803,2.684,0.545,3.488-0.578l6.236-8.706l-0.813-0.583l-6.235,8.707h0c-0.483,0.672-1.42,0.828-2.092,0.347c-0.673-0.481-0.827-1.419-0.345-2.093h0l8.831-12.33l0.001-0.001l-0.002-0.001c0.803-1.119,2.369-1.378,3.489-0.576c1.12,0.803,1.379,2.369,0.577,3.489v-0.001l-9.68,13.516l0.001,0.001c-1.124,1.569-3.316,1.931-4.885,0.808c-1.569-1.125-1.93-3.315-0.807-4.885l7.035-9.822l-0.813-0.582l-7.035,9.822c-1.447,2.02-0.982,4.83,1.039,6.277c2.021,1.448,4.831,0.982,6.278-1.037l9.68-13.516C25.83,9.447,25.47,7.261,23.898,6.135z",
60
+ "raph_star": "M15.999,22.77l-8.884,6.454l3.396-10.44l-8.882-6.454l10.979,0.002l2.918-8.977l0.476-1.458l3.39,10.433h10.982l-8.886,6.454l3.397,10.443L15.999,22.77L15.999,22.77z",
61
+ "raph_star2": "M30.373,12.329H19.391l-3.39-10.433l-0.476,1.458l-2.918,8.977L1.628,12.329l8.882,6.454l-3.396,10.44l8.884-6.454l8.886,6.457l-3.397-10.443L30.373,12.329z M17.175,21.151L16,20.298l-1.175,0.854l-3.902,2.834l1.49-4.584l0.45-1.382l-1.177-0.855l-3.9-2.834h6.275l0.45-1.381L16,8.366l1.489,4.581l0.449,1.381h6.281l-3.906,2.836l-1.178,0.854l0.449,1.384l1.493,4.584L17.175,21.151z",
62
+ "raph_plus": "M25.979,12.896 19.312,12.896 19.312,6.229 12.647,6.229 12.647,12.896 5.979,12.896 5.979,19.562 12.647,19.562 12.647,26.229 19.312,26.229 19.312,19.562 25.979,19.562",
63
+ "raph_chat": "M15.985,5.972c-7.563,0-13.695,4.077-13.695,9.106c0,2.877,2.013,5.44,5.147,7.108c-0.446,1.479-1.336,3.117-3.056,4.566c0,0,4.015-0.266,6.851-3.143c0.163,0.04,0.332,0.07,0.497,0.107c-0.155-0.462-0.246-0.943-0.246-1.443c0-3.393,3.776-6.05,8.599-6.05c3.464,0,6.379,1.376,7.751,3.406c1.168-1.34,1.847-2.892,1.847-4.552C29.68,10.049,23.548,5.972,15.985,5.972zM27.68,22.274c0-2.79-3.401-5.053-7.599-5.053c-4.196,0-7.599,2.263-7.599,5.053c0,2.791,3.403,5.053,7.599,5.053c0.929,0,1.814-0.116,2.637-0.319c1.573,1.597,3.801,1.744,3.801,1.744c-0.954-0.804-1.447-1.713-1.695-2.534C26.562,25.293,27.68,23.871,27.68,22.274z",
64
+ "raph_quote": "M14.505,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.128,0,2.07,0.411,2.826,1.229c0.756,0.82,1.134,1.832,1.134,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.259,0.443-4.327,1.332-6.203c0.888-1.875,2.243-3.57,4.067-5.085c1.824-1.514,2.988-2.272,3.492-2.272c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L14.505,5.873zM27.465,5.873c-3.937,2.52-5.904,5.556-5.904,9.108c0,1.104,0.192,1.656,0.576,1.656l0.396-0.107c0.312-0.12,0.563-0.18,0.756-0.18c1.104,0,2.04,0.411,2.808,1.229c0.769,0.82,1.152,1.832,1.152,3.037c0,1.157-0.408,2.14-1.224,2.947c-0.816,0.807-1.801,1.211-2.952,1.211c-1.608,0-2.935-0.661-3.979-1.984c-1.044-1.321-1.565-2.98-1.565-4.977c0-2.284,0.449-4.369,1.35-6.256c0.9-1.887,2.256-3.577,4.068-5.067c1.812-1.49,2.97-2.236,3.474-2.236c0.336,0,0.612,0.162,0.828,0.486c0.216,0.324,0.324,0.606,0.324,0.846L27.465,5.873z",
65
+ "raph_slideshare": "M28.952,12.795c-0.956,1.062-5.073,2.409-5.604,2.409h-4.513c-0.749,0-1.877,0.147-2.408,0.484c0.061,0.054,0.122,0.108,0.181,0.163c0.408,0.379,1.362,0.913,2.206,0.913c0.397,0,0.723-0.115,1-0.354c1.178-1.007,1.79-1.125,2.145-1.125c0.421,0,0.783,0.193,0.996,0.531c0.4,0.626,0.106,1.445-0.194,2.087c-0.718,1.524-3.058,3.171-5.595,3.171c-0.002,0-0.002,0-0.004,0c-0.354,0-0.701-0.033-1.033-0.099v3.251c0,0.742,1.033,2.533,4.167,2.533s3.955-3.701,3.955-4.338v-4.512c2.23-1.169,4.512-1.805,5.604-3.895C30.882,12.05,29.907,11.733,28.952,12.795zM21.942,17.521c0.796-1.699-0.053-1.699-1.54-0.425s-3.665,0.105-4.408-0.585c-0.743-0.689-1.486-1.22-2.814-1.167c-1.328,0.053-4.46-0.161-6.267-0.585c-1.805-0.425-4.895-3-5.15-2.335c-0.266,0.69,0.211,1.168,1.168,2.335c0.955,1.169,5.075,2.778,5.075,2.778s0,3.453,0,4.886c0,1.435,2.973,3.61,4.512,3.61s2.708-1.062,2.708-1.806v-4.512C17.775,21.045,21.146,19.221,21.942,17.521zM20.342,13.73c1.744,0,3.159-1.414,3.159-3.158c0-1.745-1.415-3.159-3.159-3.159s-3.158,1.414-3.158,3.159C17.184,12.316,18.598,13.73,20.342,13.73zM12.019,13.73c1.744,0,3.158-1.414,3.158-3.158c0-1.745-1.414-3.159-3.158-3.159c-1.745,0-3.159,1.414-3.159,3.159C8.86,12.316,10.273,13.73,12.019,13.73z"
66
+ }
67
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/raphael_2.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"size": 32,
2
+ "fill": true,
3
+ "data": {
4
+ "raph_twitter": "M23.295,22.567h-7.213c-2.125,0-4.103-2.215-4.103-4.736v-1.829h11.232c1.817,0,3.291-1.469,3.291-3.281c0-1.813-1.474-3.282-3.291-3.282H11.979V6.198c0-1.835-1.375-3.323-3.192-3.323c-1.816,0-3.29,1.488-3.29,3.323v11.633c0,6.23,4.685,11.274,10.476,11.274h7.211c1.818,0,3.318-1.463,3.318-3.298S25.112,22.567,23.295,22.567z",
5
+ "raph_gear2": "M17.047,27.945c-0.34,0.032-0.688,0.054-1.046,0.054l0,0c-0.32,0-0.631-0.017-0.934-0.043l0,0l-2.626,3.375l-0.646-0.183c-0.758-0.213-1.494-0.48-2.202-0.8l0,0L8.979,30.07l0.158-4.24c-0.558-0.39-1.079-0.825-1.561-1.302l0,0L3.424,25.42l-0.379-0.557c-0.445-0.654-0.824-1.339-1.16-2.032l0,0l-0.292-0.605l2.819-3.12c-0.176-0.661-0.293-1.343-0.353-2.038l0,0l-3.736-1.975l0.068-0.669c0.08-0.801,0.235-1.567,0.42-2.303l0,0l0.165-0.653l4.167-0.577c0.297-0.627,0.647-1.221,1.041-1.78l0,0l-1.59-3.914l0.48-0.47c0.564-0.55,1.168-1.048,1.798-1.503l0,0l0.546-0.394l3.597,2.259c0.606-0.279,1.24-0.509,1.897-0.685l0,0l1.304-4.046l0.672-0.051c0.362-0.027,0.751-0.058,1.174-0.058l0,0c0.422,0,0.81,0.031,1.172,0.058l0,0l0.672,0.051l1.318,4.088c0.632,0.176,1.244,0.401,1.831,0.674l0,0l3.647-2.291l0.548,0.394c0.63,0.455,1.235,0.954,1.798,1.501l0,0l0.482,0.47l-1.639,4.031c0.357,0.519,0.679,1.068,0.954,1.646l0,0l4.297,0.595l0.167,0.653c0.188,0.735,0.342,1.501,0.42,2.303l0,0l0.068,0.669l-3.866,2.044c-0.058,0.634-0.161,1.258-0.315,1.866l0,0l2.913,3.218l-0.293,0.608c-0.335,0.695-0.712,1.382-1.159,2.034l0,0l-0.379,0.555l-4.255-0.912c-0.451,0.451-0.939,0.866-1.461,1.241l0,0l0.162,4.323l-0.615,0.278c-0.709,0.319-1.444,0.587-2.202,0.8l0,0l-0.648,0.183L17.047,27.945L17.047,27.945zM20.424,29.028c0.227-0.076,0.45-0.157,0.671-0.244l0,0l-0.152-4.083l0.479-0.307c0.717-0.466,1.37-1.024,1.95-1.658l0,0l0.386-0.423l4.026,0.862c0.121-0.202,0.238-0.409,0.351-0.62l0,0l-2.754-3.045l0.171-0.544c0.243-0.783,0.381-1.623,0.422-2.5l0,0l0.025-0.571l3.658-1.933c-0.038-0.234-0.082-0.467-0.132-0.7l0,0l-4.07-0.563l-0.219-0.527c-0.327-0.787-0.76-1.524-1.277-2.204l0,0l-0.342-0.453l1.548-3.808c-0.179-0.157-0.363-0.31-0.552-0.458l0,0l-3.455,2.169L20.649,7.15c-0.754-0.397-1.569-0.698-2.429-0.894l0,0l-0.556-0.127l-1.248-3.87c-0.121-0.006-0.239-0.009-0.354-0.009l0,0c-0.117,0-0.235,0.003-0.357,0.009l0,0l-1.239,3.845l-0.564,0.12c-0.875,0.188-1.709,0.494-2.486,0.896l0,0l-0.508,0.264L7.509,5.249c-0.188,0.148-0.372,0.301-0.55,0.458l0,0l1.507,3.708L8.112,9.869c-0.552,0.709-1.011,1.485-1.355,2.319l0,0l-0.218,0.529l-3.939,0.545c-0.05,0.233-0.094,0.466-0.131,0.7l0,0l3.531,1.867l0.022,0.575c0.037,0.929,0.192,1.82,0.459,2.653l0,0l0.175,0.548l-2.667,2.95c0.112,0.212,0.229,0.419,0.351,0.621l0,0l3.916-0.843l0.39,0.423c0.601,0.657,1.287,1.229,2.043,1.703l0,0l0.488,0.305l-0.149,4.02c0.221,0.087,0.445,0.168,0.672,0.244l0,0l2.479-3.188l0.566,0.07c0.427,0.054,0.843,0.089,1.257,0.089l0,0c0.445,0,0.894-0.039,1.353-0.104l0,0l0.571-0.08L20.424,29.028L20.424,29.028zM21.554,20.75l0.546,0.839l-3.463,2.253l-1.229-1.891l0,0c-0.447,0.109-0.917,0.173-1.406,0.173l0,0c-3.384,0-6.126-2.743-6.126-6.123l0,0c0-3.384,2.742-6.126,6.126-6.126l0,0c3.38,0,6.123,2.742,6.123,6.126l0,0c0,1.389-0.467,2.676-1.25,3.704l0,0L21.554,20.75M19.224,21.073l0.108-0.069l-0.987-1.519l0.572-0.572c0.748-0.75,1.207-1.773,1.207-2.912l0,0c-0.004-2.278-1.848-4.122-4.123-4.126l0,0c-2.28,0.004-4.122,1.846-4.126,4.126l0,0c0.004,2.275,1.848,4.119,4.126,4.123l0,0c0.509,0,0.999-0.104,1.473-0.286l0,0l0.756-0.29L19.224,21.073L19.224,21.073z",
6
+ "raph_gear": "M26.974,16.514l3.765-1.991c-0.074-0.738-0.217-1.454-0.396-2.157l-4.182-0.579c-0.362-0.872-0.84-1.681-1.402-2.423l1.594-3.921c-0.524-0.511-1.09-0.977-1.686-1.406l-3.551,2.229c-0.833-0.438-1.73-0.77-2.672-0.984l-1.283-3.976c-0.364-0.027-0.728-0.056-1.099-0.056s-0.734,0.028-1.099,0.056l-1.271,3.941c-0.967,0.207-1.884,0.543-2.738,0.986L7.458,4.037C6.863,4.466,6.297,4.932,5.773,5.443l1.55,3.812c-0.604,0.775-1.11,1.629-1.49,2.55l-4.05,0.56c-0.178,0.703-0.322,1.418-0.395,2.157l3.635,1.923c0.041,1.013,0.209,1.994,0.506,2.918l-2.742,3.032c0.319,0.661,0.674,1.303,1.085,1.905l4.037-0.867c0.662,0.72,1.416,1.351,2.248,1.873l-0.153,4.131c0.663,0.299,1.352,0.549,2.062,0.749l2.554-3.283C15.073,26.961,15.532,27,16,27c0.507,0,1.003-0.046,1.491-0.113l2.567,3.301c0.711-0.2,1.399-0.45,2.062-0.749l-0.156-4.205c0.793-0.513,1.512-1.127,2.146-1.821l4.142,0.889c0.411-0.602,0.766-1.243,1.085-1.905l-2.831-3.131C26.778,18.391,26.93,17.467,26.974,16.514zM20.717,21.297l-1.785,1.162l-1.098-1.687c-0.571,0.22-1.186,0.353-1.834,0.353c-2.831,0-5.125-2.295-5.125-5.125c0-2.831,2.294-5.125,5.125-5.125c2.83,0,5.125,2.294,5.125,5.125c0,1.414-0.573,2.693-1.499,3.621L20.717,21.297z",
7
+ "raph_wrench": "M26.834,14.693c1.816-2.088,2.181-4.938,1.193-7.334l-3.646,4.252l-3.594-0.699L19.596,7.45l3.637-4.242c-2.502-0.63-5.258,0.13-7.066,2.21c-1.907,2.193-2.219,5.229-1.039,7.693L5.624,24.04c-1.011,1.162-0.888,2.924,0.274,3.935c1.162,1.01,2.924,0.888,3.935-0.274l9.493-10.918C21.939,17.625,24.918,16.896,26.834,14.693z",
8
+ "raph_magic": "M23.043,4.649l-0.404-2.312l-1.59,1.727l-2.323-0.33l1.151,2.045l-1.032,2.108l2.302-0.463l1.686,1.633l0.271-2.332l2.074-1.099L23.043,4.649zM26.217,18.198l-0.182-1.25l-0.882,0.905l-1.245-0.214l0.588,1.118l-0.588,1.118l1.245-0.214l0.882,0.905l0.182-1.25l1.133-0.56L26.217,18.198zM4.92,7.672L5.868,7.3l0.844,0.569L6.65,6.853l0.802-0.627L6.467,5.97L6.118,5.013L5.571,5.872L4.553,5.908l0.647,0.786L4.92,7.672zM10.439,10.505l1.021-1.096l1.481,0.219l-0.727-1.31l0.667-1.341l-1.47,0.287l-1.069-1.048L10.16,7.703L8.832,8.396l1.358,0.632L10.439,10.505zM17.234,12.721c-0.588-0.368-1.172-0.618-1.692-0.729c-0.492-0.089-1.039-0.149-1.425,0.374L2.562,30.788h6.68l9.669-15.416c0.303-0.576,0.012-1.041-0.283-1.447C18.303,13.508,17.822,13.09,17.234,12.721zM13.613,21.936c-0.254-0.396-0.74-0.857-1.373-1.254c-0.632-0.396-1.258-0.634-1.726-0.69l4.421-7.052c0.064-0.013,0.262-0.021,0.543,0.066c0.346,0.092,0.785,0.285,1.225,0.562c0.504,0.313,0.908,0.677,1.133,0.97c0.113,0.145,0.178,0.271,0.195,0.335c0.002,0.006,0.004,0.011,0.004,0.015L13.613,21.936z",
9
+ "raph_download": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM16,28.792c-1.549,0-2.806-1.256-2.806-2.806s1.256-2.806,2.806-2.806c1.55,0,2.806,1.256,2.806,2.806S17.55,28.792,16,28.792zM16,21.087l-7.858-6.562h3.469V5.747h8.779v8.778h3.468L16,21.087z",
10
+ "raph_firefox": "M28.4,22.469c0.479-0.964,0.851-1.991,1.095-3.066c0.953-3.661,0.666-6.854,0.666-6.854l-0.327,2.104c0,0-0.469-3.896-1.044-5.353c-0.881-2.231-1.273-2.214-1.274-2.21c0.542,1.379,0.494,2.169,0.483,2.288c-0.01-0.016-0.019-0.032-0.027-0.047c-0.131-0.324-0.797-1.819-2.225-2.878c-2.502-2.481-5.943-4.014-9.745-4.015c-4.056,0-7.705,1.745-10.238,4.525C5.444,6.5,5.183,5.938,5.159,5.317c0,0-0.002,0.002-0.006,0.005c0-0.011-0.003-0.021-0.003-0.031c0,0-1.61,1.247-1.436,4.612c-0.299,0.574-0.56,1.172-0.777,1.791c-0.375,0.817-0.75,2.004-1.059,3.746c0,0,0.133-0.422,0.399-0.988c-0.064,0.482-0.103,0.971-0.116,1.467c-0.09,0.845-0.118,1.865-0.039,3.088c0,0,0.032-0.406,0.136-1.021c0.834,6.854,6.667,12.165,13.743,12.165l0,0c1.86,0,3.636-0.37,5.256-1.036C24.938,27.771,27.116,25.196,28.4,22.469zM16.002,3.356c2.446,0,4.73,0.68,6.68,1.86c-2.274-0.528-3.433-0.261-3.423-0.248c0.013,0.015,3.384,0.589,3.981,1.411c0,0-1.431,0-2.856,0.41c-0.065,0.019,5.242,0.663,6.327,5.966c0,0-0.582-1.213-1.301-1.42c0.473,1.439,0.351,4.17-0.1,5.528c-0.058,0.174-0.118-0.755-1.004-1.155c0.284,2.037-0.018,5.268-1.432,6.158c-0.109,0.07,0.887-3.189,0.201-1.93c-4.093,6.276-8.959,2.539-10.934,1.208c1.585,0.388,3.267,0.108,4.242-0.559c0.982-0.672,1.564-1.162,2.087-1.047c0.522,0.117,0.87-0.407,0.464-0.872c-0.405-0.466-1.392-1.105-2.725-0.757c-0.94,0.247-2.107,1.287-3.886,0.233c-1.518-0.899-1.507-1.63-1.507-2.095c0-0.366,0.257-0.88,0.734-1.028c0.58,0.062,1.044,0.214,1.537,0.466c0.005-0.135,0.006-0.315-0.001-0.519c0.039-0.077,0.015-0.311-0.047-0.596c-0.036-0.287-0.097-0.582-0.19-0.851c0.01-0.002,0.017-0.007,0.021-0.021c0.076-0.344,2.147-1.544,2.299-1.659c0.153-0.114,0.55-0.378,0.506-1.183c-0.015-0.265-0.058-0.294-2.232-0.286c-0.917,0.003-1.425-0.894-1.589-1.245c0.222-1.231,0.863-2.11,1.919-2.704c0.02-0.011,0.015-0.021-0.008-0.027c0.219-0.127-2.524-0.006-3.76,1.604C9.674,8.045,9.219,7.95,8.71,7.95c-0.638,0-1.139,0.07-1.603,0.187c-0.05,0.013-0.122,0.011-0.208-0.001C6.769,8.04,6.575,7.88,6.365,7.672c0.161-0.18,0.324-0.356,0.495-0.526C9.201,4.804,12.43,3.357,16.002,3.356z",
11
+ "raph_ie": "M27.998,2.266c-2.12-1.91-6.925,0.382-9.575,1.93c-0.76-0.12-1.557-0.185-2.388-0.185c-3.349,0-6.052,0.985-8.106,2.843c-2.336,2.139-3.631,4.94-3.631,8.177c0,0.028,0.001,0.056,0.001,0.084c3.287-5.15,8.342-7.79,9.682-8.487c0.212-0.099,0.338,0.155,0.141,0.253c-0.015,0.042-0.015,0,0,0c-2.254,1.35-6.434,5.259-9.146,10.886l-0.003-0.007c-1.717,3.547-3.167,8.529-0.267,10.358c2.197,1.382,6.13-0.248,9.295-2.318c0.764,0.108,1.567,0.165,2.415,0.165c5.84,0,9.937-3.223,11.399-7.924l-8.022-0.014c-0.337,1.661-1.464,2.548-3.223,2.548c-2.21,0-3.729-1.211-3.828-4.012l15.228-0.014c0.028-0.578-0.042-0.985-0.042-1.436c0-5.251-3.143-9.355-8.255-10.663c2.081-1.294,5.974-3.209,7.848-1.681c1.407,1.14,0.633,3.533,0.295,4.518c-0.056,0.254,0.24,0.296,0.296,0.057C28.814,5.573,29.026,3.194,27.998,2.266zM13.272,25.676c-2.469,1.475-5.873,2.539-7.539,1.289c-1.243-0.935-0.696-3.468,0.398-5.938c0.664,0.992,1.495,1.886,2.473,2.63C9.926,24.651,11.479,25.324,13.272,25.676zM12.714,13.046c0.042-2.435,1.787-3.49,3.617-3.49c1.928,0,3.49,1.112,3.49,3.49H12.714z",
12
+ "raph_opera": "M15.954,2.046c-7.489,0-12.872,5.432-12.872,13.581c0,7.25,5.234,13.835,12.873,13.835c7.712,0,12.974-6.583,12.974-13.835C28.929,7.413,23.375,2.046,15.954,2.046zM15.952,26.548L15.952,26.548c-2.289,0-3.49-1.611-4.121-3.796c-0.284-1.037-0.458-2.185-0.563-3.341c-0.114-1.374-0.129-2.773-0.129-4.028c0-0.993,0.018-1.979,0.074-2.926c0.124-1.728,0.386-3.431,0.89-4.833c0.694-1.718,1.871-2.822,3.849-2.822c2.5,0,3.763,1.782,4.385,4.322c0.429,1.894,0.56,4.124,0.56,6.274c0,2.299-0.103,5.153-0.763,7.442C19.473,24.979,18.242,26.548,15.952,26.548z",
13
+ "raph_chrome": "M16.277,8.655c-2.879,0-5.227,2.181-5.227,4.854s2.348,4.854,5.227,4.854c2.879,0,5.227-2.181,5.227-4.854S19.156,8.655,16.277,8.655zM29.535,13.486c-0.369-1.819-1.068-3.052-1.727-3.995c0.05,0.129,0.09,0.259,0.138,0.388c-2.34-6.355-11.704-9.8-18.937-5.43c-0.056,0.27-0.073,0.538-0.073,0.804c0-0.051-0.006-0.098-0.004-0.15c-1.743-0.134-3.854,2.061-5.731,6.083c-0.953,2.277-1.298,4.77-0.414,7.693c0.516,1.706,1.328,3.456,2.499,4.814c3.471,4.027,8.788,5.67,11.884,4.835c0.004,0.001,0.009,0.003,0.014,0.004c5.969-0.125,10.494-4.228,12.125-9.569C29.896,17.035,29.934,15.457,29.535,13.486zM6.043,23.04c-0.96-1.112-1.755-2.651-2.299-4.452c-0.733-2.42-0.612-4.65,0.379-7.015C5.129,9.42,6.111,8.005,6.956,7.154c0.15,0.742,0.521,1.628,1.113,2.649c0.218,0.379,0.459,0.701,0.692,1.012c0.179,0.237,0.356,0.474,0.513,0.729c0.124,0.202,0.239,0.445,0.354,0.737c-0.239,2.754,0.892,5.138,3.148,6.679l-2.546,2.25l-0.202,0.171c-0.208,0.171-0.447,0.373-0.651,0.589c-1.36,1.444-0.25,2.831,0.286,3.498l0.068,0.087c0.237,0.297,0.513,0.62,0.815,0.938C8.963,25.725,7.375,24.585,6.043,23.04zM28.354,18.67c-1.6,5.232-5.937,8.7-11.07,8.859c-2.485-0.583-4.362-1.78-5.586-3.557c0.004-0.004,0.01-0.008,0.015-0.013l4.944-3.836c2.226-0.124,3.854-0.888,4.847-2.278c1.222-1.412,1.792-3.025,1.693-4.861c1.817,0.377,3.389,0.903,4.855,1.883l0.116,0.078l0.134,0.043c0.156,0.049,0.311,0.076,0.459,0.081C28.87,16.309,28.74,17.402,28.354,18.67zM28.609,14.037c-1.951-1.306-4.062-1.867-6.594-2.285c0.531,2.358-0.084,4.072-1.326,5.512c-0.882,1.235-2.382,1.822-4.394,1.875l-5.22,4.052c-0.497,0.409-0.591,0.819-0.282,1.229c0.849,1.277,1.929,2.202,3.122,2.878c-0.013,0-0.026,0.002-0.039,0.003c-0.001-0.001-0.004-0.002-0.006-0.004c-0.02,0.003-0.041,0.004-0.062,0.005c-0.08,0.001-0.16-0.001-0.239-0.01c-0.156-0.021-0.314-0.064-0.459-0.118c-0.898-0.333-1.89-1.352-2.597-2.239c-0.581-0.73-1.206-1.433-0.411-2.275c0.258-0.273,0.582-0.514,0.789-0.698l2.521-2.229c0.172-0.137,0.35-0.277,0.535-0.423c0.053-0.042,0.107-0.084,0.162-0.127c0.564-0.442,0.483-0.32-0.108-0.642c-2.419-1.32-3.677-3.614-3.354-6.389c-0.149-0.41-0.317-0.792-0.518-1.124c-0.363-0.6-0.834-1.102-1.194-1.723c-0.9-1.556-1.847-3.902,0.013-3.682c-0.005-0.053-0.002-0.11-0.005-0.164c0.094,2.001,1.526,3.823,1.742,4.888c0.078,0.382,0.294,0.705,0.612,0.28c2.538-3.395,6.069-3.053,8.328-1.312c0.443,0.34,0.684,0.755,1.084,1.11c0.154,0.138,0.328,0.259,0.535,0.351c0.743,0.332,1.807,0.312,2.607,0.434c1.371,0.208,2.707,0.464,3.971,0.812c0.25,0.03,0.424-0.004,0.521-0.101c0.211-0.208-0.002-0.887-0.121-1.263c0.277,0.805,0.536,1.609,0.773,2.415C29.176,13.701,29.133,14.208,28.609,14.037z",
14
+ "raph_safari": "M16.154,5.135c-0.504,0-1,0.031-1.488,0.089l-0.036-0.18c-0.021-0.104-0.06-0.198-0.112-0.283c0.381-0.308,0.625-0.778,0.625-1.306c0-0.927-0.751-1.678-1.678-1.678s-1.678,0.751-1.678,1.678c0,0.745,0.485,1.376,1.157,1.595c-0.021,0.105-0.021,0.216,0,0.328l0.033,0.167C7.645,6.95,3.712,11.804,3.712,17.578c0,6.871,5.571,12.441,12.442,12.441c6.871,0,12.441-5.57,12.441-12.441C28.596,10.706,23.025,5.135,16.154,5.135zM16.369,8.1c4.455,0,8.183,3.116,9.123,7.287l-0.576,0.234c-0.148-0.681-0.755-1.191-1.48-1.191c-0.837,0-1.516,0.679-1.516,1.516c0,0.075,0.008,0.148,0.018,0.221l-2.771-0.028c-0.054-0.115-0.114-0.226-0.182-0.333l3.399-5.11l0.055-0.083l-4.766,4.059c-0.352-0.157-0.74-0.248-1.148-0.256l0.086-0.018l-1.177-2.585c0.64-0.177,1.111-0.763,1.111-1.459c0-0.837-0.678-1.515-1.516-1.515c-0.075,0-0.147,0.007-0.219,0.018l0.058-0.634C15.357,8.141,15.858,8.1,16.369,8.1zM12.146,3.455c0-0.727,0.591-1.318,1.318-1.318c0.727,0,1.318,0.591,1.318,1.318c0,0.425-0.203,0.802-0.516,1.043c-0.183-0.123-0.413-0.176-0.647-0.13c-0.226,0.045-0.413,0.174-0.535,0.349C12.542,4.553,12.146,4.049,12.146,3.455zM7.017,17.452c0-4.443,3.098-8.163,7.252-9.116l0.297,0.573c-0.61,0.196-1.051,0.768-1.051,1.442c0,0.837,0.678,1.516,1.515,1.516c0.068,0,0.135-0.006,0.2-0.015l-0.058,2.845l0.052-0.011c-0.442,0.204-0.824,0.513-1.116,0.895l0.093-0.147l-1.574-0.603l1.172,1.239l0.026-0.042c-0.19,0.371-0.306,0.788-0.324,1.229l-0.003-0.016l-2.623,1.209c-0.199-0.604-0.767-1.041-1.438-1.041c-0.837,0-1.516,0.678-1.516,1.516c0,0.064,0.005,0.128,0.013,0.191l-0.783-0.076C7.063,18.524,7.017,17.994,7.017,17.452zM16.369,26.805c-4.429,0-8.138-3.078-9.106-7.211l0.691-0.353c0.146,0.686,0.753,1.2,1.482,1.2c0.837,0,1.515-0.679,1.515-1.516c0-0.105-0.011-0.207-0.031-0.307l2.858,0.03c0.045,0.095,0.096,0.187,0.15,0.276l-3.45,5.277l0.227-0.195l4.529-3.92c0.336,0.153,0.705,0.248,1.094,0.266l-0.019,0.004l1.226,2.627c-0.655,0.166-1.142,0.76-1.142,1.468c0,0.837,0.678,1.515,1.516,1.515c0.076,0,0.151-0.007,0.225-0.018l0.004,0.688C17.566,26.746,16.975,26.805,16.369,26.805zM18.662,26.521l-0.389-0.6c0.661-0.164,1.152-0.759,1.152-1.47c0-0.837-0.68-1.516-1.516-1.516c-0.066,0-0.13,0.005-0.193,0.014v-2.86l-0.025,0.004c0.409-0.185,0.77-0.459,1.055-0.798l1.516,0.659l-1.104-1.304c0.158-0.335,0.256-0.704,0.278-1.095l2.552-1.164c0.19,0.618,0.766,1.068,1.447,1.068c0.838,0,1.516-0.679,1.516-1.516c0-0.069-0.006-0.137-0.016-0.204l0.65,0.12c0.089,0.517,0.136,1.049,0.136,1.591C25.722,21.826,22.719,25.499,18.662,26.521z",
15
+ "raph_view": "M16,8.286C8.454,8.286,2.5,16,2.5,16s5.954,7.715,13.5,7.715c5.771,0,13.5-7.715,13.5-7.715S21.771,8.286,16,8.286zM16,20.807c-2.649,0-4.807-2.157-4.807-4.807s2.158-4.807,4.807-4.807s4.807,2.158,4.807,4.807S18.649,20.807,16,20.807zM16,13.194c-1.549,0-2.806,1.256-2.806,2.806c0,1.55,1.256,2.806,2.806,2.806c1.55,0,2.806-1.256,2.806-2.806C18.806,14.451,17.55,13.194,16,13.194z",
16
+ "raph_noview": "M11.478,17.568c-0.172-0.494-0.285-1.017-0.285-1.568c0-2.65,2.158-4.807,4.807-4.807c0.552,0,1.074,0.113,1.568,0.285l2.283-2.283C18.541,8.647,17.227,8.286,16,8.286C8.454,8.286,2.5,16,2.5,16s2.167,2.791,5.53,5.017L11.478,17.568zM23.518,11.185l-3.056,3.056c0.217,0.546,0.345,1.138,0.345,1.76c0,2.648-2.158,4.807-4.807,4.807c-0.622,0-1.213-0.128-1.76-0.345l-2.469,2.47c1.327,0.479,2.745,0.783,4.229,0.783c5.771,0,13.5-7.715,13.5-7.715S26.859,13.374,23.518,11.185zM25.542,4.917L4.855,25.604L6.27,27.02L26.956,6.332L25.542,4.917z",
17
+ "raph_cloud": "M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h15.875c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z",
18
+ "raph_cloud2": "M7.562,24.812c-3.313,0-6-2.687-6-6l0,0c0.002-2.659,1.734-4.899,4.127-5.684l0,0c0.083-2.26,1.937-4.064,4.216-4.066l0,0c0.73,0,1.415,0.19,2.01,0.517l0,0c1.266-2.105,3.57-3.516,6.208-3.517l0,0c3.947,0.002,7.157,3.155,7.248,7.079l0,0c2.362,0.804,4.062,3.034,4.064,5.671l0,0c0,3.313-2.687,6-6,6l0,0H7.562L7.562,24.812zM24.163,14.887c-0.511-0.095-0.864-0.562-0.815-1.079l0,0c0.017-0.171,0.027-0.336,0.027-0.497l0,0c-0.007-2.899-2.352-5.245-5.251-5.249l0,0c-2.249-0.002-4.162,1.418-4.911,3.41l0,0c-0.122,0.323-0.406,0.564-0.748,0.63l0,0c-0.34,0.066-0.694-0.052-0.927-0.309l0,0c-0.416-0.453-0.986-0.731-1.633-0.731l0,0c-1.225,0.002-2.216,0.993-2.22,2.218l0,0c0,0.136,0.017,0.276,0.045,0.424l0,0c0.049,0.266-0.008,0.54-0.163,0.762l0,0c-0.155,0.223-0.392,0.371-0.657,0.414l0,0c-1.9,0.313-3.352,1.949-3.35,3.931l0,0c0.004,2.209,1.792,3.995,4.001,4.001l0,0h15.874c2.209-0.006,3.994-1.792,3.999-4.001l0,0C27.438,16.854,26.024,15.231,24.163,14.887L24.163,14.887",
19
+ "raph_cloudDown": "M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h3.404l-0.707-0.707c-0.377-0.377-0.585-0.879-0.585-1.413c0-0.533,0.208-1.035,0.585-1.412l0.556-0.557c0.4-0.399,0.937-0.628,1.471-0.628c0.027,0,0.054,0,0.08,0.002v-0.472c0-1.104,0.898-2.002,2-2.002h3.266c1.103,0,2,0.898,2,2.002v0.472c0.027-0.002,0.054-0.002,0.081-0.002c0.533,0,1.07,0.229,1.47,0.63l0.557,0.552c0.78,0.781,0.78,2.05,0,2.828l-0.706,0.707h2.403c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M21.033,20.986l-0.556-0.555c-0.39-0.389-0.964-0.45-1.276-0.137c-0.312,0.312-0.568,0.118-0.568-0.432v-1.238c0-0.55-0.451-1-1-1h-3.265c-0.55,0-1,0.45-1,1v1.238c0,0.55-0.256,0.744-0.569,0.432c-0.312-0.313-0.887-0.252-1.276,0.137l-0.556,0.555c-0.39,0.389-0.39,1.024-0.001,1.413l4.328,4.331c0.194,0.194,0.451,0.291,0.707,0.291s0.512-0.097,0.707-0.291l4.327-4.331C21.424,22.011,21.423,21.375,21.033,20.986z",
20
+ "raph_cloudUp": "M24.345,13.904c0.019-0.195,0.03-0.392,0.03-0.591c0-3.452-2.798-6.25-6.25-6.25c-2.679,0-4.958,1.689-5.847,4.059c-0.589-0.646-1.429-1.059-2.372-1.059c-1.778,0-3.219,1.441-3.219,3.219c0,0.21,0.023,0.415,0.062,0.613c-2.372,0.391-4.187,2.436-4.187,4.918c0,2.762,2.239,5,5,5h2.312c-0.126-0.266-0.2-0.556-0.2-0.859c0-0.535,0.208-1.04,0.587-1.415l4.325-4.329c0.375-0.377,0.877-0.585,1.413-0.585c0.54,0,1.042,0.21,1.417,0.587l4.323,4.329c0.377,0.373,0.585,0.878,0.585,1.413c0,0.304-0.073,0.594-0.2,0.859h1.312c2.762,0,5-2.238,5-5C28.438,16.362,26.672,14.332,24.345,13.904z M16.706,17.916c-0.193-0.195-0.45-0.291-0.706-0.291s-0.512,0.096-0.707,0.291l-4.327,4.33c-0.39,0.389-0.389,1.025,0.001,1.414l0.556,0.555c0.39,0.389,0.964,0.449,1.276,0.137s0.568-0.119,0.568,0.432v1.238c0,0.549,0.451,1,1,1h3.265c0.551,0,1-0.451,1-1v-1.238c0-0.551,0.256-0.744,0.569-0.432c0.312,0.312,0.887,0.252,1.276-0.137l0.556-0.555c0.39-0.389,0.39-1.025,0.001-1.414L16.706,17.916z",
21
+ "raph_location": "M16,3.5c-4.142,0-7.5,3.358-7.5,7.5c0,4.143,7.5,18.121,7.5,18.121S23.5,15.143,23.5,11C23.5,6.858,20.143,3.5,16,3.5z M16,14.584c-1.979,0-3.584-1.604-3.584-3.584S14.021,7.416,16,7.416S19.584,9.021,19.584,11S17.979,14.584,16,14.584z",
22
+ "raph_volume0": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z",
23
+ "raph_volume1": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z",
24
+ "raph_volume2": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z",
25
+ "raph_volume3": "M4.998,12.127v7.896h4.495l6.729,5.526l0.004-18.948l-6.73,5.526H4.998z M18.806,11.219c-0.393-0.389-1.024-0.389-1.415,0.002c-0.39,0.391-0.39,1.024,0.002,1.416v-0.002c0.863,0.864,1.395,2.049,1.395,3.366c0,1.316-0.531,2.497-1.393,3.361c-0.394,0.389-0.394,1.022-0.002,1.415c0.195,0.195,0.451,0.293,0.707,0.293c0.257,0,0.513-0.098,0.708-0.293c1.222-1.22,1.98-2.915,1.979-4.776C20.788,14.136,20.027,12.439,18.806,11.219z M21.101,8.925c-0.393-0.391-1.024-0.391-1.413,0c-0.392,0.391-0.392,1.025,0,1.414c1.45,1.451,2.344,3.447,2.344,5.661c0,2.212-0.894,4.207-2.342,5.659c-0.392,0.39-0.392,1.023,0,1.414c0.195,0.195,0.451,0.293,0.708,0.293c0.256,0,0.512-0.098,0.707-0.293c1.808-1.809,2.929-4.315,2.927-7.073C24.033,13.24,22.912,10.732,21.101,8.925z M23.28,6.746c-0.393-0.391-1.025-0.389-1.414,0.002c-0.391,0.389-0.391,1.023,0.002,1.413h-0.002c2.009,2.009,3.248,4.773,3.248,7.839c0,3.063-1.239,5.828-3.246,7.838c-0.391,0.39-0.391,1.023,0.002,1.415c0.194,0.194,0.45,0.291,0.706,0.291s0.513-0.098,0.708-0.293c2.363-2.366,3.831-5.643,3.829-9.251C27.115,12.389,25.647,9.111,23.28,6.746z",
26
+ "raph_key": "M18.386,16.009l0.009-0.006l-0.58-0.912c1.654-2.226,1.876-5.319,0.3-7.8c-2.043-3.213-6.303-4.161-9.516-2.118c-3.212,2.042-4.163,6.302-2.12,9.517c1.528,2.402,4.3,3.537,6.944,3.102l0.424,0.669l0.206,0.045l0.779-0.447l-0.305,1.377l2.483,0.552l-0.296,1.325l1.903,0.424l-0.68,3.06l1.406,0.313l-0.424,1.906l4.135,0.918l0.758-3.392L18.386,16.009z M10.996,8.944c-0.685,0.436-1.593,0.233-2.029-0.452C8.532,7.807,8.733,6.898,9.418,6.463s1.594-0.233,2.028,0.452C11.883,7.6,11.68,8.509,10.996,8.944z",
27
+ "raph_ruler": "M6.63,21.796l-5.122,5.121h25.743V1.175L6.63,21.796zM18.702,10.48c0.186-0.183,0.48-0.183,0.664,0l1.16,1.159c0.184,0.183,0.186,0.48,0.002,0.663c-0.092,0.091-0.213,0.137-0.332,0.137c-0.121,0-0.24-0.046-0.33-0.137l-1.164-1.159C18.519,10.96,18.519,10.664,18.702,10.48zM17.101,12.084c0.184-0.183,0.48-0.183,0.662,0l2.156,2.154c0.184,0.183,0.184,0.48,0.002,0.661c-0.092,0.092-0.213,0.139-0.334,0.139s-0.24-0.046-0.33-0.137l-2.156-2.154C16.917,12.564,16.917,12.267,17.101,12.084zM15.497,13.685c0.184-0.183,0.48-0.183,0.664,0l1.16,1.161c0.184,0.183,0.182,0.48-0.002,0.663c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.24-0.046-0.332-0.138l-1.16-1.16C15.314,14.166,15.314,13.868,15.497,13.685zM13.896,15.288c0.184-0.183,0.48-0.181,0.664,0.002l1.158,1.159c0.183,0.184,0.183,0.48,0,0.663c-0.092,0.092-0.212,0.138-0.332,0.138c-0.119,0-0.24-0.046-0.332-0.138l-1.158-1.161C13.713,15.767,13.713,15.471,13.896,15.288zM12.293,16.892c0.183-0.184,0.479-0.184,0.663,0l2.154,2.153c0.184,0.184,0.184,0.481,0,0.665c-0.092,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-2.153-2.155C12.11,17.371,12.11,17.075,12.293,16.892zM10.302,24.515c-0.091,0.093-0.212,0.139-0.332,0.139c-0.119,0-0.238-0.045-0.33-0.137l-2.154-2.153c-0.184-0.183-0.184-0.479,0-0.663s0.479-0.184,0.662,0l2.154,2.153C10.485,24.036,10.485,24.332,10.302,24.515zM10.912,21.918c-0.093,0.093-0.214,0.139-0.333,0.139c-0.12,0-0.24-0.045-0.33-0.137l-1.162-1.161c-0.184-0.183-0.184-0.479,0-0.66c0.184-0.185,0.48-0.187,0.664-0.003l1.161,1.162C11.095,21.438,11.095,21.735,10.912,21.918zM12.513,20.316c-0.092,0.092-0.211,0.138-0.332,0.138c-0.119,0-0.239-0.046-0.331-0.138l-1.159-1.16c-0.184-0.184-0.184-0.48,0-0.664s0.48-0.182,0.663,0.002l1.159,1.161C12.696,19.838,12.696,20.135,12.513,20.316zM22.25,21.917h-8.67l8.67-8.67V21.917zM22.13,10.7c-0.09,0.092-0.211,0.138-0.33,0.138c-0.121,0-0.242-0.046-0.334-0.138l-1.16-1.159c-0.184-0.183-0.184-0.479,0-0.663c0.182-0.183,0.479-0.183,0.662,0l1.16,1.159C22.312,10.221,22.313,10.517,22.13,10.7zM24.726,10.092c-0.092,0.092-0.213,0.137-0.332,0.137s-0.24-0.045-0.33-0.137l-2.154-2.154c-0.184-0.183-0.184-0.481,0-0.664s0.482-0.181,0.664,0.002l2.154,2.154C24.911,9.613,24.909,9.91,24.726,10.092z",
28
+ "raph_power": "M21.816,3.999c-0.993-0.481-2.189-0.068-2.673,0.927c-0.482,0.995-0.066,2.191,0.927,2.673c3.115,1.516,5.265,4.705,5.263,8.401c-0.01,5.154-4.18,9.324-9.333,9.333c-5.154-0.01-9.324-4.18-9.334-9.333c-0.002-3.698,2.149-6.89,5.267-8.403c0.995-0.482,1.408-1.678,0.927-2.673c-0.482-0.993-1.676-1.409-2.671-0.927C5.737,6.152,2.667,10.72,2.665,16C2.667,23.364,8.634,29.332,16,29.334c7.365-0.002,13.333-5.97,13.334-13.334C29.332,10.722,26.266,6.157,21.816,3.999z M16,13.833c1.104,0,1.999-0.894,1.999-2V2.499C17.999,1.394,17.104,0.5,16,0.5c-1.106,0-2,0.895-2,1.999v9.333C14,12.938,14.894,13.833,16,13.833z",
29
+ "raph_unlock": "M20.375,12.833h-2.209V10c0,0,0,0,0-0.001c0-2.389,1.945-4.333,4.334-4.333c2.391,0,4.335,1.944,4.335,4.333c0,0,0,0,0,0v2.834h2V9.999h-0.001c-0.001-3.498-2.836-6.333-6.334-6.333S16.166,6.502,16.166,10v2.833H3.125V25h17.25V12.833z",
30
+ "raph_flag": "M26.04,9.508c0.138-0.533,0.15-1.407,0.028-1.943l-0.404-1.771c-0.122-0.536-0.665-1.052-1.207-1.146l-3.723-0.643c-0.542-0.094-1.429-0.091-1.97,0.007l-4.033,0.726c-0.542,0.098-1.429,0.108-1.973,0.023L8.812,4.146C8.817,4.165,8.826,4.182,8.83,4.201l2.701,12.831l1.236,0.214c0.542,0.094,1.428,0.09,1.97-0.007l4.032-0.727c0.541-0.097,1.429-0.107,1.973-0.022l4.329,0.675c0.544,0.085,0.906-0.288,0.807-0.829l-0.485-2.625c-0.1-0.541-0.069-1.419,0.068-1.952L26.04,9.508zM6.667,3.636C6.126,3.75,5.78,4.279,5.894,4.819l5.763,27.378H13.7L7.852,4.409C7.736,3.867,7.207,3.521,6.667,3.636z",
31
+ "raph_tag": "M14.263,2.826H7.904L2.702,8.028v6.359L18.405,30.09l11.561-11.562L14.263,2.826zM6.495,8.859c-0.619-0.619-0.619-1.622,0-2.24C7.114,6,8.117,6,8.736,6.619c0.62,0.62,0.619,1.621,0,2.241C8.117,9.479,7.114,9.479,6.495,8.859z",
32
+ "raph_search": "M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",
33
+ "raph_zoomout": "M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM8.854,11.884v4.001l9.665-0.001v-3.999L8.854,11.884z",
34
+ "raph_zoomin": "M22.646,19.307c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127l3.535-3.537L22.646,19.307zM13.688,20.369c-3.582-0.008-6.478-2.904-6.484-6.484c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486C20.165,17.465,17.267,20.361,13.688,20.369zM15.687,9.051h-4v2.833H8.854v4.001h2.833v2.833h4v-2.834h2.832v-3.999h-2.833V9.051z",
35
+ "raph_cross": "M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248",
36
+ "raph_check": "M2.379,14.729 5.208,11.899 12.958,19.648 25.877,6.733 28.707,9.561 12.958,25.308",
37
+ "raph_settings": "M16.015,12.03c-2.156,0-3.903,1.747-3.903,3.903c0,2.155,1.747,3.903,3.903,3.903c0.494,0,0.962-0.102,1.397-0.27l0.836,1.285l1.359-0.885l-0.831-1.276c0.705-0.706,1.142-1.681,1.142-2.757C19.918,13.777,18.171,12.03,16.015,12.03zM16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM26.174,20.809c-0.241,0.504-0.513,0.99-0.826,1.45L22.19,21.58c-0.481,0.526-1.029,0.994-1.634,1.385l0.119,3.202c-0.507,0.23-1.028,0.421-1.569,0.57l-1.955-2.514c-0.372,0.051-0.75,0.086-1.136,0.086c-0.356,0-0.706-0.029-1.051-0.074l-1.945,2.5c-0.541-0.151-1.065-0.342-1.57-0.569l0.117-3.146c-0.634-0.398-1.208-0.88-1.712-1.427L6.78,22.251c-0.313-0.456-0.583-0.944-0.826-1.448l2.088-2.309c-0.226-0.703-0.354-1.451-0.385-2.223l-2.768-1.464c0.055-0.563,0.165-1.107,0.301-1.643l3.084-0.427c0.29-0.702,0.675-1.352,1.135-1.942L8.227,7.894c0.399-0.389,0.83-0.744,1.283-1.07l2.663,1.672c0.65-0.337,1.349-0.593,2.085-0.75l0.968-3.001c0.278-0.021,0.555-0.042,0.837-0.042c0.282,0,0.56,0.022,0.837,0.042l0.976,3.028c0.72,0.163,1.401,0.416,2.036,0.75l2.704-1.697c0.455,0.326,0.887,0.681,1.285,1.07l-1.216,2.986c0.428,0.564,0.793,1.181,1.068,1.845l3.185,0.441c0.135,0.535,0.247,1.081,0.302,1.643l-2.867,1.516c-0.034,0.726-0.15,1.43-0.355,2.1L26.174,20.809z",
38
+ "raph_settingsalt": "M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466zM24.386,14.968c-1.451,1.669-3.706,2.221-5.685,1.586l-7.188,8.266c-0.766,0.88-2.099,0.97-2.979,0.205s-0.973-2.099-0.208-2.979l7.198-8.275c-0.893-1.865-0.657-4.164,0.787-5.824c1.367-1.575,3.453-2.151,5.348-1.674l-2.754,3.212l0.901,2.621l2.722,0.529l2.761-3.22C26.037,11.229,25.762,13.387,24.386,14.968z",
39
+ "raph_feed": "M4.135,16.762c3.078,0,5.972,1.205,8.146,3.391c2.179,2.187,3.377,5.101,3.377,8.202h4.745c0-9.008-7.299-16.335-16.269-16.335V16.762zM4.141,8.354c10.973,0,19.898,8.975,19.898,20.006h4.743c0-13.646-11.054-24.749-24.642-24.749V8.354zM10.701,25.045c0,1.815-1.471,3.287-3.285,3.287s-3.285-1.472-3.285-3.287c0-1.813,1.471-3.285,3.285-3.285S10.701,23.231,10.701,25.045z",
40
+ "raph_bug": "M28.589,10.903l-5.828,1.612c-0.534-1.419-1.338-2.649-2.311-3.628l3.082-5.44c0.271-0.48,0.104-1.092-0.38-1.365c-0.479-0.271-1.09-0.102-1.36,0.377l-2.924,5.162c-0.604-0.383-1.24-0.689-1.9-0.896c-0.416-1.437-1.652-2.411-3.058-2.562c-0.001-0.004-0.002-0.008-0.003-0.012c-0.061-0.242-0.093-0.46-0.098-0.65c-0.005-0.189,0.012-0.351,0.046-0.479c0.037-0.13,0.079-0.235,0.125-0.317c0.146-0.26,0.34-0.43,0.577-0.509c0.023,0.281,0.142,0.482,0.352,0.601c0.155,0.088,0.336,0.115,0.546,0.086c0.211-0.031,0.376-0.152,0.496-0.363c0.105-0.186,0.127-0.389,0.064-0.607c-0.064-0.219-0.203-0.388-0.414-0.507c-0.154-0.087-0.314-0.131-0.482-0.129c-0.167,0.001-0.327,0.034-0.481,0.097c-0.153,0.063-0.296,0.16-0.429,0.289c-0.132,0.129-0.241,0.271-0.33,0.426c-0.132,0.234-0.216,0.496-0.25,0.783c-0.033,0.286-0.037,0.565-0.009,0.84c0.017,0.16,0.061,0.301,0.094,0.449c-0.375-0.021-0.758,0.002-1.14,0.108c-0.482,0.133-0.913,0.36-1.28,0.653c-0.052-0.172-0.098-0.344-0.18-0.518c-0.116-0.249-0.263-0.486-0.438-0.716c-0.178-0.229-0.384-0.41-0.618-0.543C9.904,3.059,9.737,2.994,9.557,2.951c-0.18-0.043-0.352-0.052-0.516-0.027s-0.318,0.08-0.463,0.164C8.432,3.172,8.318,3.293,8.23,3.445C8.111,3.656,8.08,3.873,8.136,4.092c0.058,0.221,0.181,0.384,0.367,0.49c0.21,0.119,0.415,0.138,0.611,0.056C9.31,4.556,9.451,4.439,9.539,4.283c0.119-0.21,0.118-0.443-0.007-0.695c0.244-0.055,0.497-0.008,0.757,0.141c0.081,0.045,0.171,0.115,0.27,0.208c0.097,0.092,0.193,0.222,0.286,0.388c0.094,0.166,0.179,0.368,0.251,0.608c0.013,0.044,0.023,0.098,0.035,0.146c-0.911,0.828-1.357,2.088-1.098,3.357c-0.582,0.584-1.072,1.27-1.457,2.035l-5.16-2.926c-0.48-0.271-1.092-0.102-1.364,0.377C1.781,8.404,1.95,9.016,2.43,9.289l5.441,3.082c-0.331,1.34-0.387,2.807-0.117,4.297l-5.828,1.613c-0.534,0.147-0.846,0.699-0.698,1.231c0.147,0.53,0.697,0.843,1.231,0.694l5.879-1.627c0.503,1.057,1.363,2.28,2.371,3.443l-3.194,5.639c-0.272,0.481-0.104,1.092,0.378,1.363c0.239,0.137,0.512,0.162,0.758,0.094c0.248-0.068,0.469-0.229,0.604-0.471l2.895-5.109c2.7,2.594,5.684,4.123,5.778,1.053c1.598,2.56,3.451-0.338,4.502-3.976l5.203,2.947c0.24,0.138,0.514,0.162,0.762,0.094c0.246-0.067,0.467-0.229,0.603-0.471c0.272-0.479,0.104-1.091-0.377-1.362l-5.701-3.229c0.291-1.505,0.422-2.983,0.319-4.138l5.886-1.627c0.53-0.147,0.847-0.697,0.696-1.229C29.673,11.068,29.121,10.756,28.589,10.903z",
41
+ "raph_link": "M15.667,4.601c-1.684,1.685-2.34,3.985-2.025,6.173l3.122-3.122c0.004-0.005,0.014-0.008,0.016-0.012c0.21-0.403,0.464-0.789,0.802-1.126c1.774-1.776,4.651-1.775,6.428,0c1.775,1.773,1.777,4.652,0.002,6.429c-0.34,0.34-0.727,0.593-1.131,0.804c-0.004,0.002-0.006,0.006-0.01,0.01l-3.123,3.123c2.188,0.316,4.492-0.34,6.176-2.023c2.832-2.832,2.83-7.423,0-10.255C23.09,1.77,18.499,1.77,15.667,4.601zM14.557,22.067c-0.209,0.405-0.462,0.791-0.801,1.131c-1.775,1.774-4.656,1.774-6.431,0c-1.775-1.774-1.775-4.653,0-6.43c0.339-0.338,0.725-0.591,1.128-0.8c0.004-0.006,0.005-0.012,0.011-0.016l3.121-3.123c-2.187-0.316-4.489,0.342-6.172,2.024c-2.831,2.831-2.83,7.423,0,10.255c2.833,2.831,7.424,2.831,10.257,0c1.684-1.684,2.342-3.986,2.023-6.175l-3.125,3.123C14.565,22.063,14.561,22.065,14.557,22.067zM9.441,18.885l2.197,2.197c0.537,0.537,1.417,0.537,1.953,0l8.302-8.302c0.539-0.536,0.539-1.417,0.002-1.952l-2.199-2.197c-0.536-0.539-1.416-0.539-1.952-0.002l-8.302,8.303C8.904,17.469,8.904,18.349,9.441,18.885z",
42
+ "raph_calendar": "M11.758,15.318c0.312-0.3,0.408-0.492,0.408-0.492h0.024c0,0-0.012,0.264-0.012,0.528v5.469h-1.871v1.031h4.87v-1.031H13.33v-7.436h-1.055l-2.027,1.967l0.719,0.744L11.758,15.318zM16.163,21.207c0,0.205,0.024,0.42,0.06,0.647h5.457v-1.031h-4.197c0.023-1.931,4.065-2.362,4.065-5.146c0-1.463-1.114-2.436-2.674-2.436c-1.907,0-2.675,1.607-2.675,1.607l0.875,0.587c0,0,0.6-1.08,1.716-1.08c0.887,0,1.522,0.563,1.522,1.403C20.312,17.754,16.163,18.186,16.163,21.207zM12,3.604h-2v3.335h2V3.604zM23,4.77v3.17h-4V4.77h-6v3.168H9.002V4.77H6.583v21.669h18.833V4.77H23zM24.417,25.438H7.584V10.522h16.833V25.438zM22,3.604h-2v3.335h2V3.604z",
43
+ "raph_picker": "M22.221,10.853c-0.111-0.414-0.261-0.412,0.221-1.539l1.66-3.519c0.021-0.051,0.2-0.412,0.192-0.946c0.015-0.529-0.313-1.289-1.119-1.642c-1.172-0.555-1.17-0.557-2.344-1.107c-0.784-0.396-1.581-0.171-1.979,0.179c-0.42,0.333-0.584,0.7-0.609,0.75L16.58,6.545c-0.564,1.084-0.655,0.97-1.048,1.147c-0.469,0.129-1.244,0.558-1.785,1.815c-1.108,2.346-1.108,2.346-1.108,2.346l-0.276,0.586l1.17,0.553l-3.599,7.623c-0.38,0.828-0.166,1.436-0.166,2.032c0.01,0.627-0.077,1.509-0.876,3.21l-0.276,0.586l3.517,1.661l0.276-0.585c0.808-1.699,1.431-2.326,1.922-2.717c0.46-0.381,1.066-0.6,1.465-1.42l3.599-7.618l1.172,0.554l0.279-0.589c0,0,0,0,1.105-2.345C22.578,12.166,22.419,11.301,22.221,10.853zM14.623,22.83c-0.156,0.353-0.413,0.439-1.091,0.955c-0.577,0.448-1.264,1.172-2.009,2.6l-1.191-0.562c0.628-1.48,0.75-2.474,0.73-3.203c-0.031-0.851-0.128-1.104,0.045-1.449l3.599-7.621l3.517,1.662L14.623,22.83z",
44
+ "raph_no": "M16,2.939C9.006,2.942,3.338,8.61,3.335,15.605C3.335,22.6,9.005,28.268,16,28.27c6.994-0.002,12.662-5.67,12.664-12.664C28.663,8.61,22.995,2.939,16,2.939zM25.663,15.605c-0.003,1.943-0.583,3.748-1.569,5.264L10.736,7.513c1.515-0.988,3.32-1.569,5.265-1.573C21.337,5.951,25.654,10.269,25.663,15.605zM6.335,15.605c0.004-1.943,0.584-3.75,1.573-5.266l13.355,13.357c-1.516,0.986-3.32,1.566-5.264,1.569C10.664,25.26,6.346,20.941,6.335,15.605z",
45
+ "raph_commandline": "M2.021,9.748L2.021,9.748V9.746V9.748zM2.022,9.746l5.771,5.773l-5.772,5.771l2.122,2.123l7.894-7.895L4.143,7.623L2.022,9.746zM12.248,23.269h14.419V20.27H12.248V23.269zM16.583,17.019h10.084V14.02H16.583V17.019zM12.248,7.769v3.001h14.419V7.769H12.248z",
46
+ "raph_photo": "M24.25,10.25H20.5v-1.5h-9.375v1.5h-3.75c-1.104,0-2,0.896-2,2v10.375c0,1.104,0.896,2,2,2H24.25c1.104,0,2-0.896,2-2V12.25C26.25,11.146,25.354,10.25,24.25,10.25zM15.812,23.499c-3.342,0-6.06-2.719-6.06-6.061c0-3.342,2.718-6.062,6.06-6.062s6.062,2.72,6.062,6.062C21.874,20.78,19.153,23.499,15.812,23.499zM15.812,13.375c-2.244,0-4.062,1.819-4.062,4.062c0,2.244,1.819,4.062,4.062,4.062c2.244,0,4.062-1.818,4.062-4.062C19.875,15.194,18.057,13.375,15.812,13.375z",
47
+ "raph_printer": "M24.569,12.125h-2.12c-0.207-1.34-1.247-2.759-2.444-3.967c-1.277-1.24-2.654-2.234-3.784-2.37c-0.062-0.008-0.124-0.014-0.198-0.015H8.594c-0.119,0-0.235,0.047-0.319,0.132c-0.083,0.083-0.132,0.2-0.132,0.32v5.9H6.069c-1.104,0-2,0.896-2,2V23h4.074v2.079c0,0.118,0.046,0.23,0.132,0.318c0.086,0.085,0.199,0.131,0.319,0.131h13.445c0.118,0,0.232-0.046,0.318-0.131s0.138-0.199,0.138-0.318V23h4.074v-8.875C26.569,13.021,25.674,12.125,24.569,12.125zM21.589,24.626H9.043V21.5h12.546V24.626zM21.589,13.921c0-0.03,0-0.063-0.003-0.096c-0.015-0.068-0.062-0.135-0.124-0.2H9.043v-6.95h6.987v0.001c0.305-0.019,0.567,0.282,0.769,0.971c0.183,0.655,0.229,1.509,0.229,2.102c0.001,0.433-0.019,0.725-0.019,0.725l-0.037,0.478l0.48,0.005c0.002,0,1.109,0.014,2.196,0.26c1.044,0.226,1.86,0.675,1.938,1.184c0.003,0.045,0.003,0.091,0.003,0.133V13.921z",
48
+ "export": "M24.086,20.904c-1.805,3.113-5.163,5.212-9.023,5.219c-5.766-0.01-10.427-4.672-10.438-10.435C4.636,9.922,9.297,5.261,15.063,5.25c3.859,0.007,7.216,2.105,9.022,5.218l3.962,2.284l0.143,0.082C26.879,6.784,21.504,2.25,15.063,2.248C7.64,2.25,1.625,8.265,1.624,15.688c0.002,7.42,6.017,13.435,13.439,13.437c6.442-0.002,11.819-4.538,13.127-10.589l-0.141,0.081L24.086,20.904zM28.4,15.688l-7.15-4.129v2.297H10.275v3.661H21.25v2.297L28.4,15.688z",
49
+ "import": "M15.067,2.25c-5.979,0-11.035,3.91-12.778,9.309h3.213c1.602-3.705,5.271-6.301,9.565-6.309c5.764,0.01,10.428,4.674,10.437,10.437c-0.009,5.764-4.673,10.428-10.437,10.438c-4.294-0.007-7.964-2.605-9.566-6.311H2.289c1.744,5.399,6.799,9.31,12.779,9.312c7.419-0.002,13.437-6.016,13.438-13.438C28.504,8.265,22.486,2.252,15.067,2.25zM10.918,19.813l7.15-4.126l-7.15-4.129v2.297H-0.057v3.661h10.975V19.813z",
50
+ "raph_run": "M17.41,20.395l-0.778-2.723c0.228-0.2,0.442-0.414,0.644-0.643l2.721,0.778c0.287-0.418,0.534-0.862,0.755-1.323l-2.025-1.96c0.097-0.288,0.181-0.581,0.241-0.883l2.729-0.684c0.02-0.252,0.039-0.505,0.039-0.763s-0.02-0.51-0.039-0.762l-2.729-0.684c-0.061-0.302-0.145-0.595-0.241-0.883l2.026-1.96c-0.222-0.46-0.469-0.905-0.756-1.323l-2.721,0.777c-0.201-0.228-0.416-0.442-0.644-0.643l0.778-2.722c-0.418-0.286-0.863-0.534-1.324-0.755l-1.96,2.026c-0.287-0.097-0.581-0.18-0.883-0.241l-0.683-2.73c-0.253-0.019-0.505-0.039-0.763-0.039s-0.51,0.02-0.762,0.039l-0.684,2.73c-0.302,0.061-0.595,0.144-0.883,0.241l-1.96-2.026C7.048,3.463,6.604,3.71,6.186,3.997l0.778,2.722C6.736,6.919,6.521,7.134,6.321,7.361L3.599,6.583C3.312,7.001,3.065,7.446,2.844,7.907l2.026,1.96c-0.096,0.288-0.18,0.581-0.241,0.883l-2.73,0.684c-0.019,0.252-0.039,0.505-0.039,0.762s0.02,0.51,0.039,0.763l2.73,0.684c0.061,0.302,0.145,0.595,0.241,0.883l-2.026,1.96c0.221,0.46,0.468,0.905,0.755,1.323l2.722-0.778c0.2,0.229,0.415,0.442,0.643,0.643l-0.778,2.723c0.418,0.286,0.863,0.533,1.323,0.755l1.96-2.026c0.288,0.097,0.581,0.181,0.883,0.241l0.684,2.729c0.252,0.02,0.505,0.039,0.763,0.039s0.51-0.02,0.763-0.039l0.683-2.729c0.302-0.061,0.596-0.145,0.883-0.241l1.96,2.026C16.547,20.928,16.992,20.681,17.41,20.395zM11.798,15.594c-1.877,0-3.399-1.522-3.399-3.399s1.522-3.398,3.399-3.398s3.398,1.521,3.398,3.398S13.675,15.594,11.798,15.594zM27.29,22.699c0.019-0.547-0.06-1.104-0.23-1.654l1.244-1.773c-0.188-0.35-0.4-0.682-0.641-0.984l-2.122,0.445c-0.428-0.364-0.915-0.648-1.436-0.851l-0.611-2.079c-0.386-0.068-0.777-0.105-1.173-0.106l-0.974,1.936c-0.279,0.054-0.558,0.128-0.832,0.233c-0.257,0.098-0.497,0.22-0.727,0.353L17.782,17.4c-0.297,0.262-0.568,0.545-0.813,0.852l0.907,1.968c-0.259,0.495-0.437,1.028-0.519,1.585l-1.891,1.06c0.019,0.388,0.076,0.776,0.164,1.165l2.104,0.519c0.231,0.524,0.541,0.993,0.916,1.393l-0.352,2.138c0.32,0.23,0.66,0.428,1.013,0.6l1.715-1.32c0.536,0.141,1.097,0.195,1.662,0.15l1.452,1.607c0.2-0.057,0.399-0.118,0.596-0.193c0.175-0.066,0.34-0.144,0.505-0.223l0.037-2.165c0.455-0.339,0.843-0.747,1.152-1.206l2.161-0.134c0.152-0.359,0.279-0.732,0.368-1.115L27.29,22.699zM23.127,24.706c-1.201,0.458-2.545-0.144-3.004-1.345s0.143-2.546,1.344-3.005c1.201-0.458,2.547,0.144,3.006,1.345C24.931,22.902,24.328,24.247,23.127,24.706z",
51
+ "raph_magnet": "M20.812,19.5h5.002v-6.867c-0.028-1.706-0.61-3.807-2.172-5.841c-1.539-2.014-4.315-3.72-7.939-3.687C12.076,3.073,9.3,4.779,7.762,6.792C6.2,8.826,5.617,10.928,5.588,12.634V19.5h5v-6.866c-0.027-0.377,0.303-1.789,1.099-2.748c0.819-0.979,1.848-1.747,4.014-1.778c2.165,0.032,3.195,0.799,4.013,1.778c0.798,0.959,1.126,2.372,1.099,2.748V19.5L20.812,19.5zM25.814,25.579c0,0,0-2.354,0-5.079h-5.002c0,2.727,0,5.08,0,5.08l5.004-0.001H25.814zM5.588,25.58h5c0,0,0-2.354,0-5.08h-5C5.588,23.227,5.588,25.58,5.588,25.58z",
52
+ "raph_nomagnet": "M10.59,17.857v-5.225c-0.027-0.376,0.303-1.789,1.099-2.748c0.819-0.979,1.849-1.748,4.014-1.778c1.704,0.026,2.699,0.508,3.447,1.189l3.539-3.539c-1.616-1.526-4.01-2.679-6.986-2.652C12.077,3.073,9.3,4.779,7.762,6.793C6.2,8.826,5.617,10.928,5.59,12.634V19.5h3.357L10.59,17.857zM5.59,20.5v2.357L7.947,20.5H5.59zM20.812,13.29v6.21h5.002v-6.866c-0.021-1.064-0.252-2.283-0.803-3.542L20.812,13.29zM25.339,4.522L4.652,25.209l1.415,1.416L26.753,5.937L25.339,4.522zM20.812,25.58h5.002c0,0,0-2.354,0-5.08h-5.002C20.812,23.227,20.812,25.58,20.812,25.58zM10.59,25.58c0,0,0-0.827,0-2.064L8.525,25.58H10.59z",
53
+ "raph_flip": "M15.5,21.082h1.001v-2.001H15.5V21.082zM15.5,25.082h1.001v-2H15.5V25.082zM15.5,29.082h1.001v-2H15.5V29.082zM15.5,32.127h1.001v-1.045H15.5V32.127zM15.5,17.083h1.001v-2H15.5V17.083zM15.5,1.083h1.001v-2H15.5V1.083zM15.5,5.083h1.001v-2H15.5V5.083zM15.5,9.083h1.001v-2H15.5V9.083zM15.5,13.083h1.001v-2H15.5V13.083zM18.832,1.203v25.962h14.093L18.832,1.203zM19.832,5.136l11.41,21.03h-11.41V5.136zM13.113,27.165V1.203L-0.979,27.165H13.113z",
54
+ "raph_flipv": "M21.45,16.078v-1.001h-2.001v1.001H21.45zM25.45,16.078v-1.001h-2v1.001H25.45zM29.45,16.078v-1.001h-2v1.001H29.45zM32.495,16.078v-1.001H31.45v1.001H32.495zM17.451,16.078v-1.001h-2v1.001H17.451zM1.451,16.078v-1.001h-2v1.001H1.451zM5.451,16.078v-1.001h-2v1.001H5.451zM9.452,16.078v-1.001h-2v1.001H9.452zM13.452,16.078v-1.001h-2v1.001H13.452zM1.571,12.745h25.962V-1.348L1.571,12.745zM5.504,11.745l21.03-11.41v11.41H5.504zM27.533,18.464H1.571l25.962,14.093V18.464z",
55
+ "raph_connect": "M25.06,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h4.69v-3.999H25.06zM20.375,15.719c0-3.435-2.784-6.219-6.219-6.219c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h6.834c0.833,2.452,3.15,4.219,5.884,4.219C17.591,21.938,20.375,19.153,20.375,15.719z",
56
+ "raph_disconnect": "M9.219,9.5c-2.733,0-5.05,1.766-5.884,4.218H1.438v4.001h1.897c0.833,2.452,3.15,4.219,5.884,4.219c3.435,0,6.219-2.784,6.219-6.219S12.653,9.5,9.219,9.5zM27.685,13.719c-0.944-5.172-5.461-9.094-10.903-9.094v4c3.917,0.006,7.085,3.176,7.094,7.094c-0.009,3.917-3.177,7.085-7.094,7.093v4.002c5.442-0.004,9.959-3.926,10.903-9.096h2.065v-3.999H27.685z",
57
+ "raph_folder": "M29.124,12.75c-0.004-2.208-1.792-3.997-3.999-4V8.749H12.868c-0.505-1.622-2.011-2.808-3.805-2.811H6.188c-2.208,0.002-3.997,1.792-4.001,4v14.188c0.004,2.206,1.793,3.995,4.001,3.999h18.938c2.205-0.004,3.995-1.793,3.999-3.999V12.75zM6.188,7.937h2.875c1.046-0.004,1.917,0.834,1.983,1.876l0.058,0.937h14.022c1.093,0.002,1.997,0.906,1.999,2v0.495c-0.591-0.345-1.268-0.557-2-0.558H6.187c-0.732,0.001-1.41,0.214-2,0.559V9.937C4.19,8.843,5.094,7.939,6.188,7.937zM25.125,26.125H6.188c-1.093-0.002-1.997-0.908-2.001-2v-7.438h0.001c0.002-1.095,0.906-1.999,2-2.001h18.938c1.093,0.002,1.991,0.901,2,1.991v7.447C27.122,25.219,26.218,26.123,25.125,26.125z",
58
+ "raph_man": "M21.021,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.103,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.578,5.192-0.35,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.166,1.213-0.166,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.463,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.602,21.541,22.443,18.912,21.021,16.349zM15.808,13.757c2.362,0,4.278-1.916,4.278-4.279s-1.916-4.279-4.278-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757z",
59
+ "raph_woman": "M21.022,16.349c-0.611-1.104-1.359-1.998-2.109-2.623c-0.875,0.641-1.941,1.031-3.104,1.031c-1.164,0-2.231-0.391-3.105-1.031c-0.75,0.625-1.498,1.519-2.111,2.623c-1.422,2.563-1.579,5.192-0.351,5.874c0.55,0.307,1.127,0.078,1.723-0.496c-0.105,0.582-0.167,1.213-0.167,1.873c0,2.932,1.139,5.307,2.543,5.307c0.846,0,1.265-0.865,1.466-2.189c0.201,1.324,0.62,2.189,1.464,2.189c1.406,0,2.545-2.375,2.545-5.307c0-0.66-0.061-1.291-0.168-1.873c0.598,0.574,1.174,0.803,1.725,0.496C22.603,21.541,22.444,18.912,21.022,16.349zM15.808,13.757c2.363,0,4.279-1.916,4.279-4.279s-1.916-4.279-4.279-4.279c-2.363,0-4.28,1.916-4.28,4.279S13.445,13.757,15.808,13.757zM18.731,4.974c1.235,0.455,0.492-0.725,0.492-1.531s0.762-1.792-0.492-1.391c-1.316,0.422-2.383,0.654-2.383,1.461S17.415,4.489,18.731,4.974zM15.816,4.4c0.782,0,0.345-0.396,0.345-0.884c0-0.488,0.438-0.883-0.345-0.883s-0.374,0.396-0.374,0.883C15.442,4.005,15.034,4.4,15.816,4.4zM12.884,4.974c1.316-0.484,2.383-0.654,2.383-1.461S14.2,2.474,12.884,2.052c-1.254-0.402-0.492,0.584-0.492,1.391S11.648,5.428,12.884,4.974z",
60
+ "raph_notebook": "M24.875,1.375H8c-1.033,0-1.874,0.787-1.979,1.792h1.604c1.102,0,2,0.898,2,2c0,1.102-0.898,2-2,2H6v0.999h1.625c1.104,0,2.002,0.898,2.002,2.002c0,1.104-0.898,2.001-2.002,2.001H6v0.997h1.625c1.102,0,2,0.898,2,2c0,1.104-0.898,2.004-2,2.004H6v0.994h1.625c1.102,0,2,0.898,2,2.002s-0.898,2.002-2,2.002H6v0.997h1.624c1.104,0,2.002,0.897,2.002,2.001c0,1.104-0.898,2.002-2.002,2.002H6.004C6.027,28.252,6.91,29.125,8,29.125h16.875c1.104,0,2-0.896,2-2V3.375C26.875,2.271,25.979,1.375,24.875,1.375zM25.25,8.375c0,0.552-0.447,1-1,1H14c-0.553,0-1-0.448-1-1V4c0-0.552,0.447-1,1-1h10.25c0.553,0,1,0.448,1,1V8.375zM8.625,25.166c0-0.554-0.449-1.001-1-1.001h-3.25c-0.552,0-1,0.447-1,1.001c0,0.552,0.449,1,1,1h3.25C8.176,26.166,8.625,25.718,8.625,25.166zM4.375,6.166h3.251c0.551,0,0.999-0.448,0.999-0.999c0-0.555-0.448-1-0.999-1H4.375c-0.553,0-1,0.445-1,1C3.374,5.718,3.822,6.166,4.375,6.166zM4.375,11.167h3.25c0.553,0,1-0.448,1-1s-0.448-1-1-1h-3.25c-0.553,0-1,0.448-1,1S3.822,11.167,4.375,11.167zM4.375,16.167h3.25c0.551,0,1-0.448,1-1.001s-0.448-0.999-1-0.999h-3.25c-0.553,0-1.001,0.446-1.001,0.999S3.822,16.167,4.375,16.167zM3.375,20.165c0,0.553,0.446,1.002,1,1.002h3.25c0.551,0,1-0.449,1-1.002c0-0.552-0.448-1-1-1h-3.25C3.821,19.165,3.375,19.613,3.375,20.165z",
61
+ "raph_diagram": "M6.812,17.202l7.396-3.665v-2.164h-0.834c-0.414,0-0.808-0.084-1.167-0.237v1.159l-7.396,3.667v2.912h2V17.202zM26.561,18.875v-2.913l-7.396-3.666v-1.158c-0.358,0.152-0.753,0.236-1.166,0.236h-0.832l-0.001,2.164l7.396,3.666v1.672H26.561zM16.688,18.875v-7.501h-2v7.501H16.688zM27.875,19.875H23.25c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C29.875,20.771,28.979,19.875,27.875,19.875zM8.125,19.875H3.5c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2h4.625c1.104,0,2-0.896,2-2v-4.625C10.125,20.771,9.229,19.875,8.125,19.875zM13.375,10.375H18c1.104,0,2-0.896,2-2V3.75c0-1.104-0.896-2-2-2h-4.625c-1.104,0-2,0.896-2,2v4.625C11.375,9.479,12.271,10.375,13.375,10.375zM18,19.875h-4.625c-1.104,0-2,0.896-2,2V26.5c0,1.104,0.896,2,2,2H18c1.104,0,2-0.896,2-2v-4.625C20,20.771,19.104,19.875,18,19.875z",
62
+ "raph_barchart": "M21.25,8.375V28h6.5V8.375H21.25zM12.25,28h6.5V4.125h-6.5V28zM3.25,28h6.5V12.625h-6.5V28z"
63
+ }
64
+ }
app/code/local/AuIt/PublicationBasic/data/shapelib/symbol.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {"data": {
2
+ "airplane": "m150.70285,1c-3.11894,0 -5.89383,1.28033 -8.23512,3.60274c-2.33931,2.3205 -4.27426,5.64559 -5.8844,9.79826c-3.21983,8.30419 -5.20047,19.96969 -6.28387,33.94021c-1.08127,13.94364 -1.26349,30.17972 -0.81427,47.56012c-38.52657,15.80524 -116.66563,48.43882 -122.94262,55.72521c-8.35709,9.701 -5.65693,20.81889 -2.28924,28.1994l128.45827,-26.14551c2.71532,34.07207 6.57611,67.81866 9.94048,94.2617c-12.56244,3.67662 -36.01244,10.93625 -40.85281,15.43805c-6.66802,6.2016 -6.66797,26.22952 -6.66797,26.22952l52.57557,-4.27612c1.23827,8.63303 2.01266,13.67035 2.01266,13.67035l0.07683,0.45456l0.41484,0l0.96791,0l0.41483,0l0.07683,-0.45456c0,0 0.77292,-5.03741 2.01265,-13.67035l52.59094,4.27612c0,0 0.00006,-20.02792 -6.66798,-26.22952c-4.84218,-4.50354 -28.3093,-11.77963 -40.86818,-15.45499c3.35742,-26.36189 7.2114,-59.97935 9.92513,-93.94165l126.95265,25.84239c3.36765,-7.38051 6.08325,-18.4984 -2.27386,-28.1994c-6.19934,-7.19621 -82.45026,-39.10397 -121.45232,-55.11919c0.466,-17.60567 0.29471,-34.06301 -0.79893,-48.16614l0,-0.03367c-1.08395,-13.95511 -3.0667,-25.60925 -6.28384,-33.90654c-1.60968,-4.15152 -3.52888,-7.47695 -5.86903,-9.79826c-2.34131,-2.32241 -5.11617,-3.60274 -8.23509,-3.60274z",
3
+ "arrows_recycle": "m184.80963,97.86072l-33.85641,-5.99613l12.47342,-6.51318c6.86035,-3.58231 13.08063,-7.05022 13.8228,-7.70647c1.84358,-1.63009 -21.11545,-37.10833 -23.99486,-37.07896c-1.26575,0.01435 -10.08571,13.75221 -19.59988,30.53185c-9.58302,16.90081 -19.12026,29.77207 -21.38301,28.85762c-26.78106,-10.82179 -48.63238,-21.77106 -48.63238,-24.36867c0,-1.7743 8.40277,-17.60187 18.67293,-35.17241l18.67294,-31.94638l50.91241,0l50.91241,0l13.28955,21.01844l13.28966,21.01844l13.86403,-7.11266c9.61084,-4.93073 13.27039,-5.63875 11.92874,-2.30832c-11.81259,29.32658 -29.43884,63.52189 -32.57199,63.19018c-2.16919,-0.22948 -19.17931,-3.11553 -37.80035,-6.41334zm-157.90158,130.83841c-12.88431,-22.18782 -24.43164,-42.96199 -25.66062,-46.16496c-1.26128,-3.28671 2.41348,-15.03122 8.43637,-26.96236l10.67094,-21.13916l-10.90837,-6.44379c-14.51679,-8.57526 -9.12079,-11.21638 29.38814,-14.38432l30.43462,-2.50365l11.93788,31.54266c6.56593,17.34845 12.77805,33.78311 13.80486,36.52168c1.07085,2.85602 -4.05412,0.95576 -12.01902,-4.45653l-13.88588,-9.43578l-9.69341,18.71187c-5.33128,10.2917 -9.769,19.85884 -9.86144,21.26031c-0.09266,1.40147 16.26999,3.00525 36.36115,3.56384l36.52929,1.01558l2.3839,26.7207c1.3112,14.69647 2.11298,26.91713 1.78191,27.15706c-0.33105,0.23969 -17.62818,1.53915 -38.43802,2.88736l-37.83614,2.4512l-23.42616,-40.34174zm144.19484,39.20346c-22.11887,-33.38463 -22.50333,-30.90141 10.37228,-66.98763l21.10391,-23.16492l-2.24142,16.92821l-2.24152,16.92822l23.64932,0c13.0071,0 23.64944,-1.04019 23.64944,-2.31137c0,-1.27139 -7.21684,-15.55066 -16.03735,-31.73212c-8.82051,-16.18146 -16.00386,-30.77765 -15.96307,-32.436c0.09158,-3.71849 46.32753,-34.42394 48.52559,-32.22591c0.87094,0.87095 9.45139,16.38289 19.06769,34.47134l17.48441,32.8876l-23.52576,37.94727c-12.93936,20.87074 -25.37122,39.98283 -27.62622,42.47105c-2.25526,2.48822 -14.86537,5.52936 -28.02258,6.75787c-25.11388,2.34528 -24.43022,1.7804 -28.11249,23.22583c-0.64439,3.75308 -8.1586,-4.76279 -20.08223,-22.75946z",
4
+ "beverage": "m55.65598,297.84982c-28.13961,-15.0867 0.71402,-44.87836 24.17752,-35.2438c17.46051,-0.03983 34.92112,-0.01355 52.38168,-0.02121c0,-34.34088 0,-68.68181 0,-103.02271c-43.73869,-52.76227 -87.47738,-105.52454 -131.21606,-158.28681c98.99732,-0.36748 197.99556,-0.36708 296.99286,0c-42.95236,53.02298 -85.90472,106.04595 -128.85707,159.06893c0,34.08022 0,68.1604 0,102.24059c25.78079,0.22986 51.60571,-0.625 77.34869,0.87012c20.26866,5.44482 12.15504,38.73355 -7.54306,35.2244c-61.09291,-0.21259 -122.20532,0.38715 -183.28456,-0.8295zm127.03334,-186.51904c19.68919,-7.503 16.9212,-39.96898 -4.19951,-43.27924c-31.86026,-8.77637 -38.74004,46.49459 -5.25272,45.19753c3.23363,0.02124 6.51921,-0.43665 9.45222,-1.91829z",
5
+ "bicycle": "m69.04492,242.61508c10.78542,-0.13551 -10.27161,-0.62888 -14.0067,-0.90082c-31.20993,-0.75682 -57.11145,-31.7867 -53.74048,-62.58058c0.6826,-30.81444 30.36186,-57.88344 61.25282,-54.78261c8.04092,-3.41573 19.45538,7.85678 24.44781,2.47261c12.82323,-22.6207 25.24759,-45.47771 38.58752,-67.7975c11.3629,-1.62186 24.90015,-2.8755 35.9539,0.19863c5.11031,8.04987 -4.18097,10.24141 -9.97878,8.99869c-6.4711,0 -12.9422,0 -19.41331,0c-4.68463,8.54676 -9.49177,17.02541 -14.27853,25.51514c27.18877,0 54.37757,0 81.56634,0c0.60545,-2.89218 7.47321,-9.12369 1.38461,-8.44633c-11.06171,-1.39418 -4.14218,-14.17861 4.04941,-10.54169c11.49847,0.42252 23.4034,-1.13349 34.55679,1.17167c5.95799,11.9574 -11.26917,9.39215 -18.65384,9.51889c-5.46606,-1.78406 -6.59882,3.68022 -8.76302,7.4192c-8.77467,8.98817 -3.32066,18.46121 2.57677,27.22322c2.16318,3.98602 3.70422,9.51816 8.96812,5.7937c10.73436,-2.35877 22.43681,-2.44432 33.11809,0.31375c22.31958,6.63104 40.2153,27.32498 41.71356,50.76672c1.35196,14.39882 -1.7262,29.2406 -10.68872,40.85638c-10.3952,14.88928 -27.26529,23.04211 -45.01289,24.69595m-13.91446,0.14534c-16.17995,-4.15208 -31.09747,-13.81174 -39.74602,-28.39511c-5.65977,-7.28935 -6.39555,-18.57542 -9.40382,-25.8875c-7.93416,-0.10381 -15.86833,-0.20763 -23.80251,-0.31143c-16.06972,-25.85139 -30.2338,-52.8877 -45.73496,-79.09947c-3.0216,8.9735 -20.19933,21.18202 -10.71458,29.44228c23.80356,19.97299 26.97348,58.9857 6.61392,82.50262c-9.33031,10.45926 -22.27345,17.66695 -35.57853,21.74126m1.02195,-14.22214c25.6753,-5.59119 42.08234,-35.19554 33.20155,-59.88542c-2.74454,-8.04132 -10.29613,-20.88658 -16.96593,-21.01822c-7.10979,12.27542 -13.50588,24.99036 -21.29804,36.85445c-17.11086,3.00977 -1.43426,-17.82442 2.18629,-24.90399c3.88173,-8.63774 17.97784,-22.6107 0.22043,-22.40381c-12.4663,-1.24055 -25.71457,-0.04088 -35.79932,8.23351c-21.64245,14.32193 -25.73868,47.07928 -9.34899,66.82591c11.09536,14.38573 30.25585,20.50179 47.804,16.29758zm179.64028,-0.00356c21.91476,-5.14897 37.68491,-27.67265 34.8483,-50.02701c-1.50024,-24.84305 -26.27582,-44.93475 -50.90707,-41.59564c-18.45729,-1.74684 -0.78658,15.19781 1.85167,23.43547c2.5099,8.7469 16.33638,19.49011 8.6171,28.02017c-17.31352,0.72531 -35.05154,-0.50934 -52.31752,1.23642c3.1011,22.89496 24.76817,41.83401 48.14848,40.08203c3.28111,-0.02676 6.57803,-0.30434 9.75905,-1.15144zm-70.7294,-51.16617c2.08536,-17.91364 12.23944,-34.20847 27.04826,-44.4043c0.87492,-4.39421 -8.09195,-24.63332 -11.37527,-10.5231c-10.13445,18.42084 -20.32248,36.81699 -30.14639,55.40483c4.70622,0.11383 9.98186,0.93559 14.4734,-0.47743zm52.9005,-0.88846c-5.84201,-10.98254 -11.81374,-21.89917 -17.91992,-32.73703c-12.24919,6.45949 -20.3076,20.12949 -22.21249,33.77383c13.37456,-0.2851 26.97348,0.69884 40.16722,-0.71251l-0.03476,-0.3243l0,0zm-57.29515,-39.61388c5.7617,-10.63408 11.63275,-21.21213 17.21649,-31.94065c-24.2798,-0.5443 -48.61469,-0.66353 -72.88629,0.11504c12.46696,21.42642 23.73018,43.6828 37.36159,64.35614c6.59126,-10.13849 12.18927,-21.81091 18.30821,-32.53052z",
6
+ "bulb": "m145.62592,297.06863c-17.67376,-4.68848 -27.91267,-23.96384 -26.70493,-41.44981c-0.45245,-22.83995 1.65483,-46.8734 -9.26703,-67.87447c-6.22532,-15.68024 -16.83022,-29.52451 -21.2558,-45.86502c-5.50718,-25.3512 1.29536,-54.08422 21.79177,-71.10346c23.11512,-19.80671 60.02821,-22.38829 85.47337,-5.55379c17.94666,12.36192 30.89558,32.75098 30.41452,55.00024c2.10583,16.62513 -4.45561,32.2625 -12.17442,46.55451c-5.53021,11.50751 -11.98869,22.76817 -17.00821,34.40399c-1.32327,23.85774 -0.56435,47.93431 -4.15358,71.58684c-5.97899,18.328 -28.51152,30.78922 -47.11569,24.30096zm46.67903,-42.65804c-10.48888,-5.65382 -25.56134,-1.97798 -37.75313,-3.19516c-9.95908,1.99197 -27.6553,-4.08569 -32.94975,5.03105c12.10807,4.73648 26.33759,1.18594 39.22778,1.96957c10.31409,-0.9906 22.18068,0.93939 31.4751,-3.80547zm-0.78554,-10.63885c1.54361,-14.36404 -21.1709,-7.03433 -30.39838,-9.17262c-12.21318,2.47205 -31.64935,-5.2915 -39.33047,5.74487c4.5516,11.09071 24.85052,3.29074 35.50985,5.75148c11.3671,-0.4028 23.15991,0.40741 34.21899,-2.32373zm0.14142,-25.16705c2.9986,-27.98152 20.10725,-51.27968 30.01392,-76.87566c8.14517,-30.64574 -7.9861,-65.65708 -37.19159,-78.52086c-29.06958,-14.40719 -67.79967,-3.52343 -84.22785,24.70715c-15.82867,23.31919 -12.80788,55.00346 2.66266,77.68118c11.03862,19.81914 19.84574,42.09169 18.41109,65.15663c22.91359,0 45.82719,0 68.7408,0c0.53035,-4.04942 1.06052,-8.09911 1.59097,-12.14844zm-50.72687,-39.64223c-9.07846,-15.78525 -18.39817,-31.69214 -24.71996,-48.79948c5.68369,-7.35728 7.33711,-15.55251 9.10273,-24.19695c15.95243,-3.13345 -2.03056,18.17914 13.0308,18.65942c13.36925,5.81685 7.50436,-28.2252 18.61179,-15.95465c-7.9733,13.46684 15.66168,26.8638 16.5291,7.59886c-1.14578,-14.54594 14.28561,-11.82063 8.26923,1.37553c0.49657,6.78834 11.54893,8.73447 11.73816,14.19425c-7.9566,17.25854 -14.87259,35.07664 -24.29411,51.59875c-2.12068,-6.39691 8.34081,-22.42969 11.68367,-31.84341c6.45049,-8.13736 11.99347,-30.06687 -4.82256,-27.07765c-9.75478,15.21495 -22.87704,-9.5907 -32.42833,4.99055c-8.10805,2.41856 -20.86024,-14.04196 -23.2123,1.78514c6.10664,18.79854 18.8132,34.81967 25.46149,53.42416c-2.25594,-1.33008 -3.54053,-3.66359 -4.94971,-5.75453zm-12.74261,-68.89435c-4.41462,-2.15457 1.86072,11.45412 -0.00009,0l0.00009,0zm26.38611,1.60738c-5.73064,-9.69846 -2.6572,11.76727 0,0zm25.57564,0c-5.73064,-9.69846 -2.65724,11.76727 0,0zm-119.06653,-71.66327c-10.12879,-10.27977 -21.32492,-19.92564 -30.13364,-31.25677c22.0061,18.21614 42.14793,38.73141 61.97966,59.29806c5.2662,7.2365 -9.18723,-6.75771 -11.87724,-9.10345c-6.7307,-6.23349 -13.37324,-12.56173 -19.96879,-18.93784zm156.40887,29.39093c17.12013,-21.33164 33.0936,-43.69485 51.55162,-63.89019c-3.09076,8.6951 -13.04016,19.09942 -19.29597,28.05458c-10.44716,12.99739 -20.21251,26.73974 -32.1591,38.39317c-1.49106,1.57605 -3.71758,-2.15694 -0.09639,-2.55756l-0.00015,0zm-37.0826,-20.23703c5.91515,-16.91904 14.49518,-33.02397 24.06741,-48.16613c-0.22247,8.40011 -10.37453,24.32112 -15.25424,34.73693c-2.76042,4.19142 -5.08876,10.87586 -8.81317,13.4292zm-75.7492,-21.69804c-4.12045,-6.01025 -16.5241,-20.00493 -14.20815,-21.91343c11.95872,13.25933 24.12167,26.94502 32.71223,42.62532c-7.31573,-5.61084 -12.5797,-13.71475 -18.50409,-20.71189zm47.35616,-4.73013c-0.83392,-5.64444 1.75482,-32.58975 3.19298,-14.29333c0.00511,11.46356 1.20168,24.36872 -1.98915,34.80271c-1.36639,-6.70823 -1.03488,-13.69191 -1.20383,-20.50938z",
7
+ "careful": "m1,1c2.24496,29.70385 10.76853,56.9168 23.28125,80.81181l23.28125,-36.31875l-6.72569,-2.48334l-9.3125,-3.31111l4.86319,-8.48472l17.07292,-30.21389l-52.46042,0zm71.49931,0l-16.86597,29.8l7.24306,2.58681l9.82986,3.51805l-5.5875,8.69167l-33.525,52.46041c24.12122,36.61169 59.3948,61.88649 99.85071,67.36043l0,107.09373l-66.22223,0l0,26.48889l165.55556,0l0,-26.48889l-66.22223,0l0,-107.09373c70.57336,-9.43671 125.94405,-78.40826 132.44444,-164.41737l-226.50069,0z",
8
+ "cart_2": "m0.99397,46.01759l0,36.55115l57.8652,0l28.28396,104.41602l159.23965,0l52.21094,-125.30758l-237.55595,0l0,-15.65959zm53.21769,184.47131c0,12.97459 -10.51804,23.49266 -23.49261,23.49266c-12.97436,0 -23.49244,-10.51807 -23.49244,-23.49266c0,-12.97456 10.51808,-23.49228 23.49244,-23.49228c12.97457,0 23.49261,10.51772 23.49261,23.49228zm148.8,0c0,12.97459 -10.51817,23.49266 -23.4928,23.49266c-12.97446,0 -23.49258,-10.51807 -23.49258,-23.49266c0,-12.97456 10.51813,-23.49228 23.49258,-23.49228c12.97462,0 23.4928,10.51772 23.4928,23.49228z",
9
+ "coat_hanger": "m24.72351,255.83636c-16.41191,-2.33228 -27.73119,-20.33411 -22.38228,-36.1741c3.30628,-15.35616 20.22842,-19.55692 31.44893,-27.66121c35.64961,-21.14748 71.50229,-41.94997 107.26245,-62.9095c1.87845,-10.22399 -5.70195,-16.59309 -13.7997,-21.39916c-16.20296,-12.86633 -15.31998,-38.50921 -1.59858,-52.83282c16.08138,-18.88601 49.91904,-12.94907 59.95362,9.38958c9.73412,9.92804 -0.18503,34.24562 -13.8385,22.54042c-1.42418,-13.2976 -12.78993,-28.89017 -27.7881,-20.44456c-15.64833,8.98737 -6.40202,29.9363 8.0513,34.15588c9.75604,6.53233 8.45554,18.64742 8.97318,28.8608c42.85536,25.5808 86.25137,50.28574 128.51941,76.82744c16.8277,13.06401 9.90717,44.50819 -11.28448,48.76941c-16.06598,2.31227 -32.54915,0.68361 -48.77617,1.31593c-68.2437,0.05267 -136.50528,0.51715 -204.74109,-0.43811zm248.30083,-21.61086c12.28671,-12.24121 -10.69217,-18.82494 -18.26138,-24.82121c-34.85875,-20.46407 -69.60597,-41.14412 -104.87569,-60.89026c-41.32713,23.46544 -82.56062,47.16515 -123.11867,71.93832c-8.58788,3.43668 -2.61073,17.17589 5.37386,15.06004c78.53457,-0.16875 157.07672,0.41405 235.60527,-0.42499c1.73874,-0.22235 3.69772,0.07922 5.27661,-0.86191z",
10
+ "document": "m58.5474,213.36578c-0.05885,-70.73299 -0.11767,-141.466 -0.17652,-212.19898c53.12881,0.81297 106.48294,-1.9259 159.43185,2.08758c25.82027,9.16723 22.09921,66.23434 21.6799,108.85904c-1.13266,32.14426 15.08594,95.86641 -27.03937,105.4444c-21.00172,0.00113 -21.08437,8.97424 -18.9407,25.20605c2.4877,24.31731 -4.73431,78.79115 -39.2352,44.26363l-95.71997,-73.66171zm162.59977,-23.1226c0.08537,-63.57991 -0.62674,-117.82272 -4.15146,-159.71279c-31.317,-14.24883 -73.63496,-7.31453 -109.06839,-7.53106c-13.9288,6.77649 33.0414,29.27771 43.00333,38.00857c37.81908,18.77271 49.10266,52.9127 42.57201,91.49594c0,15.00871 0,30.01746 0,45.02617c6.97418,-0.00844 21.40269,-3.46487 27.64452,-7.28687z",
11
+ "gift": "m160.05605,46.22016c5.12212,-9.27578 14.49356,-21.35899 -1.60765,-24.27403c-4.48517,-2.30248 -8.9718,-6.3767 -13.45119,-1.83809c-9.96648,3.93713 -18.60622,9.44305 -8.12337,19.74747c4.64861,6.65461 8.87668,21.1743 14.1424,22.77341c3.14276,-5.39672 6.08684,-10.9068 9.03981,-16.40877zm-22.01753,25.61161c-9.14935,-16.32981 -16.51206,-33.84869 -27.71044,-48.91321c-13.62003,-14.54198 -40.45641,-8.05964 -46.55505,10.6975c-8.10131,18.54466 9.37865,40.68638 29.16686,38.36525c15.01618,0.2515 30.1178,0.92769 45.09863,-0.14954zm76.02873,0.55127c19.45964,-2.60851 30.65027,-27.10658 19.57069,-43.3727c-9.81836,-17.35883 -38.06532,-17.96398 -47.9265,-0.32358c-8.53876,14.26143 -15.94994,29.16402 -23.78549,43.81643c17.32285,0.99046 34.80862,0.75943 52.1413,-0.12016zm32.22711,20.88692c6.6339,-5.83724 32.32317,-12.71885 12.86739,-18.26252c-4.81963,-1.36767 -10.43866,-7.64191 -14.77026,-5.92492c-9.40594,11.6946 -23.86844,18.55521 -38.9686,17.83661c-2.95601,0.97167 -18.03316,-1.47781 -13.95946,1.30438c10.65262,6.07415 21.03697,12.6707 32.05554,18.0621c7.71764,-4.11029 15.20781,-8.63805 22.77539,-13.01566zm-151.5623,3.30481c5.67309,-3.30481 11.34617,-6.60963 17.01924,-9.91444c-17.34076,-0.86164 -37.18572,1.63783 -50.29088,-12.30952c-3.69488,-4.13725 -7.23799,-8.87396 -12.35892,-3.66532c-6.13381,4.22582 -25.00066,8.5563 -10.4742,13.71487c12.64928,7.47227 25.20959,15.12685 38.17151,22.0463c6.1765,-2.89648 11.99872,-6.5165 17.93326,-9.87188zm83.14041,36.87479c7.35168,-5.90694 25.15858,-11.53461 25.75348,-17.87329c-16.62141,-9.56481 -32.75868,-20.2142 -50.14796,-28.29874c-5.98431,-2.2704 -10.83618,1.22306 -15.65312,4.25735c-14.24385,8.47255 -28.83041,16.41927 -42.61077,25.63122c18.02219,11.14435 36.26101,21.95917 54.67725,32.43958c9.39328,-5.26857 18.66512,-10.75249 27.98112,-16.15611zm73.75499,18.43738c7.62694,-4.81227 15.25389,-9.62453 22.88087,-14.43683c-0.06244,-16.11785 0.19498,-32.24243 -0.24597,-48.35465c-15.39334,8.58929 -30.56776,17.60745 -45.48607,26.99785c-1.63162,16.62392 -0.80414,33.52276 -0.44952,50.23046c7.87193,-4.6378 15.55261,-9.59819 23.30069,-14.43683zm-178.87355,-10.1545c0.77462,-13.73913 2.44441,-29.40098 -14.12444,-33.4709c-10.46331,-4.88007 -24.96637,-17.38377 -33.02728,-17.25835c-0.25115,15.4809 -0.11823,30.96465 -0.14541,46.44691c15.45605,9.64543 30.63783,19.75522 46.42746,28.8476c1.53102,-7.98021 0.53017,-16.43968 0.86967,-24.56526zm110.68056,53.19621c9.14198,-5.77156 18.28395,-11.54312 27.42593,-17.31468c-0.04233,-16.63979 0.64572,-33.30351 -0.10625,-49.92543c-10.04709,2.88116 -21.5385,11.78691 -32.12366,17.31859c-7.92599,4.64276 -15.85202,9.28555 -23.77802,13.92833c0.1563,17.76723 -0.42728,35.56691 0.57802,53.30783c9.47523,-5.53633 18.69861,-11.49898 28.00397,-17.31464zm-38.32249,-9.33929c0,-8.88464 0,-17.76929 0,-26.6539c-18.35233,-10.72505 -36.64592,-21.55176 -55.0698,-32.1535c-1.01884,16.98993 -0.43661,34.04375 -0.59025,51.06303c18.34824,11.48767 36.50635,23.28906 55.08669,34.3983c0.72301,-8.85316 0.45901,-17.77696 0.57336,-26.65393zm106.97165,35.71599c7.47931,-4.98045 14.95862,-9.96091 22.43796,-14.94136c-0.31207,-15.79037 0.77045,-31.79442 -0.80399,-47.41055c-15.55414,8.87424 -30.56544,18.97736 -45.84236,28.4509c0.367,16.33781 -0.75356,32.86267 0.93411,49.06088c7.89078,-4.84329 15.54118,-10.07089 23.27428,-15.15987zm-179.49486,-8.85234c-0.06088,-8.2791 -0.12183,-16.55821 -0.18272,-24.8373c-15.452,-9.6673 -30.70933,-19.65799 -46.39347,-28.94519c-0.98154,15.8615 -0.42208,31.78482 -0.5697,47.67464c15.58812,10.31845 31.00088,20.91034 46.79801,30.90671c0.60526,-8.24165 0.30488,-16.53903 0.34788,-24.79886zm111.24078,54.40674c9.07924,-6.02985 18.15848,-12.05969 27.23772,-18.08952c-0.02109,-16.81348 0.32051,-33.6342 -0.13127,-50.44193c-18.48172,11.39566 -36.8398,23.00107 -55.0625,34.8063c-2.05943,16.23506 -0.72412,32.97392 -0.72713,49.38643c5.65578,3.44495 20.11658,-11.82266 28.68318,-15.66129zm-38.71758,-7.19754c-1.09789,-11.59346 4.72185,-27.9119 -10.01297,-32.40633c-14.85952,-9.4117 -29.65931,-18.92612 -44.71436,-28.02278c-2.19433,15.91664 0.10065,32.49809 -1.58499,48.60945c18.05386,13.0511 36.5795,25.52769 55.44263,37.37666c1.51289,-8.30347 0.57193,-17.09903 0.86969,-25.55701zm-63.13967,-3.06479c-21.97403,-14.66875 -43.94805,-29.33749 -65.92206,-44.00621c0.02491,-45.26978 -0.60055,-90.55044 0.20291,-135.81172c11.00354,-6.78941 22.71307,-12.35508 34.0373,-18.58421c-7.3143,-20.93821 3.23879,-46.38257 24.44761,-54.21996c17.77897,-7.29492 39.21008,-0.71179 50.54502,14.64528c8.23304,-4.22243 16.4661,-8.44486 24.69915,-12.66729c8.27725,4.26063 16.55455,8.52126 24.83179,12.78188c11.86055,-14.06895 32.18082,-22.09776 49.79013,-14.21312c21.13718,7.42951 32.65843,32.817 25.07826,53.72234c11.40756,6.44052 23.81024,11.47337 34.26968,19.33245c0.46368,45.00166 0.00415,90.00995 -0.0379,135.01437c-43.72298,28.93527 -86.73743,58.97507 -131.17026,86.81018c-12.92032,-0.00348 -24.07242,-14.03217 -36.06157,-19.72c-11.59096,-7.66315 -23.15266,-15.37048 -34.71011,-23.08398z",
12
+ "globe": "m33.11721,223.16701l233.44794,0.08913l-7.57544,11.19618l-218.20762,-0.26738l-7.66489,-11.01793zm1.60428,-148.93458l230.3285,-0.26738l6.68439,11.48557l-243.78651,0.08913l6.77362,-11.30732zm-22.73061,74.62911l275.61135,-0.26738l-0.35626,11.48558l-275.07684,-0.17825l-0.17825,-11.03995zm275.8395,1.06528c0,76.03723 -61.86858,137.89429 -137.92784,137.89429c-76.0264,0 -137.88345,-61.86824 -137.88345,-137.89429c0,-76.02642 61.86823,-137.88347 137.88345,-137.88347c76.05927,-0.01117 137.92784,61.85705 137.92784,137.88347zm-137.91701,-148.93459c-82.09525,0 -148.90104,66.8058 -148.90104,148.92339c0,82.12878 66.8058,148.93457 148.90104,148.93457c82.13995,0 148.93459,-66.80579 148.93459,-148.93457c0,-82.11759 -66.79463,-148.92339 -148.93459,-148.92339zm41.78581,148.93459c0,81.25211 -22.01353,137.89429 -41.78581,137.89429c-19.74991,0 -41.76309,-56.64218 -41.76309,-137.89429c0,-81.27448 22.00233,-137.88347 41.76309,-137.88347c19.76112,-0.01117 41.78581,56.60899 41.78581,137.88347zm-41.78581,-148.93459c-34.29579,0 -52.80304,76.73613 -52.80304,148.92339c0,72.2093 18.50725,148.93457 52.80304,148.93457c34.29614,0 52.83693,-76.73643 52.83693,-148.93457c-0.01118,-72.18726 -18.54079,-148.92339 -52.83693,-148.92339zm97.86217,148.93459c0,76.03723 -43.91597,137.89429 -97.86217,137.89429c-53.93499,0 -97.82862,-61.86824 -97.82862,-137.89429c0,-76.02642 43.89363,-137.88347 97.82862,-137.88347c53.9462,-0.01117 97.86217,61.85705 97.86217,137.88347zm-97.86217,-148.93459c-60.01537,0 -108.86856,66.8058 -108.86856,148.92339c0,82.12878 48.85319,148.93457 108.86856,148.93457c60.03773,0 108.88008,-66.80579 108.88008,-148.93457c0,-82.11759 -48.84235,-148.92339 -108.88008,-148.92339z",
13
+ "handle_care": "m163.84105,276.49316c0,-16.9874 0,-26.73244 0,-43.71985c0,-23.90417 32.58113,-58.75496 53.7084,-83.18626c5.78004,-5.69962 16.17278,-7.90976 21.66074,-2.49817c4.87456,4.80672 4.50662,16.61058 0.6333,22.48335c-7.09361,10.6588 -14.18712,21.31755 -21.28073,31.97632c-3.55533,6.07231 5.16899,10.98973 10.38702,4.49673c27.24385,-36.8876 34.70512,-44.36621 34.70512,-59.20624c0,-30.31093 0,-29.89459 0,-60.20548c0,-8.67812 6.34686,-16.98743 14.45584,-16.98743c7.71677,0 14.4277,7.99146 14.4277,15.52406c0,48.96381 0,67.40421 0,116.36799c0,15.08096 -47.62817,60.69775 -47.62817,81.9498c0,4.99628 0,9.99255 0,14.98889c-27.02963,0 -54.05942,0 -81.08914,0c0.00577,-7.32791 0.01431,-14.65582 0.02008,-21.9837zm-28.64365,0c0,-16.98746 0,-26.73244 0,-43.71985c0,-23.90422 -32.58104,-58.75496 -53.70833,-83.18626c-5.78003,-5.69962 -16.17277,-7.90976 -21.66072,-2.49817c-4.87465,4.80672 -4.50671,16.61058 -0.6334,22.48335c7.09362,10.6588 14.18714,21.31755 21.28075,31.97632c3.55531,6.07231 -5.16901,10.98973 -10.38705,4.49673c-27.24375,-36.8876 -34.70512,-44.36621 -34.70512,-59.20624c0,-30.31093 0,-29.89459 0,-60.20548c0,-8.67812 -6.34683,-16.98743 -14.45581,-16.98743c-7.71679,0 -14.42771,7.99146 -14.42771,15.52406c0,48.96381 0,67.40417 0,116.36799c0,15.08092 47.62818,60.69775 47.62818,81.9498c0,4.99628 0,9.99255 0,14.98889c27.02971,0 54.05941,0 81.08913,0c-0.00577,-7.32791 -0.01433,-14.65582 -0.02,-21.9837zm-42.88594,-214.71311l48.62654,36.4699l0,57.20769l-48.62654,-36.46989l0,-57.20769zm114.41537,0l-48.62654,36.4699l0,57.20769l48.62654,-36.46989l0,-57.20769zm-114.41537,-17.87738l57.20769,-42.90577l57.20769,42.90575l-57.20769,42.90577l-57.20769,-42.90574z",
14
+ "headphones": "m262.24301,276.32291c0,3.88873 -3.15054,7.03928 -7.03929,7.03928h-45.07771c-3.88873,0 -7.03928,-3.15054 -7.03928,-7.03928v-95.76917c0,-3.88843 3.15054,-7.03928 7.03928,-7.03928h45.07771c3.88875,0 7.03929,3.15085 7.03929,7.03928v95.76917zm-166.89014,0c0,3.88873 -3.15116,7.03928 -7.03929,7.03928h-45.07832c-3.88813,0 -7.03928,-3.15054 -7.03928,-7.03928v-95.76917c0,-3.88843 3.15115,-7.03928 7.03928,-7.03928h45.07832c3.88813,0 7.03929,3.15085 7.03929,7.03928v95.76917zm54.45998,-259.68797c-81.57039,0 -147.78664,65.61743 -148.80356,146.9389h25.82451c0.83739,-67.21309 55.56696,-121.44394 122.97905,-121.44394c67.41208,0 122.14168,54.23085 122.96928,121.44394h25.82391c-1.00656,-81.32147 -67.24229,-146.9389 -148.7932,-146.9389zm-148.59421,221.43015h25.35591v-74.64095h-25.35591v74.64095zm271.35417,-74.651v74.64127h26.29248v-74.64127h-26.29248z",
15
+ "hippie": "m126.57668,297.48117c-48.56062,-7.34268 -92.01251,-39.97321 -112.69057,-84.50511c-24.94552,-52.66977 -15.84542,-119.75688 23.8283,-162.85019c38.79855,-45.4432 106.09586,-61.79809 161.96931,-41.65034c58.35461,19.93039 100.52045,79.22475 99.29117,141.02438c1.2113,60.65196 -39.29578,118.84778 -96.0322,139.80408c-24.24886,9.49326 -50.68127,11.39462 -76.36598,8.17719zm8.7399,-92.17508c-0.08942,-7.31126 -0.17882,-14.62254 -0.26825,-21.93381c-20.52584,20.53458 -41.05166,41.06917 -61.57751,61.60378c17.64819,14.10371 39.22342,22.83827 61.57751,25.75548c0.29533,-21.80725 0.53749,-43.61626 0.26825,-65.42545zm48.5128,61.24323c14.52351,-4.28751 28.46933,-11.11562 40.24649,-20.66127c-9.32077,-13.4882 -22.68102,-24.26074 -33.95442,-36.33005c-8.88936,-8.88591 -17.77875,-17.77179 -26.66811,-26.6577c0,29.29706 0,58.59412 0,87.89117c6.88846,-0.91629 13.69307,-2.3291 20.37604,-4.24216zm-48.28273,-180.43147c0,-19.30317 0,-38.60634 0,-57.90951c-51.85052,5.59066 -97.82003,47.52976 -105.87597,99.4242c-5.92087,34.10992 2.2166,70.93011 24.35439,97.89821c27.17386,-27.16779 54.34772,-54.33559 81.52158,-81.50337c0,-19.30317 0,-38.60635 0,-57.90952zm116.00552,130.27736c29.94273,-44.68748 25.57903,-109.31516 -11.64191,-148.59046c-19.65836,-21.7875 -47.20416,-36.42821 -76.45694,-39.59642c0,38.6003 0,77.20061 0,115.80091c26.61343,26.23764 52.37032,53.38443 79.88922,78.67319c3.85712,4.56624 5.79269,-4.75352 8.20963,-6.28722z",
16
+ "house": "m21.15257,177.09065c0,-27.41002 0,-54.82008 0,-82.2301c-6.68203,1.86892 -13.14774,5.87402 -20.15257,5.63974c7.71781,-7.14793 21.82513,-9.41176 32.30949,-14.09891c45.79581,-16.133 91.60535,-32.4141 138.27387,-45.86145c13.50775,-0.66366 26.30505,7.15431 39.33269,10.42321c29.47861,10.57565 59.53784,19.97857 88.07501,32.90813c-6.51614,8.73929 -28.58875,5.06429 -25.73117,21.53019c-2.00067,45.62614 -0.83817,91.32375 -1.14786,136.98345c-18.99269,5.63184 -37.89932,11.84375 -56.94553,17.1149c-64.67134,-0.05981 -129.3426,-0.11945 -194.01394,-0.17902c0,-27.40996 0,-54.82036 0,-82.23004l0,-0.00011zm26.14161,31.25392c0,-16.12061 0,-32.24124 0,-48.36197c16.55636,0 33.11272,0 49.66908,0c0,32.24136 0,64.4827 0,96.724c38.34103,0 76.68204,0 115.02308,0c0,-54.026 0,-108.05197 0,-162.07799c-62.73987,0 -125.47972,0 -188.2196,0c0,54.02602 0,108.05199 0,162.07799c7.84248,0 15.68497,0 23.52745,0c0,-16.12067 0,-32.2413 0,-48.36203zm99.33812,-27.44867c0,-6.97108 0,-13.94214 0,-20.9133c13.07082,0 26.14162,0 39.21243,0c0,13.94221 0,27.88445 0,41.82658c-13.07082,0 -26.14162,0 -39.21243,0c0,-6.97108 0,-13.94214 0,-20.91328zm33.9841,1.30707c0,-5.66399 0,-11.32797 0,-16.99203c-9.58527,0 -19.17052,0 -28.75577,0c0,11.32805 0,22.65611 0,33.98409c9.58525,0 19.1705,0 28.75577,0c0,-5.66399 0,-11.32797 0,-16.99205zm-86.2673,28.75577c0,-15.24922 0,-30.4985 0,-45.7478c-14.8136,0 -29.62717,0 -44.44075,0c0.28782,29.49963 -0.86703,59.06848 1.39272,88.50464c7.32339,4.61035 18.6494,2.34561 27.75799,2.99103c5.09669,0 10.19335,0 15.29005,0c0,-15.24927 0,-30.49857 0,-45.74786zm150.9678,34.15282c7.18895,-2.37781 14.3779,-4.75565 21.56683,-7.13347c-0.32449,-45.85204 0.98636,-91.75861 -1.60782,-137.55795c-6.33264,-8.04385 -23.37172,10.13716 -33.97191,1.44468c-8.98801,-5.39767 -16.23575,-5.6667 -13.48424,6.8141c-0.6041,45.64783 -1.40456,91.35368 0.49997,136.97478c-2.32346,17.3029 19.61401,-1.57974 26.99716,-0.54214zm17.56241,-152.88132c5.81549,-2.74289 29.11139,-6.01917 13.28293,-11.03122c-31.02148,-13.18587 -62.53795,-25.50377 -94.87346,-35.06522c-13.26736,-1.87402 -25.71394,5.23786 -38.28336,8.42139c-7.2287,0.92986 -14.03493,6.61982 -2.78639,8.23806c33.43919,12.5762 66.81393,25.55496 101.06847,35.75281c7.2216,-1.29286 14.41238,-4.37938 21.59181,-6.31581zm-104.48328,-16.97943c-12.19943,-4.63456 -24.39883,-9.26913 -36.59824,-13.9037c-25.6514,8.95505 -51.55341,17.25012 -76.89988,27.03273c49.99152,1.67495 100.06706,0.58957 150.09639,0.77469c-12.19943,-4.6346 -24.39885,-9.26915 -36.59827,-13.90372z",
17
+ "keep_up": "m79,1l-21.3,35.5l-21.3,35.5l19.88,0l0,184.60001l45.44,0l0,-184.60001l19.88,0l-21.3,-35.5l-21.3,-35.5zm142.00002,0l-21.30002,35.5l-21.29999,35.5l19.88,0l0,184.60001l45.43999,0l0,-184.60001l19.88,0l-21.3,-35.5l-21.29999,-35.5zm-213.00002,269.80002l0,28.39999l284,0l0,-28.39999l-284,0z",
18
+ "new_born": "m137.15491,103.06109c-14.77614,-3.80736 -27.4188,-14.09921 -33.90258,-27.59863c-3.9915,-8.31045 -4.89106,-12.46352 -4.90182,-22.63058c-0.01103,-10.43683 0.90331,-14.55167 5.14873,-23.17045c6.5289,-13.25453 17.58841,-22.50933 32.02396,-26.7982c7.85696,-2.33434 19.44511,-2.4919 27.41292,-0.37272c10.68681,2.84234 20.56245,9.23503 27.27812,17.65763c11.44406,14.35284 14.51639,32.93808 8.33334,50.41059c-2.37558,6.7131 -5.38321,11.61306 -10.48294,17.07855c-7.51927,8.05854 -15.46124,12.82613 -25.72244,15.44125c-6.92987,1.76612 -18.2959,1.75824 -25.18729,-0.01743zm46.99359,76.71874c0,-11.66681 -0.15546,-21.21237 -0.34546,-21.21237c-0.55267,0 -23.15134,19.0079 -23.15134,19.47273c0,0.59862 22.40039,22.95203 23.00027,22.95203c0.2731,0 0.49652,-9.54558 0.49652,-21.21239zm-8.12837,89.58151c3.13896,-3.60342 5.94908,-9.57928 7.16283,-15.23215c0.75183,-3.5016 0.8862,-7.28795 0.60019,-16.91275l-0.36856,-12.40109l-33.73602,-33.39706c-29.396,-29.10065 -33.79212,-33.21501 -34.172,-31.98175c-0.2398,0.77843 -0.30579,13.66176 -0.14668,28.62961l0.28934,27.21429l28.53863,28.41072c15.69623,15.6259 28.73599,28.41826 28.97726,28.42744c0.24127,0.00919 1.52603,-1.23157 2.85503,-2.75726zm-21.12221,12.22665c0.5526,-0.21207 -6.52711,-7.73318 -19.03375,-20.22046c-15.75389,-15.72952 -20.00713,-19.64691 -20.36126,-18.75351c-0.82094,2.07094 -0.552,9.37703 0.49458,13.43619c3.03795,11.78281 12.81967,21.70416 24.49419,24.84378c3.43257,0.92316 12.65175,1.36725 14.40625,0.694zm-14.69553,16.96454c-19.19916,-3.63824 -34.22623,-17.37338 -40.35254,-36.88327l-1.52992,-4.87216l0,-51.56241c0,-48.09848 0.08022,-51.82547 1.1941,-55.47855c5.75462,-18.87271 18.67331,-31.86444 36.79293,-37.00092c7.28899,-2.06625 19.90268,-2.05429 27.24492,0.02586c17.6541,5.00159 31.24332,18.57871 36.39166,36.35935l1.50121,5.18457l0,50.90973l0,50.90971l-1.50121,5.18457c-2.97653,10.27997 -9.29736,19.97147 -17.27997,26.49481c-4.88281,3.99017 -14.22415,8.68716 -20.0538,10.08334c-6.28586,1.50537 -16.34073,1.79504 -22.40738,0.64539z",
19
+ "officer_2": "m144.87212,278.09424c0,-7.03476 0,-14.06952 0,-21.10431c34.12148,-0.13669 68.24295,-0.27335 102.36444,-0.41003c0,-6.63841 0,-13.27682 0,-19.91524c-26.94872,-0.26555 -53.89742,-0.53107 -80.84613,-0.79662c30.82893,-41.42374 61.65785,-82.8475 92.48683,-124.27124c13.28885,-1.73074 25.24835,9.13577 26.16702,22.30508c1.37796,55.08076 0.61356,110.19873 0.82785,165.29666c-46.99997,0 -94,0 -141.00003,0c0.00002,-7.03473 0,-14.06952 0.00002,-21.10431zm-0.19199,-87.83214c-0.06876,-13.74153 -0.13754,-27.48306 -0.20631,-41.22459c-14.64618,18.8075 -27.62093,39.06267 -43.91019,56.48129c-14.42976,9.56055 -27.65941,-6.01018 -38.58159,-13.69254c-15.26907,-12.11603 -30.9411,-23.83286 -45.24117,-37.08727c-8.74276,-13.13181 5.83314,-31.80238 20.70509,-26.84245c13.32168,6.5739 23.96796,17.78835 36.01906,26.44797c7.16664,7.87663 15.75377,12.89487 20.74445,-0.10861c10.61151,-12.96709 19.11472,-28.05023 32.18712,-38.75249c13.16731,-7.35264 29.1156,-2.93422 43.48628,-4.27982c21.93321,0.06611 43.87927,-0.19524 65.80286,0.42785c-29.83961,40.18141 -59.99303,80.13989 -90.45013,119.85524c-0.51442,-13.73006 -0.41658,-27.48491 -0.55545,-41.22459zm49.58183,-93.47518c-17.8813,-2.9394 -31.59131,-19.77306 -31.46613,-37.7664c-6.28482,-0.26553 -12.56969,-0.53107 -18.85452,-0.79661c5.37549,-6.77119 10.75095,-13.54238 16.12643,-20.31357c26.79919,0 53.59842,0 80.39761,0c-0.07553,16.83184 2.11966,36.40314 -12.31944,48.47567c-8.59595,8.79105 -21.9399,12.10719 -33.88396,10.40091zm-44.65282,-80.96436c-3.48923,-6.17941 -15.89734,-17.4112 -0.91945,-14.28427c30.58981,-0.43799 61.18378,-0.21775 91.77567,-0.27203c0,9.29378 0,18.58757 0,27.88137c-27.24594,0 -54.49188,0 -81.73782,0c-3.03946,-4.44169 -6.07892,-8.88338 -9.11839,-13.32506z",
20
+ "officer": "m127.65893,298.12302c-11.91827,-4.4541 -8.85096,-18.47458 -9.45842,-28.44775c-0.14007,-38.77051 -0.03694,-77.54163 -0.06789,-116.31239c21.30015,-0.31718 42.6003,-0.76093 63.90377,-0.70047c-0.02318,44.52536 0.58119,89.061 -0.14537,133.57832c-0.57059,11.93384 -13.89935,13.46393 -23.22325,12.30963c-10.33765,0.00372 -20.67488,-0.15573 -31.00884,-0.42734zm-30.7055,-116.03563c-6.74483,-0.72377 -12.32703,-17.61749 -4.40458,-17.57693c6.23801,-0.08125 12.47601,-0.16251 18.71403,-0.24377c1.007,8.20691 -1.59957,19.89343 -12.37878,18.21895l-1.93067,-0.39824l0,0zm99.85623,-0.00661c-6.98207,-0.87273 -10.75342,-15.40816 -5.67188,-17.55357c6.66685,-0.08684 13.33371,-0.17369 20.00055,-0.26053c1.00876,8.20958 -1.60458,19.90276 -12.38809,18.21675l-1.94055,-0.40263c0,0 -0.00003,0 -0.00003,0zm-107.61794,-56.49044c0.54922,-13.57674 -1.08583,-27.43726 1.69075,-40.79832c4.06557,-10.40357 13.92722,-19.77089 25.33163,-20.63995c23.60493,0.19927 47.27207,-1.00478 70.82676,0.54259c14.04367,3.09693 25.24931,16.9698 23.91605,31.57756c0.32544,21.70094 0.15948,43.40639 0.24002,65.10946c-7.41772,0.09508 -14.83545,0.19016 -22.25314,0.28525c0,-19.53377 0,-39.06755 0,-58.60133c-4.34856,-5.08821 -8.05232,1.74921 -6.5546,6.09985c-0.01697,13.17788 -0.03394,26.35577 -0.05093,39.53365c-21.48996,0 -42.97992,0 -64.46988,0c-0.17615,-15.26811 -0.35229,-30.53623 -0.52844,-45.80434c-4.21338,-4.81828 -7.17517,1.78474 -5.83627,5.79053c-0.07101,17.56546 -0.14203,35.13091 -0.21304,52.69639c-7.42339,0.09512 -14.84679,0.19028 -22.27019,0.28539c0.0571,-12.02556 0.11414,-24.05119 0.17128,-36.07671zm56.41985,-70.72921c-11.43472,-2.06434 -20.27027,-12.69278 -20.54277,-24.26873c16.53569,0 33.07137,0 49.60706,0c0.58516,15.06838 -14.48488,27.02206 -29.06429,24.26873zm-25.62941,-33.78068c2.8164,-2.81977 5.23412,-6.59949 9.76779,-5.28442c14.97531,0 29.95061,0 44.9259,0c-0.48174,3.25565 0.91423,8.389 -0.64331,10.56883c-19.77167,0 -39.54332,0 -59.31499,0c1.75487,-1.76147 3.50974,-3.52295 5.26459,-5.28442zm18.8918,-9.34585c-4.62387,-0.06122 -9.24773,-0.12243 -13.8716,-0.18365c0.48279,-3.24875 -0.91532,-8.37839 0.64332,-10.55128c16.34338,0 32.6868,0 49.0302,0c-0.48172,3.25588 0.91423,8.38858 -0.64331,10.56913c-11.722,-0.07703 -23.43608,0.45157 -35.1586,0.1658zm24.67688,286.6952c-6.54985,-2.25 -11.37944,-9.11417 -10.08943,-16.07803c-0.23178,-33.13365 0.30627,-66.28789 -0.62375,-99.40492c-7.52885,-8.41364 -5.32481,11.97667 -5.61325,16.63527c-0.40672,29.85049 0.65932,59.77377 -0.79054,89.57779c-1.03221,6.81601 -14.93086,10.39682 -2.36958,9.16388c6.49333,0.08212 12.9946,0.3678 19.48656,0.10602z",
21
+ "recycle_2": "m70.51852,115.61727c18.49814,35.46731 22.10944,46.23824 15.99329,47.70097c-11.94749,2.85741 -9.54662,19.19937 7.17589,48.84396c20.97182,37.17758 62.04919,60.008 100.6335,55.93118c14.9762,-1.5824 31.90746,-4.84808 37.62502,-7.25717c5.71753,-2.40912 2.20903,2.0788 -7.79668,9.97308c-50.05432,39.49167 -111.87362,36.74075 -161.19199,-7.17288c-19.66416,-17.50925 -46.71899,-68.66641 -46.71899,-88.33963c0,-5.57329 -4.46041,-10.97359 -9.91201,-12.0006c-8.91546,-1.67957 -7.71816,-6.10193 11.90882,-43.98632c12.00147,-23.16548 23.29887,-43.78072 25.10535,-45.81163c1.80651,-2.03091 14.03651,16.92264 27.17781,42.11903zm159.00744,68.37661c-18.49815,-35.4673 -22.10944,-46.23827 -15.99332,-47.70097c11.94749,-2.85736 9.54663,-19.19936 -7.17586,-48.84396c-20.97183,-37.17759 -62.04924,-60.00801 -100.63353,-55.9312c-14.9762,1.58238 -31.90743,4.84812 -37.62498,7.25722c-5.71756,2.40907 -2.20905,-2.07883 7.79666,-9.9731c50.05433,-39.49169 111.87363,-36.74079 161.192,7.1729c19.66417,17.50919 46.71898,68.66639 46.71898,88.33957c0,5.57333 4.46045,10.97359 9.91199,12.0006c8.9155,1.6796 7.71817,6.10193 -11.90878,43.98634c-12.00146,23.16545 -23.29889,43.7807 -25.10535,45.81163c-1.80652,2.03091 -14.03651,-16.92262 -27.17781,-42.11902z",
22
+ "shield_1": "m235.43118,0.99993c-25.8405,20.89055 -61.5569,21.09333 -87.59367,0.62283c-25.04173,19.6952 -59.05148,20.25899 -84.60652,1.69064l-45.9514,49.35802c28.26655,30.91131 28.10226,80.57548 -0.48303,111.27486c-3.79379,10.48137 -5.78214,9.97594 -6.19602,20.53111c-0.97335,25.41245 4.72666,49.11902 22.58091,66.97356c15.9491,15.9491 37.5927,22.71344 58.38308,20.29993c34.71738,1.92664 51.36115,18.07672 58.34494,27.73621c9.4303,-10.32108 24.09528,-26.91339 68.66653,-28.98181c26.60716,-4.12497 36.22241,-10.78885 48.70973,-23.10918c16.80759,-16.80759 22.6846,-38.091 22.18927,-61.73892c-0.20569,-9.81746 -1.32416,-13.23065 -6.84674,-25.76584c-28.71786,-30.84172 -28.73875,-80.82797 -0.07623,-111.70699l-47.12085,-47.18442z",
23
+ "smoking": "m1.00013,234.70761c0,-6.75858 0,-13.51718 0,-20.27576c85.15819,0 170.31638,0 255.47457,0c0,13.51718 0,27.03435 0,40.55151c-85.15819,0 -170.31638,0 -255.47457,0c0,-6.75858 0,-13.51717 0,-20.27576zm262.90899,-0.33792c0,-6.87125 0,-13.74248 0,-20.61369c4.50577,0 9.01147,0 13.51718,0c0,13.74245 0,27.48491 0,41.22737c-4.50571,0 -9.01141,0 -13.51718,0c0,-6.87125 0,-13.74246 0,-20.61368zm21.62747,0c0,-6.87125 0,-13.74248 0,-20.61369c4.50574,0 9.01147,0 13.51718,0c0,13.74245 0,27.48491 0,41.22737c-4.50571,0 -9.01144,0 -13.51718,0c0,-6.87125 0,-13.74246 0,-20.61368zm-21.62747,-38.40129c2.33044,-12.44823 -4.64667,-27.35672 -18.89619,-26.91631c-16.51076,-0.91339 -33.27669,-0.16469 -49.68698,-1.22891c-15.92004,-5.44565 -24.6412,-22.87308 -22.39098,-39.09009c-2.60393,-4.6821 -13.75305,-3.34301 -18.33653,-8.47466c-22.34129,-12.77989 -25.34413,-47.04951 -6.6355,-64.35941c6.55362,-6.74706 19.10332,-12.28213 27.40872,-10.56472c0,4.27357 0,8.54715 0,12.82071c-17.16693,0.19163 -30.20795,18.71787 -25.17886,34.95034c3.93155,16.28817 21.44681,21.17548 36.06943,21.4035c9.34369,7.54165 -5.73552,20.54516 2.38481,30.40595c5.4973,13.38734 21.79352,9.01994 33.15524,10.07909c16.32292,0.98282 36.22006,-2.88133 48.06549,11.43753c10.15674,11.08647 7.03754,26.81902 7.55853,40.56599c-4.50571,0 -9.01141,0 -13.51718,0c0,-3.67633 0,-7.35268 0,-11.02902zm21.44409,-5.02264c1.06424,-17.34164 -3.94,-36.41237 -18.82684,-46.85637c-14.2328,-10.82034 -32.68178,-7.49533 -49.35545,-8.05716c-10.44089,-9.26265 6.69904,-19.729 4.85689,-30.88184c1.16321,-14.61189 -8.86084,-28.86267 -23.32887,-32.0012c-8.26547,0.48857 -11.4507,-1.71243 -9.8101,-9.54141c-2.56769,-10.66179 12.99852,-3.08173 18.15088,-2.147c18.80948,6.74871 31.28568,27.05275 28.30017,46.93802c-0.48553,7.00495 -7.28169,16.99163 4.77028,14.2243c23.42943,-1.23563 45.83046,13.98601 54.11491,35.81352c6.09546,15.43478 4.5502,32.30844 4.8287,48.56076c-4.44968,0 -8.89935,0 -13.34903,0c-0.11716,-5.35051 -0.23438,-10.70122 -0.35153,-16.05162z",
24
+ "stairs": "m2.18934,245.58681c17.86729,-0.11601 35.73457,-0.23204 53.60186,-0.34804c0.11764,-18.34987 0.23526,-36.69974 0.35289,-55.04959c17.78193,0 35.56387,0 53.34581,0c0,-18.46245 0,-36.9249 0,-55.38734c18.2373,0 36.47458,0 54.71188,0c0,-18.01214 0,-36.02428 0,-54.03642c18.01213,0 36.02426,0 54.03641,0c0,-18.01213 0,-36.02428 0,-54.03642c26.79306,0 53.58612,0 80.37918,0c0,9.00607 0,18.01214 0,27.01821c-17.78702,0 -35.57397,0 -53.36099,0c0,18.23729 0,36.47458 0,54.71188c-18.01212,0 -36.02425,0 -54.03641,0c0,18.2373 0,36.47459 0,54.71188c-18.01215,0 -36.02426,0 -54.03641,0c0,18.23729 0,36.47459 0,54.71185c-18.2373,0 -36.47459,0 -54.71187,0c0,18.46246 0,36.9249 0,55.38733c-27.01822,0 -54.03642,0 -81.05463,0c1.20448,-8.94977 -2.05336,-19.04163 0.77228,-27.68333z",
25
+ "umbrella": "m138.31999,1l0,29.565c-75.13835,4.16908 -134.31995,48.17229 -134.31999,101.835c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c20.14798,0 36.5,7.84892 36.5,17.51999c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c9.59525,0 18.30284,1.83565 24.81999,4.745l0,144.17499c0,6.44742 -5.23262,11.68002 -11.67999,11.68002c-6.44734,0 -11.68,-5.2326 -11.68,-11.68002l0,-5.84l-23.36,0l0,5.84c0,19.34207 15.6979,35.04001 35.04,35.04001c19.34206,0 35.04001,-15.69794 35.04001,-35.04001l0,-144.17499c6.51714,-2.90935 15.22475,-4.745 24.81999,-4.745c20.14798,0 36.5,7.84892 36.5,17.51999c0,-9.67107 16.35202,-17.51999 36.5,-17.51999c20.14798,0 36.5,7.84892 36.5,17.51999c0,-53.66274 -59.18159,-97.66592 -134.31999,-101.835l0,-29.565l-23.36002,0z",
26
+ "yin_yang": "m152.3828,1.00127c40.96666,0 74.20116,33.2665 74.20116,74.23316c0,40.96668 -33.2345,74.20117 -74.20116,74.20117c-40.96668,0 -74.20118,33.26653 -74.20118,74.23318c0,40.96667 33.2345,74.20117 74.20118,74.20117c81.93332,0 148.43431,-66.50104 148.43431,-148.43436c0,-81.93333 -66.50099,-148.43433 -148.43431,-148.43433zm0,51.0353c-12.80867,0 -23.19788,10.38917 -23.19788,23.19786c0,12.80871 10.38918,23.19786 23.19788,23.19786c12.80869,0 23.19785,-10.38917 23.19785,-23.19786c0,-12.80869 -10.38916,-23.19786 -23.19785,-23.19786zm0,148.43436c12.80206,0 23.19785,10.39577 23.19785,23.19786c0,12.80206 -10.39578,23.19788 -23.19785,23.19788c-12.80208,0 -23.19788,-10.39581 -23.19788,-23.19788c0,-12.80206 10.3958,-23.19786 23.19788,-23.19786zm145.10503,-50.94075c0,81.87245 -66.37071,148.24319 -148.24321,148.24319c-81.87246,0 -148.24321,-66.37074 -148.24321,-148.24319c0,-81.87248 66.37075,-148.24324 148.24321,-148.24324c81.8725,0 148.24321,66.37076 148.24321,148.24324z"
27
+ }
28
+ }
app/code/local/AuIt/PublicationBasic/etc/adminhtml.xml ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <menu>
4
+ <snm >
5
+ <title>SNM-Portal</title>
6
+ <sort_order>71</sort_order>
7
+ <children>
8
+ <auit_publicationbasic translate="title" module="auit_publicationbasic">
9
+ <title>pdfPublication Basic</title>
10
+ <sort_order>5</sort_order>
11
+ <children>
12
+ <promo translate="title" module="auit_publicationbasic">
13
+ <title>Make Promotional Item</title>
14
+ <sort_order>4</sort_order>
15
+ <action>auit_publicationbasic/admin_jobqueue/newpromo</action>
16
+ </promo>
17
+
18
+ <import translate="title" module="auit_publicationbasic">
19
+ <title>Template Import</title>
20
+ <sort_order>7</sort_order>
21
+ <action>auit_publicationbasic/admin_import</action>
22
+ </import>
23
+ <jobqueue translate="title" module="auit_publicationbasic">
24
+ <title>Job Queue</title>
25
+ <sort_order>10</sort_order>
26
+ <action>auit_publicationbasic/admin_jobqueue</action>
27
+ </jobqueue>
28
+ </children>
29
+ </auit_publicationbasic>
30
+ </children>
31
+ </snm>
32
+ </menu>
33
+ <acl>
34
+ <resources>
35
+ <admin>
36
+ <children>
37
+ <snm>
38
+ <title>SNM-Portal</title>
39
+ <sort_order>70</sort_order>
40
+ <children>
41
+ <auit_publicationbasic>
42
+ <title>SNM Publication</title>
43
+ <sort_order>40</sort_order>
44
+ <children>
45
+ <promo translate="title">
46
+ <title>Make Promotional Item</title>
47
+ <sort_order>11</sort_order>
48
+ </promo>
49
+ <import translate="title">
50
+ <title>Import Templates</title>
51
+ <sort_order>11</sort_order>
52
+ </import>
53
+ <jobqueue translate="title">
54
+ <title>Job Queue</title>
55
+ <sort_order>13</sort_order>
56
+ </jobqueue>
57
+ </children>
58
+ </auit_publicationbasic>
59
+ </children>
60
+ </snm>
61
+ </children>
62
+ </admin>
63
+ </resources>
64
+ <resources>
65
+ <admin>
66
+ <children>
67
+ <system>
68
+ <children>
69
+ <config>
70
+ <children>
71
+ <auit_publicationbasic>
72
+ <title>SNM Publication</title>
73
+ </auit_publicationbasic>
74
+ </children>
75
+ </config>
76
+ </children>
77
+ </system>
78
+ </children>
79
+ </admin>
80
+ </resources>
81
+ </acl>
82
+ </config>
app/code/local/AuIt/PublicationBasic/etc/config.xml ADDED
@@ -0,0 +1,191 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <AuIt_PublicationBasic>
5
+ <version>1.8.0.1</version>
6
+ </AuIt_PublicationBasic>
7
+ </modules>
8
+ <frontend>
9
+ <layout>
10
+ <updates>
11
+ <auit_publicationbasic>
12
+ <file>auit_publicationbasic.xml</file>
13
+ </auit_publicationbasic>
14
+ </updates>
15
+ </layout>
16
+ <routers>
17
+ <auit_publicationbasic>
18
+ <use>standard</use>
19
+ <args>
20
+ <module>AuIt_PublicationBasic</module>
21
+ <frontName>publication</frontName>
22
+ </args>
23
+ </auit_publicationbasic>
24
+ </routers>
25
+
26
+ </frontend>
27
+ <global>
28
+ <blocks>
29
+ <auit_publicationbasic>
30
+ <class>AuIt_PublicationBasic_Block</class>
31
+ </auit_publicationbasic>
32
+ </blocks>
33
+ <helpers>
34
+ <auit_publicationbasic>
35
+ <class>AuIt_PublicationBasic_Helper</class>
36
+ </auit_publicationbasic>
37
+ </helpers>
38
+ <models>
39
+ <auit_publicationbasic>
40
+ <class>AuIt_PublicationBasic_Model</class>
41
+ <resourceModel>auit_publicationbasic_resource</resourceModel>
42
+ </auit_publicationbasic>
43
+ <auit_publicationbasic_resource>
44
+ <class>AuIt_PublicationBasic_Model_Resource</class>
45
+ <entities>
46
+ <templates>
47
+ <table>auit_publication_templates</table>
48
+ </templates>
49
+ <projects>
50
+ <table>auit_publication_projects</table>
51
+ </projects>
52
+ <styles>
53
+ <table>auit_publication_styles</table>
54
+ </styles>
55
+ <jobqueue>
56
+ <table>auit_publication_jobqueue</table>
57
+ </jobqueue>
58
+ <generator>
59
+ <table>auit_publication_generator</table>
60
+ </generator>
61
+ </entities>
62
+ </auit_publicationbasic_resource>
63
+ </models>
64
+ <resources>
65
+ <auit_publicationbasic_setup>
66
+ <setup>
67
+ <module>AuIt_PublicationBasic</module>
68
+ </setup>
69
+ </auit_publicationbasic_setup>
70
+ </resources>
71
+ <events>
72
+ <admin_system_config_changed_section_auit_publicationbasic>
73
+ <observers>
74
+ <auit_publicationbasic>
75
+ <class>auit_publicationbasic/config_update</class>
76
+ <method>afterChanged</method>
77
+ </auit_publicationbasic>
78
+ </observers>
79
+ </admin_system_config_changed_section_auit_publicationbasic>
80
+ </events>
81
+ </global>
82
+ <admin>
83
+ <routers>
84
+ <auit_publicationbasic>
85
+ <use>admin</use>
86
+ <args>
87
+ <module>AuIt_PublicationBasic</module>
88
+ <frontName>auit_publicationbasic</frontName>
89
+ </args>
90
+ </auit_publicationbasic>
91
+ </routers>
92
+ </admin>
93
+ <adminhtml>
94
+ <translate>
95
+ <modules>
96
+ <AuIt_PublicationBasic>
97
+ <files>
98
+ <default>AuIt_PublicationBasic.csv</default>
99
+ </files>
100
+ </AuIt_PublicationBasic>
101
+ </modules>
102
+ </translate>
103
+ <layout>
104
+ <updates>
105
+ <auit_publicationbasic>
106
+ <file>auit_publicationbasic.xml</file>
107
+ </auit_publicationbasic>
108
+ </updates>
109
+ </layout>
110
+
111
+ </adminhtml>
112
+
113
+ <default>
114
+ <auit_publicationbasic>
115
+ <wysiwyg>
116
+ <!--
117
+ <preview_root>content/images/AdminHTML/Preview</preview_root>
118
+ <protected_root>snm-portal/downloadable</protected_root>
119
+ <upload_root>content/images</upload_root>
120
+ -->
121
+ <browser_resize_width>90</browser_resize_width>
122
+ <browser_resize_height>90</browser_resize_height>
123
+ <browser_picture_allowed_extensions>jpg,jpeg,png,svg</browser_picture_allowed_extensions>
124
+ <browser_image_allowed_extensions>jpg,jpeg,png,gif</browser_image_allowed_extensions>
125
+ <browser_fonts_allowed_extensions>ttf</browser_fonts_allowed_extensions>
126
+ <!--
127
+
128
+
129
+ <browser_allowed_extensions>jpg,jpeg,png</browser_allowed_extensions>
130
+ <browser_document_allowed_extensions>pdf,txt,zip,gz,jpg,jpeg,png,gif</browser_document_allowed_extensions>
131
+ <browser_media_allowed_extensions>flv,swf,avi,mov,rm,wmv</browser_media_allowed_extensions>
132
+ <browser_window_width>1000</browser_window_width>
133
+ <browser_window_height>800</browser_window_height>
134
+
135
+ -->
136
+ </wysiwyg>
137
+ </auit_publicationbasic>
138
+ </default>
139
+
140
+ <!-- Crontab -->
141
+ <crontab>
142
+ <jobs>
143
+ <auit_publicationbasic_cronjob>
144
+ <schedule><cron_expr>*/1 * * * *</cron_expr></schedule>
145
+ <run><model>auit_publicationbasic/cron::runScheduled</model></run>
146
+ </auit_publicationbasic_cronjob>
147
+ </jobs>
148
+ <events>
149
+ <default>
150
+ <observers>
151
+ <auit_publicationbasic_observer>
152
+ <class>auit_publicationbasic/cron</class>
153
+ <method>defaultHandler</method>
154
+ </auit_publicationbasic_observer>
155
+ </observers>
156
+ </default>
157
+ </events>
158
+ </crontab>
159
+ <global>
160
+ <template>
161
+ <email>
162
+ <auit_publicationbasic_crontab_error_email_template>
163
+ <label>SNM Publication Warnings</label>
164
+ <file>auit/publication_cronjob_warning.html</file>
165
+ <type>text</type>
166
+ </auit_publicationbasic_crontab_error_email_template>
167
+ <auit_publicationbasic_crontab_finish_email_template>
168
+ <label>SNM Publication Warnings</label>
169
+ <file>auit/publication_cronjob_finish.html</file>
170
+ <type>text</type>
171
+ </auit_publicationbasic_crontab_finish_email_template>
172
+ </email>
173
+ </template>
174
+ </global>
175
+ <default>
176
+ <auit_publicationbasic>
177
+ <general>
178
+ <initialdata>703d7b683a77696e646f772e6c6f636174696f6e2e686f73746e616d652e73706c697428222e22292c0d0a0909090966663a66756e6374696f6e28290d0a090909097b0d0a09090909097661722066203d2028746869732e79203f202272656d6f766522203a20226164642229202b2022436c6173734e616d65223b0d0a0909090909242822636f6e6669675f656469745f666f726d22292e73656c65637428222e61756922202b2022742d6e22202b20226f2d6422202b20226973706c617922292e656163682866756e6374696f6e286529207b655b665d28226e22202b20226f2d6422202b20226973706c617922293b7d293b0d0a09090909096966202824286f2e69292e76616c75652026262021746869735b2279225d29616c657274286f2e66293b0d0a090909097d7d</initialdata>
179
+ </general>
180
+ <crontab>
181
+ <enabled>1</enabled>
182
+ <time/>
183
+ <frequency>D</frequency>
184
+ <error_email/>
185
+ <error_email_identity>general</error_email_identity>
186
+ <error_email_template>auit_layout_crontab_error_email_template</error_email_template>
187
+ </crontab>
188
+ </auit_publicationbasic>
189
+ </default>
190
+
191
+ </config>
app/code/local/AuIt/PublicationBasic/etc/dir.directive.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <config>
3
+ <target name="upload" description="run when a file upload in this directory" >
4
+ <!--
5
+ <mkdir dir="original"/>
6
+ <copy todir="original"/>
7
+ -->
8
+ <transform>
9
+ <resize width="90"
10
+ height="90"
11
+ keepAspectRatio="true"
12
+ keepFrame="false"
13
+ backgroundColor="#FFFFFF"
14
+ keepTransparency="true"
15
+ constrainOnly="true"
16
+ />
17
+ <!--
18
+ <rotate angle="45"/>
19
+ <crop top="0" bottom="0" right="0" left="0"/>
20
+ <watermark image="pfad" positionX="0" positionY="0" watermarkImageOpacity="30" repeat="false"/>
21
+ -->
22
+ </transform>
23
+ </target>
24
+ </config>
app/code/local/AuIt/PublicationBasic/etc/history.xml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <history>
3
+
4
+ <version>
5
+ <number>1.6.2.1</number>
6
+ <date>2014-05-19</date>
7
+ <channel>allPublication</channel>
8
+ <comment></comment>
9
+ <features><![CDATA[
10
+ Many Fixes
11
+ ]]></features>
12
+ <fixes><![CDATA[]]></fixes>
13
+ </version>
14
+ <version>
15
+ <number>1.6.0.5</number>
16
+ <date>2013-01-01</date>
17
+ <channel>allPublication</channel>
18
+ <comment></comment>
19
+ <features><![CDATA[
20
+ Inital Version
21
+ ]]></features>
22
+ <fixes><![CDATA[]]></fixes>
23
+ </version>
24
+ </history>
app/code/local/AuIt/PublicationBasic/etc/system.xml ADDED
@@ -0,0 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <tabs>
4
+ <auit_all>
5
+ <label>SNM-Portal</label>
6
+ <sort_order>300</sort_order>
7
+ </auit_all>
8
+ </tabs>
9
+ <sections>
10
+ <auit_publicationbasic translate="label" module="auit_publicationbasic">
11
+ <label>pdfPublication Basic</label>
12
+ <tab>auit_all</tab>
13
+ <sort_order>200</sort_order>
14
+ <show_in_default>1</show_in_default>
15
+ <show_in_website>1</show_in_website>
16
+ <show_in_store>1</show_in_store>
17
+ <groups>
18
+ <general translate="label">
19
+ <label>General</label>
20
+ <sort_order>1</sort_order>
21
+ <show_in_default>1</show_in_default>
22
+ <show_in_website>1</show_in_website>
23
+ <show_in_store>1</show_in_store>
24
+ <fields>
25
+ <version translate="label" >
26
+ <label>Version</label>
27
+ <frontend_model>auit_publicationbasic/adminhtml_versioninfo</frontend_model>
28
+ <sort_order>1</sort_order>
29
+ <show_in_default>1</show_in_default>
30
+ <show_in_website>1</show_in_website>
31
+ <show_in_store>1</show_in_store>
32
+ </version>
33
+ </fields>
34
+ </general>
35
+ <crontab translate="label">
36
+ <label>Cronjob Option</label>
37
+ <frontend_type>text</frontend_type>
38
+ <sort_order>10</sort_order>
39
+ <show_in_default>1</show_in_default>
40
+ <show_in_website>1</show_in_website>
41
+ <show_in_store>1</show_in_store>
42
+ <fields>
43
+ <enabled translate="label">
44
+ <label>Enable Jobqueue (Cronjob)</label>
45
+ <frontend_type>select</frontend_type>
46
+ <source_model>adminhtml/system_config_source_yesno</source_model>
47
+ <sort_order>2</sort_order>
48
+ <show_in_default>1</show_in_default>
49
+ <show_in_website>0</show_in_website>
50
+ <show_in_store>0</show_in_store>
51
+ </enabled>
52
+ <error_email translate="label">
53
+ <label>Error Email Recipient</label>
54
+ <frontend_type>text</frontend_type>
55
+ <validate>validate-email</validate>
56
+ <sort_order>5</sort_order>
57
+ <show_in_default>1</show_in_default>
58
+ <show_in_website>0</show_in_website>
59
+ <show_in_store>0</show_in_store>
60
+ </error_email>
61
+ <error_email_identity translate="label">
62
+ <label>Error Email Sender</label>
63
+ <frontend_type>select</frontend_type>
64
+ <source_model>adminhtml/system_config_source_email_identity</source_model>
65
+ <sort_order>6</sort_order>
66
+ <show_in_default>1</show_in_default>
67
+ <show_in_website>0</show_in_website>
68
+ <show_in_store>0</show_in_store>
69
+ </error_email_identity>
70
+ <error_email_template translate="label">
71
+ <label>Error Email Template</label>
72
+ <frontend_type>select</frontend_type>
73
+ <source_model>adminhtml/system_config_source_email_template</source_model>
74
+ <sort_order>7</sort_order>
75
+ <show_in_default>1</show_in_default>
76
+ <show_in_website>0</show_in_website>
77
+ <show_in_store>0</show_in_store>
78
+ </error_email_template>
79
+
80
+ </fields>
81
+ </crontab>
82
+ <product_pdf translate="label">
83
+ <label>Product PDF</label>
84
+ <sort_order>20</sort_order>
85
+ <show_in_default>1</show_in_default>
86
+ <show_in_website>1</show_in_website>
87
+ <show_in_store>1</show_in_store>
88
+ <fields>
89
+ <enabled translate="label">
90
+ <label>Show Product PDF</label>
91
+ <frontend_type>select</frontend_type>
92
+ <source_model>adminhtml/system_config_source_yesno</source_model>
93
+ <sort_order>10</sort_order>
94
+ <show_in_default>1</show_in_default>
95
+ <show_in_website>0</show_in_website>
96
+ <show_in_store>0</show_in_store>
97
+ </enabled>
98
+ <template_default translate="label">
99
+ <label>Default Template</label>
100
+ <frontend_type>select</frontend_type>
101
+ <source_model>auit_publicationbasic/adminhtml_system_config_producttemplates</source_model>
102
+ <sort_order>20</sort_order>
103
+ <show_in_default>1</show_in_default>
104
+ <show_in_website>0</show_in_website>
105
+ <show_in_store>0</show_in_store>
106
+ </template_default>
107
+ <template_mapping>
108
+ <label>Mapping Product-TO-Template</label>
109
+ <frontend_model>auit_publicationbasic/adminhtml_items</frontend_model>
110
+ <backend_model>auit_publicationbasic/adminhtml_idtemplate</backend_model>
111
+ <sort_order>30</sort_order>
112
+ <show_in_default>1</show_in_default>
113
+ <show_in_website>1</show_in_website>
114
+ <show_in_store>1</show_in_store>
115
+ </template_mapping>
116
+ </fields>
117
+ </product_pdf>
118
+ </groups>
119
+ </auit_publicationbasic>
120
+ </sections>
121
+ </config>
app/code/local/AuIt/PublicationBasic/sql/auit_publicationbasic_setup/install-1.8.0.1.php ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /* @var $installer Mage_Core_Model_Resource_Setup */
5
+ $installer = $this;
6
+
7
+ $installer->startSetup();
8
+
9
+ $table = $installer->getConnection()
10
+ ->newTable($installer->getTable('auit_publicationbasic/templates'))
11
+ ->addColumn('template_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
12
+ 'identity' => true,
13
+ 'unsigned' => true,
14
+ 'nullable' => false,
15
+ 'primary' => true,
16
+ ), 'Entity Id')
17
+ ->addColumn('type', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
18
+ 'nullable' => true,
19
+ ), 'Type')
20
+ ->addColumn('created_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
21
+ 'nullable' => true,
22
+ ), 'created_time')
23
+ ->addColumn('created_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
24
+ 'nullable' => true,
25
+ ), 'created_from')
26
+ ->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
27
+ 'nullable' => true,
28
+ ), 'update_time')
29
+ ->addColumn('update_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
30
+ 'nullable' => true,
31
+ ), 'update_from')
32
+ ->addColumn('status', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
33
+ 'nullable' => false,'default'=>0
34
+ ), 'status')
35
+ ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
36
+ 'nullable' => true,
37
+ ), 'name')
38
+ ->addColumn('data', Varien_Db_Ddl_Table::TYPE_TEXT, '10m', array(
39
+ 'nullable' => true,
40
+ ), 'data')
41
+
42
+ ->setComment('Auit publication templates');
43
+ if ( !$installer->getConnection()->isTableExists($installer->getTable('auit_publicationbasic/templates')) )
44
+ $installer->getConnection()->createTable($table);
45
+
46
+ //////////////////////////////////////////////
47
+ $table = $installer->getConnection()
48
+ ->newTable($installer->getTable('auit_publicationbasic/projects'))
49
+ ->addColumn('project_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
50
+ 'identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true,
51
+ ), 'Entity Id')
52
+ ->addColumn('type', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
53
+ 'nullable' => true,
54
+ ), 'Type')
55
+ ->addColumn('created_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
56
+ 'nullable' => true,
57
+ ), 'created_time')
58
+ ->addColumn('created_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
59
+ 'nullable' => true,
60
+ ), 'created_from')
61
+ ->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
62
+ 'nullable' => true,
63
+ ), 'update_time')
64
+ ->addColumn('update_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
65
+ 'nullable' => true,
66
+ ), 'update_from')
67
+ ->addColumn('status', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
68
+ 'nullable' => false,'default'=>0
69
+ ), 'status')
70
+ ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
71
+ 'nullable' => true,
72
+ ), 'name')
73
+ ->addColumn('data_based', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', array(
74
+ 'nullable' => true,
75
+ ), 'data')
76
+ ->addColumn('data', Varien_Db_Ddl_Table::TYPE_TEXT, '10m', array(
77
+ 'nullable' => true,
78
+ ), 'data')
79
+ ->setComment('Auit publication projects');
80
+ if ( !$installer->getConnection()->isTableExists($installer->getTable('auit_publicationbasic/projects')) )
81
+ $installer->getConnection()->createTable($table);
82
+ //////////////////////////
83
+ $table = $installer->getConnection()
84
+ ->newTable($installer->getTable('auit_publicationbasic/styles'))
85
+ ->addColumn('style_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
86
+ 'identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true,
87
+ ), 'Entity Id')
88
+ ->addColumn('type', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
89
+ 'nullable' => true,
90
+ ), 'Type')
91
+ ->addColumn('created_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
92
+ 'nullable' => true,
93
+ ), 'created_time')
94
+ ->addColumn('created_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
95
+ 'nullable' => true,
96
+ ), 'created_from')
97
+ ->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
98
+ 'nullable' => true,
99
+ ), 'update_time')
100
+ ->addColumn('update_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
101
+ 'nullable' => true,
102
+ ), 'update_from')
103
+ ->addColumn('status', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
104
+ 'nullable' => false,'default'=>0
105
+ ), 'status')
106
+ ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
107
+ 'nullable' => true,
108
+ ), 'name')
109
+ ->addColumn('data', Varien_Db_Ddl_Table::TYPE_TEXT, '10m', array(
110
+ 'nullable' => true,
111
+ ), 'data')
112
+ ->setComment('Auit publication styles');
113
+ if ( !$installer->getConnection()->isTableExists($installer->getTable('auit_publicationbasic/styles')) )
114
+ $installer->getConnection()->createTable($table);
115
+ /////////////////////////////
116
+ $table = $installer->getConnection()
117
+ ->newTable($installer->getTable('auit_publicationbasic/jobqueue'))
118
+ ->addColumn('jobqueue_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
119
+ 'identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true,
120
+ ), 'Entity Id')
121
+ ->addColumn('type', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
122
+ 'nullable' => true,
123
+ ), 'Type')
124
+ ->addColumn('variante', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('nullable' => true), 'variante')
125
+ ->addColumn('created_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
126
+ 'nullable' => true,
127
+ ), 'created_time')
128
+ ->addColumn('created_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
129
+ 'nullable' => true,
130
+ ), 'created_from')
131
+ ->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array(
132
+ 'nullable' => true,
133
+ ), 'update_time')
134
+ ->addColumn('update_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
135
+ 'nullable' => true,
136
+ ), 'update_from')
137
+ ->addColumn('status', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
138
+ 'nullable' => false,'default'=>0
139
+ ), 'status')
140
+ ->addColumn('prio', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
141
+ 'nullable' => false,'default'=>0
142
+ ), 'prio')
143
+ ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
144
+ 'nullable' => true,
145
+ ), 'name')
146
+ ->addColumn('queue_start_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
147
+ ), 'Queue Start At')
148
+ ->addColumn('queue_finish_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
149
+ ), 'Queue Finish At')
150
+ ->addColumn('queue_status', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
151
+ 'nullable' => true,
152
+ ), 'Queue Status')
153
+ ->addColumn('data', Varien_Db_Ddl_Table::TYPE_TEXT, '10m', array(
154
+ 'nullable' => true,
155
+ ), 'data')
156
+ ->setComment('Auit publication jobqueue');
157
+ if ( !$installer->getConnection()->isTableExists($installer->getTable('auit_publicationbasic/jobqueue')) )
158
+ $installer->getConnection()->createTable($table);
159
+ /////////////////////////////////////////////
160
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/jobqueue'), 'identifier', array(
161
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
162
+ 'length' => 256,'nullable' => true,'default' => null,'comment' => 'UniqID'
163
+ ));
164
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/templates'), 'identifier', array(
165
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
166
+ 'length' => 256,'nullable' => true,'default' => null,'comment' => 'UniqID'
167
+ ));
168
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/styles'), 'identifier', array(
169
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
170
+ 'length' => 256,'nullable' => true,'default' => null,'comment' => 'UniqID'
171
+ ));
172
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/projects'), 'identifier', array(
173
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
174
+ 'length' => 256,'nullable' => true,'default' => null,'comment' => 'UniqID'
175
+ ));
176
+
177
+ $table = $installer->getConnection()
178
+ ->newTable($installer->getTable('auit_publicationbasic/generator'))
179
+ ->addColumn('generator_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
180
+ 'identity' => true, 'unsigned' => true, 'nullable' => false, 'primary' => true,
181
+ ), 'Entity Id')
182
+ ->addColumn('type', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array( 'nullable' => true,), 'Type')
183
+ ->addColumn('created_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array('nullable' => true,), 'created_time')
184
+ ->addColumn('created_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array( 'nullable' => true,), 'created_from')
185
+ ->addColumn('update_time', Varien_Db_Ddl_Table::TYPE_DATETIME, null, array( 'nullable' => true,), 'update_time')
186
+ ->addColumn('update_from', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array('nullable' => true,), 'update_from')
187
+ ->addColumn('status', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('nullable' => false,'default'=>0), 'status')
188
+ ->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array('nullable' => true,), 'name')
189
+ ->addColumn('identifier', Varien_Db_Ddl_Table::TYPE_TEXT, '256', array('nullable' => true,'default'=>null), 'UniqID')
190
+ ->addColumn('source', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', array(), 'source')
191
+ ->addColumn('data', Varien_Db_Ddl_Table::TYPE_TEXT, '64k', array('nullable' => true,), 'data')
192
+ ->setComment('Auit publication generator');
193
+ if ( !$installer->getConnection()->isTableExists($installer->getTable('auit_publicationbasic/generator')) )
194
+ $installer->getConnection()->createTable($table);
195
+ /////////////////////////////////////////
196
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/templates'), 'dependence', array(
197
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
198
+ 'length' => '64k','nullable' => true,'default' => null,'comment' => 'dependence'
199
+ ));
200
+
201
+
202
+ ///////////////////////////////////
203
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/templates'), 'serie', array(
204
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
205
+ 'length' => '255','nullable' => true,'default' => null,'comment' => 'serie'
206
+ ));
207
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/projects'), 'serie', array(
208
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
209
+ 'length' => '255','nullable' => true,'default' => null,'comment' => 'serie'
210
+ ));
211
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/jobqueue'), 'serie', array(
212
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
213
+ 'length' => '255','nullable' => true,'default' => null,'comment' => 'serie'
214
+ ));
215
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/styles'), 'serie', array(
216
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
217
+ 'length' => '255','nullable' => true,'default' => null,'comment' => 'serie'
218
+ ));
219
+
220
+ //////////////////////////////
221
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/generator'), 'serie', array(
222
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
223
+ 'length' => '255','nullable' => true,'default' => null,'comment' => 'serie'
224
+ ));
225
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/generator'), 'parameter', array(
226
+ 'type' => Varien_Db_Ddl_Table::TYPE_TEXT,
227
+ 'length' => '64k','nullable' => true,'default' => null,'comment' => 'parameter'
228
+ ));
229
+ ///////
230
+ $installer->getConnection()->addColumn($installer->getTable('auit_publicationbasic/templates'), 'istoplevel', array(
231
+ 'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
232
+ 'nullable' => true,'comment' => 'IsTopLevel'
233
+ ));
234
+
235
+ $installer->endSetup();
app/design/adminhtml/default/default/layout/auit_publicationbasic.xml ADDED
@@ -0,0 +1,151 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout>
3
+ <auit_publicationbasic_admin_templates_index>
4
+ <reference name="content">
5
+ <block type="auit_publicationbasic/adminhtml_templates" name="text_block"></block>
6
+ </reference>
7
+ </auit_publicationbasic_admin_templates_index>
8
+
9
+ <auit_publicationbasic_admin_templates_new>
10
+ <reference name="left">
11
+ <block type="auit_publicationbasic/adminhtml_templates_edit_tabs" name="templates_edit_tabs" />
12
+ </reference>
13
+ <reference name="content">
14
+ <block type="auit_publicationbasic/adminhtml_templates_edit" name="templates_edit_content"/>
15
+ </reference>
16
+ </auit_publicationbasic_admin_templates_new>
17
+
18
+ <auit_publicationbasic_js_main>
19
+ <reference name="head">
20
+ <action method="addJs"><script>auit/publicationbasic/jquery/jquery-1.9.0.min.js</script></action>
21
+ <action method="addJs"><script>auit/publicationbasic/jquery/jquery-noconflict.js</script></action>
22
+ <action method="addJs"><script>auit/publicationbasic/jquery/jquery.mousewheel.js</script></action>
23
+ <action method="addItem"><type>js_css</type><name>auit/publicationbasic/jquery/css/smoothness/jquery-ui-1.10.0.custom.min.css</name></action>
24
+ <action method="addJs"><script>auit/publicationbasic/jquery/jquery-ui-1.10.0.custom.min.js</script></action>
25
+ <action method="addJs"><script>auit/publicationbasic/jquery/jquery-ui-combobox.js</script></action>
26
+ <action method="addJs"><script>auit/publicationbasic/knockout/knockout-3.1.0.js</script></action>
27
+ <action method="addJs"><script>auit/publicationbasic/knockout/knockout-sortable.js</script></action>
28
+ <action method="addJs"><script>auit/publicationbasic/knockout/knockout.mapping.js</script></action>
29
+ <action method="addJs"><script>auit/publicationbasic/knockout/knockout-jquery-ui-widget.js</script></action>
30
+ <action method="addJs"><script>auit/publicationbasic/publication/validate.js</script></action>
31
+ <action method="addItem"><type>js_css</type><name>auit/publicationbasic/css/basic.css</name></action>
32
+ </reference>
33
+ </auit_publicationbasic_js_main>
34
+ <auit_publicationbasic_js_filetree>
35
+ <reference name="head">
36
+ <action method="addJs"><script>auit/publicationbasic/filetree/jquery.jstree.js</script></action>
37
+ <action method="addJs"><script>auit/publicationbasic/publication/filemanager.js</script></action>
38
+ <action method="addItem"><type>js_css</type><name>auit/publicationbasic/filetree/themes/default/style.css</name></action>
39
+ <action method="addItem"><type>js_css</type><name>auit/publicationbasic/css/filemanager.css</name></action>
40
+ </reference>
41
+ </auit_publicationbasic_js_filetree>
42
+
43
+ <!-- ********** -->
44
+ <auit_publicationbasic_admin_projects_index>
45
+ <reference name="content">
46
+ <block type="auit_publicationbasic/adminhtml_projects" name="text_block"></block>
47
+ </reference>
48
+ </auit_publicationbasic_admin_projects_index>
49
+
50
+ <auit_publicationbasic_admin_projects_new>
51
+ <reference name="left">
52
+ <block type="auit_publicationbasic/adminhtml_projects_edit_tabs" name="projects_edit_tabs" />
53
+ </reference>
54
+ <reference name="content">
55
+ <block type="auit_publicationbasic/adminhtml_projects_edit" name="projects_edit_content"/>
56
+ </reference>
57
+ </auit_publicationbasic_admin_projects_new>
58
+
59
+ <auit_publicationbasic_admin_projects_edit>
60
+ <update handle="auit_publicationbasic_js_publication"/>
61
+ <reference name="content">
62
+ <block type="auit_publicationbasic/adminhtml_projects_edit" name="projects_edit_content"/>
63
+ </reference>
64
+ <reference name="left">
65
+ <block type="auit_publicationbasic/adminhtml_projects_edit_tabs" name="projects_edit_tabs" >
66
+
67
+ <block type="auit_publicationbasic/adminhtml_projects_edit_tab_layout" name="auit_publicationbasic_projects_edit_tab_layout" />
68
+ <action method="addTab"><name>layout_section</name><block>auit_publicationbasic_projects_edit_tab_layout</block></action>
69
+
70
+ <block type="auit_publicationbasic/adminhtml_projects_edit_tab_main" name="auit_publicationbasic_projects_edit_tab_main" />
71
+ <action method="addTab"><name>main_section</name><block>auit_publicationbasic_projects_edit_tab_main</block></action>
72
+ </block>
73
+ </reference>
74
+ </auit_publicationbasic_admin_projects_edit>
75
+
76
+
77
+ <!-- ********** -->
78
+ <auit_publicationbasic_admin_jobqueue_index>
79
+
80
+ <reference name="content">
81
+ <block type="auit_publicationbasic/adminhtml_jobqueue" name="text_block"></block>
82
+ </reference>
83
+ </auit_publicationbasic_admin_jobqueue_index>
84
+
85
+ <auit_publicationbasic_admin_jobqueue_new>
86
+ </auit_publicationbasic_admin_jobqueue_new>
87
+
88
+ <auit_publicationbasic_admin_jobqueue_newpromo>
89
+ <reference name="left">
90
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit_tabs" name="jobqueue_edit_tabs" />
91
+ </reference>
92
+ <reference name="content">
93
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit" name="jobqueue_edit_content"/>
94
+ </reference>
95
+ </auit_publicationbasic_admin_jobqueue_newpromo>
96
+
97
+ <auit_publicationbasic_admin_jobqueue_edit>
98
+
99
+ <update handle="auit_publicationbasic_js_main"/>
100
+ <update handle="auit_publicationbasic_js_filetree"/>
101
+ <reference name="head">
102
+ <action method="addJs"><script>auit/publicationbasic/publication/satzeditor.js</script></action>
103
+ <action method="addItem"><type>js_css</type><name>auit/publicationbasic/css/satzeditor.css</name></action>
104
+ </reference>
105
+ <reference name="content">
106
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit" name="jobqueue_edit_content"/>
107
+ </reference>
108
+ <reference name="left">
109
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit_tabs" name="jobqueue_edit_tabs" >
110
+
111
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit_tab_main" name="auit_publicationbasic_jobqueue_edit_tab_main" />
112
+ <action method="addTab"><name>main_section</name><block>auit_publicationbasic_jobqueue_edit_tab_main</block></action>
113
+
114
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit_tab_products" name="auit_publicationbasic_jobqueue_edit_tab_products" />
115
+ <action method="addTab"><name>products_section</name><block>auit_publicationbasic_jobqueue_edit_tab_products</block></action>
116
+
117
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit_tab_queue" name="auit_publicationbasic_jobqueue_edit_tab_queue" />
118
+ <action method="addTab"><name>queue_section</name><block>auit_publicationbasic_jobqueue_edit_tab_queue</block></action>
119
+
120
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit_tab_epub3" name="auit_publicationbasic_jobqueue_edit_tab_epub3" />
121
+ <action method="addTab"><name>epub3_section</name><block>auit_publicationbasic_jobqueue_edit_tab_epub3</block></action>
122
+
123
+ <block type="auit_publicationbasic/adminhtml_jobqueue_edit_tab_print" name="auit_publicationbasic_jobqueue_edit_tab_print" />
124
+ <action method="addTab"><name>print_section</name><block>auit_publicationbasic_jobqueue_edit_tab_print</block></action>
125
+
126
+ </block>
127
+ </reference>
128
+
129
+ </auit_publicationbasic_admin_jobqueue_edit>
130
+
131
+
132
+ <auit_publicationbasic_admin_import_index>
133
+ <reference name="content">
134
+ <block type="adminhtml/template" template="auit/publicationbasic/admin/import/form/before.phtml" name="import.form.before" alias="form_before"/>
135
+ <block type="auit_publicationbasic/adminhtml_import_edit" name="import.form.container"/>
136
+ <block type="adminhtml/template" template="auit/publicationbasic/admin/import/form/after.phtml" name="import.form.after" alias="form_after"/>
137
+ </reference>
138
+ </auit_publicationbasic_admin_import_index>
139
+ <auit_publicationbasic_admin_import_validate>
140
+ <block type="auit_publicationbasic/adminhtml_import_frame_result" template="auit/publicationbasic/admin/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
141
+ </auit_publicationbasic_admin_import_validate>
142
+ <auit_publicationbasic_admin_import_start>
143
+ <block type="auit_publicationbasic/adminhtml_import_frame_result" template="auit/publicationbasic/admin/import/frame/result.phtml" name="import.frame.result" alias="import_frame_result" output="toHtml"/>
144
+ </auit_publicationbasic_admin_import_start>
145
+ <auit_publicationbasic_admin_import_busy>
146
+ <reference name="content">
147
+ <block type="core/template" template="importexport/busy.phtml" name="busy" alias="busy"/>
148
+ </reference>
149
+ </auit_publicationbasic_admin_import_busy>
150
+
151
+ </layout>
app/design/adminhtml/default/default/template/auit/publicationbasic/admin/import/form/after.phtml ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <div class="entry-edit" id="import_validation_container" style="display:none;">
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend" id="import_validation_container_header"><?php echo $this->__('Validation Results'); ?></h4>
30
+ </div>
31
+ <div id="import_validation_messages" class="fieldset "><!-- --></div>
32
+ </div>
app/design/adminhtml/default/default/template/auit/publicationbasic/admin/import/form/before.phtml ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type="text/javascript">
28
+ //<![CDATA[
29
+ /**
30
+ * Name and ID for iframe for data POST-ing.
31
+ *
32
+ * @var string
33
+ */
34
+ varienForm.prototype.ifrElemName = 'import_post_target_frame';
35
+
36
+ /**
37
+ * Post form data to dynamic iframe.
38
+ *
39
+ * @param string newActionUrl OPTIONAL Change form action to this if specified
40
+ * @return void
41
+ */
42
+ varienForm.prototype.postToFrame = function(newActionUrl)
43
+ {
44
+ if(this.validate()){
45
+ // create dynamic frame
46
+ if (!$(this.ifrElemName)) {
47
+ $('html-body').insert({
48
+ bottom:'<iframe name="' + this.ifrElemName + '" id="' + this.ifrElemName + '" style="display:none;"/>'
49
+ });
50
+ }
51
+
52
+ // show mask, temporary set new target and submit form
53
+ var loadingMask = $('loading-mask');
54
+ var formElem = $(this.formId);
55
+ var oldTarget = formElem.target;
56
+ var oldAction = formElem.action;
57
+
58
+ Element.clonePosition(loadingMask, $$('#html-body .wrapper')[0], {offsetLeft:-2})
59
+ toggleSelectsUnderBlock(loadingMask, false);
60
+ loadingMask.show();
61
+ setLoaderPosition();
62
+ formElem.target = this.ifrElemName;
63
+
64
+ if (newActionUrl) {
65
+ formElem.action = newActionUrl;
66
+ }
67
+ formElem.action += (formElem.action.lastIndexOf('?') != -1 ? '&' : '?')
68
+ + 'form_key=' + encodeURIComponent(formElem.form_key.value);
69
+ this._submit();
70
+ formElem.target = oldTarget;
71
+ formElem.action = oldAction;
72
+ }
73
+ };
74
+
75
+ /**
76
+ * Actions after data post complete. Hide load mask, remove iframe, run response processing method.
77
+ *
78
+ * @param object response
79
+ * @return void
80
+ */
81
+ varienForm.prototype.postToFrameComplete = function(response)
82
+ {
83
+ var loadingMask = $('loading-mask');
84
+ $(this.ifrElemName).remove();
85
+ toggleSelectsUnderBlock(loadingMask, true);
86
+ loadingMask.hide();
87
+ this.postToFrameProcessResponse(response);
88
+ };
89
+
90
+ /**
91
+ * Process response JSON.
92
+ *
93
+ * @param object response
94
+ * @return void
95
+ */
96
+ varienForm.prototype.postToFrameProcessResponse = function(response)
97
+ {
98
+ if ('object' != typeof(response)) {
99
+ return alert('Invalid response');
100
+ }
101
+ $H(response).each(function(pair) {
102
+ switch (pair.key) {
103
+ case 'show':
104
+ case 'clear':
105
+ case 'hide':
106
+ $H(pair.value).each(function(val) {if ($(val.value)) $(val.value)[pair.key]();});
107
+ break;
108
+ case 'innerHTML':
109
+ case 'value':
110
+ $H(pair.value).each(function(val) {if ($(val.key)) $(val.key)[pair.key] = val.value;});
111
+ break;
112
+ case 'removeClassName':
113
+ case 'addClassName':
114
+ $H(pair.value).each(function(val) {if ($(val.key)) $(val.key)[pair.key](val.value);});
115
+ break;
116
+ default:
117
+ alert(pair.key + ': ' + pair.value);
118
+ break;
119
+ }
120
+ });
121
+ };
122
+
123
+ /**
124
+ * Send form data to Start action when file is validated.
125
+ *
126
+ * @param string newActionUrl
127
+ * @param string sourceFileField
128
+ * @return void
129
+ */
130
+ varienForm.prototype.startImport = function(newActionUrl, sourceFileField)
131
+ {
132
+ $(sourceFileField).removeClassName('required-entry');
133
+ this.postToFrame(newActionUrl);
134
+ $(sourceFileField).addClassName('required-entry');
135
+ };
136
+ //]]>
137
+ </script>
app/design/adminhtml/default/default/template/auit/publicationbasic/admin/import/frame/result.phtml ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Magento
4
+ *
5
+ * NOTICE OF LICENSE
6
+ *
7
+ * This source file is subject to the Academic Free License (AFL 3.0)
8
+ * that is bundled with this package in the file LICENSE_AFL.txt.
9
+ * It is also available through the world-wide-web at this URL:
10
+ * http://opensource.org/licenses/afl-3.0.php
11
+ * If you did not receive a copy of the license and are unable to
12
+ * obtain it through the world-wide-web, please send an email
13
+ * to license@magentocommerce.com so we can send you a copy immediately.
14
+ *
15
+ * DISCLAIMER
16
+ *
17
+ * Do not edit or add to this file if you wish to upgrade Magento to newer
18
+ * versions in the future. If you wish to customize Magento for your
19
+ * needs please refer to http://www.magentocommerce.com for more information.
20
+ *
21
+ * @category design
22
+ * @package default_default
23
+ * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24
+ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
25
+ */
26
+ ?>
27
+ <script type='text/javascript'>
28
+ //<![CDATA[
29
+ top.editForm.postToFrameComplete(<?php echo $this->getResponseJson() ?>);
30
+ //]]>
31
+ </script>
app/design/adminhtml/default/default/template/auit/publicationbasic/filemanager.phtml ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $option = array(
3
+ 'msg'=>array(
4
+ 'm1'=>$this->__('There was an error attempting to upload the file.'),
5
+ 'm2'=>$this->__('The upload has been canceled by the user or the browser dropped the connection.'),
6
+ 'm10'=>$this->__('The max. upload size is : %s.',Mage::helper('auit_publicationbasic/filemanager')->getMaxUploadSize(true)),
7
+ 'c1'=>$this->__('Refresh'),
8
+ 'c2'=>$this->__('Add Folder'),
9
+ 'c3'=>$this->__('Rename'),
10
+ 'c4'=>$this->__('Delete')
11
+ ),
12
+ 'MaxUploadSize'=>Mage::helper('auit_publicationbasic/filemanager')->getMaxUploadSize(),
13
+ 'Url'=>Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_filemanager/load'),
14
+ 'formKey'=>Mage::getSingleton('core/session')->getFormKey()
15
+ );
16
+ ?>
17
+ <script type="text/javascript">
18
+ //<![CDATA[
19
+ if ( window.AuIt == undefined)
20
+ window.AuIt={};
21
+ AuIt.FileManagerOption=<?php echo Mage::helper('core')->jsonEncode($option);?>
22
+ //]]>
23
+ </script>
24
+ <div id="snm-file-manager" title="<?php echo $this->__('File Manager');?> - <?php echo $this->__('Max. Upload Size : %s',Mage::helper('auit_publicationbasic/filemanager')->getMaxUploadSize(true));?> ">
25
+ <div class="snm-file-menu" >
26
+ <span class="rbutton ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary" title="<?php echo $this->__('Upload Files');?>">
27
+ <span class="ui-button-icon-primary ui-icon ui-icon-image"></span>
28
+ <input class="snm-file-button " type="file" multiple="multiple" id="fm_fileToUpload" onchange="AuIt.FileUpload.fileSelected();"/>
29
+ <span class="ui-button-text"><?php echo $this->__('Upload Files');?></span>
30
+ </span>
31
+ <div class="snm-file-progress"><div class="snm-file-progress-percent"></div><div class="snm-file-progress-text">0%</div></div>
32
+ <?php /*
33
+ <div class="button-set">
34
+ <button id="fm_add_folder" class="ui-icon-folder-collapsed"><?php echo $this->__('Add Folder')?></button>
35
+ <button id="fm_rename" ><?php echo $this->__('Rename')?></button>
36
+ <button id="fm_remove" ><?php echo $this->__('Remove')?></button>
37
+ </div>
38
+ */?>
39
+ </div>
40
+ <div class="snm-file-content" >
41
+ <div class="snm-file-tree" >
42
+ </div>
43
+ <div class="snm-file-preview" >
44
+ </div>
45
+ </div>
46
+ </div>
app/design/adminhtml/default/default/template/auit/publicationbasic/renderer/array.phtml ADDED
@@ -0,0 +1,167 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ ?>
4
+
5
+ <?php
6
+ $_htmlId = $this->getHtmlId() ? $this->getHtmlId() : '_' . uniqid();
7
+
8
+ $_colspan = 2;
9
+ if (!$this->_addAfter) {
10
+ $_colspan -= 1;
11
+ }
12
+ $_colspan = $_colspan > 1 ? 'colspan="' . $_colspan . '"' : '';
13
+ ?>
14
+
15
+ <div class="grid" id="grid<?php echo $_htmlId ?>">
16
+ <table cellpadding="0" cellspacing="0" class="border">
17
+ <tbody>
18
+
19
+ <tr class="headings" id="headings<?php echo $_htmlId ?>">
20
+ <?php foreach ($this->_columns as $columnName => $column):?>
21
+ <th><?php echo $column['label'] ?></th>
22
+ <?php endforeach;?>
23
+ <th <?php echo $_colspan?>></th>
24
+ </tr>
25
+
26
+ <tr id="addRow<?php echo $_htmlId ?>">
27
+ <td colspan="<?php echo count($this->_columns) ?>"></td>
28
+ <td <?php echo $_colspan?>>
29
+ <button style="" onclick="" class="scalable add" type="button" id="addToEndBtn<?php echo $_htmlId ?>">
30
+ <span><?php echo $this->_addButtonLabel ?></span>
31
+ </button>
32
+ </td>
33
+ </tr>
34
+
35
+ </tbody>
36
+ </table>
37
+ <input type="hidden" name="<?php echo $this->getElement()->getName() ?>[__empty]" value="" />
38
+ </div>
39
+ <div id="empty<?php echo $_htmlId ?>">
40
+ <button style="" onclick="" class="scalable add" type="button" id="emptyAddBtn<?php echo $_htmlId ?>">
41
+ <span><?php echo $this->_addButtonLabel ?></span>
42
+ </button>
43
+ </div>
44
+
45
+ <script type="text/javascript">
46
+ //<![CDATA[
47
+ // create row creator
48
+ var arrayRow<?php echo $_htmlId ?> = {
49
+ // define row prototypeJS template
50
+ template : new Template(
51
+ '<tr id="#{_id}">'
52
+ <?php foreach ($this->_columns as $columnName => $column):?>
53
+ //+'<td>'
54
+ +'<td class="#{_id}-<?php echo $columnName?>">'
55
+ +'<?php echo $this->_renderCellTemplate($columnName)?>'
56
+ +'<\/td>'
57
+ <?php endforeach;?>
58
+ <?php if ($this->_addAfter):?>
59
+ +'<td><button onclick="" class="scalable add" type="button" id="addAfterBtn#{_id}"><span><?php echo Mage::helper('adminhtml')->__('Add after') ?><\/span><\/button><\/td>'
60
+ <?php endif;?>
61
+ +'<td><button onclick="arrayRow<?php echo $_htmlId ?>.del(\'#{_id}\')" class="scalable delete" type="button"><span><?php echo Mage::helper('adminhtml')->__('Delete') ?><\/span><\/button><\/td>'
62
+ +'<\/tr>'
63
+ ),
64
+
65
+ rowsCount : 0,
66
+
67
+ add : function(templateData, insertAfterId)
68
+ {
69
+ // generate default template data
70
+ if ('' == templateData) {
71
+ var d = new Date();
72
+ var templateData = {
73
+ <?php foreach ($this->_columns as $columnName => $column):?>
74
+ <?php echo $columnName ?> : '',
75
+ <?php endforeach;?>
76
+ _id : '_' + d.getTime() + '_' + d.getMilliseconds()
77
+ };
78
+ }
79
+
80
+ // insert before last row
81
+ if ('' == insertAfterId) {
82
+ Element.insert($('addRow<?php echo $_htmlId ?>'), {before: this.template.evaluate(templateData)});
83
+ }
84
+ // insert after specified row
85
+ else {
86
+ Element.insert($(insertAfterId), {after: this.template.evaluate(templateData)});
87
+ }
88
+ //NEW CODE
89
+ <?php foreach ($this->_columns as $columnName => $column):?>
90
+ var options = $$('td.' + templateData._id + '-' + '<?php echo $columnName?>' + ' option')
91
+ if ( templateData.<?php echo $columnName?> )
92
+ {
93
+ var vv = templateData.<?php echo $columnName?>.split(',');
94
+
95
+ for(var index = 0; index < options.length; ++index)
96
+ {
97
+ var option = options[index];
98
+ for ( var x=0; x < vv.length; x++ )
99
+ {
100
+ if(option.getAttribute('value') == vv[x])
101
+ {
102
+ option.selected = true
103
+ }
104
+ }
105
+ /**
106
+ if(option.getAttribute('value') == templateData.<?php echo $columnName?>)
107
+ {
108
+ option.selected = true
109
+ }
110
+ */
111
+ }
112
+ }
113
+ <?php endforeach;?>
114
+ //END CODE
115
+ <?php if ($this->_addAfter):?>
116
+ Event.observe('addAfterBtn' + templateData._id, 'click', this.add.bind(this, '', templateData._id));
117
+ <?php endif;?>
118
+
119
+ this.rowsCount += 1;
120
+ },
121
+
122
+ del : function(rowId)
123
+ {
124
+ $(rowId).remove();
125
+ this.rowsCount -= 1;
126
+ if (0 == this.rowsCount) {
127
+ this.showButtonOnly();
128
+ }
129
+ },
130
+
131
+ showButtonOnly : function()
132
+ {
133
+ $('grid<?php echo $_htmlId ?>').hide();
134
+ $('empty<?php echo $_htmlId ?>').show();
135
+ }
136
+ }
137
+
138
+ // bind add action to "Add" button in last row
139
+ Event.observe('addToEndBtn<?php echo $_htmlId ?>', 'click', arrayRow<?php echo $_htmlId ?>.add.bind(arrayRow<?php echo $_htmlId ?>, '', ''));
140
+
141
+ // add existing rows
142
+ <?php
143
+ $_addAfterId = "headings{$_htmlId}";
144
+ foreach ($this->getArrayRows() as $_rowId => $_row) {
145
+ echo "arrayRow{$_htmlId}.add(" . $_row->toJson() . ", '{$_addAfterId}');\n";
146
+ $_addAfterId = $_rowId;
147
+ }
148
+ ?>
149
+ // initialize standalone button
150
+ $('empty<?php echo $_htmlId ?>').hide();
151
+ Event.observe('emptyAddBtn<?php echo $_htmlId ?>', 'click', function () {
152
+ $('grid<?php echo $_htmlId ?>').show();
153
+ $('empty<?php echo $_htmlId ?>').hide();
154
+ arrayRow<?php echo $_htmlId ?>.add('', '');
155
+ });
156
+
157
+ // if no rows, hide grid and show button only
158
+ <?php if (!$this->getArrayRows()):?>
159
+ arrayRow<?php echo $_htmlId ?>.showButtonOnly();
160
+ <?php endif;?>
161
+
162
+ // toggle the grid, if element is disabled (depending on scope)
163
+ <?php if ($this->getElement()->getDisabled()):?>
164
+ toggleValueElements({checked:true}, $('grid<?php echo $_htmlId ?>').parentNode);
165
+ <?php endif;?>
166
+ //]]>
167
+ </script>
app/design/adminhtml/default/default/template/auit/publicationbasic/renderer/array_date.phtml ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ ?>
4
+
5
+ <?php
6
+ $_htmlId = $this->getHtmlId() ? $this->getHtmlId() : '_' . uniqid();
7
+
8
+ $_colspan = 2;
9
+ if (!$this->_addAfter) {
10
+ $_colspan -= 1;
11
+ }
12
+ $_colspan = $_colspan > 1 ? 'colspan="' . $_colspan . '"' : '';
13
+ ?>
14
+
15
+ <div class="grid" id="grid<?php echo $_htmlId ?>">
16
+ <table cellpadding="0" cellspacing="0" class="border">
17
+ <tbody>
18
+
19
+ <tr class="headings" id="headings<?php echo $_htmlId ?>">
20
+ <?php foreach ($this->_columns as $columnName => $column):?>
21
+ <th><?php echo $column['label'] ?></th>
22
+ <?php endforeach;?>
23
+ <th <?php echo $_colspan?>></th>
24
+ </tr>
25
+
26
+ <tr id="addRow<?php echo $_htmlId ?>">
27
+ <td colspan="<?php echo count($this->_columns) ?>"></td>
28
+ <td <?php echo $_colspan?>>
29
+ <button style="" onclick="" class="scalable add" type="button" id="addToEndBtn<?php echo $_htmlId ?>">
30
+ <span><?php echo $this->_addButtonLabel ?></span>
31
+ </button>
32
+ </td>
33
+ </tr>
34
+
35
+ </tbody>
36
+ </table>
37
+ <input type="hidden" name="<?php echo $this->getElement()->getName() ?>[__empty]" value="" />
38
+ </div>
39
+ <div id="empty<?php echo $_htmlId ?>">
40
+ <button style="" onclick="" class="scalable add" type="button" id="emptyAddBtn<?php echo $_htmlId ?>">
41
+ <span><?php echo $this->_addButtonLabel ?></span>
42
+ </button>
43
+ </div>
44
+
45
+ <script type="text/javascript">
46
+ //<![CDATA[
47
+ // create row creator
48
+ var arrayRow<?php echo $_htmlId ?> = {
49
+ // define row prototypeJS template
50
+ template : new Template(
51
+ '<tr id="#{_id}<?php echo $_htmlId?>">'
52
+ <?php foreach ($this->_columns as $columnName => $column):?>
53
+ //+'<td>'
54
+ +'<td class="#{_id}-<?php echo $columnName?>">'
55
+ +'<?php echo $this->_renderCellTemplate($columnName)?>'
56
+ +'<\/td>'
57
+ <?php endforeach;?>
58
+ <?php if ($this->_addAfter):?>
59
+ +'<td><button onclick="" class="scalable add" type="button" id="addAfterBtn#{_id}<?php echo $_htmlId ?>"><span><?php echo Mage::helper('adminhtml')->__('Add after') ?><\/span><\/button><\/td>'
60
+ <?php endif;?>
61
+ +'<td>'
62
+ +'<input id="#{_id}<?php echo $_htmlId?>_rowdel" type="hidden" value="0" name="<?php echo $this->getElement()->getName() ?>[__deleted][#{_id}]" />'
63
+ +'<button onclick="arrayRow<?php echo $_htmlId ?>.del(\'#{_id}<?php echo $_htmlId ?>\')" class="scalable delete" type="button"><span><?php echo Mage::helper('adminhtml')->__('Delete') ?><\/span><\/button><\/td>'
64
+ +'<\/tr>'
65
+ ),
66
+
67
+ rowsCount : 0,
68
+
69
+ add : function(templateData, insertAfterId)
70
+ {
71
+ // generate default template data
72
+ if ('' == templateData) {
73
+ var d = new Date();
74
+ var templateData = {
75
+ <?php foreach ($this->_columns as $columnName => $column):?>
76
+ <?php echo $columnName ?> : '',
77
+ <?php endforeach;?>
78
+ _id : '_' + d.getTime() + '_' + d.getMilliseconds()
79
+ };
80
+ }
81
+
82
+ // insert before last row
83
+ if ('' == insertAfterId) {
84
+ Element.insert($('addRow<?php echo $_htmlId ?>'), {before: this.template.evaluate(templateData)});
85
+ }
86
+ // insert after specified row
87
+ else {
88
+ Element.insert($(insertAfterId), {after: this.template.evaluate(templateData)});
89
+ }
90
+ //NEW CODE
91
+ <?php foreach ($this->_columns as $columnName => $column):?>
92
+ var options = $$('td.' + templateData._id + '-' + '<?php echo $columnName?>' + ' option')
93
+ if ( templateData.<?php echo $columnName?> )
94
+ {
95
+ var vv = templateData.<?php echo $columnName?>.split(',');
96
+ for(var index = 0; index < options.length; ++index)
97
+ {
98
+ var option = options[index];
99
+ for ( var x=0; x < vv.length; x++ )
100
+ {
101
+ if(option.getAttribute('value') == vv[x])
102
+ {
103
+ option.selected = true
104
+ }
105
+ }
106
+ }
107
+ }
108
+ <?php endforeach;?>
109
+ <?php foreach ($this->_columns as $columnName => $column):?>
110
+ <?php if ( strpos($column['class'],'datetime') !== false ) : ?>
111
+ var delelm = $$('td.' + templateData._id + '-' + '<?php echo $columnName?>' + ' input');
112
+ var delbtn = $$('td.' + templateData._id + '-' + '<?php echo $columnName?>' + ' img');
113
+ Calendar.setup({
114
+ inputField : delelm[0],
115
+ ifFormat : '<?php echo $this->getDateFormat() ?>',
116
+ button : delbtn[0],
117
+ align : 'Bl',
118
+ //showsTime:true,
119
+ singleClick : true
120
+ //, timeFormat: 12
121
+ });
122
+ <?php endif; ?>
123
+ <?php endforeach;?>
124
+
125
+ //END CODE
126
+ <?php if ($this->_addAfter):?>
127
+ Event.observe('addAfterBtn' + templateData._id + '<?php echo $_htmlId ?>', 'click', this.add.bind(this, '', templateData._id+'<?php echo $_htmlId ?>'));
128
+ <?php endif;?>
129
+
130
+ this.rowsCount += 1;
131
+ },
132
+
133
+ del : function(rowId)
134
+ {
135
+ //$(rowId).remove();
136
+ $(rowId).hide();
137
+ $(rowId+'_rowdel').value=1;
138
+ this.rowsCount -= 1;
139
+ if (0 == this.rowsCount) {
140
+ this.showButtonOnly();
141
+ }
142
+ },
143
+
144
+ showButtonOnly : function()
145
+ {
146
+ $('grid<?php echo $_htmlId ?>').hide();
147
+ $('empty<?php echo $_htmlId ?>').show();
148
+ }
149
+ }
150
+
151
+ // bind add action to "Add" button in last row
152
+ Event.observe('addToEndBtn<?php echo $_htmlId ?>', 'click', arrayRow<?php echo $_htmlId ?>.add.bind(arrayRow<?php echo $_htmlId ?>, '', ''));
153
+
154
+ // add existing rows
155
+ <?php
156
+ $_addAfterId = "headings{$_htmlId}";
157
+
158
+ foreach ($this->getArrayRows() as $_rowId => $_row) {
159
+ echo "arrayRow{$_htmlId}.add(" . $_row->toJson() . ", '{$_addAfterId}');\n";
160
+ $_addAfterId = $_rowId.''.$_htmlId;
161
+ }
162
+ ?>
163
+
164
+ // initialize standalone button
165
+ $('empty<?php echo $_htmlId ?>').hide();
166
+ Event.observe('emptyAddBtn<?php echo $_htmlId ?>', 'click', function () {
167
+ $('grid<?php echo $_htmlId ?>').show();
168
+ $('empty<?php echo $_htmlId ?>').hide();
169
+ arrayRow<?php echo $_htmlId ?>.add('', '');
170
+ });
171
+
172
+ // if no rows, hide grid and show button only
173
+ <?php if (!$this->getArrayRows()):?>
174
+ arrayRow<?php echo $_htmlId ?>.showButtonOnly();
175
+ <?php endif;?>
176
+
177
+ // toggle the grid, if element is disabled (depending on scope)
178
+ <?php if ($this->getElement()->getDisabled()):?>
179
+ toggleValueElements({checked:true}, $('grid<?php echo $_htmlId ?>').parentNode);
180
+ <?php endif;?>
181
+ //]]>
182
+ </script>
app/design/adminhtml/default/default/template/auit/publicationbasic/satzeditor.phtml ADDED
@@ -0,0 +1,179 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ ?>
4
+ <?php
5
+ $element = $this->getElement();
6
+ ?>
7
+ <script type="text/javascript">
8
+ //<![CDATA[
9
+ AuIt.SatzEditor.jsUrl='<?php echo Mage::getBaseUrl('js');?>';
10
+ AuIt.SatzEditor.formKey='<?php echo Mage::getSingleton('core/session')->getFormKey();?>';
11
+ AuIt.SatzEditor.previewUrl='<?php echo Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_preview/job');?>';
12
+ AuIt.SatzEditor.templateImageUrl='<?php echo Mage::helper('auit_publicationbasic/pdf')->getPreviewTemplateImageUrl('[rep]','[date]','[spread]');?>';
13
+ AuIt.SatzEditor.productImageUrl='<?php echo Mage::helper('auit_publicationbasic/pdf')->getPreviewProductImageUrl('[rep]');?>';
14
+ AuIt.SatzEditor.templateTypes=<?php echo Mage::helper('core')->jsonEncode(Mage::helper('auit_publicationbasic')->getTemplates(null,array(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT,AuIt_PublicationBasic_Helper_Data::TEMPLATE_STATIC),false));?>;
15
+ AuIt.SatzEditor.templateInfoUrl= '<?php echo Mage::getModel('adminhtml/url')->getUrl('auit_publicationbasic/admin_preview/info');?>';
16
+ AuIt.SatzEditor.save=function()
17
+ {
18
+ jQuery('#<?php echo $element->getHtmlId();?>').text(AuIt.SatzEditor.getJSON());
19
+ return jQuery('#<?php echo $element->getHtmlId();?>');
20
+ };
21
+ jQuery(document).ready(function(){
22
+ try {
23
+ setTimeout(function(){
24
+ AuIt.SatzEditor.init(<?php echo $this->getJsonObj();?>);
25
+ },200);
26
+
27
+ }catch (e){
28
+ alert ( e.message );
29
+ //AuIt.Publication.init({});
30
+ }
31
+ });
32
+ //]]>
33
+ </script>
34
+
35
+ <div id="auit-publicationbasic-satz" class="a-loading" >
36
+ <button data-bind='click: defaultButtonClick' style="display:none;"></button>
37
+ <textarea id="<?php echo $element->getHtmlId();?>" name="<?php echo $element->getName();?>" style="left:-20000px;position:absolute;"><?php echo $this->getJsonModel();?></textarea>
38
+
39
+ <div id="auit-publicationbasic-panel" class="snm-panel " style="display:none">
40
+ <div class="headline"><?php echo $this->__('Print Sections');?>
41
+ <a data-bind='jqueryui: {widget: "button",options: {}},click:previewData' ><?php echo $this->__('Preview');?></a>
42
+ </div>
43
+ <div class="clearfix form" style="padding:0;font-size:0.8em">
44
+ <label><?php echo $this->__('Style');?></label>
45
+ <select data-bind="combobox: jobstyle">
46
+ <option value="0"><?php echo $this->__('Default');?></option>
47
+ <?php echo Mage::helper('auit_publicationbasic')->asOptions(Mage::helper('auit_publicationbasic/style')->getCssStyles(),false);?>
48
+ </select>
49
+ </div>
50
+ <div class="clearfix" style="margin:5px 0 0 0">
51
+ <div class="trash-template" data-bind="click: onTrash"></div>
52
+ <button type="button" data-bind='click: copyTemplate, jqueryui: {widget: "button",options: {text: false, icons: { primary: "ui-icon-plusthick"}}}'><?php echo $this->__('Copy Spread');?></button>
53
+ </div>
54
+
55
+ <div class="clearfix template-overview" data-bind="foreach: templates, sortableList: {list:templates,conectWith:'.trash-template'}">
56
+ <div class="template-box" data-bind="sortableItem: { item: $data, parentList: $parent.templates },click: activedTemplate,css:{active: isSelected($data)}" >
57
+ <span class="a-loading">
58
+ <img src="<?php $this->getSkinUrl('images/loadinfo.gif')?>" data-bindX="attr:{src:getPrevTemplUrl()}" data-bind="setLoadingSrc:getPrevTemplUrl()"/>
59
+ </span>
60
+ <div class="info" data-bind="text:getTemplName()"></div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+
65
+ <div id="auit-publicationbasic-satz-frame" style="display:none">
66
+ <div class="clearfix infobox" data-bind="with:getCurrentTemplate()">
67
+ <div class=" c1 snm-panel">
68
+ <!--
69
+ <img data-bind="attr:{src:getPrevTemplUrl()}"/>
70
+ -->
71
+ <div class="clearfix form snm-panel " >
72
+ <div class="clearfix snm-panel ">
73
+ <label></label>
74
+ <div class="r">
75
+ <div style="color:#eb5e00;"><a style="text-decoration: none" target="_blank" href="http://snm-portal.com/magento-pdf-publication-templates.html"><?php echo $this->__('More Infos - FAQ')?></a></div>
76
+ </div>
77
+ </div>
78
+ <label><?php echo $this->__('Template');?></label>
79
+ <select data-bind="combobox: template">
80
+ <?php echo Mage::helper('auit_publicationbasic')->asOptions(Mage::helper('auit_publicationbasic')->getTemplates(null,array(AuIt_PublicationBasic_Helper_Data::TEMPLATE_PRODUCT,AuIt_PublicationBasic_Helper_Data::TEMPLATE_STATIC),false));?>
81
+ </select>
82
+ <div class="clearfix snm-panel " data-bind="if:templateInfo">
83
+ <label class="clearfix"><?php echo $this->__('Use Spread');?></label>
84
+ <select data-bind="combobox: usespread">
85
+ <option value="0"><?php echo $this->__('All');?></option>
86
+ <!-- ko foreach: templateInfo().spreads -->
87
+ <option data-bind="value:idx,text:name" ></option>
88
+ <!-- /ko -->
89
+ <?php /*
90
+ <?php echo Mage::helper('auit_publicationbasic')->asOptions(Mage::helper('auit_publicationbasic')->getUsedSpread());?>
91
+ */?>
92
+ </select>
93
+
94
+ </div>
95
+ </div>
96
+ </div>
97
+ <div class=" c2 snm-panel">
98
+
99
+ <div class="clearfix form snm-panel" data-bind="if:templateInfo">
100
+ <div data-bind="foreach:getCurrentVarGroups()">
101
+ <div data-bind="text:name" style="float:right"></div>
102
+ <div data-bind="foreach:tmpls">
103
+ <div data-bind="text:name" style="float:left"></div>
104
+ <div data-bind="foreach:boxs">
105
+
106
+ <div data-bind="with: $parents[2].getVarBox($data) ">
107
+ <div data-bind="if: type() == 'p_free'">
108
+ <label data-bind="text:name"></label>
109
+ <input data-bind="value: def, valueUpdate: 'input'" class="r ui-widget ui-widget-content ui-corner-all"/>
110
+ </div>
111
+ <div data-bind="if: type() == 'p_img'">
112
+ <label style="position:relative"><span data-bind="text:name"></span>
113
+ <a style="position:absolute;right:2px;top:6px;" data-bind='click: selectImageFile, jqueryui: {widget: "button",options: {text: false, icons: { primary: "ui-icon-grip-dotted-horizontal"}}}'></a>
114
+ </label>
115
+ <input class="r ui-widget ui-widget-content ui-corner-all" data-bind="value: src, valueUpdate: 'input'" />
116
+ </div>
117
+ </div>
118
+ <?php /*
119
+ <!-- ko if: type() == 'p_free' -->
120
+ <label data-bind="text:name"></label>
121
+ <!--
122
+ <input data-bind="value: $parents[2].getVarBoxValue($data)" class="r ui-widget ui-widget-content ui-corner-all"/>
123
+
124
+ <input data-bind="value: def" class="r ui-widget ui-widget-content ui-corner-all"/>-->
125
+ <!-- /ko -->
126
+ <!-- ko if: type() == 'p_img' -->
127
+ <!--
128
+ <label ><span data-bind="text:name"></span>
129
+ <a style="position:absolute;right:2px;top:6px;" data-bind='click: selectImageFile, jqueryui: {widget: "button",options: {text: false, icons: { primary: "ui-icon-grip-dotted-horizontal"}}}'></a>
130
+ </label>
131
+ <input class="r ui-widget ui-widget-content ui-corner-all" data-bind="value: def" />
132
+ -->
133
+ <!-- /ko -->
134
+ */?>
135
+ </div>
136
+ </div>
137
+
138
+ </div>
139
+ <!--
140
+ <div data-bind="foreach:templateInfo().vars">
141
+ <label data-bind="text:$parent.vars[$data.uid].name"></label>
142
+ <input data-bind="value: $parent.vars[$data.uid].value" class="r ui-widget ui-widget-content ui-corner-all"/>
143
+ </div>
144
+ -->
145
+ </div>
146
+
147
+
148
+ </div>
149
+ <div class="clearfix products-overview" data-bind="foreach: products, sortableList: {list:products,conectWith:'.trash-products'}" >
150
+ <div class="product-box" data-bind="sortableItem: { item: $data, parentList: $parent.products },click: $parent.activedSKUIdx,attr:{'data-index':$index()},scrollToActive:$parent.isActivedSKUIdx($index)">
151
+ <img data-bind="attr:{src:$parent.getPrevProductUrl($data)}"/>
152
+ <span class="info" data-bind="text:$data"></span>
153
+ </div>
154
+ </div>
155
+ <div class="clearfix form snm-panel" >
156
+ <label><?php echo $this->__('Insert Modus');?></label>
157
+ <div class="r" style="position: relative;">
158
+ <div class="trash-products" data-bind="click: onTrash"></div>
159
+ <span><?php echo $this->__('Insert at Start');?> </span><input type="radio" value="0" name="insertModus" data-bind="checked: $root.insertModus" />
160
+ <span>&#160;<?php echo $this->__('Insert Before');?> </span><input type="radio" value="1" name="insertModus" data-bind="checked: $root.insertModus" />
161
+
162
+ <span>&#160;<?php echo $this->__('Insert After');?> </span><input type="radio" value="2" name="insertModus" data-bind="checked: $root.insertModus" />
163
+ <span>&#160;<?php echo $this->__('Insert at End');?> </span><input type="radio" value="3" name="insertModus" data-bind="checked: $root.insertModus" />
164
+ </div>
165
+ <label class="clearfix"><?php echo $this->__('SKUs');?></label>
166
+ <input data-bind="value: skus, valueUpdate: 'input'" class="r ui-widget ui-widget-content ui-corner-all"/>
167
+ </div>
168
+ </div>
169
+
170
+ <div id="auit-publicationbasic-satz-productselect">
171
+ <?php
172
+ $content = Mage::getSingleton('core/layout')
173
+ ->createBlock('auit_publicationbasic/adminhtml_jobqueue_edit_tab_products_grid');
174
+ $content->setId('auit_publicationbasic_catalog_skus2_content')->setElement($element);
175
+ echo $content->toHtml();
176
+ ?>
177
+ </div>
178
+ </div>
179
+ </div>
app/design/frontend/base/default/layout/auit_publicationbasic.xml ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <layout >
3
+ <catalog_product_view translate="label">
4
+ <reference name="alert.urls">
5
+ <block type="auit_publicationbasic/product_buttons" template="auit/publicationbasic/product/buttons.phtml" ifconfig="auit_publicationbasic/product_pdf/enabled">
6
+ </block>
7
+ </reference>
8
+ </catalog_product_view>
9
+ </layout>
app/design/frontend/base/default/template/auit/publicationbasic/product/buttons.phtml ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php if ( Mage::getStoreConfigFlag('auit_publicationbasic/product_pdf/enabled') ) :?>
2
+ <?php if ( $url = Mage::helper('auit_publicationbasic/pdf')->getDataSheetUrl($this->getProduct())) :?>
3
+ <div style="padding:5px:font-size:8px;">
4
+ <div style="float:left;margin-right:5px;">
5
+ <a href="<?php echo $url?>" ><img src="http://www.adobe.com/images/pdficon_large.png" alt="PDF"/></a>
6
+ <br/>Datasheet I</div>
7
+ <?php /*?>
8
+ <?php if ( $url = Mage::helper('auit_publicationbasic/pdf')->getDataSheetUrl($this->getProduct(),array('tuid'=>'e2773e5570e8762775d0471087871d68'))) :?>
9
+
10
+ <div style="float:left">
11
+ <a href="<?php echo $url?>" ><img src="http://www.adobe.com/images/pdficon_large.png" alt="PDF"/></a>
12
+ <br/>Datasheet II</div>
13
+ <?php endif;?>
14
+ */?>
15
+ <div class="clearer"></div>
16
+ </div>
17
+ <?php endif;?>
18
+ <?php endif;?>
app/design/frontend/base/default/template/auit/publicationbasic/product/images.phtml ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $_helper = $this->helper('catalog/output');
3
+ $_product = $this->getProduct();
4
+ $collection = $_product->getMediaGalleryImages();
5
+ $border = $this->getGeneratorParameter('border',2);
6
+ $boxW = $this->getGeneratorParameter('width',50);
7
+ $boxH = $this->getGeneratorParameter('height',50);
8
+ $maxPictures=$this->getGeneratorParameter('max-pictures',2);
9
+ $bgColor = $this->getGeneratorParameter('bgcolor','rgba(0,0,0,0.2)');
10
+
11
+ $orientation = $this->getGeneratorParameter('orientation',0);
12
+
13
+ $x=0;
14
+ $y=0;
15
+ if ($_product->getImage() != 'no_selection' && $_product->getImage()){
16
+
17
+ $this->addBox(array(
18
+ 'name'=>'Frame',
19
+ 'type'=>'p_free',
20
+ 'x'=>$x, 'y'=>$y, 'w'=>$boxW, 'h'=>$boxH,
21
+ 'p_opt'=>'',
22
+ 'style_colour_background'=>$bgColor
23
+ ));
24
+ $this->addBox(array(
25
+ 'name'=>'Image',
26
+ 'x'=>$x+$border, 'y'=>$y+$border, 'w'=>$boxW-$border-$border, 'h'=>$boxH-$border-$border,
27
+ 'type'=>'p_img',
28
+ 'p_opt'=>'image',
29
+ 'p_opt2'=>'fill2box',
30
+ 'style_colour_background'=>'rgba(255,255,255,1)',
31
+ //'src'=>'ROOT/samples/logo_h.png',
32
+ 'scale'=>'100',
33
+ 'xoff'=>'0',
34
+ 'yoff'=>'0',
35
+ ));
36
+
37
+ if ( $orientation )
38
+ {
39
+ $x+=$boxW+$border;
40
+ }
41
+ else{
42
+ $y+=$boxH+$border;
43
+ }
44
+ $maxPictures--;
45
+ }
46
+
47
+ if (count($collection) > 0)
48
+ {
49
+ $idx=1;
50
+ foreach ($collection as $_image)
51
+ {
52
+ if ( $maxPictures <= 0)break;
53
+ $this->addBox(array(
54
+ 'name'=>'Frame',
55
+ 'type'=>'p_free',
56
+ 'x'=>$x, 'y'=>$y, 'w'=>$boxW, 'h'=>$boxH,
57
+ 'p_opt'=>'',
58
+ 'style_colour_background'=>$bgColor
59
+ ));
60
+ $this->addBox(array(
61
+ 'name'=>'Image:'.$idx,
62
+ 'x'=>$x+$border, 'y'=>$y+$border, 'w'=>$boxW-$border-$border, 'h'=>$boxH-$border-$border,
63
+ 'type'=>'p_img',
64
+ 'p_opt'=>'image:'.$idx,
65
+ 'p_opt2'=>'fill2box',
66
+ 'style_colour_background'=>'rgba(255,255,255,1)',
67
+ 'scale'=>'100',
68
+ 'xoff'=>'0',
69
+ 'yoff'=>'0',
70
+ ));
71
+ if ( $orientation )
72
+ {
73
+ $x+=$boxW+$border;
74
+ }
75
+ else{
76
+ $y+=$boxH+$border;
77
+ }
78
+ $idx++;
79
+ $maxPictures--;
80
+ }
81
+ }
app/design/frontend/base/default/template/auit/publicationbasic/product/price_variants.phtml ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $_helper = $this->helper('catalog/output');
3
+ $_product = $this->getProduct();
4
+ $options = $_product->getOptions();
5
+ $matrix = $this->getPriceMatrix();
6
+ /*
7
+ * border="0" cellspacing="0" cellpadding="0"
8
+ */
9
+ ?>
10
+ <?php if ($matrix && is_array($matrix) ) :?>
11
+ <table style="width:100%" >
12
+ <tbody>
13
+ <?php foreach ($matrix as $r => $variant ) :?>
14
+ <tr class="<?php echo ($r % 2) == 0? 'odd':'even';?>" >
15
+ <td style="text-align:left;width:70%">
16
+ <?php $i=0;foreach ($variant['attributes'] as $attribute => $variants ) :$i++?>
17
+ <?php if ( $i > 1 ) :?><br /><?php endif;?>
18
+ <span class="label"><?php echo $attribute;?><span>: </span></span>
19
+ <span class="data"><?php $idx=0;foreach ($variants as $name => $tmp ) :?><?php echo $idx++?',':'';?><?php echo $name;?><?php endforeach;?></span>
20
+ <?php endforeach;?>
21
+ </td>
22
+ <td style="text-align:right;width:30%"><div class="bl-price-variants"><?php echo $variant['price_formated'];?></div></td>
23
+ </tr>
24
+ <?php endforeach;?>
25
+ </tbody>
26
+ </table>
27
+ <?php endif; ?>
app/design/frontend/base/default/template/auit/publicationbasic/product/price_variants2.phtml ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $_helper = $this->helper('catalog/output');
3
+ $_product = $this->getProduct();
4
+ $options = $_product->getOptions();
5
+ $matrix = $this->getPriceMatrix(2);
6
+ /*
7
+ * border="0" cellspacing="0" cellpadding="0"
8
+ */
9
+ ?>
10
+ <?php if ($matrix && is_array($matrix) ) :?>
11
+ <table style="width:100%" >
12
+ <tbody>
13
+ <?php foreach ($matrix as $r => $variant ) :?>
14
+ <tr class="<?php echo ($r % 2) == 0? 'odd':'even';?>" >
15
+ <td style="text-align:left;width:70%">
16
+ <?php $i=0;foreach ($variant['attributes'] as $attribute => $variants ) :$i++?>
17
+ <?php if ( $i > 1 ) :?><br /><?php endif;?>
18
+ <span class="label"><?php echo $attribute;?><span>: </span></span>
19
+ <span class="data"><?php $idx=0;foreach ($variants as $name => $tmp ) :?><?php echo $idx++?',':'';?><?php echo $name;?><?php endforeach;?></span>
20
+ <?php endforeach;?>
21
+ </td>
22
+ <td style="text-align:right;width:30%"><div class="bl-price-variants"><?php echo $variant['price_formated'];?></div></td>
23
+ </tr>
24
+ <?php endforeach;?>
25
+ </tbody>
26
+ </table>
27
+ <?php endif; ?>
app/design/frontend/base/default/template/auit/publicationbasic/product_attribute.phtml ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ $_helper = $this->helper('catalog/output');
3
+ $_product = $this->getProduct()
4
+ ?>
5
+ <?php if($_additional = $this->getAdditionalData()): ?>
6
+ <?php
7
+ /*
8
+ * border="0" cellspacing="0" cellpadding="0"
9
+ */
10
+ ?>
11
+ <table style="width:100%" >
12
+ <tbody>
13
+ <?php $i=-1;foreach ($_additional as $_data): $i++;?>
14
+ <tr class="<?php echo $i % 2 == 0? 'odd':'even';?>" >
15
+ <th style="width:25%" class="label" ><?php echo $this->htmlEscape($this->__($_data['label'])) ?></th>
16
+ <td style="width:75%" class="data" ><?php echo trim($this->stripTags($_helper->productAttribute($_product, $_data['value'], $_data['code']),'<br/><br /><br>')) ?></td>
17
+ </tr>
18
+ <?php endforeach; ?>
19
+ </tbody>
20
+ </table>
21
+ <?php endif;?>
app/etc/modules/XAuIt_PublicationBasic.xml ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0"?>
2
+ <config>
3
+ <modules>
4
+ <AuIt_PublicationBasic>
5
+ <active>true</active>
6
+ <codePool>local</codePool>
7
+ <depends>
8
+ <Mage_Core />
9
+ </depends>
10
+ </AuIt_PublicationBasic>
11
+ </modules>
12
+ </config>
app/locale/de_DE/AuIt_PublicationBasic.csv ADDED
@@ -0,0 +1,356 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ "Generator","Generator"
2
+ "Add New Generator","Neuen Generator hinzufügen"
3
+ "Save Generator","Generator speichern"
4
+ "Save","Speichern"
5
+ "Save and Continue Edit","Speichern und weiter"
6
+ "Duplicate","Dulizieren"
7
+ "New Generator","Neuer Generator"
8
+ "General Information","Allgemeine Information"
9
+ "Name","Name"
10
+ "Status","Status"
11
+ "Enabled","Aktiviert"
12
+ "Disabled","Deaktiviert"
13
+ "Information","Information"
14
+ "Generator Information","Generator Information"
15
+ "Source Type","Source Typ"
16
+ "Parameter","Parameter"
17
+ "Source","Source"
18
+ "Source Data","Source Data"
19
+ "Manage Layout Generator","Manage Layout Generator"
20
+ "ID","ID"
21
+ "Identifier","Identifier"
22
+ "Last Update","Letzte Änderung"
23
+ "From","Vom"
24
+ "Delete","Löschen"
25
+ "Are you sure?","Sind Sie sicher?"
26
+ "Check Data","Daten überprüfen"
27
+ "Import","Import"
28
+ "Template Import Settings","Template Import Einstellugen"
29
+ "Import Behavior","Import Vorgaben"
30
+ "Select File to Import","Datei für den Import auswählen"
31
+ "Attribute","Attribute"
32
+ "value","Wert"
33
+ "Template","Template"
34
+ "Add new","Neu hinzufügen"
35
+ "Attrib. Set Name","Attrib. Set Name"
36
+ "Product Type","Produkt Typ"
37
+ "Job Queue","Job Queue"
38
+ "Add New Project","Neues Projekt hinzufügen"
39
+ "Delete Page","Löschen"
40
+ "New","Neu"
41
+ "Option","Option"
42
+ "Cover Template","Cover Template"
43
+ "Article Template","Artikel Template"
44
+ "Ebook Option","Ebook Option"
45
+ "Type","Typ"
46
+ "Shopping Cart Price Rule","Warenkorbpreisregel"
47
+ "PDF Page Offset","PDF Seiten Offset"
48
+ "Use Document Size","Dokumentengröße benutzen"
49
+ "Yes","Ja"
50
+ "No","Nein"
51
+ "Page Size","Seitengröße"
52
+ "Orientation","Ausrichtung"
53
+ "Placment Method","Plazierungsmethode"
54
+ "Grid","Raster"
55
+ "List","Liste"
56
+ "Use Document Bleed Settings","Bleed Einstellungen des Dokumentes benutzen"
57
+ "Print Option","Druck Optionen"
58
+ "&#160;","&#160;"
59
+ "Products","Produkte"
60
+ " "," "
61
+ "Insert Products","Produkt einfügen"
62
+ "SKU","SKU"
63
+ "Product Name","Produktname"
64
+ "Visibility","Sichtbarkeit"
65
+ "Websites","Webseite"
66
+ "Queue Date Start","Queue Start Datum"
67
+ "Priority","Priorität"
68
+ "Continue","Fortsetzen"
69
+ "Promotions","Promotions"
70
+ "Settings","Einstellungen"
71
+ "Manage Project","Projekt verwalten"
72
+ "Refresh","Aktualisieren"
73
+ "Queue Start","Queue Start"
74
+ "Queue Finish","Queue Ende"
75
+ "Job Status","Job Status"
76
+ "Download","Download"
77
+ "Rerun Job","Job neu starten"
78
+ "Cancel","Abbrechen"
79
+ "Start","Job jetzt starten"
80
+ "Hold","Anhalten"
81
+ "Projects","Projekte"
82
+ "Save Project","Projekt speichern"
83
+ "New Project","Neues Projekt"
84
+ "Texte","Texte"
85
+ "Layout","Layout"
86
+ "Project Type","Projekt Typ"
87
+ "Project Information","Projekt Information"
88
+ "Manage Layout Project","Manage Layout Projekt"
89
+ "Are you sure you want to delete current box?","Möchten Sie die aktuelle Box löschen?"
90
+ "Are you sure you want to delete current page?","Möchten Sie die aktuelle Seite löschen?"
91
+ "Styles","Styles"
92
+ "Add New Style","Neuer Style"
93
+ "Save Style","Style speichern"
94
+ "New Style","Neuer Style"
95
+ "CSS-Styles","CSS-Styles"
96
+ "CSS Style","CSS Style"
97
+ "Style Type","Style Typ"
98
+ "Manage Layout Style","Manage Layout Style"
99
+ "Templates","Templates"
100
+ "Add New Template","Neues Template"
101
+ "Save Template","Template speichern"
102
+ "New Template","Neues Template"
103
+ "Template Type","Template Typ"
104
+ "Dependence","Abhänigkeit"
105
+ "Template Information","Template Information"
106
+ "Manage Layout Template","Manage Layout Template"
107
+ "Preview","Vorschau"
108
+ "Export Template","Export Template"
109
+ "Sku","Sku"
110
+ "N/A","N/A"
111
+ "Code","Code"
112
+ "Unit","Einheit"
113
+ "Default","Default"
114
+ "Add new Parameter","Neuer Parameter"
115
+ "Text","Text"
116
+ "Text Area","Text-Block"
117
+ "Number","Number"
118
+ "Color","Farbe"
119
+ "A3","A3"
120
+ "A4","A4"
121
+ "A5","A5"
122
+ "B5","B5"
123
+ "Compact Disc","Compact Disc"
124
+ "DIN A0","DIN A0"
125
+ "DIN A1","DIN A1"
126
+ "DIN A2","DIN A2"
127
+ "DIN A6","DIN A6"
128
+ "DIN A7","DIN A7"
129
+ "Letter (8½ × 11)","Letter (8½ × 11)"
130
+ "Legal (8½ × 14)","Legal (8½ × 14)"
131
+ "Tabloid (11 × 17)","Tabloid (11 × 17)"
132
+ "Product","Produkt"
133
+ "Static","Static"
134
+ "Coupon Code Card","Coupon Code Card"
135
+ "Please Select Template Type","Bitte wählen Sie ein Template Typ"
136
+ "Flyer","Flyer"
137
+ "Multipage Catalog","Multipage Katalog"
138
+ "PHtml","PHtml"
139
+ "Markup","Markup"
140
+ "Please Select Type","Bitte Typ wählen"
141
+ "Coupon Card","Coupon Card"
142
+ "Brochure","Broschüre"
143
+ "EBook (ePub3)","EBook (ePub3)"
144
+ "Please Select","Bitte wählen"
145
+ "Wait","Warten"
146
+ "In Progress","In Arbeit"
147
+ "Canceled","Abgebrochen"
148
+ "Completed","Fertig"
149
+ "Exception","Exception"
150
+ "Low","Low"
151
+ "Medium","Medium"
152
+ "High","High"
153
+ "Very Hight","Very Hight"
154
+ "Rule Name","Rule Name"
155
+ "Description","Beschreibung"
156
+ "Coupon Code","Coupon Code"
157
+ "From Date","Von Datum"
158
+ "To Date","Bis Datum"
159
+ "-- Please Select --","-- Bitte wählen --"
160
+ "URL Shop Website","URL Shop Webseite"
161
+ "URL Product Website","URL Produkt Webseite"
162
+ "Free Text","Freier Text"
163
+ "Media Static Image","Media Static Image"
164
+ "Price","Preis"
165
+ "Price (Formated with symbol)","Preis (Formatiert mit Symbol)"
166
+ "Price (Formated without whitespace)","Preis (Formatiert ohne Leerzeichen)"
167
+ "Price (Formated without symbol)","Preis (Formatiert ohne Symbol)"
168
+ "Minimal Price","Minimal Preis"
169
+ "Special Price","Special Preis"
170
+ "Currency Code","Währungs-Code"
171
+ "Currency Symbol","Währungs-Symbol"
172
+ "Digits","Digits"
173
+ "Decimal Places","Dezimalstellen"
174
+ "Top","Oben"
175
+ "Middle","Mitte"
176
+ "Bottom","Unten"
177
+ "None","Keiner"
178
+ "Fit Text to Box","Text an Box anpassen"
179
+ "Free","Frei"
180
+ "US #10","US #10"
181
+ "Invoice (5½ × 8½)","Invoice (5½ × 8½)"
182
+ "Executive (7¼ × 10½)","Executive (7¼ × 10½)"
183
+ "Broadsheet (17 × 22)","Broadsheet (17 × 22)"
184
+ "Portrait","Portrait"
185
+ "Landscape","Landscape"
186
+ "Images","Bilder"
187
+ "Block","Block"
188
+ "Barcode","Barcode"
189
+ "Group","Gruppe"
190
+ "Bring to Front","Ganz nach vorne"
191
+ "Bring Forward","Nach vorne"
192
+ "Send Backward","Nach hinten"
193
+ "Send to Back","Ganz nach hinten"
194
+ "Copy Box","Box kopieren"
195
+ "Paste Box","Box einfügen"
196
+ "Remove Box","Box löschen"
197
+ "Unlink Template","Unlink Template"
198
+ "Group Box","Gruppieren"
199
+ "Ungroup Box","Gruppe aufheben"
200
+ "",""
201
+ "Left","Links"
202
+ "Right","Rechts"
203
+ "Center","Mitte"
204
+ "Justify","Justify"
205
+ "RGB","RGB"
206
+ "HSL/CMYK","HSL/CMYK"
207
+ "Standard","Standard"
208
+ "Inhalt proportional anpassen","Inhalt proportional anpassen"
209
+ "Rahmen proportional füllen","Rahmen proportional füllen"
210
+ "Datamatrix (ISO/IEC 16022)","Datamatrix (ISO/IEC 16022)"
211
+ "PDF417 (ISO/IEC 15438:2006)","PDF417 (ISO/IEC 15438:2006)"
212
+ "QR-CODE Low","QR-CODE Low"
213
+ "QR-CODE Medium","QR-CODE Medium"
214
+ "QR-CODE Best","QR-CODE Best"
215
+ "Uploaded file has no extension","Datei hat keine Dateierweiterung"
216
+ "File does not contain data. Please upload another one","Datei hat keinen Inhalt. Bitte andere verwenden"
217
+ "Please select","Please select"
218
+ "PHP Modul DOMDocument required","PHP Modul DOMDocument required"
219
+ "Invalid folder name. Please, use alphanumeric characters","Fehlerhafter Ordnernamen."
220
+ "Such directory already exists. Try another folder name","Ordner bereits vorhanden."
221
+ "Cannot create new directory","Ordner kann nicht angelegt werden."
222
+ "Cannot upload file","Upload nicht möglich"
223
+ "SNM Publication","SNM Publication"
224
+ "This generator no longer exists.","Dieser Generator ist nicht mehr vorhanden."
225
+ "The generator has been saved.","Generator wurde gespeichert."
226
+ "The generator has been duplicated.","Generator wurde dupliziert."
227
+ "The generator has been deleted.","Generator wurde gelöscht."
228
+ "Unable to find a generator to delete.","Generator konnte nicht gefunden werden."
229
+ "Please select.","Bitte auswählen."
230
+ "An error occurred while deleting record(s).","Während des Löschen ist eine Fehler aufgetreten."
231
+ "Import Template","Import Template"
232
+ "Import successfully done.","Import erfolgreich."
233
+ "File is valid! To start import process press ""Import"" button","Datei ist gültig! Zum Starten bitte den ""Import"" button drücken"
234
+ "Please fix errors and re-upload file","Bitte beheben Sie die Fehler und versuchen es nocheinmal"
235
+ "File was not uploaded","Datei konnte nicht geladen werden"
236
+ "Data is invalid or file is not uploaded","Daten sind nicht gültig oder die Datei konnte nicht übertragen werden"
237
+ "This jobqueue no longer exists.","Der Jobqueue-Eintrag existiert nicht mehr."
238
+ "The jobqueue has been saved.","Der Jobqueue-Eintrag wurde gespeichert."
239
+ "The jobqueue has been deleted.","Der Jobqueue-Eintrag wurde gelöscht."
240
+ "Unable to find a jobqueue to delete.","Jobqueue-Eintrag konnte nicht gefunden werden."
241
+ "An error occurred while change record(s).","Ein Fehler ist aufgetreten bei der Änderung"
242
+ "No data found","Daten nicht gefunden"
243
+ "Project","Projekt"
244
+ "This project no longer exists.","Das Projekt e