Version Notes
# Installation
We STRONGLY recommend installing and testing the plugin in a test environment before going live. Please back up your database before installing.
Further information can be found at http://eurotext.screenstepslive.com/s/translationmanager
# Update
Only install once all ongoing projects have been completed / successfully imported.
We STRONGLY recommend installing and testing the update in a test environment before going live. Please back up your database before installing.
Further information can be found at http://eurotext.screenstepslive.com/s/translationmanager
# General terms & conditions for Eurotext AG software applications
http://eurotext.de/en/contact/terms-and-conditions/
Download this release
Release Info
Developer | Eurotext AG |
Extension | eurotext_translationMANAGER |
Version | 3.2.16 |
Comparing to | |
See all releases |
Code changes from version 3.2.14 to 3.2.16
- app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Grid/Massaction.php +5 -5
- app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Main.php +1 -79
- app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Products.php +9 -9
- app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Products/CategoryTreeAjax.php +1 -0
- app/code/community/Eurotext/TranslationManager/Block/Status.php +11 -10
- app/code/community/Eurotext/TranslationManager/Helper/Data.php +9 -9
- app/code/community/Eurotext/TranslationManager/Helper/Eurotext.php +21 -22
- app/code/community/Eurotext/TranslationManager/Helper/Filesystem.php +10 -16
- app/code/community/Eurotext/TranslationManager/Model/EurotextLanguages.php +4 -4
- app/code/community/Eurotext/TranslationManager/Model/Export/Project.php +9 -10
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/Attribute.php +16 -16
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/Category.php +19 -17
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/CmsBlock.php +15 -16
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/CmsPage.php +20 -20
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/CreateControlFile.php +25 -35
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/EmailDatabaseTemplates.php +7 -7
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/EmailFileTemplates.php +6 -6
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/FtpUpload.php +12 -12
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/LocaleCsvFiles.php +9 -8
- app/code/community/Eurotext/TranslationManager/Model/Export/Project/Product.php +41 -39
- app/code/community/Eurotext/TranslationManager/Model/Extractor.php +1 -1
- app/code/community/Eurotext/TranslationManager/Model/Import/Project.php +15 -27
- app/code/community/Eurotext/TranslationManager/Model/Import/Project/Attributes.php +8 -8
- app/code/community/Eurotext/TranslationManager/Model/Import/Project/Categories.php +5 -5
- app/code/community/Eurotext/TranslationManager/Model/Import/Project/CmsBlocks.php +6 -7
- app/code/community/Eurotext/TranslationManager/Model/Import/Project/CmsPages.php +7 -6
- app/code/community/Eurotext/TranslationManager/Model/Import/Project/EmailTemplates.php +2 -2
- app/code/community/Eurotext/TranslationManager/Model/Import/Project/LocaleCsvFiles.php +4 -5
- app/code/community/Eurotext/TranslationManager/Model/Import/Project/Product.php +22 -25
- app/code/community/Eurotext/TranslationManager/Model/Import/Queue.php +2 -1
- app/code/community/Eurotext/TranslationManager/Model/Import/Validator.php +2 -2
- app/code/community/Eurotext/TranslationManager/Model/Observer.php +8 -8
- app/code/community/Eurotext/TranslationManager/Model/ProductLoader.php +19 -2
- app/code/community/Eurotext/TranslationManager/Model/Project.php +1 -5
- app/code/community/Eurotext/TranslationManager/Model/Resource/Csv/Collection.php +3 -4
- app/code/community/Eurotext/TranslationManager/Model/Xml/Import/Cms/BlockReader.php +4 -5
- app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/.DS_Store +0 -0
- app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/Project/ExportController.php +6 -6
- app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/Project/ImportController.php +5 -7
- app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/ProjectController.php +34 -12
- app/code/community/Eurotext/TranslationManager/etc/config.xml +1 -1
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/install-3.0.0.php +1 -1
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/mysql4-install-1.0.0.0.php +68 -68
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/mysql4-upgrade-1.0.0.5-1.0.0.6.php +7 -7
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/mysql4-upgrade-1.0.0.7-1.0.0.8.php +1 -1
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.1.2.1-1.2.0.0.php +8 -8
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.0.0-1.2.0.1.php +3 -3
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.0.1-1.2.0.2.php +9 -9
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.0.2-1.2.0.3.php +12 -12
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.1-1.2.2.php +3 -3
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.2-2.0.0.php +2 -2
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-2.0.0-2.0.1.php +2 -2
- app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-2.0.1-2.0.2.php +2 -2
- app/code/community/Eurotext/Uploader/Block/Abstract.php +4 -4
- app/code/community/Eurotext/Uploader/Helper/File.php +0 -1
- app/code/community/Eurotext/Uploader/Model/Config/Abstract.php +2 -4
- app/design/adminhtml/base/default/template/eurotext/translationmanager/export/overview.phtml +2 -2
- app/design/adminhtml/base/default/template/eurotext/translationmanager/help.phtml +58 -24
- package.xml +5 -124
app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Grid/Massaction.php
CHANGED
@@ -31,10 +31,10 @@ class Eurotext_TranslationManager_Block_Adminhtml_Eurotext_Project_Edit_Tab_Grid
|
|
31 |
$this->getParentBlock()->getSelected()
|
32 |
);
|
33 |
if ($selected) {
|
34 |
-
return
|
35 |
-
} else {
|
36 |
-
return '';
|
37 |
}
|
|
|
|
|
38 |
}
|
39 |
|
40 |
/**
|
@@ -51,8 +51,8 @@ class Eurotext_TranslationManager_Block_Adminhtml_Eurotext_Project_Edit_Tab_Grid
|
|
51 |
$selected = explode(',', $selected);
|
52 |
|
53 |
return $selected;
|
54 |
-
} else {
|
55 |
-
return [];
|
56 |
}
|
|
|
|
|
57 |
}
|
58 |
}
|
31 |
$this->getParentBlock()->getSelected()
|
32 |
);
|
33 |
if ($selected) {
|
34 |
+
return implode(',', $selected);
|
|
|
|
|
35 |
}
|
36 |
+
|
37 |
+
return '';
|
38 |
}
|
39 |
|
40 |
/**
|
51 |
$selected = explode(',', $selected);
|
52 |
|
53 |
return $selected;
|
|
|
|
|
54 |
}
|
55 |
+
|
56 |
+
return [];
|
57 |
}
|
58 |
}
|
app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Main.php
CHANGED
@@ -109,85 +109,7 @@ class Eurotext_TranslationManager_Block_Adminhtml_Eurotext_Project_Edit_Tab_Main
|
|
109 |
$fieldset = $form->addFieldset(
|
110 |
'exported_data',
|
111 |
[
|
112 |
-
'legend' => $helper->__('
|
113 |
-
]
|
114 |
-
);
|
115 |
-
|
116 |
-
$fieldset->addField(
|
117 |
-
'comment',
|
118 |
-
'note',
|
119 |
-
[
|
120 |
-
'text' => '<b>' . $helper->__('Only data is exported, which is not translated yet.') . '</b>',
|
121 |
-
]
|
122 |
-
);
|
123 |
-
|
124 |
-
$fieldset->addField('productmode_hidden', 'hidden', ['name' => 'productmode', 'value' => 0]);
|
125 |
-
$fieldset->addField(
|
126 |
-
'productmode',
|
127 |
-
'checkbox',
|
128 |
-
[
|
129 |
-
'name' => 'productmode',
|
130 |
-
'label' => $helper->__('Products'),
|
131 |
-
'value' => 1,
|
132 |
-
'checked' => $project->getProductmode(),
|
133 |
-
'disabled' => !$project->isEditable() ? 'disabled="disabled"' : '',
|
134 |
-
'onclick' => 'this.value = this.checked ? 1 : 0;',
|
135 |
-
]
|
136 |
-
);
|
137 |
-
|
138 |
-
$fieldset->addField('categorymode_hidden', 'hidden', ['name' => 'categorymode', 'value' => 0]);
|
139 |
-
$fieldset->addField(
|
140 |
-
'categorymode',
|
141 |
-
'checkbox',
|
142 |
-
[
|
143 |
-
'name' => 'categorymode',
|
144 |
-
'label' => $helper->__('Categories'),
|
145 |
-
'value' => 1,
|
146 |
-
'checked' => $project->getCategorymode(),
|
147 |
-
'disabled' => !$project->isEditable() ? 'disabled="disabled"' : '',
|
148 |
-
'onclick' => 'this.value = this.checked ? 1 : 0;',
|
149 |
-
]
|
150 |
-
);
|
151 |
-
|
152 |
-
$fieldset->addField('cmsmode_hidden', 'hidden', ['name' => 'cmsmode', 'value' => 0]);
|
153 |
-
$fieldset->addField(
|
154 |
-
'cmsmode',
|
155 |
-
'checkbox',
|
156 |
-
[
|
157 |
-
'name' => 'cmsmode',
|
158 |
-
'label' => $helper->__('CMS Pages and Blocks'),
|
159 |
-
'value' => 1,
|
160 |
-
'checked' => $project->getCmsmode(),
|
161 |
-
'disabled' => !$project->isEditable() ? 'disabled="disabled"' : '',
|
162 |
-
'onclick' => 'this.value = this.checked ? 1 : 0;',
|
163 |
-
]
|
164 |
-
);
|
165 |
-
|
166 |
-
$fieldset->addField('templatemode_hidden', 'hidden', ['name' => 'templatemode', 'value' => 0]);
|
167 |
-
$fieldset->addField(
|
168 |
-
'templatemode',
|
169 |
-
'checkbox',
|
170 |
-
[
|
171 |
-
'name' => 'templatemode',
|
172 |
-
'label' => $helper->__('Email Templates'),
|
173 |
-
'value' => 1,
|
174 |
-
'checked' => $project->getTemplatemode(),
|
175 |
-
'disabled' => !$project->isEditable() ? 'disabled="disabled"' : '',
|
176 |
-
'onclick' => 'this.value = this.checked ? 1 : 0;',
|
177 |
-
]
|
178 |
-
);
|
179 |
-
|
180 |
-
$fieldset->addField('langfilesmode_hidden', 'hidden', ['name' => 'langfilesmode', 'value' => 0]);
|
181 |
-
$fieldset->addField(
|
182 |
-
'langfilesmode',
|
183 |
-
'checkbox',
|
184 |
-
[
|
185 |
-
'name' => 'langfilesmode',
|
186 |
-
'label' => $helper->__('Translation files'),
|
187 |
-
'value' => 1,
|
188 |
-
'checked' => $project->getLangfilesmode(),
|
189 |
-
'disabled' => !$project->isEditable() ? 'disabled="disabled"' : '',
|
190 |
-
'onclick' => 'this.value = this.checked ? 1 : 0;',
|
191 |
]
|
192 |
);
|
193 |
|
109 |
$fieldset = $form->addFieldset(
|
110 |
'exported_data',
|
111 |
[
|
112 |
+
'legend' => $helper->__('Export all data of the following selection'),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
]
|
114 |
);
|
115 |
|
app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Products.php
CHANGED
@@ -303,17 +303,17 @@ class Eurotext_TranslationManager_Block_Adminhtml_Eurotext_Project_Edit_Tab_Prod
|
|
303 |
if (!$category->getIsAnchor()) {
|
304 |
$collection = $category->getProductCollection();
|
305 |
|
306 |
-
return $collection;
|
307 |
-
} else {
|
308 |
-
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
|
309 |
-
->addPathFilter("^{$category->getPath()}/[0-9]*$");
|
310 |
-
$categories = $categoryCollection->getAllIds();
|
311 |
-
$categories[] = $category->getId();
|
312 |
-
$collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id')
|
313 |
-
->addAttributeToFilter('category_id', ['in' => $categories]);
|
314 |
-
|
315 |
return $collection;
|
316 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
317 |
}
|
318 |
|
319 |
return $collection;
|
303 |
if (!$category->getIsAnchor()) {
|
304 |
$collection = $category->getProductCollection();
|
305 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
return $collection;
|
307 |
}
|
308 |
+
|
309 |
+
$categoryCollection = Mage::getResourceModel('catalog/category_collection')
|
310 |
+
->addPathFilter("^{$category->getPath()}/[0-9]*$");
|
311 |
+
$categories = $categoryCollection->getAllIds();
|
312 |
+
$categories[] = $category->getId();
|
313 |
+
$collection->joinField('category_id', 'catalog/category_product', 'category_id', 'product_id=entity_id')
|
314 |
+
->addAttributeToFilter('category_id', ['in' => $categories]);
|
315 |
+
|
316 |
+
return $collection;
|
317 |
}
|
318 |
|
319 |
return $collection;
|
app/code/community/Eurotext/TranslationManager/Block/Adminhtml/Eurotext/Project/Edit/Tab/Products/CategoryTreeAjax.php
CHANGED
@@ -12,6 +12,7 @@ class Eurotext_TranslationManager_Block_Adminhtml_Eurotext_Project_Edit_Tab_Prod
|
|
12 |
|
13 |
protected function _getNodeJson($node, $level = 0)
|
14 |
{
|
|
|
15 |
$item = parent::_getNodeJson($node, $level);
|
16 |
if (in_array($node->getId(), $this->getSelectedCategories())) {
|
17 |
$item['checked'] = true;
|
12 |
|
13 |
protected function _getNodeJson($node, $level = 0)
|
14 |
{
|
15 |
+
/** @var $item string[] */
|
16 |
$item = parent::_getNodeJson($node, $level);
|
17 |
if (in_array($node->getId(), $this->getSelectedCategories())) {
|
18 |
$item['checked'] = true;
|
app/code/community/Eurotext/TranslationManager/Block/Status.php
CHANGED
@@ -65,7 +65,7 @@ class Eurotext_TranslationManager_Block_Status extends Mage_Adminhtml_Block_Widg
|
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
-
* @return string[]
|
69 |
*/
|
70 |
private function getLanguagesInStores()
|
71 |
{
|
@@ -96,22 +96,22 @@ class Eurotext_TranslationManager_Block_Status extends Mage_Adminhtml_Block_Widg
|
|
96 |
'module_version' => [
|
97 |
'name' => $this->__('Plugin version'),
|
98 |
'value_now' => $this->configHelper->getModuleVersion(),
|
99 |
-
'value_required' =>
|
100 |
],
|
101 |
'php_version' => [
|
102 |
'name' => $this->__('PHP version'),
|
103 |
'value_now' => PHP_VERSION,
|
104 |
-
'value_required' =>
|
105 |
],
|
106 |
'ftp_extension' => [
|
107 |
'name' => $this->__('FTP-Extension'),
|
108 |
-
'value_now' => extension_loaded('ftp') ? $this->__(
|
109 |
-
'value_required' => $this->__(
|
110 |
],
|
111 |
'zip_extension' => [
|
112 |
'name' => $this->__('ZIP-Extension'),
|
113 |
-
'value_now' => extension_loaded('zip') ? $this->__(
|
114 |
-
'value_required' => $this->__(
|
115 |
],
|
116 |
'max_execution_time' => [
|
117 |
'name' => $this->__("Value for 'max_execution_time'"),
|
@@ -221,7 +221,7 @@ class Eurotext_TranslationManager_Block_Status extends Mage_Adminhtml_Block_Widg
|
|
221 |
);
|
222 |
} else {
|
223 |
$ftpMessage = $this->__(
|
224 |
-
|
225 |
);
|
226 |
$fieldset->addField(
|
227 |
'url_key_scope',
|
@@ -258,11 +258,12 @@ class Eurotext_TranslationManager_Block_Status extends Mage_Adminhtml_Block_Widg
|
|
258 |
|
259 |
/**
|
260 |
* @param string $dir
|
|
|
261 |
*/
|
262 |
private function checkDirectory($dir)
|
263 |
{
|
264 |
-
if (!is_dir($dir)) {
|
265 |
-
|
266 |
}
|
267 |
|
268 |
return is_dir_writeable($dir);
|
65 |
}
|
66 |
|
67 |
/**
|
68 |
+
* @return string[][]
|
69 |
*/
|
70 |
private function getLanguagesInStores()
|
71 |
{
|
96 |
'module_version' => [
|
97 |
'name' => $this->__('Plugin version'),
|
98 |
'value_now' => $this->configHelper->getModuleVersion(),
|
99 |
+
'value_required' => '—',
|
100 |
],
|
101 |
'php_version' => [
|
102 |
'name' => $this->__('PHP version'),
|
103 |
'value_now' => PHP_VERSION,
|
104 |
+
'value_required' => '> 5.5.0',
|
105 |
],
|
106 |
'ftp_extension' => [
|
107 |
'name' => $this->__('FTP-Extension'),
|
108 |
+
'value_now' => extension_loaded('ftp') ? $this->__('Installed') : $this->__('Missing'),
|
109 |
+
'value_required' => $this->__('Installed'),
|
110 |
],
|
111 |
'zip_extension' => [
|
112 |
'name' => $this->__('ZIP-Extension'),
|
113 |
+
'value_now' => extension_loaded('zip') ? $this->__('Installed') : $this->__('Missing'),
|
114 |
+
'value_required' => $this->__('Installed'),
|
115 |
],
|
116 |
'max_execution_time' => [
|
117 |
'name' => $this->__("Value for 'max_execution_time'"),
|
221 |
);
|
222 |
} else {
|
223 |
$ftpMessage = $this->__(
|
224 |
+
'Your Magento installation allows the translation of URLs of categories and products.'
|
225 |
);
|
226 |
$fieldset->addField(
|
227 |
'url_key_scope',
|
258 |
|
259 |
/**
|
260 |
* @param string $dir
|
261 |
+
* @return bool
|
262 |
*/
|
263 |
private function checkDirectory($dir)
|
264 |
{
|
265 |
+
if (!@mkdir($dir, 0777, true) && !is_dir($dir)) {
|
266 |
+
throw new Exception(sprintf('Directory %s could not be created.', $dir));
|
267 |
}
|
268 |
|
269 |
return is_dir_writeable($dir);
|
app/code/community/Eurotext/TranslationManager/Helper/Data.php
CHANGED
@@ -5,27 +5,27 @@ class Eurotext_TranslationManager_Helper_Data extends Mage_Core_Helper_Abstract
|
|
5 |
/**
|
6 |
* @var string
|
7 |
*/
|
8 |
-
private $helpUrl =
|
9 |
|
10 |
/**
|
11 |
* @var string
|
12 |
*/
|
13 |
-
private $liveRegistrationEmail =
|
14 |
|
15 |
/**
|
16 |
* @var string
|
17 |
*/
|
18 |
-
private $liveRegistrationEmailName =
|
19 |
|
20 |
/**
|
21 |
* @var string
|
22 |
*/
|
23 |
-
private $debugRegistrationEmail =
|
24 |
|
25 |
/**
|
26 |
* @var string
|
27 |
*/
|
28 |
-
private $debugRegistrationEmailName =
|
29 |
|
30 |
/**
|
31 |
* @var Eurotext_TranslationManager_Helper_Config
|
@@ -92,14 +92,14 @@ class Eurotext_TranslationManager_Helper_Data extends Mage_Core_Helper_Abstract
|
|
92 |
{
|
93 |
$recipient = [];
|
94 |
if ($this->configHelper->isDebugMode()) {
|
95 |
-
$recipient[
|
96 |
-
$recipient[
|
97 |
|
98 |
return $recipient;
|
99 |
}
|
100 |
|
101 |
-
$recipient[
|
102 |
-
$recipient[
|
103 |
|
104 |
return $recipient;
|
105 |
}
|
5 |
/**
|
6 |
* @var string
|
7 |
*/
|
8 |
+
private $helpUrl = 'http://www.eurotext.de';
|
9 |
|
10 |
/**
|
11 |
* @var string
|
12 |
*/
|
13 |
+
private $liveRegistrationEmail = 'magento@eurotext.de';
|
14 |
|
15 |
/**
|
16 |
* @var string
|
17 |
*/
|
18 |
+
private $liveRegistrationEmailName = 'Eurotext Magento (Live)';
|
19 |
|
20 |
/**
|
21 |
* @var string
|
22 |
*/
|
23 |
+
private $debugRegistrationEmail = 'debug@eurotext.de';
|
24 |
|
25 |
/**
|
26 |
* @var string
|
27 |
*/
|
28 |
+
private $debugRegistrationEmailName = 'Eurotext Magento (Debug)';
|
29 |
|
30 |
/**
|
31 |
* @var Eurotext_TranslationManager_Helper_Config
|
92 |
{
|
93 |
$recipient = [];
|
94 |
if ($this->configHelper->isDebugMode()) {
|
95 |
+
$recipient['email'] = $this->debugRegistrationEmail;
|
96 |
+
$recipient['name'] = $this->debugRegistrationEmailName;
|
97 |
|
98 |
return $recipient;
|
99 |
}
|
100 |
|
101 |
+
$recipient['email'] = $this->liveRegistrationEmail;
|
102 |
+
$recipient['name'] = $this->liveRegistrationEmailName;
|
103 |
|
104 |
return $recipient;
|
105 |
}
|
app/code/community/Eurotext/TranslationManager/Helper/Eurotext.php
CHANGED
@@ -10,9 +10,9 @@ class Eurotext_TranslationManager_Helper_Eurotext extends Mage_Core_Helper_Abstr
|
|
10 |
$lastSep = strrpos($rpath, DIRECTORY_SEPARATOR);
|
11 |
if ($lastSep >= 0) {
|
12 |
return substr($rpath, 0, $lastSep);
|
13 |
-
} else {
|
14 |
-
return $path;
|
15 |
}
|
|
|
|
|
16 |
}
|
17 |
|
18 |
// Extract directory-part of path
|
@@ -81,11 +81,10 @@ class Eurotext_TranslationManager_Helper_Eurotext extends Mage_Core_Helper_Abstr
|
|
81 |
return false;
|
82 |
}
|
83 |
|
84 |
-
public function zipFolder($directory, $zipFile, $comment =
|
85 |
{
|
86 |
-
|
87 |
$helper = Mage::helper('eurotext_translationmanager');
|
88 |
-
if (!class_exists(
|
89 |
$helper->log('ZipArchive Class does not exist!', Zend_Log::CRIT);
|
90 |
|
91 |
return false;
|
@@ -96,7 +95,7 @@ class Eurotext_TranslationManager_Helper_Eurotext extends Mage_Core_Helper_Abstr
|
|
96 |
|
97 |
$mode = file_exists($zipFile) ? ZipArchive::OVERWRITE : ZipArchive::CREATE;
|
98 |
|
99 |
-
$zip = new ZipArchive;
|
100 |
$zipOpeningResult = $zip->open($zipFile, $mode);
|
101 |
|
102 |
if ($zipOpeningResult !== true) {
|
@@ -106,21 +105,20 @@ class Eurotext_TranslationManager_Helper_Eurotext extends Mage_Core_Helper_Abstr
|
|
106 |
return false;
|
107 |
}
|
108 |
|
109 |
-
if ($comment !=
|
110 |
$zip->setArchiveComment($comment);
|
111 |
}
|
112 |
|
113 |
foreach ($items as $item) {
|
114 |
if ($item['full_path'] == $zipFile) {
|
115 |
-
|
116 |
-
}
|
117 |
-
|
118 |
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
}
|
124 |
}
|
125 |
}
|
126 |
|
@@ -145,20 +143,21 @@ class Eurotext_TranslationManager_Helper_Eurotext extends Mage_Core_Helper_Abstr
|
|
145 |
while (false !== ($item = readdir($dir))) {
|
146 |
$full_path = $dirpath . DIRECTORY_SEPARATOR . $item;
|
147 |
if (($item == ".") || ($item == "..")) {
|
148 |
-
|
149 |
-
}
|
|
|
150 |
$rvItem = [];
|
151 |
$rvItem['full_path'] = $full_path;
|
152 |
$rvItem['name'] = $item;
|
153 |
-
$rvItem['type'] =
|
154 |
-
|
155 |
} elseif (is_dir($full_path)) {
|
156 |
if ($enumerateDirs) {
|
157 |
$rvItem = [];
|
158 |
$rvItem['full_path'] = $full_path;
|
159 |
$rvItem['name'] = $item;
|
160 |
-
$rvItem['type'] =
|
161 |
-
|
162 |
}
|
163 |
|
164 |
if ($recurse) {
|
@@ -178,7 +177,7 @@ class Eurotext_TranslationManager_Helper_Eurotext extends Mage_Core_Helper_Abstr
|
|
178 |
}
|
179 |
|
180 |
if ($sortResult) {
|
181 |
-
usort($result, [$this,
|
182 |
}
|
183 |
|
184 |
return $result;
|
10 |
$lastSep = strrpos($rpath, DIRECTORY_SEPARATOR);
|
11 |
if ($lastSep >= 0) {
|
12 |
return substr($rpath, 0, $lastSep);
|
|
|
|
|
13 |
}
|
14 |
+
|
15 |
+
return $path;
|
16 |
}
|
17 |
|
18 |
// Extract directory-part of path
|
81 |
return false;
|
82 |
}
|
83 |
|
84 |
+
public function zipFolder($directory, $zipFile, $comment = '')
|
85 |
{
|
|
|
86 |
$helper = Mage::helper('eurotext_translationmanager');
|
87 |
+
if (!class_exists(ZipArchive::class)) {
|
88 |
$helper->log('ZipArchive Class does not exist!', Zend_Log::CRIT);
|
89 |
|
90 |
return false;
|
95 |
|
96 |
$mode = file_exists($zipFile) ? ZipArchive::OVERWRITE : ZipArchive::CREATE;
|
97 |
|
98 |
+
$zip = new ZipArchive();
|
99 |
$zipOpeningResult = $zip->open($zipFile, $mode);
|
100 |
|
101 |
if ($zipOpeningResult !== true) {
|
105 |
return false;
|
106 |
}
|
107 |
|
108 |
+
if ($comment != '') {
|
109 |
$zip->setArchiveComment($comment);
|
110 |
}
|
111 |
|
112 |
foreach ($items as $item) {
|
113 |
if ($item['full_path'] == $zipFile) {
|
114 |
+
continue;
|
115 |
+
}
|
116 |
+
$inZipPath = substr($item['full_path'], strlen($dirpath) + 1);
|
117 |
|
118 |
+
if ($item['type'] == 'dir') {
|
119 |
+
$zip->addEmptyDir($inZipPath);
|
120 |
+
} else {
|
121 |
+
$zip->addFile($item['full_path'], $inZipPath);
|
|
|
122 |
}
|
123 |
}
|
124 |
|
143 |
while (false !== ($item = readdir($dir))) {
|
144 |
$full_path = $dirpath . DIRECTORY_SEPARATOR . $item;
|
145 |
if (($item == ".") || ($item == "..")) {
|
146 |
+
continue;
|
147 |
+
}
|
148 |
+
if ($enumerateFiles && is_file($full_path)) {
|
149 |
$rvItem = [];
|
150 |
$rvItem['full_path'] = $full_path;
|
151 |
$rvItem['name'] = $item;
|
152 |
+
$rvItem['type'] = 'file';
|
153 |
+
$result[] = $rvItem;
|
154 |
} elseif (is_dir($full_path)) {
|
155 |
if ($enumerateDirs) {
|
156 |
$rvItem = [];
|
157 |
$rvItem['full_path'] = $full_path;
|
158 |
$rvItem['name'] = $item;
|
159 |
+
$rvItem['type'] = 'dir';
|
160 |
+
$result[] = $rvItem;
|
161 |
}
|
162 |
|
163 |
if ($recurse) {
|
177 |
}
|
178 |
|
179 |
if ($sortResult) {
|
180 |
+
usort($result, [$this, 'compareFileItems']);
|
181 |
}
|
182 |
|
183 |
return $result;
|
app/code/community/Eurotext/TranslationManager/Helper/Filesystem.php
CHANGED
@@ -11,10 +11,8 @@ class Eurotext_TranslationManager_Helper_Filesystem
|
|
11 |
{
|
12 |
$xmlDir = $this->getExportXMLPath($project);
|
13 |
$xmlDir .= DS . $subdir;
|
14 |
-
if (!is_dir($xmlDir)) {
|
15 |
-
|
16 |
-
|
17 |
-
return $xmlDir;
|
18 |
}
|
19 |
|
20 |
return $xmlDir;
|
@@ -39,7 +37,7 @@ class Eurotext_TranslationManager_Helper_Filesystem
|
|
39 |
*/
|
40 |
private function createHtaccessFile($dir)
|
41 |
{
|
42 |
-
$htaccessFilename = $dir . DS .
|
43 |
if (!is_file($htaccessFilename)) {
|
44 |
file_put_contents($htaccessFilename, "# Eurotext Export folder\nOrder Deny,Allow\nDeny From All");
|
45 |
}
|
@@ -53,10 +51,8 @@ class Eurotext_TranslationManager_Helper_Filesystem
|
|
53 |
private function createProjectExportDirectory(Eurotext_TranslationManager_Model_Project $project, $dir)
|
54 |
{
|
55 |
$dir .= DS . "projects/{$project->getId()}/export";
|
56 |
-
if (!is_dir($dir)) {
|
57 |
-
|
58 |
-
|
59 |
-
return $dir;
|
60 |
}
|
61 |
|
62 |
return $dir;
|
@@ -67,12 +63,10 @@ class Eurotext_TranslationManager_Helper_Filesystem
|
|
67 |
*/
|
68 |
private function tryCreateEurotextVarDirectory($dir)
|
69 |
{
|
70 |
-
if (!is_dir($dir)) {
|
71 |
-
|
72 |
-
Mage::
|
73 |
-
|
74 |
-
throw new Magento_Exception('Eurotext working directory could not be created.');
|
75 |
-
}
|
76 |
}
|
77 |
}
|
78 |
|
@@ -82,7 +76,7 @@ class Eurotext_TranslationManager_Helper_Filesystem
|
|
82 |
*/
|
83 |
public function getFilenameSafeString($filename)
|
84 |
{
|
85 |
-
$filename = trim(
|
86 |
$filename = preg_replace('#[^a-z0-9-_.]#', '-', $filename);
|
87 |
|
88 |
do {
|
11 |
{
|
12 |
$xmlDir = $this->getExportXMLPath($project);
|
13 |
$xmlDir .= DS . $subdir;
|
14 |
+
if (!@mkdir($xmlDir, 0777, true) && !is_dir($xmlDir)) {
|
15 |
+
throw new Exception(sprintf('Directory %s could not be created.', $xmlDir));
|
|
|
|
|
16 |
}
|
17 |
|
18 |
return $xmlDir;
|
37 |
*/
|
38 |
private function createHtaccessFile($dir)
|
39 |
{
|
40 |
+
$htaccessFilename = $dir . DS . '.htaccess';
|
41 |
if (!is_file($htaccessFilename)) {
|
42 |
file_put_contents($htaccessFilename, "# Eurotext Export folder\nOrder Deny,Allow\nDeny From All");
|
43 |
}
|
51 |
private function createProjectExportDirectory(Eurotext_TranslationManager_Model_Project $project, $dir)
|
52 |
{
|
53 |
$dir .= DS . "projects/{$project->getId()}/export";
|
54 |
+
if (!@mkdir($dir, 0777, true) && !is_dir($dir)) {
|
55 |
+
throw new Exception(sprintf('Directory %s could not be created.', $dir));
|
|
|
|
|
56 |
}
|
57 |
|
58 |
return $dir;
|
63 |
*/
|
64 |
private function tryCreateEurotextVarDirectory($dir)
|
65 |
{
|
66 |
+
if (!@mkdir($dir, 0777, true) && !is_dir($dir)) {
|
67 |
+
Mage::helper('eurotext_translationmanager')
|
68 |
+
->log('Working directory could not be created in ' . Mage::getBaseDir('var'), Zend_Log::CRIT);
|
69 |
+
throw new Magento_Exception('Eurotext working directory could not be created.');
|
|
|
|
|
70 |
}
|
71 |
}
|
72 |
|
76 |
*/
|
77 |
public function getFilenameSafeString($filename)
|
78 |
{
|
79 |
+
$filename = strtolower(trim($filename));
|
80 |
$filename = preg_replace('#[^a-z0-9-_.]#', '-', $filename);
|
81 |
|
82 |
do {
|
app/code/community/Eurotext/TranslationManager/Model/EurotextLanguages.php
CHANGED
@@ -122,8 +122,8 @@ class Eurotext_TranslationManager_Model_EurotextLanguages
|
|
122 |
|
123 |
return [
|
124 |
'locale' => $locale,
|
125 |
-
'locale_eurotext' =>
|
126 |
-
'lang_name' => Mage::helper('eurotext_translationmanager')->__(
|
127 |
'supported' => false,
|
128 |
];
|
129 |
}
|
@@ -138,8 +138,8 @@ class Eurotext_TranslationManager_Model_EurotextLanguages
|
|
138 |
|
139 |
return [
|
140 |
'locale' => $locale,
|
141 |
-
'locale_eurotext' =>
|
142 |
-
'lang_name' => Mage::helper('eurotext_translationmanager')->__(
|
143 |
'supported' => false,
|
144 |
];
|
145 |
}
|
122 |
|
123 |
return [
|
124 |
'locale' => $locale,
|
125 |
+
'locale_eurotext' => '-',
|
126 |
+
'lang_name' => Mage::helper('eurotext_translationmanager')->__('Unsupported language'),
|
127 |
'supported' => false,
|
128 |
];
|
129 |
}
|
138 |
|
139 |
return [
|
140 |
'locale' => $locale,
|
141 |
+
'locale_eurotext' => '-',
|
142 |
+
'lang_name' => Mage::helper('eurotext_translationmanager')->__('Unsupported language'),
|
143 |
'supported' => false,
|
144 |
];
|
145 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project.php
CHANGED
@@ -63,7 +63,7 @@ class Eurotext_TranslationManager_Model_Export_Project
|
|
63 |
->validateFtpConnection();
|
64 |
$this->setDataOnStatusBlock(
|
65 |
$block,
|
66 |
-
['offset' =>
|
67 |
);
|
68 |
} elseif ($step == self::STEP_BUILD_LANGXML) {
|
69 |
$rvSub = $this->ajaxexportAction_BuildLangXML($project, $offset);
|
@@ -92,18 +92,18 @@ class Eurotext_TranslationManager_Model_Export_Project
|
|
92 |
} elseif ($step == self::STEP_GENERATE_CONTROL_FILE) {
|
93 |
$this->ajaxexportAction_GenerateControlFile($project);
|
94 |
$block->setStep(self::STEP_COMPRESS_FILES);
|
95 |
-
$block->setStatusMsg($this->helper->__(
|
96 |
} elseif ($step == self::STEP_COMPRESS_FILES) {
|
97 |
$this->ajaxexportAction_CompressFiles($project);
|
98 |
$block->setStep(self::STEP_TRANSMIT_ARCHIVE);
|
99 |
-
$block->setStatusMsg($this->helper->__(
|
100 |
} elseif ($step == self::STEP_TRANSMIT_ARCHIVE) {
|
101 |
$this->ajaxexportAction_TransmitArchive($project);
|
102 |
$block->setStep(self::STEP_DONE);
|
103 |
-
$block->setStatusMsg($this->helper->__(
|
104 |
} else {
|
105 |
$block->setStep(self::STEP_DONE);
|
106 |
-
$block->setStatusMsg($this->helper->__(
|
107 |
$block->setStatusCode('success');
|
108 |
$block->setFinished(true);
|
109 |
}
|
@@ -211,13 +211,12 @@ class Eurotext_TranslationManager_Model_Export_Project
|
|
211 |
|
212 |
/**
|
213 |
* @param Eurotext_TranslationManager_Model_Project $project
|
214 |
-
* @return mixed[]
|
215 |
*/
|
216 |
private function ajaxexportAction_CompressFiles(Eurotext_TranslationManager_Model_Project $project)
|
217 |
{
|
218 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')->getExportXMLPath($project);
|
219 |
$this->getEurotextHelper()
|
220 |
-
->zipFolder($xmlDir, $this->getProjectZipFilename($project),
|
221 |
}
|
222 |
|
223 |
/**
|
@@ -228,7 +227,7 @@ class Eurotext_TranslationManager_Model_Export_Project
|
|
228 |
{
|
229 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')->getExportXMLPath($project);
|
230 |
|
231 |
-
if ($project->getZipFilename() !=
|
232 |
return $xmlDir . DS . $project->getZipFilename();
|
233 |
}
|
234 |
|
@@ -273,12 +272,12 @@ class Eurotext_TranslationManager_Model_Export_Project
|
|
273 |
private function generateZipFilename(Eurotext_TranslationManager_Model_Project $project)
|
274 |
{
|
275 |
$filename = sprintf(
|
276 |
-
|
277 |
Mage::helper('eurotext_translationmanager/filesystem')
|
278 |
->getFilenameSafeString($this->configHelper->getShopname()),
|
279 |
Mage::helper('eurotext_translationmanager/filesystem')
|
280 |
->getFilenameSafeString($this->configHelper->getCustomerId()),
|
281 |
-
date(
|
282 |
);
|
283 |
|
284 |
$project->setZipFilename($filename);
|
63 |
->validateFtpConnection();
|
64 |
$this->setDataOnStatusBlock(
|
65 |
$block,
|
66 |
+
['offset' => 0, 'step' => self::STEP_BUILD_LANGXML, 'status_msg' => '']
|
67 |
);
|
68 |
} elseif ($step == self::STEP_BUILD_LANGXML) {
|
69 |
$rvSub = $this->ajaxexportAction_BuildLangXML($project, $offset);
|
92 |
} elseif ($step == self::STEP_GENERATE_CONTROL_FILE) {
|
93 |
$this->ajaxexportAction_GenerateControlFile($project);
|
94 |
$block->setStep(self::STEP_COMPRESS_FILES);
|
95 |
+
$block->setStatusMsg($this->helper->__('Generating ZIP archive'));
|
96 |
} elseif ($step == self::STEP_COMPRESS_FILES) {
|
97 |
$this->ajaxexportAction_CompressFiles($project);
|
98 |
$block->setStep(self::STEP_TRANSMIT_ARCHIVE);
|
99 |
+
$block->setStatusMsg($this->helper->__('Sending data'));
|
100 |
} elseif ($step == self::STEP_TRANSMIT_ARCHIVE) {
|
101 |
$this->ajaxexportAction_TransmitArchive($project);
|
102 |
$block->setStep(self::STEP_DONE);
|
103 |
+
$block->setStatusMsg($this->helper->__('Data sent.'));
|
104 |
} else {
|
105 |
$block->setStep(self::STEP_DONE);
|
106 |
+
$block->setStatusMsg($this->helper->__('Export done.'));
|
107 |
$block->setStatusCode('success');
|
108 |
$block->setFinished(true);
|
109 |
}
|
211 |
|
212 |
/**
|
213 |
* @param Eurotext_TranslationManager_Model_Project $project
|
|
|
214 |
*/
|
215 |
private function ajaxexportAction_CompressFiles(Eurotext_TranslationManager_Model_Project $project)
|
216 |
{
|
217 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')->getExportXMLPath($project);
|
218 |
$this->getEurotextHelper()
|
219 |
+
->zipFolder($xmlDir, $this->getProjectZipFilename($project), 'Created by Eurotext Magento Module');
|
220 |
}
|
221 |
|
222 |
/**
|
227 |
{
|
228 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')->getExportXMLPath($project);
|
229 |
|
230 |
+
if ($project->getZipFilename() != '') {
|
231 |
return $xmlDir . DS . $project->getZipFilename();
|
232 |
}
|
233 |
|
272 |
private function generateZipFilename(Eurotext_TranslationManager_Model_Project $project)
|
273 |
{
|
274 |
$filename = sprintf(
|
275 |
+
'ET-%s-%s-%s.zip',
|
276 |
Mage::helper('eurotext_translationmanager/filesystem')
|
277 |
->getFilenameSafeString($this->configHelper->getShopname()),
|
278 |
Mage::helper('eurotext_translationmanager/filesystem')
|
279 |
->getFilenameSafeString($this->configHelper->getCustomerId()),
|
280 |
+
date('Y-m-d_H-i-s_T')
|
281 |
);
|
282 |
|
283 |
$project->setZipFilename($filename);
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/Attribute.php
CHANGED
@@ -19,7 +19,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Attribute
|
|
19 |
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
20 |
$this->doc->formatOutput = true;
|
21 |
|
22 |
-
$this->nodeAttributes = $this->doc->createElement(
|
23 |
$this->doc->appendChild($this->nodeAttributes);
|
24 |
}
|
25 |
|
@@ -39,12 +39,12 @@ class Eurotext_TranslationManager_Model_Export_Project_Attribute
|
|
39 |
->addFieldToFilter('is_user_defined', 1);
|
40 |
|
41 |
foreach ($attributes as $a) {
|
42 |
-
$comment = $a->getFrontendLabel() == $a->getStoreLabel() ?
|
43 |
|
44 |
-
$nodeAttribute = $this->doc->createElement(
|
45 |
$this->nodeAttributes->appendChild($nodeAttribute);
|
46 |
|
47 |
-
$optionId = $this->doc->createAttribute(
|
48 |
$optionId->value = $a->getId();
|
49 |
$nodeAttribute->appendChild($optionId);
|
50 |
|
@@ -52,12 +52,12 @@ class Eurotext_TranslationManager_Model_Export_Project_Attribute
|
|
52 |
$nodeAttributeComment = $this->doc->createComment($comment);
|
53 |
$nodeAttribute->appendChild($nodeAttributeComment);
|
54 |
|
55 |
-
$nodeName = $this->doc->createElement(
|
56 |
Mage::helper('eurotext_translationmanager/xml')
|
57 |
->appendTextChild($this->doc, $nodeName, $a->getStoreLabel());
|
58 |
|
59 |
-
$attrTranslate = $this->doc->createAttribute(
|
60 |
-
$attrTranslate->value =
|
61 |
$nodeName->appendChild($attrTranslate);
|
62 |
|
63 |
$nodeAttribute->appendChild($nodeName);
|
@@ -71,30 +71,30 @@ class Eurotext_TranslationManager_Model_Export_Project_Attribute
|
|
71 |
$optionCollection->addOrder('sort_order ASC, main_table.option_id', 'ASC');
|
72 |
|
73 |
if ($optionCollection->count()) {
|
74 |
-
$nodeOptions = $this->doc->createElement(
|
75 |
$nodeAttribute->appendChild($nodeOptions);
|
76 |
foreach ($optionCollection as $optionValue) {
|
77 |
$defaultValue = $optionValue->getValue();
|
78 |
$storeValue = $optionValue->getStoreValue();
|
79 |
|
80 |
-
$nodeOption = $this->doc->createElement(
|
81 |
$nodeOptions->appendChild($nodeOption);
|
82 |
|
83 |
-
$optionId = $this->doc->createAttribute(
|
84 |
$optionId->value = $optionValue->getOptionId();
|
85 |
$nodeOption->appendChild($optionId);
|
86 |
|
87 |
-
$optionComment = empty($storeValue) || $defaultValue == $storeValue ?
|
88 |
|
89 |
$nodeAttributeOptionComment = $this->doc->createComment($optionComment);
|
90 |
$nodeOption->appendChild($nodeAttributeOptionComment);
|
91 |
|
92 |
-
$nodeName = $this->doc->createElement(
|
93 |
Mage::helper('eurotext_translationmanager/xml')
|
94 |
->appendTextChild($this->doc, $nodeName, $storeValue ?: $defaultValue);
|
95 |
|
96 |
-
$attrTranslate = $this->doc->createAttribute(
|
97 |
-
$attrTranslate->value =
|
98 |
$nodeName->appendChild($attrTranslate);
|
99 |
|
100 |
$nodeOption->appendChild($nodeName);
|
@@ -109,13 +109,13 @@ class Eurotext_TranslationManager_Model_Export_Project_Attribute
|
|
109 |
$subdir
|
110 |
);
|
111 |
|
112 |
-
$xml_filename = $xmlDir . DS .
|
113 |
|
114 |
$this->doc->save($xml_filename);
|
115 |
}
|
116 |
|
117 |
return [
|
118 |
-
'status_msg' => Mage::helper('eurotext_translationmanager')->__(
|
119 |
'step' => ProjectExporter::STEP_GENERATE_CONTROL_FILE,
|
120 |
'offset' => 1,
|
121 |
];
|
19 |
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
20 |
$this->doc->formatOutput = true;
|
21 |
|
22 |
+
$this->nodeAttributes = $this->doc->createElement('attributes');
|
23 |
$this->doc->appendChild($this->nodeAttributes);
|
24 |
}
|
25 |
|
39 |
->addFieldToFilter('is_user_defined', 1);
|
40 |
|
41 |
foreach ($attributes as $a) {
|
42 |
+
$comment = $a->getFrontendLabel() == $a->getStoreLabel() ? '(default label)' : '(src-storeview label)';
|
43 |
|
44 |
+
$nodeAttribute = $this->doc->createElement('attribute');
|
45 |
$this->nodeAttributes->appendChild($nodeAttribute);
|
46 |
|
47 |
+
$optionId = $this->doc->createAttribute('id');
|
48 |
$optionId->value = $a->getId();
|
49 |
$nodeAttribute->appendChild($optionId);
|
50 |
|
52 |
$nodeAttributeComment = $this->doc->createComment($comment);
|
53 |
$nodeAttribute->appendChild($nodeAttributeComment);
|
54 |
|
55 |
+
$nodeName = $this->doc->createElement('AttributeName');
|
56 |
Mage::helper('eurotext_translationmanager/xml')
|
57 |
->appendTextChild($this->doc, $nodeName, $a->getStoreLabel());
|
58 |
|
59 |
+
$attrTranslate = $this->doc->createAttribute('translate');
|
60 |
+
$attrTranslate->value = '1';
|
61 |
$nodeName->appendChild($attrTranslate);
|
62 |
|
63 |
$nodeAttribute->appendChild($nodeName);
|
71 |
$optionCollection->addOrder('sort_order ASC, main_table.option_id', 'ASC');
|
72 |
|
73 |
if ($optionCollection->count()) {
|
74 |
+
$nodeOptions = $this->doc->createElement('options');
|
75 |
$nodeAttribute->appendChild($nodeOptions);
|
76 |
foreach ($optionCollection as $optionValue) {
|
77 |
$defaultValue = $optionValue->getValue();
|
78 |
$storeValue = $optionValue->getStoreValue();
|
79 |
|
80 |
+
$nodeOption = $this->doc->createElement('option');
|
81 |
$nodeOptions->appendChild($nodeOption);
|
82 |
|
83 |
+
$optionId = $this->doc->createAttribute('id');
|
84 |
$optionId->value = $optionValue->getOptionId();
|
85 |
$nodeOption->appendChild($optionId);
|
86 |
|
87 |
+
$optionComment = empty($storeValue) || $defaultValue == $storeValue ? '(has default label)' : '(has src-storeview label)';
|
88 |
|
89 |
$nodeAttributeOptionComment = $this->doc->createComment($optionComment);
|
90 |
$nodeOption->appendChild($nodeAttributeOptionComment);
|
91 |
|
92 |
+
$nodeName = $this->doc->createElement('OptionName');
|
93 |
Mage::helper('eurotext_translationmanager/xml')
|
94 |
->appendTextChild($this->doc, $nodeName, $storeValue ?: $defaultValue);
|
95 |
|
96 |
+
$attrTranslate = $this->doc->createAttribute('translate');
|
97 |
+
$attrTranslate->value = '1';
|
98 |
$nodeName->appendChild($attrTranslate);
|
99 |
|
100 |
$nodeOption->appendChild($nodeName);
|
109 |
$subdir
|
110 |
);
|
111 |
|
112 |
+
$xml_filename = $xmlDir . DS . 'attributes.xml';
|
113 |
|
114 |
$this->doc->save($xml_filename);
|
115 |
}
|
116 |
|
117 |
return [
|
118 |
+
'status_msg' => Mage::helper('eurotext_translationmanager')->__('Exported attributes.'),
|
119 |
'step' => ProjectExporter::STEP_GENERATE_CONTROL_FILE,
|
120 |
'offset' => 1,
|
121 |
];
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/Category.php
CHANGED
@@ -66,23 +66,23 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
66 |
$categoryDstCollection->addIdFilter($project->getCategories());
|
67 |
}
|
68 |
|
69 |
-
if (
|
70 |
-
$
|
71 |
) {
|
72 |
$emulator->stopEnvironmentEmulation($emulation);
|
73 |
|
74 |
return [
|
75 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_COLLECT_CMSPAGES,
|
76 |
'offset' => 1,
|
77 |
-
'status_msg' => $this->helper->__(
|
78 |
];
|
79 |
}
|
80 |
|
81 |
-
$cats = $this->doc->createElement(
|
82 |
$this->doc->appendChild($cats);
|
83 |
|
84 |
$statusMessage = sprintf(
|
85 |
-
Mage::helper('eurotext_translationmanager')->__(
|
86 |
$page,
|
87 |
$categorySrcCollection->getLastPageNumber()
|
88 |
);
|
@@ -94,7 +94,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
94 |
|
95 |
$statusMessage .= "\n<br />- " . $catSrc->getName();
|
96 |
|
97 |
-
$catNode = $this->doc->createElement(
|
98 |
|
99 |
$this->createDefaultAttributeNodes($catNode, $catDst, $catSrc, $manualSelected);
|
100 |
$this->createCustomCategoryAttributeNodes($catNode, $catDst, $catSrc, $manualSelected);
|
@@ -114,7 +114,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
114 |
}
|
115 |
}
|
116 |
|
117 |
-
if($cats->hasChildNodes()){
|
118 |
|
119 |
$subdir = 'categories';
|
120 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')->getXmlSubdirectoryAndMakeSureItExists(
|
@@ -122,7 +122,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
122 |
$subdir
|
123 |
);
|
124 |
|
125 |
-
$xmlFilename = $xmlDir . DS .
|
126 |
$this->doc->save($xmlFilename);
|
127 |
}
|
128 |
$emulator->stopEnvironmentEmulation($emulation);
|
@@ -162,9 +162,9 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
162 |
* @param DOMElement $catNode
|
163 |
* @param Mage_Catalog_Model_Category $catSrc
|
164 |
*/
|
165 |
-
private function createIdNode($catNode
|
166 |
{
|
167 |
-
$nodeId = $this->doc->createElement(
|
168 |
$nodeId->appendChild($this->doc->createTextNode($catSrc->getId()));
|
169 |
|
170 |
$firstChildNode = $catNode->childNodes->item(0);
|
@@ -177,7 +177,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
177 |
*/
|
178 |
private function createUrlNode($catNode, $catSrc)
|
179 |
{
|
180 |
-
$nodeUrl = $this->doc->createElement(
|
181 |
$nodeUrl->appendChild($this->doc->createTextNode($catSrc->getUrl()));
|
182 |
|
183 |
$secondChildNode = $catNode->childNodes->item(1);
|
@@ -200,7 +200,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
200 |
$valueSrc = $catSrc->getDataUsingMethod($attr);
|
201 |
$valueDst = $catDst->getDataUsingMethod($attr);
|
202 |
|
203 |
-
if ($valueSrc !=
|
204 |
$item = $this->doc->createElement($nodeName);
|
205 |
Mage::helper('eurotext_translationmanager/xml')->appendTextChild($this->doc, $item, $valueSrc);
|
206 |
$catNode->appendChild($item);
|
@@ -210,7 +210,9 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
210 |
|
211 |
/**
|
212 |
* @param DOMElement $catNode
|
|
|
213 |
* @param Mage_Catalog_Model_Category $catSrc
|
|
|
214 |
*/
|
215 |
private function createCustomCategoryAttributeNodes(
|
216 |
DOMElement $catNode,
|
@@ -227,7 +229,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
227 |
$valueSrc = $catSrc->getDataUsingMethod($customCategoryAttribute);
|
228 |
$valueDst = $catDst->getDataUsingMethod($customCategoryAttribute);
|
229 |
|
230 |
-
if ($valueSrc !=
|
231 |
Mage::helper('eurotext_translationmanager/xml')->appendTextNode(
|
232 |
$this->doc,
|
233 |
(string)$customCategoryAttribute,
|
@@ -237,7 +239,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
237 |
}
|
238 |
}
|
239 |
|
240 |
-
if($nodeCustomCategoryAttributes->hasChildNodes()){
|
241 |
$catNode->appendChild($nodeCustomCategoryAttributes);
|
242 |
}
|
243 |
}
|
@@ -256,8 +258,8 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
256 |
) {
|
257 |
$srcUrlKey = $catSrc->getUrlKey();
|
258 |
$dstUrlKey = $catDst->getUrlKey();
|
259 |
-
if ($srcUrlKey !=
|
260 |
-
$item = $this->doc->createElement(
|
261 |
Mage::helper('eurotext_translationmanager/xml')->appendTextChild(
|
262 |
$this->doc,
|
263 |
$item,
|
@@ -283,7 +285,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Category
|
|
283 |
$valueSrc = $catSrc->getDataUsingMethod($attr);
|
284 |
$valueDst = $catDst->getDataUsingMethod($attr);
|
285 |
|
286 |
-
if ($valueSrc !=
|
287 |
$item = $this->doc->createElement($nodeName);
|
288 |
Mage::helper('eurotext_translationmanager/xml')->appendTextChild($this->doc, $item, $valueSrc);
|
289 |
$catNode->appendChild($item);
|
66 |
$categoryDstCollection->addIdFilter($project->getCategories());
|
67 |
}
|
68 |
|
69 |
+
if ($page > $categorySrcCollection->getLastPageNumber() ||
|
70 |
+
(!count($project->getCategories()) && !$project->isExportingAllCategories())
|
71 |
) {
|
72 |
$emulator->stopEnvironmentEmulation($emulation);
|
73 |
|
74 |
return [
|
75 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_COLLECT_CMSPAGES,
|
76 |
'offset' => 1,
|
77 |
+
'status_msg' => $this->helper->__('Exported categories.'),
|
78 |
];
|
79 |
}
|
80 |
|
81 |
+
$cats = $this->doc->createElement('categories');
|
82 |
$this->doc->appendChild($cats);
|
83 |
|
84 |
$statusMessage = sprintf(
|
85 |
+
Mage::helper('eurotext_translationmanager')->__('Batch %s / %s Categories:'),
|
86 |
$page,
|
87 |
$categorySrcCollection->getLastPageNumber()
|
88 |
);
|
94 |
|
95 |
$statusMessage .= "\n<br />- " . $catSrc->getName();
|
96 |
|
97 |
+
$catNode = $this->doc->createElement('category');
|
98 |
|
99 |
$this->createDefaultAttributeNodes($catNode, $catDst, $catSrc, $manualSelected);
|
100 |
$this->createCustomCategoryAttributeNodes($catNode, $catDst, $catSrc, $manualSelected);
|
114 |
}
|
115 |
}
|
116 |
|
117 |
+
if ($cats->hasChildNodes()) {
|
118 |
|
119 |
$subdir = 'categories';
|
120 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')->getXmlSubdirectoryAndMakeSureItExists(
|
122 |
$subdir
|
123 |
);
|
124 |
|
125 |
+
$xmlFilename = $xmlDir . DS . 'cat' . $page . '.xml';
|
126 |
$this->doc->save($xmlFilename);
|
127 |
}
|
128 |
$emulator->stopEnvironmentEmulation($emulation);
|
162 |
* @param DOMElement $catNode
|
163 |
* @param Mage_Catalog_Model_Category $catSrc
|
164 |
*/
|
165 |
+
private function createIdNode($catNode, $catSrc)
|
166 |
{
|
167 |
+
$nodeId = $this->doc->createElement('Id');
|
168 |
$nodeId->appendChild($this->doc->createTextNode($catSrc->getId()));
|
169 |
|
170 |
$firstChildNode = $catNode->childNodes->item(0);
|
177 |
*/
|
178 |
private function createUrlNode($catNode, $catSrc)
|
179 |
{
|
180 |
+
$nodeUrl = $this->doc->createElement('Url');
|
181 |
$nodeUrl->appendChild($this->doc->createTextNode($catSrc->getUrl()));
|
182 |
|
183 |
$secondChildNode = $catNode->childNodes->item(1);
|
200 |
$valueSrc = $catSrc->getDataUsingMethod($attr);
|
201 |
$valueDst = $catDst->getDataUsingMethod($attr);
|
202 |
|
203 |
+
if ($valueSrc != '' && ($valueSrc == $valueDst || $valueDst == '' || $manualSelected)) {
|
204 |
$item = $this->doc->createElement($nodeName);
|
205 |
Mage::helper('eurotext_translationmanager/xml')->appendTextChild($this->doc, $item, $valueSrc);
|
206 |
$catNode->appendChild($item);
|
210 |
|
211 |
/**
|
212 |
* @param DOMElement $catNode
|
213 |
+
* @param Mage_Catalog_Model_Category $catDst
|
214 |
* @param Mage_Catalog_Model_Category $catSrc
|
215 |
+
* @param bool $manualSelected
|
216 |
*/
|
217 |
private function createCustomCategoryAttributeNodes(
|
218 |
DOMElement $catNode,
|
229 |
$valueSrc = $catSrc->getDataUsingMethod($customCategoryAttribute);
|
230 |
$valueDst = $catDst->getDataUsingMethod($customCategoryAttribute);
|
231 |
|
232 |
+
if ($valueSrc != '' && ($valueSrc == $valueDst || $valueDst == '' || $manualSelected)) {
|
233 |
Mage::helper('eurotext_translationmanager/xml')->appendTextNode(
|
234 |
$this->doc,
|
235 |
(string)$customCategoryAttribute,
|
239 |
}
|
240 |
}
|
241 |
|
242 |
+
if ($nodeCustomCategoryAttributes->hasChildNodes()) {
|
243 |
$catNode->appendChild($nodeCustomCategoryAttributes);
|
244 |
}
|
245 |
}
|
258 |
) {
|
259 |
$srcUrlKey = $catSrc->getUrlKey();
|
260 |
$dstUrlKey = $catDst->getUrlKey();
|
261 |
+
if ($srcUrlKey != '' && (($srcUrlKey == $dstUrlKey) || ($dstUrlKey == '') || $manualSelected)) {
|
262 |
+
$item = $this->doc->createElement('UrlKey');
|
263 |
Mage::helper('eurotext_translationmanager/xml')->appendTextChild(
|
264 |
$this->doc,
|
265 |
$item,
|
285 |
$valueSrc = $catSrc->getDataUsingMethod($attr);
|
286 |
$valueDst = $catDst->getDataUsingMethod($attr);
|
287 |
|
288 |
+
if ($valueSrc != '' && ($valueSrc == $valueDst || $valueDst == '' || $manualSelected)) {
|
289 |
$item = $this->doc->createElement($nodeName);
|
290 |
Mage::helper('eurotext_translationmanager/xml')->appendTextChild($this->doc, $item, $valueSrc);
|
291 |
$catNode->appendChild($item);
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/CmsBlock.php
CHANGED
@@ -59,18 +59,18 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsBlock
|
|
59 |
$manualSelected = true;
|
60 |
}
|
61 |
|
62 |
-
if (
|
63 |
-
|
64 |
) {
|
65 |
return [
|
66 |
-
'status_msg' => $helper->__(
|
67 |
'step' => ProjectExporter::STEP_COLLECT_TEMPLATES_FILES,
|
68 |
'offset' => 0,
|
69 |
];
|
70 |
}
|
71 |
|
72 |
$statusMessage = sprintf(
|
73 |
-
Mage::helper('eurotext_translationmanager')->__(
|
74 |
$offset + 1,
|
75 |
$blockSrcCollection->getLastPageNumber()
|
76 |
);
|
@@ -109,16 +109,15 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsBlock
|
|
109 |
}
|
110 |
|
111 |
return [
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
];
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
* @param string $nodeName
|
120 |
* @param string $value
|
121 |
-
* @return DOMElement
|
122 |
*/
|
123 |
private function addNodeToBlockNode($nodeName, $value)
|
124 |
{
|
@@ -138,7 +137,7 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsBlock
|
|
138 |
{
|
139 |
$srcValue = $blockSrc->getDataUsingMethod($attr);
|
140 |
$dstValue = $blockDst->getDataUsingMethod($attr);
|
141 |
-
if ($srcValue !=
|
142 |
$item = $this->doc->createElement($nodeName);
|
143 |
Mage::helper('eurotext_translationmanager/xml')
|
144 |
->appendTextChild($this->doc, $item, $srcValue);
|
@@ -172,10 +171,10 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsBlock
|
|
172 |
*/
|
173 |
private function addBasicInformation(Eurotext_TranslationManager_Model_Project $project, $blockSrc, $blockDst)
|
174 |
{
|
175 |
-
$this->addNodeToBlockNode(
|
176 |
-
$this->addNodeToBlockNode(
|
177 |
-
$this->addNodeToBlockNode(
|
178 |
-
$this->addNodeToBlockNode(
|
179 |
}
|
180 |
|
181 |
/**
|
@@ -191,11 +190,11 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsBlock
|
|
191 |
|
192 |
private function createNewDOMDocument()
|
193 |
{
|
194 |
-
$this->doc
|
195 |
$this->doc->formatOutput = true;
|
196 |
-
$cmsSites
|
197 |
$this->doc->appendChild($cmsSites);
|
198 |
-
$this->cmsSiteNode = $this->doc->createElement(
|
199 |
$cmsSites->appendChild($this->cmsSiteNode);
|
200 |
}
|
201 |
}
|
59 |
$manualSelected = true;
|
60 |
}
|
61 |
|
62 |
+
if ($offset > $blockSrcCollection->getLastPageNumber() ||
|
63 |
+
(!$project->isExportingAllCmsContent() && !count($project->getBlocks()))
|
64 |
) {
|
65 |
return [
|
66 |
+
'status_msg' => $helper->__('Exported CMS Blocks.'),
|
67 |
'step' => ProjectExporter::STEP_COLLECT_TEMPLATES_FILES,
|
68 |
'offset' => 0,
|
69 |
];
|
70 |
}
|
71 |
|
72 |
$statusMessage = sprintf(
|
73 |
+
Mage::helper('eurotext_translationmanager')->__('Batch %s / %s CMS Blocks:'),
|
74 |
$offset + 1,
|
75 |
$blockSrcCollection->getLastPageNumber()
|
76 |
);
|
109 |
}
|
110 |
|
111 |
return [
|
112 |
+
'status_msg' => $statusMessage,
|
113 |
+
'offset' => $offset + 1,
|
114 |
+
'step' => ProjectExporter::STEP_COLLECT_CMSBLOCKS,
|
115 |
];
|
116 |
}
|
117 |
|
118 |
/**
|
119 |
* @param string $nodeName
|
120 |
* @param string $value
|
|
|
121 |
*/
|
122 |
private function addNodeToBlockNode($nodeName, $value)
|
123 |
{
|
137 |
{
|
138 |
$srcValue = $blockSrc->getDataUsingMethod($attr);
|
139 |
$dstValue = $blockDst->getDataUsingMethod($attr);
|
140 |
+
if ($srcValue != '' && (($srcValue == $dstValue) || ($dstValue == '') || $manualSelected)) {
|
141 |
$item = $this->doc->createElement($nodeName);
|
142 |
Mage::helper('eurotext_translationmanager/xml')
|
143 |
->appendTextChild($this->doc, $item, $srcValue);
|
171 |
*/
|
172 |
private function addBasicInformation(Eurotext_TranslationManager_Model_Project $project, $blockSrc, $blockDst)
|
173 |
{
|
174 |
+
$this->addNodeToBlockNode('Id', $blockSrc->getId());
|
175 |
+
$this->addNodeToBlockNode('StoreviewSrc', $project->getStoreviewSrc());
|
176 |
+
$this->addNodeToBlockNode('StoreviewDst', $project->getStoreviewDst());
|
177 |
+
$this->addNodeToBlockNode('PageIdDst', $blockDst->getId() != $blockSrc->getId() ? $blockDst->getId() : -1);
|
178 |
}
|
179 |
|
180 |
/**
|
190 |
|
191 |
private function createNewDOMDocument()
|
192 |
{
|
193 |
+
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
194 |
$this->doc->formatOutput = true;
|
195 |
+
$cmsSites = $this->doc->createElement('cms-sites');
|
196 |
$this->doc->appendChild($cmsSites);
|
197 |
+
$this->cmsSiteNode = $this->doc->createElement('cms-site');
|
198 |
$cmsSites->appendChild($this->cmsSiteNode);
|
199 |
}
|
200 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/CmsPage.php
CHANGED
@@ -54,18 +54,18 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsPage
|
|
54 |
$manualSelected = true;
|
55 |
}
|
56 |
|
57 |
-
if (
|
58 |
-
|
59 |
) {
|
60 |
return [
|
61 |
-
'status_msg' => $helper->__(
|
62 |
'step' => ProjectExporter::STEP_COLLECT_CMSBLOCKS,
|
63 |
'offset' => 1,
|
64 |
];
|
65 |
}
|
66 |
|
67 |
$statusMessage = sprintf(
|
68 |
-
Mage::helper('eurotext_translationmanager')->__(
|
69 |
$offset + 1,
|
70 |
$pageSrcCollection->getLastPageNumber()
|
71 |
);
|
@@ -78,9 +78,9 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsPage
|
|
78 |
$identifier = $pageSrc->getIdentifier();
|
79 |
/** @var Mage_Cms_Model_Page $matchingPage */
|
80 |
$matchingPage = Mage::getResourceModel('cms/page_collection')
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
|
85 |
if (!$matchingPage->isObjectNew()) {
|
86 |
$pageDst = $matchingPage;
|
@@ -131,7 +131,7 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsPage
|
|
131 |
{
|
132 |
$srcValue = $pageSrc->getDataUsingMethod($attr);
|
133 |
$dstValue = $pageDst->getDataUsingMethod($attr);
|
134 |
-
if ($srcValue !=
|
135 |
$item = $this->doc->createElement($nodeName);
|
136 |
Mage::helper('eurotext_translationmanager/xml')
|
137 |
->appendTextChild($this->doc, $item, $srcValue);
|
@@ -148,13 +148,13 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsPage
|
|
148 |
if ($this->cmsSiteNode->hasChildNodes()) {
|
149 |
$subdir = 'cms-sites';
|
150 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')
|
151 |
-
|
152 |
|
153 |
$identifier = Mage::helper('eurotext_translationmanager/filesystem')
|
154 |
-
|
155 |
|
156 |
$xmlFilename = "$xmlDir/cms-" . Mage::helper('eurotext_translationmanager/filesystem')
|
157 |
-
|
158 |
|
159 |
$this->doc->save($xmlFilename);
|
160 |
}
|
@@ -167,10 +167,10 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsPage
|
|
167 |
*/
|
168 |
private function addBasicInformation(Eurotext_TranslationManager_Model_Project $project, $pageSrc, $pageDst)
|
169 |
{
|
170 |
-
$this->addNodeTopageNode(
|
171 |
-
$this->addNodeTopageNode(
|
172 |
-
$this->addNodeTopageNode(
|
173 |
-
$this->addNodeTopageNode(
|
174 |
}
|
175 |
|
176 |
/**
|
@@ -181,17 +181,17 @@ class Eurotext_TranslationManager_Model_Export_Project_CmsPage
|
|
181 |
private function getCmsPageCollectionFor($storeId)
|
182 |
{
|
183 |
return Mage::getResourceModel('cms/page_collection')
|
184 |
-
|
185 |
-
|
186 |
}
|
187 |
|
188 |
private function createNewDOMDocument()
|
189 |
{
|
190 |
-
$this->doc
|
191 |
$this->doc->formatOutput = true;
|
192 |
-
$cmsSites
|
193 |
$this->doc->appendChild($cmsSites);
|
194 |
-
$this->cmsSiteNode = $this->doc->createElement(
|
195 |
$cmsSites->appendChild($this->cmsSiteNode);
|
196 |
}
|
197 |
}
|
54 |
$manualSelected = true;
|
55 |
}
|
56 |
|
57 |
+
if ($offset > $pageSrcCollection->getLastPageNumber() ||
|
58 |
+
(!$project->isExportingAllCmsContent() && !count($project->getPages()))
|
59 |
) {
|
60 |
return [
|
61 |
+
'status_msg' => $helper->__('Exported CMS Pages.'),
|
62 |
'step' => ProjectExporter::STEP_COLLECT_CMSBLOCKS,
|
63 |
'offset' => 1,
|
64 |
];
|
65 |
}
|
66 |
|
67 |
$statusMessage = sprintf(
|
68 |
+
Mage::helper('eurotext_translationmanager')->__('Batch %s / %s CMS Pages:'),
|
69 |
$offset + 1,
|
70 |
$pageSrcCollection->getLastPageNumber()
|
71 |
);
|
78 |
$identifier = $pageSrc->getIdentifier();
|
79 |
/** @var Mage_Cms_Model_Page $matchingPage */
|
80 |
$matchingPage = Mage::getResourceModel('cms/page_collection')
|
81 |
+
->addStoreFilter($project->getStoreviewDst())
|
82 |
+
->addFieldToFilter('identifier', $identifier)
|
83 |
+
->getFirstItem();
|
84 |
|
85 |
if (!$matchingPage->isObjectNew()) {
|
86 |
$pageDst = $matchingPage;
|
131 |
{
|
132 |
$srcValue = $pageSrc->getDataUsingMethod($attr);
|
133 |
$dstValue = $pageDst->getDataUsingMethod($attr);
|
134 |
+
if ($srcValue != '' && (($srcValue == $dstValue) || ($dstValue == '') || $manualSelected)) {
|
135 |
$item = $this->doc->createElement($nodeName);
|
136 |
Mage::helper('eurotext_translationmanager/xml')
|
137 |
->appendTextChild($this->doc, $item, $srcValue);
|
148 |
if ($this->cmsSiteNode->hasChildNodes()) {
|
149 |
$subdir = 'cms-sites';
|
150 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')
|
151 |
+
->getXmlSubdirectoryAndMakeSureItExists($project, $subdir);
|
152 |
|
153 |
$identifier = Mage::helper('eurotext_translationmanager/filesystem')
|
154 |
+
->getFilenameSafeString($page->getIdentifier());
|
155 |
|
156 |
$xmlFilename = "$xmlDir/cms-" . Mage::helper('eurotext_translationmanager/filesystem')
|
157 |
+
->getFilenameSafeString($identifier) . '-' . $page->getId() . '.xml';
|
158 |
|
159 |
$this->doc->save($xmlFilename);
|
160 |
}
|
167 |
*/
|
168 |
private function addBasicInformation(Eurotext_TranslationManager_Model_Project $project, $pageSrc, $pageDst)
|
169 |
{
|
170 |
+
$this->addNodeTopageNode('Id', $pageSrc->getId());
|
171 |
+
$this->addNodeTopageNode('StoreviewSrc', $project->getStoreviewSrc());
|
172 |
+
$this->addNodeTopageNode('StoreviewDst', $project->getStoreviewDst());
|
173 |
+
$this->addNodeTopageNode('PageIdDst', $pageDst->getId() != $pageSrc->getId() ? $pageDst->getId() : -1);
|
174 |
}
|
175 |
|
176 |
/**
|
181 |
private function getCmsPageCollectionFor($storeId)
|
182 |
{
|
183 |
return Mage::getResourceModel('cms/page_collection')
|
184 |
+
->addStoreFilter($storeId)
|
185 |
+
->addOrder('page_id');
|
186 |
}
|
187 |
|
188 |
private function createNewDOMDocument()
|
189 |
{
|
190 |
+
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
191 |
$this->doc->formatOutput = true;
|
192 |
+
$cmsSites = $this->doc->createElement('cms-sites');
|
193 |
$this->doc->appendChild($cmsSites);
|
194 |
+
$this->cmsSiteNode = $this->doc->createElement('cms-site');
|
195 |
$cmsSites->appendChild($this->cmsSiteNode);
|
196 |
}
|
197 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/CreateControlFile.php
CHANGED
@@ -12,10 +12,6 @@ class Eurotext_TranslationManager_Model_Export_Project_CreateControlFile
|
|
12 |
* @var DOMDocument
|
13 |
*/
|
14 |
private $doc;
|
15 |
-
/**
|
16 |
-
* @var DOMElement
|
17 |
-
*/
|
18 |
-
private $requestNode;
|
19 |
|
20 |
/**
|
21 |
* @var DOMElement
|
@@ -36,11 +32,6 @@ class Eurotext_TranslationManager_Model_Export_Project_CreateControlFile
|
|
36 |
*/
|
37 |
private $helper;
|
38 |
|
39 |
-
/**
|
40 |
-
* @var Eurotext_TranslationManager_Helper_Eurotext
|
41 |
-
*/
|
42 |
-
private $etHelper;
|
43 |
-
|
44 |
/**
|
45 |
* @var Eurotext_TranslationManager_Helper_Config
|
46 |
*/
|
@@ -50,15 +41,14 @@ class Eurotext_TranslationManager_Model_Export_Project_CreateControlFile
|
|
50 |
{
|
51 |
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
52 |
$this->doc->formatOutput = true;
|
53 |
-
$
|
54 |
-
$this->doc->appendChild($
|
55 |
-
$this->generalNode = $this->doc->createElement(
|
56 |
-
$
|
57 |
-
$this->languageCombinationNode = $this->doc->createElement(
|
58 |
-
$
|
59 |
|
60 |
$this->helper = Mage::helper('eurotext_translationmanager');
|
61 |
-
$this->etHelper = Mage::helper('eurotext_translationmanager/eurotext');
|
62 |
$this->configHelper = Mage::helper('eurotext_translationmanager/config');
|
63 |
}
|
64 |
|
@@ -84,21 +74,21 @@ class Eurotext_TranslationManager_Model_Export_Project_CreateControlFile
|
|
84 |
|
85 |
private function addCustomerContact()
|
86 |
{
|
87 |
-
$nodeCustomerContact = $this->doc->createElement(
|
88 |
$nodeCustomerContact->appendChild($this->doc->createTextNode($this->configHelper->getName()));
|
89 |
$this->generalNode->appendChild($nodeCustomerContact);
|
90 |
}
|
91 |
|
92 |
private function addCustomerEmail()
|
93 |
{
|
94 |
-
$nodeCustomerEmail = $this->doc->createElement(
|
95 |
$nodeCustomerEmail->appendChild($this->doc->createTextNode($this->configHelper->getEmail()));
|
96 |
$this->generalNode->appendChild($nodeCustomerEmail);
|
97 |
}
|
98 |
|
99 |
private function addCustomerId()
|
100 |
{
|
101 |
-
$customerId = $this->doc->createElement(
|
102 |
$customerId->appendChild($this->doc->createTextNode($this->configHelper->getCustomerId()));
|
103 |
$this->generalNode->appendChild($customerId);
|
104 |
}
|
@@ -108,21 +98,21 @@ class Eurotext_TranslationManager_Model_Export_Project_CreateControlFile
|
|
108 |
*/
|
109 |
private function addProjectName(Eurotext_TranslationManager_Model_Project $project)
|
110 |
{
|
111 |
-
$nodeProjectName = $this->doc->createElement(
|
112 |
$nodeProjectName->appendChild($this->doc->createTextNode($project->getProjectName()));
|
113 |
$this->generalNode->appendChild($nodeProjectName);
|
114 |
}
|
115 |
|
116 |
private function addDeadline()
|
117 |
{
|
118 |
-
$nodeDeadline = $this->doc->createElement(
|
119 |
$this->generalNode->appendChild($nodeDeadline);
|
120 |
}
|
121 |
|
122 |
private function addTarget()
|
123 |
{
|
124 |
-
$nodeTargetProject = $this->doc->createElement(
|
125 |
-
$nodeTargetProject->appendChild($this->doc->createTextNode(
|
126 |
$this->generalNode->appendChild($nodeTargetProject);
|
127 |
}
|
128 |
|
@@ -156,12 +146,12 @@ COMMENT;
|
|
156 |
);
|
157 |
$description .= "\n\nSrc-Storeview: '" . $srcName . "' (" . $project->getStoreviewSrcLocale() . ")\n";
|
158 |
$description .= "Dst-Storeview: '" . $dstName . "' (" . $project->getStoreviewDstLocale() . ")\n";
|
159 |
-
$description .=
|
160 |
-
$description .=
|
161 |
-
$description .= ($project->isExportingAttributes() ?
|
162 |
-
$description .=
|
163 |
|
164 |
-
$nodeDescription = $this->doc->createElement(
|
165 |
$nodeDescription->appendChild($this->doc->createTextNode($description));
|
166 |
$this->generalNode->appendChild($nodeDescription);
|
167 |
}
|
@@ -204,7 +194,7 @@ COMMENT;
|
|
204 |
*/
|
205 |
private function writeXml($xmlDir)
|
206 |
{
|
207 |
-
$xmlFilename = $xmlDir . DS .
|
208 |
$this->doc->save($xmlFilename);
|
209 |
}
|
210 |
|
@@ -243,15 +233,15 @@ COMMENT;
|
|
243 |
*/
|
244 |
private function createLanguageCombination(Eurotext_TranslationManager_Model_Project $project)
|
245 |
{
|
246 |
-
$nodeLanguageCombination = $this->doc->createElement(
|
247 |
-
$source = $this->doc->createAttribute(
|
248 |
|
249 |
$etLocalesrc = $this->getEurotextLocale($project->getStoreviewSrcLocale());
|
250 |
$source->value = $etLocalesrc['locale_eurotext'];
|
251 |
$nodeLanguageCombination->appendChild($source);
|
252 |
|
253 |
$etLocaleDst = $this->getEurotextLocale($project->getStoreviewDstLocale());
|
254 |
-
$target = $this->doc->createAttribute(
|
255 |
$target->value = $etLocaleDst['locale_eurotext'];
|
256 |
|
257 |
$nodeLanguageCombination->appendChild($target);
|
@@ -294,15 +284,15 @@ COMMENT;
|
|
294 |
{
|
295 |
$absoluteFile = $xmlDir . '/' . $file;
|
296 |
|
297 |
-
$nodeUploadedFile = $this->doc->createElement(
|
298 |
$nodeLanguageCombination->appendChild($nodeUploadedFile);
|
299 |
|
300 |
-
$attrfileName = $this->doc->createAttribute(
|
301 |
$attrfileName->value = $file;
|
302 |
$nodeUploadedFile->appendChild($attrfileName);
|
303 |
|
304 |
|
305 |
-
$attrsize = $this->doc->createAttribute(
|
306 |
$attrsize->value = filesize($absoluteFile);
|
307 |
$nodeUploadedFile->appendChild($attrsize);
|
308 |
}
|
12 |
* @var DOMDocument
|
13 |
*/
|
14 |
private $doc;
|
|
|
|
|
|
|
|
|
15 |
|
16 |
/**
|
17 |
* @var DOMElement
|
32 |
*/
|
33 |
private $helper;
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
/**
|
36 |
* @var Eurotext_TranslationManager_Helper_Config
|
37 |
*/
|
41 |
{
|
42 |
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
43 |
$this->doc->formatOutput = true;
|
44 |
+
$requestNode = $this->doc->createElement('Request');
|
45 |
+
$this->doc->appendChild($requestNode);
|
46 |
+
$this->generalNode = $this->doc->createElement('General');
|
47 |
+
$requestNode->appendChild($this->generalNode);
|
48 |
+
$this->languageCombinationNode = $this->doc->createElement('LanguageCombinations');
|
49 |
+
$requestNode->appendChild($this->languageCombinationNode);
|
50 |
|
51 |
$this->helper = Mage::helper('eurotext_translationmanager');
|
|
|
52 |
$this->configHelper = Mage::helper('eurotext_translationmanager/config');
|
53 |
}
|
54 |
|
74 |
|
75 |
private function addCustomerContact()
|
76 |
{
|
77 |
+
$nodeCustomerContact = $this->doc->createElement('CustomerContact');
|
78 |
$nodeCustomerContact->appendChild($this->doc->createTextNode($this->configHelper->getName()));
|
79 |
$this->generalNode->appendChild($nodeCustomerContact);
|
80 |
}
|
81 |
|
82 |
private function addCustomerEmail()
|
83 |
{
|
84 |
+
$nodeCustomerEmail = $this->doc->createElement('CustomerMail');
|
85 |
$nodeCustomerEmail->appendChild($this->doc->createTextNode($this->configHelper->getEmail()));
|
86 |
$this->generalNode->appendChild($nodeCustomerEmail);
|
87 |
}
|
88 |
|
89 |
private function addCustomerId()
|
90 |
{
|
91 |
+
$customerId = $this->doc->createElement('CustomerID_of_Supplier');
|
92 |
$customerId->appendChild($this->doc->createTextNode($this->configHelper->getCustomerId()));
|
93 |
$this->generalNode->appendChild($customerId);
|
94 |
}
|
98 |
*/
|
99 |
private function addProjectName(Eurotext_TranslationManager_Model_Project $project)
|
100 |
{
|
101 |
+
$nodeProjectName = $this->doc->createElement('ProjectName');
|
102 |
$nodeProjectName->appendChild($this->doc->createTextNode($project->getProjectName()));
|
103 |
$this->generalNode->appendChild($nodeProjectName);
|
104 |
}
|
105 |
|
106 |
private function addDeadline()
|
107 |
{
|
108 |
+
$nodeDeadline = $this->doc->createElement('Deadline');
|
109 |
$this->generalNode->appendChild($nodeDeadline);
|
110 |
}
|
111 |
|
112 |
private function addTarget()
|
113 |
{
|
114 |
+
$nodeTargetProject = $this->doc->createElement('TargetProject');
|
115 |
+
$nodeTargetProject->appendChild($this->doc->createTextNode('Quote'));
|
116 |
$this->generalNode->appendChild($nodeTargetProject);
|
117 |
}
|
118 |
|
146 |
);
|
147 |
$description .= "\n\nSrc-Storeview: '" . $srcName . "' (" . $project->getStoreviewSrcLocale() . ")\n";
|
148 |
$description .= "Dst-Storeview: '" . $dstName . "' (" . $project->getStoreviewDstLocale() . ")\n";
|
149 |
+
$description .= 'Export SEO content: ' . ($project->isExportingMetaAttributes() ? 'Yes' : 'No') . "\n";
|
150 |
+
$description .= 'Export attributes and attribute options? ';
|
151 |
+
$description .= ($project->isExportingAttributes() ? 'Yes' : 'No') . "\n";
|
152 |
+
$description .= 'Export URL keys? ' . ($project->isExportingUrlKeys() ? 'Yes' : 'No');
|
153 |
|
154 |
+
$nodeDescription = $this->doc->createElement('Description');
|
155 |
$nodeDescription->appendChild($this->doc->createTextNode($description));
|
156 |
$this->generalNode->appendChild($nodeDescription);
|
157 |
}
|
194 |
*/
|
195 |
private function writeXml($xmlDir)
|
196 |
{
|
197 |
+
$xmlFilename = $xmlDir . DS . 'control.xml';
|
198 |
$this->doc->save($xmlFilename);
|
199 |
}
|
200 |
|
233 |
*/
|
234 |
private function createLanguageCombination(Eurotext_TranslationManager_Model_Project $project)
|
235 |
{
|
236 |
+
$nodeLanguageCombination = $this->doc->createElement('LanguageCombination');
|
237 |
+
$source = $this->doc->createAttribute('source');
|
238 |
|
239 |
$etLocalesrc = $this->getEurotextLocale($project->getStoreviewSrcLocale());
|
240 |
$source->value = $etLocalesrc['locale_eurotext'];
|
241 |
$nodeLanguageCombination->appendChild($source);
|
242 |
|
243 |
$etLocaleDst = $this->getEurotextLocale($project->getStoreviewDstLocale());
|
244 |
+
$target = $this->doc->createAttribute('target');
|
245 |
$target->value = $etLocaleDst['locale_eurotext'];
|
246 |
|
247 |
$nodeLanguageCombination->appendChild($target);
|
284 |
{
|
285 |
$absoluteFile = $xmlDir . '/' . $file;
|
286 |
|
287 |
+
$nodeUploadedFile = $this->doc->createElement('uploadedFile');
|
288 |
$nodeLanguageCombination->appendChild($nodeUploadedFile);
|
289 |
|
290 |
+
$attrfileName = $this->doc->createAttribute('fileName');
|
291 |
$attrfileName->value = $file;
|
292 |
$nodeUploadedFile->appendChild($attrfileName);
|
293 |
|
294 |
|
295 |
+
$attrsize = $this->doc->createAttribute('size');
|
296 |
$attrsize->value = filesize($absoluteFile);
|
297 |
$nodeUploadedFile->appendChild($attrsize);
|
298 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/EmailDatabaseTemplates.php
CHANGED
@@ -50,7 +50,7 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailDatabaseTemplates
|
|
50 |
|
51 |
if (!$templateCollection->getSize()) {
|
52 |
return [
|
53 |
-
'status_msg' => $this->getHelper()->__(
|
54 |
'offset' => 1,
|
55 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_EXPORT_ATTRIBUTES,
|
56 |
];
|
@@ -58,7 +58,7 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailDatabaseTemplates
|
|
58 |
|
59 |
if ($templateCollection->getLastPageNumber() < $this->offset) {
|
60 |
return [
|
61 |
-
'status_msg' => $this->getHelper()->__(
|
62 |
'offset' => 1,
|
63 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_EXPORT_ATTRIBUTES,
|
64 |
];
|
@@ -70,7 +70,7 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailDatabaseTemplates
|
|
70 |
$this->writeXml($templateCollection);
|
71 |
|
72 |
return [
|
73 |
-
'status_msg' => $this->getHelper()->__(
|
74 |
'offset' => $this->offset + 1,
|
75 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_EXPORT_ATTRIBUTES,
|
76 |
];
|
@@ -107,13 +107,13 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailDatabaseTemplates
|
|
107 |
$type = $t->getType() == \Mage_Core_Model_Template::TYPE_HTML ? 'html' : 'plaintext';
|
108 |
$xmlWriter->writeElement('Type', $type);
|
109 |
$xmlWriter->startElement('Styles');
|
110 |
-
$xmlWriter->
|
111 |
$xmlWriter->endElement(); // Styles
|
112 |
$xmlWriter->startElement('Subject');
|
113 |
-
$xmlWriter->
|
114 |
$xmlWriter->endElement(); // Subject
|
115 |
$xmlWriter->startElement('Text');
|
116 |
-
$xmlWriter->
|
117 |
Mage::helper('eurotext_translationmanager/string')
|
118 |
->replaceMagentoBlockDirectives($t->getTemplateText())
|
119 |
);
|
@@ -123,7 +123,7 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailDatabaseTemplates
|
|
123 |
$xmlWriter->endElement(); // emails
|
124 |
|
125 |
file_put_contents(
|
126 |
-
sprintf($this->xmlDir . '/emailtemplates-db-%s.xml', ($this->offset * self::PAGE_SIZE) + $i++),
|
127 |
$xmlWriter->flush()
|
128 |
);
|
129 |
}
|
50 |
|
51 |
if (!$templateCollection->getSize()) {
|
52 |
return [
|
53 |
+
'status_msg' => $this->getHelper()->__('No Email Templates from the database exported'),
|
54 |
'offset' => 1,
|
55 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_EXPORT_ATTRIBUTES,
|
56 |
];
|
58 |
|
59 |
if ($templateCollection->getLastPageNumber() < $this->offset) {
|
60 |
return [
|
61 |
+
'status_msg' => $this->getHelper()->__('All Email-Database-Templates exported'),
|
62 |
'offset' => 1,
|
63 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_EXPORT_ATTRIBUTES,
|
64 |
];
|
70 |
$this->writeXml($templateCollection);
|
71 |
|
72 |
return [
|
73 |
+
'status_msg' => $this->getHelper()->__('%s Email-Database-Templates exported', $templateCollection->getSize()),
|
74 |
'offset' => $this->offset + 1,
|
75 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_EXPORT_ATTRIBUTES,
|
76 |
];
|
107 |
$type = $t->getType() == \Mage_Core_Model_Template::TYPE_HTML ? 'html' : 'plaintext';
|
108 |
$xmlWriter->writeElement('Type', $type);
|
109 |
$xmlWriter->startElement('Styles');
|
110 |
+
$xmlWriter->writeCData($t->getTemplateStyles());
|
111 |
$xmlWriter->endElement(); // Styles
|
112 |
$xmlWriter->startElement('Subject');
|
113 |
+
$xmlWriter->writeCData($t->getTemplateSubject());
|
114 |
$xmlWriter->endElement(); // Subject
|
115 |
$xmlWriter->startElement('Text');
|
116 |
+
$xmlWriter->writeCData(
|
117 |
Mage::helper('eurotext_translationmanager/string')
|
118 |
->replaceMagentoBlockDirectives($t->getTemplateText())
|
119 |
);
|
123 |
$xmlWriter->endElement(); // emails
|
124 |
|
125 |
file_put_contents(
|
126 |
+
sprintf($this->xmlDir . '/emailtemplates-db-%s.xml', (($this->offset - 1) * self::PAGE_SIZE) + $i++),
|
127 |
$xmlWriter->flush()
|
128 |
);
|
129 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/EmailFileTemplates.php
CHANGED
@@ -40,7 +40,7 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailFileTemplates
|
|
40 |
|
41 |
if (!$numberOfEmailTemplatesExported) {
|
42 |
return [
|
43 |
-
'status_msg' => $this->getHelper()->__(
|
44 |
'offset' => 1,
|
45 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_COLLECT_TEMPLATES_DATABASE,
|
46 |
];
|
@@ -53,7 +53,7 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailFileTemplates
|
|
53 |
$this->writeXml($emailTemplates, $project);
|
54 |
|
55 |
return [
|
56 |
-
'status_msg' => $this->getHelper()->__(
|
57 |
'offset' => 1,
|
58 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_COLLECT_TEMPLATES_DATABASE,
|
59 |
];
|
@@ -82,7 +82,7 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailFileTemplates
|
|
82 |
$filenameSrc = $baseLocale . "/{$project->getStoreviewSrcLocale()}/template$relativeFilePath";
|
83 |
$filenameDst = $baseLocale . "/{$project->getStoreviewDstLocale()}/template$relativeFilePath";
|
84 |
|
85 |
-
if (
|
86 |
continue;
|
87 |
}
|
88 |
$this->exportedTemplateFiles++;
|
@@ -98,13 +98,13 @@ class Eurotext_TranslationManager_Model_Export_Project_EmailFileTemplates
|
|
98 |
$type = $this->emailPaths[$fileInConfigXml]['type'];
|
99 |
$xmlWriter->writeElement('Type', $type);
|
100 |
$xmlWriter->startElement('Styles');
|
101 |
-
$xmlWriter->
|
102 |
$xmlWriter->endElement(); // Styles
|
103 |
$xmlWriter->startElement('Subject');
|
104 |
-
$xmlWriter->
|
105 |
$xmlWriter->endElement(); // Subject
|
106 |
$xmlWriter->startElement('Text');
|
107 |
-
$xmlWriter->
|
108 |
$xmlWriter->endElement(); // Text
|
109 |
$xmlWriter->endElement(); // email
|
110 |
|
40 |
|
41 |
if (!$numberOfEmailTemplatesExported) {
|
42 |
return [
|
43 |
+
'status_msg' => $this->getHelper()->__('No Email-File-Templates exported'),
|
44 |
'offset' => 1,
|
45 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_COLLECT_TEMPLATES_DATABASE,
|
46 |
];
|
53 |
$this->writeXml($emailTemplates, $project);
|
54 |
|
55 |
return [
|
56 |
+
'status_msg' => $this->getHelper()->__('Exported %s Email Templates', $this->exportedTemplateFiles),
|
57 |
'offset' => 1,
|
58 |
'step' => Eurotext_TranslationManager_Model_Export_Project::STEP_COLLECT_TEMPLATES_DATABASE,
|
59 |
];
|
82 |
$filenameSrc = $baseLocale . "/{$project->getStoreviewSrcLocale()}/template$relativeFilePath";
|
83 |
$filenameDst = $baseLocale . "/{$project->getStoreviewDstLocale()}/template$relativeFilePath";
|
84 |
|
85 |
+
if (!isset($this->emailPaths[$fileInConfigXml]) || !$this->isTranslationNeeded($filenameDst)) {
|
86 |
continue;
|
87 |
}
|
88 |
$this->exportedTemplateFiles++;
|
98 |
$type = $this->emailPaths[$fileInConfigXml]['type'];
|
99 |
$xmlWriter->writeElement('Type', $type);
|
100 |
$xmlWriter->startElement('Styles');
|
101 |
+
$xmlWriter->writeCData($info['styles']);
|
102 |
$xmlWriter->endElement(); // Styles
|
103 |
$xmlWriter->startElement('Subject');
|
104 |
+
$xmlWriter->writeCData($info['subject']);
|
105 |
$xmlWriter->endElement(); // Subject
|
106 |
$xmlWriter->startElement('Text');
|
107 |
+
$xmlWriter->writeCData($info['text']);
|
108 |
$xmlWriter->endElement(); // Text
|
109 |
$xmlWriter->endElement(); // email
|
110 |
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/FtpUpload.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
4 |
{
|
5 |
-
const FTP_HOST =
|
6 |
const FTP_PORT = 21;
|
7 |
|
8 |
/**
|
@@ -63,7 +63,7 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
63 |
|
64 |
$uploadSuccess = $this->uploadZipFileToEurotext($zipFile);
|
65 |
|
66 |
-
if (
|
67 |
$this->createFallbackFile($zipFile);
|
68 |
}
|
69 |
|
@@ -155,11 +155,11 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
155 |
|
156 |
private function validateUsername()
|
157 |
{
|
158 |
-
if (trim($this->ftpUsername) ==
|
159 |
$this->helper->log('Login data is not set.', Zend_Log::ERR);
|
160 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
161 |
$this->helper->__(
|
162 |
-
|
163 |
)
|
164 |
);
|
165 |
}
|
@@ -167,11 +167,11 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
167 |
|
168 |
private function validateFtpConnectExists()
|
169 |
{
|
170 |
-
if (!function_exists(
|
171 |
$this->helper->log('There is no FTP Client available: ftp_connect does not exist.', Zend_Log::CRIT);
|
172 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
173 |
$this->helper->__(
|
174 |
-
|
175 |
)
|
176 |
);
|
177 |
}
|
@@ -183,7 +183,7 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
183 |
$this->helper->log('There is no FTP Client available: ftp_connect is disabled in PHP.', Zend_Log::CRIT);
|
184 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
185 |
$this->helper->__(
|
186 |
-
|
187 |
)
|
188 |
);
|
189 |
}
|
@@ -195,7 +195,7 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
195 |
$this->helper->log('Could not connect to Translation Portal Server.', Zend_Log::ERR);
|
196 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
197 |
$this->helper->__(
|
198 |
-
|
199 |
)
|
200 |
);
|
201 |
}
|
@@ -204,13 +204,13 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
204 |
private function cleanupFtp()
|
205 |
{
|
206 |
@ftp_delete($this->ftpConnection, $this->project->getData('zip_filename'));
|
207 |
-
@ftp_delete($this->ftpConnection, $this->project->getData('zip_filename') .
|
208 |
}
|
209 |
|
210 |
private function setupFtpSettings()
|
211 |
{
|
212 |
ftp_pasv($this->ftpConnection, true);
|
213 |
-
ftp_chdir($this->ftpConnection,
|
214 |
}
|
215 |
|
216 |
/**
|
@@ -218,7 +218,7 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
218 |
*/
|
219 |
private function uploadZipWithUploadingExtension($zipFile)
|
220 |
{
|
221 |
-
if (ftp_put($this->ftpConnection, $this->project->getZipFilename() .
|
222 |
$this->helper->log(
|
223 |
'File was successfully uploaded to ' . $this->project->getZipFilename() . '.uploading',
|
224 |
Zend_Log::INFO
|
@@ -232,7 +232,7 @@ class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
|
232 |
private function removeUploadingExtension()
|
233 |
{
|
234 |
$filename = $this->project->getZipFilename();
|
235 |
-
$uploadSuccess = ftp_rename($this->ftpConnection, $filename .
|
236 |
if ($uploadSuccess) {
|
237 |
$this->helper->log('File was successfully renamed to ' . $filename, Zend_Log::INFO);
|
238 |
}
|
2 |
|
3 |
class Eurotext_TranslationManager_Model_Export_Project_FtpUpload
|
4 |
{
|
5 |
+
const FTP_HOST = 'eurotext-services.de';
|
6 |
const FTP_PORT = 21;
|
7 |
|
8 |
/**
|
63 |
|
64 |
$uploadSuccess = $this->uploadZipFileToEurotext($zipFile);
|
65 |
|
66 |
+
if (false === $uploadSuccess || true === $this->configHelper->isDebugMode()) {
|
67 |
$this->createFallbackFile($zipFile);
|
68 |
}
|
69 |
|
155 |
|
156 |
private function validateUsername()
|
157 |
{
|
158 |
+
if (trim($this->ftpUsername) == '') {
|
159 |
$this->helper->log('Login data is not set.', Zend_Log::ERR);
|
160 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
161 |
$this->helper->__(
|
162 |
+
'There seems to be a problem with your login data. Please check username and password!'
|
163 |
)
|
164 |
);
|
165 |
}
|
167 |
|
168 |
private function validateFtpConnectExists()
|
169 |
{
|
170 |
+
if (!function_exists('ftp_connect')) {
|
171 |
$this->helper->log('There is no FTP Client available: ftp_connect does not exist.', Zend_Log::CRIT);
|
172 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
173 |
$this->helper->__(
|
174 |
+
'There is no FTP Client available: ftp_connect does not exist.'
|
175 |
)
|
176 |
);
|
177 |
}
|
183 |
$this->helper->log('There is no FTP Client available: ftp_connect is disabled in PHP.', Zend_Log::CRIT);
|
184 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
185 |
$this->helper->__(
|
186 |
+
'There is no FTP Client available: ftp_connect is disabled in PHP.'
|
187 |
)
|
188 |
);
|
189 |
}
|
195 |
$this->helper->log('Could not connect to Translation Portal Server.', Zend_Log::ERR);
|
196 |
throw new Eurotext_TranslationManager_Exception_FtpException(
|
197 |
$this->helper->__(
|
198 |
+
'Could not connect to server. Could be a temporary error or firewall problem. You could also check for a new module version. It might be a problem with your login data, too. Please check username and password!'
|
199 |
)
|
200 |
);
|
201 |
}
|
204 |
private function cleanupFtp()
|
205 |
{
|
206 |
@ftp_delete($this->ftpConnection, $this->project->getData('zip_filename'));
|
207 |
+
@ftp_delete($this->ftpConnection, $this->project->getData('zip_filename') . '.uploading');
|
208 |
}
|
209 |
|
210 |
private function setupFtpSettings()
|
211 |
{
|
212 |
ftp_pasv($this->ftpConnection, true);
|
213 |
+
ftp_chdir($this->ftpConnection, '/');
|
214 |
}
|
215 |
|
216 |
/**
|
218 |
*/
|
219 |
private function uploadZipWithUploadingExtension($zipFile)
|
220 |
{
|
221 |
+
if (ftp_put($this->ftpConnection, $this->project->getZipFilename() . '.uploading', $zipFile, FTP_BINARY)) {
|
222 |
$this->helper->log(
|
223 |
'File was successfully uploaded to ' . $this->project->getZipFilename() . '.uploading',
|
224 |
Zend_Log::INFO
|
232 |
private function removeUploadingExtension()
|
233 |
{
|
234 |
$filename = $this->project->getZipFilename();
|
235 |
+
$uploadSuccess = ftp_rename($this->ftpConnection, $filename . '.uploading', $filename);
|
236 |
if ($uploadSuccess) {
|
237 |
$this->helper->log('File was successfully renamed to ' . $filename, Zend_Log::INFO);
|
238 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/LocaleCsvFiles.php
CHANGED
@@ -34,7 +34,7 @@ class Eurotext_TranslationManager_Model_Export_Project_LocaleCsvFiles
|
|
34 |
$count = $csvCollection->count();
|
35 |
if (!$csv) {
|
36 |
return [
|
37 |
-
|
38 |
'step' => ExportProject::STEP_COLLECT_PRODUCTS,
|
39 |
'offset' => 1,
|
40 |
];
|
@@ -46,7 +46,7 @@ class Eurotext_TranslationManager_Model_Export_Project_LocaleCsvFiles
|
|
46 |
$filenameEn = preg_replace('#/[a-z]{2}_[A-Z]{2}/#', '/en_US/', $filenameSrc);
|
47 |
$filenameDst = preg_replace('#/[a-z]{2}_[A-Z]{2}/#', "/{$project->getStoreviewDstLocale()}/", $filenameSrc);
|
48 |
|
49 |
-
$statusMessage = $this->getHelper()->__(
|
50 |
|
51 |
$srcCsvFilename = basename($filenameEn);
|
52 |
$xmlFilename = $this->createFilenameFromCsvFilename($srcCsvFilename, $xmlDir);
|
@@ -110,7 +110,7 @@ class Eurotext_TranslationManager_Model_Export_Project_LocaleCsvFiles
|
|
110 |
{
|
111 |
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
112 |
$this->doc->formatOutput = true;
|
113 |
-
$translation = $this->doc->createElement(
|
114 |
|
115 |
$this->writeAttribute($translation, 'src_filename', $filenameSrc);
|
116 |
$this->writeAttribute($translation, 'dst_filename', $filenameDst);
|
@@ -123,11 +123,12 @@ class Eurotext_TranslationManager_Model_Export_Project_LocaleCsvFiles
|
|
123 |
/**
|
124 |
* @param int $itemCount
|
125 |
* @param string $txtEn
|
|
|
126 |
* @param DOMNOde $lineExport
|
127 |
*/
|
128 |
private function createLineContextNode($itemCount, $txtEn, $locale, DOMNode $lineExport)
|
129 |
{
|
130 |
-
$lineContext = $this->doc->createElement(
|
131 |
$this->writeAttribute($lineContext, 'num', $itemCount);
|
132 |
$this->writeAttribute($lineContext, 'context', 'yes');
|
133 |
$this->writeAttribute($lineContext, 'locale', $locale);
|
@@ -160,7 +161,7 @@ class Eurotext_TranslationManager_Model_Export_Project_LocaleCsvFiles
|
|
160 |
$txtSrc,
|
161 |
$lineExport
|
162 |
) {
|
163 |
-
$lineContext = $this->doc->createElement(
|
164 |
$this->writeAttribute($lineContext, 'num', $itemCount);
|
165 |
$this->writeAttribute($lineContext, 'locale-src', $project->getStoreviewSrcLocale());
|
166 |
$this->writeAttribute($lineContext, 'locale-dst', $project->getStoreviewDstLocale());
|
@@ -184,10 +185,10 @@ class Eurotext_TranslationManager_Model_Export_Project_LocaleCsvFiles
|
|
184 |
$txtDst,
|
185 |
$txtSrc
|
186 |
) {
|
187 |
-
$comment = $this->doc->createComment(
|
188 |
$translation->appendChild($comment);
|
189 |
|
190 |
-
$lineExport = $this->doc->createElement(
|
191 |
$translation->appendChild($lineExport);
|
192 |
|
193 |
$this->createLineContextNode($itemCount, $txtEn, 'en_US', $lineExport);
|
@@ -223,7 +224,7 @@ class Eurotext_TranslationManager_Model_Export_Project_LocaleCsvFiles
|
|
223 |
*/
|
224 |
private function createSubdirectory(Eurotext_TranslationManager_Model_Project $project)
|
225 |
{
|
226 |
-
$subdir =
|
227 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')
|
228 |
->getXmlSubdirectoryAndMakeSureItExists($project, $subdir);
|
229 |
|
34 |
$count = $csvCollection->count();
|
35 |
if (!$csv) {
|
36 |
return [
|
37 |
+
'status_msg' => $this->getHelper()->__('Exported language files.'),
|
38 |
'step' => ExportProject::STEP_COLLECT_PRODUCTS,
|
39 |
'offset' => 1,
|
40 |
];
|
46 |
$filenameEn = preg_replace('#/[a-z]{2}_[A-Z]{2}/#', '/en_US/', $filenameSrc);
|
47 |
$filenameDst = preg_replace('#/[a-z]{2}_[A-Z]{2}/#', "/{$project->getStoreviewDstLocale()}/", $filenameSrc);
|
48 |
|
49 |
+
$statusMessage = $this->getHelper()->__('Batch %s / %s CSV File: %s', $offset + 1, $count, $filenameSrc);
|
50 |
|
51 |
$srcCsvFilename = basename($filenameEn);
|
52 |
$xmlFilename = $this->createFilenameFromCsvFilename($srcCsvFilename, $xmlDir);
|
110 |
{
|
111 |
$this->doc = new DOMDocument('1.0', 'UTF-8');
|
112 |
$this->doc->formatOutput = true;
|
113 |
+
$translation = $this->doc->createElement('translation');
|
114 |
|
115 |
$this->writeAttribute($translation, 'src_filename', $filenameSrc);
|
116 |
$this->writeAttribute($translation, 'dst_filename', $filenameDst);
|
123 |
/**
|
124 |
* @param int $itemCount
|
125 |
* @param string $txtEn
|
126 |
+
* @param string $locale
|
127 |
* @param DOMNOde $lineExport
|
128 |
*/
|
129 |
private function createLineContextNode($itemCount, $txtEn, $locale, DOMNode $lineExport)
|
130 |
{
|
131 |
+
$lineContext = $this->doc->createElement('line-context');
|
132 |
$this->writeAttribute($lineContext, 'num', $itemCount);
|
133 |
$this->writeAttribute($lineContext, 'context', 'yes');
|
134 |
$this->writeAttribute($lineContext, 'locale', $locale);
|
161 |
$txtSrc,
|
162 |
$lineExport
|
163 |
) {
|
164 |
+
$lineContext = $this->doc->createElement('line');
|
165 |
$this->writeAttribute($lineContext, 'num', $itemCount);
|
166 |
$this->writeAttribute($lineContext, 'locale-src', $project->getStoreviewSrcLocale());
|
167 |
$this->writeAttribute($lineContext, 'locale-dst', $project->getStoreviewDstLocale());
|
185 |
$txtDst,
|
186 |
$txtSrc
|
187 |
) {
|
188 |
+
$comment = $this->doc->createComment('Line ' . $itemCount);
|
189 |
$translation->appendChild($comment);
|
190 |
|
191 |
+
$lineExport = $this->doc->createElement('line' . $itemCount);
|
192 |
$translation->appendChild($lineExport);
|
193 |
|
194 |
$this->createLineContextNode($itemCount, $txtEn, 'en_US', $lineExport);
|
224 |
*/
|
225 |
private function createSubdirectory(Eurotext_TranslationManager_Model_Project $project)
|
226 |
{
|
227 |
+
$subdir = 'framework';
|
228 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')
|
229 |
->getXmlSubdirectoryAndMakeSureItExists($project, $subdir);
|
230 |
|
app/code/community/Eurotext/TranslationManager/Model/Export/Project/Product.php
CHANGED
@@ -86,8 +86,8 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
86 |
$productCollectionDst->addIdFilter($project->getProducts());
|
87 |
}
|
88 |
|
89 |
-
if (
|
90 |
-
$
|
91 |
) {
|
92 |
$emulator->stopEnvironmentEmulation($emulation);
|
93 |
|
@@ -107,12 +107,14 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
107 |
'eurotext_translationmanager/catalog_product_attribute_backend_media_onlyStoreValues'
|
108 |
);
|
109 |
|
110 |
-
$statusMessage = Mage::helper('eurotext_translationmanager')->__(
|
111 |
-
|
112 |
-
|
|
|
|
|
113 |
|
114 |
foreach ($productCollectionSrc as $productSrc) {
|
115 |
-
$this->nodeArticle = $this->doc->createElement(
|
116 |
$statusMessage .= "\n<br />- " . $productSrc->getSku();
|
117 |
/** @var Mage_Catalog_Model_Product $productDst */
|
118 |
$productDst = $productCollectionDst->getItemById($productSrc->getId());
|
@@ -132,7 +134,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
132 |
if ($this->nodeArticle->hasChildNodes()) {
|
133 |
$firstChildNode = $this->nodeArticle->childNodes->item(0);
|
134 |
|
135 |
-
$nodeArticleId = $this->doc->createElement(
|
136 |
$nodeArticleId->appendChild($this->doc->createTextNode($productSrc->getId()));
|
137 |
$this->nodeArticle->insertBefore($nodeArticleId, $firstChildNode);
|
138 |
|
@@ -144,19 +146,19 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
144 |
}
|
145 |
}
|
146 |
|
147 |
-
if($this->articlesNode->hasChildNodes()){
|
148 |
-
$subdir =
|
149 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')
|
150 |
->getXmlSubdirectoryAndMakeSureItExists($project, $subdir);
|
151 |
|
152 |
-
$this->doc->save($xmlDir . DS .
|
153 |
}
|
154 |
$emulator->stopEnvironmentEmulation($emulation);
|
155 |
|
156 |
return [
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
];
|
161 |
}
|
162 |
|
@@ -222,46 +224,46 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
222 |
}
|
223 |
|
224 |
$hasImages = false;
|
225 |
-
$imagesNode = $this->doc->createElement(
|
226 |
|
227 |
foreach ($imagesOrig as $imgValueId => $imgLabel) {
|
228 |
if (!array_key_exists($imgValueId, $imagesDstLabel)) {
|
229 |
-
$imagesDstLabel[$imgValueId] =
|
230 |
}
|
231 |
|
232 |
$needsUpdate = $manualSelected;
|
233 |
-
if (
|
234 |
$needsUpdate = true;
|
235 |
}
|
236 |
|
237 |
-
if ($needsUpdate &&
|
238 |
$hasImages = true;
|
239 |
-
$imageNode = $this->doc->createElement(
|
240 |
$imagesNode->appendChild($imageNode);
|
241 |
|
242 |
-
$imageNodeId = $this->doc->createAttribute(
|
243 |
$imageNodeId->value = $imgValueId;
|
244 |
$imageNode->appendChild($imageNodeId);
|
245 |
|
246 |
-
$imageNodePosition = $this->doc->createAttribute(
|
247 |
$imageNodePosition->value = $imagesDstPosition[$imgValueId];
|
248 |
$imageNode->appendChild($imageNodePosition);
|
249 |
|
250 |
-
$imageNodeDisabled = $this->doc->createAttribute(
|
251 |
$imageNodeDisabled->value = $imagesDstDisabled[$imgValueId];
|
252 |
$imageNode->appendChild($imageNodeDisabled);
|
253 |
|
254 |
// URL:
|
255 |
$imgUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) .
|
256 |
-
|
257 |
|
258 |
-
$imageNodeUrl = $this->doc->createElement(
|
259 |
Mage::helper('eurotext_translationmanager/xml')
|
260 |
->appendTextChild($this->doc, $imageNodeUrl, $imgUrl);
|
261 |
$imageNode->appendChild($imageNodeUrl);
|
262 |
|
263 |
// Label:
|
264 |
-
$labelNode = $this->doc->createElement(
|
265 |
Mage::helper('eurotext_translationmanager/xml')
|
266 |
->appendTextChild($this->doc, $labelNode, $imgLabel);
|
267 |
$imageNode->appendChild($labelNode);
|
@@ -288,7 +290,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
288 |
foreach ($this->configHelper->getCustomProductAttributesForExport() as $customProductAttribute) {
|
289 |
$srcValue = $productSrc->getDataUsingMethod($customProductAttribute);
|
290 |
$dstValue = $productDst->getDataUsingMethod($customProductAttribute);
|
291 |
-
if ($srcValue && ($srcValue == $dstValue || $dstValue ==
|
292 |
Mage::helper('eurotext_translationmanager/xml')->appendTextNode(
|
293 |
$this->doc,
|
294 |
(string)$customProductAttribute,
|
@@ -298,9 +300,9 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
298 |
}
|
299 |
}
|
300 |
|
301 |
-
if($nodeCustomProductAttributes->hasChildNodes()) {
|
302 |
$this->nodeArticle->appendChild($nodeCustomProductAttributes);
|
303 |
-
|
304 |
|
305 |
}
|
306 |
|
@@ -315,7 +317,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
315 |
foreach ($this->attributesToExportAlways as $attribute => $xmlNode) {
|
316 |
$srcValue = $productSrc->getDataUsingMethod($attribute);
|
317 |
$dstValue = $productDst->getDataUsingMethod($attribute);
|
318 |
-
if ($srcValue && ($srcValue == $dstValue || $dstValue ==
|
319 |
$xmlHelper->appendTextNode($this->doc, $xmlNode, $srcValue, $this->nodeArticle);
|
320 |
}
|
321 |
}
|
@@ -326,7 +328,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
326 |
*/
|
327 |
private function exportOptions($product)
|
328 |
{
|
329 |
-
$optionsNode = $this->doc->createElement(
|
330 |
|
331 |
$options = $product->getOptions();
|
332 |
usort(
|
@@ -342,9 +344,9 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
342 |
|
343 |
foreach ($options as $_option) {
|
344 |
/** @var Mage_Catalog_Model_Product_Option $_option */
|
345 |
-
$optionNode = $this->doc->createElement(
|
346 |
|
347 |
-
$optionNodeIdAttribute = $this->doc->createAttribute(
|
348 |
$optionNodeIdAttribute->value = $_option->getId();
|
349 |
$optionNode->appendChild($optionNodeIdAttribute);
|
350 |
|
@@ -354,7 +356,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
354 |
}
|
355 |
$optionsNode->appendChild($optionNode);
|
356 |
|
357 |
-
$optionsNodeTitle = $this->doc->createElement(
|
358 |
Mage::helper('eurotext_translationmanager/xml')
|
359 |
->appendTextChild($this->doc, $optionsNodeTitle, $_optionTitle);
|
360 |
$optionNode->appendChild($optionsNodeTitle);
|
@@ -364,7 +366,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
364 |
if (!$_values) {
|
365 |
continue;
|
366 |
}
|
367 |
-
$valuesNode = $this->doc->createElement(
|
368 |
|
369 |
foreach ($_values as $_value) {
|
370 |
$_valueTitle = $_value->getTitle();
|
@@ -373,13 +375,13 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
373 |
}
|
374 |
$_valueId = $_value->getId();
|
375 |
|
376 |
-
$valueNode = $this->doc->createElement(
|
377 |
|
378 |
-
$valueNodeIdAttribute = $this->doc->createAttribute(
|
379 |
$valueNodeIdAttribute->value = $_valueId;
|
380 |
$valueNode->appendChild($valueNodeIdAttribute);
|
381 |
|
382 |
-
$valueNodeTitle = $this->doc->createElement(
|
383 |
Mage::helper('eurotext_translationmanager/xml')
|
384 |
->appendTextChild($this->doc, $valueNodeTitle, $_valueTitle);
|
385 |
$valueNode->appendChild($valueNodeTitle);
|
@@ -413,8 +415,8 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
413 |
}
|
414 |
$valueSrc = $productSrc->getUrlKey();
|
415 |
$valueDst = $productDst->getUrlKey();
|
416 |
-
if ($valueSrc !=
|
417 |
-
$item = $this->doc->createElement(
|
418 |
Mage::helper('eurotext_translationmanager/xml')
|
419 |
->appendTextChild($this->doc, $item, $productSrc->getUrlKey());
|
420 |
$this->nodeArticle->appendChild($item);
|
@@ -441,7 +443,7 @@ class Eurotext_TranslationManager_Model_Export_Project_Product
|
|
441 |
foreach ($this->seoAttributes as $attribute => $xmlNode) {
|
442 |
$srcValue = $productSrc->getDataUsingMethod($attribute);
|
443 |
$dstValue = $productDst->getDataUsingMethod($attribute);
|
444 |
-
if ($srcValue && ($srcValue == $dstValue || $dstValue ==
|
445 |
$item = $this->doc->createElement($xmlNode);
|
446 |
Mage::helper('eurotext_translationmanager/xml')
|
447 |
->appendTextChild($this->doc, $item, $srcValue);
|
86 |
$productCollectionDst->addIdFilter($project->getProducts());
|
87 |
}
|
88 |
|
89 |
+
if ($page > $productCollectionSrc->getLastPageNumber() ||
|
90 |
+
(!count($project->getProducts()) && !$project->isExportingAllProducts())
|
91 |
) {
|
92 |
$emulator->stopEnvironmentEmulation($emulation);
|
93 |
|
107 |
'eurotext_translationmanager/catalog_product_attribute_backend_media_onlyStoreValues'
|
108 |
);
|
109 |
|
110 |
+
$statusMessage = Mage::helper('eurotext_translationmanager')->__(
|
111 |
+
'Batch %s / %s Products:',
|
112 |
+
$page,
|
113 |
+
$productCollectionSrc->getLastPageNumber()
|
114 |
+
);
|
115 |
|
116 |
foreach ($productCollectionSrc as $productSrc) {
|
117 |
+
$this->nodeArticle = $this->doc->createElement('article');
|
118 |
$statusMessage .= "\n<br />- " . $productSrc->getSku();
|
119 |
/** @var Mage_Catalog_Model_Product $productDst */
|
120 |
$productDst = $productCollectionDst->getItemById($productSrc->getId());
|
134 |
if ($this->nodeArticle->hasChildNodes()) {
|
135 |
$firstChildNode = $this->nodeArticle->childNodes->item(0);
|
136 |
|
137 |
+
$nodeArticleId = $this->doc->createElement('Id');
|
138 |
$nodeArticleId->appendChild($this->doc->createTextNode($productSrc->getId()));
|
139 |
$this->nodeArticle->insertBefore($nodeArticleId, $firstChildNode);
|
140 |
|
146 |
}
|
147 |
}
|
148 |
|
149 |
+
if ($this->articlesNode->hasChildNodes()) {
|
150 |
+
$subdir = 'articles';
|
151 |
$xmlDir = Mage::helper('eurotext_translationmanager/filesystem')
|
152 |
->getXmlSubdirectoryAndMakeSureItExists($project, $subdir);
|
153 |
|
154 |
+
$this->doc->save($xmlDir . DS . 'a' . ((int)$page) . '.xml');
|
155 |
}
|
156 |
$emulator->stopEnvironmentEmulation($emulation);
|
157 |
|
158 |
return [
|
159 |
+
'offset' => $page + 1,
|
160 |
+
'step' => ProjectExporter::STEP_COLLECT_PRODUCTS,
|
161 |
+
'status_msg' => $statusMessage,
|
162 |
];
|
163 |
}
|
164 |
|
224 |
}
|
225 |
|
226 |
$hasImages = false;
|
227 |
+
$imagesNode = $this->doc->createElement('Images');
|
228 |
|
229 |
foreach ($imagesOrig as $imgValueId => $imgLabel) {
|
230 |
if (!array_key_exists($imgValueId, $imagesDstLabel)) {
|
231 |
+
$imagesDstLabel[$imgValueId] = '';
|
232 |
}
|
233 |
|
234 |
$needsUpdate = $manualSelected;
|
235 |
+
if (trim($imagesDstLabel[$imgValueId]) === '') {
|
236 |
$needsUpdate = true;
|
237 |
}
|
238 |
|
239 |
+
if ($needsUpdate && trim($imgLabel)) {
|
240 |
$hasImages = true;
|
241 |
+
$imageNode = $this->doc->createElement('Image');
|
242 |
$imagesNode->appendChild($imageNode);
|
243 |
|
244 |
+
$imageNodeId = $this->doc->createAttribute('value_id');
|
245 |
$imageNodeId->value = $imgValueId;
|
246 |
$imageNode->appendChild($imageNodeId);
|
247 |
|
248 |
+
$imageNodePosition = $this->doc->createAttribute('position');
|
249 |
$imageNodePosition->value = $imagesDstPosition[$imgValueId];
|
250 |
$imageNode->appendChild($imageNodePosition);
|
251 |
|
252 |
+
$imageNodeDisabled = $this->doc->createAttribute('disabled');
|
253 |
$imageNodeDisabled->value = $imagesDstDisabled[$imgValueId];
|
254 |
$imageNode->appendChild($imageNodeDisabled);
|
255 |
|
256 |
// URL:
|
257 |
$imgUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) .
|
258 |
+
'catalog/product' . $imagesOrigUrl[$imgValueId];
|
259 |
|
260 |
+
$imageNodeUrl = $this->doc->createElement('Url');
|
261 |
Mage::helper('eurotext_translationmanager/xml')
|
262 |
->appendTextChild($this->doc, $imageNodeUrl, $imgUrl);
|
263 |
$imageNode->appendChild($imageNodeUrl);
|
264 |
|
265 |
// Label:
|
266 |
+
$labelNode = $this->doc->createElement('Label');
|
267 |
Mage::helper('eurotext_translationmanager/xml')
|
268 |
->appendTextChild($this->doc, $labelNode, $imgLabel);
|
269 |
$imageNode->appendChild($labelNode);
|
290 |
foreach ($this->configHelper->getCustomProductAttributesForExport() as $customProductAttribute) {
|
291 |
$srcValue = $productSrc->getDataUsingMethod($customProductAttribute);
|
292 |
$dstValue = $productDst->getDataUsingMethod($customProductAttribute);
|
293 |
+
if ($srcValue && ($srcValue == $dstValue || $dstValue == '' || $manualSelected)) {
|
294 |
Mage::helper('eurotext_translationmanager/xml')->appendTextNode(
|
295 |
$this->doc,
|
296 |
(string)$customProductAttribute,
|
300 |
}
|
301 |
}
|
302 |
|
303 |
+
if ($nodeCustomProductAttributes->hasChildNodes()) {
|
304 |
$this->nodeArticle->appendChild($nodeCustomProductAttributes);
|
305 |
+
}
|
306 |
|
307 |
}
|
308 |
|
317 |
foreach ($this->attributesToExportAlways as $attribute => $xmlNode) {
|
318 |
$srcValue = $productSrc->getDataUsingMethod($attribute);
|
319 |
$dstValue = $productDst->getDataUsingMethod($attribute);
|
320 |
+
if ($srcValue && ($srcValue == $dstValue || $dstValue == '' || $manualSelected)) {
|
321 |
$xmlHelper->appendTextNode($this->doc, $xmlNode, $srcValue, $this->nodeArticle);
|
322 |
}
|
323 |
}
|
328 |
*/
|
329 |
private function exportOptions($product)
|
330 |
{
|
331 |
+
$optionsNode = $this->doc->createElement('Options');
|
332 |
|
333 |
$options = $product->getOptions();
|
334 |
usort(
|
344 |
|
345 |
foreach ($options as $_option) {
|
346 |
/** @var Mage_Catalog_Model_Product_Option $_option */
|
347 |
+
$optionNode = $this->doc->createElement('Option');
|
348 |
|
349 |
+
$optionNodeIdAttribute = $this->doc->createAttribute('Id');
|
350 |
$optionNodeIdAttribute->value = $_option->getId();
|
351 |
$optionNode->appendChild($optionNodeIdAttribute);
|
352 |
|
356 |
}
|
357 |
$optionsNode->appendChild($optionNode);
|
358 |
|
359 |
+
$optionsNodeTitle = $this->doc->createElement('Title');
|
360 |
Mage::helper('eurotext_translationmanager/xml')
|
361 |
->appendTextChild($this->doc, $optionsNodeTitle, $_optionTitle);
|
362 |
$optionNode->appendChild($optionsNodeTitle);
|
366 |
if (!$_values) {
|
367 |
continue;
|
368 |
}
|
369 |
+
$valuesNode = $this->doc->createElement('Values');
|
370 |
|
371 |
foreach ($_values as $_value) {
|
372 |
$_valueTitle = $_value->getTitle();
|
375 |
}
|
376 |
$_valueId = $_value->getId();
|
377 |
|
378 |
+
$valueNode = $this->doc->createElement('Value');
|
379 |
|
380 |
+
$valueNodeIdAttribute = $this->doc->createAttribute('Id');
|
381 |
$valueNodeIdAttribute->value = $_valueId;
|
382 |
$valueNode->appendChild($valueNodeIdAttribute);
|
383 |
|
384 |
+
$valueNodeTitle = $this->doc->createElement('Title');
|
385 |
Mage::helper('eurotext_translationmanager/xml')
|
386 |
->appendTextChild($this->doc, $valueNodeTitle, $_valueTitle);
|
387 |
$valueNode->appendChild($valueNodeTitle);
|
415 |
}
|
416 |
$valueSrc = $productSrc->getUrlKey();
|
417 |
$valueDst = $productDst->getUrlKey();
|
418 |
+
if ($valueSrc != '' && ($valueSrc == $valueDst || $valueDst == '' || $manualSelected)) {
|
419 |
+
$item = $this->doc->createElement('UrlKey');
|
420 |
Mage::helper('eurotext_translationmanager/xml')
|
421 |
->appendTextChild($this->doc, $item, $productSrc->getUrlKey());
|
422 |
$this->nodeArticle->appendChild($item);
|
443 |
foreach ($this->seoAttributes as $attribute => $xmlNode) {
|
444 |
$srcValue = $productSrc->getDataUsingMethod($attribute);
|
445 |
$dstValue = $productDst->getDataUsingMethod($attribute);
|
446 |
+
if ($srcValue && ($srcValue == $dstValue || $dstValue == '' || $manualSelected)) {
|
447 |
$item = $this->doc->createElement($xmlNode);
|
448 |
Mage::helper('eurotext_translationmanager/xml')
|
449 |
->appendTextChild($this->doc, $item, $srcValue);
|
app/code/community/Eurotext/TranslationManager/Model/Extractor.php
CHANGED
@@ -53,7 +53,7 @@ class Eurotext_TranslationManager_Model_Extractor
|
|
53 |
return 'Unknown error.';
|
54 |
}
|
55 |
|
56 |
-
function __destruct()
|
57 |
{
|
58 |
$this->zip->close();
|
59 |
}
|
53 |
return 'Unknown error.';
|
54 |
}
|
55 |
|
56 |
+
public function __destruct()
|
57 |
{
|
58 |
$this->zip->close();
|
59 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project.php
CHANGED
@@ -2,21 +2,11 @@
|
|
2 |
|
3 |
class Eurotext_TranslationManager_Model_Import_Project
|
4 |
{
|
5 |
-
/**
|
6 |
-
* @var Varien_Db_Adapter_Interface
|
7 |
-
*/
|
8 |
-
private $writeConnection;
|
9 |
-
|
10 |
/**
|
11 |
* @var mixed[]
|
12 |
*/
|
13 |
private $skippedEntities = [];
|
14 |
|
15 |
-
public function __construct()
|
16 |
-
{
|
17 |
-
$this->writeConnection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
18 |
-
}
|
19 |
-
|
20 |
public function import(
|
21 |
Eurotext_TranslationManager_Model_Project $project
|
22 |
) {
|
@@ -43,19 +33,19 @@ class Eurotext_TranslationManager_Model_Import_Project
|
|
43 |
$filename = $importFile->getFilename();
|
44 |
$fullFilename = $tmpdir . DIRECTORY_SEPARATOR . $filename;
|
45 |
|
46 |
-
if (stripos($filename,
|
47 |
$this->importstepActionImportCMS($fullFilename, $project);
|
48 |
-
} elseif (stripos($filename,
|
49 |
$this->importstepActionImportBlocks($fullFilename, $project);
|
50 |
-
} elseif (stripos($filename,
|
51 |
$this->importstepActionImportArticle($fullFilename, $project);
|
52 |
-
} elseif (stripos($filename,
|
53 |
$this->importstepActionImportCategory($fullFilename, $project);
|
54 |
-
} elseif (stripos($filename,
|
55 |
$this->importstepActionImportTranslation($fullFilename);
|
56 |
-
} elseif (stripos($filename,
|
57 |
$this->importstepActionImportAttributes($fullFilename, $project);
|
58 |
-
} elseif (stripos($filename,
|
59 |
$this->importstepActionImportTemplates($fullFilename, $project);
|
60 |
}
|
61 |
|
@@ -69,17 +59,15 @@ class Eurotext_TranslationManager_Model_Import_Project
|
|
69 |
private function getTempDir()
|
70 |
{
|
71 |
$dir = Mage::getBaseDir('tmp');
|
72 |
-
$dir .= DS .
|
73 |
-
if (!is_dir($dir)) {
|
74 |
-
|
75 |
-
Mage::
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
throw new Magento_Exception('Eurotext temporary directory could not be created.');
|
80 |
-
}
|
81 |
}
|
82 |
-
$htaccessFilename = $dir . DS .
|
83 |
if (!is_file($htaccessFilename)) {
|
84 |
file_put_contents($htaccessFilename, "# Eurotext Temp folder\r\nOrder Deny,Allow\r\nDeny From All");
|
85 |
}
|
2 |
|
3 |
class Eurotext_TranslationManager_Model_Import_Project
|
4 |
{
|
|
|
|
|
|
|
|
|
|
|
5 |
/**
|
6 |
* @var mixed[]
|
7 |
*/
|
8 |
private $skippedEntities = [];
|
9 |
|
|
|
|
|
|
|
|
|
|
|
10 |
public function import(
|
11 |
Eurotext_TranslationManager_Model_Project $project
|
12 |
) {
|
33 |
$filename = $importFile->getFilename();
|
34 |
$fullFilename = $tmpdir . DIRECTORY_SEPARATOR . $filename;
|
35 |
|
36 |
+
if (stripos($filename, 'cms-sites' . DS . 'cms-') === 0) {
|
37 |
$this->importstepActionImportCMS($fullFilename, $project);
|
38 |
+
} elseif (stripos($filename, 'cms-sites' . DS . 'cmsblock-') === 0) {
|
39 |
$this->importstepActionImportBlocks($fullFilename, $project);
|
40 |
+
} elseif (stripos($filename, 'articles' . DS) === 0) {
|
41 |
$this->importstepActionImportArticle($fullFilename, $project);
|
42 |
+
} elseif (stripos($filename, 'categories' . DS) === 0) {
|
43 |
$this->importstepActionImportCategory($fullFilename, $project);
|
44 |
+
} elseif (stripos($filename, 'framework' . DS) === 0) {
|
45 |
$this->importstepActionImportTranslation($fullFilename);
|
46 |
+
} elseif (stripos($filename, 'attributes' . DS) === 0) {
|
47 |
$this->importstepActionImportAttributes($fullFilename, $project);
|
48 |
+
} elseif (stripos($filename, 'emailtemplates' . DS) === 0) {
|
49 |
$this->importstepActionImportTemplates($fullFilename, $project);
|
50 |
}
|
51 |
|
59 |
private function getTempDir()
|
60 |
{
|
61 |
$dir = Mage::getBaseDir('tmp');
|
62 |
+
$dir .= DS . 'eurotext';
|
63 |
+
if (!@mkdir($dir) && !is_dir($dir)) {
|
64 |
+
Mage::helper('eurotext_translationmanager')->log(
|
65 |
+
'Temporary directory could not be created in ' . Mage::getBaseDir('var'),
|
66 |
+
Zend_Log::CRIT
|
67 |
+
);
|
68 |
+
throw new Magento_Exception('Eurotext temporary directory could not be created.');
|
|
|
|
|
69 |
}
|
70 |
+
$htaccessFilename = $dir . DS . '.htaccess';
|
71 |
if (!is_file($htaccessFilename)) {
|
72 |
file_put_contents($htaccessFilename, "# Eurotext Temp folder\r\nOrder Deny,Allow\r\nDeny From All");
|
73 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project/Attributes.php
CHANGED
@@ -14,7 +14,7 @@ class Eurotext_TranslationManager_Model_Import_Project_Attributes
|
|
14 |
$doc = new DOMDocument();
|
15 |
$doc->load($filename);
|
16 |
|
17 |
-
foreach ($doc->getElementsByTagName(
|
18 |
$this->importAttribute($project, $attribute);
|
19 |
}
|
20 |
}
|
@@ -27,15 +27,15 @@ class Eurotext_TranslationManager_Model_Import_Project_Attributes
|
|
27 |
{
|
28 |
/** @var Eurotext_TranslationManager_Model_Eav_Attribute_Label $eavLabel */
|
29 |
$eavLabel = Mage::getResourceModel('eurotext_translationmanager/eav_attribute_label_collection')
|
30 |
-
->addFieldToFilter('attribute_id', $attribute->getAttribute(
|
31 |
->addFieldToFilter('store_id', $project->getStoreviewDst())
|
32 |
->getFirstItem();
|
33 |
|
34 |
$eavLabel->addData(
|
35 |
[
|
36 |
-
'attribute_id' =>
|
37 |
'store_id' => $project->getStoreviewDst(),
|
38 |
-
'value' => $attribute->getElementsByTagName(
|
39 |
]
|
40 |
);
|
41 |
$eavLabel->save();
|
@@ -49,7 +49,7 @@ class Eurotext_TranslationManager_Model_Import_Project_Attributes
|
|
49 |
*/
|
50 |
private function importOptions(Eurotext_TranslationManager_Model_Project $project, DOMElement $attribute)
|
51 |
{
|
52 |
-
foreach ($attribute->getElementsByTagName(
|
53 |
$this->importOption($project, $option);
|
54 |
}
|
55 |
}
|
@@ -61,15 +61,15 @@ class Eurotext_TranslationManager_Model_Import_Project_Attributes
|
|
61 |
private function importOption(Eurotext_TranslationManager_Model_Project $project, DOMElement $option)
|
62 |
{
|
63 |
$value = Mage::getResourceModel('eurotext_translationmanager/eav_attribute_option_value_collection')
|
64 |
-
->addFieldToFilter('option_id', $option->getAttribute(
|
65 |
->addFieldToFilter('store_id', $project->getStoreviewDst())
|
66 |
->getFirstItem();
|
67 |
|
68 |
$value->addData(
|
69 |
[
|
70 |
-
'option_id' =>
|
71 |
'store_id' => $project->getStoreviewDst(),
|
72 |
-
'value' => $option->getElementsByTagName(
|
73 |
]
|
74 |
);
|
75 |
|
14 |
$doc = new DOMDocument();
|
15 |
$doc->load($filename);
|
16 |
|
17 |
+
foreach ($doc->getElementsByTagName('attribute') as $attribute) {
|
18 |
$this->importAttribute($project, $attribute);
|
19 |
}
|
20 |
}
|
27 |
{
|
28 |
/** @var Eurotext_TranslationManager_Model_Eav_Attribute_Label $eavLabel */
|
29 |
$eavLabel = Mage::getResourceModel('eurotext_translationmanager/eav_attribute_label_collection')
|
30 |
+
->addFieldToFilter('attribute_id', $attribute->getAttribute('id'))
|
31 |
->addFieldToFilter('store_id', $project->getStoreviewDst())
|
32 |
->getFirstItem();
|
33 |
|
34 |
$eavLabel->addData(
|
35 |
[
|
36 |
+
'attribute_id' => (int)$attribute->getAttribute('id'),
|
37 |
'store_id' => $project->getStoreviewDst(),
|
38 |
+
'value' => $attribute->getElementsByTagName('AttributeName')[0]->textContent,
|
39 |
]
|
40 |
);
|
41 |
$eavLabel->save();
|
49 |
*/
|
50 |
private function importOptions(Eurotext_TranslationManager_Model_Project $project, DOMElement $attribute)
|
51 |
{
|
52 |
+
foreach ($attribute->getElementsByTagName('option') as $option) {
|
53 |
$this->importOption($project, $option);
|
54 |
}
|
55 |
}
|
61 |
private function importOption(Eurotext_TranslationManager_Model_Project $project, DOMElement $option)
|
62 |
{
|
63 |
$value = Mage::getResourceModel('eurotext_translationmanager/eav_attribute_option_value_collection')
|
64 |
+
->addFieldToFilter('option_id', $option->getAttribute('id'))
|
65 |
->addFieldToFilter('store_id', $project->getStoreviewDst())
|
66 |
->getFirstItem();
|
67 |
|
68 |
$value->addData(
|
69 |
[
|
70 |
+
'option_id' => (int)$option->getAttribute('id'),
|
71 |
'store_id' => $project->getStoreviewDst(),
|
72 |
+
'value' => $option->getElementsByTagName('OptionName')[0]->textContent,
|
73 |
]
|
74 |
);
|
75 |
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project/Categories.php
CHANGED
@@ -35,7 +35,7 @@ class Eurotext_TranslationManager_Model_Import_Project_Categories
|
|
35 |
{
|
36 |
$doc = new DOMDocument();
|
37 |
$doc->load($filename);
|
38 |
-
$categories = $doc->getElementsByTagName(
|
39 |
foreach ($categories as $categoryNode) {
|
40 |
$fieldNodes = $categoryNode->childNodes;
|
41 |
$id = 0;
|
@@ -45,9 +45,9 @@ class Eurotext_TranslationManager_Model_Import_Project_Categories
|
|
45 |
$nodeName = trim($fieldNode->nodeName);
|
46 |
$nodeContent = trim($fieldNode->textContent);
|
47 |
|
48 |
-
if ($nodeName !=
|
49 |
-
if ($nodeName ==
|
50 |
-
$id =
|
51 |
}
|
52 |
if ('custom_attributes' == $nodeName) {
|
53 |
$fields[$nodeName] = $fieldNode;
|
@@ -81,7 +81,7 @@ class Eurotext_TranslationManager_Model_Import_Project_Categories
|
|
81 |
if (!$hasUrlKey) {
|
82 |
// Check if urlkey is already set:
|
83 |
$urlKey = Mage::getResourceModel('catalog/category')
|
84 |
-
->getAttributeRawValue($id,
|
85 |
|
86 |
if (!$urlKey) {
|
87 |
// setting null will force magento to generate the urlkey using the product-name
|
35 |
{
|
36 |
$doc = new DOMDocument();
|
37 |
$doc->load($filename);
|
38 |
+
$categories = $doc->getElementsByTagName('category');
|
39 |
foreach ($categories as $categoryNode) {
|
40 |
$fieldNodes = $categoryNode->childNodes;
|
41 |
$id = 0;
|
45 |
$nodeName = trim($fieldNode->nodeName);
|
46 |
$nodeContent = trim($fieldNode->textContent);
|
47 |
|
48 |
+
if ($nodeName != '') {
|
49 |
+
if ($nodeName == 'Id') {
|
50 |
+
$id = (int)$nodeContent;
|
51 |
}
|
52 |
if ('custom_attributes' == $nodeName) {
|
53 |
$fields[$nodeName] = $fieldNode;
|
81 |
if (!$hasUrlKey) {
|
82 |
// Check if urlkey is already set:
|
83 |
$urlKey = Mage::getResourceModel('catalog/category')
|
84 |
+
->getAttributeRawValue($id, 'url_key', $project->getStoreviewDst());
|
85 |
|
86 |
if (!$urlKey) {
|
87 |
// setting null will force magento to generate the urlkey using the product-name
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project/CmsBlocks.php
CHANGED
@@ -21,7 +21,7 @@ class Eurotext_TranslationManager_Model_Import_Project_CmsBlocks
|
|
21 |
{
|
22 |
$doc = new DOMDocument();
|
23 |
$doc->load($filename);
|
24 |
-
$cmsSites = $doc->getElementsByTagName(
|
25 |
foreach ($cmsSites as $cmsSite) {
|
26 |
try {
|
27 |
$this->importBlock($cmsSite, $project);
|
@@ -91,11 +91,11 @@ class Eurotext_TranslationManager_Model_Import_Project_CmsBlocks
|
|
91 |
$nodeName = trim($fieldNode->nodeName);
|
92 |
$nodeContent = trim($fieldNode->textContent);
|
93 |
|
94 |
-
if ($nodeName !=
|
95 |
-
if ($nodeName ==
|
96 |
-
$id =
|
97 |
-
} elseif ($nodeName ==
|
98 |
-
$StoreviewDst =
|
99 |
} else {
|
100 |
$fields[$nodeName] = $nodeContent;
|
101 |
}
|
@@ -103,7 +103,6 @@ class Eurotext_TranslationManager_Model_Import_Project_CmsBlocks
|
|
103 |
}
|
104 |
|
105 |
if ($id > 0) {
|
106 |
-
$blockDst = null;
|
107 |
/** @var $blockSrc Mage_Cms_Model_Block */
|
108 |
$blockSrc = Mage::getModel('cms/block')->load($id);
|
109 |
|
21 |
{
|
22 |
$doc = new DOMDocument();
|
23 |
$doc->load($filename);
|
24 |
+
$cmsSites = $doc->getElementsByTagName('cms-site');
|
25 |
foreach ($cmsSites as $cmsSite) {
|
26 |
try {
|
27 |
$this->importBlock($cmsSite, $project);
|
91 |
$nodeName = trim($fieldNode->nodeName);
|
92 |
$nodeContent = trim($fieldNode->textContent);
|
93 |
|
94 |
+
if ($nodeName != '') {
|
95 |
+
if ($nodeName == 'Id') {
|
96 |
+
$id = (int)$nodeContent;
|
97 |
+
} elseif ($nodeName == 'StoreviewDst') {
|
98 |
+
$StoreviewDst = (int)$nodeContent;
|
99 |
} else {
|
100 |
$fields[$nodeName] = $nodeContent;
|
101 |
}
|
103 |
}
|
104 |
|
105 |
if ($id > 0) {
|
|
|
106 |
/** @var $blockSrc Mage_Cms_Model_Block */
|
107 |
$blockSrc = Mage::getModel('cms/block')->load($id);
|
108 |
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project/CmsPages.php
CHANGED
@@ -13,7 +13,7 @@ class Eurotext_TranslationManager_Model_Import_Project_CmsPages
|
|
13 |
{
|
14 |
$doc = new DOMDocument();
|
15 |
$doc->load($fullFilename);
|
16 |
-
$cmsSites = $doc->getElementsByTagName(
|
17 |
foreach ($cmsSites as $cmsSite) {
|
18 |
try {
|
19 |
$this->importPage($cmsSite, $project, $fullFilename);
|
@@ -43,9 +43,10 @@ class Eurotext_TranslationManager_Model_Import_Project_CmsPages
|
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
-
* @param DOMDocument
|
47 |
* @param Eurotext_TranslationManager_Model_Project $project
|
48 |
-
* @param
|
|
|
49 |
* @throws Exception
|
50 |
*/
|
51 |
private function importPage(DOMElement $cmsSite, Eurotext_TranslationManager_Model_Project $project, $fullFilename)
|
@@ -63,9 +64,9 @@ class Eurotext_TranslationManager_Model_Import_Project_CmsPages
|
|
63 |
$nodeName = trim($fieldNode->nodeName);
|
64 |
$nodeContent = trim($fieldNode->textContent);
|
65 |
|
66 |
-
if ($nodeName !=
|
67 |
-
if ($nodeName ==
|
68 |
-
$id =
|
69 |
} else {
|
70 |
$fields[$nodeName] = $nodeContent;
|
71 |
}
|
13 |
{
|
14 |
$doc = new DOMDocument();
|
15 |
$doc->load($fullFilename);
|
16 |
+
$cmsSites = $doc->getElementsByTagName('cms-site');
|
17 |
foreach ($cmsSites as $cmsSite) {
|
18 |
try {
|
19 |
$this->importPage($cmsSite, $project, $fullFilename);
|
43 |
}
|
44 |
|
45 |
/**
|
46 |
+
* @param DOMDocument|DOMElement $cmsSite
|
47 |
* @param Eurotext_TranslationManager_Model_Project $project
|
48 |
+
* @param string $fullFilename
|
49 |
+
* @throws Eurotext_TranslationManager_Model_Import_Project_Exception_MissingEntity
|
50 |
* @throws Exception
|
51 |
*/
|
52 |
private function importPage(DOMElement $cmsSite, Eurotext_TranslationManager_Model_Project $project, $fullFilename)
|
64 |
$nodeName = trim($fieldNode->nodeName);
|
65 |
$nodeContent = trim($fieldNode->textContent);
|
66 |
|
67 |
+
if ($nodeName != '') {
|
68 |
+
if ($nodeName == 'Id') {
|
69 |
+
$id = (int)$nodeContent;
|
70 |
} else {
|
71 |
$fields[$nodeName] = $nodeContent;
|
72 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project/EmailTemplates.php
CHANGED
@@ -119,8 +119,8 @@ $text
|
|
119 |
HTML;
|
120 |
$file = Mage::getBaseDir('app') . '/locale/' . $project->getStoreviewDstLocale() . '/template' . $path;
|
121 |
$dir = dirname($file);
|
122 |
-
if (!is_dir($dir)) {
|
123 |
-
|
124 |
}
|
125 |
file_put_contents($file, $html);
|
126 |
}
|
119 |
HTML;
|
120 |
$file = Mage::getBaseDir('app') . '/locale/' . $project->getStoreviewDstLocale() . '/template' . $path;
|
121 |
$dir = dirname($file);
|
122 |
+
if (!@mkdir($dir, 0777, true) && !is_dir($dir)) {
|
123 |
+
throw new Exception(sprintf('Directory %s could not be created.', $dir));
|
124 |
}
|
125 |
file_put_contents($file, $html);
|
126 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project/LocaleCsvFiles.php
CHANGED
@@ -30,8 +30,8 @@ class Eurotext_TranslationManager_Model_Import_Project_LocaleCsvFiles
|
|
30 |
private function createCsvDirectory($path)
|
31 |
{
|
32 |
$csvDirectory = dirname($path);
|
33 |
-
if (!is_dir($csvDirectory)) {
|
34 |
-
|
35 |
}
|
36 |
}
|
37 |
|
@@ -57,7 +57,7 @@ class Eurotext_TranslationManager_Model_Import_Project_LocaleCsvFiles
|
|
57 |
private function readNewTranslationsFromXml($doc, $path, $translations)
|
58 |
{
|
59 |
/** @var $newTranslations DOMNode */
|
60 |
-
$newTranslations = $doc->getElementsByTagName(
|
61 |
|
62 |
foreach ($newTranslations->childNodes as $line) {
|
63 |
$originalString = null;
|
@@ -135,9 +135,8 @@ class Eurotext_TranslationManager_Model_Import_Project_LocaleCsvFiles
|
|
135 |
/** @var DOMElement $node */
|
136 |
$node = $doc->getElementsByTagName('translation')[0];
|
137 |
$relativeDestinationFile = $node->getAttribute('dst_filename');
|
138 |
-
$destinationFile = Mage::getBaseDir('app') . $relativeDestinationFile;
|
139 |
|
140 |
-
return $
|
141 |
}
|
142 |
|
143 |
/**
|
30 |
private function createCsvDirectory($path)
|
31 |
{
|
32 |
$csvDirectory = dirname($path);
|
33 |
+
if (!@mkdir($csvDirectory, 0777, true) && !is_dir($csvDirectory)) {
|
34 |
+
throw new Exception(sprintf('Directory %s could not be created.', $csvDirectory));
|
35 |
}
|
36 |
}
|
37 |
|
57 |
private function readNewTranslationsFromXml($doc, $path, $translations)
|
58 |
{
|
59 |
/** @var $newTranslations DOMNode */
|
60 |
+
$newTranslations = $doc->getElementsByTagName('translation')[0];
|
61 |
|
62 |
foreach ($newTranslations->childNodes as $line) {
|
63 |
$originalString = null;
|
135 |
/** @var DOMElement $node */
|
136 |
$node = $doc->getElementsByTagName('translation')[0];
|
137 |
$relativeDestinationFile = $node->getAttribute('dst_filename');
|
|
|
138 |
|
139 |
+
return Mage::getBaseDir('app') . $relativeDestinationFile;
|
140 |
}
|
141 |
|
142 |
/**
|
app/code/community/Eurotext/TranslationManager/Model/Import/Project/Product.php
CHANGED
@@ -20,7 +20,7 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
20 |
/**
|
21 |
* @var string[]
|
22 |
*/
|
23 |
-
private $ignoreFields = [
|
24 |
|
25 |
/**
|
26 |
* @var mixed[]
|
@@ -81,7 +81,7 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
81 |
$this->helper->log('=== Importing Products ===');
|
82 |
|
83 |
/** @var $article DOMElement */
|
84 |
-
foreach ($this->domDocument->getElementsByTagName(
|
85 |
try {
|
86 |
$product = $this->productLoader->load(
|
87 |
$this->getProductIdFromXml($article),
|
@@ -140,9 +140,9 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
140 |
$nodeName = trim($fieldNode->nodeName);
|
141 |
$nodeContent = trim($fieldNode->textContent);
|
142 |
|
143 |
-
if ($nodeName !=
|
144 |
-
if ($nodeName ==
|
145 |
-
$id =
|
146 |
} else {
|
147 |
if ('custom_attributes' == $nodeName) {
|
148 |
$fields[$nodeName] = $fieldNode;
|
@@ -166,11 +166,11 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
166 |
$product->setDataUsingMethod('url_key', $value);
|
167 |
continue;
|
168 |
}
|
169 |
-
if ($key ==
|
170 |
$this->processProductImages($article, $product);
|
171 |
continue;
|
172 |
}
|
173 |
-
if ($key ==
|
174 |
$this->processOptionsForProduct($article);
|
175 |
continue;
|
176 |
}
|
@@ -194,20 +194,19 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
194 |
*/
|
195 |
private function processProductImages(DOMElement $article, Mage_Catalog_Model_Product $product)
|
196 |
{
|
|
|
197 |
|
198 |
-
$imageNodes
|
199 |
-
|
200 |
-
if($imageNodes->length){
|
201 |
$product->getMediaGalleryImages();
|
202 |
}
|
203 |
|
204 |
foreach ($imageNodes as $imageNode) {
|
205 |
/** @var $imageNode DomElement */
|
206 |
-
$imgValueId =
|
207 |
-
$imgPosition =
|
208 |
-
$imgDisabled =
|
209 |
|
210 |
-
$labelNodes = $imageNode->getElementsByTagName(
|
211 |
$imgLabel = '';
|
212 |
foreach ($labelNodes as $labelNode) {
|
213 |
$imgLabel = trim($labelNode->textContent);
|
@@ -223,20 +222,20 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
223 |
*/
|
224 |
private function processOptionsForProduct($article)
|
225 |
{
|
226 |
-
$optionNodes = $article->getElementsByTagName(
|
227 |
foreach ($optionNodes as $optionNode) {
|
228 |
/** @var $optionNode DOMElement */
|
229 |
-
$optionId =
|
230 |
-
$title = trim($this->getXMLChildNodeText($optionNode,
|
231 |
if ($title) {
|
232 |
Mage::getResourceModel('eurotext_translationmanager/catalog_product_option_title')
|
233 |
->updateTitleForStore($optionId, $title, $this->getStoreId());
|
234 |
}
|
235 |
|
236 |
-
$OptionValueNodes = $article->getElementsByTagName(
|
237 |
foreach ($OptionValueNodes as $OptionValueNode) {
|
238 |
-
$optionValueId =
|
239 |
-
$optionValueTitle = trim($this->getXMLChildNodeText($OptionValueNode,
|
240 |
|
241 |
if ($optionValueTitle) {
|
242 |
Mage::getResourceModel('eurotext_translationmanager/catalog_product_option_type_title')
|
@@ -253,7 +252,7 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
253 |
*
|
254 |
* @return string
|
255 |
*/
|
256 |
-
private function getXMLChildNodeText(DOMElement $element, $childnodeName, $defaultValue =
|
257 |
{
|
258 |
$childNode = $this->getXMLChildNode($element, $childnodeName);
|
259 |
if ($childNode == null) {
|
@@ -274,10 +273,8 @@ class Eurotext_TranslationManager_Model_Import_Project_Product
|
|
274 |
{
|
275 |
$childNodes = $element->childNodes;
|
276 |
foreach ($childNodes as $childNode) {
|
277 |
-
if ($childNode->nodeType == XML_ELEMENT_NODE) {
|
278 |
-
|
279 |
-
return $childNode;
|
280 |
-
}
|
281 |
}
|
282 |
}
|
283 |
|
20 |
/**
|
21 |
* @var string[]
|
22 |
*/
|
23 |
+
private $ignoreFields = ['#text', 'Url'];
|
24 |
|
25 |
/**
|
26 |
* @var mixed[]
|
81 |
$this->helper->log('=== Importing Products ===');
|
82 |
|
83 |
/** @var $article DOMElement */
|
84 |
+
foreach ($this->domDocument->getElementsByTagName('article') as $article) {
|
85 |
try {
|
86 |
$product = $this->productLoader->load(
|
87 |
$this->getProductIdFromXml($article),
|
140 |
$nodeName = trim($fieldNode->nodeName);
|
141 |
$nodeContent = trim($fieldNode->textContent);
|
142 |
|
143 |
+
if ($nodeName != '') {
|
144 |
+
if ($nodeName == 'Id') {
|
145 |
+
$id = (int)$nodeContent;
|
146 |
} else {
|
147 |
if ('custom_attributes' == $nodeName) {
|
148 |
$fields[$nodeName] = $fieldNode;
|
166 |
$product->setDataUsingMethod('url_key', $value);
|
167 |
continue;
|
168 |
}
|
169 |
+
if ($key == 'Images') {
|
170 |
$this->processProductImages($article, $product);
|
171 |
continue;
|
172 |
}
|
173 |
+
if ($key == 'Options') {
|
174 |
$this->processOptionsForProduct($article);
|
175 |
continue;
|
176 |
}
|
194 |
*/
|
195 |
private function processProductImages(DOMElement $article, Mage_Catalog_Model_Product $product)
|
196 |
{
|
197 |
+
$imageNodes = $article->getElementsByTagName('Image');
|
198 |
|
199 |
+
if ($imageNodes->length) {
|
|
|
|
|
200 |
$product->getMediaGalleryImages();
|
201 |
}
|
202 |
|
203 |
foreach ($imageNodes as $imageNode) {
|
204 |
/** @var $imageNode DomElement */
|
205 |
+
$imgValueId = (int)$imageNode->getAttributeNode('value_id')->value;
|
206 |
+
$imgPosition = (int)$imageNode->getAttributeNode('position')->value;
|
207 |
+
$imgDisabled = (int)$imageNode->getAttributeNode('disabled')->value;
|
208 |
|
209 |
+
$labelNodes = $imageNode->getElementsByTagName('Label');
|
210 |
$imgLabel = '';
|
211 |
foreach ($labelNodes as $labelNode) {
|
212 |
$imgLabel = trim($labelNode->textContent);
|
222 |
*/
|
223 |
private function processOptionsForProduct($article)
|
224 |
{
|
225 |
+
$optionNodes = $article->getElementsByTagName('Option');
|
226 |
foreach ($optionNodes as $optionNode) {
|
227 |
/** @var $optionNode DOMElement */
|
228 |
+
$optionId = (int)$optionNode->getAttributeNode('Id')->value;
|
229 |
+
$title = trim($this->getXMLChildNodeText($optionNode, 'Title', ''));
|
230 |
if ($title) {
|
231 |
Mage::getResourceModel('eurotext_translationmanager/catalog_product_option_title')
|
232 |
->updateTitleForStore($optionId, $title, $this->getStoreId());
|
233 |
}
|
234 |
|
235 |
+
$OptionValueNodes = $article->getElementsByTagName('Value');
|
236 |
foreach ($OptionValueNodes as $OptionValueNode) {
|
237 |
+
$optionValueId = (int)$OptionValueNode->getAttributeNode('Id')->value;
|
238 |
+
$optionValueTitle = trim($this->getXMLChildNodeText($OptionValueNode, 'Title', ''));
|
239 |
|
240 |
if ($optionValueTitle) {
|
241 |
Mage::getResourceModel('eurotext_translationmanager/catalog_product_option_type_title')
|
252 |
*
|
253 |
* @return string
|
254 |
*/
|
255 |
+
private function getXMLChildNodeText(DOMElement $element, $childnodeName, $defaultValue = '')
|
256 |
{
|
257 |
$childNode = $this->getXMLChildNode($element, $childnodeName);
|
258 |
if ($childNode == null) {
|
273 |
{
|
274 |
$childNodes = $element->childNodes;
|
275 |
foreach ($childNodes as $childNode) {
|
276 |
+
if ($childNode->nodeType == XML_ELEMENT_NODE && $childNode->tagName == $childnodeName) {
|
277 |
+
return $childNode;
|
|
|
|
|
278 |
}
|
279 |
}
|
280 |
|
app/code/community/Eurotext/TranslationManager/Model/Import/Queue.php
CHANGED
@@ -16,7 +16,8 @@ class Eurotext_TranslationManager_Model_Import_Queue
|
|
16 |
}
|
17 |
|
18 |
/**
|
19 |
-
* @param
|
|
|
20 |
*/
|
21 |
public function addControlXmlToQueue(Eurotext_TranslationManager_Model_Project $project, $controlFile)
|
22 |
{
|
16 |
}
|
17 |
|
18 |
/**
|
19 |
+
* @param Eurotext_TranslationManager_Model_Project $project
|
20 |
+
* @param string $controlFile
|
21 |
*/
|
22 |
public function addControlXmlToQueue(Eurotext_TranslationManager_Model_Project $project, $controlFile)
|
23 |
{
|
app/code/community/Eurotext/TranslationManager/Model/Import/Validator.php
CHANGED
@@ -32,7 +32,7 @@ class Eurotext_TranslationManager_Model_Import_Validator
|
|
32 |
if (!ctype_digit($projectIdFromXml)) {
|
33 |
Mage::throwException(
|
34 |
Mage::helper('eurotext_translationmanager')->__(
|
35 |
-
|
36 |
)
|
37 |
);
|
38 |
}
|
@@ -63,7 +63,7 @@ class Eurotext_TranslationManager_Model_Import_Validator
|
|
63 |
{
|
64 |
$doc = new DOMDocument();
|
65 |
$doc->load($controlFile);
|
66 |
-
$nodes = $doc->getElementsByTagName(
|
67 |
$projectIdFromXml = null;
|
68 |
foreach ($nodes as $node) {
|
69 |
$description = $node->textContent;
|
32 |
if (!ctype_digit($projectIdFromXml)) {
|
33 |
Mage::throwException(
|
34 |
Mage::helper('eurotext_translationmanager')->__(
|
35 |
+
'Could not read project-id from Description-Field in control.xml'
|
36 |
)
|
37 |
);
|
38 |
}
|
63 |
{
|
64 |
$doc = new DOMDocument();
|
65 |
$doc->load($controlFile);
|
66 |
+
$nodes = $doc->getElementsByTagName('Description');
|
67 |
$projectIdFromXml = null;
|
68 |
foreach ($nodes as $node) {
|
69 |
$description = $node->textContent;
|
app/code/community/Eurotext/TranslationManager/Model/Observer.php
CHANGED
@@ -10,7 +10,7 @@ class Eurotext_TranslationManager_Model_Observer
|
|
10 |
/**
|
11 |
* @var string
|
12 |
*/
|
13 |
-
private $subject =
|
14 |
|
15 |
/**
|
16 |
* @var string[]
|
@@ -139,10 +139,10 @@ class Eurotext_TranslationManager_Model_Observer
|
|
139 |
*/
|
140 |
private function composeEmail($changes, $newValues, $prevValues)
|
141 |
{
|
142 |
-
$this->addLineHtml(
|
143 |
-
$this->addLineHtml(
|
144 |
if ($this->alreadyRegistered) {
|
145 |
-
$this->subject =
|
146 |
|
147 |
if (!empty($changes)) {
|
148 |
$this->addChangesToEmailBody($changes, $newValues, $prevValues);
|
@@ -180,14 +180,14 @@ class Eurotext_TranslationManager_Model_Observer
|
|
180 |
*/
|
181 |
private function addChangesToEmailBody($changes, $newValues, $prevValues)
|
182 |
{
|
183 |
-
$this->addLineHtml(
|
184 |
|
185 |
$customerId = $this->configHelper->getCustomerId();
|
186 |
|
187 |
if ($customerId) {
|
188 |
-
$this->addLineHtml(
|
189 |
} else {
|
190 |
-
$this->addLineHtml(
|
191 |
}
|
192 |
|
193 |
$this->addHorizontalRuler();
|
@@ -243,7 +243,7 @@ class Eurotext_TranslationManager_Model_Observer
|
|
243 |
private function updateConfig()
|
244 |
{
|
245 |
$this->configHelper->setEmailSent();
|
246 |
-
$this->configHelper->setEmailSentDate(date(
|
247 |
}
|
248 |
|
249 |
/**
|
10 |
/**
|
11 |
* @var string
|
12 |
*/
|
13 |
+
private $subject = 'Magento translationMANAGER: Registrierung';
|
14 |
|
15 |
/**
|
16 |
* @var string[]
|
139 |
*/
|
140 |
private function composeEmail($changes, $newValues, $prevValues)
|
141 |
{
|
142 |
+
$this->addLineHtml('Hallo,');
|
143 |
+
$this->addLineHtml('Ein Kunde hat sich via Magento-Modul neu registriert');
|
144 |
if ($this->alreadyRegistered) {
|
145 |
+
$this->subject = 'Update - Ein Magento translationMANAGER-Kunde hat seine Registrierungsdaten geändert';
|
146 |
|
147 |
if (!empty($changes)) {
|
148 |
$this->addChangesToEmailBody($changes, $newValues, $prevValues);
|
180 |
*/
|
181 |
private function addChangesToEmailBody($changes, $newValues, $prevValues)
|
182 |
{
|
183 |
+
$this->addLineHtml('Ein Kunde hat im Magento-Modul seine Kontaktdaten geändert:');
|
184 |
|
185 |
$customerId = $this->configHelper->getCustomerId();
|
186 |
|
187 |
if ($customerId) {
|
188 |
+
$this->addLineHtml('Kundennummer: ' . $customerId);
|
189 |
} else {
|
190 |
+
$this->addLineHtml('Bisher hat der Kunde keine gültige Kundennummer eingetragen.');
|
191 |
}
|
192 |
|
193 |
$this->addHorizontalRuler();
|
243 |
private function updateConfig()
|
244 |
{
|
245 |
$this->configHelper->setEmailSent();
|
246 |
+
$this->configHelper->setEmailSentDate(date('d.m.Y H:i:s (T)'));
|
247 |
}
|
248 |
|
249 |
/**
|
app/code/community/Eurotext/TranslationManager/Model/ProductLoader.php
CHANGED
@@ -2,6 +2,10 @@
|
|
2 |
|
3 |
class Eurotext_TranslationManager_Model_ProductLoader
|
4 |
{
|
|
|
|
|
|
|
|
|
5 |
/**
|
6 |
* @param int $productId
|
7 |
* @param int $storeId
|
@@ -17,7 +21,7 @@ class Eurotext_TranslationManager_Model_ProductLoader
|
|
17 |
Mage::helper('eurotext_translationmanager')->__("Wrong Product ID '%s'", $productId)
|
18 |
);
|
19 |
}
|
20 |
-
Mage::log(
|
21 |
Mage::throwException(
|
22 |
Mage::helper('eurotext_translationmanager')->__("Wrong Product ID '<no int>'", $productId)
|
23 |
);
|
@@ -34,7 +38,20 @@ class Eurotext_TranslationManager_Model_ProductLoader
|
|
34 |
$productId
|
35 |
);
|
36 |
}
|
37 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
38 |
|
39 |
return $product;
|
40 |
}
|
2 |
|
3 |
class Eurotext_TranslationManager_Model_ProductLoader
|
4 |
{
|
5 |
+
private $requiredAttributes = [
|
6 |
+
'entity_id', 'attribute_set_id', 'store_id', 'media_gallery'
|
7 |
+
];
|
8 |
+
|
9 |
/**
|
10 |
* @param int $productId
|
11 |
* @param int $storeId
|
21 |
Mage::helper('eurotext_translationmanager')->__("Wrong Product ID '%s'", $productId)
|
22 |
);
|
23 |
}
|
24 |
+
Mage::log('Wrong Product (ID: <no int>)');
|
25 |
Mage::throwException(
|
26 |
Mage::helper('eurotext_translationmanager')->__("Wrong Product ID '<no int>'", $productId)
|
27 |
);
|
38 |
$productId
|
39 |
);
|
40 |
}
|
41 |
+
|
42 |
+
$requiredAttributes = $this->requiredAttributes;
|
43 |
+
$data = $product->getData();
|
44 |
+
array_walk(
|
45 |
+
$data,
|
46 |
+
function (&$value, $key) use ($requiredAttributes) {
|
47 |
+
if (in_array($key, $requiredAttributes, true)) {
|
48 |
+
return;
|
49 |
+
}
|
50 |
+
$value = false;
|
51 |
+
}
|
52 |
+
);
|
53 |
+
|
54 |
+
$product->setData($data);
|
55 |
|
56 |
return $product;
|
57 |
}
|
app/code/community/Eurotext/TranslationManager/Model/Project.php
CHANGED
@@ -22,7 +22,6 @@
|
|
22 |
* @method int getFilterStock()
|
23 |
* @method int getFilterProductTyp()
|
24 |
* @method int getCreatedAt()
|
25 |
-
* @method setId(int $id)
|
26 |
* @method setDeleted(bool $deleted)
|
27 |
* @method setCreateId(int $created)
|
28 |
* @method setUpatedAt(int $timestamp)
|
@@ -262,10 +261,7 @@ class Eurotext_TranslationManager_Model_Project extends Mage_Core_Model_Abstract
|
|
262 |
$this->setStoreviewDstLocale(Mage::getStoreConfig('general/locale/code', $this->getStoreviewDst()));
|
263 |
}
|
264 |
|
265 |
-
|
266 |
-
$project = parent::_afterLoad();
|
267 |
-
|
268 |
-
return $project;
|
269 |
}
|
270 |
|
271 |
/**
|
22 |
* @method int getFilterStock()
|
23 |
* @method int getFilterProductTyp()
|
24 |
* @method int getCreatedAt()
|
|
|
25 |
* @method setDeleted(bool $deleted)
|
26 |
* @method setCreateId(int $created)
|
27 |
* @method setUpatedAt(int $timestamp)
|
261 |
$this->setStoreviewDstLocale(Mage::getStoreConfig('general/locale/code', $this->getStoreviewDst()));
|
262 |
}
|
263 |
|
264 |
+
return parent::_afterLoad();
|
|
|
|
|
|
|
265 |
}
|
266 |
|
267 |
/**
|
app/code/community/Eurotext/TranslationManager/Model/Resource/Csv/Collection.php
CHANGED
@@ -50,10 +50,8 @@ class Eurotext_TranslationManager_Model_Resource_Csv_Collection
|
|
50 |
|
51 |
$this->setFilesFilter('#^[a-zA-Z0-9_]+\.csv$#');
|
52 |
$this->setDisallowedFilesFilter(false);
|
53 |
-
/** @var Eurotext_TranslationManager_Model_Resource_Csv_Collection $collection */
|
54 |
-
$collection = parent::loadData($printQuery, $logQuery);
|
55 |
|
56 |
-
return $
|
57 |
}
|
58 |
|
59 |
/**
|
@@ -66,6 +64,7 @@ class Eurotext_TranslationManager_Model_Resource_Csv_Collection
|
|
66 |
|
67 |
/**
|
68 |
* @param string $language
|
|
|
69 |
* @return $this
|
70 |
*/
|
71 |
public function setTargetPathByLanguageAndStore($language, $store)
|
@@ -92,7 +91,7 @@ class Eurotext_TranslationManager_Model_Resource_Csv_Collection
|
|
92 |
*/
|
93 |
public function setPageSize($size)
|
94 |
{
|
95 |
-
/** @var $thisCollection
|
96 |
$thisCollection = parent::setPageSize($size + 1);
|
97 |
|
98 |
return $thisCollection;
|
50 |
|
51 |
$this->setFilesFilter('#^[a-zA-Z0-9_]+\.csv$#');
|
52 |
$this->setDisallowedFilesFilter(false);
|
|
|
|
|
53 |
|
54 |
+
return parent::loadData($printQuery, $logQuery);
|
55 |
}
|
56 |
|
57 |
/**
|
64 |
|
65 |
/**
|
66 |
* @param string $language
|
67 |
+
* @param string $store
|
68 |
* @return $this
|
69 |
*/
|
70 |
public function setTargetPathByLanguageAndStore($language, $store)
|
91 |
*/
|
92 |
public function setPageSize($size)
|
93 |
{
|
94 |
+
/** @var $thisCollection Eurotext_TranslationManager_Model_Resource_Csv_Collection */
|
95 |
$thisCollection = parent::setPageSize($size + 1);
|
96 |
|
97 |
return $thisCollection;
|
app/code/community/Eurotext/TranslationManager/Model/Xml/Import/Cms/BlockReader.php
CHANGED
@@ -7,11 +7,11 @@ class Eurotext_TranslationManager_Model_Xml_Import_Cms_BlockReader implements It
|
|
7 |
*/
|
8 |
private $domDocument;
|
9 |
|
10 |
-
private $intNodes =
|
11 |
'StoreviewSrc',
|
12 |
'StoreviewDst',
|
13 |
'Id',
|
14 |
-
|
15 |
|
16 |
public function __construct($xmlFile)
|
17 |
{
|
@@ -30,7 +30,7 @@ class Eurotext_TranslationManager_Model_Xml_Import_Cms_BlockReader implements It
|
|
30 |
{
|
31 |
|
32 |
$xmlBlocks = $this->domDocument->getElementsByTagName('cms-site');
|
33 |
-
$blocks =
|
34 |
/** @var $xmlBlock DOMElement */
|
35 |
foreach ($xmlBlocks as $xmlBlock) {
|
36 |
$block = Mage::getModel('eurotext_translationmanager/xml_import_cms_block');
|
@@ -43,10 +43,9 @@ class Eurotext_TranslationManager_Model_Xml_Import_Cms_BlockReader implements It
|
|
43 |
$nodeName = $node->nodeName;
|
44 |
$nodeValue = (string)$node->textContent;
|
45 |
|
|
|
46 |
if (in_array($nodeName, $this->intNodes)) {
|
47 |
$block->$nodeName = (int)$nodeValue;
|
48 |
-
} else {
|
49 |
-
$block->$nodeName = $nodeValue;
|
50 |
}
|
51 |
}
|
52 |
|
7 |
*/
|
8 |
private $domDocument;
|
9 |
|
10 |
+
private $intNodes = [
|
11 |
'StoreviewSrc',
|
12 |
'StoreviewDst',
|
13 |
'Id',
|
14 |
+
];
|
15 |
|
16 |
public function __construct($xmlFile)
|
17 |
{
|
30 |
{
|
31 |
|
32 |
$xmlBlocks = $this->domDocument->getElementsByTagName('cms-site');
|
33 |
+
$blocks = [];
|
34 |
/** @var $xmlBlock DOMElement */
|
35 |
foreach ($xmlBlocks as $xmlBlock) {
|
36 |
$block = Mage::getModel('eurotext_translationmanager/xml_import_cms_block');
|
43 |
$nodeName = $node->nodeName;
|
44 |
$nodeValue = (string)$node->textContent;
|
45 |
|
46 |
+
$block->$nodeName = $nodeValue;
|
47 |
if (in_array($nodeName, $this->intNodes)) {
|
48 |
$block->$nodeName = (int)$nodeValue;
|
|
|
|
|
49 |
}
|
50 |
}
|
51 |
|
app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/.DS_Store
CHANGED
Binary file
|
app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/Project/ExportController.php
CHANGED
@@ -37,20 +37,20 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_Project_ExportController ex
|
|
37 |
$block = $this->getLayout()->getBlock('et.tm.response.ajax');
|
38 |
|
39 |
$request = $this->getRequest();
|
40 |
-
$step =
|
41 |
-
$offset =
|
42 |
-
$project_id =
|
43 |
|
44 |
$project = $this->getProject($project_id);
|
45 |
|
46 |
-
$block->setStatusMsg($this->__(
|
47 |
-
$block->setStatusCode(
|
48 |
$block->setStep($step);
|
49 |
$block->setFinished(false);
|
50 |
try {
|
51 |
Mage::getModel('eurotext_translationmanager/export_project')->export($step, $block, $project, $offset);
|
52 |
} catch (Exception $e) {
|
53 |
-
$block->setStatusCode(
|
54 |
$block->setStatusMsg($e->getMessage());
|
55 |
}
|
56 |
$response->setBody($block->toJson());
|
37 |
$block = $this->getLayout()->getBlock('et.tm.response.ajax');
|
38 |
|
39 |
$request = $this->getRequest();
|
40 |
+
$step = (int)$request->getParam('step');
|
41 |
+
$offset = (int)$request->getParam('offset');
|
42 |
+
$project_id = (int)$request->getParam('project_id');
|
43 |
|
44 |
$project = $this->getProject($project_id);
|
45 |
|
46 |
+
$block->setStatusMsg($this->__('Please wait …'));
|
47 |
+
$block->setStatusCode('ok');
|
48 |
$block->setStep($step);
|
49 |
$block->setFinished(false);
|
50 |
try {
|
51 |
Mage::getModel('eurotext_translationmanager/export_project')->export($step, $block, $project, $offset);
|
52 |
} catch (Exception $e) {
|
53 |
+
$block->setStatusCode('error');
|
54 |
$block->setStatusMsg($e->getMessage());
|
55 |
}
|
56 |
$response->setBody($block->toJson());
|
app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/Project/ImportController.php
CHANGED
@@ -39,7 +39,7 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_Project_ImportController ex
|
|
39 |
|
40 |
return;
|
41 |
} catch (Exception $e) {
|
42 |
-
$message = $this->getHelper()->__(
|
43 |
$this->setWarningAndRedirect($message);
|
44 |
|
45 |
return;
|
@@ -106,7 +106,7 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_Project_ImportController ex
|
|
106 |
{
|
107 |
$this->getResponse()->setHeader('Content-type', 'application/json', true);
|
108 |
|
109 |
-
$controlFile = $this->getTempDirectory() . DIRECTORY_SEPARATOR .
|
110 |
$projectId = $this->getProjectIdFromSession();
|
111 |
try {
|
112 |
Mage::getModel('eurotext_translationmanager/import_validator')->validate($projectId, $controlFile);
|
@@ -203,9 +203,7 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_Project_ImportController ex
|
|
203 |
*/
|
204 |
private function getTempDirectory()
|
205 |
{
|
206 |
-
|
207 |
-
|
208 |
-
return $dir;
|
209 |
}
|
210 |
|
211 |
/**
|
@@ -217,7 +215,7 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_Project_ImportController ex
|
|
217 |
return;
|
218 |
}
|
219 |
|
220 |
-
if (
|
221 |
$baseDir = Mage::getBaseDir('var');
|
222 |
$this->getHelper()->log('Temporary directory could not be created in ' . $baseDir, Zend_Log::CRIT);
|
223 |
throw new Magento_Exception('Eurotext temporary directory could not be created.');
|
@@ -237,7 +235,7 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_Project_ImportController ex
|
|
237 |
*/
|
238 |
private function createHtaccessFile($dir)
|
239 |
{
|
240 |
-
$htaccessFilename = $dir . DS .
|
241 |
if (!is_file($htaccessFilename)) {
|
242 |
file_put_contents($htaccessFilename, "# Eurotext Temp folder\r\nOrder Deny,Allow\r\nDeny From All");
|
243 |
}
|
39 |
|
40 |
return;
|
41 |
} catch (Exception $e) {
|
42 |
+
$message = $this->getHelper()->__('Error Message: %s', $e->getMessage());
|
43 |
$this->setWarningAndRedirect($message);
|
44 |
|
45 |
return;
|
106 |
{
|
107 |
$this->getResponse()->setHeader('Content-type', 'application/json', true);
|
108 |
|
109 |
+
$controlFile = $this->getTempDirectory() . DIRECTORY_SEPARATOR . 'control.xml';
|
110 |
$projectId = $this->getProjectIdFromSession();
|
111 |
try {
|
112 |
Mage::getModel('eurotext_translationmanager/import_validator')->validate($projectId, $controlFile);
|
203 |
*/
|
204 |
private function getTempDirectory()
|
205 |
{
|
206 |
+
return Mage::getBaseDir('tmp') . '/eurotext';
|
|
|
|
|
207 |
}
|
208 |
|
209 |
/**
|
215 |
return;
|
216 |
}
|
217 |
|
218 |
+
if (!@mkdir($dir) && !is_dir($dir)) {
|
219 |
$baseDir = Mage::getBaseDir('var');
|
220 |
$this->getHelper()->log('Temporary directory could not be created in ' . $baseDir, Zend_Log::CRIT);
|
221 |
throw new Magento_Exception('Eurotext temporary directory could not be created.');
|
235 |
*/
|
236 |
private function createHtaccessFile($dir)
|
237 |
{
|
238 |
+
$htaccessFilename = $dir . DS . '.htaccess';
|
239 |
if (!is_file($htaccessFilename)) {
|
240 |
file_put_contents($htaccessFilename, "# Eurotext Temp folder\r\nOrder Deny,Allow\r\nDeny From All");
|
241 |
}
|
app/code/community/Eurotext/TranslationManager/controllers/Adminhtml/Eurotext/ProjectController.php
CHANGED
@@ -74,7 +74,9 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_ProjectController extends M
|
|
74 |
$model = Mage::getModel('eurotext_translationmanager/project');
|
75 |
$model->load($id);
|
76 |
if (!$model->getId()) {
|
77 |
-
Mage::throwException(
|
|
|
|
|
78 |
}
|
79 |
$model->delete();
|
80 |
|
@@ -114,7 +116,12 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_ProjectController extends M
|
|
114 |
/** @var $project Eurotext_TranslationManager_Model_Project */
|
115 |
$project = $this->loadAndRegisterProject($this->getRequest()->getParam('project_id'));
|
116 |
if (!$project->isEditable()) {
|
117 |
-
$this->getSession()->addNotice(
|
|
|
|
|
|
|
|
|
|
|
118 |
}
|
119 |
$this->loadLayout();
|
120 |
$this->renderLayout();
|
@@ -266,6 +273,7 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_ProjectController extends M
|
|
266 |
|
267 |
/**
|
268 |
* @param int[] $products
|
|
|
269 |
*/
|
270 |
private function renderProductGridAndCategoryTree($products, $categories)
|
271 |
{
|
@@ -376,38 +384,45 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_ProjectController extends M
|
|
376 |
{
|
377 |
$project->addData($this->getRequest()->getParams());
|
378 |
/** @noinspection PhpAssignmentInConditionInspection */
|
379 |
-
if ($
|
|
|
380 |
$productIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($productIds);
|
381 |
$project->setProducts($productIds);
|
382 |
}
|
383 |
-
$this->addProductsBySku($project
|
384 |
/** @noinspection PhpAssignmentInConditionInspection */
|
385 |
-
if ($
|
|
|
386 |
$categoryIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($categoryIds);
|
387 |
$project->setCategories($categoryIds);
|
388 |
}
|
389 |
/** @noinspection PhpAssignmentInConditionInspection */
|
390 |
-
if ($
|
|
|
391 |
$cmsBlockIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($cmsBlockIds);
|
392 |
$project->setBlocks($cmsBlockIds);
|
393 |
}
|
394 |
/** @noinspection PhpAssignmentInConditionInspection */
|
395 |
-
if ($
|
|
|
396 |
$cmsPageIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($cmsPageIds);
|
397 |
$project->setPages($cmsPageIds);
|
398 |
}
|
399 |
/** @noinspection PhpAssignmentInConditionInspection */
|
400 |
-
if ($
|
|
|
401 |
$transactionEmailFilesFilenames = array_filter(explode('&', $transactionEmailFilesFilenames));
|
402 |
$project->setTransactionEmailFiles($transactionEmailFilesFilenames);
|
403 |
}
|
404 |
/** @noinspection PhpAssignmentInConditionInspection */
|
405 |
-
if ($
|
|
|
406 |
$mailDatabaseIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($mailDatabaseIds);
|
407 |
$project->setTransactionEmailDatabase($mailDatabaseIds);
|
408 |
}
|
409 |
/** @noinspection PhpAssignmentInConditionInspection */
|
410 |
-
if ($
|
|
|
411 |
$translationFileFilenames = array_filter(explode('&', $translationFileFilenames));
|
412 |
$project->setTranslationFiles($translationFileFilenames);
|
413 |
}
|
@@ -440,9 +455,8 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_ProjectController extends M
|
|
440 |
|
441 |
/**
|
442 |
* @param Eurotext_TranslationManager_Model_Project $project
|
443 |
-
* @param int[] $productIds
|
444 |
*/
|
445 |
-
private function addProductsBySku(Eurotext_TranslationManager_Model_Project $project
|
446 |
{
|
447 |
$skus = $this->getBulkProducts($this->getRequest()->getParam('bulk_sku'));
|
448 |
if ($skus) {
|
@@ -459,4 +473,12 @@ class Eurotext_TranslationManager_Adminhtml_Eurotext_ProjectController extends M
|
|
459 |
);
|
460 |
}
|
461 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
462 |
}
|
74 |
$model = Mage::getModel('eurotext_translationmanager/project');
|
75 |
$model->load($id);
|
76 |
if (!$model->getId()) {
|
77 |
+
Mage::throwException(
|
78 |
+
$this->getHelper()->__('Unable to find a project with id "%s" to delete.', $id)
|
79 |
+
);
|
80 |
}
|
81 |
$model->delete();
|
82 |
|
116 |
/** @var $project Eurotext_TranslationManager_Model_Project */
|
117 |
$project = $this->loadAndRegisterProject($this->getRequest()->getParam('project_id'));
|
118 |
if (!$project->isEditable()) {
|
119 |
+
$this->getSession()->addNotice(
|
120 |
+
$this->getHelper()->__(
|
121 |
+
'Project "%s" was exported. You can\'t edit it anymore.',
|
122 |
+
$project->getProjectName()
|
123 |
+
)
|
124 |
+
);
|
125 |
}
|
126 |
$this->loadLayout();
|
127 |
$this->renderLayout();
|
273 |
|
274 |
/**
|
275 |
* @param int[] $products
|
276 |
+
* @param int[] $categories
|
277 |
*/
|
278 |
private function renderProductGridAndCategoryTree($products, $categories)
|
279 |
{
|
384 |
{
|
385 |
$project->addData($this->getRequest()->getParams());
|
386 |
/** @noinspection PhpAssignmentInConditionInspection */
|
387 |
+
if ($this->hasRequestParam('product_ids')) {
|
388 |
+
$productIds = $this->getRequest()->getParam('product_ids', null);
|
389 |
$productIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($productIds);
|
390 |
$project->setProducts($productIds);
|
391 |
}
|
392 |
+
$this->addProductsBySku($project);
|
393 |
/** @noinspection PhpAssignmentInConditionInspection */
|
394 |
+
if ($this->hasRequestParam('category_ids')) {
|
395 |
+
$categoryIds = $this->getRequest()->getParam('category_ids', null);
|
396 |
$categoryIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($categoryIds);
|
397 |
$project->setCategories($categoryIds);
|
398 |
}
|
399 |
/** @noinspection PhpAssignmentInConditionInspection */
|
400 |
+
if ($this->hasRequestParam('cmsBlock_ids')) {
|
401 |
+
$cmsBlockIds = $this->getRequest()->getParam('cmsBlock_ids', null);
|
402 |
$cmsBlockIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($cmsBlockIds);
|
403 |
$project->setBlocks($cmsBlockIds);
|
404 |
}
|
405 |
/** @noinspection PhpAssignmentInConditionInspection */
|
406 |
+
if ($this->hasRequestParam('cmsPage_ids')) {
|
407 |
+
$cmsPageIds = $this->getRequest()->getParam('cmsPage_ids', null);
|
408 |
$cmsPageIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($cmsPageIds);
|
409 |
$project->setPages($cmsPageIds);
|
410 |
}
|
411 |
/** @noinspection PhpAssignmentInConditionInspection */
|
412 |
+
if ($this->hasRequestParam('transactionEmailFile_ids')) {
|
413 |
+
$transactionEmailFilesFilenames = $this->getRequest()->getParam('transactionEmailFile_ids', null);
|
414 |
$transactionEmailFilesFilenames = array_filter(explode('&', $transactionEmailFilesFilenames));
|
415 |
$project->setTransactionEmailFiles($transactionEmailFilesFilenames);
|
416 |
}
|
417 |
/** @noinspection PhpAssignmentInConditionInspection */
|
418 |
+
if ($this->hasRequestParam('transactionEmailDatabase_ids')) {
|
419 |
+
$mailDatabaseIds = $this->getRequest()->getParam('transactionEmailDatabase_ids', null);
|
420 |
$mailDatabaseIds = Mage::helper('adminhtml/js')->decodeGridSerializedInput($mailDatabaseIds);
|
421 |
$project->setTransactionEmailDatabase($mailDatabaseIds);
|
422 |
}
|
423 |
/** @noinspection PhpAssignmentInConditionInspection */
|
424 |
+
if ($this->hasRequestParam('translateFiles_ids')) {
|
425 |
+
$translationFileFilenames = $this->getRequest()->getParam('translateFiles_ids', null);
|
426 |
$translationFileFilenames = array_filter(explode('&', $translationFileFilenames));
|
427 |
$project->setTranslationFiles($translationFileFilenames);
|
428 |
}
|
455 |
|
456 |
/**
|
457 |
* @param Eurotext_TranslationManager_Model_Project $project
|
|
|
458 |
*/
|
459 |
+
private function addProductsBySku(Eurotext_TranslationManager_Model_Project $project)
|
460 |
{
|
461 |
$skus = $this->getBulkProducts($this->getRequest()->getParam('bulk_sku'));
|
462 |
if ($skus) {
|
473 |
);
|
474 |
}
|
475 |
}
|
476 |
+
|
477 |
+
|
478 |
+
private function hasRequestParam($name)
|
479 |
+
{
|
480 |
+
$params = $this->getRequest()->getParams();
|
481 |
+
|
482 |
+
return array_key_exists($name, $params);
|
483 |
+
}
|
484 |
}
|
app/code/community/Eurotext/TranslationManager/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Eurotext_TranslationManager>
|
5 |
-
<version>3.2.
|
6 |
</Eurotext_TranslationManager>
|
7 |
</modules>
|
8 |
<global>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Eurotext_TranslationManager>
|
5 |
+
<version>3.2.16</version>
|
6 |
</Eurotext_TranslationManager>
|
7 |
</modules>
|
8 |
<global>
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/install-3.0.0.php
CHANGED
@@ -162,7 +162,7 @@ $project = $con->newTable($this->getTable('eurotext_translationmanager/project')
|
|
162 |
|
163 |
$con->createTable($project);
|
164 |
|
165 |
-
$projectCategories = $con->newTable($this->getTable(
|
166 |
->addColumn(
|
167 |
'project_category_id',
|
168 |
Varien_Db_Ddl_Table::TYPE_INTEGER,
|
162 |
|
163 |
$con->createTable($project);
|
164 |
|
165 |
+
$projectCategories = $con->newTable($this->getTable('eurotext_translationmanager/project_categories'))
|
166 |
->addColumn(
|
167 |
'project_category_id',
|
168 |
Varien_Db_Ddl_Table::TYPE_INTEGER,
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/mysql4-install-1.0.0.0.php
CHANGED
@@ -6,52 +6,52 @@ $installer = $this;
|
|
6 |
$installer->startSetup();
|
7 |
|
8 |
try {
|
9 |
-
$sql =
|
10 |
-
$sql .=
|
11 |
-
$sql .=
|
12 |
-
$sql .=
|
13 |
-
$sql .=
|
14 |
-
$sql .=
|
15 |
$installer->run($sql);
|
16 |
} catch (Exception $e) {
|
17 |
//void if table exists
|
18 |
}
|
19 |
|
20 |
try {
|
21 |
-
$sql =
|
22 |
-
$sql .=
|
23 |
-
$sql .=
|
24 |
-
$sql .=
|
25 |
-
$sql .=
|
26 |
$sql .= " `translate_flag` smallint(6) NOT NULL DEFAULT '0',";
|
27 |
-
$sql .=
|
28 |
$sql .= " `deleteflag` smallint(6) NOT NULL DEFAULT '0',";
|
29 |
-
$sql .=
|
30 |
-
$sql .=
|
31 |
-
$sql .=
|
32 |
-
$sql .=
|
33 |
-
$sql .=
|
34 |
$installer->run($sql);
|
35 |
} catch (Exception $e) {
|
36 |
//void if table exists
|
37 |
}
|
38 |
|
39 |
try {
|
40 |
-
$sql =
|
41 |
-
$sql .=
|
42 |
-
$sql .=
|
43 |
-
$sql .=
|
44 |
$sql .= " `csvline` int(11) NOT NULL DEFAULT '-1',";
|
45 |
-
$sql .=
|
46 |
-
$sql .=
|
47 |
$sql .= " `text_src_hash` varchar(100) NOT NULL DEFAULT '',";
|
48 |
-
$sql .=
|
49 |
-
$sql .=
|
50 |
-
$sql .=
|
51 |
-
$sql .=
|
52 |
-
$sql .=
|
53 |
-
$sql .=
|
54 |
-
$sql .=
|
55 |
$installer->run($sql);
|
56 |
} catch
|
57 |
(Exception $e) {
|
@@ -59,49 +59,49 @@ try {
|
|
59 |
}
|
60 |
|
61 |
try {
|
62 |
-
$sql =
|
63 |
-
$sql .=
|
64 |
-
$sql .=
|
65 |
$sql .= " `translate_flag` smallint(6) NOT NULL DEFAULT '0',";
|
66 |
$sql .= " `project_id` bigint(20) NOT NULL DEFAULT '-1',";
|
67 |
$sql .= " `deleteflag` smallint(6) NOT NULL DEFAULT '0',";
|
68 |
-
$sql .=
|
69 |
-
$sql .=
|
70 |
-
$sql .=
|
71 |
-
$sql .=
|
72 |
$installer->run($sql);
|
73 |
} catch (Exception $e) {
|
74 |
//void if table exists
|
75 |
}
|
76 |
|
77 |
try {
|
78 |
-
$sql =
|
79 |
-
$sql .=
|
80 |
-
$sql .=
|
81 |
-
$sql .=
|
82 |
$sql .= " `num` int(11) NOT NULL DEFAULT '-1',";
|
83 |
$sql .= " `is_imported` smallint(6) NOT NULL DEFAULT '0',";
|
84 |
-
$sql .=
|
85 |
-
$sql .=
|
86 |
$installer->run($sql);
|
87 |
} catch (Exception $e) {
|
88 |
//void if table exists
|
89 |
}
|
90 |
|
91 |
try {
|
92 |
-
$sql =
|
93 |
-
$sql .=
|
94 |
-
$sql .=
|
95 |
-
$sql .=
|
96 |
-
$sql .=
|
97 |
-
$sql .=
|
98 |
$installer->run($sql);
|
99 |
} catch (Exception $e) {
|
100 |
//void if table exists
|
101 |
}
|
102 |
|
103 |
try {
|
104 |
-
$sql =
|
105 |
$sql .= " ('af_ZA', 'afr', 'Afrikaans'),";
|
106 |
$sql .= " ('sq_AL', 'alb', 'Albanian'),";
|
107 |
$sql .= " ('ar_DZ', 'ar-dz', 'Arabic (Algeria)'),";
|
@@ -181,10 +181,10 @@ try {
|
|
181 |
}
|
182 |
|
183 |
try {
|
184 |
-
$sql =
|
185 |
$sql .= " `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',";
|
186 |
$sql .= " `deleted` smallint(6) NOT NULL DEFAULT '0',";
|
187 |
-
$sql .=
|
188 |
$sql .= " `project_name` text NOT NULL COMMENT 'Project Name',";
|
189 |
$sql .= " `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last Update',";
|
190 |
$sql .= " `storeview_src` int(11) NOT NULL DEFAULT '-1' COMMENT 'Source Storeview',";
|
@@ -199,7 +199,7 @@ try {
|
|
199 |
$sql .= " `export_attributes` smallint(6) NOT NULL DEFAULT '0',";
|
200 |
$sql .= " `templatemode` smallint(6) NOT NULL COMMENT '0',";
|
201 |
$sql .= " `export_urlkeys` smallint(6) NOT NULL DEFAULT '0',";
|
202 |
-
$sql .=
|
203 |
$sql .= ") ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='eurotext_project';";
|
204 |
$installer->run($sql);
|
205 |
} catch (Exception $e) {
|
@@ -207,36 +207,36 @@ try {
|
|
207 |
}
|
208 |
|
209 |
try {
|
210 |
-
$sql =
|
211 |
-
$sql .=
|
212 |
-
$sql .=
|
213 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
214 |
-
$sql .=
|
215 |
-
$sql .=
|
216 |
$installer->run($sql);
|
217 |
} catch (Exception $e) {
|
218 |
//void if table exists
|
219 |
}
|
220 |
|
221 |
try {
|
222 |
-
$sql =
|
223 |
-
$sql .=
|
224 |
-
$sql .=
|
225 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
226 |
-
$sql .=
|
227 |
-
$sql .=
|
228 |
$installer->run($sql);
|
229 |
} catch (Exception $e) {
|
230 |
//void if table exists
|
231 |
}
|
232 |
|
233 |
try {
|
234 |
-
$sql =
|
235 |
-
$sql .=
|
236 |
-
$sql .=
|
237 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
238 |
-
$sql .=
|
239 |
-
$sql .=
|
240 |
$installer->run($sql);
|
241 |
} catch (Exception $e) {
|
242 |
//void if table exists
|
6 |
$installer->startSetup();
|
7 |
|
8 |
try {
|
9 |
+
$sql = '';
|
10 |
+
$sql .= 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_config') . '` (';
|
11 |
+
$sql .= ' `config_key` varchar(255) NOT NULL,';
|
12 |
+
$sql .= ' `config_value` text NOT NULL,';
|
13 |
+
$sql .= ' PRIMARY KEY (`config_key`)';
|
14 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
15 |
$installer->run($sql);
|
16 |
} catch (Exception $e) {
|
17 |
//void if table exists
|
18 |
}
|
19 |
|
20 |
try {
|
21 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_csv') . '` (';
|
22 |
+
$sql .= ' `line_hash` varchar(60) NOT NULL,';
|
23 |
+
$sql .= ' `project_id` bigint(20) NOT NULL,';
|
24 |
+
$sql .= ' `filename` varchar(255) NOT NULL,';
|
25 |
+
$sql .= ' `locale_dst` varchar(50) NOT NULL,';
|
26 |
$sql .= " `translate_flag` smallint(6) NOT NULL DEFAULT '0',";
|
27 |
+
$sql .= ' `time_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,';
|
28 |
$sql .= " `deleteflag` smallint(6) NOT NULL DEFAULT '0',";
|
29 |
+
$sql .= ' PRIMARY KEY (`line_hash`),';
|
30 |
+
$sql .= ' KEY `idx_filename` (`filename`),';
|
31 |
+
$sql .= ' KEY `idx_project_id` (`project_id`),';
|
32 |
+
$sql .= ' KEY `idx_locale_dst` (`locale_dst`)';
|
33 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
34 |
$installer->run($sql);
|
35 |
} catch (Exception $e) {
|
36 |
//void if table exists
|
37 |
}
|
38 |
|
39 |
try {
|
40 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_csv_data') . '` (';
|
41 |
+
$sql .= ' `line_hash` varchar(60) NOT NULL,';
|
42 |
+
$sql .= ' `project_id` bigint(20) NOT NULL,';
|
43 |
+
$sql .= ' `filename` varchar(255) NOT NULL,';
|
44 |
$sql .= " `csvline` int(11) NOT NULL DEFAULT '-1',";
|
45 |
+
$sql .= ' `locale_dst` varchar(50) NOT NULL,';
|
46 |
+
$sql .= ' `text_src` varchar(5000) NOT NULL,';
|
47 |
$sql .= " `text_src_hash` varchar(100) NOT NULL DEFAULT '',";
|
48 |
+
$sql .= ' `text_dst` varchar(5000) NOT NULL,';
|
49 |
+
$sql .= ' PRIMARY KEY (`line_hash`),';
|
50 |
+
$sql .= ' KEY `project_id` (`project_id`),';
|
51 |
+
$sql .= ' KEY `filename` (`filename`),';
|
52 |
+
$sql .= ' KEY `text_src_hash` (`text_src_hash`),';
|
53 |
+
$sql .= ' KEY `locale_dst` (`locale_dst`)';
|
54 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
55 |
$installer->run($sql);
|
56 |
} catch
|
57 |
(Exception $e) {
|
59 |
}
|
60 |
|
61 |
try {
|
62 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_emailtemplates') . '` (';
|
63 |
+
$sql .= ' `file_hash` varchar(150) NOT NULL,';
|
64 |
+
$sql .= ' `filename` varchar(1500) NOT NULL,';
|
65 |
$sql .= " `translate_flag` smallint(6) NOT NULL DEFAULT '0',";
|
66 |
$sql .= " `project_id` bigint(20) NOT NULL DEFAULT '-1',";
|
67 |
$sql .= " `deleteflag` smallint(6) NOT NULL DEFAULT '0',";
|
68 |
+
$sql .= ' `locale_dst` varchar(50) NOT NULL,';
|
69 |
+
$sql .= ' `time_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,';
|
70 |
+
$sql .= ' PRIMARY KEY (`file_hash`)';
|
71 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
72 |
$installer->run($sql);
|
73 |
} catch (Exception $e) {
|
74 |
//void if table exists
|
75 |
}
|
76 |
|
77 |
try {
|
78 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_import') . '` (';
|
79 |
+
$sql .= ' `project_id` bigint(20) NOT NULL,';
|
80 |
+
$sql .= ' `filename` varchar(255) NOT NULL,';
|
81 |
+
$sql .= ' `storeview_dst` int(11) NOT NULL,';
|
82 |
$sql .= " `num` int(11) NOT NULL DEFAULT '-1',";
|
83 |
$sql .= " `is_imported` smallint(6) NOT NULL DEFAULT '0',";
|
84 |
+
$sql .= ' UNIQUE KEY `pk` (`project_id`,`filename`)';
|
85 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
86 |
$installer->run($sql);
|
87 |
} catch (Exception $e) {
|
88 |
//void if table exists
|
89 |
}
|
90 |
|
91 |
try {
|
92 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_languages') . '` (';
|
93 |
+
$sql .= ' `locale_magento` varchar(20) CHARACTER SET utf8 NOT NULL,';
|
94 |
+
$sql .= ' `locale_eurotext` varchar(100) CHARACTER SET utf8 NOT NULL,';
|
95 |
+
$sql .= ' `lang_name` varchar(200) CHARACTER SET utf8 NOT NULL,';
|
96 |
+
$sql .= ' PRIMARY KEY (`locale_eurotext`)';
|
97 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
98 |
$installer->run($sql);
|
99 |
} catch (Exception $e) {
|
100 |
//void if table exists
|
101 |
}
|
102 |
|
103 |
try {
|
104 |
+
$sql = 'INSERT IGNORE INTO `' . $installer->getTable('eurotext_languages') . '` (`locale_magento`, `locale_eurotext`, `lang_name`) VALUES';
|
105 |
$sql .= " ('af_ZA', 'afr', 'Afrikaans'),";
|
106 |
$sql .= " ('sq_AL', 'alb', 'Albanian'),";
|
107 |
$sql .= " ('ar_DZ', 'ar-dz', 'Arabic (Algeria)'),";
|
181 |
}
|
182 |
|
183 |
try {
|
184 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_project') . '` (';
|
185 |
$sql .= " `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',";
|
186 |
$sql .= " `deleted` smallint(6) NOT NULL DEFAULT '0',";
|
187 |
+
$sql .= ' `create_id` varchar(100) DEFAULT NULL,';
|
188 |
$sql .= " `project_name` text NOT NULL COMMENT 'Project Name',";
|
189 |
$sql .= " `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Last Update',";
|
190 |
$sql .= " `storeview_src` int(11) NOT NULL DEFAULT '-1' COMMENT 'Source Storeview',";
|
199 |
$sql .= " `export_attributes` smallint(6) NOT NULL DEFAULT '0',";
|
200 |
$sql .= " `templatemode` smallint(6) NOT NULL COMMENT '0',";
|
201 |
$sql .= " `export_urlkeys` smallint(6) NOT NULL DEFAULT '0',";
|
202 |
+
$sql .= ' PRIMARY KEY (`id`)';
|
203 |
$sql .= ") ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='eurotext_project';";
|
204 |
$installer->run($sql);
|
205 |
} catch (Exception $e) {
|
207 |
}
|
208 |
|
209 |
try {
|
210 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_project_categories') . '` (';
|
211 |
+
$sql .= ' `category_id` bigint(20) NOT NULL,';
|
212 |
+
$sql .= ' `project_id` bigint(20) NOT NULL,';
|
213 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
214 |
+
$sql .= ' PRIMARY KEY (`category_id`,`project_id`)';
|
215 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
216 |
$installer->run($sql);
|
217 |
} catch (Exception $e) {
|
218 |
//void if table exists
|
219 |
}
|
220 |
|
221 |
try {
|
222 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_project_cmspages') . '` (';
|
223 |
+
$sql .= ' `page_id` bigint(20) NOT NULL,';
|
224 |
+
$sql .= ' `project_id` bigint(20) NOT NULL,';
|
225 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
226 |
+
$sql .= ' PRIMARY KEY (`page_id`,`project_id`)';
|
227 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
228 |
$installer->run($sql);
|
229 |
} catch (Exception $e) {
|
230 |
//void if table exists
|
231 |
}
|
232 |
|
233 |
try {
|
234 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_project_products') . '` (';
|
235 |
+
$sql .= ' `product_id` bigint(20) NOT NULL,';
|
236 |
+
$sql .= ' `project_id` bigint(20) NOT NULL,';
|
237 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
238 |
+
$sql .= ' PRIMARY KEY (`product_id`,`project_id`)';
|
239 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
240 |
$installer->run($sql);
|
241 |
} catch (Exception $e) {
|
242 |
//void if table exists
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/mysql4-upgrade-1.0.0.5-1.0.0.6.php
CHANGED
@@ -4,12 +4,12 @@ $installer = $this;
|
|
4 |
$installer->startSetup();
|
5 |
|
6 |
try {
|
7 |
-
$sql =
|
8 |
-
$sql .=
|
9 |
-
$sql .=
|
10 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
11 |
-
$sql .=
|
12 |
-
$sql .=
|
13 |
|
14 |
$installer->run($sql);
|
15 |
} catch (Exception $e) {
|
@@ -17,13 +17,13 @@ try {
|
|
17 |
}
|
18 |
|
19 |
try {
|
20 |
-
$installer->run(
|
21 |
} catch (Exception $e) {
|
22 |
// Column already exists
|
23 |
}
|
24 |
|
25 |
try {
|
26 |
-
$installer->run(
|
27 |
} catch (Exception $e) {
|
28 |
// Column already exists
|
29 |
}
|
4 |
$installer->startSetup();
|
5 |
|
6 |
try {
|
7 |
+
$sql = 'CREATE TABLE IF NOT EXISTS `' . $installer->getTable('eurotext_project_cmsblocks') . '` (';
|
8 |
+
$sql .= ' `block_id` bigint(20) NOT NULL,';
|
9 |
+
$sql .= ' `project_id` bigint(20) NOT NULL,';
|
10 |
$sql .= " `time_added` bigint(20) NOT NULL DEFAULT '0',";
|
11 |
+
$sql .= ' PRIMARY KEY (`block_id`,`project_id`)';
|
12 |
+
$sql .= ') ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;';
|
13 |
|
14 |
$installer->run($sql);
|
15 |
} catch (Exception $e) {
|
17 |
}
|
18 |
|
19 |
try {
|
20 |
+
$installer->run('ALTER TABLE `' . $installer->getTable('eurotext_project') . "` ADD `filter_status` INT NOT NULL DEFAULT '1' AFTER `export_urlkeys`");
|
21 |
} catch (Exception $e) {
|
22 |
// Column already exists
|
23 |
}
|
24 |
|
25 |
try {
|
26 |
+
$installer->run('ALTER TABLE `' . $installer->getTable('eurotext_project') . "` ADD `filter_stock` INT NOT NULL DEFAULT '1' AFTER `filter_status`");
|
27 |
} catch (Exception $e) {
|
28 |
// Column already exists
|
29 |
}
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/mysql4-upgrade-1.0.0.7-1.0.0.8.php
CHANGED
@@ -4,7 +4,7 @@ $installer = $this;
|
|
4 |
$installer->startSetup();
|
5 |
|
6 |
try {
|
7 |
-
$sql =
|
8 |
$installer->run($sql);
|
9 |
} catch (Exception $ex) {
|
10 |
// Column already exists
|
4 |
$installer->startSetup();
|
5 |
|
6 |
try {
|
7 |
+
$sql = 'ALTER TABLE `' . $installer->getTable('eurotext_project') . "` ADD `filter_product_type` VARCHAR( 150 ) NOT NULL DEFAULT '' AFTER `filter_stock`;";
|
8 |
$installer->run($sql);
|
9 |
} catch (Exception $ex) {
|
10 |
// Column already exists
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.1.2.1-1.2.0.0.php
CHANGED
@@ -11,23 +11,23 @@ $this->getConnection()->addIndex(
|
|
11 |
$tableName,
|
12 |
$this->getConnection()->getIndexName(
|
13 |
$tableName,
|
14 |
-
|
15 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
16 |
),
|
17 |
-
|
18 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
19 |
);
|
20 |
|
21 |
$this->getConnection()->addColumn(
|
22 |
$tableName,
|
23 |
'import_id',
|
24 |
-
|
25 |
'primary' => true,
|
26 |
'comment' => 'Primary key',
|
27 |
'unsigned' => true,
|
28 |
'identity' => true,
|
29 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
30 |
-
|
31 |
);
|
32 |
|
33 |
$tableName = $this->getTable('eurotext_translationmanager/project_categories');
|
@@ -36,23 +36,23 @@ $this->getConnection()->addIndex(
|
|
36 |
$tableName,
|
37 |
$this->getConnection()->getIndexName(
|
38 |
$tableName,
|
39 |
-
|
40 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
41 |
),
|
42 |
-
|
43 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
44 |
);
|
45 |
|
46 |
$this->getConnection()->addColumn(
|
47 |
$tableName,
|
48 |
'project_category_id',
|
49 |
-
|
50 |
'primary' => true,
|
51 |
'comment' => 'Primary key',
|
52 |
'unsigned' => true,
|
53 |
'identity' => true,
|
54 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
55 |
-
|
56 |
);
|
57 |
|
58 |
$this->endSetup();
|
11 |
$tableName,
|
12 |
$this->getConnection()->getIndexName(
|
13 |
$tableName,
|
14 |
+
['project_id', 'filename'],
|
15 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
16 |
),
|
17 |
+
['project_id', 'filename'],
|
18 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
19 |
);
|
20 |
|
21 |
$this->getConnection()->addColumn(
|
22 |
$tableName,
|
23 |
'import_id',
|
24 |
+
[
|
25 |
'primary' => true,
|
26 |
'comment' => 'Primary key',
|
27 |
'unsigned' => true,
|
28 |
'identity' => true,
|
29 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
30 |
+
]
|
31 |
);
|
32 |
|
33 |
$tableName = $this->getTable('eurotext_translationmanager/project_categories');
|
36 |
$tableName,
|
37 |
$this->getConnection()->getIndexName(
|
38 |
$tableName,
|
39 |
+
['project_id', 'category_id'],
|
40 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
41 |
),
|
42 |
+
['project_id', 'category_id'],
|
43 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
44 |
);
|
45 |
|
46 |
$this->getConnection()->addColumn(
|
47 |
$tableName,
|
48 |
'project_category_id',
|
49 |
+
[
|
50 |
'primary' => true,
|
51 |
'comment' => 'Primary key',
|
52 |
'unsigned' => true,
|
53 |
'identity' => true,
|
54 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
55 |
+
]
|
56 |
);
|
57 |
|
58 |
$this->endSetup();
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.0.0-1.2.0.1.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
$this->startSetup();
|
6 |
|
7 |
-
$tablesToPutFkOn =
|
8 |
'eurotext_translationmanager/csv',
|
9 |
'eurotext_translationmanager/csv_data',
|
10 |
'eurotext_translationmanager/emailtemplates',
|
@@ -13,14 +13,14 @@ $tablesToPutFkOn = array(
|
|
13 |
'eurotext_translationmanager/project_cmsblocks',
|
14 |
'eurotext_translationmanager/project_cmspages',
|
15 |
'eurotext_translationmanager/project_products',
|
16 |
-
|
17 |
|
18 |
$projectTableName = $this->getTable('eurotext_translationmanager/project');
|
19 |
$this->getConnection()->changeColumn(
|
20 |
$projectTableName,
|
21 |
'id',
|
22 |
'id',
|
23 |
-
|
24 |
);
|
25 |
foreach ($tablesToPutFkOn as $table) {
|
26 |
$tableName = $this->getTable($table);
|
4 |
|
5 |
$this->startSetup();
|
6 |
|
7 |
+
$tablesToPutFkOn = [
|
8 |
'eurotext_translationmanager/csv',
|
9 |
'eurotext_translationmanager/csv_data',
|
10 |
'eurotext_translationmanager/emailtemplates',
|
13 |
'eurotext_translationmanager/project_cmsblocks',
|
14 |
'eurotext_translationmanager/project_cmspages',
|
15 |
'eurotext_translationmanager/project_products',
|
16 |
+
];
|
17 |
|
18 |
$projectTableName = $this->getTable('eurotext_translationmanager/project');
|
19 |
$this->getConnection()->changeColumn(
|
20 |
$projectTableName,
|
21 |
'id',
|
22 |
'id',
|
23 |
+
['type' => Varien_Db_Ddl_Table::TYPE_BIGINT, 'auto_increment' => true, 'unsigned' => false]
|
24 |
);
|
25 |
foreach ($tablesToPutFkOn as $table) {
|
26 |
$tableName = $this->getTable($table);
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.0.1-1.2.0.2.php
CHANGED
@@ -4,11 +4,11 @@
|
|
4 |
|
5 |
$this->startSetup();
|
6 |
|
7 |
-
$tables =
|
8 |
-
'eurotext_translationmanager/project_cmsblocks' =>
|
9 |
-
'eurotext_translationmanager/project_cmspages' =>
|
10 |
-
'eurotext_translationmanager/project_products' =>
|
11 |
-
|
12 |
|
13 |
foreach ($tables as $table => $columnNames) {
|
14 |
$tableName = $this->getTable($table);
|
@@ -17,23 +17,23 @@ foreach ($tables as $table => $columnNames) {
|
|
17 |
$tableName,
|
18 |
$this->getConnection()->getIndexName(
|
19 |
$tableName,
|
20 |
-
|
21 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
22 |
),
|
23 |
-
|
24 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
25 |
);
|
26 |
|
27 |
$this->getConnection()->addColumn(
|
28 |
$tableName,
|
29 |
$columnNames[0],
|
30 |
-
|
31 |
'primary' => true,
|
32 |
'comment' => 'Primary key',
|
33 |
'unsigned' => true,
|
34 |
'identity' => true,
|
35 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
36 |
-
|
37 |
);
|
38 |
}
|
39 |
|
4 |
|
5 |
$this->startSetup();
|
6 |
|
7 |
+
$tables = [
|
8 |
+
'eurotext_translationmanager/project_cmsblocks' => ['project_cmsblock_id', 'block_id'],
|
9 |
+
'eurotext_translationmanager/project_cmspages' => ['project_cmspage_id', 'page_id'],
|
10 |
+
'eurotext_translationmanager/project_products' => ['project_product_id', 'product_id'],
|
11 |
+
];
|
12 |
|
13 |
foreach ($tables as $table => $columnNames) {
|
14 |
$tableName = $this->getTable($table);
|
17 |
$tableName,
|
18 |
$this->getConnection()->getIndexName(
|
19 |
$tableName,
|
20 |
+
['project_id', $columnNames[1]],
|
21 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
22 |
),
|
23 |
+
['project_id', $columnNames[1]],
|
24 |
Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
|
25 |
);
|
26 |
|
27 |
$this->getConnection()->addColumn(
|
28 |
$tableName,
|
29 |
$columnNames[0],
|
30 |
+
[
|
31 |
'primary' => true,
|
32 |
'comment' => 'Primary key',
|
33 |
'unsigned' => true,
|
34 |
'identity' => true,
|
35 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
36 |
+
]
|
37 |
);
|
38 |
}
|
39 |
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.0.2-1.2.0.3.php
CHANGED
@@ -4,44 +4,44 @@
|
|
4 |
|
5 |
$this->startSetup();
|
6 |
|
7 |
-
$foreignKeys =
|
8 |
-
|
9 |
'eurotext_translationmanager/project_cmsblocks',
|
10 |
'block_id',
|
11 |
'cms/block',
|
12 |
'block_id',
|
13 |
-
|
14 |
-
|
15 |
'eurotext_translationmanager/project_cmspages',
|
16 |
'page_id',
|
17 |
'cms/page',
|
18 |
'page_id',
|
19 |
-
|
20 |
-
|
21 |
'eurotext_translationmanager/project_products',
|
22 |
'product_id',
|
23 |
'catalog/product',
|
24 |
'entity_id',
|
25 |
-
|
26 |
-
|
27 |
'eurotext_translationmanager/project_categories',
|
28 |
'category_id',
|
29 |
'catalog/category',
|
30 |
'entity_id',
|
31 |
-
|
32 |
-
|
33 |
|
34 |
foreach ($foreignKeys as $keyData) {
|
35 |
$this->getConnection()->changeColumn(
|
36 |
$this->getTable($keyData[0]),
|
37 |
$keyData[1],
|
38 |
$keyData[1],
|
39 |
-
|
40 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
41 |
'unsigned' => true,
|
42 |
'nullable' => false,
|
43 |
'comment' => 'Entity ID',
|
44 |
-
|
45 |
);
|
46 |
|
47 |
|
4 |
|
5 |
$this->startSetup();
|
6 |
|
7 |
+
$foreignKeys = [
|
8 |
+
[
|
9 |
'eurotext_translationmanager/project_cmsblocks',
|
10 |
'block_id',
|
11 |
'cms/block',
|
12 |
'block_id',
|
13 |
+
],
|
14 |
+
[
|
15 |
'eurotext_translationmanager/project_cmspages',
|
16 |
'page_id',
|
17 |
'cms/page',
|
18 |
'page_id',
|
19 |
+
],
|
20 |
+
[
|
21 |
'eurotext_translationmanager/project_products',
|
22 |
'product_id',
|
23 |
'catalog/product',
|
24 |
'entity_id',
|
25 |
+
],
|
26 |
+
[
|
27 |
'eurotext_translationmanager/project_categories',
|
28 |
'category_id',
|
29 |
'catalog/category',
|
30 |
'entity_id',
|
31 |
+
],
|
32 |
+
];
|
33 |
|
34 |
foreach ($foreignKeys as $keyData) {
|
35 |
$this->getConnection()->changeColumn(
|
36 |
$this->getTable($keyData[0]),
|
37 |
$keyData[1],
|
38 |
$keyData[1],
|
39 |
+
[
|
40 |
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
41 |
'unsigned' => true,
|
42 |
'nullable' => false,
|
43 |
'comment' => 'Entity ID',
|
44 |
+
]
|
45 |
);
|
46 |
|
47 |
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.1-1.2.2.php
CHANGED
@@ -6,12 +6,12 @@ $this->startSetup();
|
|
6 |
$this->getConnection()->addColumn(
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'created_at',
|
9 |
-
|
10 |
'default' => '0000-00-00 00:00:00',
|
11 |
'type' => Varien_Db_Ddl_Table::TYPE_TIMESTAMP,
|
12 |
'comment' => 'Created At',
|
13 |
'nullable' => false,
|
14 |
-
|
15 |
);
|
16 |
|
17 |
-
$this->endSetup();
|
6 |
$this->getConnection()->addColumn(
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'created_at',
|
9 |
+
[
|
10 |
'default' => '0000-00-00 00:00:00',
|
11 |
'type' => Varien_Db_Ddl_Table::TYPE_TIMESTAMP,
|
12 |
'comment' => 'Created At',
|
13 |
'nullable' => false,
|
14 |
+
]
|
15 |
);
|
16 |
|
17 |
+
$this->endSetup();
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-1.2.2-2.0.0.php
CHANGED
@@ -7,12 +7,12 @@ $this->getConnection()->changeColumn(
|
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'last_update',
|
9 |
'updated_at',
|
10 |
-
|
11 |
'default' => Varien_Db_Ddl_Table::TIMESTAMP_INIT_UPDATE,
|
12 |
'type' => Varien_Db_Ddl_Table::TYPE_TIMESTAMP,
|
13 |
'comment' => 'Last Update',
|
14 |
'nullable' => false,
|
15 |
-
|
16 |
);
|
17 |
|
18 |
$this->endSetup();
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'last_update',
|
9 |
'updated_at',
|
10 |
+
[
|
11 |
'default' => Varien_Db_Ddl_Table::TIMESTAMP_INIT_UPDATE,
|
12 |
'type' => Varien_Db_Ddl_Table::TYPE_TIMESTAMP,
|
13 |
'comment' => 'Last Update',
|
14 |
'nullable' => false,
|
15 |
+
]
|
16 |
);
|
17 |
|
18 |
$this->endSetup();
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-2.0.0-2.0.1.php
CHANGED
@@ -7,12 +7,12 @@ $this->getConnection()->changeColumn(
|
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'updated_at',
|
9 |
'updated_at',
|
10 |
-
|
11 |
'default' => Varien_Db_Ddl_Table::TIMESTAMP_INIT_UPDATE,
|
12 |
'type' => Varien_Db_Ddl_Table::TYPE_TIMESTAMP,
|
13 |
'comment' => 'Last Update',
|
14 |
'nullable' => false,
|
15 |
-
|
16 |
);
|
17 |
|
18 |
$this->endSetup();
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'updated_at',
|
9 |
'updated_at',
|
10 |
+
[
|
11 |
'default' => Varien_Db_Ddl_Table::TIMESTAMP_INIT_UPDATE,
|
12 |
'type' => Varien_Db_Ddl_Table::TYPE_TIMESTAMP,
|
13 |
'comment' => 'Last Update',
|
14 |
'nullable' => false,
|
15 |
+
]
|
16 |
);
|
17 |
|
18 |
$this->endSetup();
|
app/code/community/Eurotext/TranslationManager/sql/eurotext_translationmanager_setup/upgrade-2.0.1-2.0.2.php
CHANGED
@@ -7,14 +7,14 @@ $this->getConnection()->changeColumn(
|
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'id',
|
9 |
'id',
|
10 |
-
|
11 |
'type' => Varien_Db_Ddl_Table::TYPE_BIGINT,
|
12 |
'comment' => 'Project ID',
|
13 |
'primary' => true,
|
14 |
'auto_increment' => true,
|
15 |
'nullable' => false,
|
16 |
'unsigned' => false,
|
17 |
-
|
18 |
);
|
19 |
|
20 |
$this->endSetup();
|
7 |
$this->getTable('eurotext_translationmanager/project'),
|
8 |
'id',
|
9 |
'id',
|
10 |
+
[
|
11 |
'type' => Varien_Db_Ddl_Table::TYPE_BIGINT,
|
12 |
'comment' => 'Project ID',
|
13 |
'primary' => true,
|
14 |
'auto_increment' => true,
|
15 |
'nullable' => false,
|
16 |
'unsigned' => false,
|
17 |
+
]
|
18 |
);
|
19 |
|
20 |
$this->endSetup();
|
app/code/community/Eurotext/Uploader/Block/Abstract.php
CHANGED
@@ -92,7 +92,7 @@ abstract class Eurotext_Uploader_Block_Abstract extends Mage_Adminhtml_Block_Wid
|
|
92 |
* @param array $additionalButtons
|
93 |
* @return $this
|
94 |
*/
|
95 |
-
protected function _addElementIdsMapping($additionalButtons = [])
|
96 |
{
|
97 |
$this->_idsMapping = array_merge($this->_idsMapping, $additionalButtons);
|
98 |
|
@@ -175,7 +175,7 @@ abstract class Eurotext_Uploader_Block_Abstract extends Mage_Adminhtml_Block_Wid
|
|
175 |
*/
|
176 |
public function getMiscConfig()
|
177 |
{
|
178 |
-
if (
|
179 |
$this->_miscConfig = Mage::getModel('eurotext_uploader/config_misc');
|
180 |
}
|
181 |
|
@@ -189,7 +189,7 @@ abstract class Eurotext_Uploader_Block_Abstract extends Mage_Adminhtml_Block_Wid
|
|
189 |
*/
|
190 |
public function getUploaderConfig()
|
191 |
{
|
192 |
-
if (
|
193 |
$this->_uploaderConfig = Mage::getModel('eurotext_uploader/config_uploader');
|
194 |
}
|
195 |
|
@@ -203,7 +203,7 @@ abstract class Eurotext_Uploader_Block_Abstract extends Mage_Adminhtml_Block_Wid
|
|
203 |
*/
|
204 |
public function getButtonConfig()
|
205 |
{
|
206 |
-
if (
|
207 |
$this->_browseButtonConfig = Mage::getModel('eurotext_uploader/config_browsebutton');
|
208 |
}
|
209 |
|
92 |
* @param array $additionalButtons
|
93 |
* @return $this
|
94 |
*/
|
95 |
+
protected function _addElementIdsMapping(array $additionalButtons = [])
|
96 |
{
|
97 |
$this->_idsMapping = array_merge($this->_idsMapping, $additionalButtons);
|
98 |
|
175 |
*/
|
176 |
public function getMiscConfig()
|
177 |
{
|
178 |
+
if (null === $this->_miscConfig) {
|
179 |
$this->_miscConfig = Mage::getModel('eurotext_uploader/config_misc');
|
180 |
}
|
181 |
|
189 |
*/
|
190 |
public function getUploaderConfig()
|
191 |
{
|
192 |
+
if (null === $this->_uploaderConfig) {
|
193 |
$this->_uploaderConfig = Mage::getModel('eurotext_uploader/config_uploader');
|
194 |
}
|
195 |
|
203 |
*/
|
204 |
public function getButtonConfig()
|
205 |
{
|
206 |
+
if (null === $this->_browseButtonConfig) {
|
207 |
$this->_browseButtonConfig = Mage::getModel('eurotext_uploader/config_browsebutton');
|
208 |
}
|
209 |
|
app/code/community/Eurotext/Uploader/Helper/File.php
CHANGED
@@ -702,7 +702,6 @@ class Eurotext_Uploader_Helper_File extends Mage_Core_Helper_Abstract
|
|
702 |
{
|
703 |
$iniSize = $this->getDataMaxSize();
|
704 |
$size = substr($iniSize, 0, strlen($iniSize) - 1);
|
705 |
-
$parsedSize = 0;
|
706 |
switch (strtolower(substr($iniSize, strlen($iniSize) - 1))) {
|
707 |
case 't':
|
708 |
$parsedSize = $size * (1024 * 1024 * 1024 * 1024);
|
702 |
{
|
703 |
$iniSize = $this->getDataMaxSize();
|
704 |
$size = substr($iniSize, 0, strlen($iniSize) - 1);
|
|
|
705 |
switch (strtolower(substr($iniSize, strlen($iniSize) - 1))) {
|
706 |
case 't':
|
707 |
$parsedSize = $size * (1024 * 1024 * 1024 * 1024);
|
app/code/community/Eurotext/Uploader/Model/Config/Abstract.php
CHANGED
@@ -26,9 +26,7 @@ abstract class Eurotext_Uploader_Model_Config_Abstract extends Varien_Object
|
|
26 |
$key = lcfirst($this->_camelize(substr($method, 3)));
|
27 |
switch (substr($method, 0, 3)) {
|
28 |
case 'get' :
|
29 |
-
|
30 |
-
|
31 |
-
return $data;
|
32 |
|
33 |
case 'set' :
|
34 |
$result = $this->setData($key, isset($args[0]) ? $args[0] : null);
|
@@ -44,7 +42,7 @@ abstract class Eurotext_Uploader_Model_Config_Abstract extends Varien_Object
|
|
44 |
return isset($this->_data[$key]);
|
45 |
}
|
46 |
throw new Varien_Exception(
|
47 |
-
|
48 |
);
|
49 |
}
|
50 |
}
|
26 |
$key = lcfirst($this->_camelize(substr($method, 3)));
|
27 |
switch (substr($method, 0, 3)) {
|
28 |
case 'get' :
|
29 |
+
return $this->getData($key, isset($args[0]) ? $args[0] : null);
|
|
|
|
|
30 |
|
31 |
case 'set' :
|
32 |
$result = $this->setData($key, isset($args[0]) ? $args[0] : null);
|
42 |
return isset($this->_data[$key]);
|
43 |
}
|
44 |
throw new Varien_Exception(
|
45 |
+
'Invalid method ' . get_class($this) . '::' . $method . '(' . print_r($args, 1) . ')'
|
46 |
);
|
47 |
}
|
48 |
}
|
app/design/adminhtml/base/default/template/eurotext/translationmanager/export/overview.phtml
CHANGED
@@ -8,9 +8,9 @@
|
|
8 |
|
9 |
<ul class="eurotext_export_status">
|
10 |
<li class="ok">
|
11 |
-
<?php echo $this->__(
|
12 |
</li>
|
13 |
<li class="error">
|
14 |
-
<?php echo $this->__(
|
15 |
</li>
|
16 |
</ul>
|
8 |
|
9 |
<ul class="eurotext_export_status">
|
10 |
<li class="ok">
|
11 |
+
<?php echo $this->__('Starting profile execution, please wait …'); ?>
|
12 |
</li>
|
13 |
<li class="error">
|
14 |
+
<?php echo $this->__('Warning: Please do not close the window during exporting data'); ?>
|
15 |
</li>
|
16 |
</ul>
|
app/design/adminhtml/base/default/template/eurotext/translationmanager/help.phtml
CHANGED
@@ -9,60 +9,94 @@
|
|
9 |
</tr>
|
10 |
</table>
|
11 |
|
12 |
-
<div style="font-weight:bold;font-size:12pt; margin-top:25px;"><?php echo $this->__(
|
13 |
-
|
|
|
|
|
|
|
|
|
14 |
|
15 |
<div style="margin-top:15px;margin-left:20px;">
|
16 |
-
<div style="font-weight:bold;font-size:11pt;"><?php echo $this->__(
|
17 |
-
<div><?php echo $this->__(
|
|
|
|
|
18 |
</div>
|
19 |
|
20 |
<div style="margin-top:15px;margin-left:20px;">
|
21 |
-
<div style="font-weight:bold;font-size:11pt;"><?php echo $this->__(
|
22 |
<div><?php echo $this->__('You will receive your connection credentials from your customer service representative at Eurotext AG as soon as you have completed your registration. Please enter your user name, password and customer number in "Settings".<br/><span style="font-style:italic;"><sp'); ?></div>
|
23 |
</div>
|
24 |
|
25 |
<div style="margin-top:15px;margin-left:20px;">
|
26 |
-
<div style="font-weight:bold;font-size:11pt;"><?php echo $this->__(
|
27 |
-
<div><?php echo $this->__(
|
28 |
<ul style="margin-left:20px;">
|
29 |
-
<li style="list-style-type:disc;"><?php echo $this->__(
|
30 |
-
|
|
|
|
|
|
|
|
|
31 |
</ul>
|
32 |
|
33 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
34 |
<ul style="margin-left:20px;">
|
35 |
-
<li style="list-style-type:disc;"><?php echo $this->__(
|
36 |
-
|
|
|
|
|
|
|
|
|
37 |
<br/><?php echo $this->__("<i><span style='color:red;'>Important:</span> All previous assignments will be deleted!</i>"); ?>
|
38 |
</li>
|
39 |
</ul>
|
40 |
|
41 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
42 |
|
43 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
44 |
<div><?php echo $this->__("<i><span style='color:red;'>Important:</span> We recommend using this setting only for the initial translation of a new online shop, as it will trigger a translation of ALL language files for the selected target language!</i>"); ?></div>
|
45 |
|
46 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
47 |
|
48 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
49 |
|
50 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
51 |
|
52 |
-
<div style="margin-top:20px;"><?php echo $this->__(
|
|
|
|
|
53 |
|
54 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
55 |
|
56 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
57 |
|
58 |
-
<div style="margin-top:10px;"><?php echo $this->__(
|
|
|
|
|
59 |
|
60 |
<div> </div>
|
61 |
<div style="border:1px solid black;padding:20px;display:inline-block;">
|
62 |
<table width="900" border="0">
|
63 |
<tr>
|
64 |
<td width="445" class="edittext"><p align="left">
|
65 |
-
<strong><?php echo $this->__(
|
66 |
</tr>
|
67 |
<tr>
|
68 |
<td height="135" class="edittext">
|
@@ -72,8 +106,8 @@
|
|
72 |
Schürerstraße 3<br>
|
73 |
97080 Würzburg<br>
|
74 |
Deutschland<br><br>
|
75 |
-
<?php echo $this->__(
|
76 |
-
<?php echo $this->__(
|
77 |
E-Mail: <a href="mailto:>info@eurotext.de">info@eurotext.de</a><br>
|
78 |
Web: <a href="http://www.eurotext.de" target="_blank">www.eurotext.de</a>
|
79 |
</p>
|
9 |
</tr>
|
10 |
</table>
|
11 |
|
12 |
+
<div style="font-weight:bold;font-size:12pt; margin-top:25px;"><?php echo $this->__(
|
13 |
+
'translationMANAGER Quick Start Guide'
|
14 |
+
); ?></div>
|
15 |
+
<div><?php echo $this->__(
|
16 |
+
'Here you will find a list of settings required for operating the Eurotext interface'
|
17 |
+
); ?></div>
|
18 |
|
19 |
<div style="margin-top:15px;margin-left:20px;">
|
20 |
+
<div style="font-weight:bold;font-size:11pt;"><?php echo $this->__('Registration'); ?></div>
|
21 |
+
<div><?php echo $this->__(
|
22 |
+
'Make sure to complete the registration process and enter your access information before submitting your first translation project. Fill out all fields of the registration form and click <b><i>Save and send</i> </b>. Eurotext will send your connection credentials.'
|
23 |
+
); ?></div>
|
24 |
</div>
|
25 |
|
26 |
<div style="margin-top:15px;margin-left:20px;">
|
27 |
+
<div style="font-weight:bold;font-size:11pt;"><?php echo $this->__('Settings'); ?></div>
|
28 |
<div><?php echo $this->__('You will receive your connection credentials from your customer service representative at Eurotext AG as soon as you have completed your registration. Please enter your user name, password and customer number in "Settings".<br/><span style="font-style:italic;"><sp'); ?></div>
|
29 |
</div>
|
30 |
|
31 |
<div style="margin-top:15px;margin-left:20px;">
|
32 |
+
<div style="font-weight:bold;font-size:11pt;"><?php echo $this->__('Projects'); ?></div>
|
33 |
+
<div><?php echo $this->__('Create a new project for each translation order.'); ?></div>
|
34 |
<ul style="margin-left:20px;">
|
35 |
+
<li style="list-style-type:disc;"><?php echo $this->__(
|
36 |
+
'Each project must have a name assigned (we recommend something unique and distinguishable).'
|
37 |
+
); ?></li>
|
38 |
+
<li style="list-style-type:disc;"><?php echo $this->__(
|
39 |
+
'Specify a <b>Source StoreView</b> and <b>Target StoreView</b> for the requested translation.'
|
40 |
+
); ?></li>
|
41 |
</ul>
|
42 |
|
43 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
44 |
+
'Select the products, categories, CMS Pages or Email Templates you need translated'
|
45 |
+
); ?>:</div>
|
46 |
<ul style="margin-left:20px;">
|
47 |
+
<li style="list-style-type:disc;"><?php echo $this->__(
|
48 |
+
'Products, categories, CMS Pages, or Email Templates can be selected individually (<b>Select […]</b>), or alternatively:'
|
49 |
+
); ?></li>
|
50 |
+
<li style="list-style-type:disc;"><?php echo $this->__(
|
51 |
+
'<b>Select all [...] without existing translation:</b> The plugin will automatically select all products, categories, CMS pages and email templates for which no translated text exists in the target language.'
|
52 |
+
); ?>
|
53 |
<br/><?php echo $this->__("<i><span style='color:red;'>Important:</span> All previous assignments will be deleted!</i>"); ?>
|
54 |
</li>
|
55 |
</ul>
|
56 |
|
57 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
58 |
+
'Clicking <b>Select language files</b> will allow you to manually select specific shop system texts in the selection window for translation.'
|
59 |
+
); ?></div>
|
60 |
|
61 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
62 |
+
'Clicking <b>Select all entries in language files without existing translations</b> will automatically select all files and check for missing translations. All entries without an existing translation will be exported.'
|
63 |
+
); ?></div>
|
64 |
<div><?php echo $this->__("<i><span style='color:red;'>Important:</span> We recommend using this setting only for the initial translation of a new online shop, as it will trigger a translation of ALL language files for the selected target language!</i>"); ?></div>
|
65 |
|
66 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
67 |
+
'Select the check box <b>Export SEO content?</b> if you would like to have the SEO content (e.g. keywords, search terms, meta tags, etc.) translated.'
|
68 |
+
); ?></div>
|
69 |
|
70 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
71 |
+
'Select the check box <b>Export attributes and attribute options?</b> if you would like to have the product attributes and associated values translated.'
|
72 |
+
); ?></div>
|
73 |
|
74 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
75 |
+
'Select the check box <b>Export URL keys?</b> if you would like to have URLs of products and categories translated.'
|
76 |
+
); ?></div>
|
77 |
|
78 |
+
<div style="margin-top:20px;"><?php echo $this->__(
|
79 |
+
'Clicking the button <b>Request free quotation now</b> will transmit your texts for translation to the translation portal, and you will receive a detailed quote for your translation project within the next 24 hours (weekdays).'
|
80 |
+
); ?>
|
81 |
|
82 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
83 |
+
'Your Eurotext customer service representative will send your translations in a ZIP file. This zip file can be uploaded and imported to the relevant project.'
|
84 |
+
); ?></div>
|
85 |
|
86 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
87 |
+
'<b>Please note:</b> For safety reasons, we recommend testing the import on a staging system first. Make sure to back up all your data before importing.'
|
88 |
+
); ?></div>
|
89 |
|
90 |
+
<div style="margin-top:10px;"><?php echo $this->__(
|
91 |
+
'Please read the translationMANAGER documentation for more information.'
|
92 |
+
); ?></div>
|
93 |
|
94 |
<div> </div>
|
95 |
<div style="border:1px solid black;padding:20px;display:inline-block;">
|
96 |
<table width="900" border="0">
|
97 |
<tr>
|
98 |
<td width="445" class="edittext"><p align="left">
|
99 |
+
<strong><?php echo $this->__('Contact'); ?> Eurotext AG </strong></td>
|
100 |
</tr>
|
101 |
<tr>
|
102 |
<td height="135" class="edittext">
|
106 |
Schürerstraße 3<br>
|
107 |
97080 Würzburg<br>
|
108 |
Deutschland<br><br>
|
109 |
+
<?php echo $this->__('Phone'); ?>: +49 (0)931 35 40 50<br>
|
110 |
+
<?php echo $this->__('Telefax'); ?>: +49 (0)931 35 40 580<br>
|
111 |
E-Mail: <a href="mailto:>info@eurotext.de">info@eurotext.de</a><br>
|
112 |
Web: <a href="http://www.eurotext.de" target="_blank">www.eurotext.de</a>
|
113 |
</p>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>eurotext_translationMANAGER</name>
|
4 |
-
<version>3.2.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="https://eurotext-ecommerce.com/agb/">Nutzungsbedingungen für Softwareanwendungen der Eurotext AG</license>
|
7 |
<channel>community</channel>
|
@@ -22,130 +22,11 @@ We STRONGLY recommend installing and testing the update in a test environment be
|
|
22 |
Further information can be found at http://eurotext.screenstepslive.com/s/translationmanager
|
23 |

|
24 |
# General terms & conditions for Eurotext AG software applications
|
25 |
-
http://eurotext.de/en/contact/terms-and-conditions
|
26 |
-

|
27 |
-
---------------------------
|
28 |
-
## Version 3.2.14 - 2017-03-09
|
29 |
-
### IMPROVED
|
30 |
-
- Fixed broken connect package
|
31 |
-

|
32 |
-
## Version 3.2.13 - 2017-02-09
|
33 |
-
### IMPROVED
|
34 |
-
- Updated translation
|
35 |
-

|
36 |
-
## Version 3.2.12 - 2017-01-17
|
37 |
-
### NEW
|
38 |
-
- Complete refactoring of the source code
|
39 |
-
- Completely revamped user interface
|
40 |
-
- Magento Grid introduced to the selection dialogs
|
41 |
-
- New category tree navigation for product selection
|
42 |
-
- You can now view the selections even after exporting
|
43 |
-
- Select multiple products in a text field by comma-separated SKU lists
|
44 |
-
- New: email templates from the database can now be translated as well
|
45 |
-
- Enhanced compatibility with third-party plugins and processes
|
46 |
-
- Improved performance and stability when exporting and importing
|
47 |
-
- The debug mode has been revised and updated with options to retain export packages on the server when they cannot be sent to Eurotext
|
48 |
-
- Improved checks and enhanced compatibility when creating zip files
|
49 |
-
- New: If an export fails, the untransferred ZIP file is copied to var/export/
|
50 |
-
- Enhanced checks of various system components (rights, directories, modules) to guarantee the stability of the plugin.
|
51 |
-
- Improved behavior when importing translations into source-language content that has already been deleted, including lists of non-imported content in import dialog and logging.
|
52 |
-
- Completely revised documentation (http://eurotext.screenstepslive.com/s/translationmanager/m/translationmanager-magento19)
|
53 |
-

|
54 |
-
### FIXED
|
55 |
-
- Image labels were not being exported
|
56 |
-
- Fixed a rights administration bug which occurred after updating to Magento 1.14 EE/1.9 CE
|
57 |
-
- Language files were being exported from the wrong source language
|
58 |
-
- The language file of custom themes (translate.csv) was not being exported
|
59 |
-
- General improvements to the export format
|
60 |
-
- General improvements to user registration
|
61 |
-
- General improvements to ZIP file creation
|
62 |
-
- Improved security for database write access
|
63 |
-
- Improved logging in standard mode and debug mode
|
64 |
-

|
65 |
-
### REMOVED
|
66 |
-
- Removed the feature to automatically export untranslated content
|
67 |
-

|
68 |
-
## Version 1.1.2.2
|
69 |
-
### NEW
|
70 |
-
- Translate your custom category attributes: export your custom attributes
|
71 |
-

|
72 |
-
## Version 1.1.2.1
|
73 |
-
### FIXED
|
74 |
-
- Duplicate URL key error during import fixed
|
75 |
-

|
76 |
-
## Version 1.1.2.0
|
77 |
-
### NEW
|
78 |
-
- Revamped DEBUG mode. Can now be activated in the back end (System -> Configuration -> Developer -> Log)
|
79 |
-
- Log file created in /var/log/eurotext.log, critical errors saved in eurotext_fatal.log even when DEBUG mode is deactivated
|
80 |
-
- Base directory changed from /eurotext to /var/eurotext
|
81 |
-
- Added logging for FTP check in DEBUG mode
|
82 |
-
### FIXED
|
83 |
-
- Various improvements to the usability of Magento directories
|
84 |
-

|
85 |
-
## Version 1.1.1.0
|
86 |
-
### FIXED
|
87 |
-
- Now only the selected language files will be exported
|
88 |
-
- Small bug fixes
|
89 |
-

|
90 |
-
## Version 1.1.0.0
|
91 |
-
### NEW
|
92 |
-
- Translate your custom product attributes: export your custom attributes
|
93 |
-
- Backup: in the event of transfer errors to the Eurotext server, data packages are saved to /var/export.
|
94 |
-
### FIXED
|
95 |
-
- Bug fixes and security updates
|
96 |
-
- Improved software performance and stability
|
97 |
-

|
98 |
-
## Version 1.0.0.9
|
99 |
-
### FIXED
|
100 |
-
- The Stock Availability will now be displayed for 'virtual' products/main products according to the setup in the back end
|
101 |
-

|
102 |
-
## Version 1.0.0.8
|
103 |
-
### NEW
|
104 |
-
- You can now filter the product selection by product type
|
105 |
-

|
106 |
-
## Version 1.0.0.7
|
107 |
-
### FIXED
|
108 |
-
- JavaScript error fixed
|
109 |
-
- The update script now works in a more tolerant manner
|
110 |
-

|
111 |
-
## Version 1.0.0.6
|
112 |
-
### NEW
|
113 |
-
- Two additional filters (status and stock availability) are now available in the product selection
|
114 |
-
- Static blocks can now be exported and imported. The static blocks are displayed with the CMS page selection
|
115 |
-

|
116 |
-
## Version 1.0.0.5
|
117 |
-
### NEW
|
118 |
-
- More project information is now displayed in the comment field of the control.xml
|
119 |
-
- The last action in a project can now be 'undone'
|
120 |
-
### FIXED
|
121 |
-
- The correct plugin version is now shown in the control.xml
|
122 |
-

|
123 |
-
## Version 1.0.0.4
|
124 |
-
### FIXED
|
125 |
-
- The module now exports attributes even if there is no name available for the source storeview. It simply exports the admin default text.
|
126 |
-

|
127 |
-
## Version 1.0.0.3
|
128 |
-
### FIXED
|
129 |
-
- The URL key will only be set in the target storeview (based on the product/category name) if there was previously no value there (i.e. "Use default values" was enabled). Previously, the URL key was set if the value was empty or equal to the default value
|
130 |
-
The "Use default values" setting is no longer lost in fields that are not present in the translation files.
|
131 |
-

|
132 |
-
## Version 1.0.0.2
|
133 |
-
### FIXED
|
134 |
-
- Imports would fail if product images, for which translations had been generated, were deleted in the Magento back end between import and export
|
135 |
-
- Product images missing from the import are now simply skipped
|
136 |
-

|
137 |
-
## Version 1.0.0.1
|
138 |
-
### NEW
|
139 |
-
- The product selection has been expanded to include an option to filter by categories, allowing for quick translations of entire categories
|
140 |
-
### FIXED
|
141 |
-
- URL fields not included in an export were being reset to their default values during import, instead of being generated based on the (translated) names
|
142 |
-

|
143 |
-
## Version 1.0.0.0
|
144 |
-
- Release Version 1.0.0.0</notes>
|
145 |
<authors><author><name>Eurotext AG</name><user>eurotext</user><email>info@eurotext.de</email></author></authors>
|
146 |
-
<date>2017-
|
147 |
-
<time>
|
148 |
-
<contents><target name="magecommunity"><dir name="Eurotext"><dir name="TranslationManager"><dir name="Block"><dir name="Adminhtml"><dir name="Eurotext"><dir name="Export"><file name="Overview.php" hash="fefd3dc416377f0796233d4ae4a5629b"/></dir><dir name="Grid"><file name="OverwriteCheckboxRenderer.php" hash="602066f890b3ac64a6916161b1c658c3"/><dir name="Renderer"><file name="Checkbox.php" hash="c1f85f5830ff53322dab7a5c1d508072"/><file name="StoreviewWithLocale.php" hash="9b9ca817cd22834274d47f1609feec1e"/></dir></dir><dir name="Import"><file name="Overview.php" hash="f57e709deabcea28c7c9b91130adfb40"/></dir><dir name="Project"><dir name="Edit"><file name="Form.php" hash="5fd8a6e124a3ad3f70a67f166eec0473"/><dir name="Tab"><file name="Categories.php" hash="cff581961884ee839a4dff23c512cb61"/><file name="CmsBlock.php" hash="f0207afed8f58cf715d3ef5b91432b1a"/><file name="CmsPage.php" hash="e1cbffb562cbd97eeba4addc1eef131e"/><dir name="Emails"><file name="Note.php" hash="f0491208842f17d8cb73ec849542f31f"/></dir><dir name="Grid"><file name="Massaction.php" hash="ff9d8bd50174022256b619ee10a9b257"/></dir><dir name="Main"><file name="Single.php" hash="44eb8988afe846e83ff944233fc16764"/><file name="Uploader.php" hash="2a7b906a104315c60189133a40a619c3"/></dir><file name="Main.php" hash="0b7ef2ae66647807f12dd5b5409c7a1c"/><dir name="Products"><file name="CategoryTree.php" hash="8f30da7c0c9d4c55958b83d46c61c220"/><file name="CategoryTreeAjax.php" hash="2bded6c1ae27c34407592bd68fecf944"/><file name="Script.php" hash="d352799ffe1174b0e962f419abd726bb"/></dir><file name="Products.php" hash="042edeadf4ded7a825fe8d6437c32dc9"/><file name="TransactionEmailFiles.php" hash="2dc4c29f6aa7397b888a7c3cb896681d"/><file name="TransactionEmailsDatabase.php" hash="bdf80aae0f475f119317531c7f8c7b7e"/><file name="TranslateFiles.php" hash="6e0c8a2fa3968aa7bdaa439ff5e4d774"/></dir><file name="Tabs.php" hash="7d2b96b63e1099e7221c8d78cf798e3e"/></dir><file name="Edit.php" hash="2501621acc283552519d8b4fe852acf2"/><file name="Grid.php" hash="2f5e6308b7189f0471c55813e00a3a6a"/></dir><file name="Project.php" hash="ff6bb0a8ac38ad3cf2f0c29d549b840c"/></dir><dir name="Grid"><dir name="Renderer"><file name="StoreviewWithLocale.php" hash="a651d215586f38e58fe8c0a7da3aaa8d"/></dir></dir></dir><file name="Help.php" hash="ca61b416958f9a5304a94a9ce69df7da"/><dir name="Response"><file name="Ajax.php" hash="59613d25a1ffc960cc7a3ae29d24e6ec"/></dir><file name="Status.php" hash="194ab3a64321820d47dd67ea554da443"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><dir name="Registration"><file name="Status.php" hash="4f8317f73c695e5af3ee0dfeeb4196ee"/></dir><file name="Text.php" hash="f5fb0b1cf7e3d794a398ede74cf17133"/></dir></dir></dir></dir></dir><dir name="Exception"><file name="FtpException.php" hash="60c1ff48c554f9532eb8d332317d215d"/></dir><dir name="Helper"><file name="Category.php" hash="70cd77b9e06caf7ea3a4486815d64836"/><file name="Config.php" hash="35dbc25466bf03a3046317d6f0891447"/><file name="Data.php" hash="7c7506faca62fa0b9e3e7f3d6c769496"/><file name="Eurotext.php" hash="19ac23de2dd3fdd3ce0e135ffe54fab8"/><file name="Filesystem.php" hash="d37c92b4938501ee81d6b32ec7d91714"/><file name="Project.php" hash="01c2204aafbec11cd07520d430da5b91"/><file name="String.php" hash="dffd96b1157655c01e092d60a0435e99"/><file name="Xml.php" hash="5523724d86ee6f78a79266f8b565e4be"/></dir><dir name="Model"><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Backend"><dir name="Media"><file name="OnlyStoreValues.php" hash="ed8ea13152310f8e3ae0df3dfe4fc38c"/></dir></dir></dir></dir></dir><dir name="Controller"><file name="Exception.php" hash="d8ac30e2db57fd25bf1c848425741acd"/></dir><dir name="Eav"><dir name="Attribute"><file name="Label.php" hash="3cc63ed47cdcc3cda59f4d9d93518150"/><dir name="Option"><file name="Value.php" hash="69ec30b12d3724365473b5510da664cd"/></dir></dir></dir><file name="EurotextLanguages.php" hash="b6155eff058695a9560026d9a7be1437"/><dir name="Export"><dir name="Project"><file name="Attribute.php" hash="42d57aa5042088ad80c5be9729acf641"/><file name="Category.php" hash="79a75d998ba28b11206c5405d833e1a1"/><file name="CmsBlock.php" hash="bde0f2b4c333c009d82547948681d0f6"/><file name="CmsPage.php" hash="c9681ac67b4411bc931e03c59211aa11"/><file name="CreateControlFile.php" hash="96922fda3795907275f4e90b4ccddf8e"/><file name="EmailDatabaseTemplates.php" hash="1cef5afc1a58cfd5fa4854920d6888a6"/><file name="EmailFileTemplates.php" hash="ab03745086ef685d030468680764d6f0"/><file name="Exporter.php" hash="451fb2d540fcf210c4de0014961c0eb9"/><file name="FtpUpload.php" hash="597867b37fe1f9404d36eadb722771b0"/><file name="LocaleCsvFiles.php" hash="a2639285003c163a75d073a41719cc9c"/><file name="Product.php" hash="9ed99268cad5a133c356a161a0f924a6"/></dir><file name="Project.php" hash="6fdabca975ad27260f785020aca43507"/></dir><file name="Extractor.php" hash="295dc4980b02098229e142d9a3d82943"/><file name="Factory.php" hash="433a4237864b60ba71ff3af1f85feff6"/><dir name="Import"><dir name="Project"><file name="Attributes.php" hash="b07af08e4caa8b206a383d611e072703"/><file name="Categories.php" hash="c899d9a8c585ac6beb13cb72efc7260a"/><file name="CmsBlocks.php" hash="8b57bb27f9f285bf396b694477c44014"/><file name="CmsPages.php" hash="3248407e6068180c426fb95a1e66ad4c"/><file name="CollectSkipped.php" hash="3efd27b15b46b2befdcd01f8e03b17e7"/><file name="EmailTemplates.php" hash="e9ec9c1b931833e3c7406b16a49d7d33"/><dir name="Exception"><file name="MissingEntity.php" hash="55c8d26331cf9e7090c6fec482cf3b3e"/></dir><file name="Importer.php" hash="2ecac21104fab2e7929932d12cc5b799"/><file name="LocaleCsvFiles.php" hash="02e8c48751d9a1eb5f1ffcd4ee6df08c"/><file name="Product.php" hash="1d20211d1b1c4f69871c57c275af95a5"/></dir><file name="Project.php" hash="c5c42ae3e5ed21317737b3866cb27d06"/><file name="Queue.php" hash="53ea466669ff85174b1070c72916721e"/><file name="Validator.php" hash="36974520d15dcbf3a91a10d07eb77716"/></dir><file name="Observer.php" hash="80b098635238d9660d07982d9567546c"/><file name="ProductLoader.php" hash="e0aa3b1e40815a819c72bc25378077a9"/><dir name="Project"><file name="Category.php" hash="8dd0af28d2889d8eb5ea4aa5fb7b2b5b"/><file name="Cmsblock.php" hash="2b0c4601a0021d5f7d06f98e2b7ab0e2"/><file name="Cmspage.php" hash="3a5642ff3770b3ad09424880b20949c9"/><file name="Csv.php" hash="4fd06e795a31a53ef4fc5106c0ffa28c"/><file name="EmailtemplateDatabase.php" hash="c6978dfc5846d3f470e0b8536178f344"/><file name="EmailtemplateFile.php" hash="c0ba504eaf050ad39acd6e90f47854f3"/><file name="Import.php" hash="a8ef441cd37ee562d8b38755359cd694"/><file name="Product.php" hash="8b5e14407f1449d3df0204274d03320a"/><dir name="Source"><file name="Status.php" hash="6890bab36d251ee47ca2836fbeb41603"/></dir></dir><file name="Project.php" hash="11b850459010c099e7d2ac43756d99cb"/><dir name="Renderer"><dir name="Filesystem"><file name="RelativeToAppDirectory.php" hash="725289dc9ed79898eab27b2ccb5c6d91"/><file name="RelativeToLocaleTemplateDirectory.php" hash="14f6a546f84a48d822179bb353b46351"/></dir><file name="Filesystem.php" hash="5c56c1e04db25584ac6a1ad48c0d4a9d"/></dir><dir name="Resource"><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Backend"><dir name="Media"><file name="OnlyStoreValues.php" hash="ae4d43376d24cbae4ed19632794f51ba"/></dir></dir></dir><dir name="Option"><file name="Title.php" hash="ee3eabb5995eb327e2de31b248e285be"/><dir name="Type"><file name="Title.php" hash="c49656683099b75ccd6642c61d7a22bc"/></dir></dir></dir></dir><dir name="Csv"><file name="Collection.php" hash="90163f2d6454efd100d48d720a33d4ef"/></dir><dir name="Eav"><dir name="Attribute"><dir name="Label"><file name="Collection.php" hash="6eff56981825b462b78897a1dd0f7248"/></dir><file name="Label.php" hash="65ba1673abc5ed1731d0e911b9b5e4b7"/><dir name="Option"><dir name="Value"><file name="Collection.php" hash="23ebc81f087b31723b175ae46e7eb4e2"/></dir><file name="Value.php" hash="3352674505656df6d51774444ab59fa5"/></dir></dir></dir><dir name="Emailtemplate"><dir name="Filesystem"><file name="Collection.php" hash="a8f0dc8367a2ee12846d89b272037db1"/></dir></dir><dir name="Filesystem"><file name="Collection.php" hash="8b84ee3193ad45484c251336d64cf71c"/></dir><dir name="Project"><dir name="Category"><file name="Collection.php" hash="134968856c66296fe418151a7dfdc8a5"/></dir><file name="Category.php" hash="55d87ff56d171e1daf4f42a2b8808d1b"/><dir name="Cmsblock"><file name="Collection.php" hash="d126952fba4c57de3277ac83bbafe61b"/></dir><file name="Cmsblock.php" hash="05e85b8142a95424ddd45884999a6c6c"/><dir name="Cmspage"><file name="Collection.php" hash="7fd97c6a893d2e365e1035e934f5be5d"/></dir><file name="Cmspage.php" hash="58e59ec888b52973b01b98e0fc19f50f"/><file name="Collection.php" hash="0b068f00639795627c7e2576ca3feaa4"/><dir name="Csv"><file name="Collection.php" hash="0d10dfdedae29b70f1fc2e3b19f160e4"/></dir><file name="Csv.php" hash="f283f1bd37fecb222bedf46d9cde3f18"/><dir name="EmailtemplateDatabase"><file name="Collection.php" hash="e63d7568db40281040ef984326100658"/></dir><file name="EmailtemplateDatabase.php" hash="eb787be577d4341d5324d159f9a66afd"/><dir name="EmailtemplateFile"><file name="Collection.php" hash="8d83aa3abce2e076d387ac3ba3a12cb3"/></dir><file name="EmailtemplateFile.php" hash="43d1baa459bf00fead85fa9e22979502"/><dir name="Import"><file name="Collection.php" hash="7ac0c91738130e32b97e4dc3f7ae6e68"/></dir><file name="Import.php" hash="9d71d42dfc91c16fa83a26ae76b79339"/><dir name="Product"><file name="Collection.php" hash="cafc0c7dbda6f9733a7dbf158a03c88b"/></dir><file name="Product.php" hash="8fbd6ffee43f8094c90d52f97e425d50"/></dir><file name="Project.php" hash="d964e9890f77119ceb343692d98a27d7"/><file name="Setup.php" hash="992b5dbedd9dc6d669ff7a7949c790ab"/></dir><dir name="Source"><file name="StoreViewWithLocale.php" hash="a97b6ef2d0521da72fcad45c7ab8b1df"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Salutation.php" hash="1de509321f9050e3f4c30c004e9b0310"/></dir></dir></dir><dir name="Updater"><file name="MediaGalleryValue.php" hash="8c38ccb08dab63701882e4dbf79f0bc7"/></dir><dir name="Xml"><dir name="Import"><dir name="Cms"><file name="Block.php" hash="ee5853195c38dcc699a663bbe70a510e"/><file name="BlockReader.php" hash="ec3d5fe50d778602c4417b6f645fb048"/></dir></dir></dir><file name=".DS_Store" hash="7c3522d12f27b1bc414fac586a4b971f"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Eurotext"><file name="HelpController.php" hash="cf5a275aef3ed8d5b57cecf7e336fc9d"/><dir name="Project"><file name="ExportController.php" hash="52f796f6aeed83dc90e4a5d2281f17a9"/><file name="ImportController.php" hash="413b7c3ba87a65b7f54fd40f1eea627a"/></dir><file name="ProjectController.php" hash="c0fa1e9b0d924d438c9d6f51a141c33d"/><file name="StatusController.php" hash="fa4bad31a7259d73eb4e8d63f8a8baad"/><file name=".DS_Store" hash="be9480710cd7aa8bcc8ca162bbe60791"/></dir><file name=".DS_Store" hash="af0a7d68dfc1505f5fd04c55baff3727"/></dir><file name=".DS_Store" hash="9d6e9b7cea3d170ee9c8cfccccc4ee80"/></dir><dir name="data"><dir name="eurotext_translationmanager_setup"><file name="data-install-3.0.0.php" hash="fa9de480b2d6d32ec1530c51914607d7"/><file name="data-upgrade-1.2.0.4-1.2.1.php" hash="40c403ee7e379d83e3f76ce1d6809b4e"/><file name="data-upgrade-1.2.1-1.2.2.php" hash="d6a7a1c4e525f552cc463393398737e1"/><file name="data-upgrade-3.1.1-3.1.2.php" hash="ea833f0234b35f910623f0434d78e8e9"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="af3f9f6b2b6ed681f4ebe8651ae4ad33"/><file name="config.xml" hash="2447d712b30ddd1950fcf99e4f611bb1"/><file name="jstranslator.xml" hash="96c99f45202c522b98b01e792308954b"/><file name="system.xml" hash="30c104492c31a647fe7d05af8a7ec52a"/></dir><dir name="sql"><dir name="eurotext_translationmanager_setup"><file name="install-3.0.0.php" hash="c249a9897d9259b70e6c2a816fb4e6be"/><file name="mysql4-install-1.0.0.0.php" hash="e18c0008fdf86231a2b9fc5fdaf772f6"/><file name="mysql4-upgrade-1.0.0.5-1.0.0.6.php" hash="ea4e8bfeb96b41454a6270fc679a97fc"/><file name="mysql4-upgrade-1.0.0.7-1.0.0.8.php" hash="b610342ad985cd23f823cb05048c172d"/><file name="upgrade-1.1.2.1-1.2.0.0.php" hash="cad08b1c61ec678d3848bc708d9abb93"/><file name="upgrade-1.2.0.0-1.2.0.1.php" hash="84fd2540a1f49e6389ff020c8e5af26a"/><file name="upgrade-1.2.0.1-1.2.0.2.php" hash="e4f0ac1f302b04d51b8e055a015f266e"/><file name="upgrade-1.2.0.2-1.2.0.3.php" hash="dab9799a3641756c414be9c24da50ed2"/><file name="upgrade-1.2.1-1.2.2.php" hash="eede73761bed1bfdb89fd401be2bb73f"/><file name="upgrade-1.2.2-2.0.0.php" hash="776bc7ea41553eca877799bcc1a6c0f5"/><file name="upgrade-2.0.0-2.0.1.php" hash="0e82e6faa5ad98c0c7ab54f7fa9dbd3d"/><file name="upgrade-2.0.1-2.0.2.php" hash="4dbb0a871107c8d73dbcef9d1283291f"/><file name="upgrade-2.0.10-3.0.0.php" hash="3c247bf1573b192c431fecf1a97ea41e"/><file name="upgrade-2.0.3-2.0.4.php" hash="808861b1ef6079517feb94ae9afb7bc4"/><file name="upgrade-2.0.4-2.0.5.php" hash="29082ded381bd975bf8e9de9ee1aab74"/><file name="upgrade-2.0.5-2.0.6.php" hash="be2d23c6c0b877db0ac3bfa75a15b3c2"/><file name="upgrade-2.0.6-2.0.7.php" hash="4a789cf110e0e98270e635a7df85706e"/><file name="upgrade-2.0.7-2.0.8.php" hash="64a538428c0ebadcbb942a218814411a"/><file name="upgrade-2.0.8-2.0.9.php" hash="f2fd21608a2b91aeed69a28a1fb22b7a"/><file name="upgrade-2.0.9-2.0.10.php" hash="99d8c357714dfad0c44878a19ced4bab"/><file name="upgrade-3.0.0-3.0.1.php" hash="8a1ba3c8d8ca015c9e47d075ecea63dc"/><file name="upgrade-3.0.1-3.0.2.php" hash="9a6333481ccf99cbc851ae904067d91a"/><file name="upgrade-3.0.2-3.1.1.php" hash="656613ebca52ae1581d41cc2cdf58d83"/><file name="upgrade-3.1.5-3.1.6.php" hash="529cb0c4c7f7f5f3b15e53dcc025c0f7"/><file name="upgrade-3.1.6-3.1.7.php" hash="a3e58f601ca6fbf534bb14d031c19d39"/><file name="upgrade-3.1.7-3.1.8.php" hash="937e0052ee352a2f0fd1f548d65e61ef"/></dir></dir><file name=".DS_Store" hash="a747456783fab7a1190bb4bb3c45424a"/></dir><dir name="Uploader"><dir name="Block"><file name="Abstract.php" hash="38144e4e5c93520084c8cd6d81a47213"/><file name="Single.php" hash="98267d16076c3d556fb60d36c4e98252"/></dir><dir name="Helper"><file name="Data.php" hash="c142374acaef347046b43812adf919bf"/><file name="File.php" hash="1d25808dcc375cd85b35a77b111e744b"/></dir><dir name="Model"><dir name="Config"><file name="Abstract.php" hash="5b76430dd931628c2aaac0f698536186"/><file name="Browsebutton.php" hash="bce1ef6db09e535473c085dd6b5f580c"/><file name="Misc.php" hash="e0a89ff017cd74531448f9f295bb327b"/><file name="Uploader.php" hash="41152324c956fbe9cc9473044c139201"/></dir></dir><dir name="etc"><file name="config.xml" hash="a76f635b80aa9f9ad87fba966d560e11"/><file name="jstranslator.xml" hash="5de25b97a70ec60134a47c3c6bc9212a"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="layout"><dir name="eurotext"><file name="translationmanager.xml" hash="fe0cacbe5fedd5ac0abccb3009879d1a"/></dir></dir><dir name="template"><dir name="eurotext"><dir name="translationmanager"><dir name="export"><file name="overview.phtml" hash="9327bb36242c985b60db163953563c67"/></dir><file name="help.phtml" hash="1d8d1d32744bc6db2d26b2b0fa2394fe"/><dir name="import"><file name="overview.phtml" hash="6c90bdd842e3b03c8697c337b388e798"/></dir><dir name="project"><dir name="email"><file name="note.phtml" hash="f39644edf9dc77c92206961f46dc08b8"/></dir><dir name="products"><file name="bulk_sku.phtml" hash="d150c3b522378c2810947b8f877eccef"/><file name="category_tree.phtml" hash="02d25a4b18772ac2541f7be067ed1c0f"/><file name="script.phtml" hash="44956e903e1f2751da6d6464214b047f"/></dir></dir></dir><dir name="uploader"><dir name="media"><file name="uploader.phtml" hash="8f37a11c24df77615aaaba3e81cebbaa"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Eurotext_TranslationManager.csv" hash="dd91805d1358e4eb64969d321e558f7b"/><file name="Eurotext_Uploader.csv" hash="52a262b495f24074825b07a15080e264"/></dir><dir name="de_DE"><file name="Eurotext_TranslationManager.csv" hash="259290a914e033ac623e8018ad3051fa"/><file name="Eurotext_Uploader.csv" hash="0009959270fc7f3d5256250c97f5b4c8"/></dir></target><target name="mageetc"><dir name="modules"><file name="Eurotext_TranslationManager.xml" hash="0eb43d3e4d41bebb069074d1d9eed7df"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="eurotext"><dir name="translationmanager"><dir name="css"><file name="help.css" hash="38e92dee1ed607b981203e315eb26c86"/><file name="project.css" hash="4a959f8858e91c2b1b49e3ca927b9447"/><file name="status.css" hash="893a736b4a043eb5b801d7a639d92d03"/></dir><dir name="images"><file name="btt_suche.png" hash="9b74d62b9840cafb6990352c52a39458"/><file name="cat-minus.png" hash="d092af81ca37c821e13f27cc9bc44378"/><file name="cat-none.png" hash="88805f6b1ed90aa66db3cc6f89c83db0"/><file name="cat-plus.png" hash="16d73e360bebbeb16c4115ceea771b56"/><file name="eurotext_logo.png" hash="87120ee2d376e3195e2e7cd8b9661ba7"/><file name="eurotext_table_head.png" hash="36583e9470155c585304e305133e13ec"/><file name="logo_dixeno.png" hash="dd23f387d0eee8a9494724a470d8742e"/><file name="logo_eurotext.png" hash="7a8627f728f203823fbee1575d223131"/><file name="pager_arrow_left.gif" hash="6e44f608dac8eb8be1d1ebee5a3285aa"/><file name="pager_arrow_left_off.gif" hash="30f5e56195ab3546b36f4016db5254be"/><file name="pager_arrow_right.gif" hash="cc79526156b7e0c8abce61fad3d53f77"/><file name="pager_arrow_right_off.gif" hash="f01b7dad9acf0180b5c62edbd7ea9939"/></dir><dir name="js"><file name="eurotext_project.js" hash="9812165e4e8193a227503583d8423331"/><file name="export.js" hash="78b560ca40a66a6180a4ad8bb7dad933"/><file name="system_config.js" hash="d773e2a2896b917ca4f793da3fb4f9d3"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="eurotext"><dir name="uploader"><file name="flow.min.js" hash="a82a557db407b53d5909fa4e1833a596"/><file name="fusty-flow-factory.js" hash="b3f49be0f28be74e8b8bb76496c52bc3"/><file name="fusty-flow.js" hash="302f440908837093fd4e9b6e76ec01e0"/><file name="instance.js" hash="3a4f8bbbb500a1224eba194f93afe437"/></dir></dir></dir></target></contents>
|
149 |
<compatible/>
|
150 |
<dependencies><required><php><min>5.5.0</min><max>8.0.0</max></php></required></dependencies>
|
151 |
</package>
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>eurotext_translationMANAGER</name>
|
4 |
+
<version>3.2.16</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="https://eurotext-ecommerce.com/agb/">Nutzungsbedingungen für Softwareanwendungen der Eurotext AG</license>
|
7 |
<channel>community</channel>
|
22 |
Further information can be found at http://eurotext.screenstepslive.com/s/translationmanager
|
23 |

|
24 |
# General terms & conditions for Eurotext AG software applications
|
25 |
+
http://eurotext.de/en/contact/terms-and-conditions/</notes>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
<authors><author><name>Eurotext AG</name><user>eurotext</user><email>info@eurotext.de</email></author></authors>
|
27 |
+
<date>2017-04-11</date>
|
28 |
+
<time>23:32:50</time>
|
29 |
+
<contents><target name="magecommunity"><dir name="Eurotext"><dir name="TranslationManager"><dir name="Block"><dir name="Adminhtml"><dir name="Eurotext"><dir name="Export"><file name="Overview.php" hash="fefd3dc416377f0796233d4ae4a5629b"/></dir><dir name="Grid"><file name="OverwriteCheckboxRenderer.php" hash="602066f890b3ac64a6916161b1c658c3"/><dir name="Renderer"><file name="Checkbox.php" hash="c1f85f5830ff53322dab7a5c1d508072"/><file name="StoreviewWithLocale.php" hash="9b9ca817cd22834274d47f1609feec1e"/></dir></dir><dir name="Import"><file name="Overview.php" hash="f57e709deabcea28c7c9b91130adfb40"/></dir><dir name="Project"><dir name="Edit"><file name="Form.php" hash="5fd8a6e124a3ad3f70a67f166eec0473"/><dir name="Tab"><file name="Categories.php" hash="cff581961884ee839a4dff23c512cb61"/><file name="CmsBlock.php" hash="f0207afed8f58cf715d3ef5b91432b1a"/><file name="CmsPage.php" hash="e1cbffb562cbd97eeba4addc1eef131e"/><dir name="Emails"><file name="Note.php" hash="f0491208842f17d8cb73ec849542f31f"/></dir><dir name="Grid"><file name="Massaction.php" hash="472f252d52b62f9b0da475336b40bc1c"/></dir><dir name="Main"><file name="Single.php" hash="44eb8988afe846e83ff944233fc16764"/><file name="Uploader.php" hash="2a7b906a104315c60189133a40a619c3"/></dir><file name="Main.php" hash="f71cc6cacda7a56a717b9dede32e0645"/><dir name="Products"><file name="CategoryTree.php" hash="8f30da7c0c9d4c55958b83d46c61c220"/><file name="CategoryTreeAjax.php" hash="e351352e4a67510f0a5b61486cc7e76e"/><file name="Script.php" hash="d352799ffe1174b0e962f419abd726bb"/></dir><file name="Products.php" hash="1e10b7c263ea723e1deb9a9a18408956"/><file name="TransactionEmailFiles.php" hash="2dc4c29f6aa7397b888a7c3cb896681d"/><file name="TransactionEmailsDatabase.php" hash="bdf80aae0f475f119317531c7f8c7b7e"/><file name="TranslateFiles.php" hash="6e0c8a2fa3968aa7bdaa439ff5e4d774"/></dir><file name="Tabs.php" hash="7d2b96b63e1099e7221c8d78cf798e3e"/></dir><file name="Edit.php" hash="2501621acc283552519d8b4fe852acf2"/><file name="Grid.php" hash="2f5e6308b7189f0471c55813e00a3a6a"/></dir><file name="Project.php" hash="ff6bb0a8ac38ad3cf2f0c29d549b840c"/></dir><dir name="Grid"><dir name="Renderer"><file name="StoreviewWithLocale.php" hash="a651d215586f38e58fe8c0a7da3aaa8d"/></dir></dir></dir><file name="Help.php" hash="ca61b416958f9a5304a94a9ce69df7da"/><dir name="Response"><file name="Ajax.php" hash="59613d25a1ffc960cc7a3ae29d24e6ec"/></dir><file name="Status.php" hash="80d6933a456971a3a77bd1f21fb5607c"/><dir name="System"><dir name="Config"><dir name="Form"><dir name="Field"><dir name="Registration"><file name="Status.php" hash="4f8317f73c695e5af3ee0dfeeb4196ee"/></dir><file name="Text.php" hash="f5fb0b1cf7e3d794a398ede74cf17133"/></dir></dir></dir></dir></dir><dir name="Exception"><file name="FtpException.php" hash="60c1ff48c554f9532eb8d332317d215d"/></dir><dir name="Helper"><file name="Category.php" hash="70cd77b9e06caf7ea3a4486815d64836"/><file name="Config.php" hash="35dbc25466bf03a3046317d6f0891447"/><file name="Data.php" hash="b72b345dd1db925138f00d23b2fdaeee"/><file name="Eurotext.php" hash="4ad797703c20d66b9c758b3aa27e1d82"/><file name="Filesystem.php" hash="ae921fc9b3284907eecf99929511c713"/><file name="Project.php" hash="01c2204aafbec11cd07520d430da5b91"/><file name="String.php" hash="dffd96b1157655c01e092d60a0435e99"/><file name="Xml.php" hash="5523724d86ee6f78a79266f8b565e4be"/></dir><dir name="Model"><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Backend"><dir name="Media"><file name="OnlyStoreValues.php" hash="ed8ea13152310f8e3ae0df3dfe4fc38c"/></dir></dir></dir></dir></dir><dir name="Controller"><file name="Exception.php" hash="d8ac30e2db57fd25bf1c848425741acd"/></dir><dir name="Eav"><dir name="Attribute"><file name="Label.php" hash="3cc63ed47cdcc3cda59f4d9d93518150"/><dir name="Option"><file name="Value.php" hash="69ec30b12d3724365473b5510da664cd"/></dir></dir></dir><file name="EurotextLanguages.php" hash="da62fbf9448208ae22a26da9b55bc880"/><dir name="Export"><dir name="Project"><file name="Attribute.php" hash="2f72f55b0d514ff6e205e0703c3a2182"/><file name="Category.php" hash="8f93bbad5882db2f5f8a06b6e20acee1"/><file name="CmsBlock.php" hash="ea19d50c3fd644b4a833083131c0c3c1"/><file name="CmsPage.php" hash="d532806b17c7f2e5d878f761c69bbc94"/><file name="CreateControlFile.php" hash="c9730640dea5f23dda030e24956d0aa2"/><file name="EmailDatabaseTemplates.php" hash="4431408f51baeefd8da0701efbbffdc4"/><file name="EmailFileTemplates.php" hash="cbd4f3410d52c036d71839f1c3426b16"/><file name="Exporter.php" hash="451fb2d540fcf210c4de0014961c0eb9"/><file name="FtpUpload.php" hash="126b70a963466c38e11184957471e841"/><file name="LocaleCsvFiles.php" hash="37d43b46715f151ba79c09a03fa079f2"/><file name="Product.php" hash="ea2e49c3f46d074dcb9e556158428766"/></dir><file name="Project.php" hash="f333f0da464ca6221f60d99c28476b93"/></dir><file name="Extractor.php" hash="1ba85afc3fdf1078c15a4298b5d0585a"/><file name="Factory.php" hash="433a4237864b60ba71ff3af1f85feff6"/><dir name="Import"><dir name="Project"><file name="Attributes.php" hash="344b90e86067b7fd9999e79f5efa4d58"/><file name="Categories.php" hash="5ba5ca281466221348b849f4799efdd5"/><file name="CmsBlocks.php" hash="d73f4b9c5d4514f17e12d9a81a607dfb"/><file name="CmsPages.php" hash="d4bfbd1be962a7640b155de0b58f8b59"/><file name="CollectSkipped.php" hash="3efd27b15b46b2befdcd01f8e03b17e7"/><file name="EmailTemplates.php" hash="5c8ecad5f60e5577492aea60b8c60120"/><dir name="Exception"><file name="MissingEntity.php" hash="55c8d26331cf9e7090c6fec482cf3b3e"/></dir><file name="Importer.php" hash="2ecac21104fab2e7929932d12cc5b799"/><file name="LocaleCsvFiles.php" hash="065ce0d9b42a39a993ab026c141e409d"/><file name="Product.php" hash="6e392b533680af8b8b5881c8c8f0c61e"/></dir><file name="Project.php" hash="faf305f7407fa07d2a44080b77dfbcd0"/><file name="Queue.php" hash="c998e994059b84a9ed2624c3e3704d59"/><file name="Validator.php" hash="795fa7dd6ad2e826be6daabe5c59c0c7"/></dir><file name="Observer.php" hash="604a1768e35b5d900a72905e6be8135a"/><file name="ProductLoader.php" hash="44b7a3dcf73c9e60118b9d71282ed975"/><dir name="Project"><file name="Category.php" hash="8dd0af28d2889d8eb5ea4aa5fb7b2b5b"/><file name="Cmsblock.php" hash="2b0c4601a0021d5f7d06f98e2b7ab0e2"/><file name="Cmspage.php" hash="3a5642ff3770b3ad09424880b20949c9"/><file name="Csv.php" hash="4fd06e795a31a53ef4fc5106c0ffa28c"/><file name="EmailtemplateDatabase.php" hash="c6978dfc5846d3f470e0b8536178f344"/><file name="EmailtemplateFile.php" hash="c0ba504eaf050ad39acd6e90f47854f3"/><file name="Import.php" hash="a8ef441cd37ee562d8b38755359cd694"/><file name="Product.php" hash="8b5e14407f1449d3df0204274d03320a"/><dir name="Source"><file name="Status.php" hash="6890bab36d251ee47ca2836fbeb41603"/></dir></dir><file name="Project.php" hash="997be271e349bdaa355ed2dd617698b2"/><dir name="Renderer"><dir name="Filesystem"><file name="RelativeToAppDirectory.php" hash="725289dc9ed79898eab27b2ccb5c6d91"/><file name="RelativeToLocaleTemplateDirectory.php" hash="14f6a546f84a48d822179bb353b46351"/></dir><file name="Filesystem.php" hash="5c56c1e04db25584ac6a1ad48c0d4a9d"/></dir><dir name="Resource"><dir name="Catalog"><dir name="Product"><dir name="Attribute"><dir name="Backend"><dir name="Media"><file name="OnlyStoreValues.php" hash="ae4d43376d24cbae4ed19632794f51ba"/></dir></dir></dir><dir name="Option"><file name="Title.php" hash="ee3eabb5995eb327e2de31b248e285be"/><dir name="Type"><file name="Title.php" hash="c49656683099b75ccd6642c61d7a22bc"/></dir></dir></dir></dir><dir name="Csv"><file name="Collection.php" hash="ede1c332dddf9a6ea7bb4b311854cf61"/></dir><dir name="Eav"><dir name="Attribute"><dir name="Label"><file name="Collection.php" hash="6eff56981825b462b78897a1dd0f7248"/></dir><file name="Label.php" hash="65ba1673abc5ed1731d0e911b9b5e4b7"/><dir name="Option"><dir name="Value"><file name="Collection.php" hash="23ebc81f087b31723b175ae46e7eb4e2"/></dir><file name="Value.php" hash="3352674505656df6d51774444ab59fa5"/></dir></dir></dir><dir name="Emailtemplate"><dir name="Filesystem"><file name="Collection.php" hash="a8f0dc8367a2ee12846d89b272037db1"/></dir></dir><dir name="Filesystem"><file name="Collection.php" hash="8b84ee3193ad45484c251336d64cf71c"/></dir><dir name="Project"><dir name="Category"><file name="Collection.php" hash="134968856c66296fe418151a7dfdc8a5"/></dir><file name="Category.php" hash="55d87ff56d171e1daf4f42a2b8808d1b"/><dir name="Cmsblock"><file name="Collection.php" hash="d126952fba4c57de3277ac83bbafe61b"/></dir><file name="Cmsblock.php" hash="05e85b8142a95424ddd45884999a6c6c"/><dir name="Cmspage"><file name="Collection.php" hash="7fd97c6a893d2e365e1035e934f5be5d"/></dir><file name="Cmspage.php" hash="58e59ec888b52973b01b98e0fc19f50f"/><file name="Collection.php" hash="0b068f00639795627c7e2576ca3feaa4"/><dir name="Csv"><file name="Collection.php" hash="0d10dfdedae29b70f1fc2e3b19f160e4"/></dir><file name="Csv.php" hash="f283f1bd37fecb222bedf46d9cde3f18"/><dir name="EmailtemplateDatabase"><file name="Collection.php" hash="e63d7568db40281040ef984326100658"/></dir><file name="EmailtemplateDatabase.php" hash="eb787be577d4341d5324d159f9a66afd"/><dir name="EmailtemplateFile"><file name="Collection.php" hash="8d83aa3abce2e076d387ac3ba3a12cb3"/></dir><file name="EmailtemplateFile.php" hash="43d1baa459bf00fead85fa9e22979502"/><dir name="Import"><file name="Collection.php" hash="7ac0c91738130e32b97e4dc3f7ae6e68"/></dir><file name="Import.php" hash="9d71d42dfc91c16fa83a26ae76b79339"/><dir name="Product"><file name="Collection.php" hash="cafc0c7dbda6f9733a7dbf158a03c88b"/></dir><file name="Product.php" hash="8fbd6ffee43f8094c90d52f97e425d50"/></dir><file name="Project.php" hash="d964e9890f77119ceb343692d98a27d7"/><file name="Setup.php" hash="992b5dbedd9dc6d669ff7a7949c790ab"/></dir><dir name="Source"><file name="StoreViewWithLocale.php" hash="a97b6ef2d0521da72fcad45c7ab8b1df"/></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Salutation.php" hash="1de509321f9050e3f4c30c004e9b0310"/></dir></dir></dir><dir name="Updater"><file name="MediaGalleryValue.php" hash="8c38ccb08dab63701882e4dbf79f0bc7"/></dir><dir name="Xml"><dir name="Import"><dir name="Cms"><file name="Block.php" hash="ee5853195c38dcc699a663bbe70a510e"/><file name="BlockReader.php" hash="014777bc903da0127027952e32ae425a"/></dir></dir></dir><file name=".DS_Store" hash="7c3522d12f27b1bc414fac586a4b971f"/></dir><dir name="controllers"><dir name="Adminhtml"><dir name="Eurotext"><file name="HelpController.php" hash="cf5a275aef3ed8d5b57cecf7e336fc9d"/><dir name="Project"><file name="ExportController.php" hash="63a5912395a6192b84da0b228671a983"/><file name="ImportController.php" hash="4a5237e5957113734a8f0a0b2721b082"/></dir><file name="ProjectController.php" hash="c931338c46fb24ee18f1daf159885bb9"/><file name="StatusController.php" hash="fa4bad31a7259d73eb4e8d63f8a8baad"/><file name=".DS_Store" hash="194577a7e20bdcc7afbb718f502c134c"/></dir><file name=".DS_Store" hash="af0a7d68dfc1505f5fd04c55baff3727"/></dir><file name=".DS_Store" hash="9d6e9b7cea3d170ee9c8cfccccc4ee80"/></dir><dir name="data"><dir name="eurotext_translationmanager_setup"><file name="data-install-3.0.0.php" hash="fa9de480b2d6d32ec1530c51914607d7"/><file name="data-upgrade-1.2.0.4-1.2.1.php" hash="40c403ee7e379d83e3f76ce1d6809b4e"/><file name="data-upgrade-1.2.1-1.2.2.php" hash="d6a7a1c4e525f552cc463393398737e1"/><file name="data-upgrade-3.1.1-3.1.2.php" hash="ea833f0234b35f910623f0434d78e8e9"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="af3f9f6b2b6ed681f4ebe8651ae4ad33"/><file name="config.xml" hash="9fb08fed2c0f439fa4efd65b9eaa55f5"/><file name="jstranslator.xml" hash="96c99f45202c522b98b01e792308954b"/><file name="system.xml" hash="30c104492c31a647fe7d05af8a7ec52a"/></dir><dir name="sql"><dir name="eurotext_translationmanager_setup"><file name="install-3.0.0.php" hash="a83ab8f94563a9cbe221edbfc0ceb500"/><file name="mysql4-install-1.0.0.0.php" hash="cd7bed4f7a7afce245992512c6a1933b"/><file name="mysql4-upgrade-1.0.0.5-1.0.0.6.php" hash="548230adb75f3d7799855fc2eb2f9c4c"/><file name="mysql4-upgrade-1.0.0.7-1.0.0.8.php" hash="4de6534c12eb4a82a948485c9d6b8e86"/><file name="upgrade-1.1.2.1-1.2.0.0.php" hash="ea022950a6af9bbba834537b1b5bedb3"/><file name="upgrade-1.2.0.0-1.2.0.1.php" hash="40e90210f3194928c38b8d47accafb96"/><file name="upgrade-1.2.0.1-1.2.0.2.php" hash="a67c4bcf3cbc13baca9bf827ac733c7a"/><file name="upgrade-1.2.0.2-1.2.0.3.php" hash="1e0a0185fd8d3a464c25cf093e939ea3"/><file name="upgrade-1.2.1-1.2.2.php" hash="dc9228eb14fc43830ed6e606b088b3eb"/><file name="upgrade-1.2.2-2.0.0.php" hash="d398a69e69e749d134a565673eadedb9"/><file name="upgrade-2.0.0-2.0.1.php" hash="abe68877c883a4184d11b753fa00cbf9"/><file name="upgrade-2.0.1-2.0.2.php" hash="31a83ad241332f4f42cccd639ac8d8a1"/><file name="upgrade-2.0.10-3.0.0.php" hash="3c247bf1573b192c431fecf1a97ea41e"/><file name="upgrade-2.0.3-2.0.4.php" hash="808861b1ef6079517feb94ae9afb7bc4"/><file name="upgrade-2.0.4-2.0.5.php" hash="29082ded381bd975bf8e9de9ee1aab74"/><file name="upgrade-2.0.5-2.0.6.php" hash="be2d23c6c0b877db0ac3bfa75a15b3c2"/><file name="upgrade-2.0.6-2.0.7.php" hash="4a789cf110e0e98270e635a7df85706e"/><file name="upgrade-2.0.7-2.0.8.php" hash="64a538428c0ebadcbb942a218814411a"/><file name="upgrade-2.0.8-2.0.9.php" hash="f2fd21608a2b91aeed69a28a1fb22b7a"/><file name="upgrade-2.0.9-2.0.10.php" hash="99d8c357714dfad0c44878a19ced4bab"/><file name="upgrade-3.0.0-3.0.1.php" hash="8a1ba3c8d8ca015c9e47d075ecea63dc"/><file name="upgrade-3.0.1-3.0.2.php" hash="9a6333481ccf99cbc851ae904067d91a"/><file name="upgrade-3.0.2-3.1.1.php" hash="656613ebca52ae1581d41cc2cdf58d83"/><file name="upgrade-3.1.5-3.1.6.php" hash="529cb0c4c7f7f5f3b15e53dcc025c0f7"/><file name="upgrade-3.1.6-3.1.7.php" hash="a3e58f601ca6fbf534bb14d031c19d39"/><file name="upgrade-3.1.7-3.1.8.php" hash="937e0052ee352a2f0fd1f548d65e61ef"/></dir></dir><file name=".DS_Store" hash="a747456783fab7a1190bb4bb3c45424a"/></dir><dir name="Uploader"><dir name="Block"><file name="Abstract.php" hash="8cf19faab951ce77597d5c08f7f1d72d"/><file name="Single.php" hash="98267d16076c3d556fb60d36c4e98252"/></dir><dir name="Helper"><file name="Data.php" hash="c142374acaef347046b43812adf919bf"/><file name="File.php" hash="72ce04aec06d51501c7813b35f3888ed"/></dir><dir name="Model"><dir name="Config"><file name="Abstract.php" hash="ac2ee98d14729d0ac3d7fd01fb72c579"/><file name="Browsebutton.php" hash="bce1ef6db09e535473c085dd6b5f580c"/><file name="Misc.php" hash="e0a89ff017cd74531448f9f295bb327b"/><file name="Uploader.php" hash="41152324c956fbe9cc9473044c139201"/></dir></dir><dir name="etc"><file name="config.xml" hash="a76f635b80aa9f9ad87fba966d560e11"/><file name="jstranslator.xml" hash="5de25b97a70ec60134a47c3c6bc9212a"/></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="layout"><dir name="eurotext"><file name="translationmanager.xml" hash="fe0cacbe5fedd5ac0abccb3009879d1a"/></dir></dir><dir name="template"><dir name="eurotext"><dir name="translationmanager"><dir name="export"><file name="overview.phtml" hash="5005c03af44e03864fb45a82a0954657"/></dir><file name="help.phtml" hash="6af23ed7ce809aec6f871273461649e4"/><dir name="import"><file name="overview.phtml" hash="6c90bdd842e3b03c8697c337b388e798"/></dir><dir name="project"><dir name="email"><file name="note.phtml" hash="f39644edf9dc77c92206961f46dc08b8"/></dir><dir name="products"><file name="bulk_sku.phtml" hash="d150c3b522378c2810947b8f877eccef"/><file name="category_tree.phtml" hash="02d25a4b18772ac2541f7be067ed1c0f"/><file name="script.phtml" hash="44956e903e1f2751da6d6464214b047f"/></dir></dir></dir><dir name="uploader"><dir name="media"><file name="uploader.phtml" hash="8f37a11c24df77615aaaba3e81cebbaa"/></dir></dir></dir></dir></dir></dir></dir></target><target name="magelocale"><dir name="en_US"><file name="Eurotext_TranslationManager.csv" hash="dd91805d1358e4eb64969d321e558f7b"/><file name="Eurotext_Uploader.csv" hash="52a262b495f24074825b07a15080e264"/></dir><dir name="de_DE"><file name="Eurotext_TranslationManager.csv" hash="259290a914e033ac623e8018ad3051fa"/><file name="Eurotext_Uploader.csv" hash="0009959270fc7f3d5256250c97f5b4c8"/></dir></target><target name="mageetc"><dir name="modules"><file name="Eurotext_TranslationManager.xml" hash="0eb43d3e4d41bebb069074d1d9eed7df"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="base"><dir name="default"><dir name="eurotext"><dir name="translationmanager"><dir name="css"><file name="help.css" hash="38e92dee1ed607b981203e315eb26c86"/><file name="project.css" hash="4a959f8858e91c2b1b49e3ca927b9447"/><file name="status.css" hash="893a736b4a043eb5b801d7a639d92d03"/></dir><dir name="images"><file name="btt_suche.png" hash="9b74d62b9840cafb6990352c52a39458"/><file name="cat-minus.png" hash="d092af81ca37c821e13f27cc9bc44378"/><file name="cat-none.png" hash="88805f6b1ed90aa66db3cc6f89c83db0"/><file name="cat-plus.png" hash="16d73e360bebbeb16c4115ceea771b56"/><file name="eurotext_logo.png" hash="87120ee2d376e3195e2e7cd8b9661ba7"/><file name="eurotext_table_head.png" hash="36583e9470155c585304e305133e13ec"/><file name="logo_dixeno.png" hash="dd23f387d0eee8a9494724a470d8742e"/><file name="logo_eurotext.png" hash="7a8627f728f203823fbee1575d223131"/><file name="pager_arrow_left.gif" hash="6e44f608dac8eb8be1d1ebee5a3285aa"/><file name="pager_arrow_left_off.gif" hash="30f5e56195ab3546b36f4016db5254be"/><file name="pager_arrow_right.gif" hash="cc79526156b7e0c8abce61fad3d53f77"/><file name="pager_arrow_right_off.gif" hash="f01b7dad9acf0180b5c62edbd7ea9939"/></dir><dir name="js"><file name="eurotext_project.js" hash="9812165e4e8193a227503583d8423331"/><file name="export.js" hash="78b560ca40a66a6180a4ad8bb7dad933"/><file name="system_config.js" hash="d773e2a2896b917ca4f793da3fb4f9d3"/></dir></dir></dir></dir></dir></dir></target><target name="mage"><dir name="js"><dir name="eurotext"><dir name="uploader"><file name="flow.min.js" hash="a82a557db407b53d5909fa4e1833a596"/><file name="fusty-flow-factory.js" hash="b3f49be0f28be74e8b8bb76496c52bc3"/><file name="fusty-flow.js" hash="302f440908837093fd4e9b6e76ec01e0"/><file name="instance.js" hash="3a4f8bbbb500a1224eba194f93afe437"/></dir></dir></dir></target></contents>
|
30 |
<compatible/>
|
31 |
<dependencies><required><php><min>5.5.0</min><max>8.0.0</max></php></required></dependencies>
|
32 |
</package>
|