diff --git a/.gitignore b/.gitignore index d02e116f39..1ed8223277 100644 --- a/.gitignore +++ b/.gitignore @@ -4,8 +4,6 @@ # Do not ignore ".gitignore" !.gitignore !.tx -.tx/config -.tx/source/* !README.md !composer.json !.scrutinizer.yml @@ -22,3 +20,8 @@ system/drivers/* !system/modules system/modules/* !system/modules/isotope* + +# Gulp and node modules +!gulpfile.js +!package.json +node_modules/ diff --git a/.travis.yml b/.travis.yml index f9a2d00877..f483c8a171 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,9 @@ language: php php: - 5.4 - 5.5 + - 5.6 + - 7.0 + - 7.1 env: - CONTAO_VERSION="3.5.*" @@ -10,14 +13,12 @@ sudo: false install: - mysql -e 'CREATE DATABASE isotope_core_testsuite;' - - composer self-update - - composer update + - composer update --ignore-platform-reqs - composer create-project -s dev contao/core:${CONTAO_VERSION} contao - cp -R system/modules/isotope contao/system/modules/isotope - cp -R system/modules/isotope_reports contao/system/modules/isotope_reports - cp -R system/modules/isotope_rules contao/system/modules/isotope_rules - cp -R vendor/terminal42/contao-conditionalselectmenu contao/system/modules/conditionalselectmenu - - cp -R vendor/terminal42/contao-namespace-class-loader contao/system/modules/_autoload - cp -R vendor/terminal42/dcawizard contao/system/modules/dcawizard - cp -R vendor/codefog/contao-haste contao/system/modules/haste - cp -R vendor/menatwork/contao-multicolumnwizard contao/system/modules/multicolumnwizard @@ -29,5 +30,6 @@ install: - cp test/fixtures/travis/langconfig.php ../../config/langconfig.php - cp test/fixtures/travis/localconfig.php ../../config/localconfig.php - cp test/fixtures/travis/pathconfig.php ../../config/pathconfig.php + - cd test -script: phpunit --configuration test/phpunit.xml --bootstrap test/bootstrap.php ./test +script: phpunit diff --git a/.tx/config b/.tx/config new file mode 100644 index 0000000000..bdb6e6bd82 --- /dev/null +++ b/.tx/config @@ -0,0 +1,223 @@ +[main] +host = https://www.transifex.com +type = XLIFF + +[isotope.v2_4-isotope-default] +source_file = system/modules/isotope/languages/en/default.xlf +source_lang = en +file_filter = system/modules/isotope/languages//default.xlf + +[isotope.v2_4-isotope-exception] +source_file = system/modules/isotope/languages/en/exception.xlf +source_lang = en +file_filter = system/modules/isotope/languages//exception.xlf + +[isotope.v2_4-isotope-explain] +source_file = system/modules/isotope/languages/en/explain.xlf +source_lang = en +file_filter = system/modules/isotope/languages//explain.xlf + +[isotope.v2_4-isotope-iso_upgrade] +source_file = system/modules/isotope/languages/en/iso_upgrade.xlf +source_lang = en +file_filter = system/modules/isotope/languages//iso_upgrade.xlf + +[isotope.v2_4-isotope-modules] +source_file = system/modules/isotope/languages/en/modules.xlf +source_lang = en +file_filter = system/modules/isotope/languages//modules.xlf + +[isotope.v2_4-isotope-tl_iso_address] +source_file = system/modules/isotope/languages/en/tl_iso_address.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_address.xlf + +[isotope.v2_4-isotope-tl_iso_attribute] +source_file = system/modules/isotope/languages/en/tl_iso_attribute.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_attribute.xlf + +[isotope.v2_4-isotope-tl_iso_attribute_option] +source_file = system/modules/isotope/languages/en/tl_iso_attribute_option.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_attribute_option.xlf + +[isotope.v2_4-isotope-tl_iso_baseprice] +source_file = system/modules/isotope/languages/en/tl_iso_baseprice.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_baseprice.xlf + +[isotope.v2_4-isotope-tl_iso_config] +source_file = system/modules/isotope/languages/en/tl_iso_config.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_config.xlf + +[isotope.v2_4-isotope-tl_iso_document] +source_file = system/modules/isotope/languages/en/tl_iso_document.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_document.xlf + +[isotope.v2_4-isotope-tl_iso_download] +source_file = system/modules/isotope/languages/en/tl_iso_download.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_download.xlf + +[isotope.v2_4-isotope-tl_iso_gallery] +source_file = system/modules/isotope/languages/en/tl_iso_gallery.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_gallery.xlf + +[isotope.v2_4-isotope-tl_iso_group] +source_file = system/modules/isotope/languages/en/tl_iso_group.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_group.xlf + +[isotope.v2_4-isotope-tl_iso_integrity] +source_file = system/modules/isotope/languages/en/tl_iso_integrity.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_integrity.xlf + +[isotope.v2_4-isotope-tl_iso_label] +source_file = system/modules/isotope/languages/en/tl_iso_label.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_label.xlf + +[isotope.v2_4-isotope-tl_iso_orderstatus] +source_file = system/modules/isotope/languages/en/tl_iso_orderstatus.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_orderstatus.xlf + +[isotope.v2_4-isotope-tl_iso_payment] +source_file = system/modules/isotope/languages/en/tl_iso_payment.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_payment.xlf + +[isotope.v2_4-isotope-tl_iso_product] +source_file = system/modules/isotope/languages/en/tl_iso_product.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_product.xlf + +[isotope.v2_4-isotope-tl_iso_product_category] +source_file = system/modules/isotope/languages/en/tl_iso_product_category.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_product_category.xlf + +[isotope.v2_4-isotope-tl_iso_product_collection] +source_file = system/modules/isotope/languages/en/tl_iso_product_collection.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_product_collection.xlf + +[isotope.v2_4-isotope-tl_iso_product_price] +source_file = system/modules/isotope/languages/en/tl_iso_product_price.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_product_price.xlf + +[isotope.v2_4-isotope-tl_iso_producttype] +source_file = system/modules/isotope/languages/en/tl_iso_producttype.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_producttype.xlf + +[isotope.v2_4-isotope-tl_iso_related_category] +source_file = system/modules/isotope/languages/en/tl_iso_related_category.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_related_category.xlf + +[isotope.v2_4-isotope-tl_iso_related_product] +source_file = system/modules/isotope/languages/en/tl_iso_related_product.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_related_product.xlf + +[isotope.v2_4-isotope-tl_iso_shipping] +source_file = system/modules/isotope/languages/en/tl_iso_shipping.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_shipping.xlf + +[isotope.v2_4-isotope-tl_iso_tax_class] +source_file = system/modules/isotope/languages/en/tl_iso_tax_class.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_tax_class.xlf + +[isotope.v2_4-isotope-tl_iso_tax_rate] +source_file = system/modules/isotope/languages/en/tl_iso_tax_rate.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_iso_tax_rate.xlf + +[isotope.v2_4-isotope-tl_maintenance] +source_file = system/modules/isotope/languages/en/tl_maintenance.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_maintenance.xlf + +[isotope.v2_4-isotope-tl_member] +source_file = system/modules/isotope/languages/en/tl_member.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_member.xlf + +[isotope.v2_4-isotope-tl_module] +source_file = system/modules/isotope/languages/en/tl_module.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_module.xlf + +[isotope.v2_4-isotope-tl_nc_notification] +source_file = system/modules/isotope/languages/en/tl_nc_notification.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_nc_notification.xlf + +[isotope.v2_4-isotope-tl_page] +source_file = system/modules/isotope/languages/en/tl_page.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_page.xlf + +[isotope.v2_4-isotope-tl_settings] +source_file = system/modules/isotope/languages/en/tl_settings.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_settings.xlf + +[isotope.v2_4-isotope-tl_user] +source_file = system/modules/isotope/languages/en/tl_user.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_user.xlf + +[isotope.v2_4-isotope-tl_user_group] +source_file = system/modules/isotope/languages/en/tl_user_group.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tl_user_group.xlf + +[isotope.v2_4-isotope-tokens] +source_file = system/modules/isotope/languages/en/tokens.xlf +source_lang = en +file_filter = system/modules/isotope/languages//tokens.xlf + +[isotope.v2_4-isotope_reports-default] +source_file = system/modules/isotope_reports/languages/en/default.xlf +source_lang = en +file_filter = system/modules/isotope_reports/languages//default.xlf + +[isotope.v2_4-isotope_reports-modules] +source_file = system/modules/isotope_reports/languages/en/modules.xlf +source_lang = en +file_filter = system/modules/isotope_reports/languages//modules.xlf + +[isotope.v2_4-isotope_reports-tl_iso_orderstatus] +source_file = system/modules/isotope_reports/languages/en/tl_iso_orderstatus.xlf +source_lang = en +file_filter = system/modules/isotope_reports/languages//tl_iso_orderstatus.xlf + +[isotope.v2_4-isotope_reports-tl_user] +source_file = system/modules/isotope_reports/languages/en/tl_user.xlf +source_lang = en +file_filter = system/modules/isotope_reports/languages//tl_user.xlf + +[isotope.v2_4-isotope_rules-default] +source_file = system/modules/isotope_rules/languages/en/default.xlf +source_lang = en +file_filter = system/modules/isotope_rules/languages//default.xlf + +[isotope.v2_4-isotope_rules-modules] +source_file = system/modules/isotope_rules/languages/en/modules.xlf +source_lang = en +file_filter = system/modules/isotope_rules/languages//modules.xlf + +[isotope.v2_4-isotope_rules-tl_iso_rule] +source_file = system/modules/isotope_rules/languages/en/tl_iso_rule.xlf +source_lang = en +file_filter = system/modules/isotope_rules/languages//tl_iso_rule.xlf diff --git a/.tx/transifex b/.tx/transifex deleted file mode 100755 index 9c815caad1..0000000000 --- a/.tx/transifex +++ /dev/null @@ -1,673 +0,0 @@ -#!/usr/bin/env php - - * @copyright Leo Feyer 2011-2012 - */ -class Transifex -{ - - /** - * Dispatch the request - */ - public function run() - { - global $argv; - - if (!isset($argv[1]) || !in_array($argv[1], get_class_methods($this))) - { - $this->help(); - } - else - { - $this->$argv[1](); - } - } - - - /** - * Show the help text - */ - protected function help() - { - echo "\n"; - echo " \033[1;33mPrepare the Contao language files for Transifex\033[0m\n"; - echo " Usage: .tx/transifex [] []\n"; - echo "\n"; - echo " \033[1;33m\033[0m\n"; - echo " \033[0;36msetup\033[0m Create the source translation files\n"; - echo " \033[0;36mimport\033[0m Convert the Transifex files into Contao files\n"; - echo " \033[0;36mexport\033[0m Convert the Contao files into Transifex files\n"; - echo " \033[0;36mpush\033[0m Export and push latest source files\n"; - echo " \033[0;36mpull\033[0m Pull and import all translations\n"; - echo " \033[0;36msync\033[0m Sync with transifex (push & pull)\n"; - echo " \033[0;36mhelp\033[0m Show this help text\n"; - echo "\n"; - echo " \033[1;33m\033[0m can be \033[0;36mdevelop\033[0m or \033[0;36mmaster\033[0m\n"; - echo " \033[1;33m\033[0m can be a comma-separated list of languages\n"; - echo "\n"; - } - - - /** - * Setup the .xlf and config files for the Transifex client - * - * @param boolean $quiet If true, do not output any status messages - */ - protected function setup($quiet=false) - { - global $argv; - static $done = false; - - if ($done) { - return; - } - - $done = true; - - if (!in_array($argv[2], array('develop', 'master'))) - { - echo "\n"; - echo " \033[1;31m must be develop or master\n"; - $this->help(); - exit; - } - - // Make sure "source" directory exists - if (!is_dir(TL_ROOT . '/.tx/source')) - { - mkdir(TL_ROOT . '/.tx/source'); - } - - // Purge the target folder - $this->rrdir(TL_ROOT . '/.tx/source/en'); - mkdir(TL_ROOT . '/.tx/source/en'); - - // Create the .tx/config file - $fh = fopen(TL_ROOT . '/.tx/config', 'wb'); - fputs($fh, "[main]\nhost = https://www.transifex.com\ntype = XLIFF\n"); - - // Scan the modules folder - foreach ($this->scandir(TL_ROOT . '/system/modules') as $module) - { - if (!is_dir(TL_ROOT . '/system/modules/' . $module . '/languages/en')) - { - continue; - } - - // Create the subdirectory - if (!is_dir(TL_ROOT . '/.tx/source/en/' . $module)) - { - mkdir(TL_ROOT . '/.tx/source/en/' . $module); - } - - // Scan the language files - foreach ($this->scandir(TL_ROOT . '/system/modules/' . $module . '/languages/en') as $file) - { - if (substr($file, -4) != '.php') - { - continue; - } - - // Reset the TL_LANG array before the include - $GLOBALS['TL_LANG'] = array(); - include TL_ROOT . '/system/modules/' . $module . '/languages/en/' . $file; - $file = basename($file, '.php'); - - // Create the XML document - $xml = new DOMDocument('1.0', 'UTF-8'); - $xml->formatOutput = true; - - $xliff = $xml->createElement('xliff'); - $xliff->setAttribute('version', '1.1'); - $xml->appendChild($xliff); - - $xfile = $xml->createElement('file'); - $xfile->setAttribute('datatype', 'php'); - $xfile->setAttribute('original', 'system/modules/' . $module . '/languages/en/' . $file . '.php'); - $xfile->setAttribute('source-language', 'en'); - $xliff->appendChild($xfile); - - $xbody = $xml->createElement('body'); - $xfile->appendChild($xbody); - - // Add the labels - foreach ($GLOBALS['TL_LANG'] as $category=>$labels) - { - foreach ($labels as $key=>$label) - { - if (is_array($label)) // headline and explanation - { - foreach ($label as $i=>$text) - { - if (is_array($text)) // multiple explanations - { - foreach ($text as $j=>$subtext) - { - $trans = $xml->createElement('trans-unit'); - $trans->setAttribute('id', "$category.$key.$i.$j"); - $xbody->appendChild($trans); - - $source = $xml->createElement('source'); - $source->appendChild($xml->createTextNode($subtext)); - $trans->appendChild($source); - } - } - else - { - $trans = $xml->createElement('trans-unit'); - $trans->setAttribute('id', "$category.$key.$i"); - $xbody->appendChild($trans); - - $source = $xml->createElement('source'); - $source->appendChild($xml->createTextNode($text)); - $trans->appendChild($source); - } - } - } - else - { - $trans = $xml->createElement('trans-unit'); - $trans->setAttribute('id', "$category.$key"); - $xbody->appendChild($trans); - - $source = $xml->createElement('source'); - $source->appendChild($xml->createTextNode($label)); - $trans->appendChild($source); - } - } - } - - // Save the XML document - $xml->save(TL_ROOT . '/.tx/source/en/' . $module . '/' . $file . '.xlf'); - - // Confirm - if (!$quiet) - { - echo " Created .tx/source/en/$module/$file.xlf\n"; - } - - // Add an entry to the .tx/config file - fputs($fh, "\n[isotope.{$argv[2]}-$module-$file]"); - fputs($fh, "\nsource_file = .tx/source/en/$module/$file.xlf"); - fputs($fh, "\nsource_lang = en"); - fputs($fh, "\nfile_filter = .tx/source//$module/$file.xlf\n"); - } - } - - // Close the .tx/config file - fclose($fh); - } - - - /** - * Create the Contao language files from the Transifex .xlf files - */ - protected function import() - { - $languages = $this->languages(); - - if (empty($languages)) - { - foreach ($this->scandir(TL_ROOT . '/.tx/source') as $language) - { - if ($language == 'en') { - continue; - } - - $languages[] = $language; - } - } - - // Process the selected languages - foreach (array_unique($languages) as $language) - { - if (!is_dir(TL_ROOT . '/.tx/source/' . $language)) { - echo " Source files for \"$language\" not found\n"; - continue; - } - - foreach ($this->scandir(TL_ROOT . '/.tx/source/' . $language) as $module) - { - // Create the language folder - if (!is_dir(TL_ROOT . '/system/modules/' . $module . '/languages/' . $language)) - { - mkdir(TL_ROOT . '/system/modules/' . $module . '/languages/' . $language); - } - - foreach ($this->scandir(TL_ROOT . '/.tx/source/' . $language . '/' . $module) as $file) - { - if (substr($file, -4) != '.xlf') - { - continue; - } - - // Read the .xlf file - $xml = new DOMDocument(); - $xml->preserveWhiteSpace = false; - $xml->load(TL_ROOT . '/.tx/source/' . $language . '/' . $module . '/' . $file); - $units = $xml->getElementsByTagName('trans-unit'); - $file = basename($file, '.xlf'); - - // Create the .php file - $fh = fopen(TL_ROOT . '/system/modules/' . $module . '/languages/' . $language . '/' . $file . '.php', 'wb'); - - // Add a short header with links to transifex.com - fputs($fh, "firstChild : $unit->firstChild->nextSibling; - - if ($node === null) - { - continue; - } - - $value = str_replace("\n", '\n', $node->nodeValue); - - // Quote the value depending on whether there are line breaks - if (strpos($value, '\n') !== false) - { - $value = '"' . str_replace('"', '\\"', $value) . '"'; - } - else - { - $value = "'" . str_replace("'", "\\'", $value) . "'"; - } - - // Some closing tags oddly have an extra space in - if (strpos($value, '') !== false) - { - $value = str_replace('', '', $value); - } - - $chunks = explode('.', $unit->getAttribute('id')); - - switch (count($chunks)) - { - case 2: - fputs($fh, "\$GLOBALS['TL_LANG']['" . $chunks[0] . "'][" . $this->quote($chunks[1]) . "] = $value;\n"); - break; - - case 3: - fputs($fh, "\$GLOBALS['TL_LANG']['" . $chunks[0] . "'][" . $this->quote($chunks[1]) . "][" . $this->quote($chunks[2]) . "] = $value;\n"); - break; - - case 4: - fputs($fh, "\$GLOBALS['TL_LANG']['" . $chunks[0] . "'][" . $this->quote($chunks[1]) . "][" . $this->quote($chunks[2]) . "][" . $this->quote($chunks[3]) . "] = $value;\n"); - break; - - default: - throw new OutOfBoundsException('Can\'t handle more than 4 keys!'); - } - } - - // Close the file - fclose($fh); - echo " Created system/modules/$module/languages/$language/$file.php\n"; - } - } - } - } - - - /** - * Export and push an existing translation - */ - protected function export() - { - $languages = $this->languages(); - - // Determine which languages to export - if (empty($languages)) - { - foreach ($this->scandir(TL_ROOT . '/system/modules') as $module) - { - if (!is_dir(TL_ROOT . '/system/modules/' . $module . '/languages')) - { - continue; - } - - foreach ($this->scandir(TL_ROOT . '/system/modules/' . $module . '/languages') as $language) - { - if ($language == 'en') { - continue; - } - - $languages[] = $language; - } - } - } - - $this->setup(true); - - foreach (array_unique($languages) as $language) - { - // Purge the target folder - $this->rrdir(TL_ROOT . '/.tx/source/' . $language); - mkdir(TL_ROOT . '/.tx/source/' . $language); - - // Scan the modules folder - foreach ($this->scandir(TL_ROOT . '/system/modules') as $module) - { - // Skip if the source language does not exist - if (!is_dir(TL_ROOT . '/system/modules/' . $module . '/languages/en')) - { - continue; - } - - // Create the subdirectory - if (!is_dir(TL_ROOT . '/.tx/source/' . $language . '/' . $module)) - { - mkdir(TL_ROOT . '/.tx/source/' . $language . '/' . $module); - } - - // Scan the source language files - foreach ($this->scandir(TL_ROOT . '/system/modules/' . $module . '/languages/en') as $file) - { - if (substr($file, -4) != '.php') - { - continue; - } - - // The file has not been translated yet - if (!file_exists(TL_ROOT . '/system/modules/' . $module . '/languages/' . $language . '/' . $file)) - { - continue; - } - - $file = basename($file, '.php'); - - // Read the source file - $english = new DOMDocument(); - $english->preserveWhiteSpace = false; - $english->load(TL_ROOT . '/.tx/source/en/' . $module . '/' . $file . '.xlf'); - - // Prepare for XPath - $xpath = new DOMXPath($english); - - // Create the XML document - $xml = new DOMDocument('1.0', 'UTF-8'); - $xml->formatOutput = true; - - $xliff = $xml->createElement('xliff'); - $xliff->setAttribute('version', '1.1'); - $xml->appendChild($xliff); - - $xfile = $xml->createElement('file'); - $xfile->setAttribute('datatype', 'php'); - $xfile->setAttribute('original', 'system/modules/' . $module . '/languages/en/' . $file . '.php'); - $xfile->setAttribute('source-language', 'en'); - $xliff->appendChild($xfile); - - $xbody = $xml->createElement('body'); - $xfile->appendChild($xbody); - - // Reset the TL_LANG array before the include - $GLOBALS['TL_LANG'] = array(); - include TL_ROOT . '/system/modules/' . $module . '/languages/' . $language . '/' . $file . '.php'; - - // Add the labels - foreach ($GLOBALS['TL_LANG'] as $category=>$labels) - { - foreach ($labels as $key=>$label) - { - if (is_array($label)) // headline and explanation - { - foreach ($label as $i=>$text) - { - if (is_array($text)) // multiple explanations - { - foreach ($text as $j=>$subtext) - { - $id = "$category.$key.$i.$j"; - - // Check whether the string exists in the source translation - if (($original = $xpath->query("//*[@id='$id']")->item(0)) !== null) - { - $trans = $xml->createElement('trans-unit'); - $trans->setAttribute('id', $id); - $xbody->appendChild($trans); - - $source = $xml->createElement('source'); - $source->appendChild($xml->createTextNode($original->nodeValue)); - $trans->appendChild($source); - - $target = $xml->createElement('target'); - $target->appendChild($xml->createTextNode($subtext)); - $trans->appendChild($target); - } - } - } - else - { - $id = "$category.$key.$i"; - - // Check whether the string exists in the source translation - if (($original = $xpath->query("//*[@id='$id']")->item(0)) !== null) - { - $trans = $xml->createElement('trans-unit'); - $trans->setAttribute('id', $id); - $xbody->appendChild($trans); - - $source = $xml->createElement('source'); - $source->appendChild($xml->createTextNode($original->nodeValue)); - $trans->appendChild($source); - - $target = $xml->createElement('target'); - $target->appendChild($xml->createTextNode($text)); - $trans->appendChild($target); - } - } - } - } - else - { - $id = "$category.$key"; - - // Check whether the string exists in the source translation - if (($original = $xpath->query("//*[@id='$id']")->item(0)) !== null) - { - $trans = $xml->createElement('trans-unit'); - $trans->setAttribute('id', $id); - $xbody->appendChild($trans); - - $source = $xml->createElement('source'); - $source->appendChild($xml->createTextNode($original->nodeValue)); - $trans->appendChild($source); - - $target = $xml->createElement('target'); - $target->appendChild($xml->createTextNode($label)); - $trans->appendChild($target); - } - } - } - } - - // Save the XML document - $xml->save(TL_ROOT . '/.tx/source/' . $language . '/' . $module . '/' . $file . '.xlf'); - echo " Created .tx/source/{$language}/$module/$file.xlf\n"; - } - } - } - } - - /** - * Push latest source files to Transifex - */ - protected function push() - { - $this->setup(true); - $languages = $this->languages(); - - if (empty($languages)) { - passthru('tx push --skip --source --language=en'); - return; - } - - // Push source language to transifex.com - foreach ($languages as $language) { - passthru('tx push --skip --translations --language=' . $language); - } - } - - /** - * Pull and import translations - */ - protected function pull() - { - $this->rrdir(TL_ROOT . '/.tx/source'); - $this->setup(true); - - // Pull translations from transifex.com - $languages = $this->languages(); - if (empty($languages)) { - passthru('tx pull --skip --all'); - } else { - passthru('tx pull --skip --language=' . implode(',', $languages)); - } - - $this->import(); - } - - /** - * Sync with transifex (push & pull) - */ - protected function sync() - { - $this->push(); - $this->pull(); - } - - /** - * Get languages from console parameters - * @return array - */ - protected function languages() - { - global $argv; - $languages = array(); - - // Determine which languages to export - if (isset($argv[3]) || (isset($argv[2]) && !in_array($argv[2], array('develop', 'master')))) - { - $languages = explode(',', ($argv[3] ?: $argv[2])); - } - - return $languages; - } - - - /** - * Return the contents of a directory without "." and ".." - * - * @param string $dir The directory path - * - * @return array The directory content - */ - protected function scandir($dir) - { - $return = array(); - - foreach (scandir($dir) as $file) - { - if ($file != '.' && $file != '..' && $file != '.DS_Store') - { - $return[] = $file; - } - } - - return $return; - } - - - /** - * Quote a key if it is not numeric - * - * @param string $key The string representation of the key - * - * @return mixed The quoted string or numeric integer - */ - protected function quote($key) - { - if ($key === '0') - { - return 0; - } - elseif (is_numeric($key)) - { - return intval($key); - } - else - { - return "'$key'"; - } - } - - - /** - * Recursively remove a directory - * - * @param string $dir The directory path - */ - protected function rrdir($dir) - { - if (!is_dir($dir)) - { - return; - } - - foreach ($this->scandir($dir) as $file) - { - if (is_dir("$dir/$file")) - { - $this->rrdir("$dir/$file"); - } - else - { - unlink("$dir/$file"); - } - } - - rmdir($dir); - } -} - -$objTransifex = new Transifex(); -$objTransifex->run(); diff --git a/composer.json b/composer.json index a28f6f9472..c163ced73e 100644 --- a/composer.json +++ b/composer.json @@ -15,20 +15,28 @@ } ], "require":{ - "php":">=5.3.2", - "contao/core-bundle":"^3.5.2 || ~4.1", - "contao-community-alliance/composer-plugin":"~2.4 || ~3.0", - "terminal42/contao-conditionalselectmenu":"~3.0", - "terminal42/dcawizard":"~2.3", - "codefog/contao-haste":"~4.8", + "php": "~5.4 || ~7.0", + "contao/core-bundle": "^3.5.2 || ~4.1", + "contao-community-alliance/composer-plugin": "~2.4 || ~3.0", + "terminal42/contao-conditionalselectmenu":"^3.0.3", + "terminal42/dcawizard": "~2.3", + "codefog/contao-haste": "~4.15", "menatwork/contao-multicolumnwizard": "~3.2", - "terminal42/contao-tablelookupwizard":"~3.2", - "terminal42/notification_center":"~1.0", - "terminal42/dc_multilingual":"~2.0" + "terminal42/contao-tablelookupwizard": "~3.2", + "terminal42/notification_center": "~1.0", + "terminal42/dc_multilingual": "~2.0", + "guzzlehttp/guzzle": "~6.0" + }, + "require-dev": { + "discordier/httprequestextended": "~1.1", + "contao/manager-plugin": "~1.0" }, "replace": { "contao-legacy/isotope": "self.version" }, + "suggest": { + "terminal42/contao-fineuploader": "For file uploads in frontend using FineUploader" + }, "autoload": { "psr-0": { "Isotope\\": [ @@ -44,10 +52,16 @@ "system/modules/isotope/drivers/" ] }, + "autoload-dev": { + "psr-0": { + "Isotope\\Test\\": "system/modules/isotope/test/tests" + } + }, "extra":{ "branch-alias": { - "dev-master": "2.2.x-dev", - "dev-develop": "2.3.x-dev", + "dev-master": "2.3.x-dev", + "dev-develop": "2.5.x-dev", + "dev-release/2.4.0": "2.4.x-dev", "dev-support/2.1": "2.1.x-dev" }, "contao": { @@ -59,8 +73,7 @@ "runonce": [ "system/modules/isotope/config/upgrade.php" ] - } - }, - "prefer-stable": true, - "minimum-stability": "dev" + }, + "contao-manager-plugin": "Isotope\\ContaoManager\\Plugin" + } } diff --git a/gulpfile.js b/gulpfile.js new file mode 100644 index 0000000000..0bebbcb029 --- /dev/null +++ b/gulpfile.js @@ -0,0 +1,44 @@ +'use strict'; + +const gulp = require('gulp'); +const rename = require('gulp-rename'); +const gutil = require('gulp-util'); +const uglify = require('gulp-uglify'); +const cleanCSS = require('gulp-clean-css'); + +const production = !!gutil.env.prod; + +// Configuration +const scripts = [ + 'system/modules/isotope/assets/js/*.js', + '!system/modules/isotope/assets/js/*.min.js' +]; +const styles = [ + 'system/modules/isotope/assets/css/*.css', + '!system/modules/isotope/assets/css/*.min.css', + 'system/modules/isotope_reports/assets/*.css', + '!system/modules/isotope_reports/assets/*.min.css' +]; + +// Build scripts +gulp.task('scripts', function () { + return gulp.src(scripts, {base: './'}) + .pipe(production ? uglify() : gutil.noop()) + .pipe(rename(function (path) { + path.extname = '.min' + path.extname; + })) + .pipe(gulp.dest('./')); +}); + +// Build styles +gulp.task('styles', function () { + return gulp.src(styles, {base: './'}) + .pipe(production ? cleanCSS({'restructuring': false, 'processImport': false}) : gutil.noop()) + .pipe(rename(function (path) { + path.extname = '.min' + path.extname; + })) + .pipe(gulp.dest('./')); +}); + +// Build by default +gulp.task('default', ['styles', 'scripts']); \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000000..cbf45a95a9 --- /dev/null +++ b/package.json @@ -0,0 +1,9 @@ +{ + "dependencies": { + "gulp": "^3.9.1", + "gulp-clean-css": "^2.0.11", + "gulp-rename": "^1.2.2", + "gulp-uglify": "^1.5.3", + "gulp-util": "^3.0.7" + } +} \ No newline at end of file diff --git a/system/modules/isotope/assets/css/backend-svg.css b/system/modules/isotope/assets/css/backend-svg.css new file mode 100644 index 0000000000..2b6de982a8 --- /dev/null +++ b/system/modules/isotope/assets/css/backend-svg.css @@ -0,0 +1,23 @@ +.header_iso_copy { + background-image:url(../../../../themes/flexible/icons/back.svg); +} + +.iso_be_overview #main h1:first-child { + display: none; +} + +.tl_iso_category_sorting { + padding:10px 0 0 8px; +} + +.be_iso_introduction { + margin-top: 18px; +} + +.be_iso_introduction h2 { + margin: 1em 0; +} + +.iso_operations { + width: 114px; +} \ No newline at end of file diff --git a/system/modules/isotope/assets/css/backend-svg.min.css b/system/modules/isotope/assets/css/backend-svg.min.css new file mode 100644 index 0000000000..4bf1aeac59 --- /dev/null +++ b/system/modules/isotope/assets/css/backend-svg.min.css @@ -0,0 +1 @@ +.header_iso_copy{background-image:url(../../../../themes/flexible/icons/back.svg)}.iso_be_overview #main h1:first-child{display:none}.tl_iso_category_sorting{padding:10px 0 0 8px}.be_iso_introduction{margin-top:18px}.be_iso_introduction h2{margin:1em 0}.iso_operations{width:114px} \ No newline at end of file diff --git a/system/modules/isotope/assets/css/backend.css b/system/modules/isotope/assets/css/backend.css index b25927e10d..3f727b25a6 100644 --- a/system/modules/isotope/assets/css/backend.css +++ b/system/modules/isotope/assets/css/backend.css @@ -1,17 +1,8 @@ -/** - * Isotope eCommerce for Contao Open Source CMS - * - * Copyright (C) 2009-2012 Isotope eCommerce Workgroup - * - * @package Isotope - * @link http://www.isotopeecommerce.com - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL - * - * @author Andreas Schempp - * @author Fred Bliss - * @author Kamil Kuzminski - */ +#tl_navigation .tl_level_1_group .group-isotope { + background: url(../images/module.svg) 8px center no-repeat; + background-size: 16px 16px; +} .header_import_assets { @@ -45,6 +36,10 @@ background-repeat:no-repeat; } +.tl_iso_category_sorting { + padding:3px 0 0 8px; +} + body.popup .header_back { display: none; } diff --git a/system/modules/isotope/assets/css/backend.min.css b/system/modules/isotope/assets/css/backend.min.css index c5c9f72bb9..85c9f95e4e 100644 --- a/system/modules/isotope/assets/css/backend.min.css +++ b/system/modules/isotope/assets/css/backend.min.css @@ -1 +1 @@ -.header_import_assets{padding:2px 0 3px 20px;background-image:url("../images/image--plus.png");background-position:left center;background-repeat:no-repeat}.header_import_mail{padding:2px 0 3px 20px;background-image:url("../images/inbox-download.png");background-position:left center;background-repeat:no-repeat}.header_iso_copy{background-image:url(../../../../themes/default/images/copy.gif);background-position:left center;background-repeat:no-repeat;padding:2px 0 3px 20px}.header_iso_groups{padding:2px 0 3px 20px;background-image:url("../images/folders.png");background-position:left center;background-repeat:no-repeat}body.popup .header_back{display:none}.tl_mediamanager th,.tl_mediamanager td{padding:2px 10px 0 0}.tl_mediamanager td.col_0{text-align:center;vertical-align:middle}.tl_mediamanager input.tl_text_2{width:220px}.tl_mediamanager textarea{height:40px;width:250px}.tl_mediamanager .radio_container span{display:block}.tl_mediamanager img{position:relative;top:1px}.tl_mediamanager .upload_container{margin-top:8px}.tl_mediamanager .qq-hide{display:none}.tl_mediamanager .qq-upload-drop-area{width:700px;padding:56px 0;margin-bottom:12px;text-align:center;border:3px dashed #dbdbdb;border-left:0;border-right:0;background-color:#f7f7f7;width:100%;position:relative;top:0;left:0;z-index:2}.tl_mediamanager .qq-upload-drop-area span{font-size:16px;color:grey}.tl_mediamanager .qq-upload-button{padding:3px;margin:-3px}.tl_mediamanager .qq-upload-button .tl_submit{display:inline-block;font-family:"Trebuchet MS",Verdana,sans-serif;font-size:12px}.tl_mediamanager .qq-upload-button:focus .tl_submit,.tl_mediamanager .qq-upload-button:hover .tl_submit{box-shadow:0 0 3px #aaa}.tl_mediamanager .qq-edit-filename{display:none}.tl_mediamanager .qq-upload-size{color:#b3b3b3}.tl_mediamanager .qq-upload-list{margin:8px 0 8px 16px}.tl_mediamanager .qq-upload-list li{line-height:14px;list-style-type:square}.tl_mediamanager .qq-upload-success{color:#8ab858}.tl_mediamanager .qq-upload-fail{color:#c55}#ctrl_attributes tr:hover td,#ctrl_variant_attributes tr:hover td,#ctrl_address_fields tr:hover td{background-color:#ebfdd7}table.multicolumnwizard{max-width:663px}table.multicolumnwizard .operations{white-space:nowrap}.mod_iso_orderdetails .info_container{float:left;width:200px;border:1px dotted #ccc;padding:10px;margin:0 10px 10px 0}.mod_iso_orderdetails .info_container h3{margin-top:0;margin-bottom:5px}.mod_iso_orderdetails table{margin-top:20px;border-top:1px dotted #ccc;width:100%}.mod_iso_orderdetails tbody td{padding:5px;border-bottom:1px dotted #ccc;vertical-align:top}.mod_iso_orderdetails ul{margin:0;padding:0;padding-left:10px}.mod_iso_orderdetails li{margin-left:10px;padding:0;list-style-type:disc}.mod_iso_orderdetails .price{text-align:right}.mod_iso_orderdetails tfoot td{text-align:right;padding:5px 5px 0 5px}.w50h{height:auto}.hide_sort_hint .sort_hint{display:none}.iso_filter{line-height:28px}.iso_filter .tl_submit.active{border:1px solid #b8b8b8;background:#eee;background-image:-moz-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:-webkit-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:-o-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:-ms-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:linear-gradient(bottom,#ccc 0,#ffd 60%)}.iso_filter .styled_select{margin-top:4px}.iso_listing_container th.col_images{font-size:0;width:60px}.iso_listing_container td.col_images{height:50px;text-align:center}.iso_listing_container td.col_images img{float:none}.tl_listing_container .col_order_status{padding:0}.tl_listing_container .col_order_status span{display:block;padding:2px 5px 3px;border-radius:2px}.iso_operations{width:110px;white-space:normal}.iso_operations a{display:inline-block;margin-bottom:4px}.tl_productdata .tl_file{min-height:36px}.tl_productdata .tl_file .tl_left a,.product_tree .tl_file .tl_left a{float:left;margin-top:10px}.tl_productdata .tl_file .tl_left a.tl_tip,.product_tree .tl_file .tl_left a.tl_tip{float:none}.tl_productdata .tl_file .tl_right,.product_tree .tl_file .tl_right{height:auto;text-align:right}.tl_productdata label,.tl_productdata .tl_folder .tl_left{line-height:18px}.iso_product{margin-top:2px;margin-bottom:2px;width:500px;text-indent:0}.iso_product .thumbnail{padding-right:5px;float:left;width:34px;height:34px}.iso_product ul{margin-left:34px}.iso_product p{font-weight:bold;margin:0 0 5px 0;padding:0}.iso_product p span{font-weight:normal}.tree_view .iso_product a{float:none;margin-top:0}h3.inherit,.tl_checkbox_single_container.inherit{background-color:#f8f8f8;padding:2px 2px 2px 0;margin:14px 0 1px 0}body.iso_be_overview .tip-wrap{margin-left:30px !important;margin-top:70px}.be_iso_overview .item a{display:block;width:105px;height:70px;margin:15px 0;padding:5px;border-radius:5px;float:left;text-align:center}.be_iso_overview .item a.disabled{pointer-events:none;cursor:default}.be_iso_overview .item span{display:block}.be_iso_overview .item a.disabled img{filter:url("data:image/svg+xml;utf8,#grayscale");filter:gray;-webkit-filter:grayscale(100%)}.be_iso_introduction .left{padding:0 10px;background:#eff5fa;overflow:hidden}.be_iso_introduction .left strong{color:#1899ad}.be_iso_introduction .right{float:right;width:250px;padding-left:20px}.be_iso_introduction .right img{display:block;margin-bottom:2em}@media(max-width:991px){.be_iso_introduction .right{display:none}}.iso_importassets li{list-style-type:inherit}.tl_version_panel.tl_iso_products_panel:after{content:"";display:table;clear:both}.tl_version_panel.tl_iso_products_panel #tl_language{float:left;margin-left:20px}.tl_version_panel.tl_iso_products_panel #tl_version{float:right} +#tl_navigation .tl_level_1_group .group-isotope{background:url(../images/module.svg) 8px center no-repeat;background-size:16px 16px}.header_import_assets{padding:2px 0 3px 20px;background-image:url(../images/image--plus.png);background-position:left center;background-repeat:no-repeat}.header_import_mail{padding:2px 0 3px 20px;background-image:url(../images/inbox-download.png);background-position:left center;background-repeat:no-repeat}.header_iso_copy{background-image:url(../../../../themes/default/images/copy.gif);background-position:left center;background-repeat:no-repeat;padding:2px 0 3px 20px}.header_iso_groups{padding:2px 0 3px 20px;background-image:url(../images/folders.png);background-position:left center;background-repeat:no-repeat}.tl_iso_category_sorting{padding:3px 0 0 8px}body.popup .header_back{display:none}.tl_mediamanager td,.tl_mediamanager th{padding:2px 10px 0 0}.tl_mediamanager td.col_0{text-align:center;vertical-align:middle}.tl_mediamanager input.tl_text_2{width:220px}.tl_mediamanager textarea{height:40px;width:250px}.tl_mediamanager .radio_container span{display:block}.tl_mediamanager img{position:relative;top:1px}.tl_mediamanager .upload_container{margin-top:8px}.tl_mediamanager .qq-hide{display:none}.tl_mediamanager .qq-upload-drop-area{padding:56px 0;margin-bottom:12px;text-align:center;border:3px dashed #dbdbdb;border-left:none;border-right:none;background-color:#f7f7f7;width:100%;position:relative;top:0;left:0;z-index:2}.tl_mediamanager .qq-upload-drop-area span{font-size:16px;color:grey}.tl_mediamanager .qq-upload-button{padding:3px;margin:-3px}.tl_mediamanager .qq-upload-button .tl_submit{display:inline-block;font-family:"Trebuchet MS",Verdana,sans-serif;font-size:12px}.tl_mediamanager .qq-upload-button:focus .tl_submit,.tl_mediamanager .qq-upload-button:hover .tl_submit{box-shadow:0 0 3px #aaa}.tl_mediamanager .qq-edit-filename{display:none}.tl_mediamanager .qq-upload-size{color:#b3b3b3}.tl_mediamanager .qq-upload-list{margin:8px 0 8px 16px}.tl_mediamanager .qq-upload-list li{line-height:14px;list-style-type:square}.tl_mediamanager .qq-upload-success{color:#8ab858}.tl_mediamanager .qq-upload-fail{color:#c55}#ctrl_address_fields tr:hover td,#ctrl_attributes tr:hover td,#ctrl_variant_attributes tr:hover td{background-color:#EBFDD7}table.multicolumnwizard{max-width:663px}table.multicolumnwizard .operations{white-space:nowrap}.mod_iso_orderdetails .info_container{float:left;width:200px;border:1px dotted #ccc;padding:10px;margin:0 10px 10px 0}.mod_iso_orderdetails .info_container h3{margin-top:0;margin-bottom:5px}.mod_iso_orderdetails table{margin-top:20px;border-top:1px dotted #ccc;width:100%}.mod_iso_orderdetails tbody td{padding:5px;border-bottom:1px dotted #ccc;vertical-align:top}.mod_iso_orderdetails ul{margin:0;padding:0 0 0 10px}.mod_iso_orderdetails li{margin-left:10px;padding:0;list-style-type:disc}.mod_iso_orderdetails .price{text-align:right}.mod_iso_orderdetails tfoot td{text-align:right;padding:5px 5px 0}.w50h{height:auto}.hide_sort_hint .sort_hint{display:none}.iso_filter{line-height:28px}.iso_filter .tl_submit.active{border:1px solid #b8b8b8;background:#eee;background-image:-moz-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:-webkit-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:-o-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:-ms-linear-gradient(bottom,#ccc 0,#ffd 60%);background-image:linear-gradient(bottom,#ccc 0,#ffd 60%)}.iso_filter .styled_select{margin-top:4px}.iso_listing_container th.col_images{font-size:0;width:60px}.iso_listing_container td.col_images{height:50px;text-align:center}.iso_listing_container td.col_images img{float:none}.tl_listing_container .col_order_status{padding:0}.tl_listing_container .col_order_status span{display:block;padding:2px 5px 3px;border-radius:2px}.iso_operations{width:110px;white-space:normal}.iso_operations a{display:inline-block;margin-bottom:4px}.tl_productdata .tl_file{min-height:36px}.product_tree .tl_file .tl_left a,.tl_productdata .tl_file .tl_left a{float:left;margin-top:10px}.product_tree .tl_file .tl_left a.tl_tip,.tl_productdata .tl_file .tl_left a.tl_tip{float:none}.product_tree .tl_file .tl_right,.tl_productdata .tl_file .tl_right{height:auto;text-align:right}.tl_productdata .tl_folder .tl_left,.tl_productdata label{line-height:18px}.iso_product{margin-top:2px;margin-bottom:2px;width:500px;text-indent:0}.iso_product .thumbnail{padding-right:5px;float:left;width:34px;height:34px}.iso_product ul{margin-left:34px}.iso_product p{font-weight:700;margin:0 0 5px;padding:0}.iso_product p span{font-weight:400}.tree_view .iso_product a{float:none;margin-top:0}.tl_checkbox_single_container.inherit,h3.inherit{background-color:#f8f8f8;padding:2px 2px 2px 0;margin:14px 0 1px}body.iso_be_overview .tip-wrap{margin-left:30px!important;margin-top:70px}.be_iso_overview .item a{display:block;width:105px;height:70px;margin:15px 0;padding:5px;border-radius:5px;float:left;text-align:center}.be_iso_overview .item a.disabled{pointer-events:none;cursor:default}.be_iso_overview .item span{display:block}.be_iso_overview .item a.disabled img{filter:url("data:image/svg+xml;utf8,#grayscale");filter:gray;-webkit-filter:grayscale(100%)}.be_iso_introduction .left{padding:0 10px;background:#eff5fa;overflow:hidden}.be_iso_introduction .left strong{color:#1899ad}.be_iso_introduction .right{float:right;width:250px;padding-left:20px}.be_iso_introduction .right img{display:block;margin-bottom:2em}@media(max-width:991px){.be_iso_introduction .right{display:none}}.iso_importassets li{list-style-type:inherit}.tl_version_panel.tl_iso_products_panel:after{content:"";display:table;clear:both}.tl_version_panel.tl_iso_products_panel #tl_language{float:left;margin-left:20px}.tl_version_panel.tl_iso_products_panel #tl_version{float:right} \ No newline at end of file diff --git a/system/modules/isotope/assets/css/isotope.css b/system/modules/isotope/assets/css/isotope.css index 8069bc0456..472b65071b 100644 --- a/system/modules/isotope/assets/css/isotope.css +++ b/system/modules/isotope/assets/css/isotope.css @@ -15,8 +15,8 @@ #iso_ajaxBox { width:20%; padding:9px 50px 9px 24px; - position:absolute; - top:30px; + position:fixed; + top:10%; left:40%; background:#fff url("../../../../themes/default/images/loading.gif") no-repeat right center; border:2px solid #000; diff --git a/system/modules/isotope/assets/css/isotope.min.css b/system/modules/isotope/assets/css/isotope.min.css index 1a7f8b52f5..8049481c92 100644 --- a/system/modules/isotope/assets/css/isotope.min.css +++ b/system/modules/isotope/assets/css/isotope.min.css @@ -1 +1 @@ -#iso_ajaxBox{width:20%;padding:9px 50px 9px 24px;position:absolute;top:30px;left:40%;background:#fff url("../../../../themes/default/images/loading.gif") no-repeat right center;border:2px solid #000;font-family:"Trebuchet MS",Verdana,sans-serif;font-size:15px;line-height:18px;text-align:left;color:#000;z-index:9999}#iso_ajaxBox.btnClose{background-image:none;cursor:pointer}#iso_ajaxBox p{margin:1em 0;padding:0}#iso_ajaxBox .iso_error{padding-left:34px;background:url("../images/cross-24.png") left center no-repeat}#iso_ajaxBox .iso_confirm{padding-left:34px;background:url("../images/tick-24.png") left center no-repeat}#iso_ajaxBox .iso_info{padding-left:34px;background:url("../images/information-24.png") left center no-repeat}#iso_ajaxOverlay{width:100%;height:100%;position:fixed;top:0;left:0;background-color:#000;z-index:9998;-moz-opacity:.5;opacity:.5;_display:none;filter:Alpha(opacity=50)} \ No newline at end of file +#iso_ajaxBox{width:20%;padding:9px 50px 9px 24px;position:fixed;top:10%;left:40%;background:url(../../../../themes/default/images/loading.gif) right center no-repeat #fff;border:2px solid #000;font-family:"Trebuchet MS",Verdana,sans-serif;font-size:15px;line-height:18px;text-align:left;color:#000;z-index:9999}#iso_ajaxBox.btnClose{background-image:none;cursor:pointer}#iso_ajaxBox p{margin:1em 0;padding:0}#iso_ajaxBox .iso_error{padding-left:34px;background:url(../images/cross-24.png) left center no-repeat}#iso_ajaxBox .iso_confirm{padding-left:34px;background:url(../images/tick-24.png) left center no-repeat}#iso_ajaxBox .iso_info{padding-left:34px;background:url(../images/information-24.png) left center no-repeat}#iso_ajaxOverlay{width:100%;height:100%;position:fixed;top:0;left:0;background-color:#000;z-index:9998;-moz-opacity:.5;opacity:.5;filter:Alpha(opacity=50)} \ No newline at end of file diff --git a/system/modules/isotope/assets/css/print.min.css b/system/modules/isotope/assets/css/print.min.css index d15899555b..bb0ef96243 100644 --- a/system/modules/isotope/assets/css/print.min.css +++ b/system/modules/isotope/assets/css/print.min.css @@ -1 +1 @@ -#header,#left,#footer,.tl_submit_container,.main_headline,#tl_buttons,.sub_headline,.tl_tbox,.tl_help,legend,#pal_email_legend{display:none}fieldset,textarea{border:0} \ No newline at end of file +#footer,#header,#left,#pal_email_legend,#tl_buttons,.main_headline,.sub_headline,.tl_help,.tl_submit_container,.tl_tbox,legend{display:none}fieldset,textarea{border:0} \ No newline at end of file diff --git a/system/modules/isotope/assets/images/module.svg b/system/modules/isotope/assets/images/module.svg new file mode 100644 index 0000000000..96721dccd8 --- /dev/null +++ b/system/modules/isotope/assets/images/module.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/system/modules/isotope/assets/js/backend.js b/system/modules/isotope/assets/js/backend.js index 28a00f91ef..e0ace97214 100644 --- a/system/modules/isotope/assets/js/backend.js +++ b/system/modules/isotope/assets/js/backend.js @@ -252,23 +252,23 @@ var Isotope = {}; } else { // textarea with TinyMCE if (element.getPrevious() && element.getPrevious().hasClass('mce-tinymce')) { - element.getPrevious().setStyle('display', (event.target.checked ? 'none' : 'inherit')); + element.getPrevious().setStyle('display', (event.target.checked ? 'none' : null)); } else { - element.setStyle('display', (event.target.checked ? 'none' : 'inherit')); + element.setStyle('display', (event.target.checked ? 'none' : null)); } // Query would fail if there is no tooltip - try { element.getNext(':not(.tl_tip):not(script)').setStyle('display', (event.target.checked ? 'none' : 'inherit')); } catch (e) {} + try { element.getAllNext(':not(script)').setStyle('display', (event.target.checked ? 'none' : null)); } catch (e) {} } }); if (el.match('.tl_checkbox_single_container')) { el.getFirst('input[type=checkbox]').disabled = check.checked; } else { - el.setStyle('display', (check.checked ? 'none' : 'inherit')); + el.setStyle('display', (check.checked ? 'none' : null)); // Query would fail if there is no tooltip - try { el.getNext(':not(.tl_tip):not(script)').setStyle('display', (check.checked ? 'none' : 'inherit')); } catch (e) {} + try { el.getAllNext(':not(script)').setStyle('display', (check.checked ? 'none' : null)); } catch (e) {} } } }); diff --git a/system/modules/isotope/assets/js/backend.min.js b/system/modules/isotope/assets/js/backend.min.js index 1834ed7dee..13199ea84f 100644 --- a/system/modules/isotope/assets/js/backend.min.js +++ b/system/modules/isotope/assets/js/backend.min.js @@ -1 +1 @@ -var Isotope={};(function(){"use strict";Isotope.toggleCheckboxGroup=function(el,id){var cls=document.id(el).className;var status=document.id(el).checked?"checked":"";if(cls=="tl_checkbox"){$$("#"+id+" .tl_checkbox").each(function(checkbox){if(!checkbox.disabled)checkbox.checked=status})}else if(cls=="tl_tree_checkbox"){$$("#"+id+" .parent .tl_tree_checkbox").each(function(checkbox){if(!checkbox.disabled)checkbox.checked=status})}Backend.getScrollOffset()};Isotope.openModalGroupSelector=function(options){var opt=options||{};var max=(window.getSize().y-180).toInt();if(!opt.height||opt.height>max)opt.height=max;var M=new SimpleModal({width:opt.width,btn_ok:Contao.lang.close,draggable:false,overlayOpacity:.5,onShow:function(){document.body.setStyle("overflow","hidden")},onHide:function(){document.body.setStyle("overflow","auto")}});M.addButton(Contao.lang.close,"btn",function(){this.hide()});M.addButton(Contao.lang.apply,"btn primary",function(){var val=[],frm=null,frms=window.frames;for(var i=0;i',model:"modal"});return M};Isotope.openModalPageSelector=function(options){var opt=options||{};var max=(window.getSize().y-180).toInt();if(!opt.height||opt.height>max)opt.height=max;var M=new SimpleModal({width:opt.width,btn_ok:Contao.lang.close,draggable:false,overlayOpacity:.5,onShow:function(){document.body.setStyle("overflow","hidden")},onHide:function(){document.body.setStyle("overflow","auto")}});M.addButton(Contao.lang.close,"btn",function(){this.hide()});M.addButton(Contao.lang.apply,"btn primary",function(){var val=0,frm=null,frms=window.frames;for(var i=0;i',model:"modal"});return M};Isotope.addInteractiveHelp=function(){new Tips.Contao("a.tl_tip",{offset:{x:9,y:21},text:function(e){return e.get("longdesc")}})};Isotope.inheritFields=function(fields,label){var injectError=false;fields.each(function(name,i){var el=document.id("ctrl_"+name);if(el){el.removeProperty("required");var parent=el.getParent("div").getFirst("h3");if(!parent&&el.match(".tl_checkbox_single_container")){parent=el}if(!parent){injectError=true;return}parent.addClass("inherit");var check=document.id("ctrl_inherit").getFirst("input[value="+name+"]");check.setStyle("float","right").inject(parent);document.id("ctrl_inherit").getFirst("label[for="+check.get("id")+"]").setStyles({"float":"right","padding-right":"5px","font-weight":"normal"}).set("text",label).inject(parent);check.addEvent("change",function(event){var element=document.id("ctrl_"+event.target.get("value"));if(element.match(".tl_checkbox_single_container")){element.getFirst("input[type=checkbox]").disabled=event.target.checked}else{if(element.getPrevious()&&element.getPrevious().hasClass("mce-tinymce")){element.getPrevious().setStyle("display",event.target.checked?"none":"inherit")}else{element.setStyle("display",event.target.checked?"none":"inherit")}try{element.getNext(":not(.tl_tip):not(script)").setStyle("display",event.target.checked?"none":"inherit")}catch(e){}}});if(el.match(".tl_checkbox_single_container")){el.getFirst("input[type=checkbox]").disabled=check.checked}else{el.setStyle("display",check.checked?"none":"inherit");try{el.getNext(":not(.tl_tip):not(script)").setStyle("display",check.checked?"none":"inherit")}catch(e){}}}});if(!injectError){document.id("ctrl_inherit").getParent("div").setStyle("display","none")}};Isotope.makeSelectExtendable=function(){var collections={};document.getElements("select.extendable").forEach(function(select){var previous=select.value;var parent=select.getParent("table").id;collections[parent]=collections[parent]||[];collections[parent].push(select);select.grab(new Element("option",{text:"Add …",value:"extendSelect"})).addEvent("change",function(e){if(select.value=="extendSelect"){var name=prompt("Please enter the new group name.");if(name!=""){if(parent&&collections[parent]){collections[parent].forEach(function(s){new Element("option",{text:name,value:name}).inject(s.getLast(),"before")})}else{new Element("option",{text:name,value:name}).inject(select.getLast(),"before")}select.value=name;previous=name}else{select.value=previous}select.fireEvent("change")}else{previous=select.value}})})};Isotope.makeParentViewSortable=function(ul){var ds=new Scroller(document.getElement("body"),{onChange:function(x,y){this.element.scrollTo(this.element.getScroll().x,y)}});var list=new Sortables(ul,{contstrain:true,opacity:.6,onStart:function(){ds.start()},onComplete:function(){ds.stop()},onSort:function(el){var div=el.getFirst("div"),prev,next,first;if(!div)return;if(div.hasClass("wrapper_start")){if((prev=el.getPrevious("li"))&&(first=prev.getFirst("div"))){first.removeClass("indent")}if((next=el.getNext("li"))&&(first=next.getFirst("div"))){first.addClass("indent")}}else if(div.hasClass("wrapper_stop")){if((prev=el.getPrevious("li"))&&(first=prev.getFirst("div"))){first.addClass("indent")}if((next=el.getNext("li"))&&(first=next.getFirst("div"))){first.removeClass("indent")}}else if(div.hasClass("indent")){if((prev=el.getPrevious("li"))&&(first=prev.getFirst("div"))&&first.hasClass("wrapper_stop")){div.removeClass("indent")}else if((next=el.getNext("li"))&&(first=next.getFirst("div"))&&first.hasClass("wrapper_start")){div.removeClass("indent")}}else{if((prev=el.getPrevious("li"))&&(first=prev.getFirst("div"))&&first.hasClass("wrapper_start")){div.addClass("indent")}else if((next=el.getNext("li"))&&(first=next.getFirst("div"))&&first.hasClass("wrapper_stop")){div.addClass("indent")}}},handle:".drag-handle"});list.active=false;list.addEvent("start",function(){list.active=true});list.addEvent("complete",function(el){if(!list.active)return;var id,pid,req,href;if(el.getPrevious("li")){id=el.get("id").replace(/li_/,"");pid=el.getPrevious("li").get("id").replace(/li_/,"");req=window.location.search.replace(/id=[0-9]*/,"id="+id)+"&act=cut&mode=1&page_id="+pid;href=window.location.href.replace(/\?.*$/,"");new Request.Contao({url:href+req,followRedirects:false}).get()}else if(el.getParent("ul")){id=el.get("id").replace(/li_/,"");pid=el.getParent("ul").get("id").replace(/ul_/,"");req=window.location.search.replace(/id=[0-9]*/,"id="+id)+"&act=cut&mode=2&page_id="+pid;href=window.location.href.replace(/\?.*$/,"");new Request.Contao({url:href+req,followRedirects:false}).get()}})}})();Isotope.MediaManager={};(function(){"use strict";Isotope.MediaManager.init=function(el,field,extensions){var container=$("ctrl_"+field);var files=[];var chunks,i,input_index,inputs,input_name,value;var params={element:document.id(el),request:{endpoint:window.location.href,inputName:field,params:{action:"uploadMediaManager",name:field,REQUEST_TOKEN:Contao.request_token}},failedUploadTextDisplay:{mode:"custom",maxChars:50,responseProperty:"error"},validation:{allowedExtensions:extensions},callbacks:{onUpload:function(){AjaxRequest.displayBox(Contao.lang.loading+" …")},onComplete:function(id,name,result){if(!result.success){AjaxRequest.hideBox();return}if(result.file){files.push(result.file)}if(this.getInProgress()>0){return}value={};inputs=container.getElements('[name^="'+field+'"]');for(i=0;in)&&(t.height=n);var a=new SimpleModal({width:t.width,btn_ok:Contao.lang.close,draggable:!1,overlayOpacity:.5,onShow:function(){document.body.setStyle("overflow","hidden")},onHide:function(){document.body.setStyle("overflow","auto")}});return a.addButton(Contao.lang.close,"btn",function(){this.hide()}),a.addButton(Contao.lang.apply,"btn primary",function(){for(var e=[],n=null,a=window.frames,o=0;o',model:"modal"}),a},Isotope.openModalPageSelector=function(e){var t=e||{},n=(window.getSize().y-180).toInt();(!t.height||t.height>n)&&(t.height=n);var a=new SimpleModal({width:t.width,btn_ok:Contao.lang.close,draggable:!1,overlayOpacity:.5,onShow:function(){document.body.setStyle("overflow","hidden")},onHide:function(){document.body.setStyle("overflow","auto")}});return a.addButton(Contao.lang.close,"btn",function(){this.hide()}),a.addButton(Contao.lang.apply,"btn primary",function(){for(var e=0,n=null,a=window.frames,o=0;o',model:"modal"}),a},Isotope.addInteractiveHelp=function(){new Tips.Contao("a.tl_tip",{offset:{x:9,y:21},text:function(e){return e.get("longdesc")}})},Isotope.inheritFields=function(e,t){var n=!1;e.each(function(e,a){var o=document.id("ctrl_"+e);if(o){o.removeProperty("required");var i=o.getParent("div").getFirst("h3");if(!i&&o.match(".tl_checkbox_single_container")&&(i=o),!i)return void(n=!0);i.addClass("inherit");var l=document.id("ctrl_inherit").getFirst("input[value="+e+"]");if(l.setStyle("float","right").inject(i),document.id("ctrl_inherit").getFirst("label[for="+l.get("id")+"]").setStyles({"float":"right","padding-right":"5px","font-weight":"normal"}).set("text",t).inject(i),l.addEvent("change",function(e){var t=document.id("ctrl_"+e.target.get("value"));if(t.match(".tl_checkbox_single_container"))t.getFirst("input[type=checkbox]").disabled=e.target.checked;else{t.getPrevious()&&t.getPrevious().hasClass("mce-tinymce")?t.getPrevious().setStyle("display",e.target.checked?"none":null):t.setStyle("display",e.target.checked?"none":null);try{t.getAllNext(":not(script)").setStyle("display",e.target.checked?"none":null)}catch(n){}}}),o.match(".tl_checkbox_single_container"))o.getFirst("input[type=checkbox]").disabled=l.checked;else{o.setStyle("display",l.checked?"none":null);try{o.getAllNext(":not(script)").setStyle("display",l.checked?"none":null)}catch(r){}}}}),n||document.id("ctrl_inherit").getParent("div").setStyle("display","none")},Isotope.makeSelectExtendable=function(){var e={};document.getElements("select.extendable").forEach(function(t){var n=t.value,a=t.getParent("table").id;e[a]=e[a]||[],e[a].push(t),t.grab(new Element("option",{text:"Add …",value:"extendSelect"})).addEvent("change",function(o){if("extendSelect"==t.value){var i=prompt("Please enter the new group name.");""!=i?(a&&e[a]?e[a].forEach(function(e){new Element("option",{text:i,value:i}).inject(e.getLast(),"before")}):new Element("option",{text:i,value:i}).inject(t.getLast(),"before"),t.value=i,n=i):t.value=n,t.fireEvent("change")}else n=t.value})})},Isotope.makeParentViewSortable=function(e){var t=new Scroller(document.getElement("body"),{onChange:function(e,t){this.element.scrollTo(this.element.getScroll().x,t)}}),n=new Sortables(e,{contstrain:!0,opacity:.6,onStart:function(){t.start()},onComplete:function(){t.stop()},onSort:function(e){var t,n,a,o=e.getFirst("div");o&&(o.hasClass("wrapper_start")?((t=e.getPrevious("li"))&&(a=t.getFirst("div"))&&a.removeClass("indent"),(n=e.getNext("li"))&&(a=n.getFirst("div"))&&a.addClass("indent")):o.hasClass("wrapper_stop")?((t=e.getPrevious("li"))&&(a=t.getFirst("div"))&&a.addClass("indent"),(n=e.getNext("li"))&&(a=n.getFirst("div"))&&a.removeClass("indent")):o.hasClass("indent")?(t=e.getPrevious("li"))&&(a=t.getFirst("div"))&&a.hasClass("wrapper_stop")?o.removeClass("indent"):(n=e.getNext("li"))&&(a=n.getFirst("div"))&&a.hasClass("wrapper_start")&&o.removeClass("indent"):(t=e.getPrevious("li"))&&(a=t.getFirst("div"))&&a.hasClass("wrapper_start")?o.addClass("indent"):(n=e.getNext("li"))&&(a=n.getFirst("div"))&&a.hasClass("wrapper_stop")&&o.addClass("indent"))},handle:".drag-handle"});n.active=!1,n.addEvent("start",function(){n.active=!0}),n.addEvent("complete",function(e){if(n.active){var t,a,o,i;e.getPrevious("li")?(t=e.get("id").replace(/li_/,""),a=e.getPrevious("li").get("id").replace(/li_/,""),o=window.location.search.replace(/id=[0-9]*/,"id="+t)+"&act=cut&mode=1&page_id="+a,i=window.location.href.replace(/\?.*$/,""),new Request.Contao({url:i+o,followRedirects:!1}).get()):e.getParent("ul")&&(t=e.get("id").replace(/li_/,""),a=e.getParent("ul").get("id").replace(/ul_/,""),o=window.location.search.replace(/id=[0-9]*/,"id="+t)+"&act=cut&mode=2&page_id="+a,i=window.location.href.replace(/\?.*$/,""),new Request.Contao({url:i+o,followRedirects:!1}).get())}})}}(),Isotope.MediaManager={},function(){"use strict";Isotope.MediaManager.init=function(e,t,n){var a,o,i,l,r,d,c=$("ctrl_"+t),s=[],g={element:document.id(e),request:{endpoint:window.location.href,inputName:t,params:{action:"uploadMediaManager",name:t,REQUEST_TOKEN:Contao.request_token}},failedUploadTextDisplay:{mode:"custom",maxChars:50,responseProperty:"error"},validation:{allowedExtensions:n},callbacks:{onUpload:function(){AjaxRequest.displayBox(Contao.lang.loading+" …")},onComplete:function(e,n,g){if(!g.success)return void AjaxRequest.hideBox();if(g.file&&s.push(g.file),!(this.getInProgress()>0)){for(d={},l=c.getElements('[name^="'+t+'"]'),o=0;o]*>([\s\S]*?)<\/script>/gi, function(all, code){ + scripts += code + '\n'; + return ''; + }); div.innerHTML = txt; @@ -197,40 +214,47 @@ var IsotopeProducts = (function() { registerEvents(formParent, config); Isotope.hideBox(); - Browser.exec(responseJavaScript); - }, - onFailure: Isotope.hideBox - }); - - if (config.attributes) { - for (i=0; i 1) { + xhr.abort(); + } + + Isotope.displayBox(loadMessage); + xhr.send(serializeForm(form)); + }); + } } } } - } - return { - 'attach': function(products) { - var i; + return { + 'attach': function(products) { + var i; - // Check if products is an array - if (Object.prototype.toString.call(products) === '[object Array]' && products.length > 0) { - for (i=0; i 0) { + for (i=0; i0){for(i=0;i]*>([\s\S]*?)<\/script>/gi,function(e,t){return l+=t+"\n",""}),r.innerHTML=n;var d=r.getElementsByTagName("p");for(s=0;s1&&c.abort(),Isotope.displayBox(n),c.send(s(u))})}var n="Loading product data …";return{attach:function(t){var o;if("[object Array]"===Object.prototype.toString.call(t)&&t.length>0)for(o=0;o 'system/modules/isotope/templates/collection', 'iso_collection_mini' => 'system/modules/isotope/templates/collection', 'iso_collection_invoice' => 'system/modules/isotope/templates/collection', + 'iso_collection_favorites' => 'system/modules/isotope/templates/collection', 'iso_document_default' => 'system/modules/isotope/templates/document', 'iso_filter_default' => 'system/modules/isotope/templates/isotope', 'iso_gallery_standard' => 'system/modules/isotope/templates/gallery', @@ -68,9 +68,11 @@ 'iso_payment_sofortueberweisung' => 'system/modules/isotope/templates/payment', 'iso_payment_viveum' => 'system/modules/isotope/templates/payment', 'iso_payment_worldpay' => 'system/modules/isotope/templates/payment', + 'iso_payment_opp' => 'system/modules/isotope/templates/payment', 'iso_reader_default' => 'system/modules/isotope/templates/isotope', 'iso_scripts' => 'system/modules/isotope/templates/isotope', 'mod_iso_addressbook' => 'system/modules/isotope/templates/modules', + 'mod_iso_favorites' => 'system/modules/isotope/templates/modules', 'mod_iso_cart' => 'system/modules/isotope/templates/modules', 'mod_iso_checkout' => 'system/modules/isotope/templates/modules', 'mod_iso_configswitcher' => 'system/modules/isotope/templates/modules', diff --git a/system/modules/isotope/config/config.php b/system/modules/isotope/config/config.php index d6ab1c11f2..57c22059ad 100755 --- a/system/modules/isotope/config/config.php +++ b/system/modules/isotope/config/config.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -28,6 +27,7 @@ 'javascript' => \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/js/backend.min.js'), 'generate' => array('Isotope\Backend\Product\VariantGenerator', 'generate'), 'import' => array('Isotope\Backend\Product\AssetImport', 'generate'), + 'fallback' => array('Isotope\Backend\Product\Fallback', 'setFromUrl'), ), 'iso_orders' => array ( @@ -49,9 +49,15 @@ $GLOBALS['BE_MOD']['accounts']['member']['tables'][] = \Isotope\Model\Address::getTable(); -if (TL_MODE == 'BE') +if ('BE' === TL_MODE) { $GLOBALS['TL_CSS'][] = \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/css/backend.min.css|static'); + + if (file_exists(TL_ROOT . '/system/themes/flexible/icons')) { + $GLOBALS['TL_CSS'][] = \Haste\Util\Debug::uncompressedFile( + 'system/modules/isotope/assets/css/backend-svg.min.css|static' + ); + } } @@ -149,21 +155,6 @@ ) ); -// Enable tables in iso_setup -if ($_GET['do'] == 'iso_setup') -{ - foreach ($GLOBALS['ISO_MOD'] as $strGroup=>$arrModules) - { - foreach ($arrModules as $strModule => $arrConfig) - { - if (is_array($arrConfig['tables'])) - { - $GLOBALS['BE_MOD']['isotope']['iso_setup']['tables'] = array_merge($GLOBALS['BE_MOD']['isotope']['iso_setup']['tables'], $arrConfig['tables']); - } - } - } -} - /** * Frontend modules @@ -173,6 +164,7 @@ 'iso_productlist' => 'Isotope\Module\ProductList', 'iso_productvariantlist' => 'Isotope\Module\ProductVariantList', 'iso_productreader' => 'Isotope\Module\ProductReader', + 'iso_favorites' => 'Isotope\Module\Favorites', 'iso_cart' => 'Isotope\Module\Cart', 'iso_checkout' => 'Isotope\Module\Checkout', 'iso_productfilter' => 'Isotope\Module\ProductFilter', @@ -214,6 +206,7 @@ \Isotope\Model\Payment::registerModelType('sofortueberweisung', 'Isotope\Model\Payment\Sofortueberweisung'); \Isotope\Model\Payment::registerModelType('viveum', 'Isotope\Model\Payment\Viveum'); \Isotope\Model\Payment::registerModelType('worldpay', 'Isotope\Model\Payment\Worldpay'); +\Isotope\Model\Payment::registerModelType('opp', 'Isotope\Model\Payment\OpenPaymentPlatform'); /** * Shipping methods @@ -241,6 +234,7 @@ /** * Product collections */ +\Isotope\Model\ProductCollection::registerModelType('favorites', 'Isotope\Model\ProductCollection\Favorites'); \Isotope\Model\ProductCollection::registerModelType('cart', 'Isotope\Model\ProductCollection\Cart'); \Isotope\Model\ProductCollection::registerModelType('order', 'Isotope\Model\ProductCollection\Order'); @@ -265,10 +259,14 @@ \Isotope\Model\Attribute::registerModelType('upload', 'Isotope\Model\Attribute\Upload'); \Isotope\Model\Attribute::registerModelType('media', 'Isotope\Model\Attribute\Media'); +if (in_array('fineuploader', \ModuleLoader::getActive(), true)) { + \Isotope\Model\Attribute::registerModelType('fineUploader', 'Isotope\Model\Attribute\FineUploader'); +} + /** * Notification Center notification types */ -$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'] = array('recipient_email'); +$GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['recipients'] = array('recipient_email', 'form_*', 'billing_address_email', 'shipping_address_email'); $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['attachment_tokens'] = array('form_*', 'document'); $GLOBALS['NOTIFICATION_CENTER']['NOTIFICATION_TYPE']['isotope']['iso_order_status_change']['email_text'] = array( 'uniqid', @@ -423,19 +421,50 @@ * Hooks */ if (\Config::getInstance()->isComplete()) { - // Contao core hooks are in external file to fix postsale script - include(TL_ROOT . '/system/modules/isotope/config/hooks.php'); + $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\Backend\Product\DcaManager', 'initialize'); + $GLOBALS['TL_HOOKS']['getAttributesFromDca'][] = array('Isotope\Backend\Product\DcaManager', 'addOptionsFromAttribute'); + $GLOBALS['TL_HOOKS']['addCustomRegexp'][] = array('Isotope\Isotope', 'validateRegexp'); + $GLOBALS['TL_HOOKS']['getPageIdFromUrl'][] = array('Isotope\Frontend', 'loadReaderPageFromUrl'); + $GLOBALS['TL_HOOKS']['getPageLayout'][] = array('Isotope\Frontend', 'overrideReaderPage'); + $GLOBALS['TL_HOOKS']['getSearchablePages'][] = array('Isotope\Frontend', 'addProductsToSearchIndex'); + $GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('Isotope\Frontend', 'replaceIsotopeTags'); + $GLOBALS['TL_HOOKS']['modifyFrontendPage'][] = array('Isotope\Frontend', 'injectScripts'); + $GLOBALS['TL_HOOKS']['executePreActions'][] = array('Isotope\Backend', 'executePreActions'); + $GLOBALS['TL_HOOKS']['executePostActions'][] = array('Isotope\Backend', 'executePostActions'); + $GLOBALS['TL_HOOKS']['getSystemMessages'][] = array('Isotope\Backend', 'getOrderMessages'); + $GLOBALS['TL_HOOKS']['getArticle'][] = array('Isotope\Frontend', 'storeCurrentArticle'); + $GLOBALS['TL_HOOKS']['generateBreadcrumb'][] = array('Isotope\Frontend', 'addProductToBreadcrumb'); $GLOBALS['ISO_HOOKS']['buttons'][] = array('Isotope\Isotope', 'defaultButtons'); $GLOBALS['ISO_HOOKS']['findSurchargesForCollection'][] = array('Isotope\Frontend', 'findShippingAndPaymentSurcharges'); $GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\Analytics', 'trackOrder'); + $GLOBALS['ISO_HOOKS']['postCheckout'][] = array('Isotope\EventListener\PostCheckoutUploads', 'onPostCheckout'); $GLOBALS['ISO_HOOKS']['calculatePrice'][] = array('Isotope\Frontend', 'addOptionsPrice'); $GLOBALS['ISO_HOOKS']['orderConditions'][] = array('Isotope\Model\Payment\BillpayWithSaferpay', 'addOrderCondition'); $GLOBALS['ISO_HOOKS']['generateDocumentTemplate'][] = array('Isotope\Model\Payment\BillpayWithSaferpay', 'addToDocumentTemplate'); + $GLOBALS['ISO_HOOKS']['initializePostsale'][] = array('Isotope\Frontend', 'setPostsaleModuleSettings'); + + // changelanguage v2 + v3 + $GLOBALS['TL_HOOKS']['translateUrlParameters'][] = array('Isotope\EventListener\ChangeLanguageListener', 'onTranslateUrlParameters'); + $GLOBALS['TL_HOOKS']['changelanguageNavigation'][] = array('Isotope\EventListener\ChangeLanguageListener', 'onChangelanguageNavigation'); // Set module and module id for payment and/or shipping modules - if (TL_MODE == 'FE') { - $GLOBALS['ISO_HOOKS']['initializePostsale'][] = array('Isotope\Frontend', 'setPostsaleModuleSettings'); + if ('FE' === TL_MODE) { + // Only limit countries in FE + $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\Backend\Member\Callback', 'limitCountries'); + } + + if ('BE' === TL_MODE) { + // Type agent help is only needed in back end + $GLOBALS['TL_HOOKS']['loadDataContainer'][] = array('Isotope\Backend', 'loadTypeAgentHelp'); + $GLOBALS['TL_HOOKS']['loadLanguageFile'][] = array('Isotope\Backend\ProductType\Help', 'initializeWizard'); + + // Adjust the product groups manager + $GLOBALS['TL_HOOKS']['parseTemplate'][] = array('Isotope\Backend', 'adjustGroupsManager'); + $GLOBALS['TL_HOOKS']['parseTemplate'][] = array('Isotope\Backend\SubtableVersion', 'removeFromWelcomeScreen'); + + // Enable the module tables in setup + $GLOBALS['TL_HOOKS']['initializeSystem'][] = array('Isotope\BackendModule\InitializeListener', 'enableModuleTablesInSetup'); } } diff --git a/system/modules/isotope/config/currencies.php b/system/modules/isotope/config/currencies.php index 0470c562c2..98bf48cad1 100644 --- a/system/modules/isotope/config/currencies.php +++ b/system/modules/isotope/config/currencies.php @@ -1,4 +1,12 @@ array('code' => 4, 'units' => 2), // Afghani diff --git a/system/modules/isotope/config/hooks.php b/system/modules/isotope/config/hooks.php deleted file mode 100644 index 430029d6d8..0000000000 --- a/system/modules/isotope/config/hooks.php +++ /dev/null @@ -1,41 +0,0 @@ - array ( - '__selector__' => array('type', 'optionsSource', 'includeBlankOption', 'variant_option', 'storeFile', 'files'), + '__selector__' => array('type', 'optionsSource', 'includeBlankOption', 'variant_option', 'multiple', 'storeFile', 'files', 'checkoutRelocate', 'chunking'), 'default' => '{attribute_legend},name,field_name,type,legend', - 'text' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{config_legend},minlength,maxlength,rgxp,placeholder,mandatory,multilingual,datepicker;{search_filters_legend},fe_search,fe_sorting,be_search', + 'text' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{config_legend},minlength,maxlength,rgxp,placeholder,mandatory,multilingual,datepicker;{search_filters_legend},fe_search,fe_sorting,be_search,be_filter', 'textarea' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{config_legend},minlength,maxlength,rgxp,placeholder,rte,mandatory,multilingual;{search_filters_legend},fe_search,fe_sorting,be_search', - 'select' => '{attribute_legend},name,field_name,type,legend,variant_option,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory,multiple,size;{search_filters_legend},fe_filter,fe_sorting,be_filter', - 'selectproduct' => '{attribute_legend},name,field_name,type,legend,variant_option,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory,multiple,size;{search_filters_legend},fe_sorting', - 'selectvariant_option' => '{attribute_legend},name,field_name,type,legend,variant_option;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{search_filters_legend},fe_filter,fe_sorting,be_filter', - 'radio' => '{attribute_legend},name,field_name,type,legend,variant_option,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory;{search_filters_legend},fe_filter,fe_sorting', + 'select' => '{attribute_legend},name,field_name,type,legend,variant_option,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory,multiple;{search_filters_legend},fe_filter,fe_sorting,be_filter', + 'selectproduct' => '{attribute_legend},name,field_name,type,legend,variant_option,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory,multiple;{search_filters_legend},fe_sorting', + 'selectvariant_option' => '{attribute_legend},name,field_name,type,legend,variant_option;{description_legend:hide},description;{options_legend},optionsSource,blankOptionLabel;{search_filters_legend},fe_filter,fe_sorting,be_filter', + 'radio' => '{attribute_legend},name,field_name,type,legend,variant_option,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory;{search_filters_legend},fe_filter,fe_sorting,be_filter', 'radioproduct' => '{attribute_legend},name,field_name,type,legend,variant_option,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory;{search_filters_legend},fe_sorting', 'radiovariant_option' => '{attribute_legend},name,field_name,type,legend,variant_option;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{search_filters_legend},fe_filter,fe_sorting,be_filter', - 'checkbox' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{options_legend},optionsSource;{config_legend},mandatory,multiple;{search_filters_legend},fe_filter,fe_sorting', - 'checkboxproduct' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{options_legend},optionsSource;{config_legend},mandatory,multiple;{search_filters_legend},fe_sorting', - 'conditionalselect' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory,multiple,size,conditionField;{search_filters_legend},fe_filter,fe_sorting', + 'checkbox' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{options_legend},optionsSource;{config_legend},mandatory;{search_filters_legend},fe_filter,fe_sorting,be_filter', + 'checkboxproduct' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{options_legend},optionsSource;{config_legend},mandatory;{search_filters_legend},fe_sorting', + 'conditionalselect' => '{attribute_legend},name,field_name,type,legend,customer_defined;{description_legend:hide},description;{options_legend},optionsSource,includeBlankOption;{config_legend},mandatory,multiple,conditionField;{search_filters_legend},fe_filter,fe_sorting', 'mediaManager' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},extensions,mandatory', - 'fileTree' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},fieldType,path,mandatory,files', - 'downloads' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},fieldType,sortBy,path,mandatory,files', - 'upload' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},extensions,maxlength,mandatory;{store_legend:hide},storeFile', - 'media' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},path,mandatory', + 'fileTree' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},fieldType,sortBy,path,mandatory,multilingual,files,isGallery', + 'downloads' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},fieldType,sortBy,path,mandatory,multilingual,files,isGallery', + 'upload' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},extensions,maxlength,mandatory;{store_legend:hide},checkoutRelocate', + 'media' => '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},path,mandatory,multilingual', ), // Subpalettes @@ -149,7 +148,10 @@ 'optionsSource_attribute' => 'options', 'optionsSource_table' => 'optionsTable', 'optionsSource_foreignKey' => 'foreignKey', + 'multiple' => 'size', 'includeBlankOption' => 'blankOptionLabel', + 'checkoutRelocate' => 'checkoutTargetFolder,checkoutTargetFile', + 'chunking' => 'chunkSize', ), // Fields @@ -220,10 +222,23 @@ 'exclude' => true, 'inputType' => 'radio', 'options_callback' => function($dc) { - $arrOptions = array('table', 'foreignKey', 'attribute'); + $arrOptions = [ + \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_TABLE, + \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_FOREIGNKEY, + \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_ATTRIBUTE, + ]; - if ($dc->activeRecord->variant_option == '' && $dc->activeRecord->customer_defined == '1') { - $arrOptions = array('table', 'product', 'foreignKey', 'attribute'); + if (!$dc->activeRecord->variant_option && $dc->activeRecord->customer_defined) { + $arrOptions = [ + \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_TABLE, + \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_PRODUCT, + \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_FOREIGNKEY, + \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_ATTRIBUTE, + ]; + } + + if ('checkbox' === $dc->activeRecord->type && !$dc->activeRecord->customer_defined) { + array_unshift($arrOptions, \Isotope\Interfaces\IsotopeAttributeWithOptions::SOURCE_NAME); } return $arrOptions; @@ -352,7 +367,7 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['multiple'], 'exclude' => true, 'inputType' => 'checkbox', - 'eval' => array('tl_class'=>'w50'), + 'eval' => array('submitOnChange'=>true, 'tl_class'=>'clr w50'), 'sql' => "char(1) NOT NULL default ''", ), 'size' => array @@ -460,12 +475,21 @@ 'eval' => array('tl_class'=>'w50 m12'), 'sql' => "char(1) NOT NULL default ''", ), + 'isGallery' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['isGallery'], + 'exclude' => true, + 'inputType' => 'checkbox', + 'eval' => array('tl_class'=>'w50'), + 'sql' => "char(1) NOT NULL default ''", + ), 'sortBy' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['sortBy'], + 'default' => 'name_asc', 'exclude' => true, 'inputType' => 'select', - 'options' => array('custom', 'name_asc', 'name_desc', 'date_asc', 'date_desc', 'random'), + 'options' => array('name_asc', 'name_desc', 'date_asc', 'date_desc', 'random', 'custom'), 'reference' => &$GLOBALS['TL_LANG']['tl_iso_attribute'], 'eval' => array('tl_class'=>'w50'), 'sql' => "varchar(32) NOT NULL default ''", @@ -478,6 +502,51 @@ 'eval' => array('fieldType'=>'radio', 'tl_class'=>'clr'), 'sql' => "binary(16) NULL", ), + 'checkoutRelocate' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['checkoutRelocate'], + 'exclude' => true, + 'inputType' => 'checkbox', + 'eval' => array('submitOnChange'=>true, 'tl_class'=>'w50'), + 'sql' => "char(1) NOT NULL default ''", + ), + 'checkoutTargetFolder' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['checkoutTargetFolder'], + 'exclude' => true, + 'default' => 'files/orders/##document_number##/##product_position##__{{flag::##product_name##|standardize}}/##attribute_field##', + 'inputType' => 'text', + 'reference' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['checkout_tokens'], + 'eval' => array('maxlength'=>255, 'tl_class'=>'clr w50', 'helpwizard'=>true), + 'sql' => "varchar(255) NOT NULL default ''", + ), + 'checkoutTargetFile' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['checkoutTargetFile'], + 'exclude' => true, + 'default' => '##file_target##', + 'inputType' => 'text', + 'reference' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['checkout_tokens'], + 'eval' => array('maxlength'=>255, 'tl_class'=>'w50', 'helpwizard'=>true), + 'sql' => "varchar(255) NOT NULL default ''", + ), + 'datepicker' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['datepicker'], + 'exclude' => true, + 'inputType' => 'checkbox', + 'eval' => array('tl_class'=>'w50'), + 'sql' => "char(1) NOT NULL default ''", + 'save_callback' => array + ( + array('Isotope\Backend\Attribute\Callback', 'validateDatepicker'), + ), + ), + + + /** + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3.0 + */ 'storeFile' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['storeFile'], @@ -510,17 +579,29 @@ 'eval' => array('tl_class'=>'w50'), 'sql' => "char(1) NOT NULL default ''", ), - 'datepicker' => array - ( - 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['datepicker'], - 'exclude' => true, - 'inputType' => 'checkbox', - 'eval' => array('tl_class'=>'w50'), - 'sql' => "char(1) NOT NULL default ''", - 'save_callback' => array - ( - array('Isotope\Backend\Attribute\Callback', 'validateDatepicker'), - ), - ), ), ); + + +if (in_array('fineuploader', \ModuleLoader::getActive(), true)) { + $GLOBALS['TL_DCA']['tl_iso_attribute']['palettes']['fineUploader'] = '{attribute_legend},name,field_name,type,legend;{description_legend:hide},description;{config_legend},mandatory,extensions,minlength,maxlength,chunking,multiple;{store_legend:hide},checkoutRelocate'; + + $GLOBALS['TL_DCA']['tl_iso_attribute']['fields']['chunking'] = array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['chunking'], + 'exclude' => true, + 'inputType' => 'checkbox', + 'eval' => array('submitOnChange'=>true, 'tl_class'=>'clr w50 m12'), + 'sql' => "char(1) NOT NULL default ''" + ); + + $GLOBALS['TL_DCA']['tl_iso_attribute']['fields']['chunkSize'] = array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_attribute']['chunkSize'], + 'default' => 2000000, + 'exclude' => true, + 'inputType' => 'text', + 'eval' => array('rgxp'=>'digit', 'tl_class'=>'w50'), + 'sql' => "varchar(16) NOT NULL default ''" + ); +} diff --git a/system/modules/isotope/dca/tl_iso_attribute_option.php b/system/modules/isotope/dca/tl_iso_attribute_option.php index ecad1f8085..b3db750d08 100755 --- a/system/modules/isotope/dca/tl_iso_attribute_option.php +++ b/system/modules/isotope/dca/tl_iso_attribute_option.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -220,4 +219,4 @@ function($varValue) { $GLOBALS['TL_DCA']['tl_iso_attribute_option']['config']['ptable'] = 'tl_iso_product'; $GLOBALS['TL_DCA']['tl_iso_attribute_option']['list']['sorting']['filter'] = array(array('field_name=?', \Input::get('field'))); $GLOBALS['TL_DCA']['tl_iso_attribute_option']['list']['sorting']['headerFields'] = array('name', 'type', 'alias', 'published'); -} \ No newline at end of file +} diff --git a/system/modules/isotope/dca/tl_iso_baseprice.php b/system/modules/isotope/dca/tl_iso_baseprice.php index 2836e0cd0e..e7e45a0df9 100644 --- a/system/modules/isotope/dca/tl_iso_baseprice.php +++ b/system/modules/isotope/dca/tl_iso_baseprice.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_config.php b/system/modules/isotope/dca/tl_iso_config.php index 422d206739..858ba650d7 100755 --- a/system/modules/isotope/dca/tl_iso_config.php +++ b/system/modules/isotope/dca/tl_iso_config.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -125,7 +124,7 @@ {pricing_legend},priceDisplay,currencyFormat,priceRoundPrecision,priceRoundIncrement; {currency_legend},currency,currencyPosition,currencySymbol; {converter_legend:hide},priceCalculateFactor,priceCalculateMode,currencyAutomator; - {order_legend:hide},orderPrefix,orderDigits,orderstatus_new,orderstatus_error; + {order_legend:hide},orderPrefix,orderDigits,orderstatus_new,orderstatus_error,orderDetailsModule; {config_legend},templateGroup,cartMinSubtotal; {products_legend},newProductPeriod; {analytics_legend},ga_enable', @@ -593,6 +592,16 @@ 'sql' => "int(10) unsigned NOT NULL default '0'", 'relation' => array('type'=>'hasOne', 'load'=>'lazy'), ), + 'orderDetailsModule' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_config']['orderDetailsModule'], + 'exclude' => true, + 'inputType' => 'select', + 'options_callback' => array('Isotope\Backend\Config\Callback', 'getOrderDetailsModules'), + 'eval' => array('includeBlankOption'=>true, 'tl_class'=>'w50'), + 'sql' => "int(10) unsigned NOT NULL default '0'", + 'relation' => array('type'=>'hasOne', 'table'=>'tl_module'), + ), 'templateGroup' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_config']['templateGroup'], diff --git a/system/modules/isotope/dca/tl_iso_document.php b/system/modules/isotope/dca/tl_iso_document.php index f31d1af1a1..d4231b3e20 100644 --- a/system/modules/isotope/dca/tl_iso_document.php +++ b/system/modules/isotope/dca/tl_iso_document.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_download.php b/system/modules/isotope/dca/tl_iso_download.php index d8c1a99a9a..ef56fccb65 100644 --- a/system/modules/isotope/dca/tl_iso_download.php +++ b/system/modules/isotope/dca/tl_iso_download.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_gallery.php b/system/modules/isotope/dca/tl_iso_gallery.php index 1fa4c960b9..53429d8a4d 100644 --- a/system/modules/isotope/dca/tl_iso_gallery.php +++ b/system/modules/isotope/dca/tl_iso_gallery.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -173,7 +172,9 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_gallery']['main_size'], 'exclude' => true, 'inputType' => 'imageSize', - 'options' => $GLOBALS['TL_CROP'], + 'options_callback' => function () { + return \System::getImageSizes(); + }, 'reference' => &$GLOBALS['TL_LANG']['MSC'], 'eval' => array('rgxp'=>'digit', 'nospace'=>true, 'helpwizard'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''" @@ -183,7 +184,9 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_gallery']['gallery_size'], 'exclude' => true, 'inputType' => 'imageSize', - 'options' => $GLOBALS['TL_CROP'], + 'options_callback' => function () { + return \System::getImageSizes(); + }, 'reference' => &$GLOBALS['TL_LANG']['MSC'], 'eval' => array('rgxp'=>'digit', 'nospace'=>true, 'helpwizard'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''" @@ -208,7 +211,9 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_gallery']['lightbox_size'], 'exclude' => true, 'inputType' => 'imageSize', - 'options' => $GLOBALS['TL_CROP'], + 'options_callback' => function () { + return \System::getImageSizes(); + }, 'reference' => &$GLOBALS['TL_LANG']['MSC'], 'eval' => array('rgxp'=>'digit', 'nospace'=>true, 'helpwizard'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''" @@ -218,7 +223,9 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_size'], 'exclude' => true, 'inputType' => 'imageSize', - 'options' => $GLOBALS['TL_CROP'], + 'options_callback' => function () { + return \System::getImageSizes(); + }, 'reference' => &$GLOBALS['TL_LANG']['MSC'], 'eval' => array('rgxp'=>'digit', 'nospace'=>true, 'helpwizard'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''" diff --git a/system/modules/isotope/dca/tl_iso_group.php b/system/modules/isotope/dca/tl_iso_group.php index 8ac6f0c410..3be7922a6f 100644 --- a/system/modules/isotope/dca/tl_iso_group.php +++ b/system/modules/isotope/dca/tl_iso_group.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ /** diff --git a/system/modules/isotope/dca/tl_iso_label.php b/system/modules/isotope/dca/tl_iso_label.php index bb3ac74a7a..3227b472e4 100644 --- a/system/modules/isotope/dca/tl_iso_label.php +++ b/system/modules/isotope/dca/tl_iso_label.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_orderstatus.php b/system/modules/isotope/dca/tl_iso_orderstatus.php index 22305bd389..2491b08ce1 100644 --- a/system/modules/isotope/dca/tl_iso_orderstatus.php +++ b/system/modules/isotope/dca/tl_iso_orderstatus.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -35,6 +34,7 @@ ( 'id' => 'primary', 'pid' => 'index', + 'paid' => 'index', ) ), ), diff --git a/system/modules/isotope/dca/tl_iso_payment.php b/system/modules/isotope/dca/tl_iso_payment.php index 51fec99024..d2d32c45f7 100644 --- a/system/modules/isotope/dca/tl_iso_payment.php +++ b/system/modules/isotope/dca/tl_iso_payment.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -126,7 +125,7 @@ 'paypal' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},paypal_account;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', 'postfinance' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},psp_pspid,psp_http_method,psp_hash_method,psp_hash_in,psp_hash_out,psp_dynamic_template,psp_payment_method;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', 'viveum' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},psp_pspid,psp_http_method,psp_hash_method,psp_hash_in,psp_hash_out,psp_dynamic_template;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', - 'datatrans' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,trans_type,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},datatrans_id,datatrans_sign;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', + 'datatrans' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,trans_type,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},datatrans_id,datatrans_sign,datatrans_hash_method,datatrans_hash_convert;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', 'innopay' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},vads_site_id,vads_certificate;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', 'sparkasse' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend:hide},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},sparkasse_paymentmethod,trans_type,sparkasse_sslmerchant,sparkasse_sslpassword,sparkasse_merchantref;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', 'sofortueberweisung' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend:hide},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},trans_type,sofortueberweisung_user_id,sofortueberweisung_project_id,sofortueberweisung_project_password;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},enabled', @@ -137,6 +136,7 @@ 'payone' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},trans_type,payone_clearingtype,payone_aid,payone_portalid,payone_key;{price_legend:hide},price,tax_class;{enabled_legend},debug,enabled', 'worldpay' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},worldpay_instId,worldpay_callbackPW,worldpay_signatureFields,worldpay_md5secret,worldpay_description;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', 'quickpay' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,trans_type,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},quickpay_merchantId,quickpay_agreementId,quickpay_apiKey,quickpay_privateKey,quickpay_paymentMethods;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', + 'opp' => '{type_legend},name,label,type;{note_legend:hide},note;{config_legend},new_order_status,trans_type,quantity_mode,minimum_quantity,maximum_quantity,minimum_total,maximum_total,countries,shipping_modules,product_types,product_types_condition,config_ids;{gateway_legend},opp_user_id,opp_password,opp_entity_id;{price_legend:hide},price,tax_class;{expert_legend:hide},guests,protected;{enabled_legend},debug,enabled', ), // Subpalettes @@ -270,9 +270,12 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['quantity_mode'], 'exclude' => true, 'inputType' => 'select', - 'options' => array('cart_items', 'cart_products'), + 'options' => [ + \Isotope\Model\Payment::QUANTITY_MODE_ITEMS, + \Isotope\Model\Payment::QUANTITY_MODE_PRODUCTS, + ], 'reference' => &$GLOBALS['TL_LANG']['tl_iso_payment']['quantity_mode'], - 'eval' => array('tl_class'=>'w50'), + 'eval' => array('mandatory'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(32) NOT NULL default ''", ), 'minimum_quantity' => array @@ -425,8 +428,8 @@ 'options_callback' => function($dc) { $payment = \Isotope\Model\Payment::findByPk($dc->id); - if ($payment === null || !$payment instanceof \Isotope\Model\Payment\PSP) { - return array(); + if (null === $payment || !$payment instanceof \Isotope\Model\Payment\PSP) { + return []; } return $payment->getPaymentMethods(); @@ -450,6 +453,25 @@ 'eval' => array('mandatory'=>true, 'maxlength'=>128, 'decodeEntities'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(128) NOT NULL default ''", ), + 'datatrans_hash_convert' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_hash_convert'], + 'exclude' => true, + 'inputType' => 'checkbox', + 'sql' => "char(1) NOT NULL default '0'", + 'eval' => array('tl_class' => 'w50 m12'), + ), + 'datatrans_hash_method' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_hash_method'], + 'exclude' => true, + 'default' => 'md5', + 'inputType' => 'select', + 'options' => array('md5', 'sha256'), + 'reference' => &$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_hash_method'], + 'eval' => array('mandatory'=>true, 'tl_class'=>'w50'), + 'sql' => "char(6) NOT NULL default 'md5'", + ), 'vads_site_id' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['vads_site_id'], @@ -757,6 +779,30 @@ 'eval' => array('decodeEntities'=>true, 'tl_class'=>'clr long'), 'sql' => "text NULL", ), + 'opp_user_id' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['opp_user_id'], + 'exclude' => true, + 'inputType' => 'text', + 'eval' => array('mandatory'=>true, 'maxlength'=>32, 'rgpx'=>'alnum', 'tl_class'=>'w50'), + 'sql' => "varchar(32) NOT NULL default ''", + ), + 'opp_password' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['opp_password'], + 'exclude' => true, + 'inputType' => 'text', + 'eval' => array('mandatory'=>true, 'maxlength'=>32, 'rgxp'=>'alnum', 'decodeEntities'=>true, 'hideInput'=>true, 'tl_class'=>'w50'), + 'sql' => "varchar(32) NOT NULL default ''", + ), + 'opp_entity_id' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['opp_entity_id'], + 'exclude' => true, + 'inputType' => 'text', + 'eval' => array('mandatory'=>true, 'maxlength'=>32, 'rgpx'=>'alnum', 'tl_class'=>'w50'), + 'sql' => "varchar(32) NOT NULL default ''", + ), 'requireCCV' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'], diff --git a/system/modules/isotope/dca/tl_iso_product.php b/system/modules/isotope/dca/tl_iso_product.php index 41d37509b0..71d7696031 100755 --- a/system/modules/isotope/dca/tl_iso_product.php +++ b/system/modules/isotope/dca/tl_iso_product.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ \System::loadLanguageFile(\Isotope\Model\ProductType::getTable()); @@ -64,6 +63,7 @@ 'id' => 'primary', 'gid' => 'index', 'pid,language' => 'index', + 'language,fallback' => 'index', 'language,published,start,stop,pid' => 'index', 'start' => 'index', ) @@ -184,6 +184,13 @@ return '
'; } ), + 'fallback' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_product']['fallback'], + 'href' => 'key=fallback', + 'icon' => 'featured.gif', + 'button_callback' => array('Isotope\Backend\Product\Button', 'forFallbackToggle') + ), 'variants' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_product']['variants'], @@ -316,6 +323,19 @@ 'attributes' => array('systemColumn'=>true), 'sql' => "blob NULL", ), + 'fallback' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_product']['fallback'], + 'exclude' => true, + 'inputType' => 'checkbox', + 'eval' => array('doNotCopy'=>true, 'tl_class'=>'clr'), + 'attributes' => array('legend'=>'general_legend', 'variant_fixed'=>true, 'excluded'=>true, 'systemColumn'=>true), + 'sql' => "char(1) NOT NULL default ''", + 'save_callback' => array + ( + array('Isotope\Backend\Product\Fallback', 'reset') + ), + ), 'alias' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_product']['alias'], @@ -339,7 +359,7 @@ 'sorting' => true, 'inputType' => 'text', 'eval' => array('mandatory'=>true, 'maxlength'=>128, 'unique'=>true, 'tl_class'=>'w50'), - 'attributes' => array('legend'=>'general_legend', 'fe_sorting'=>true, 'fe_search'=>true), + 'attributes' => array('legend'=>'general_legend', 'fe_sorting'=>true, 'fe_search'=>true, 'singular'=>true), 'sql' => "varchar(128) NOT NULL default ''", ), 'name' => array @@ -360,7 +380,7 @@ 'search' => true, 'inputType' => 'textarea', 'eval' => array('style'=>'height:80px', 'tl_class'=>'clr'), - 'attributes' => array('legend'=>'general_legend', 'multilingual'=>true), + 'attributes' => array('legend'=>'general_legend', 'multilingual'=>true, 'fe_search'=>true), 'sql' => "text NULL", ), 'description' => array @@ -380,7 +400,7 @@ 'search' => true, 'inputType' => 'text', 'eval' => array('maxlength'=>255, 'tl_class'=>'clr long'), - 'attributes' => array('legend'=>'meta_legend', 'multilingual'=>true), + 'attributes' => array('legend'=>'meta_legend', 'multilingual'=>true, 'variant_excluded'=>true), 'sql' => "varchar(255) NOT NULL default ''", ), 'meta_description' => array @@ -390,7 +410,7 @@ 'search' => true, 'inputType' => 'textarea', 'eval' => array('style'=>'height:60px', 'tl_class'=>'clr'), - 'attributes' => array('legend'=>'meta_legend', 'multilingual'=>true), + 'attributes' => array('legend'=>'meta_legend', 'multilingual'=>true, 'variant_excluded'=>true), 'sql' => "text NULL", ), 'meta_keywords' => array @@ -400,7 +420,7 @@ 'search' => true, 'inputType' => 'textarea', 'eval' => array('style'=>'height:40px', 'tl_class'=>'clr'), - 'attributes' => array('legend'=>'meta_legend', 'multilingual'=>true), + 'attributes' => array('legend'=>'meta_legend', 'multilingual'=>true, 'variant_excluded'=>true), 'sql' => "text NULL", ), 'price' => array @@ -410,7 +430,7 @@ 'inputType' => 'timePeriod', 'foreignKey' => \Isotope\Model\TaxClass::getTable().'.name', 'eval' => array('mandatory'=>true, 'maxlength'=>13, 'rgxp'=>'price', 'includeBlankOption'=>true, 'blankOptionLabel'=>&$GLOBALS['TL_LANG']['MSC']['taxFree'], 'doNotSaveEmpty'=>true, 'tl_class'=>'w50'), - 'attributes' => array('legend'=>'pricing_legend', 'fe_sorting'=>true, 'dynamic'=>true, 'systemColumn'=>true, 'type'=>'\Isotope\Model\Attribute\Price'), + 'attributes' => array('legend'=>'pricing_legend', 'fe_sorting'=>true, 'dynamic'=>true, 'singular'=>true, 'systemColumn'=>true, 'type'=>'\Isotope\Model\Attribute\Price'), 'load_callback' => array ( array('\Isotope\Backend\Product\Price', 'load'), @@ -474,7 +494,7 @@ 'options' => array('mg', 'g', 'kg', 't', 'ct', 'oz', 'lb', 'st', 'grain'), 'reference' => &$GLOBALS['TL_LANG']['WGT'], 'eval' => array('rgxp'=>'digit', 'tl_class'=>'w50', 'helpwizard'=>true), - 'attributes' => array('legend'=>'shipping_legend'), + 'attributes' => array('legend'=>'shipping_legend', 'type'=>'\Isotope\Model\Attribute\Weight'), 'sql' => "varchar(255) NOT NULL default ''", ), 'shipping_exempt' => array @@ -586,8 +606,10 @@ if (\Input::get('id')) { $GLOBALS['TL_LANG']['tl_iso_product']['new'] = $GLOBALS['TL_LANG']['tl_iso_product']['new_variant']; $GLOBALS['TL_DCA']['tl_iso_product']['config']['switchToEdit'] = false; - unset($GLOBALS['TL_DCA']['tl_iso_product']['list']['global_operations']['import']); - unset($GLOBALS['TL_DCA']['tl_iso_product']['list']['global_operations']['groups']); + unset( + $GLOBALS['TL_DCA']['tl_iso_product']['list']['global_operations']['import'], + $GLOBALS['TL_DCA']['tl_iso_product']['list']['global_operations']['groups'] + ); } else { unset($GLOBALS['TL_DCA']['tl_iso_product']['list']['global_operations']['generate']); } diff --git a/system/modules/isotope/dca/tl_iso_product_category.php b/system/modules/isotope/dca/tl_iso_product_category.php index e6e9612db8..0448abd2ab 100644 --- a/system/modules/isotope/dca/tl_iso_product_category.php +++ b/system/modules/isotope/dca/tl_iso_product_category.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_product_collection.php b/system/modules/isotope/dca/tl_iso_product_collection.php index c78f0d3fb3..5c9fbc4b31 100755 --- a/system/modules/isotope/dca/tl_iso_product_collection.php +++ b/system/modules/isotope/dca/tl_iso_product_collection.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -159,7 +158,7 @@ 'filter' => true, 'sorting' => true, 'eval' => array('rgxp'=>'date'), - 'sql' => "varchar(10) NOT NULL default ''", + 'sql' => "int(10) NULL", ), 'store_id' => array ( @@ -228,7 +227,7 @@ 'exclude' => true, 'inputType' => 'text', 'eval' => array('rgxp'=>'datim', 'datepicker'=>(method_exists($this,'getDatePickerString') ? $this->getDatePickerString() : true), 'tl_class'=>'w50 wizard'), - 'sql' => "varchar(10) NOT NULL default ''" + 'sql' => 'int(10) NULL' ), 'date_shipped' => array ( @@ -236,7 +235,7 @@ 'exclude' => true, 'inputType' => 'text', 'eval' => array('rgxp'=>'date', 'datepicker'=>(method_exists($this,'getDatePickerString') ? $this->getDatePickerString() : true), 'tl_class'=>'w50 wizard'), - 'sql' => "varchar(10) NOT NULL default ''", + 'sql' => 'int(10) NULL', ), 'config_id' => array ( diff --git a/system/modules/isotope/dca/tl_iso_product_collection_download.php b/system/modules/isotope/dca/tl_iso_product_collection_download.php index 7d29b5c4b0..21801babf2 100644 --- a/system/modules/isotope/dca/tl_iso_product_collection_download.php +++ b/system/modules/isotope/dca/tl_iso_product_collection_download.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_product_collection_item.php b/system/modules/isotope/dca/tl_iso_product_collection_item.php index 778a0d8b63..98679186d1 100644 --- a/system/modules/isotope/dca/tl_iso_product_collection_item.php +++ b/system/modules/isotope/dca/tl_iso_product_collection_item.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_product_collection_surcharge.php b/system/modules/isotope/dca/tl_iso_product_collection_surcharge.php index 52411ff5ec..c3a80f7eb2 100644 --- a/system/modules/isotope/dca/tl_iso_product_collection_surcharge.php +++ b/system/modules/isotope/dca/tl_iso_product_collection_surcharge.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -93,4 +92,4 @@ 'sql' => "blob NULL", ), ), -); \ No newline at end of file +); diff --git a/system/modules/isotope/dca/tl_iso_product_price.php b/system/modules/isotope/dca/tl_iso_product_price.php index fd9d156b07..5b74d36a68 100644 --- a/system/modules/isotope/dca/tl_iso_product_price.php +++ b/system/modules/isotope/dca/tl_iso_product_price.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_product_pricetier.php b/system/modules/isotope/dca/tl_iso_product_pricetier.php index 1b60bf6ccc..621003a6e8 100644 --- a/system/modules/isotope/dca/tl_iso_product_pricetier.php +++ b/system/modules/isotope/dca/tl_iso_product_pricetier.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_productcache.php b/system/modules/isotope/dca/tl_iso_productcache.php index a053309645..d34f553c33 100644 --- a/system/modules/isotope/dca/tl_iso_productcache.php +++ b/system/modules/isotope/dca/tl_iso_productcache.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_producttype.php b/system/modules/isotope/dca/tl_iso_producttype.php index 9300fdc9c0..70718deaed 100755 --- a/system/modules/isotope/dca/tl_iso_producttype.php +++ b/system/modules/isotope/dca/tl_iso_producttype.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -115,7 +114,7 @@ ( '__selector__' => array('class', 'prices', 'variants'), 'default' => '{name_legend},name,class', - 'standard' => '{name_legend},name,class,fallback;{description_legend:hide},description;{prices_legend:hide},prices;{template_legend},list_template,reader_template,list_gallery,reader_gallery;{attributes_legend},attributes;{variants_legend:hide},variants;{expert_legend:hide},shipping_exempt,downloads', + 'standard' => '{name_legend},name,class,fallback;{description_legend:hide},description;{prices_legend:hide},prices;{template_legend},list_template,reader_template,list_gallery,reader_gallery,cssClass;{attributes_legend},attributes;{variants_legend:hide},variants;{expert_legend:hide},shipping_exempt,downloads', ), // Subpalettes @@ -130,11 +129,11 @@ ( 'id' => array ( - 'sql' => "int(10) unsigned NOT NULL auto_increment", + 'sql' => "int(10) unsigned NOT NULL auto_increment", ), 'tstamp' => array ( - 'sql' => "int(10) unsigned NOT NULL default '0'", + 'sql' => "int(10) unsigned NOT NULL default '0'", ), 'name' => array ( @@ -220,7 +219,7 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_producttype']['list_gallery'], 'exclude' => true, 'inputType' => 'select', - 'foreignKey' => \Isotope\Model\Gallery::getTable().'.name', + 'foreignKey' => \Isotope\Model\Gallery::getTable().'.name', 'eval' => array('mandatory'=>true, 'includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'), 'sql' => "int(10) unsigned NOT NULL default '0'", ), @@ -229,10 +228,19 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_producttype']['reader_gallery'], 'exclude' => true, 'inputType' => 'select', - 'foreignKey' => \Isotope\Model\Gallery::getTable().'.name', + 'foreignKey' => \Isotope\Model\Gallery::getTable().'.name', 'eval' => array('mandatory'=>true, 'includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'), 'sql' => "int(10) unsigned NOT NULL default '0'", ), + 'cssClass' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_producttype']['cssClass'], + 'exclude' => true, + 'inputType' => 'text', + 'search' => true, + 'eval' => array('maxlength'=>64, 'tl_class'=>'w50'), + 'sql' => "varchar(64) NOT NULL default ''" + ), 'attributes' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_producttype']['attributes'], @@ -297,6 +305,7 @@ 'save_callback' => array ( array('Isotope\Backend\ProductType\Callback', 'validateVariantAttributes'), + array('Isotope\Backend\ProductType\Callback', 'validateSingularAttributes'), array('Isotope\Backend\ProductType\AttributeWizard', 'save'), ), ), diff --git a/system/modules/isotope/dca/tl_iso_related_category.php b/system/modules/isotope/dca/tl_iso_related_category.php index 2e5d579412..545b2db442 100644 --- a/system/modules/isotope/dca/tl_iso_related_category.php +++ b/system/modules/isotope/dca/tl_iso_related_category.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_related_product.php b/system/modules/isotope/dca/tl_iso_related_product.php index 5095232e2b..af1457f25a 100644 --- a/system/modules/isotope/dca/tl_iso_related_product.php +++ b/system/modules/isotope/dca/tl_iso_related_product.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_requestcache.php b/system/modules/isotope/dca/tl_iso_requestcache.php index 56db6659e6..404bb9ef23 100644 --- a/system/modules/isotope/dca/tl_iso_requestcache.php +++ b/system/modules/isotope/dca/tl_iso_requestcache.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -51,4 +50,4 @@ 'sql' => "blob NULL", ), ), -); \ No newline at end of file +); diff --git a/system/modules/isotope/dca/tl_iso_shipping.php b/system/modules/isotope/dca/tl_iso_shipping.php index 8aee76d5e0..f3cbb16fa0 100755 --- a/system/modules/isotope/dca/tl_iso_shipping.php +++ b/system/modules/isotope/dca/tl_iso_shipping.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -258,9 +257,12 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_shipping']['quantity_mode'], 'exclude' => true, 'inputType' => 'select', - 'options' => array('cart_items', 'cart_products'), + 'options' => [ + \Isotope\Model\Shipping::QUANTITY_MODE_ITEMS, + \Isotope\Model\Shipping::QUANTITY_MODE_PRODUCTS, + ], 'reference' => &$GLOBALS['TL_LANG']['tl_iso_shipping']['quantity_mode'], - 'eval' => array('tl_class'=>'w50'), + 'eval' => array('mandatory'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(32) NOT NULL default ''", ), 'minimum_quantity' => array @@ -356,7 +358,12 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_shipping']['group_calculation'], 'exclude' => true, 'inputType' => 'select', - 'options' => array('first', 'lowest', 'highest', 'summarize'), + 'options' => [ + \Isotope\Model\Shipping\Group::CALCULATE_FIRST, + \Isotope\Model\Shipping\Group::CALCULATE_LOWEST, + \Isotope\Model\Shipping\Group::CALCULATE_HIGHEST, + \Isotope\Model\Shipping\Group::CALCULATE_SUM, + ], 'reference' => &$GLOBALS['TL_LANG']['tl_iso_shipping'], 'eval' => array('tl_class'=>'w50'), 'sql' => "varchar(10) NOT NULL default ''", diff --git a/system/modules/isotope/dca/tl_iso_tax_class.php b/system/modules/isotope/dca/tl_iso_tax_class.php index 0a6a034051..f02b559c3b 100755 --- a/system/modules/isotope/dca/tl_iso_tax_class.php +++ b/system/modules/isotope/dca/tl_iso_tax_class.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_iso_tax_rate.php b/system/modules/isotope/dca/tl_iso_tax_rate.php index 044068d16e..af0b4aef0b 100755 --- a/system/modules/isotope/dca/tl_iso_tax_rate.php +++ b/system/modules/isotope/dca/tl_iso_tax_rate.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_member.php b/system/modules/isotope/dca/tl_member.php index f296b9e62f..8f0a9f260e 100755 --- a/system/modules/isotope/dca/tl_member.php +++ b/system/modules/isotope/dca/tl_member.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_module.php b/system/modules/isotope/dca/tl_module.php index 39ed4857e4..d3a84583fe 100755 --- a/system/modules/isotope/dca/tl_module.php +++ b/system/modules/isotope/dca/tl_module.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -21,20 +20,21 @@ $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_productlist'] = '{title_legend},name,headline,type;{config_legend},numberOfItems,perPage,iso_category_scope,iso_list_where,iso_newFilter,iso_filterModules,iso_listingSortField,iso_listingSortDirection;{redirect_legend},iso_addProductJumpTo,iso_jump_first;{reference_legend:hide},defineRoot;{template_legend:hide},customTpl,iso_list_layout,iso_gallery,iso_cols,iso_use_quantity,iso_hide_list,iso_includeMessages,iso_emptyMessage,iso_emptyFilter,iso_buttons;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_productvariantlist'] = '{title_legend},name,headline,type;{config_legend},numberOfItems,perPage,iso_category_scope,iso_list_where,iso_newFilter,iso_filterModules,iso_listingSortField,iso_listingSortDirection;{redirect_legend},iso_addProductJumpTo,iso_jump_first;{reference_legend:hide},defineRoot;{template_legend:hide},customTpl,iso_list_layout,iso_gallery,iso_cols,iso_use_quantity,iso_hide_list,,iso_includeMessages,iso_emptyMessage,iso_emptyFilter,iso_buttons;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_productreader'] = '{title_legend},name,headline,type;{config_legend},iso_use_quantity,iso_display404Page;{redirect_legend},iso_addProductJumpTo;{template_legend:hide},customTpl,iso_reader_layout,iso_gallery,iso_includeMessages,iso_buttons;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_favorites'] = '{title_legend},name,headline,type;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages,iso_emptyMessage;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_cart'] = '{title_legend},name,headline,type;{redirect_legend},iso_cart_jumpTo,iso_checkout_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_continueShopping,iso_includeMessages,iso_emptyMessage;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkout'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,nc_notification;{redirect_legend},iso_forward_review,orderCompleteJumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,tableless,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkoutmember'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,iso_addToAddressbook,nc_notification;{redirect_legend},iso_forward_review,orderCompleteJumpTo,iso_login_jumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,tableless,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkoutguest'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,nc_notification;{redirect_legend},iso_forward_review,orderCompleteJumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,tableless,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkoutboth'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,iso_addToAddressbook,nc_notification;{redirect_legend},iso_forward_review,orderCompleteJumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,tableless,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_orderhistory'] = '{title_legend},name,headline,type;{config_legend},iso_config_ids;{redirect_legend},jumpTo;{template_legend},customTpl,iso_includeMessages;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_orderdetails'] = '{title_legend},name,headline,type;{config_legend},iso_loginRequired;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkout'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,nc_notification;{redirect_legend},iso_forward_review,iso_checkout_skippable,orderCompleteJumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,tableless,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkoutmember'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,iso_addToAddressbook,nc_notification;{redirect_legend},iso_forward_review,iso_checkout_skippable,orderCompleteJumpTo,iso_login_jumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,tableless,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkoutguest'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,nc_notification;{redirect_legend},iso_forward_review,iso_checkout_skippable,orderCompleteJumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,tableless,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_checkoutboth'] = '{title_legend},name,headline,type;{config_legend},iso_checkout_method,iso_payment_modules,iso_shipping_modules,iso_addToAddressbook,nc_notification;{redirect_legend},iso_forward_review,iso_checkout_skippable,orderCompleteJumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,tableless,iso_includeMessages;{iso_order_conditions_legend},iso_order_conditions,iso_order_conditions_position;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_orderhistory'] = '{title_legend},name,headline,type;{config_legend},iso_config_ids;{redirect_legend},jumpTo,iso_cart_jumpTo;{template_legend},customTpl,iso_includeMessages;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_orderdetails'] = '{title_legend},name,headline,type;{config_legend},iso_loginRequired;{redirect_legend:hide},iso_cart_jumpTo;{template_legend},customTpl,iso_collectionTpl,iso_orderCollectionBy,iso_gallery,iso_includeMessages;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_configswitcher'] = '{title_legend},name,headline,type;{config_legend},iso_config_ids;{template_legend},customTpl,iso_includeMessages;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_productfilter'] = '{title_legend},name,headline,type;{config_legend},iso_category_scope,iso_list_where,iso_newFilter,iso_enableLimit,iso_filterFields,iso_filterHideSingle,iso_searchFields,iso_searchAutocomplete,iso_sortingFields,iso_listingSortField,iso_listingSortDirection;{template_legend},customTpl,iso_filterTpl,iso_includeMessages,iso_hide_list;{redirect_legend},jumpTo;{reference_legend:hide},defineRoot;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_cumulativefilter'] = '{title_legend},name,headline,type;{config_legend},iso_category_scope,iso_list_where,iso_newFilter,iso_cumulativeFields,iso_filterHideSingle;{template_legend},customTpl,navigationTpl,iso_includeMessages,iso_hide_list;{redirect_legend},jumpTo;{reference_legend:hide},defineRoot;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_addressbook'] = '{title_legend},name,headline,type;{config_legend},nc_notification;{template_legend},customTpl,memberTpl,tableless,iso_includeMessages;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_relatedproducts'] = '{title_legend},name,headline,type;{config_legend},iso_related_categories,numberOfItems,perPage;{redirect_legend},iso_addProductJumpTo;{template_legend:hide},customTpl,iso_list_layout,iso_gallery,iso_cols,iso_use_quantity,iso_includeMessages,iso_emptyMessage,iso_buttons;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_relatedproducts'] = '{title_legend},name,headline,type;{config_legend},iso_related_categories,numberOfItems,perPage,iso_list_where,iso_newFilter,iso_listingSortField,iso_listingSortDirection;{redirect_legend},iso_addProductJumpTo;{template_legend:hide},customTpl,iso_list_layout,iso_gallery,iso_cols,iso_use_quantity,iso_includeMessages,iso_emptyMessage,iso_buttons;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_messages'] = '{title_legend},name,headline,type;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; -$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_shipping_calculator'] = '{title_legend},name,headline,type;{config_legend},iso_shipping_modules;{template_legend:hide},customTpl;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; +$GLOBALS['TL_DCA']['tl_module']['palettes']['iso_shipping_calculator'] = '{title_legend},name,headline,type;{config_legend},iso_shipping_modules;{template_legend:hide},customTpl,iso_emptyMessage;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; $GLOBALS['TL_DCA']['tl_module']['palettes']['iso_cart_address'] = '{title_legend},name,headline,type;{config_legend},iso_address,iso_addressFields;{redirect_legend:hide},jumpTo;{template_legend:hide},memberTpl,tableless;{protected_legend:hide},protected;{expert_legend:hide},guests,cssID,space'; @@ -54,7 +54,7 @@ 'label' => &$GLOBALS['TL_LANG']['tl_module']['iso_list_layout'], 'exclude' => true, 'inputType' => 'select', - 'options_callback' => function(\DataContainer $dc) { + 'options_callback' => function() { return \Isotope\Backend::getTemplates('iso_list_'); }, 'eval' => array('includeBlankOption'=>true, 'tl_class'=>'w50', 'chosen'=>true), @@ -66,7 +66,7 @@ 'label' => &$GLOBALS['TL_LANG']['tl_module']['iso_reader_layout'], 'exclude' => true, 'inputType' => 'select', - 'options_callback' => function(\DataContainer $dc) { + 'options_callback' => function() { return \Isotope\Backend::getTemplates('iso_reader_'); }, 'eval' => array('includeBlankOption'=>true, 'chosen'=>true, 'tl_class'=>'w50'), @@ -89,7 +89,7 @@ 'exclude' => true, 'default' => 'iso_collection_default', 'inputType' => 'select', - 'options_callback' => function(\DataContainer $dc) { + 'options_callback' => function() { return \Isotope\Backend::getTemplates('iso_collection_'); }, 'eval' => array('mandatory'=>true, 'chosen'=>true, 'tl_class'=>'w50'), @@ -216,7 +216,7 @@ 'inputType' => 'checkboxWizard', 'foreignKey' => \Isotope\Model\Config::getTable().'.name', 'eval' => array('multiple'=>true, 'mandatory'=>true, 'tl_class'=>'clr'), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', 'relation' => array('type'=>'hasMany', 'load'=>'lazy'), ); @@ -228,7 +228,7 @@ 'foreignKey' => \Isotope\Model\Payment::getTable().'.name', 'options_callback' => array('Isotope\Backend\Module\Callback', 'getPaymentModules'), 'eval' => array('multiple'=>true), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', 'relation' => array('type'=>'hasMany', 'load'=>'lazy'), ); @@ -240,7 +240,7 @@ 'foreignKey' => \Isotope\Model\Shipping::getTable().'.name', 'options_callback' => array('Isotope\Backend\Module\Callback', 'getShippingModules'), 'eval' => array('multiple'=>true), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', 'relation' => array('type'=>'hasMany', 'load'=>'lazy'), ); @@ -264,6 +264,17 @@ 'sql' => "char(1) NOT NULL default ''", ); +$GLOBALS['TL_DCA']['tl_module']['fields']['iso_checkout_skippable'] = array +( + 'label' => &$GLOBALS['TL_LANG']['tl_module']['iso_checkout_skippable'], + 'exclude' => true, + 'inputType' => 'checkbox', + 'options' => ['billing_address', 'shipping_address', 'payment_method', 'shipping_method'], + 'reference' => &$GLOBALS['TL_LANG']['tl_module']['iso_checkout_skippable'], + 'eval' => ['multiple' => true], + 'sql' => "text NULL", +); + $GLOBALS['TL_DCA']['tl_module']['fields']['iso_order_conditions'] = array ( 'label' => &$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'], @@ -371,7 +382,7 @@ 'foreignKey' => 'tl_module.name', 'options_callback' => array('Isotope\Backend\Module\Callback', 'getFilterModules'), 'eval' => array('multiple'=>true, 'tl_class'=>'clr'), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', 'relation' => array('type'=>'hasMany', 'load'=>'lazy'), ); @@ -382,7 +393,7 @@ 'inputType' => 'checkboxWizard', 'options_callback' => array('Isotope\Backend\Module\Callback', 'getFilterFields'), 'eval' => array('multiple'=>true, 'tl_class'=>'clr w50 w50h'), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', ); $GLOBALS['TL_DCA']['tl_module']['fields']['iso_cumulativeFields'] = array @@ -395,7 +406,7 @@ 'tl_class' => 'clr', 'columnsCallback' => array('Isotope\Backend\Module\CumulativeFields', 'getColumns') ), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', 'save_callback' => array( array('Isotope\Backend\Module\CumulativeFields', 'validateConfiguration') ) @@ -429,7 +440,7 @@ 'inputType' => 'checkboxWizard', 'options_callback' => array('Isotope\Backend\Module\Callback', 'getSearchFields'), 'eval' => array('multiple'=>true, 'tl_class'=>'clr w50 w50h'), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', ); $GLOBALS['TL_DCA']['tl_module']['fields']['iso_searchAutocomplete'] = array @@ -449,7 +460,7 @@ 'inputType' => 'checkboxWizard', 'options_callback' => array('Isotope\Backend\Module\Callback', 'getSortingFields'), 'eval' => array('multiple'=>true, 'tl_class'=>'clr w50 w50h'), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', ); $GLOBALS['TL_DCA']['tl_module']['fields']['iso_enableLimit'] = array @@ -529,7 +540,7 @@ 'default' => array('add_to_cart'), 'options_callback' => array('Isotope\Backend\Module\Callback', 'getButtons'), 'eval' => array('multiple'=>true, 'tl_class'=>'clr'), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', ); $GLOBALS['TL_DCA']['tl_module']['fields']['iso_related_categories'] = array @@ -539,7 +550,7 @@ 'inputType' => 'checkboxWizard', 'foreignKey' => \Isotope\Model\RelatedCategory::getTable().'.name', 'eval' => array('mandatory'=>true, 'multiple'=>true, 'tl_class'=>'clr'), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', 'relation' => array('type'=>'hasMany', 'load'=>'lazy'), ); @@ -569,7 +580,7 @@ 'options' => array('billing', 'shipping'), 'reference' => &$GLOBALS['TL_LANG']['tl_module']['iso_address'], 'eval' => array('mandatory'=>true, 'multiple'=>true), - 'sql' => "blob NULL", + 'sql' => 'blob NULL', ); $GLOBALS['TL_DCA']['tl_module']['fields']['iso_addressFields'] = array @@ -595,12 +606,12 @@ return $arrOptions; }, 'eval' => array('mandatory'=>true, 'multiple'=>true, 'tl_class'=>'clr'), - 'sql' => "blob NULL" + 'sql' => 'blob NULL' ); $GLOBALS['TL_DCA']['tl_module']['fields']['iso_productcache'] = array ( - 'sql' => "blob NULL", + 'sql' => 'blob NULL', ); diff --git a/system/modules/isotope/dca/tl_nc_notification.php b/system/modules/isotope/dca/tl_nc_notification.php index fa083c6364..e2b923ac7e 100644 --- a/system/modules/isotope/dca/tl_nc_notification.php +++ b/system/modules/isotope/dca/tl_nc_notification.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_page.php b/system/modules/isotope/dca/tl_page.php index 3cd16a9c14..b5746fd141 100755 --- a/system/modules/isotope/dca/tl_page.php +++ b/system/modules/isotope/dca/tl_page.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_settings.php b/system/modules/isotope/dca/tl_settings.php index 0fe191dd8e..22668899a9 100644 --- a/system/modules/isotope/dca/tl_settings.php +++ b/system/modules/isotope/dca/tl_settings.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_user.php b/system/modules/isotope/dca/tl_user.php index a2d998e258..e86f7146f5 100644 --- a/system/modules/isotope/dca/tl_user.php +++ b/system/modules/isotope/dca/tl_user.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/dca/tl_user_group.php b/system/modules/isotope/dca/tl_user_group.php index 69f2611481..27855d1d20 100644 --- a/system/modules/isotope/dca/tl_user_group.php +++ b/system/modules/isotope/dca/tl_user_group.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md new file mode 100644 index 0000000000..b697c60fc9 --- /dev/null +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -0,0 +1,122 @@ +Isotope eCommerce Changelog +=========================== + +Version 2.4.0 (2016-12-21) +-------------------------- + +### New + +- Added plugin for Contao Manager + + +### Improved + +- Only select menu variant options must have blank option (#1738) +- Remove product category and price version info from welcome screen (#1725) +- Remove pagination parameter from cumulative filter (#1739) + + +### Fixed + +- Prevent error message when no buttons are enabled (#1735) +- Name and help wizard for model types were no longer translated (#1716) +- Shipping and payment quantity mode is mandatory (#1743) +- Prevent duplicate collection error if cart cookie could not be set (#1721) +- Incorrect tax free total calculation in net-calculation mode (#1711) +- PHP7 does not allow callback value by reference in array_filter (#1746) + + +Version 2.4.0-rc1 (2016-10-07) +------------------------------ + +### New + +- Re-order an order from order history or details frontend module +- Added new favorite products collection +- Shipping weight can now be generated on product and collection +- Cart rules can be limited to the weight of products in cart +- Added insert tag {{cart::weight::kg}} to output weight of product collection +- Added support for ChangeLanguage v3 +- Can skip billing address to always use the member address +- Can skip shipping address to always use billing address +- Rule discount can now be configured to always round up, down or commercially + + +### Improved + +- Product teaser is now searchable in the frontend +- Merged address DCA into fields so modifyAddressFields hook can modify field config +- Custom FileTree, Downloads and Media attributes are now translatable +- Now uses Contao block templates for template inheritance +- Correctly handle tableless forms in Contao 4 +- Language files are now stored as XLIFF +- Products on the home page no longer generates empty action attribute (#1672) +- Remove unsupported characters from phone number in Postfinance payment method (#1662) +- Correctly handle empty cart in shipping calculator (#1697) +- Removed remaining MooTools dependencies (#1694) +- Pre-fill country from member for new address book entries +- Use Guzzle or HttpRequestExtended to support HTTP/1.1 for PayPal +- Use ipnpb.paypal.com URL for PayPal data confirmation (#1657) +- Do not display product in breadcrumb for 404 and 403 page types (#1690) +- Correctly handle single checkbox options in the backend (#1658) +- Sanitize product names and address data for payment providers (#1256) +- Placeholder for text attributes is now translatable (#1707) + + +### Fixed + +- Fixed live payment validation for Open Payment Platform +- Variant attributes must always have a blank option +- Canonical tags generated link to unpublished pages (#1671) +- Subdivision validation failed for certain countries (e.g. great britain) (#1678) +- Shipping and payment method was not displayed if amount was between 0 and 1 +- Backend filter options were IDs instead of labels when using foreignKey options (#1683) +- Product alias was not correctly generated when duplicating product (#1659) +- Inline and ElevateZoom gallery only worked once per page due to duplicate CSS ID (#1674) +- Guest carts were deleted every day (#1709) +- Page picker was filtered if the product category filter is active (#1701) +- Rounding issues in product quantity summary and net price on gross shop config +- Default sorting field in product filter module was not applied to dropdown + + + +Version 2.4.0-beta1 (2016-07-06) +-------------------------------- + +### New + +- Isotope now works with jQuery, MooTools or Vanilla JS +- Added new report for "members vs. guest" orders (#1577) +- Allow to set a default variant for each product (#1565) +- Skip shipping and payment methods if only one option is available (#1217) +- Added the responsive images feature (#1423) +- Added option to edit products that were added to the cart +- Added support for SQL condition, new/old filter and sorting in related product list (#1518) +- Added support for ajax file uploads with terminal42/contao-fineuploader +- The FileTree attribute is now sortable (#1561) +- Added CSS class field to product type (#1532) +- Can now perform reports on order, payment or shipping date (#1620) +- Added config setting to define an order details module for backend view (#1578) +- Validate the price attribute in product type against duplication (#1542) +- Added pagination information to product list template (#1650) +- Enable module tables in Isotope setup after all modules are loaded (#1624) +- Added hook triggered when address data is updated (#1473) +- Added hook to modify fields in checkout process + + +### Improved + +- Product images are now shown in the sort-on-page backend view (#1249) +- Meta data cannot be entered per product variant +- Collection dates (locked, paid, shipped) are now stored as NULL if empty +- Sales report now shows the number of items in totals (#1577) +- Allow custom form field as recipient tokens in notification center +- Do not limit product categories selection by active page filter (#1648) +- Allow backend filter for text, radio and checkbox attributes (#1644) +- Datatrans payment method now supports SHA-256 algorithm (#1640) + + +### Fixed + +- "Description" column in iso_collection_invoice template was not translated (#1652) +- Product image import did not work with subfolders (#1666) diff --git a/system/modules/isotope/drivers/DC_ProductData.php b/system/modules/isotope/drivers/DC_ProductData.php index 36074991bb..906cec7a42 100644 --- a/system/modules/isotope/drivers/DC_ProductData.php +++ b/system/modules/isotope/drivers/DC_ProductData.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -425,7 +424,7 @@ public function edit($intID = false, $ajaxId = false) } $this->objActiveRecord = $objRow; - + $return = ''; $this->values[] = $this->intId; $this->procedure[] = 'id=?'; diff --git a/system/modules/isotope/drivers/DC_TablePageId.php b/system/modules/isotope/drivers/DC_TablePageId.php index 5e9d6bac17..c9c8d3da6f 100644 --- a/system/modules/isotope/drivers/DC_TablePageId.php +++ b/system/modules/isotope/drivers/DC_TablePageId.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -586,8 +585,8 @@ protected function parentView() $return = '
-'.$GLOBALS['TL_LANG']['MSC']['backBT'].'' . ((\Input::get('act') != 'select') ? '   ::   ' . (!$GLOBALS['TL_DCA'][$this->strTable]['config']['closed'] ? ' -'.$GLOBALS['TL_LANG'][$this->strTable]['new'][0].'' : '') . $this->generateGlobalButtons() . ($blnClipboard ? '   ::   '.$GLOBALS['TL_LANG']['MSC']['clearClipboard'].'' : '') : '') . ' +'.$GLOBALS['TL_LANG']['MSC']['backBT'].'' . ((\Input::get('act') != 'select') ? (!$GLOBALS['TL_DCA'][$this->strTable]['config']['closed'] ? ' +'.$GLOBALS['TL_LANG'][$this->strTable]['new'][0].'' : '') . $this->generateGlobalButtons() . ($blnClipboard ? ''.$GLOBALS['TL_LANG']['MSC']['clearClipboard'].'' : '') : '') . '
' . $this->getMessages(true); // Get all details of the parent record diff --git a/system/modules/isotope/group.php b/system/modules/isotope/group.php index 8b9d61e9eb..00a44320ce 100644 --- a/system/modules/isotope/group.php +++ b/system/modules/isotope/group.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; @@ -22,16 +21,7 @@ */ define('TL_MODE', 'BE'); -// Include the Contao initialization script -if (file_exists('../../initialize.php')) { - // Regular way - /** @noinspection PhpIncludeInspection */ - require_once('../../initialize.php'); -} else { - // Try composer location (see #1136) - /** @noinspection PhpIncludeInspection */ - require_once('../../../../../../../system/initialize.php'); -} +require_once('initialize.php'); /** diff --git a/system/modules/isotope/initialize.php b/system/modules/isotope/initialize.php new file mode 100644 index 0000000000..ac1468ec15 --- /dev/null +++ b/system/modules/isotope/initialize.php @@ -0,0 +1,23 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Jméno "%s" je již obsazené pro systémové použití . Prosím vyberte jiné jméno. + + + No store configuration available + Konfigurace skladu není dostupná + + + Please create a default store configuration. + Prosím vytvořte výchozí nastavení skladu + + + You have not yet placed any orders. + Ještě nemáte umístěny žádné objednávky + + + The requested order was not found. + Požadovaná objednávka nebyla nalezena. + + + You must be logged in to checkout. + Musíte být přihlášen k platbě. + + + A variant with this attributes is already available. Please select another combination. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + + + Please enter whole numbers or decimals optionally with a percentage. + + + Checkout failed. Please try again or choose another payment method. + Objednávka neprovedena. Prosím, zkuste to znovu nebo vyberte jinou platební metodu + + + You have no address book entries. + Nemáte žádné položky adresáře + + + The minimum order amount is %s. Please add more products before checkout. + Minimální objednané množství je % s. Prosím, přidejte další produkty před objednáním. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + Minimální množství pro "% jsou "% s položky. Zkontrolujte prosím Váš nákupního košíku. + + + This image has already been assigned to the fallback language. + Tento obraz byl již přidělen do nouzového jazyku. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + Vybraná složka je prázdná + + + User checkout not allowed + Platba od uživatele není povolena + + + This product is no longer available. + Tento produkt již není k dispozici. + + + There are errors in your products. + Ve Vašem produktu jsou chyby. + + + Please resolve the errors in your cart before checking out. + Prosím odstraňte chyby ve Vašem nakupním košíku před platbou. + + + You cannot configure the same attribute multiple times. + + + Only show this group + Pouze ukázat tuto skupinu + + + Groups + Skupiny + + + Pages + Stránky + + + Back to the group picker + Zpět do skupiny výběru + + + Show all groups + Ukázat všechn skupiny + + + There are no variants for this product. + Nejsou zde varianty pro tento produkt + + + Duplicate Fallback + + + Order no %s / %s + + + Your payment is being processed. Please be patient... + Vaše platba se zpracovává, Prosíme o chvíli strpení... + + + No files uploaded. + Nejsou zde nahrány žádné soubory + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + + + Upload files + + + Processing dropped files... + + + Some records could not be deleted. + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + Množství + + + Tax-free + + + search products + Vyhledání produktů + + + Your downloadable products + Vaše stáhnutelné produkty + + + <span class="from">From</span> %s + + + View Details + Detaily + + + Reorder + + + Products Per Page + Produktů na stránku + + + Keywords + Klíčové slova + + + Submit + Vložte + + + Clear Filters + Vyčistit filtr + + + Update + Aktualizovat + + + Add To Cart + Přidat do košíku + + + Add All To Cart + + + Update Cart + Aktualizovat košík + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Seřadit podle: + + + No products have been found. + Žádné produkty nenalezeny + + + Back + Zpět + + + Continue + Pokračovat + + + Order + Objednávka + + + No categories are associated with this product. + ž + + + Submit + Vložte + + + There are no items in your favorites list. + + + There are no items in your cart. + Není žádné zboží ve Vašem košíku. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + Vybrané zboží bylo vloženo do nákupního košíku. + + + The products from your last visit have been readded. Please review your shopping cart items. + Výrobky z vaší poslední návštěvy byly znovu přidány. Zkontrolujte prosím své položky nákupního košíku. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Upravit + + + Remove + Odstranit + + + Remove %s from your cart + Odstranit %s z Vašeho košíku. + + + Order Subtotal: + Mezisoučet objednávky + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Celková částka: + + + No payment options are currently available + Žádné platební možnosti nejsou v současné době k dispozici. + + + No shipping options are currently available. + Žádné možnosti dopravy nejsou v současné době k dispozici. + + + No orders emails found. + Žádné objednávkové e-maily nenalezeny. + + + No orders found. + Žádné objednávky nenalezeny + + + <br />%s downloads remaining + + + Shopping Cart + Nákupní košík + + + Proceed to Checkout + Pokračovat v objednávce + + + Continue shopping + Pokračovat v nákupu + + + Update Cart + Aktualizovat košík + + + Order Status: %s + Stav objednávky: %s + + + Go back to step "%s" + + + Create New Address + Vytvořit novou adresu + + + Use billing address + Použijte fakturační adresu + + + Use customer address + Použijte zákaznickou adresu. + + + Different shipping address + Odlišná dodací adresa + + + Edit + Upravit + + + Delete + Smazat + + + Do you really want to delete this address? This cannot be undone. + Opravdu chcete smazat tuto adresu? To nelze vrátit zpět. + + + Invoice + Faktura + + + Status + Stav + + + Order date + Objednací datum + + + Order number + Číslo objednávky + + + Description + Popis + + + Quantity + Množství + + + Price + + + Total + Celkem + + + lo to hi + + + hi to lo + + + A to Z + od A do Z + + + Z to A + od Z k A + + + earlier to later + + + later to earlier + + + Processing payment + Zpracování platby + + + You will be redirected to the payment gateway website. + + + Pay now + Platit nyní + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + Klikněte zde pro zobrazení této PayPal transakce on-line + + + 1 Product + 1 produkt + + + %s Products + %s produkty + + + Enter your shipping information or select an existing address. + Vložte dodací adresu nebo vyberte stávající adresu + + + Enter your billing information or select an existing address. + Zadejte Vaše fakturační údaje, nebo vyberte existující adresu. + + + Enter your billing information + Zadejte své fakturační údaje. + + + Enter your customer information or select an existing address. + Zadejte Vaše zákaznické informace, nebo vyberte existující adresu. + + + Enter your customer information + Zadejte Vaše zákaznické údaje + + + Select a shipping method. + Vyberte způsob dopravy + + + Please select a shipping method. + Prosím, vyberte způsob dopravy. + + + Enter your payment information. + Vyberte způsob platby. + + + Please select a payment method. + Prosím, vyberte způsob platby. + + + Review and confirm your order details. + Zkontrolujte a potvrďte podrobnosti objednávky. + + + Address + Adresa + + + Shipping + Doprava + + + Payment + Platba + + + Review + Přezkoumat + + + Billing Address + Fakturační adresa + + + Shipping Address + Dodací adresa + + + Billing & Shipping Address + Fakturační a dodací adresa. + + + Customer Address + Zákaznická adresa + + + Shipping Method + Způsob dopravy + + + Payment Method + Způsob platby + + + Order Review + Přezkoumat objednávku + + + Change + Změnit + + + Credit card number + Číslo kreditní karty + + + Credit card type + Typ kreditní karty + + + CCV number (3 or 4 digit code) + CCV číslo (3 nebo 4 místné číslo) + + + Expiration month + Měsíc vypršení platnosti + + + Expiration year + Rok vypršení platnosti + + + Payment module not found! + Modul pro platbu nebyl nalezen + + + Shipping module not found! + Modul pro dopravu nebyl nalezen + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + + + active step: + + + Loading products... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + + + Minutes + Minuty + + + Hours + Hodiny + + + Days + Dny + + + Weeks + Týdny + + + Months + Měsíce + + + Years + Roky + + + Introduction + + + Welcome to Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + AmericanExpress + + + Discover + DIscover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + EnRoute + + + Carte Blanche + Carte Blanche + + + JAL + JAL + + + Maestro UK + Maestro UK + + + Delta + Delta + + + Solo + Solo + + + Visa Electron + Visa Electron + + + Dankort + Dankort + + + Laser + Laser + + + Carte Bleue + Carte Bleue + + + Carta Si + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + Textové pole + + + A single-line input field for a short or medium text. + + + Textarea + + + A multi-line input field for a medium or long text. + + + Select menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + Stáhnout + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + Nahrát soubor + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + Kč - Korun českých + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + + + Kr. + + + € + + + £ + + + ¥ + + + Kr. + + + Kr. + + + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/exception.php b/system/modules/isotope/languages/cs/exception.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/explain.php b/system/modules/isotope/languages/cs/explain.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/explain.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/iso_upgrade.php b/system/modules/isotope/languages/cs/iso_upgrade.php deleted file mode 100644 index 8e02650f50..0000000000 --- a/system/modules/isotope/languages/cs/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Aktualizovat + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/modules.php b/system/modules/isotope/languages/cs/modules.php deleted file mode 100644 index b762b70dd9..0000000000 --- a/system/modules/isotope/languages/cs/modules.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + + + Manage products for your Isotope eCommerce shop + + + Orders + + + See and manage orders for your shop + + + Store configuration + + + Setup and configure Isotope eCommerce to your needs + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + + + Define individual filters for Isotope such as category trees and product attribute filters. + + + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + + + Product Variant List + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + + + Product Reader + + + Product reader module. This is used to display product details. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Nákupní košík + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + + + Checkout + + + Allow store customers to complete their transactions. + + + Address Book + + + Allow customers to manage their address book. + + + Order History + + + Order lister that allows customers to view their order history + + + Order Details + + + Order reader that allows customers to view order history details + + + Store Config Switcher + + + Switch between store configuration to change currency and other settings. + + + Related products + + + List products related to the current one. + + + Messages + + + Displays all Isotope messages if they have not been displayed elsewhere. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + + + Products + + + Attributes + + + Manage and create product attributes such as size, color, etc. + + + Product types + + + Manage and create product types from sets of attributes. + + + Related categories + + + Define categories for product relations. + + + Galleries + + + Define how you want the images in your product to be rendered. + + + Base prices + + + Define base price. + + + Checkout Flow + + + Shipping methods + + + Set up shipping methods. + + + Payment methods + + + Set up payment methods. + + + Tax classes + + + Set up Tax classes, which contain sets of Tax rates. + + + Tax rates + + + Set up tax rates based on things like shipping/billing location and order total. + + + General settings + + + Store configurations + + + Configure general settings for this store. + + + Order status + + + Define order status. + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/subdivisions.php b/system/modules/isotope/languages/cs/subdivisions.php deleted file mode 100644 index 5dec54645f..0000000000 --- a/system/modules/isotope/languages/cs/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + + + Please enter a custom label for this address. + + + Gender + + + Please choose the gender. + + + Salutation + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + + + First name + + + Please enter the first name. + + + Last name + + + Please enter the last name. + + + Date of birth + + + Please enter the date of birth. + + + Company + + + You can enter a company name here. + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. + + + Phone number + + + Please enter the phone number. + + + E-mail address + + + Please enter a valid e-mail address. + + + Default billing address + + + Is this your default billing address? + + + Default shipping address + + + Is this your default shipping address? + + + Store + + + Personal data + + + Address details + + + Contact details + + + Default address + + + Personal data + + + Address details + + + Contact details + + + Default address + + + New address + + + Create a new address + + + Edit address + + + Edit address ID %s + + + Duplicate address + + + Duplicate address ID %s + + + Delete address + + + Delete address ID %s + + + Address details + + + Show details of address ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_attribute.php b/system/modules/isotope/languages/cs/tl_iso_attribute.php deleted file mode 100644 index 2e33d35de9..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_attribute.php +++ /dev/null @@ -1,31 +0,0 @@ - + + + + Name + Jméno + + + Please enter a name for this attribute. + + + Internal name + + + Internal name is the database field name and must be unique. + + + Type + + + Please select a type for this attribute. + + + Field Group + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + + + Please select if this value defined by the customer (frontend). + + + Description + Popis + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + Možnosti + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + + + Default + + + Group + + + Options + Možnosti + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + + + The field must be filled when editing a product. + + + Multiple selection + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + + + Checks whether the input is a valid price. + + + Discount + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + Kopírovat atribut + + + Copy attribute ID %s. + Kopírovat ID atributu %s. + + + Delete attribute + Smazat atribut + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + Detaily atributu + + + Show details for attribute ID %s. + Ukaž detaily atributu s ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + jméno & typ atributu + + + Description + Popis + + + Options + Možnosti + + + Attribute configuration + Nastavení atributu + + + Search & Filtering Settings + Vyhledávání & Filtrace nastavení + + + Store file + Skladovací složka + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_attribute_option.php b/system/modules/isotope/languages/cs/tl_iso_attribute_option.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_attribute_option.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Type + + + Select a type for this label. + + + Option + + + Group + + + Default + + + Check here if this should be the default option. + + + Label + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_baseprice.php b/system/modules/isotope/languages/cs/tl_iso_baseprice.php deleted file mode 100644 index 5bc5d32dd3..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_baseprice.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Name + Jméno + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_config.php b/system/modules/isotope/languages/cs/tl_iso_config.php deleted file mode 100644 index fa7bc03e23..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_config.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Configuration Name + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + + + Please enter the first name (if applicable). + + + Last name + + + Please enter the last name (if applicable). + + + Company + + + You can enter a company name here (if applicable). + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + + + Please enter the phone number. + + + Shipping email address + + + Please enter a valid e-mail address. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + Jméno + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + Jméno + + + Address configuration + + + Configuration + + + Checkout + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + + + Images + + + URL settings + + + Products + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_document.php b/system/modules/isotope/languages/cs/tl_iso_document.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_document.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_download.php b/system/modules/isotope/languages/cs/tl_iso_download.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_download.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Attachement + + + Select the file or folder content you want to sell. + + + Downloads allowed + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + + + Add a new download to this product + + + Edit download + + + Edit download ID %s + + + Duplicate download + + + Duplicate download ID %s + + + Move download + + + Move download ID %s + + + Delete download + + + Delete download ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + + + Show details of download ID %s + + + Edit product + + + Edit this product + + + Paste at the top + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + + + Limits + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_gallery.php b/system/modules/isotope/languages/cs/tl_iso_gallery.php deleted file mode 100644 index 1ab44afb3a..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_gallery.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Name + Jméno + + + Enter a name for this gallery. + + + Type + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_group.php b/system/modules/isotope/languages/cs/tl_iso_group.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_group.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_integrity.php b/system/modules/isotope/languages/cs/tl_iso_integrity.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_label.php b/system/modules/isotope/languages/cs/tl_iso_label.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_label.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Language + + + Please select a language. + + + Label + + + Enter the source label. + + + Replacement + + + Enter the replacement in the specified language. + + + New label + + + Create a new label + + + Edit label + + + Edit label ID %s + + + Duplicate label + + + Duplicate label ID %s + + + Delete label + + + Delete label ID %s + + + Label details + + + Show details of label ID %s + + + Label translation + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_orderstatus.php b/system/modules/isotope/languages/cs/tl_iso_orderstatus.php deleted file mode 100644 index f907d13265..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_orderstatus.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Jméno + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + Jméno + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_payment.php b/system/modules/isotope/languages/cs/tl_iso_payment.php deleted file mode 100644 index 824ab0c588..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_payment.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Payment Method Name + Způsob platby + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this payment method to certain shop configurations. + + + Price + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Popis + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + Faktura + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + + + General configuration + + + Payment gateway configuration + + + Price + + + Template + + + Expert settings + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_product.php b/system/modules/isotope/languages/cs/tl_iso_product.php deleted file mode 100644 index 83f086504a..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_product.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Product ID + + + Categories + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + + + Product type + + + Select your product type. Product types are defined in the store configuration. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + Jméno + + + Please enter the name of this product. + + + SKU + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + + + Teaser + + + Please enter the teaser. + + + Description + Popis + + + Please enter the product description. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + + + Check if item is not a shipped item (such as downloadable products). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + + + Click here to show this product on your website. + + + Start date + + + Do not show this product before the date specified. + + + Stop date + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + + + Please choose the folder where product assets are located. + + + Preview + + + Alternate text + + + Link target + + + Description + Popis + + + Translate + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + + + Show product variants + + + New product + + + Create new product + + + Add variant + + + Add new variant to a given product + + + Edit product + + + Edit product ID %s + + + Copy product + + + Copy product ID %s + + + Move product + + + Move product ID %s + + + Delete product + + + Delete product ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + + + Show details of product ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + + + Import images and other media from a folder + + + Manage prices + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + + + Generate variants for product ID %s + + + Related products + + + Manage related products for product ID %s + + + Downloads + Stáhnout + + + Edit downloads for product ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + + + General Settings + + + Meta data + + + Pricing Settings + + + Inventory Settings + + + Shipping Settings + + + Product Options Settings + + + Media Management + + + Expert settings + + + Publishing + + + Quantity + Množství + + + from %s pcs. + + + Price + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_product_category.php b/system/modules/isotope/languages/cs/tl_iso_product_category.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_product_category.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Move product + + + Move product ID %s + + + Paste at the top + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_product_collection.php b/system/modules/isotope/languages/cs/tl_iso_product_collection.php deleted file mode 100644 index 048a334d17..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_product_collection.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Order ID + + + Member (empty for guests) + + + Unique ID + + + Order status + + + Select the status of this order. + + + Placed + + + Source (Cart ID) + + + Payment date + + + Enter a date when this order has been paid. + + + Shipped date + + + Enter a date when this order has been shipped. + + + Shop configuration + + + Payment method + + + Shipping method + + + Billing address + + + Shipping address + + + Subtotal + + + Subtotal without tax + + + Total + Celkem + + + Total without tax + + + Currency + + + Language + + + Order notes + + + If you would like to convey information to other backend users, please do so here. + + + Edit order + + + Edit order ID %s + + + Copy order + + + Copy order ID %s + + + Delete order + + + Delete order ID %s + + + Order details + + + Show details of order ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + + + Order details + + + Email data + + + Billing address data + + + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_product_price.php b/system/modules/isotope/languages/cs/tl_iso_product_price.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_product_price.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Price Tiers + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + + + Tax Class + + + Please select a tax class for this price. + + + Store configuration + + + Select a store configuration for this price. + + + Member group + + + Select a member group for this price. + + + Use from + + + Do not use the price on the website before this day. + + + Use until + + + Do not use the price on the website after this day. + + + Add price + + + Add a new price to this product + + + Edit price + + + Edit price ID %s + + + Duplicate price + + + Duplicate price ID %s + + + Delete price + + + Delete price ID %s + + + Price details + + + Show details of price ID %s + + + Quantity (min) + + + Price + + + Price + + + Limitations + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_producttype.php b/system/modules/isotope/languages/cs/tl_iso_producttype.php deleted file mode 100644 index 28ed89f80a..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_producttype.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + Jméno + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + + + Check here if this is the default product type. + + + Description + Popis + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + Popis + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_related_category.php b/system/modules/isotope/languages/cs/tl_iso_related_category.php deleted file mode 100644 index 24552efa67..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_related_category.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Category name + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Name + Jméno + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_related_product.php b/system/modules/isotope/languages/cs/tl_iso_related_product.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_related_product.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Category + + + Select a category. + + + Products + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + + + Add a new category with products + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Move category + + + Move category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Edit product + + + Edit this product + + + Category + + + Related products + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_shipping.php b/system/modules/isotope/languages/cs/tl_iso_shipping.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_shipping.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Shipping Method Name + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + + + Select a tax class that applies to the shipping price. + + + Label + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + + + Hide the module if a member is logged in. + + + Enabled + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_tax_class.php b/system/modules/isotope/languages/cs/tl_iso_tax_class.php deleted file mode 100644 index 8820ac3c33..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_tax_class.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Jméno + + + Give this tax class a name that explains what it is used for. + + + Default + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + Jméno + + + Tax rates + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_iso_tax_rate.php b/system/modules/isotope/languages/cs/tl_iso_tax_rate.php deleted file mode 100644 index bdcd7cdd9a..0000000000 --- a/system/modules/isotope/languages/cs/tl_iso_tax_rate.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Name + Jméno + + + Enter a name for this tax rate. + + + Label + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + Fakturační adresa + + + Shipping Address + Dodací adresa + + + Name + Jméno + + + Rate + + + Location + + + Conditions + + + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_maintenance.php b/system/modules/isotope/languages/cs/tl_maintenance.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_maintenance.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_member.php b/system/modules/isotope/languages/cs/tl_member.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_member.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Address Book + + + Manage the address book for member ID %s. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_module.php b/system/modules/isotope/languages/cs/tl_module.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_module.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Product list template + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + + + Select the store configuration that this module will be used for. + + + Store configurations + + + Select the store configurations that this module will be used for. + + + Payment methods + + + Select one or more payment methods for this checkout module. + + + Shipping methods + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + + + Select a initial sorting direction. + + + Buttons + + + Select the buttons you want to show. + + + Related categories + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + + + Guest checkout only + + + Both allowed + + + All Categories + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_nc_notification.php b/system/modules/isotope/languages/cs/tl_nc_notification.php deleted file mode 100644 index 2ac678fa5a..0000000000 --- a/system/modules/isotope/languages/cs/tl_nc_notification.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_page.php b/system/modules/isotope/languages/cs/tl_page.php deleted file mode 100644 index 5573bf90e4..0000000000 --- a/system/modules/isotope/languages/cs/tl_page.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Store Configuration + + + Select a store configuration for this page structure. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_settings.php b/system/modules/isotope/languages/cs/tl_settings.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tl_settings.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Guest cart timeout + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_user.php b/system/modules/isotope/languages/cs/tl_user.php deleted file mode 100644 index 3f5eeac50d..0000000000 --- a/system/modules/isotope/languages/cs/tl_user.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope modules + + + Select which store configuration modules user of this group can access. + + + Allowed product types + + + Here you can grant access to one or more product types. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + + + Here you can grant access to one or more store configurations. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tl_user_group.php b/system/modules/isotope/languages/cs/tl_user_group.php deleted file mode 100644 index 946d1cf910..0000000000 --- a/system/modules/isotope/languages/cs/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/cs/tokens.php b/system/modules/isotope/languages/cs/tokens.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope/languages/cs/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/default.php b/system/modules/isotope/languages/da/default.php deleted file mode 100644 index de7c49dd26..0000000000 --- a/system/modules/isotope/languages/da/default.php +++ /dev/null @@ -1,160 +0,0 @@ -Fra %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Se detaljer'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Produkter pr. side'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Nøgleord'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'OK'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Nulstil filtre'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Opdater'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Læg i kurv'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Sorter efter:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Ingen produkter blev fundet.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Tilbage'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Fortsæt'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Ordre'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Ingen kategorier er knyttet til dette produkt.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'OK'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Fjern'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Der er ingen emner i din kurv'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'Produktet er nu tilføjet til din indkøbskurv.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'Produkterne fra dit seneste besøg er nu igen tilføjet til din kurv.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Fjern %s fra din kurv'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Ordre subtotal'; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Levering'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Betaling'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Ordre total'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'Der er ingen betalingsmetoder tilgængelig'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'Der er ingen leveringsmetoder tilgængelig'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Ingen ordre-email angivet'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Ingen ordre fundet'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s downloads tilbage'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Indkøbskurv'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Gå til kassen'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Køb mere'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Opdater kurv'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Ordre status %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Gå tilbage til "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Opret ny adresse'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Brug betalingsadresse'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Brug kundeadresse'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Anden leveringsadresse'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Rediger'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Slet'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Ønsker du virkelig at slette denne adresse? Det kan ikke fortrydes!'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Faktura'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Status'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Ordre dato'; -$GLOBALS['TL_LANG']['MSC']['iso_order_document_number'] = 'Ordrenummer'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Beskrivelse'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Antal'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Pris'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Total'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'lav til høj'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'høj til lav'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'A til Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'Z til A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'tidligere til senere'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'senere til tidligere'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Behandler betaling'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][1] = 'Du bliver omdirigeret til betalingssiden.'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Betal nu'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][3] = 'Klik på "Betal nu" knappen for at fortsætte.'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Klik her for at se denne PayPal transaktion online.'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 produkt'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s produkter'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Indtast leveringsadresse eller vælg en eksisterende adresse.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Indtast betalingsadresse eller vælg en eksisterende adresse.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Indtast betalingsadresse'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Vælg en leveringsmetode.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Vælg venligst en leveringsmetode.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Adresse'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Levering'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Betaling'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Godkend'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Betalingsadresse'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Forsendelsesadresse'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Betalings- og leveringsadresse'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Leveringsadresse'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Leveringsmetode'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Betalingsmetode'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Godkend ordre'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Rediger'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Kreditkort nummer'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Kreditkort type'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'CCV nummer (3 eller 4 cifret)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Udløbsmåned'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Udløbsår'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = 'Betalingsmetode ikke fundet!'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Brug standard værdi'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Henter produkter'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'Ingen filer i denne mappe'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minutter'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Timer'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Dage'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Uger'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Måneder'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'År'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroductionLegend'] = 'Introduktion'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Velkommen til Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][4] = 'Isotope eCommerce teamet'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][0] = 'Kontant'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['ATTR']['text'][0] = 'Tekstfelt'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][0] = 'Tekstboks'; -$GLOBALS['TL_LANG']['ATTR']['select'][0] = 'Valgmenu'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Downloads'; -$GLOBALS['TL_LANG']['ATTR']['upload'][0] = 'Filupload'; diff --git a/system/modules/isotope/languages/da/default.xlf b/system/modules/isotope/languages/da/default.xlf new file mode 100644 index 0000000000..fddf66b840 --- /dev/null +++ b/system/modules/isotope/languages/da/default.xlf @@ -0,0 +1,1464 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Navnet "%s" er reserveret til systemet. Vælg venligst et andet navn. + + + No store configuration available + Ingen shop konfiguration fundet + + + Please create a default store configuration. + Opret venligst en standard shop konfiguration + + + You have not yet placed any orders. + Du har endnu ikke angivet en ordre + + + The requested order was not found. + Den ønskede ordre blev ikke fundet + + + You must be logged in to checkout. + Du skal være logget ind for at afslutte ordren. + + + A variant with this attributes is already available. Please select another combination. + En variant med denne egenskab findes allerede. Brug venligst en anden kombination. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Indtast venligst et helt tal eller decimaler med et + eller - foran og evt. efterfulgt af procent. + + + Please enter whole numbers or decimals optionally with a percentage. + Indtast venligst et helt tal eller decimaler evt. efterfulgt af procent. + + + Checkout failed. Please try again or choose another payment method. + Betalingen mislykkedes. Prøv igen eller vælg en anden betalingsmetode. + + + You have no address book entries. + Du har ingen adresser i din adressebog + + + The minimum order amount is %s. Please add more products before checkout. + Minimum ordrebeløb er %s. Kontroller venligst din kurv. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + Minimum antal varer for "%s" er %s. Kontroller venligst din kurv. + + + This image has already been assigned to the fallback language. + Dette foto er allerede tilknyttet standardsproget. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + Den valgte mappe er tom. + + + User checkout not allowed + Checkout ikke tilladt + + + This product is no longer available. + Dette produkt er ikke længere tilgængeligt. + + + There are errors in your products. + Der er fejl i dine produkter. + + + Please resolve the errors in your cart before checking out. + Venligst ret fejlen i din kurv inden du går til betaling. + + + You cannot configure the same attribute multiple times. + + + Only show this group + Vi kun denne gruppe + + + Groups + Grupper + + + Pages + Sider + + + Back to the group picker + TIlbage til gruppevælgeren + + + Show all groups + Vis alle grupper + + + There are no variants for this product. + Ingen varianter fundet. + + + Duplicate Fallback + + + Order no %s / %s + Ordre nr. %s / %s + + + Your payment is being processed. Please be patient... + Din betaling bliver behandlet. Vent venligst... + + + No files uploaded. + Ingen filer blev uploaded + + + The file could not be uploaded for unknown reason. Please check the system log. + Filen kunne ikke uploades på grund af en ukendt fejl. Kontroller "Hændelser" for yderligere information. + + + Drop files here to upload + Træk filer hertil for at uploade + + + Upload files + Upload filer + + + Processing dropped files... + Behandler filer... + + + Some records could not be deleted. + Nogle emner kunne ikke slettes. + + + Some records could not be deleted and have been unpublished instead. + Nogle emner kunne ikke slettes og er blevet deaktiveret istedet for. + + + Quantity + Antal + + + Tax-free + + + search products + Søg produkter + + + Your downloadable products + Dine produkter til download + + + <span class="from">From</span> %s + <span class="from">Fra</span> %s + + + View Details + Se detaljer + + + Reorder + + + Products Per Page + Produkter pr. side + + + Keywords + Nøgleord + + + Submit + OK + + + Clear Filters + Nulstil filtre + + + Update + Opdater + + + Add To Cart + Læg i kurv + + + Add All To Cart + + + Update Cart + Opdater kurv + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Sorter efter: + + + No products have been found. + Ingen produkter blev fundet. + + + Back + Tilbage + + + Continue + Fortsæt + + + Order + Ordre + + + No categories are associated with this product. + Ingen kategorier er knyttet til dette produkt. + + + Submit + OK + + + There are no items in your favorites list. + + + There are no items in your cart. + Der er ingen emner i din kurv + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + Produktet er nu tilføjet til din indkøbskurv. + + + The products from your last visit have been readded. Please review your shopping cart items. + Produkterne fra dit seneste besøg er nu igen tilføjet til din kurv. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Rediger + + + Remove + Fjern + + + Remove %s from your cart + Fjern %s fra din kurv + + + Order Subtotal: + Ordre subtotal + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Ordre total + + + No payment options are currently available + Der er ingen betalingsmetoder tilgængelig + + + No shipping options are currently available. + Der er ingen leveringsmetoder tilgængelig + + + No orders emails found. + Ingen ordre-email angivet + + + No orders found. + Ingen ordre fundet + + + <br />%s downloads remaining + <br />%s downloads tilbage + + + Shopping Cart + Indkøbskurv + + + Proceed to Checkout + Gå til kassen + + + Continue shopping + Køb mere + + + Update Cart + Opdater kurv + + + Order Status: %s + Ordre status %s + + + Go back to step "%s" + Gå tilbage til "%s" + + + Create New Address + Opret ny adresse + + + Use billing address + Brug betalingsadresse + + + Use customer address + Brug kundeadresse + + + Different shipping address + Anden leveringsadresse + + + Edit + Rediger + + + Delete + Slet + + + Do you really want to delete this address? This cannot be undone. + Ønsker du virkelig at slette denne adresse? Det kan ikke fortrydes! + + + Invoice + Faktura + + + Status + Status + + + Order date + Ordre dato + + + Order number + Ordrenummer + + + Description + Beskrivelse + + + Quantity + Antal + + + Price + Pris + + + Total + Total + + + lo to hi + lav til høj + + + hi to lo + høj til lav + + + A to Z + A til Z + + + Z to A + Z til A + + + earlier to later + tidligere til senere + + + later to earlier + senere til tidligere + + + Processing payment + Behandler betaling + + + You will be redirected to the payment gateway website. + Du bliver omdirigeret til betalingssiden. + + + Pay now + Betal nu + + + Please click on the "Pay now" button to continue. + Klik på "Betal nu" knappen for at fortsætte. + + + Click here to view this PayPal transaction online + Klik her for at se denne PayPal transaktion online. + + + 1 Product + 1 produkt + + + %s Products + %s produkter + + + Enter your shipping information or select an existing address. + Indtast leveringsadresse eller vælg en eksisterende adresse. + + + Enter your billing information or select an existing address. + Indtast betalingsadresse eller vælg en eksisterende adresse. + + + Enter your billing information + Indtast betalingsadresse + + + Enter your customer information or select an existing address. + + + Enter your customer information + + + Select a shipping method. + Vælg en leveringsmetode. + + + Please select a shipping method. + Vælg venligst en leveringsmetode. + + + Enter your payment information. + + + Please select a payment method. + + + Review and confirm your order details. + + + Address + Adresse + + + Shipping + Levering + + + Payment + Betaling + + + Review + Godkend + + + Billing Address + Betalingsadresse + + + Shipping Address + Forsendelsesadresse + + + Billing & Shipping Address + Betalings- og leveringsadresse + + + Customer Address + Leveringsadresse + + + Shipping Method + Leveringsmetode + + + Payment Method + Betalingsmetode + + + Order Review + Godkend ordre + + + Change + Rediger + + + Credit card number + Kreditkort nummer + + + Credit card type + Kreditkort type + + + CCV number (3 or 4 digit code) + CCV nummer (3 eller 4 cifret) + + + Expiration month + Udløbsmåned + + + Expiration year + Udløbsår + + + Payment module not found! + Betalingsmetode ikke fundet! + + + Shipping module not found! + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + Brug standard værdi + + + active step: + + + Loading products... + Henter produkter + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + Ingen filer i denne mappe + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + + + Minutes + Minutter + + + Hours + Timer + + + Days + Dage + + + Weeks + Uger + + + Months + Måneder + + + Years + År + + + Introduction + Introduktion + + + Welcome to Isotope eCommerce + Velkommen til Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + Isotope eCommerce teamet + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + Kontant + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + + + Visa + + + American Express + + + Discover + + + JCB + + + Diner's Club + + + EnRoute + + + Carte Blanche + + + JAL + + + Maestro UK + + + Delta + Delta + + + Solo + + + Visa Electron + Visa Electron + + + Dankort + + + Laser + + + Carte Bleue + + + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + Tekstfelt + + + A single-line input field for a short or medium text. + + + Textarea + Tekstboks + + + A multi-line input field for a medium or long text. + + + Select menu + Valgmenu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + Downloads + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + Filupload + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + + + Kr. + + + € + + + £ + + + ¥ + + + Kr. + + + Kr. + + + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/exception.php b/system/modules/isotope/languages/da/exception.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope/languages/da/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/explain.php b/system/modules/isotope/languages/da/explain.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope/languages/da/explain.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/iso_upgrade.php b/system/modules/isotope/languages/da/iso_upgrade.php deleted file mode 100644 index d29c22016c..0000000000 --- a/system/modules/isotope/languages/da/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Opdater + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/modules.php b/system/modules/isotope/languages/da/modules.php deleted file mode 100644 index c4fe5b7332..0000000000 --- a/system/modules/isotope/languages/da/modules.php +++ /dev/null @@ -1,74 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Produkter + + + Manage products for your Isotope eCommerce shop + Håndter produkter + + + Orders + Ordre + + + See and manage orders for your shop + Se og håndter ordrer + + + Store configuration + Butiksindstilling + + + Setup and configure Isotope eCommerce to your needs + Indstil og konfigurér shoppen + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Produkt filter + + + Define individual filters for Isotope such as category trees and product attribute filters. + Modulet kan lave individuelle filtre som f.eks. kategori-navigation, produkt egenskaber m.m. + + + Cumulative Filter + Akkumuleret filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Akkumuleret filter, der giver mulighed for at filtrere produkter udfra valgte betingelser. + + + Product List + Produkt liste + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Modulet lister produkter. Kan kombineres med andre moduler, som f.eks. Produkt filter modulet, for at tilbyde yderligere sortering og filtrering. + + + Product Variant List + Produkt variant liste + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Lister alle varianter for et produkt. Skabelonen iso_list_variants skal vælges. + + + Product Reader + Produkt detaljer + + + Product reader module. This is used to display product details. + Modulet viser detaljerne for et produkt. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Indkøbskurv + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + En komplet indkøbskurv. Kan bruges i en mini-udgave eller en fuld version. + + + Checkout + Gå til kassen + + + Allow store customers to complete their transactions. + Lader kunden fuldføre købet og gå til betalingen. + + + Address Book + Adressebog + + + Allow customers to manage their address book. + Lader kunder administrere deres adressebog + + + Order History + Ordre historik + + + Order lister that allows customers to view their order history + Lister kunders tidligere ordre + + + Order Details + Ordre detaljer + + + Order reader that allows customers to view order history details + Viser detaljer om tidligere ordre + + + Store Config Switcher + Skift butiksindstilling + + + Switch between store configuration to change currency and other settings. + Gør det muligt at skifte mellem forskellige butiksindstillinger for at ændre valuta og andre indstillinger. + + + Related products + Relaterede produkter + + + List products related to the current one. + Lister produkter der relaterer til det valgte produkt + + + Messages + Beskeder + + + Displays all Isotope messages if they have not been displayed elsewhere. + Viser alle beskeder hvis de ikke har været vist andre steder. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + Isotope eCommerce konfiguration (Version: %s) + + + Products + Produkter + + + Attributes + Egenskaber + + + Manage and create product attributes such as size, color, etc. + Opret og rediger egenskaber for dine produkter, som f.eks. størrelse, farver m.m. + + + Product types + Produkttyper + + + Manage and create product types from sets of attributes. + Opret og rediger produkttyper baseret på egenskaber. + + + Related categories + Relaterede kattegorier + + + Define categories for product relations. + Definer kattegorier for relaterede produkter. + + + Galleries + + + Define how you want the images in your product to be rendered. + + + Base prices + Standardpris + + + Define base price. + Angiv en standardpris + + + Checkout Flow + Betalingsforløb + + + Shipping methods + Forsendelsesmetoder + + + Set up shipping methods. + Indstil forsendelsesmetoder, som f.eks. POST, UPS, DHL. + + + Payment methods + Betalingsmetoder + + + Set up payment methods. + Indstil betalingsmetoder, som f.eks. ePay, PayPal m.m. + + + Tax classes + Moms klasser + + + Set up Tax classes, which contain sets of Tax rates. + Indstil moms klasser, som indeholder forskellige momssatser. + + + Tax rates + Moms satser + + + Set up tax rates based on things like shipping/billing location and order total. + Indstil momssatser baseret på leverings-/faktureringsadresse m.m. + + + General settings + Generelle indstillinger + + + Store configurations + Butiksindstillinger + + + Configure general settings for this store. + Konfigurer indstillinger for denne butik + + + Order status + Ordrestatus + + + Define order status. + Angiv ordrestatus + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/subdivisions.php b/system/modules/isotope/languages/da/subdivisions.php deleted file mode 100644 index e656f39b59..0000000000 --- a/system/modules/isotope/languages/da/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + Butiks-ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Forskellige butiks ID'er grupperer en butik på flere rod-sider. En kundes kurv og adresse vil blive delt på tværs af butikker med samme ID. + + + Label + Mærkat + + + Please enter a custom label for this address. + Indtast en mærkat for denne adresse. + + + Gender + Køn + + + Please choose the gender. + Vælg venligst køn. + + + Salutation + Tiltaleform + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Indtast en tiltaleform (Hr, Fru, Frk). + + + First name + Fornavn + + + Please enter the first name. + Indtast venligst fornavn + + + Last name + Efternavn + + + Please enter the last name. + Indtast venligst efternavn + + + Date of birth + Fødselsdato + + + Please enter the date of birth. + Indtast venligst fødselsdato + + + Company + Firma + + + You can enter a company name here. + Indtast evt. et firmanavn + + + VAT No. + Momsnummer + + + Please enter a VAT number. + Indtast et momsnummer. + + + Street + Adresse + + + Please enter the street name and the street number. + Indtast gadenavn og husnummer. + + + Street 2 + Adresse 2 + + + Enter a second street info if there's any. + Indtast evt. yderligere adresseinformationer hvis nødvendigt. + + + Street 3 + Adresse 3 + + + Enter a third street info if there's any. + Indtast evt. yderligere adresseinformationer hvis nødvendigt. + + + Postal code + Postnummer + + + Please enter the postal code. + Indtast postnummer. + + + City + By + + + Please enter the name of the city. + Indtast venligst by. + + + State + Region + + + Please enter the name of the state. + Indtast venligst region. + + + Country + Land + + + Please select a country. + Vælg et land. + + + Phone number + Telefonnummer + + + Please enter the phone number. + Indtast et telefonnummer. + + + E-mail address + E-mail adresse + + + Please enter a valid e-mail address. + Indtast en gyldig e-mail adresse. + + + Default billing address + Standard betalingsadresse + + + Is this your default billing address? + Er dette din standard betalingsadresse? + + + Default shipping address + Standard leveringsadresse + + + Is this your default shipping address? + Er dette din standard leveringsadresse? + + + Store + Shop + + + Personal data + Personlig information + + + Address details + Adresseinformationer + + + Contact details + Kontaktinformationer + + + Default address + Standard adresse + + + Personal data + Personlig information + + + Address details + Adresseinformationer + + + Contact details + Kontaktinformationer + + + Default address + Standard adresse + + + New address + Ny adresse + + + Create a new address + Opret en ny adresse + + + Edit address + Rediger adresse + + + Edit address ID %s + Rediger adressen %s + + + Duplicate address + Kopier adresse + + + Duplicate address ID %s + Kopier adressen %s + + + Delete address + Slet adresse + + + Delete address ID %s + Slet adressen %s + + + Address details + Adresseinformationer + + + Show details of address ID %s + Vis detaljer for adressen %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_attribute.php b/system/modules/isotope/languages/da/tl_iso_attribute.php deleted file mode 100644 index 8c4076facc..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_attribute.php +++ /dev/null @@ -1,24 +0,0 @@ - + + + + Name + Navn + + + Please enter a name for this attribute. + + + Internal name + + + Internal name is the database field name and must be unique. + + + Type + + + Please select a type for this attribute. + + + Field Group + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + + + Please select if this value defined by the customer (frontend). + + + Description + Beskrivelse + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + Mærkat + + + Default + + + Group + + + Options + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + + + The field must be filled when editing a product. + + + Multiple selection + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + Dato + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + Telefonnummer + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + E-mail adresse + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + Pris + + + Checks whether the input is a valid price. + + + Discount + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + ##ordre_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + + + Copy attribute ID %s. + + + Delete attribute + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + + + Show details for attribute ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + + + Description + Beskrivelse + + + Options + + + Attribute configuration + + + Search & Filtering Settings + + + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_attribute_option.php b/system/modules/isotope/languages/da/tl_iso_attribute_option.php deleted file mode 100644 index cd2d3867a7..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_attribute_option.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Type + + + Select a type for this label. + + + Option + + + Group + + + Default + + + Check here if this should be the default option. + + + Label + Mærkat + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Pris + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + Publiseringsindstillinger + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_baseprice.php b/system/modules/isotope/languages/da/tl_iso_baseprice.php deleted file mode 100644 index 6c07b5bc42..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_baseprice.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Navn + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + Mærkat + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_config.php b/system/modules/isotope/languages/da/tl_iso_config.php deleted file mode 100644 index 372023a0f0..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_config.php +++ /dev/null @@ -1,72 +0,0 @@ - + + + + Configuration Name + Navn på indstillingen + + + Please enter a name for your configuration. This is only used for back end reference. + Indtast det navn du ønsker at give din indstilling + + + Label + Mærkat + + + The label is used in frontend, e.g. for config switcher. + Mærkaten bruges i shoppen, f.eks. til at skifte indstillinger med. + + + Set as default store + Sæt som standard butik + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + Fornavn + + + Please enter the first name (if applicable). + Indtast dit fornavn + + + Last name + Efternavn + + + Please enter the last name (if applicable). + Indtast dit efternavn + + + Company + Firma + + + You can enter a company name here (if applicable). + Indtast dit firmanavn + + + VAT No. + Momsnummer + + + Please enter a VAT number. + Indtast et momsnummer. + + + Street + Adresse + + + Please enter the street name and the street number. + Indtast gadenavn og husnummer. + + + Street 2 + Adresse 2 + + + Enter a second street info if there's any. + Indtast evt. yderligere adresseinformationer hvis nødvendigt. + + + Street 3 + Adresse 3 + + + Enter a third street info if there's any. + Indtast evt. yderligere adresseinformationer hvis nødvendigt. + + + Postal code + Postnummer + + + Please enter the postal code. + Indtast postnummer. + + + City + By + + + Please enter the name of the city. + Indtast venligst by. + + + State + Region + + + Please enter the name of the state. + Indtast venligst region. + + + Country + Land + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + Telefonnummer + + + Please enter the phone number. + Indtast et telefonnummer. + + + Shipping email address + E-mail + + + Please enter a valid e-mail address. + Indtast en gyldig e-mail adresse. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + Fragt til disse lande + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + Vælg de lande du ønsker skal være tilgængelige for forsendelse. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + Vælg en formatering for priser + + + Rounding precision + Afrundningsforhold + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + Hvor mange decimaler skal din afrundning indeholde. Du bør vælge en værdi mellem 0 og 2 for at alle betalingsgateways virker korrekt. Se evt. PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + Valuta + + + Please select a currency for this store. + Vælg venligst en valuta for denne butik + + + Position of currency code/symbol + Position af valutasymbol + + + Select if you want to show currency on the left or right side of the price. + Vælg om du ønsker valutasymbolet vist til højre eller venstre for prisen. + + + Use currency symbol + Brug valutasymbol + + + Use a currency symbol ($, €) if available. + Brug et valutasymbol ($, €, DKK) hvis tilgængeligt. + + + Include blank space + Medtag mellemrum + + + Add space between price and currency symbol. + Tilføjer luft mellem valutasymbol og prisen + + + Price factor + Pris faktor + + + Defaults should be 1. You can use this to convert between multiple currencies. + Standard er 1. Du kan bruge denne faktor til at konvertere mellem forskellige valutaer. + + + Calculation mode + Beregningsmetode + + + Divide or multiply using this factor. + Divider eller multiplicer med denne faktor + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + Faktura logo + + + Select a logo to show up on the invoices for this store. + Vælg et logo der skal vises på fakturaer + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + Navn + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + Navn + + + Address configuration + + + Configuration + + + Checkout + Gå til kassen + + + Pricing + + + Currency formatting + Valuta formatering + + + Currency conversion + + + Orders + Ordre + + + Images + Billeder + + + URL settings + + + Products + Produkter + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_document.php b/system/modules/isotope/languages/da/tl_iso_document.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_document.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_download.php b/system/modules/isotope/languages/da/tl_iso_download.php deleted file mode 100644 index 25634f20f2..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_download.php +++ /dev/null @@ -1,45 +0,0 @@ - + + + + Attachement + Vedhæftet fil + + + Select the file or folder content you want to sell. + Vælg den fil du ønsker at sælge. + + + Downloads allowed + Antal downloads tilladt + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + Det antal gange denne fil kan hentes for hver ordre (multipliceret med den solgte mængde). Indtast 0 for ubegrænset downloads. + + + Expiration + Udløb + + + Define if the download(s) expires after a certain time period. + Definer om downloads skal udløbe efter et givent antal downloads. + + + Download available + Download tilgængelig + + + Click here to include this download in new orders. + Klik her for at inkludere denne download i nye ordre. + + + Add download + Tilføj fil + + + Add a new download to this product + Tilføj en ny fil til dette produkt + + + Edit download + Rediger fil + + + Edit download ID %s + Rediger fil %s + + + Duplicate download + Dupliker fil + + + Duplicate download ID %s + Dupliker filen med ID %s + + + Move download + Flyt download + + + Move download ID %s + Flyt download til ID %s + + + Delete download + Slet fil + + + Delete download ID %s + Slet filen med ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + Fil detaljer + + + Show details of download ID %s + Vis detaljer for filen med ID %s + + + Edit product + Rediger produkt + + + Edit this product + Rediger produktet + + + Paste at the top + Indsæt i toppen + + + Paste after download ID %s + Indsæt efter download ID %s + + + Add new at the top + Tilføj nyt produkt + + + Add new after download ID %s + Tilføj ny efter download ID %s + + + Attachement + Vedhæftet fil + + + Limits + Begrænsninger + + + Publishing + Publiseringsindstillinger + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_gallery.php b/system/modules/isotope/languages/da/tl_iso_gallery.php deleted file mode 100644 index fa1246e526..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_gallery.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Navn + + + Enter a name for this gallery. + + + Type + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + Dette billede vil blive brugt hvis der mangler et billede til et produkt. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_group.php b/system/modules/isotope/languages/da/tl_iso_group.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_group.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_integrity.php b/system/modules/isotope/languages/da/tl_iso_integrity.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_label.php b/system/modules/isotope/languages/da/tl_iso_label.php deleted file mode 100644 index f05d5f0264..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_label.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Language + + + Please select a language. + + + Label + Mærkat + + + Enter the source label. + + + Replacement + + + Enter the replacement in the specified language. + + + New label + + + Create a new label + + + Edit label + + + Edit label ID %s + + + Duplicate label + + + Duplicate label ID %s + + + Delete label + + + Delete label ID %s + + + Label details + + + Show details of label ID %s + + + Label translation + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_orderstatus.php b/system/modules/isotope/languages/da/tl_iso_orderstatus.php deleted file mode 100644 index 325dcc5090..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_orderstatus.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Navn + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + Navn + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_payment.php b/system/modules/isotope/languages/da/tl_iso_payment.php deleted file mode 100644 index f58ac5bc65..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_payment.php +++ /dev/null @@ -1,28 +0,0 @@ - + + + + Payment Method Name + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + Forsendelsesmetoder + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + Produkttyper + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Butiksindstillinger + + + You can restrict this payment method to certain shop configurations. + + + Price + Pris + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + Moms klasse + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + Betalingsmetode + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + Betalingsmetode + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + Betalingsmetoder + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Beskrivelse + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Betalingsmetoder + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + Faktura + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + + + General configuration + + + Payment gateway configuration + + + Price + Pris + + + Template + + + Expert settings + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_product.php b/system/modules/isotope/languages/da/tl_iso_product.php deleted file mode 100644 index 7f7d9f2feb..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_product.php +++ /dev/null @@ -1,85 +0,0 @@ - + + + + Product ID + Produkt ID + + + Categories + Kategorier + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + Vælg en eller flere kategori(er) som produktet skal vises i. + + + Product type + Produkt type + + + Select your product type. Product types are defined in the store configuration. + Produkt typer bliver defineret i Produkt type håndteringen + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + Henvisning + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + Navn + + + Please enter the name of this product. + + + SKU + Varenummer + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + Vægt + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Indtast vægten for produktet. Vægten kan bruges til at beregne forsendelsesomkostninger. + + + Teaser + Appetitvækker + + + Please enter the teaser. + Indtast en appetitvækker. + + + Description + Beskrivelse + + + Please enter the product description. + Indtast en produktbeskrivelse. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + Meta beskrivelse + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + Meta nøgleord + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + Pris + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + Udelad fra forsendelse + + + Check if item is not a shipped item (such as downloadable products). + Afkryds hvis produktet ikke skal sendes (f.eks. ved download produkter). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + Billeder + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + Offentliggør produkt + + + Click here to show this product on your website. + Klik her for at vise produktet i shoppen + + + Start date + Start dato + + + Do not show this product before the date specified. + Vis ikke produktet før den angivne dato + + + Stop date + Slut dato + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + Kildemappe + + + Please choose the folder where product assets are located. + + + Preview + Eksempel + + + Alternate text + Alternativ tekst + + + Link target + Link mål + + + Description + Beskrivelse + + + Translate + Oversæt + + + None + Ingen + + + Do not translate this image. + Oversæt ikke dette billede + + + Text + Tekst + + + Translate alt text and description for this image. + Oversæt alt. tekst og beskrivelse for billedet. + + + All + Alle + + + Do not include this image in translated version. + + + Variant + Variant + + + Show product variants + + + New product + Tilføj produkt + + + Create new product + Tilføj et nyt produkt + + + Add variant + Tilføj variant + + + Add new variant to a given product + Tilføj varianter til et produkt + + + Edit product + Rediger produkt + + + Edit product ID %s + Rediger produktet ID %s + + + Copy product + Kopier produkt + + + Copy product ID %s + Kopier produktet ID %s + + + Move product + Flyt produkt + + + Move product ID %s + Flyt produktet ID %s + + + Delete product + Slet produkt + + + Delete product ID %s + Slet produktet ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + + + Show details of product ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + Importer filer + + + Import images and other media from a folder + Import billeder og andre filer fra en mappe + + + Manage prices + Administrer priser + + + Click the button to manage advanced prices for this product. + Administrer priser for produktet ID %s + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + Opret varianter + + + Generate variants for product ID %s + Opret varianter for produktet ID %s + + + Related products + Relaterede produkter + + + Manage related products for product ID %s + Administrer relaterede produkter for produktet ID %s + + + Downloads + Downloads + + + Edit downloads for product ID %s + Rediger downloads for produktet ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + + + General Settings + Generelle indstillinger + + + Meta data + Meta data + + + Pricing Settings + Pris indstillinger + + + Inventory Settings + Inventarindstillinger + + + Shipping Settings + Forsendelsesindstillinger + + + Product Options Settings + Produkt valgmuligheder + + + Media Management + Billedindstillinger + + + Expert settings + + + Publishing + Publiseringsindstillinger + + + Quantity + Antal + + + from %s pcs. + + + Price + Pris + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_product_category.php b/system/modules/isotope/languages/da/tl_iso_product_category.php deleted file mode 100644 index 897b343f2a..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_product_category.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Move product + Flyt produkt + + + Move product ID %s + Flyt produktet ID %s + + + Paste at the top + Indsæt i toppen + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_product_collection.php b/system/modules/isotope/languages/da/tl_iso_product_collection.php deleted file mode 100644 index 8aff899636..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_product_collection.php +++ /dev/null @@ -1,45 +0,0 @@ - + + + + Order ID + Ordre ID + + + Member (empty for guests) + + + Unique ID + Unikt ID + + + Order status + Ordrestatus + + + Select the status of this order. + Vælg en status for ordren + + + Placed + + + Source (Cart ID) + + + Payment date + Betalt den + + + Enter a date when this order has been paid. + Indtast datoen for betaling af ordren + + + Shipped date + Afsendt den + + + Enter a date when this order has been shipped. + Indtast datoen for afsendelsen af ordren + + + Shop configuration + Butiksindstilling + + + Payment method + Betalingsmetode + + + Shipping method + Forsendelsesmetode + + + Billing address + + + Shipping address + + + Subtotal + Subtotal + + + Subtotal without tax + + + Total + Total + + + Total without tax + + + Currency + Valuta + + + Language + + + Order notes + Ordre notater + + + If you would like to convey information to other backend users, please do so here. + Hvis du vil tilføje notater til ordre kan du gøre det her. Notaterne er kun synlige i administrationen. + + + Edit order + Rediger ordre + + + Edit order ID %s + Rediger ordren ID %s + + + Copy order + Kopier ordre + + + Copy order ID %s + Kopier ordren ID %s + + + Delete order + Slet ordre + + + Delete order ID %s + Slet ordren ID %s + + + Order details + Ordredetaljer + + + Show details of order ID %s + Vis detaljer for ordren ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + Ordrestatus + + + Order details + Ordredetaljer + + + Email data + Email data + + + Billing address data + Betalingsadresse data + + + Shipping address data + Forsendelsesadresse data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_product_price.php b/system/modules/isotope/languages/da/tl_iso_product_price.php deleted file mode 100644 index 9a33dfca37..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Price Tiers + Prisniveauer + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + Angiv en pris for "1 stk.". Du kan angive andre priser hvis brugeren bestiller mere end 1 stk. + + + Tax Class + Moms klasse + + + Please select a tax class for this price. + Vælg en moms klasse for dette produkt. + + + Store configuration + Butiksindstilling + + + Select a store configuration for this price. + Vælg en butiksindstilling for denne pris. + + + Member group + Medlemsgruppe + + + Select a member group for this price. + Vælg en medlemsgruppe for denne pris + + + Use from + Brug fra + + + Do not use the price on the website before this day. + Brug ikke prisen på shoppen før denne dato. + + + Use until + Brug indtil + + + Do not use the price on the website after this day. + Brug ikke prisen på shoppen efter denne dato. + + + Add price + Tilføj pris + + + Add a new price to this product + Tilføj en ny pris til dette produkt + + + Edit price + Rediger pris + + + Edit price ID %s + Rediger pris ID %s + + + Duplicate price + Dupliker pris + + + Duplicate price ID %s + Dupliker pris ID %s + + + Delete price + Slet pris + + + Delete price ID %s + Slet pris ID %s + + + Price details + Prisdetaljer + + + Show details of price ID %s + Vis detaljer for pris ID %s + + + Quantity (min) + Antal (min) + + + Price + Pris + + + Price + Pris + + + Limitations + Begrænsninger + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_producttype.php b/system/modules/isotope/languages/da/tl_iso_producttype.php deleted file mode 100644 index 7280996a11..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_producttype.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Name + Navn + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + + + Check here if this is the default product type. + + + Description + Beskrivelse + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Egenskaber + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + Udelad fra forsendelse + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + Beskrivelse + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_related_category.php b/system/modules/isotope/languages/da/tl_iso_related_category.php deleted file mode 100644 index 4c9f17a887..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_related_category.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + Category name + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + Rediger kategori + + + Edit category ID %s + Rediger kategorien ID %s + + + Duplicate category + Kopier kategori + + + Duplicate category ID %s + Kopier kategorien ID %s + + + Delete category + Slet kategori + + + Delete category ID %s + Slet kategorien ID %s + + + Category details + Kategori detaljer + + + Show details of category ID %s + Vis detaljer for kategorien ID %s + + + Name + Navn + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_related_product.php b/system/modules/isotope/languages/da/tl_iso_related_product.php deleted file mode 100644 index 5f0a048d1b..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_related_product.php +++ /dev/null @@ -1,36 +0,0 @@ - + + + + Category + Kategori + + + Select a category. + Vælg en kategori + + + Products + Produkter + + + Enter a comma-separated list of product or variant IDs to show as related products. + Indtast en kommasepareret liste med produkter eller variant-ID'er, der skal vises som relaterede produkter. + + + Add category + Tilføj kategori + + + Add a new category with products + Tilføj en ny kategori med produkter + + + Edit category + Rediger kategori + + + Edit category ID %s + Rediger kategorien ID %s + + + Duplicate category + Kopier kategori + + + Duplicate category ID %s + Kopier kategorien ID %s + + + Move category + Flyt kategori + + + Move category ID %s + Flyt kategorien ID %s + + + Delete category + Slet kategori + + + Delete category ID %s + Slet kategorien ID %s + + + Category details + Kategori detaljer + + + Show details of category ID %s + Vis detaljer for kategorien ID %s + + + Edit product + Rediger produkt + + + Edit this product + Rediger produktet + + + Category + Kategori + + + Related products + Relaterede produkter + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_shipping.php b/system/modules/isotope/languages/da/tl_iso_shipping.php deleted file mode 100644 index 10cb279d4a..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_shipping.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Shipping Method Name + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + Pris + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + Moms klasse + + + Select a tax class that applies to the shipping price. + + + Label + Mærkat + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Produkttyper + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Butiksindstillinger + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Forsendelsesmetoder + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + + + Hide the module if a member is logged in. + + + Enabled + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_tax_class.php b/system/modules/isotope/languages/da/tl_iso_tax_class.php deleted file mode 100644 index 7b26d269ca..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_tax_class.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + Navn + + + Give this tax class a name that explains what it is used for. + + + Default + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + Navn + + + Tax rates + Moms satser + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_iso_tax_rate.php b/system/modules/isotope/languages/da/tl_iso_tax_rate.php deleted file mode 100644 index 2a88b464de..0000000000 --- a/system/modules/isotope/languages/da/tl_iso_tax_rate.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Name + Navn + + + Enter a name for this tax rate. + + + Label + Mærkat + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + Butiksindstilling + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + Betalingsadresse + + + Shipping Address + Forsendelsesadresse + + + Name + Navn + + + Rate + + + Location + + + Conditions + + + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_maintenance.php b/system/modules/isotope/languages/da/tl_maintenance.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope/languages/da/tl_maintenance.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_member.php b/system/modules/isotope/languages/da/tl_member.php deleted file mode 100644 index f2a22f2da5..0000000000 --- a/system/modules/isotope/languages/da/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + Adressebog + + + Manage the address book for member ID %s. + Rediger adressebog + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_module.php b/system/modules/isotope/languages/da/tl_module.php deleted file mode 100644 index edd84824f3..0000000000 --- a/system/modules/isotope/languages/da/tl_module.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Product list template + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + Butiksindstilling + + + Select the store configuration that this module will be used for. + + + Store configurations + Butiksindstillinger + + + Select the store configurations that this module will be used for. + + + Payment methods + Betalingsmetoder + + + Select one or more payment methods for this checkout module. + + + Shipping methods + Forsendelsesmetoder + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + + + Select a initial sorting direction. + + + Buttons + + + Select the buttons you want to show. + + + Related categories + Relaterede kattegorier + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + + + Guest checkout only + + + Both allowed + + + All Categories + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_nc_notification.php b/system/modules/isotope/languages/da/tl_nc_notification.php deleted file mode 100644 index 45ac98d9bb..0000000000 --- a/system/modules/isotope/languages/da/tl_nc_notification.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_page.php b/system/modules/isotope/languages/da/tl_page.php deleted file mode 100644 index 7eac95ae1b..0000000000 --- a/system/modules/isotope/languages/da/tl_page.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Store Configuration + + + Select a store configuration for this page structure. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + Butiks-ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_settings.php b/system/modules/isotope/languages/da/tl_settings.php deleted file mode 100644 index ef56a3d2e3..0000000000 --- a/system/modules/isotope/languages/da/tl_settings.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Guest cart timeout + Levetid for gæsters kurv + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_user.php b/system/modules/isotope/languages/da/tl_user.php deleted file mode 100644 index c9c98ed5d3..0000000000 --- a/system/modules/isotope/languages/da/tl_user.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope modules + + + Select which store configuration modules user of this group can access. + + + Allowed product types + + + Here you can grant access to one or more product types. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + + + Here you can grant access to one or more store configurations. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tl_user_group.php b/system/modules/isotope/languages/da/tl_user_group.php deleted file mode 100644 index f975a837f8..0000000000 --- a/system/modules/isotope/languages/da/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/da/tokens.php b/system/modules/isotope/languages/da/tokens.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope/languages/da/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/default.php b/system/modules/isotope/languages/de/default.php deleted file mode 100644 index bf1f8a0af7..0000000000 --- a/system/modules/isotope/languages/de/default.php +++ /dev/null @@ -1,439 +0,0 @@ -Ab %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Details sehen'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Produkte pro Seite'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Suchbegriffe'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Senden'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Filter zurücksetzen'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Aktualisieren'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'In den Warenkorb'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Sortieren nach:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Zurzeit sind in dieser Kategorie keine Produkte vorhanden.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Zurück'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Weiter'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Kostenpflichtig bestellen'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Dieses Produkt ist keiner Kategorie zugeordnet.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Senden'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Entfernen'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Ihr Warenkorb ist leer.'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'Das gewählte Produkt wurde in den Warenkorb gelegt.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'Die unbestellten Produkte Ihres letzten Besuchs wurden wieder übernommen. Bitte prüfen Sie den Warenkorb-Inhalt.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = '%s aus Ihrem Warenkorb entfernen'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Zwischensumme'; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Versand'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Bezahlung'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Bestellsumme'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'Zur Zeit sind keine Zahlungsoptionen verfügbar.'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'Leider können die Produkte zur Zeit nicht in Ihr Land geliefert werden. Bitte wählen Sie eine andere Versand-Adresse oder nur Artikel die nicht versendet werden müssen (z. B. Download-Artikel).'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Keine Bestell-E-Mails gefunden.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Keine Bestellungen gefunden.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s Downloads verbleibend'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Warenkorb'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Zur Kasse'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Weiter einkaufen'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Warenkorb aktualisieren'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Bestell-Status: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Zurück zu "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Neue Adresse anlegen'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Rechnungs-Adresse verwenden'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Kunden-Adresse verwenden'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Abweichende Versand-Adresse'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Bearbeiten'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Löschen'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Möchten Sie diese Adresse wirklich löschen? Es gibt keine Rückgängig-Funktion für diesen Vorgang.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Rechnung'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Status'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Bestelldatum'; -$GLOBALS['TL_LANG']['MSC']['iso_order_document_number'] = 'Bestellnummer'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Beschreibung'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Anzahl'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Preis'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Gesamt'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'niedrig - hoch'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'hoch - niedrig'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'A - Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'Z - A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'alt - neu'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'neu - alt'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Zahlung ausführen'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][1] = 'Sie werden auf die Website des Zahlungsanbieters weitergeleitet.'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Bezahlen'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][3] = 'Bitte klicken Sie auf „Jetzt bezahlen“ um fortzufahren.'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Klicken Sie hier um die PayPal-Transaktion online anzusehen'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 Produkt'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s Produkte'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Geben Sie Ihre Versandinformationen ein oder wählen Sie eine bestehende Adresse aus.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Geben Sie Ihre Rechnungsinformationen ein oder wählen Sie eine bestehende Adresse aus.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Geben Sie Ihre Rechnungsinformationen ein'; -$GLOBALS['TL_LANG']['MSC']['customer_address_message'] = 'Geben Sie Ihre Kundeninformationen ein oder wählen Sie eine bestehende Adresse aus.'; -$GLOBALS['TL_LANG']['MSC']['customer_address_guest_message'] = 'Geben Sie Ihre Kundeninformationen ein'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Wählen Sie eine Versandart aus.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Bitte wählen Sie eine Versandart.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_message'] = 'Geben Sie die Bezahlinformationen ein.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_missing'] = 'Bitte wählen Sie eine Zahlungsart.'; -$GLOBALS['TL_LANG']['MSC']['order_review_message'] = 'Überprüfen und bestätigen Sie Ihre Bestellung.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Adresse'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Versand'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Bezahlung'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Zusammenfassung'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Rechnungsadresse'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Versandadresse'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Rechnungs- und Versandadresse'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Kundenadresse'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Versandart'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Bezahlmethode'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Bestellvorschau'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Ändern'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Kreditkarten-Nummer'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Kreditkarten-Typ'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'CCV-Kartenprüfnummer (3 oder 4-stellige Zahl)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Ablaufmonat'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Ablaufjahr'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = 'Bezahlmodul nicht gefunden!'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNotFound'] = 'Versandmodul nicht gefunden!'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNoInfo'] = 'Dieses Bezahlmodul stellt keine zusätzlichen Informationen bereit.'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNoInfo'] = 'Dieses Versandmodul stellt keine zusätzlichen Informationen bereit.'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Vorgabe-Wert nutzen'; -$GLOBALS['TL_LANG']['MSC']['activeStep'] = 'Aktiver Schritt:'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Lade Produkte...'; -$GLOBALS['TL_LANG']['MSC']['productcacheNoscript'] = 'Ihr Browser unterstützt kein JavaScript. Bitte hier klicken um die Produktliste zu laden.'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'Keine Dateien in diesem Ordner'; -$GLOBALS['TL_LANG']['MSC']['assetImportConfirmation'] = 'Datei %s für Product "%s" importiert'; -$GLOBALS['TL_LANG']['MSC']['assetImportNoFilesFound'] = 'Der Order enthält keine Dateien passenden Dateien.'; -$GLOBALS['TL_LANG']['MSC']['loadingProductData'] = 'Lade Produktdaten ...'; -$GLOBALS['TL_LANG']['MSC']['templatesConfig'] = 'Shop-Konfiguration "%s"'; -$GLOBALS['TL_LANG']['MSC']['splittedTaxRate'] = 'Aufgeteilt'; -$GLOBALS['TL_LANG']['MSC']['newOrders'] = 'Sie haben %s Bestellung(en) mit dem Status "%s"'; -$GLOBALS['TL_LANG']['MSC']['checkoutStep'] = 'Schritt %s von %s (%s) - '; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minuten'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Stunden'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Tage'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Wochen'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Monate'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Jahre'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroductionLegend'] = 'Einführung'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Willkommen zu Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][1] = 'Isotope ist die führende Open Source eCommerce Lösung für Contao.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][2] = 'Auf dieser Seite werden die meisten Einstellungen vorgenommen. Sie sollten am Ende der Seite starten und sich Schritt für Schritt von rechts unten nach links oben arbeiten.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][3] = 'Besuchen Sie die offizielle Isotope eCommerce Website für aktuelle News, Konfigurationsanleitungen und unsere Spendenkampagnen. Vielen Dank dass Sie uns etwas zurückgeben!'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][4] = 'Das Isotope eCommerce Team'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][5] = 'Isotope ist ein Produkt der %s in Zusammenarbeit mit dem Isotope eCommerce Team.'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_id'] = 'nach Datum hinzugefügt (aufsteigend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_id'] = 'nach Datum hinzugefügt (absteigend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_tstamp'] = 'nach Datum aktualisiert (aufsteigend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_tstamp'] = 'nach Datum aktualisiert (absteigend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_name'] = 'nach Produktnamen (aufsteigend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_name'] = 'nach Produktnamen (absteigend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_price'] = 'nach Preis (aufsteigend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_price'] = 'nach Preis (absteigend)'; -$GLOBALS['TL_LANG']['MSC']['noShippingAddress'] = 'Bitte geben Sie eine Lieferadresse ein.'; -$GLOBALS['TL_LANG']['MSC']['noShippingRequiredMsg'] = 'Keines der Produkte in Ihrem Warenkorb muss geliefert werden.'; -$GLOBALS['TL_LANG']['MSC']['availableShippingMethodsMsg'] = 'Folgende Versandarten sind für Ihren aktuellen Warenkorb und Ihre angegebene Versandadresse verfügbar:'; -$GLOBALS['TL_LANG']['MSC']['saveAddressButton'] = 'Adresse speichern'; -$GLOBALS['TL_LANG']['MSC']['billpay_agb_de'] = 'Mit der Übermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die Billpay GmbH bin ich einverstanden. Es gelten die Datenschutzbestimmungen von Billpay.'; -$GLOBALS['TL_LANG']['MSC']['billpay_agb_ch'] = 'Mit der Übermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die Billpay GmbH bin ich einverstanden. Es gelten die Datenschutzbestimmungen von Billpay.'; -$GLOBALS['TL_LANG']['MSC']['billpay_agb_at'] = 'Mit der Übermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die Billpay GmbH bin ich einverstanden. Es gelten die Datenschutzbestimmungen von Billpay.'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][0] = 'Pauschalpreis-Versand'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][1] = 'Dies ist die Standard Versandart für den aktiven Versand.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][0] = 'Versandgruppe'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][1] = 'In dieser Methode können verschiedene Versandarten zu einer gruppiert werden und anhand von ihnen wird der Preis berechnet.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][0] = 'Barzahlung'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][1] = 'Benutzen Sie dies für alle persönlich-abgewickelten Bezahlungen.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paybyway'][0] = 'Paybyway'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paybyway'][1] = 'Fügt den Zahlungsanbieter Paybyway hinzu.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][0] = 'PayPal Standard Checkout'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][1] = 'Dieses PayPal-Modul unterstützt IPN (Instant Payment Notifications).'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['postfinance'][0] = 'PostFinance'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['postfinance'][1] = 'Bezahlschnittstelle für das schweizer Post-Bezahlsystem welches verschiedene Kartentypen unterstützt. Der Shop wird sofort über alle erfolgreichen Transaktionen informiert.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['viveum'][0] = 'VIVEUM'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['viveum'][1] = 'Bezahlschnittstelle für VIVEUM Zahlungssysteme GmbH.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][0] = 'Datatrans'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][1] = 'Ein Bezahlmodul für die schweizer Bezahlschnittstelle "Datatrans".'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['innopay'][0] = 'Innopay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['innopay'][1] = 'Ein Zahlungsmodul für das Schweizer-Zahlungs-Gateway "Innocard".'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['sparkasse'][0] = 'Sparkasse'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['saferpay'][0] = 'Saferpay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['billpay_saferpay'][0] = 'BillPay (mittels Saferpay)'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['sofortueberweisung'][0] = 'sofortüberweisung.de'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['expercash'][0] = 'ExperCash'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['epay'][0] = 'ePay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['epay'][1] = 'Fügt den Zahlungsanbieter ePay hinzu.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['payone'][0] = 'PayOne'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['worldpay'][0] = 'WorldPay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['quickpay'][0] = 'QuickPay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_document']['standard'][0] = 'Standard'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][0] = 'Standard-Galerie'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][1] = '

Benutzt die Lightbox/Mediabox für Bilder in voller Größe. Stellen Sie sicher, dass Sie das zugehörige "moo_"-Template in Ihrem Seitenlayout auswählen.

Sie können das "rel"-Attribut nutzen, indem Sie einen senkrechten Strich verwenden (z.B. "tl_files/video.mov|lightbox[400 300]"). Die Seite wird in einem neuen Fenster geöffnet, sollten Sie kein "rel"-Attribut verwenden.

'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][0] = 'Inline-Galerie'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][1] = 'Ein Klick auf ein Galerie-Bild ersetzt das Hauptbild.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['elevatezoom'][0] = 'Elevate zoom Galerie'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['elevatezoom'][1] = 'Eine Galerie, bei der beim Mouseover im Bild gezoomt wird. Mehr Infos auf der Skript-Website.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][0] = 'Standard-Produkt'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][1] = 'Wählen Sie das Standard-Produkt wenn kein anderes zutrifft.'; -$GLOBALS['TL_LANG']['ISO_VAT']['eu_vies'] = 'Europäische USt-IdNr. (VIES)'; -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['enroute'] = 'EnRoute'; -$GLOBALS['TL_LANG']['CCT']['carte_blanche'] = 'Carte Blanche'; -$GLOBALS['TL_LANG']['CCT']['jal'] = 'JAL'; -$GLOBALS['TL_LANG']['CCT']['maestro'] = 'Maestro UK'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['solo'] = 'Solo'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['CCT']['dankort'] = 'Dankort'; -$GLOBALS['TL_LANG']['CCT']['laser'] = 'Laser'; -$GLOBALS['TL_LANG']['CCT']['carte_bleue'] = 'Carte Bleue'; -$GLOBALS['TL_LANG']['CCT']['carta_si'] = 'Carta Si'; -$GLOBALS['TL_LANG']['CCT']['enc_acct_num'] = 'Verschlüsselte Kontonummer'; -$GLOBALS['TL_LANG']['CCT']['uatp'] = 'Universal Air Travel Programm'; -$GLOBALS['TL_LANG']['CCT']['maestro_intl'] = 'Maestro International'; -$GLOBALS['TL_LANG']['CCT']['ge_money_uk'] = 'GE Money UK'; -$GLOBALS['TL_LANG']['ATTR']['text'][0] = 'Textfeld'; -$GLOBALS['TL_LANG']['ATTR']['text'][1] = 'Ein einzeiliges Eingabefeld für kurze und mittlere Texte.'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][0] = 'Textarea'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][1] = 'Ein mehrzeiliges Eingabefeld für mittlere und lange Texte.'; -$GLOBALS['TL_LANG']['ATTR']['select'][0] = 'Select-Menü'; -$GLOBALS['TL_LANG']['ATTR']['select'][1] = 'Ein ein- oder mehrzeiliges Auswahlmenü.
Dieser Feldtyp eignet sich für Produktvarianten.'; -$GLOBALS['TL_LANG']['ATTR']['radio'][0] = 'Radio-Button-Menü'; -$GLOBALS['TL_LANG']['ATTR']['radio'][1] = 'Eine Liste von mehrfachen Möglichkeiten bei der nur eine Auswahl getroffen werden kann.
Dieser Feldtyp eignet sich für Produktvarianten.'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][0] = 'Checkbox-Menü'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][1] = 'Eine Liste von mehrfachen Möglichkeiten bei der mehrere Auswahlen getroffen werden können.'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][0] = 'Medienverwaltung'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][1] = 'Ladet Bilder und andere Dateien in das Isotope eCommerce Dateisystem hoch. Die Ausgabe erfolgt durch eine IsotopeGallery-Klasse.'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][0] = 'Abhängiges Select-Menü'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][1] = 'Zeigt Auswahlen basierend auf einem anderen Select-Menü an.'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][0] = 'Dateibaum'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][1] = 'Ein Dateibaum für eine oder mehrere Dateien und Ordner.'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Downloads'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][1] = 'Dateien zu einem Produkt herunterladen, z.B. Handbücher, Datenblätter, etc.'; -$GLOBALS['TL_LANG']['ATTR']['upload'][0] = 'Datei-Upload'; -$GLOBALS['TL_LANG']['ATTR']['upload'][1] = 'Ein einzeiliges Eingabefeld um lokale Dateien auf den Server hochzuladen.'; -$GLOBALS['TL_LANG']['ATTR']['media'][0] = 'Video/Audio'; -$GLOBALS['TL_LANG']['ATTR']['media'][1] = 'Erzeugt einen Video- oder Audio-Player.'; -$GLOBALS['TL_LANG']['CUR']['AED'] = 'AED - United Arab Emirates Dirham'; -$GLOBALS['TL_LANG']['CUR']['AFN'] = 'AFN - Afghani'; -$GLOBALS['TL_LANG']['CUR']['ALL'] = 'ALL - Lek'; -$GLOBALS['TL_LANG']['CUR']['AMD'] = 'AMD - Dram'; -$GLOBALS['TL_LANG']['CUR']['ANG'] = 'ANG - Netherlands Antilles Guilder'; -$GLOBALS['TL_LANG']['CUR']['AOA'] = 'AOA - Kwanza'; -$GLOBALS['TL_LANG']['CUR']['ARS'] = 'ARS - Argentinian Nuevo Peso'; -$GLOBALS['TL_LANG']['CUR']['AUD'] = 'AUD - Australian Dollar'; -$GLOBALS['TL_LANG']['CUR']['AWG'] = 'AWG - Aruban Guilder'; -$GLOBALS['TL_LANG']['CUR']['AZN'] = 'AZN - Azerbaijani Manat'; -$GLOBALS['TL_LANG']['CUR']['BAM'] = 'BAM - Convertible Mark'; -$GLOBALS['TL_LANG']['CUR']['BBD'] = 'BBD - Barbados Dollar'; -$GLOBALS['TL_LANG']['CUR']['BDT'] = 'BDT - Taka'; -$GLOBALS['TL_LANG']['CUR']['BGN'] = 'BGN - Bulgarian Lev'; -$GLOBALS['TL_LANG']['CUR']['BHD'] = 'BHD - Bahraini Dinar'; -$GLOBALS['TL_LANG']['CUR']['BIF'] = 'BIF - Burundi Franc'; -$GLOBALS['TL_LANG']['CUR']['BMD'] = 'BMD - Bermudian Dollar'; -$GLOBALS['TL_LANG']['CUR']['BND'] = 'BND - Brunei Dollar'; -$GLOBALS['TL_LANG']['CUR']['BOB'] = 'BOB - Boliviano'; -$GLOBALS['TL_LANG']['CUR']['BRL'] = 'BRL - Brazilian real'; -$GLOBALS['TL_LANG']['CUR']['BSD'] = 'BSD - Bahamian Dollar'; -$GLOBALS['TL_LANG']['CUR']['BTN'] = 'BTN - Ngultrum'; -$GLOBALS['TL_LANG']['CUR']['BWP'] = 'BWP - Pula'; -$GLOBALS['TL_LANG']['CUR']['BYR'] = 'BYR - Belarussian Rouble'; -$GLOBALS['TL_LANG']['CUR']['BZD'] = 'BZD - Belize Dollar'; -$GLOBALS['TL_LANG']['CUR']['CAD'] = 'CAD - Canadian Dollar'; -$GLOBALS['TL_LANG']['CUR']['CDF'] = 'CDF - Congolese Franc'; -$GLOBALS['TL_LANG']['CUR']['CHF'] = 'CHF - Swiss Franc'; -$GLOBALS['TL_LANG']['CUR']['CLF'] = 'CLF - Unidades de Fomento'; -$GLOBALS['TL_LANG']['CUR']['CLP'] = 'CLP - Chilean Peso'; -$GLOBALS['TL_LANG']['CUR']['CNY'] = 'CNY - Yuan Renminbi'; -$GLOBALS['TL_LANG']['CUR']['COP'] = 'COP - Colombian Peso'; -$GLOBALS['TL_LANG']['CUR']['CRC'] = 'CRC - Costa Rican Colón'; -$GLOBALS['TL_LANG']['CUR']['CUC'] = 'CUC - Peso Convertible'; -$GLOBALS['TL_LANG']['CUR']['CUP'] = 'CUP - Cuban Peso'; -$GLOBALS['TL_LANG']['CUR']['CVE'] = 'CVE - Escudo Caboverdiano'; -$GLOBALS['TL_LANG']['CUR']['CZK'] = 'CZK - Czech Koruna'; -$GLOBALS['TL_LANG']['CUR']['DJF'] = 'DJF - Djibouti Franc'; -$GLOBALS['TL_LANG']['CUR']['DKK'] = 'DKK - Danish Krone'; -$GLOBALS['TL_LANG']['CUR']['DOP'] = 'DOP - Dominican Republic Peso'; -$GLOBALS['TL_LANG']['CUR']['DZD'] = 'DZD - Algerian Dinar'; -$GLOBALS['TL_LANG']['CUR']['EGP'] = 'EGP - Egyptian Pound'; -$GLOBALS['TL_LANG']['CUR']['ERN'] = 'ERN - Eritrean Nakfa'; -$GLOBALS['TL_LANG']['CUR']['ETB'] = 'ETB - Ethiopian Birr'; -$GLOBALS['TL_LANG']['CUR']['EUR'] = 'EUR - Euro'; -$GLOBALS['TL_LANG']['CUR']['FJD'] = 'FJD - Fiji Dollar'; -$GLOBALS['TL_LANG']['CUR']['FKP'] = 'FKP - Falkland Pound'; -$GLOBALS['TL_LANG']['CUR']['GBP'] = 'GBP - Pound Sterling'; -$GLOBALS['TL_LANG']['CUR']['GEL'] = 'GEL - Lari'; -$GLOBALS['TL_LANG']['CUR']['GHS'] = 'GHS - Ghanaian cedi'; -$GLOBALS['TL_LANG']['CUR']['GIP'] = 'GIP - Gibraltar Pound'; -$GLOBALS['TL_LANG']['CUR']['GMD'] = 'GMD - Dalasi'; -$GLOBALS['TL_LANG']['CUR']['GNF'] = 'GNF - Guinea Franc'; -$GLOBALS['TL_LANG']['CUR']['GTQ'] = 'GTQ - Quetzal'; -$GLOBALS['TL_LANG']['CUR']['GYD'] = 'GYD - Guyana Dollar'; -$GLOBALS['TL_LANG']['CUR']['HKD'] = 'HKD - Hong Kong Dollar'; -$GLOBALS['TL_LANG']['CUR']['HNL'] = 'HNL - Lempira'; -$GLOBALS['TL_LANG']['CUR']['HRD'] = 'HRD - Croatian Dinar'; -$GLOBALS['TL_LANG']['CUR']['HRK'] = 'HRK - Croatian Kuna'; -$GLOBALS['TL_LANG']['CUR']['HTG'] = 'HTG - Gourde'; -$GLOBALS['TL_LANG']['CUR']['HUF'] = 'HUF - Forint'; -$GLOBALS['TL_LANG']['CUR']['IDR'] = 'IDR - Rupiah'; -$GLOBALS['TL_LANG']['CUR']['ILS'] = 'ILS - Shekel'; -$GLOBALS['TL_LANG']['CUR']['INR'] = 'INR - Indian Rupee'; -$GLOBALS['TL_LANG']['CUR']['IQD'] = 'IQD - Iraqi Dinar'; -$GLOBALS['TL_LANG']['CUR']['IRR'] = 'IRR - Iranian Rial'; -$GLOBALS['TL_LANG']['CUR']['ISK'] = 'ISK - Icelandic Króna'; -$GLOBALS['TL_LANG']['CUR']['JMD'] = 'JMD - Jamaican Dollar'; -$GLOBALS['TL_LANG']['CUR']['JOD'] = 'JOD - Jordanian Dinar'; -$GLOBALS['TL_LANG']['CUR']['JPY'] = 'JPY - Yen'; -$GLOBALS['TL_LANG']['CUR']['KES'] = 'KES - Kenyan Shilling'; -$GLOBALS['TL_LANG']['CUR']['KGS'] = 'KGS - Kyrgyzstani Som'; -$GLOBALS['TL_LANG']['CUR']['KHR'] = 'KHR - Riel'; -$GLOBALS['TL_LANG']['CUR']['KMF'] = 'KMF - Comorian Franc'; -$GLOBALS['TL_LANG']['CUR']['KPW'] = 'KPW - Democratic People\'s Republic of Korean Won'; -$GLOBALS['TL_LANG']['CUR']['KRW'] = 'KRW - Republic of Korean Won'; -$GLOBALS['TL_LANG']['CUR']['KWD'] = 'KWD - Kuwaiti Dinar'; -$GLOBALS['TL_LANG']['CUR']['KYD'] = 'KYD - Cayman Islands Dollar'; -$GLOBALS['TL_LANG']['CUR']['KZT'] = 'KZT - Tenge'; -$GLOBALS['TL_LANG']['CUR']['LAK'] = 'LAK - Kip'; -$GLOBALS['TL_LANG']['CUR']['LBP'] = 'LBP - Lebanese Pound'; -$GLOBALS['TL_LANG']['CUR']['LKR'] = 'LKR - Sri Lankan Rupee'; -$GLOBALS['TL_LANG']['CUR']['LRD'] = 'LRD - Liberian Dollar'; -$GLOBALS['TL_LANG']['CUR']['LSL'] = 'LSL - Loti'; -$GLOBALS['TL_LANG']['CUR']['LTL'] = 'LTL - Litas'; -$GLOBALS['TL_LANG']['CUR']['LVL'] = 'LVL - Lats'; -$GLOBALS['TL_LANG']['CUR']['LYD'] = 'LYD - Libyan Dinar'; -$GLOBALS['TL_LANG']['CUR']['MAD'] = 'MAD - Moroccan Dirham'; -$GLOBALS['TL_LANG']['CUR']['MDL'] = 'MDL - Moldavian Leu'; -$GLOBALS['TL_LANG']['CUR']['MGA'] = 'MGA - Malagasy ariary'; -$GLOBALS['TL_LANG']['CUR']['MKD'] = 'MKD - Macedonian Dinar'; -$GLOBALS['TL_LANG']['CUR']['MMK'] = 'MMK - Kyat'; -$GLOBALS['TL_LANG']['CUR']['MNT'] = 'MNT - Tugrik'; -$GLOBALS['TL_LANG']['CUR']['MOP'] = 'MOP - Pataca'; -$GLOBALS['TL_LANG']['CUR']['MRO'] = 'MRO - Ouguiya'; -$GLOBALS['TL_LANG']['CUR']['MUR'] = 'MUR - Mauritius Rupee'; -$GLOBALS['TL_LANG']['CUR']['MVR'] = 'MVR - Rufiyaa'; -$GLOBALS['TL_LANG']['CUR']['MWK'] = 'MWK - Malawian Kwacha'; -$GLOBALS['TL_LANG']['CUR']['MXN'] = 'MXN - Mexican Peso'; -$GLOBALS['TL_LANG']['CUR']['MYR'] = 'MYR - Ringgit (Malaysian Dollar)'; -$GLOBALS['TL_LANG']['CUR']['MZN'] = 'MZN - Mozambican metical'; -$GLOBALS['TL_LANG']['CUR']['NAD'] = 'NAD - Namibia Dollar'; -$GLOBALS['TL_LANG']['CUR']['NGN'] = 'NGN - Naira'; -$GLOBALS['TL_LANG']['CUR']['NIO'] = 'NIO - Cordoba Oro'; -$GLOBALS['TL_LANG']['CUR']['NOK'] = 'NOK - Norwegian Krone'; -$GLOBALS['TL_LANG']['CUR']['NPR'] = 'NPR - Nepalese Rupee'; -$GLOBALS['TL_LANG']['CUR']['NZD'] = 'NZD - New Zealand Dollar'; -$GLOBALS['TL_LANG']['CUR']['OMR'] = 'OMR - Omani Rial'; -$GLOBALS['TL_LANG']['CUR']['PAB'] = 'PAB - Balboa'; -$GLOBALS['TL_LANG']['CUR']['PEN'] = 'PEN - New Sol'; -$GLOBALS['TL_LANG']['CUR']['PGK'] = 'PGK - Kina'; -$GLOBALS['TL_LANG']['CUR']['PHP'] = 'PHP - Philippines Peso'; -$GLOBALS['TL_LANG']['CUR']['PKR'] = 'PKR - Pakistani Rupee'; -$GLOBALS['TL_LANG']['CUR']['PLN'] = 'PLN - Zloty'; -$GLOBALS['TL_LANG']['CUR']['PYG'] = 'PYG - Guarani'; -$GLOBALS['TL_LANG']['CUR']['QAR'] = 'QAR - Qatari Riyal'; -$GLOBALS['TL_LANG']['CUR']['RON'] = 'RON - Romanian New Leu'; -$GLOBALS['TL_LANG']['CUR']['RSD'] = 'RSD - Serbian Dinar'; -$GLOBALS['TL_LANG']['CUR']['RUB'] = 'RUB - Russian Federation Rouble'; -$GLOBALS['TL_LANG']['CUR']['RWF'] = 'RWF - Rwandan Franc'; -$GLOBALS['TL_LANG']['CUR']['SAR'] = 'SAR - Saudi Riyal'; -$GLOBALS['TL_LANG']['CUR']['SBD'] = 'SBD - Solomon Islands Dollar'; -$GLOBALS['TL_LANG']['CUR']['SCR'] = 'SCR - Seychelles Rupee'; -$GLOBALS['TL_LANG']['CUR']['SDG'] = 'SDG - Sudanese Pound'; -$GLOBALS['TL_LANG']['CUR']['SEK'] = 'SEK - Swedish Krona'; -$GLOBALS['TL_LANG']['CUR']['SGD'] = 'SGD - Singapore Dollar'; -$GLOBALS['TL_LANG']['CUR']['SHP'] = 'SHP - St. Helena Pound'; -$GLOBALS['TL_LANG']['CUR']['SLL'] = 'SLL - Leone'; -$GLOBALS['TL_LANG']['CUR']['SOS'] = 'SOS - Somali Shilling'; -$GLOBALS['TL_LANG']['CUR']['SRD'] = 'SRD - Surinamese Dollar'; -$GLOBALS['TL_LANG']['CUR']['SSP'] = 'SSP - South Sudanese Pound'; -$GLOBALS['TL_LANG']['CUR']['STD'] = 'STD - Dobra'; -$GLOBALS['TL_LANG']['CUR']['SVC'] = 'SVC - El Salvador Colon'; -$GLOBALS['TL_LANG']['CUR']['SYP'] = 'SYP - Syrian Pound'; -$GLOBALS['TL_LANG']['CUR']['SZL'] = 'SZL - Lilangeni'; -$GLOBALS['TL_LANG']['CUR']['THB'] = 'THB - Baht'; -$GLOBALS['TL_LANG']['CUR']['TJS'] = 'TJS - Tajikistani Somoni'; -$GLOBALS['TL_LANG']['CUR']['TMT'] = 'TMT - Turkmenistani Manat'; -$GLOBALS['TL_LANG']['CUR']['TND'] = 'TND - Tunisian Dinar'; -$GLOBALS['TL_LANG']['CUR']['TOP'] = 'TOP - Pa\'anga'; -$GLOBALS['TL_LANG']['CUR']['TRY'] = 'TRY - New Turkish Lira'; -$GLOBALS['TL_LANG']['CUR']['TTD'] = 'TTD - Trinidad and Tobago Dollar'; -$GLOBALS['TL_LANG']['CUR']['TWD'] = 'TWD - Taiwan Dollar'; -$GLOBALS['TL_LANG']['CUR']['TZS'] = 'TZS - Tanzanian Shilling'; -$GLOBALS['TL_LANG']['CUR']['UAH'] = 'UAH - Hryvna'; -$GLOBALS['TL_LANG']['CUR']['UGX'] = 'UGX - Ugandan Shilling'; -$GLOBALS['TL_LANG']['CUR']['USD'] = 'USD - United States Dollar'; -$GLOBALS['TL_LANG']['CUR']['UYU'] = 'UYU - Uruguayan Peso'; -$GLOBALS['TL_LANG']['CUR']['UZS'] = 'UZS - Uzbekistani Som'; -$GLOBALS['TL_LANG']['CUR']['VEF'] = 'VEF - Bolivar Fuerte'; -$GLOBALS['TL_LANG']['CUR']['VND'] = 'VND - Viet Nam Dông'; -$GLOBALS['TL_LANG']['CUR']['VUV'] = 'VUV - Vatu'; -$GLOBALS['TL_LANG']['CUR']['WST'] = 'WST - Tala'; -$GLOBALS['TL_LANG']['CUR']['XCD'] = 'XCD - East Caribbean Dollar'; -$GLOBALS['TL_LANG']['CUR']['YER'] = 'YER - Yemeni Riyal'; -$GLOBALS['TL_LANG']['CUR']['ZAR'] = 'ZAR - Rand'; -$GLOBALS['TL_LANG']['CUR']['ZMK'] = 'ZMK - Zambian Kwacha'; -$GLOBALS['TL_LANG']['CUR']['ZWL'] = 'ZWL - Zimbabwe Dollar'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['CHF'] = 'Fr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['DKK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['NOK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['SEK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; diff --git a/system/modules/isotope/languages/de/default.xlf b/system/modules/isotope/languages/de/default.xlf new file mode 100644 index 0000000000..dca0a435a6 --- /dev/null +++ b/system/modules/isotope/languages/de/default.xlf @@ -0,0 +1,1758 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Der Name `%s` ist vom System reserviert. Bitte wählen Sie einen anderen Namen. + + + No store configuration available + Keine Shop-Konfiguration verfügbar + + + Please create a default store configuration. + Bitte erstellen Sie eine Standard-Shop-Konfiguration. + + + You have not yet placed any orders. + Sie haben noch keine Bestellungen getätigt. + + + The requested order was not found. + Die gewünschte Bestellung wurde nicht gefunden. + + + You must be logged in to checkout. + Für den Bezahlvorgang müssen Sie eingeloggt sein. + + + A variant with this attributes is already available. Please select another combination. + Eine Variante mit diesen Attributen ist bereits vorhanden. Wählen Sie bitte eine andere Zusammenstellung. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Bitte geben Sie ganze Zahlen oder Dezimalzahlen verbunden mit + oder - und optional mit einer Prozentangabe ein. + + + Please enter whole numbers or decimals optionally with a percentage. + Bitte geben Sie ganze Zahlen oder Dezimalzahlen optional mit einer Prozentangabe ein. + + + Checkout failed. Please try again or choose another payment method. + Der Bezahlvorgang ist fehlgeschlagen. Bitte versuchen Sie es erneut oder wählen Sie eine andere Bezahlmethode. + + + You have no address book entries. + Sie haben keine Adressbuch-Einträge. + + + The minimum order amount is %s. Please add more products before checkout. + Der Mindestbestellwert beträgt %s. Bitte legen Sie weitere Produkte in den Warenkorb. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + Die Mindestbestellmenge für "%s" ist %s Stück. Bitte prüfen Sie Ihren Warenkorb. + + + This image has already been assigned to the fallback language. + Dieses Bild wurde bereits der Fallback-Sprache zugewiesen. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + Wählen Sie eine bestimmte Feldvalidation (Datum, Zeit, Datum und Zeit) aus, um die Datumsauswahl zu aktivieren. + + + The selected folder is empty. + Der ausgewählte Ordner ist leer. + + + User checkout not allowed + Mitglieder-Checkout nicht erlaubt + + + This product is no longer available. + Dieses Produkt ist nicht länger verfügbar. + + + There are errors in your products. + Es sind Fehler in Ihrem Produkt. + + + Please resolve the errors in your cart before checking out. + Bitte beheben Sie die Fehler in Ihrem Warenkorb, bevor Sie zur Kasse gehen. + + + You cannot configure the same attribute multiple times. + Das gleiche Attribut kann nicht mehrmals konfiguriert werden. + + + Only show this group + Zeige nur diese Gruppe + + + Groups + Gruppen + + + Pages + Seiten + + + Back to the group picker + Zurück zur Gruppenauswahl + + + Show all groups + Zeige alle Gruppen + + + There are no variants for this product. + Keine Produktvarianten gefunden. + + + Duplicate Fallback + Fallback kopieren + + + Order no %s / %s + Bestellung Nr. %s vom %s + + + Your payment is being processed. Please be patient... + Ihre Zahlung wird durchgeführt. Bitte haben Sie Geduld... + + + No files uploaded. + Keine Dateien hochgeladen. + + + The file could not be uploaded for unknown reason. Please check the system log. + Die Datei konnte aus einem unerfindlichen Grund nicht hochgeladen werden. Bitte sehen Sie im System-Log nach. + + + Drop files here to upload + Verschieben Sie die Dateien hier hin + + + Upload files + Dateien hochladen + + + Processing dropped files... + Die Dateien werden hochgeladen... + + + Some records could not be deleted. + Einige Datensätze konnten nicht gelöscht werden. + + + Some records could not be deleted and have been unpublished instead. + Einige Datensätze konnten nicht gelöscht werden, und wurden stattdessen unveröffentlicht. + + + Quantity + Anzahl + + + Tax-free + Steuerfrei + + + search products + Produkte suchen + + + Your downloadable products + Ihre Produkte zum Herunterladen + + + <span class="from">From</span> %s + <span class="from">Ab</span> %s + + + View Details + Details sehen + + + Reorder + Erneut bestellen + + + Products Per Page + Produkte pro Seite + + + Keywords + Suchbegriffe + + + Submit + Senden + + + Clear Filters + Filter zurücksetzen + + + Update + Aktualisieren + + + Add To Cart + In den Warenkorb + + + Add All To Cart + In den Warenkorb übernehmen + + + Update Cart + Warenkorb aktualisieren + + + Add To Favorites + Zu Favoriten hinzufügen + + + Remove From Favorites + Aus Favoriten entfernen + + + Order By: + Sortieren nach: + + + No products have been found. + Zurzeit sind in dieser Kategorie keine Produkte vorhanden. + + + Back + Zurück + + + Continue + Weiter + + + Order + Kostenpflichtig bestellen + + + No categories are associated with this product. + Dieses Produkt ist keiner Kategorie zugeordnet. + + + Submit + Senden + + + There are no items in your favorites list. + Ihre Favoritenliste ist leer. + + + There are no items in your cart. + Ihr Warenkorb ist leer. + + + The selected product has been added to your favorites. + Der ausgewählte Artikel wurde zu Ihrer Favoritenliste hinzugefügt. + + + The selected product has been removed to your favorites. + Der ausgewählte Artikel wurde von Ihrer Favoritenliste entfernt. + + + The selected product has been added to your shopping cart. + Das gewählte Produkt wurde in den Warenkorb gelegt. + + + The products from your last visit have been readded. Please review your shopping cart items. + Die unbestellten Produkte Ihres letzten Besuchs wurden wieder übernommen. Bitte prüfen Sie den Warenkorb-Inhalt. + + + The products of the selected order have been added to your shopping cart. + Die Artikel der gewählten Bestellung wurden in Ihren Warenkorb übernommen. + + + Edit %s + %s bearbeiten + + + Edit + Bearbeiten + + + Remove + Entfernen + + + Remove %s from your cart + %s aus Ihrem Warenkorb entfernen + + + Order Subtotal: + Zwischensumme + + + Shipping (%s) + Versand (%s) + + + Payment (%s) + Bezahlung (%s) + + + Order Total: + Bestellsumme + + + No payment options are currently available + Zur Zeit sind keine Zahlungsoptionen verfügbar. + + + No shipping options are currently available. + Leider können die Produkte zur Zeit nicht in Ihr Land geliefert werden. Bitte wählen Sie eine andere Versand-Adresse oder nur Artikel die nicht versendet werden müssen (z. B. Download-Artikel). + + + No orders emails found. + Keine Bestell-E-Mails gefunden. + + + No orders found. + Keine Bestellungen gefunden. + + + <br />%s downloads remaining + <br />%s Downloads verbleibend + + + Shopping Cart + Warenkorb + + + Proceed to Checkout + Zur Kasse + + + Continue shopping + Weiter einkaufen + + + Update Cart + Warenkorb aktualisieren + + + Order Status: %s + Bestell-Status: %s + + + Go back to step "%s" + Zurück zu "%s" + + + Create New Address + Neue Adresse anlegen + + + Use billing address + Rechnungs-Adresse verwenden + + + Use customer address + Kunden-Adresse verwenden + + + Different shipping address + Abweichende Versand-Adresse + + + Edit + Bearbeiten + + + Delete + Löschen + + + Do you really want to delete this address? This cannot be undone. + Möchten Sie diese Adresse wirklich löschen? Es gibt keine Rückgängig-Funktion für diesen Vorgang. + + + Invoice + Rechnung + + + Status + Status + + + Order date + Bestelldatum + + + Order number + Bestellnummer + + + Description + Beschreibung + + + Quantity + Anzahl + + + Price + Preis + + + Total + Gesamt + + + lo to hi + niedrig - hoch + + + hi to lo + hoch - niedrig + + + A to Z + A - Z + + + Z to A + Z - A + + + earlier to later + alt - neu + + + later to earlier + neu - alt + + + Processing payment + Zahlung ausführen + + + You will be redirected to the payment gateway website. + Sie werden auf die Website des Zahlungsanbieters weitergeleitet. + + + Pay now + Bezahlen + + + Please click on the "Pay now" button to continue. + Bitte klicken Sie auf „Jetzt bezahlen“ um fortzufahren. + + + Click here to view this PayPal transaction online + Klicken Sie hier um die PayPal-Transaktion online anzusehen + + + 1 Product + 1 Produkt + + + %s Products + %s Produkte + + + Enter your shipping information or select an existing address. + Geben Sie Ihre Versandinformationen ein oder wählen Sie eine bestehende Adresse aus. + + + Enter your billing information or select an existing address. + Geben Sie Ihre Rechnungsinformationen ein oder wählen Sie eine bestehende Adresse aus. + + + Enter your billing information + Geben Sie Ihre Rechnungsinformationen ein + + + Enter your customer information or select an existing address. + Geben Sie Ihre Kundeninformationen ein oder wählen Sie eine bestehende Adresse aus. + + + Enter your customer information + Geben Sie Ihre Kundeninformationen ein + + + Select a shipping method. + Wählen Sie eine Versandart aus. + + + Please select a shipping method. + Bitte wählen Sie eine Versandart. + + + Enter your payment information. + Geben Sie die Bezahlinformationen ein. + + + Please select a payment method. + Bitte wählen Sie eine Zahlungsart. + + + Review and confirm your order details. + Überprüfen und bestätigen Sie Ihre Bestellung. + + + Address + Adresse + + + Shipping + Versand + + + Payment + Bezahlung + + + Review + Zusammenfassung + + + Billing Address + Rechnungsadresse + + + Shipping Address + Versandadresse + + + Billing & Shipping Address + Rechnungs- und Versandadresse + + + Customer Address + Kundenadresse + + + Shipping Method + Versandart + + + Payment Method + Bezahlmethode + + + Order Review + Bestellvorschau + + + Change + Ändern + + + Credit card number + Kreditkarten-Nummer + + + Credit card type + Kreditkarten-Typ + + + CCV number (3 or 4 digit code) + CCV-Kartenprüfnummer (3 oder 4-stellige Zahl) + + + Expiration month + Ablaufmonat + + + Expiration year + Ablaufjahr + + + Payment module not found! + Bezahlmodul nicht gefunden! + + + Shipping module not found! + Versandmodul nicht gefunden! + + + This payment module does not provide additional information. + Dieses Bezahlmodul stellt keine zusätzlichen Informationen bereit. + + + This shipping module does not provide additional information. + Dieses Versandmodul stellt keine zusätzlichen Informationen bereit. + + + Use default value + Vorgabe-Wert nutzen + + + active step: + Aktiver Schritt: + + + Loading products... + Lade Produkte... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + Ihr Browser unterstützt kein JavaScript. Bitte <a href="%s">hier klicken</a> um die Produktliste zu laden. + + + No files in this folder + Keine Dateien in diesem Ordner + + + Imported file %s for product "%s" + Datei %s für Product "%s" importiert + + + The folder did not contain any files to be imported. + Der Order enthält keine Dateien passenden Dateien. + + + Loading product data … + Lade Produktdaten ... + + + Store Config "%s" + Shop-Konfiguration "%s" + + + Splitted + Aufgeteilt + + + You have %s order(s) with status "%s" + Sie haben %s Bestellung(en) mit dem Status "%s" + + + Step %s of %s (%s) - + Schritt %s von %s (%s) - + + + Minutes + Minuten + + + Hours + Stunden + + + Days + Tage + + + Weeks + Wochen + + + Months + Monate + + + Years + Jahre + + + Introduction + Einführung + + + Welcome to Isotope eCommerce + Willkommen zu Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + Isotope ist die führende Open Source eCommerce Lösung für Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + Auf dieser Seite werden die meisten Einstellungen vorgenommen. <strong>Sie sollten am Ende der Seite starten und sich Schritt für Schritt von rechts unten nach links oben arbeiten.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + Besuchen Sie die offizielle <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce Website</a> für aktuelle News, Konfigurationsanleitungen und unsere Spendenkampagnen. Vielen Dank dass Sie uns etwas zurückgeben! + + + The Isotope eCommerce Team + Das Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + Isotope ist ein Produkt der %s in Zusammenarbeit mit <a href="http://isotopeecommerce.org/de/team.html" target="_blank">dem Isotope eCommerce Team</a>. + + + by date added (ascending) + nach Datum hinzugefügt (aufsteigend) + + + by date added (descending) + nach Datum hinzugefügt (absteigend) + + + by date updated (ascending) + nach Datum aktualisiert (aufsteigend) + + + by date updated (descending) + nach Datum aktualisiert (absteigend) + + + by product name (ascending) + nach Produktnamen (aufsteigend) + + + by product name (descending) + nach Produktnamen (absteigend) + + + by price (ascending) + nach Preis (aufsteigend) + + + by price (descending) + nach Preis (absteigend) + + + Please fill in the shipping address. + Bitte geben Sie eine Lieferadresse ein. + + + None of the products in your shopping cart require shipping! + Keines der Produkte in Ihrem Warenkorb muss geliefert werden. + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + Folgende Versandarten sind für Ihren aktuellen Warenkorb und Ihre angegebene Versandadresse verfügbar: + + + Save address + Adresse speichern + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + Pauschalpreis-Versand + + + This is the default shipping method for regular shipping. + Dies ist die Standard Versandart für den aktiven Versand. + + + Shipping group + Versandgruppe + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + In dieser Methode können verschiedene Versandarten zu einer gruppiert werden und anhand von ihnen wird der Preis berechnet. + + + Cash + Barzahlung + + + Use this for all offline processed payment. + Benutzen Sie dies für alle persönlich-abgewickelten Bezahlungen. + + + Paybyway + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + Fügt den Zahlungsanbieter <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a> hinzu. + + + PayPal Standard Checkout + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + Dieses PayPal-Modul unterstützt IPN (Instant Payment Notifications). + + + PostFinance + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + Bezahlschnittstelle für das schweizer Post-Bezahlsystem welches verschiedene Kartentypen unterstützt. Der Shop wird sofort über alle erfolgreichen Transaktionen informiert. + + + VIVEUM + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + Bezahlschnittstelle für VIVEUM Zahlungssysteme GmbH. + + + Datatrans + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + Ein Bezahlmodul für die schweizer Bezahlschnittstelle "Datatrans". + + + Innopay + Innopay + + + A payment module for the swiss payment gateway "Innocard". + Ein Zahlungsmodul für das Schweizer-Zahlungs-Gateway "Innocard". + + + Sparkasse + Sparkasse + + + Saferpay + Saferpay + + + BillPay (using Saferpay) + BillPay (mittels Saferpay) + + + sofortüberweisung.de + sofortüberweisung.de + + + ExperCash + ExperCash + + + ePay + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + Fügt den Zahlungsanbieter <a href="http://www.epay.eu" target="_blank">ePay</a> hinzu. + + + PayOne + PayOne + + + WorldPay + WorldPay + + + QuickPay + QuickPay + + + Open Payment Platform + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + Eine Zahlungsmethode für verschiedene Anbieter (z.B. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + Standard + + + Default gallery + Standard-Galerie + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + <p>Benutzt die Lightbox/Mediabox für Bilder in voller Größe. Stellen Sie sicher, dass Sie das zugehörige "moo_"-Template in Ihrem Seitenlayout auswählen.</p><p>Sie können das "rel"-Attribut nutzen, indem Sie einen senkrechten Strich verwenden (z.B. "tl_files/video.mov|lightbox[400 300]"). Die Seite wird in einem neuen Fenster geöffnet, sollten Sie kein "rel"-Attribut verwenden.</p> + + + Inline gallery + Inline-Galerie + + + Clicking on a gallery image will replace the main image. + Ein Klick auf ein Galerie-Bild ersetzt das Hauptbild. + + + Elevate Zoom gallery + Elevate zoom Galerie + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + Eine Galerie, bei der beim Mouseover im Bild gezoomt wird. Mehr Infos auf der <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">Skript-Website</a>. + + + Standard product + Standard-Produkt + + + A default product. Select this if nothing else matches. + Wählen Sie das Standard-Produkt wenn kein anderes zutrifft. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + Europäische USt-IdNr. (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Discover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + EnRoute + + + Carte Blanche + Carte Blanche + + + JAL + JAL + + + Maestro UK + Maestro UK + + + Delta + Delta + + + Solo + Solo + + + Visa Electron + Visa Electron + + + Dankort + Dankort + + + Laser + Laser + + + Carte Bleue + Carte Bleue + + + Carta Si + Carta Si + + + Encoded Account Number + Verschlüsselte Kontonummer + + + Universal Air Travel Program + Universal Air Travel Programm + + + Maestro International + Maestro International + + + GE Money UK + GE Money UK + + + Text field + Textfeld + + + A single-line input field for a short or medium text. + Ein einzeiliges Eingabefeld für kurze und mittlere Texte. + + + Textarea + Textarea + + + A multi-line input field for a medium or long text. + Ein mehrzeiliges Eingabefeld für mittlere und lange Texte. + + + Select menu + Select-Menü + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + Ein ein- oder mehrzeiliges Auswahlmenü.<br /><i>Dieser Feldtyp eignet sich für Produktvarianten.</i> + + + Radio button menu + Radio-Button-Menü + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + Eine Liste von mehrfachen Möglichkeiten bei der nur eine Auswahl getroffen werden kann.<br /><i>Dieser Feldtyp eignet sich für Produktvarianten.</i> + + + Checkbox menu + Checkbox-Menü + + + A list of multiple options from which any can be selected. + Eine Liste von mehrfachen Möglichkeiten bei der mehrere Auswahlen getroffen werden können. + + + Media Manager + Medienverwaltung + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + Ladet Bilder und andere Dateien in das Isotope eCommerce Dateisystem hoch. Die Ausgabe erfolgt durch eine IsotopeGallery-Klasse. + + + Conditional Select-Menu + Abhängiges Select-Menü + + + show select-options based on another select menu. + Zeigt Auswahlen basierend auf einem anderen Select-Menü an. + + + File tree + Dateibaum + + + A file tree for single or multiple files and folders. + Ein Dateibaum für eine oder mehrere Dateien und Ordner. + + + Downloads + Downloads + + + Download files from the product, e.g. manuals, data sheets etc. + Dateien zu einem Produkt herunterladen, z.B. Handbücher, Datenblätter, etc. + + + File upload + Datei-Upload + + + A single-line input field to upload a local file to the server. + Ein einzeiliges Eingabefeld um lokale Dateien auf den Server hochzuladen. + + + Video/Audio + Video/Audio + + + Generates a video or audio player. + Erzeugt einen Video- oder Audio-Player. + + + Fine Uploader + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + Ein Javascript-Uploader um lokale Dateien auf den Server hochzuladen. + + + AED - United Arab Emirates Dirham + AED - United Arab Emirates Dirham + + + AFN - Afghani + AFN - Afghani + + + ALL - Lek + ALL - Lek + + + AMD - Dram + AMD - Dram + + + ANG - Netherlands Antilles Guilder + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + AUD - Australian Dollar + + + AWG - Aruban Guilder + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + BAM - Convertible Mark + + + BBD - Barbados Dollar + BBD - Barbados Dollar + + + BDT - Taka + BDT - Taka + + + BGN - Bulgarian Lev + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + BHD - Bahraini Dinar + + + BIF - Burundi Franc + BIF - Burundi Franc + + + BMD - Bermudian Dollar + BMD - Bermudian Dollar + + + BND - Brunei Dollar + BND - Brunei Dollar + + + BOB - Boliviano + BOB - Boliviano + + + BRL - Brazilian real + BRL - Brazilian real + + + BSD - Bahamian Dollar + BSD - Bahamian Dollar + + + BTN - Ngultrum + BTN - Ngultrum + + + BWP - Pula + BWP - Pula + + + BYR - Belarussian Rouble + BYR - Belarussian Rouble + + + BZD - Belize Dollar + BZD - Belize Dollar + + + CAD - Canadian Dollar + CAD - Canadian Dollar + + + CDF - Congolese Franc + CDF - Congolese Franc + + + CHF - Swiss Franc + CHF - Swiss Franc + + + CLF - Unidades de Fomento + CLF - Unidades de Fomento + + + CLP - Chilean Peso + CLP - Chilean Peso + + + CNY - Yuan Renminbi + CNY - Yuan Renminbi + + + COP - Colombian Peso + COP - Colombian Peso + + + CRC - Costa Rican Colón + CRC - Costa Rican Colón + + + CUC - Peso Convertible + CUC - Peso Convertible + + + CUP - Cuban Peso + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + CZK - Czech Koruna + + + DJF - Djibouti Franc + DJF - Djibouti Franc + + + DKK - Danish Krone + DKK - Danish Krone + + + DOP - Dominican Republic Peso + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + DZD - Algerian Dinar + + + EGP - Egyptian Pound + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + ETB - Ethiopian Birr + + + EUR - Euro + EUR - Euro + + + FJD - Fiji Dollar + FJD - Fiji Dollar + + + FKP - Falkland Pound + FKP - Falkland Pound + + + GBP - Pound Sterling + GBP - Pound Sterling + + + GEL - Lari + GEL - Lari + + + GHS - Ghanaian cedi + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + GIP - Gibraltar Pound + + + GMD - Dalasi + GMD - Dalasi + + + GNF - Guinea Franc + GNF - Guinea Franc + + + GTQ - Quetzal + GTQ - Quetzal + + + GYD - Guyana Dollar + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + HKD - Hong Kong Dollar + + + HNL - Lempira + HNL - Lempira + + + HRD - Croatian Dinar + HRD - Croatian Dinar + + + HRK - Croatian Kuna + HRK - Croatian Kuna + + + HTG - Gourde + HTG - Gourde + + + HUF - Forint + HUF - Forint + + + IDR - Rupiah + IDR - Rupiah + + + ILS - Shekel + ILS - Shekel + + + INR - Indian Rupee + INR - Indian Rupee + + + IQD - Iraqi Dinar + IQD - Iraqi Dinar + + + IRR - Iranian Rial + IRR - Iranian Rial + + + ISK - Icelandic Króna + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + JOD - Jordanian Dinar + + + JPY - Yen + JPY - Yen + + + KES - Kenyan Shilling + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + KGS - Kyrgyzstani Som + + + KHR - Riel + KHR - Riel + + + KMF - Comorian Franc + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + KYD - Cayman Islands Dollar + + + KZT - Tenge + KZT - Tenge + + + LAK - Kip + LAK - Kip + + + LBP - Lebanese Pound + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + LRD - Liberian Dollar + + + LSL - Loti + LSL - Loti + + + LTL - Litas + LTL - Litas + + + LVL - Lats + LVL - Lats + + + LYD - Libyan Dinar + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + MDL - Moldavian Leu + + + MGA - Malagasy ariary + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + MKD - Macedonian Dinar + + + MMK - Kyat + MMK - Kyat + + + MNT - Tugrik + MNT - Tugrik + + + MOP - Pataca + MOP - Pataca + + + MRO - Ouguiya + MRO - Ouguiya + + + MUR - Mauritius Rupee + MUR - Mauritius Rupee + + + MVR - Rufiyaa + MVR - Rufiyaa + + + MWK - Malawian Kwacha + MWK - Malawian Kwacha + + + MXN - Mexican Peso + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + MZN - Mozambican metical + + + NAD - Namibia Dollar + NAD - Namibia Dollar + + + NGN - Naira + NGN - Naira + + + NIO - Cordoba Oro + NIO - Cordoba Oro + + + NOK - Norwegian Krone + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + NZD - New Zealand Dollar + + + OMR - Omani Rial + OMR - Omani Rial + + + PAB - Balboa + PAB - Balboa + + + PEN - New Sol + PEN - New Sol + + + PGK - Kina + PGK - Kina + + + PHP - Philippines Peso + PHP - Philippines Peso + + + PKR - Pakistani Rupee + PKR - Pakistani Rupee + + + PLN - Zloty + PLN - Zloty + + + PYG - Guarani + PYG - Guarani + + + QAR - Qatari Riyal + QAR - Qatari Riyal + + + RON - Romanian New Leu + RON - Romanian New Leu + + + RSD - Serbian Dinar + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + RWF - Rwandan Franc + + + SAR - Saudi Riyal + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + SDG - Sudanese Pound + + + SEK - Swedish Krona + SEK - Swedish Krona + + + SGD - Singapore Dollar + SGD - Singapore Dollar + + + SHP - St. Helena Pound + SHP - St. Helena Pound + + + SLL - Leone + SLL - Leone + + + SOS - Somali Shilling + SOS - Somali Shilling + + + SRD - Surinamese Dollar + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + SSP - South Sudanese Pound + + + STD - Dobra + STD - Dobra + + + SVC - El Salvador Colon + SVC - El Salvador Colon + + + SYP - Syrian Pound + SYP - Syrian Pound + + + SZL - Lilangeni + SZL - Lilangeni + + + THB - Baht + THB - Baht + + + TJS - Tajikistani Somoni + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + TND - Tunisian Dinar + + + TOP - Pa'anga + TOP - Pa'anga + + + TRY - New Turkish Lira + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + TZS - Tanzanian Shilling + + + UAH - Hryvna + UAH - Hryvna + + + UGX - Ugandan Shilling + UGX - Ugandan Shilling + + + USD - United States Dollar + USD - United States Dollar + + + UYU - Uruguayan Peso + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + VND - Viet Nam Dông + + + VUV - Vatu + VUV - Vatu + + + WST - Tala + WST - Tala + + + XCD - East Caribbean Dollar + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + YER - Yemeni Riyal + + + ZAR - Rand + ZAR - Rand + + + ZMK - Zambian Kwacha + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + ZWL - Zimbabwe Dollar + + + Fr. + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/exception.php b/system/modules/isotope/languages/de/exception.php deleted file mode 100644 index a5eac0bc1e..0000000000 --- a/system/modules/isotope/languages/de/exception.php +++ /dev/null @@ -1,23 +0,0 @@ -Bitte werden Sie ein Spender.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldFix3'] = 'Finden Sie einen erfahrenen Contao-Entwickler um Ihre Daten manuell zu migrieren. Wir empfehlen Ihnen einen Blick auf die Contao-Partner Liste.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldExplain'] = 'Besuchen Sie für mehr Informationen zu Isotope eCommerce unsere Website.'; diff --git a/system/modules/isotope/languages/de/exception.xlf b/system/modules/isotope/languages/de/exception.xlf new file mode 100644 index 0000000000..d685c91bd4 --- /dev/null +++ b/system/modules/isotope/languages/de/exception.xlf @@ -0,0 +1,34 @@ + + + + + Isotope eCommerce - data loss protection + Isotope eCommerce - Datenverlust-Absicherung + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + Es wurde eine alte Version von Isotope eCommerce in Ihrer Installation entdeckt. Wenn Sie Ihre Datenbank jetzt aktualisieren, könnten Ihre Kunden- und Konfigurationsdaten verloren gehen. Um dies zu vermeiden wurde das Datenbank-Aktualisierungstool automatisch gesperrt. + + + There are multiple options to get your installation back: + Es gibt mehrere Möglichkeiten Ihre Installation wiederherzustellen: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + Erstellen Sie ein Backup, deinstallieren Sie Isotope komplett und entfernen Sie sämtliche Datenbanktabellen sowie benötigte Erweiterungen von Isotope. Danach können Sie Isotope eCommerce 2.0 erneut installieren. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + Wir haben gerade ein Spendenziel für die Entwicklung eines Aktualisierungstools laufen. Umso mehr Personen helfen, umso schneller werden Sie in der Lage sein, Ihre alten Installationen zu aktualisieren. <a href="http://isotopeecommerce.com/de/" target="_blank">Bitte werden Sie ein Spender</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + Finden Sie einen erfahrenen Contao-Entwickler um Ihre Daten manuell zu migrieren. Wir empfehlen Ihnen einen Blick auf <a href="http://contao.org/de/" target="_blank">die Contao-Partner Liste</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + Besuchen Sie für mehr Informationen zu Isotope eCommerce <a href="http://isotopeecommerce.org/" target="_blank">unsere Website</a>. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/explain.php b/system/modules/isotope/languages/de/explain.php deleted file mode 100644 index 5f37a52682..0000000000 --- a/system/modules/isotope/languages/de/explain.php +++ /dev/null @@ -1,20 +0,0 @@ -\n Anders als bei anderen Contao-Modulen wird der Benutzer nicht direkt auf die Detailseite weitergeleitet, wenn er sich die Produktdetails ansieht. Wir haben eine neue Lösung für das Problem, den Seitennamen leserlich auszugeben und die zugehörige Detailseite zuzuordnen.
\n
\n Die Detailseite (Alias) ist immer die selbe Seite, welche für eine Produktkategorie ausgewählt wurde. Es gibt 2 Möglichkeiten die Produktdetails anzuzeigen:
\n
\n Möglichkeit 1:
\n Sie wählen keine Detailseite in der Seitenstruktur aus. Sie setzen die Module für die Produktliste und die Produktdetails auf die selbe Seite. Beim Modul für die Produktliste stellen Sie ein, dass die Liste ausgeblendet werden soll, wenn sich ein Produktname (Alias) in der Adresse befindet. Wird kein Produktname gefunden, werden die Produktdetails automatisch ausgeblendet.
\n Vorteile: Einfach einzustellen.
\n Nachteile: Das Layout der Produktliste und der Details ist das selbe und Sie können nicht verschiedene Artikelinhalte für beide Fälle anlegen.
\n
\n Möglichkeit 2:
\n Setzen Sie eine Detailseite für jede Produktliste (Produktkategorie). Beachten Sie, dass die Einstellungen für die Detailseite nicht vereerbt bzw. geerbt werden! Fügen Sie das Modul für die Produktdetails wie gewohnt an.
\n Isotope wird nun diese Seite verwenden, wenn ein ein Produktname (Alias) in der Adresse gefunden wird.
\n Vorteile: Sie können verschiedene Layouts sowie Seiten- und Artikelinhalte für die Produktliste und die Detailseite anlegen.
\n Nachteile: Sie MÜSSEN eine Detailseite für jede Produktliste definieren. Die Einstellung wird NICHT VEREERBT.\n

"; -$GLOBALS['TL_LANG']['XPL']['mediaManager'] = '

Wenn Sie ein neues Bild hochladen möchten, wählen Sie die Datei aus und speichern Sie das Produkt. Nach dem Sie das Bild erfolgreich hochgeladen haben, wird ein Vorschaubild angezeigt neben dem Sie den Alternativtext und eine Beschreibung eingeben können. Wenn Sie mehrere Bilder nutzen, können Sie ihre Reihenfolge durch Klicken auf die Pfeile rechts verändern. Das oberste Bild wird als Hauptbild des Produktes genutzt.'; -$GLOBALS['TL_LANG']['XPL']['noVariantAttributes'] = 'Um Produktvarianten mit Isotope eCommerce nutzen zu können, müssen Sie erst Attribute konfigurieren.
Bitte beachten Sie das Handbuch für weitere Infos zur Attribut-Erstellung'; -$GLOBALS['TL_LANG']['XPL']['elevatezoom_position'] = 'Die Fensterposition kann über die Basis-Position sowie einem horizontalen und vertikalen Abstand definiert werden. Genauere Infos unter: http://www.elevateweb.co.uk/image-zoom/examples#window-position

'; diff --git a/system/modules/isotope/languages/de/explain.xlf b/system/modules/isotope/languages/de/explain.xlf new file mode 100644 index 0000000000..0de0058873 --- /dev/null +++ b/system/modules/isotope/languages/de/explain.xlf @@ -0,0 +1,54 @@ + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + +<p class="tl_help_table"> + Anders als bei anderen Contao-Modulen wird der Benutzer nicht direkt auf die Detailseite weitergeleitet, wenn er sich die Produktdetails ansieht. Wir haben eine neue Lösung für das Problem, den Seitennamen leserlich auszugeben und die zugehörige Detailseite zuzuordnen.<br> + <br> + Die Detailseite (Alias) ist immer die selbe Seite, welche für eine Produktkategorie ausgewählt wurde. Es gibt 2 Möglichkeiten die Produktdetails anzuzeigen:<br> + <br> + <strong>Möglichkeit 1:</strong><br> + Sie wählen keine Detailseite in der Seitenstruktur aus. Sie setzen die Module für die Produktliste und die Produktdetails auf die selbe Seite. Beim Modul für die Produktliste stellen Sie ein, dass die Liste ausgeblendet werden soll, wenn sich ein Produktname (Alias) in der Adresse befindet. Wird kein Produktname gefunden, werden die Produktdetails automatisch ausgeblendet.<br> + <u>Vorteile:</u> Einfach einzustellen.<br> + <u>Nachteile:</u> Das Layout der Produktliste und der Details ist das selbe und Sie können nicht verschiedene Artikelinhalte für beide Fälle anlegen.<br> + <br> + <strong>Möglichkeit 2:</strong><br> + Setzen Sie eine Detailseite für jede Produktliste (Produktkategorie). <i>Beachten Sie, dass die Einstellungen für die Detailseite nicht vereerbt bzw. geerbt werden!</i> Fügen Sie das Modul für die Produktdetails wie gewohnt an.<br> + Isotope wird nun diese Seite verwenden, wenn ein ein Produktname (Alias) in der Adresse gefunden wird.<br> + <u>Vorteile:</u> Sie können verschiedene Layouts sowie Seiten- und Artikelinhalte für die Produktliste und die Detailseite anlegen. <br> + <u>Nachteile:</u> Sie MÜSSEN eine Detailseite für jede Produktliste definieren. Die Einstellung wird NICHT VEREERBT. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + <p class="tl_help_table">Wenn Sie ein neues Bild hochladen möchten, wählen Sie die Datei aus und speichern Sie das Produkt. Nach dem Sie das Bild erfolgreich hochgeladen haben, wird ein Vorschaubild angezeigt neben dem Sie den Alternativtext und eine Beschreibung eingeben können. Wenn Sie mehrere Bilder nutzen, können Sie ihre Reihenfolge durch Klicken auf die Pfeile rechts verändern. Das oberste Bild wird als Hauptbild des Produktes genutzt. + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + Um Produktvarianten mit Isotope eCommerce nutzen zu können, müssen Sie erst Attribute konfigurieren.<br>Bitte beachten Sie <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">das Handbuch</a> für weitere Infos zur Attribut-Erstellung + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + Die Fensterposition kann über die Basis-Position sowie einem horizontalen und vertikalen Abstand definiert werden. Genauere Infos unter: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/iso_upgrade.php b/system/modules/isotope/languages/de/iso_upgrade.php deleted file mode 100644 index 981a960337..0000000000 --- a/system/modules/isotope/languages/de/iso_upgrade.php +++ /dev/null @@ -1,19 +0,0 @@ -moo_mediabox oder j_colorbox), abhängig davon, ob Sie MooTools oder jQuery auf Ihrer Website verwenden. Dies kann jederzeit in den Galerie-Einstellungen geändert werden.'; diff --git a/system/modules/isotope/languages/de/iso_upgrade.xlf b/system/modules/isotope/languages/de/iso_upgrade.xlf new file mode 100644 index 0000000000..16f08a2267 --- /dev/null +++ b/system/modules/isotope/languages/de/iso_upgrade.xlf @@ -0,0 +1,18 @@ + + + + + Migration Assistant (Version: %s) + Migrationsassistent (Version: %s) + + + Update + Aktualisieren + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + Isotope muss wissen, welches JavaScript-Template zur Ausgabe der Lightbox in Galerien ausgewählt ist. Bitte wählen Sie das passende Template für jede Galerie aus (meistens <i>moo_mediabox</i> oder <i>j_colorbox</i>), abhängig davon, ob Sie MooTools oder jQuery auf Ihrer Website verwenden. Dies kann jederzeit in den Galerie-Einstellungen geändert werden. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/modules.php b/system/modules/isotope/languages/de/modules.php deleted file mode 100644 index 5cd422615e..0000000000 --- a/system/modules/isotope/languages/de/modules.php +++ /dev/null @@ -1,89 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Produkte + + + Manage products for your Isotope eCommerce shop + Produkte und Produkt-Varianten verwalten + + + Orders + Bestellungen + + + See and manage orders for your shop + Alle Bestellungen in Ihrem Online-Shop sind hier ersichtlich. + + + Store configuration + Shop-Konfiguration + + + Setup and configure Isotope eCommerce to your needs + Hier können Sie Isotope eCommerce konfigurieren. + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Produkt-Filter + + + Define individual filters for Isotope such as category trees and product attribute filters. + Erstellt individuelle Filter für Isotope wie einen Kategorienbaum oder Produktattribut-Filter. + + + Cumulative Filter + Einschränkender Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Bietet einen anwachsenden Filter an. So können Besucher die Produktauswahl mit mehrfachen Bedingungen eingrenzen. + + + Product List + Produktliste + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Allgemeines Listen-Modul. Zeigt Produkte oder Werte von Attributen an. Kann mit anderen Modulen (z.B. Filter-Modul) kombiniert werden um die Funktionen zu erweitern. + + + Product Variant List + Produktvarianten-Liste + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Zeigt jede Variante in der Produktliste an. + + + Product Reader + Produktleser + + + Product reader module. This is used to display product details. + Mit diesem Modul zeigen Sie Produktdetails an. + + + Favorites + Favoriten + + + Renders the list of products on the favorites list. + Generiert eine Liste der favorisierten Produkte. + + + Shopping Cart + Warenkorb + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + Ein vollwertiges Warenkorb-Modul. Klein- oder Großanzeige kann durch Wahl des Templates eingestellt werden. + + + Checkout + Kasse + + + Allow store customers to complete their transactions. + Erlaubt Kunden eine Bestellung auszuführen. + + + Address Book + Adressbuch + + + Allow customers to manage their address book. + Erlaubt Kunden ihr Adressbuch zu bearbeiten. + + + Order History + Vergangene Bestellungen + + + Order lister that allows customers to view their order history + Zeigt eine Liste der bisherigen Bestellungen an. + + + Order Details + Bestellungsdetails + + + Order reader that allows customers to view order history details + Kunden können mit diesem Modul ihre vergangenen Bestellungen sehen und z.B. Download-Artikel herunterladen. + + + Store Config Switcher + Shopkonfigurations-Wechsler + + + Switch between store configuration to change currency and other settings. + Zwischen Shopkonfigurationen umschalten um Währungen und andere Einstellungen zu ändern. + + + Related products + Ähnliche Produkte + + + List products related to the current one. + Zeigt Produkte an, die Ähnlichkeit mit dem aktiven Produkt haben. + + + Messages + Nachrichten + + + Displays all Isotope messages if they have not been displayed elsewhere. + Zeigt alle Isotope-Meldungen an, wenn diese bislang noch nicht angezeigt wurden. + + + Shipping cost calculator + Versandkosten-Rechner + + + Displays a module to calculate the shipping costs before going to the checkout page. + Zeigt ein Modul zur Berechnung von Versandkosten an, bevor es weiter zur Kasse geht. + + + Cart address + Warenkorb-Adresse + + + Displays a form to enter the cart address data that will be used to calculate prices. + Zeigt ein Formular zur EIngabe der Warenkorb-Adresse an, um Preise zu berechnen. + + + Isotope eCommerce configuration (Version: %s) + Isotope eCommerce Konfiguration (Version: %s) + + + Products + Produkte + + + Attributes + Attribute + + + Manage and create product attributes such as size, color, etc. + In der Attributverewaltung können Sie eigene Felder für Ihre Produkte anlegen. Dies ist z.B. hilfreich wenn Ihr Produkt einen Untertitel haben soll. Beachten Sie dass die entsprechenden Felder dann manuell im Template ausgegeben werden müssen (=Template-Anpassung). + + + Product types + Produkttypen + + + Manage and create product types from sets of attributes. + Mittels Produkttypen können Sie Ihre Produkte gruppieren. Verschiedene Produttypen können verschiedene Felder und Funktionen (z.B. Downloads aktivieren) enthalten. + + + Related categories + Verknüpfte Kategorien + + + Define categories for product relations. + Legen Sie hier Kategorien an, mit deren Gruppierung Sie später Produkte miteinander verknüpfen können. + + + Galleries + Galerien + + + Define how you want the images in your product to be rendered. + Definieren Sie, wie die Bilder in Ihrem Produkt gerendert werden sollen. + + + Base prices + Grundpreis + + + Define base price. + Grundpres festlegen. + + + Checkout Flow + Bestellablauf + + + Shipping methods + Versandarten + + + Set up shipping methods. + Legen Sie Versandarten für verschiedene Regionen an, welche Sie beliefern. Wenn im Warenkorb nur Artikel enthalten sind, welche keinen Versand erfordern, wird die Versandart in der Kasse nicht berücksichtigt. + + + Payment methods + Zahlungsarten + + + Set up payment methods. + Hier definieren Sie die für Ihren Shop erlaubten Zahlungsarten. Es werden verschiedene Zahlungsmodule unterstützt (z.B. PayPal, Barzahlung usw). Zahlungsmodule können bezüglich Produkttypen, Versandarten, Länder und anderen Einstellungen eingeschränkt werden. Es ist gut möglich dass Sie für dieselbe Zahlungsart mehrere Module anlegen müssen, um die volle Flexibilität zu erreichen. + + + Tax classes + Steuerklassen + + + Set up Tax classes, which contain sets of Tax rates. + In Steuerklassen gruppieren Sie mehrere Steuersätze, um diesen dann den entsprechenden Produkten zuzuweisen. In Steuerklassen können Sie auch festlegen ob ein Produktpreis bereits Steuern enthält (welche dann ggf. beim Versand ins Ausland abgezogen werden). + + + Tax rates + Steuersätze + + + Set up tax rates based on things like shipping/billing location and order total. + Steuersätze definieren die Gebühren welche zum Preis hinzugerechnet werden sollen. Dies muss nicht zwingend eine Umsatzsteuer sein, sondern z.B. auch ein Zuschlag bei verwenden einer bestimmten Zahlungsart (Kreditkarte). + + + General settings + Allgemeine Einstellungen + + + Store configurations + Konfigurationen + + + Configure general settings for this store. + Konfigurationen umfassen Einstellungen bezüglich Währung, Preisberechnung, Adressaufbereitung, Produktbildgrössen und anderem. Sie können mehrere Konfigurationen anlegen und diese im Shop-Betrieb (über das entsprechende Frontend-Modul) wechseln, um z.B. eine Umschaltung zwischen mehreren Währungen zu ermöglichen. + + + Order status + Bestellstatus + + + Define order status. + Verschieden Statusbezeichnungen für die Bestellungen anlegen. + + + Notifications + Benachrichtigungen + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + Nutzen Sie das Benachrichtigungs-Center um alle E-Mail's für Isotope eCommerce zu verwalten. + + + Documents + Dokumente + + + Define documents. + Dokumente definieren. + + + Miscellaneous + Verschiedenes + + + Translations + Übersetzungen + + + Replace given labels for certain languages. + Bezeichnungen für gewisse Sprachen ersetzen. + + + Integrity Check + Integritätscheck + + + Validate your shop configuration against common errors. + Prüfe deine Shopkonfiguration auf häufige Fehler. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/subdivisions.php b/system/modules/isotope/languages/de/subdivisions.php deleted file mode 100644 index 337371a546..0000000000 --- a/system/modules/isotope/languages/de/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + Shop-ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Nutzen Sie verschiedene Shop-IDs um mehrere Shop-Konfigurationen zu gruppieren. Der Warenkorb und die Adressen des Nutzers werden übergreifend zwischen Shops mit identischer ID genutzt. + + + Label + Bezeichnung + + + Please enter a custom label for this address. + Sie können dieser Adresse eine Bezeichnung geben. + + + Gender + Geschlecht + + + Please choose the gender. + Bitte wählen Sie das Geschlecht. + + + Salutation + Anrede + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Bitte geben Sie die Anrede ein (Herr, Frau, Dr., Prof.). + + + First name + Vorname + + + Please enter the first name. + Bitte geben Sie den Vornamen ein. + + + Last name + Nachname + + + Please enter the last name. + Bitte geben Sie den Nachnamen ein. + + + Date of birth + Geburtsdatum + + + Please enter the date of birth. + Bitte geben Sie das Geburtsdatum ein. + + + Company + Firma + + + You can enter a company name here. + Hier können Sie einen Firmennamen eingeben. + + + VAT No. + USt-IdNr. + + + Please enter a VAT number. + Bitte geben Sie Ihre Umsatzsteuer-Identifikationsnummer ein. + + + Street + Straße + + + Please enter the street name and the street number. + Bitte geben Sie den Straßennamen und die Hausnummer ein. + + + Street 2 + Straße 2 + + + Enter a second street info if there's any. + Geben Sie eine zweite Zeile für die Straße ein falls nötig. + + + Street 3 + Straße 3 + + + Enter a third street info if there's any. + Geben Sie eine dritte Zeile für die Straße ein falls nötig. + + + Postal code + Postleitzahl + + + Please enter the postal code. + Bitte geben Sie die Postleitzahl ein. + + + City + Ort + + + Please enter the name of the city. + Bitte geben Sie den Namen der Stadt ein. + + + State + Staat + + + Please enter the name of the state. + Bitte geben Sie den Namen des Bundeslandes/Kanton ein. + + + Country + Land + + + Please select a country. + Bitte wählen Sie ein Land. + + + Phone number + Telefonnummer + + + Please enter the phone number. + Bitte geben Sie die Telefonnummer ein. + + + E-mail address + E-Mail-Adresse + + + Please enter a valid e-mail address. + Bitte geben Sie eine gültige E-Mail-Adresse ein. + + + Default billing address + Standard-Rechnungsadresse + + + Is this your default billing address? + Klicken Sie hier, wenn dies die Standard-Rechnungsadresse ist. + + + Default shipping address + Standard-Versandadresse + + + Is this your default shipping address? + Klicken Sie hier, wenn dies die Standard-Versandadresse ist. + + + Store + Shop + + + Personal data + Persönliche Daten + + + Address details + Adressdetails + + + Contact details + Kontaktdetails + + + Default address + Standard-Adresse + + + Personal data + Persönliche Daten + + + Address details + Adressdetails + + + Contact details + Kontaktdetails + + + Default address + Standard-Adresse + + + New address + Neue Adresse + + + Create a new address + Eine neue Adresse anlegen + + + Edit address + Adresse bearbeiten + + + Edit address ID %s + Adresse ID %s bearbeiten + + + Duplicate address + Adresse duplizieren + + + Duplicate address ID %s + Adresse ID %s duplizieren + + + Delete address + Adresse löschen + + + Delete address ID %s + Adresse ID %s löschen + + + Address details + Adressdetails + + + Show details of address ID %s + Details der Adresse ID %s anzeigen + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_attribute.php b/system/modules/isotope/languages/de/tl_iso_attribute.php deleted file mode 100644 index 52e12e2fc6..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_attribute.php +++ /dev/null @@ -1,154 +0,0 @@ -).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][0] = 'Datum'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][1] = 'Prüft ob die Eingabe dem globalen Datumsformat entspricht.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][0] = 'Zeit'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][1] = 'Prüft ob die Eingabe dem globalen Zeitformat entspricht.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][0] = 'Datum und Zeit'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][1] = 'Prüft ob die Eingabe dem globalen Datums- und Zeitformat entspricht.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][0] = 'Telefonnummer'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][1] = 'Erlaubt numerische Zeichen, Plus (+), Minus (-), Querstrich (/), Klammerzeichen () und Leerzeichen ( ).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][0] = 'E-Mail-Adresse'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][1] = 'Prüft ob die Eingabe eine gültige E-Mail-Adresse ist.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][0] = 'URL-Format'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][1] = 'Prüft ob die Eingabe eine gültige URL ist.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][0] = 'Preis'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][1] = 'Prüft ob die Eingabe ein gültiger Preis ist.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][0] = 'Ermäßigung'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][1] = 'Prüft ob die Eingabe eine gültige Ermäßigung ist.
Beispiel: -10%, -10, +10, +10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][0] = 'Preisaufschlag'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][1] = 'Prüft ob die Eingabe ein gültiger Preisaufschlag ist.
Beispiel: 10.00, 10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['custom'] = 'Eigene Reihenfolge'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_asc'] = 'Dateiname (aufsteigend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_desc'] = 'Dateiname (absteigend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_asc'] = 'Datum (aufsteigend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_desc'] = 'Datum (absteigend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['random'] = 'Zufällige Reihenfolge'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][0] = 'Neues Attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][1] = 'Erstellt ein neues Attribut.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][0] = 'Attribut bearbeiten'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][1] = 'Attribut mit der ID %s bearbeiten.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][0] = 'Attribut kopieren'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][1] = 'Attribut mit der ID %s kopieren.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][0] = 'Attribut löschen'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][1] = 'Löscht das Attribut mit der ID %s. Die Datenbank-Spalte wird nicht gelöscht. Sie müssen die Datenbank manuell aktualisieren indem Sie das Installationstool oder die Erweiterungsverwaltung benutzen.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][0] = 'Zeige Attributdetails'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][1] = 'Details des Attributs mit der ID %s anzeigen.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['deleteConfirm'] = 'Möchten Sie wirklich das Attribut mit der ID %s löschen? Die Datenbank-Spalte wird nicht gelöscht. Sie müssen die Datenbank manuell aktualisieren indem Sie das Installationstool oder die Erweiterungsverwaltung benutzen.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['attribute_legend'] = 'Attribut-Name & -Typ'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['description_legend'] = 'Beschreibung'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['options_legend'] = 'Optionen'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['config_legend'] = 'Attribut-Konfiguration'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['search_filters_legend'] = 'Suche- & Filter-Einstellungen'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['store_legend'] = 'Datei speichern'; diff --git a/system/modules/isotope/languages/de/tl_iso_attribute.xlf b/system/modules/isotope/languages/de/tl_iso_attribute.xlf new file mode 100644 index 0000000000..71e37a07ac --- /dev/null +++ b/system/modules/isotope/languages/de/tl_iso_attribute.xlf @@ -0,0 +1,706 @@ + + + + + Name + Name + + + Please enter a name for this attribute. + Geben Sie einen Namen für dieses Artikelmerkmal ein. + + + Internal name + Interner Name + + + Internal name is the database field name and must be unique. + Der interne Feldname entspricht dem Datenbank-Feld und muss eindeutig sein. + + + Type + Typ + + + Please select a type for this attribute. + Wählen Sie einen Attribut-Typ. + + + Field Group + Feldgruppe + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + Wählen Sie eine Feldgruppe die mit diesem Artikelmerkmal in Beziehung steht (wird benutzt um verbundene Felder in ausklappbaren Fieldset-Gruppen einzurichten, wenn Produkte bearbeitet werden. + + + Add to product variants wizard + Für Varianten verwenden + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + Klicken Sie hier wenn dieses Attribut für die Konfiguration von Produktvarianten verwendet wird. + + + Defined by customer + Durch den Kunden auswählbar + + + Please select if this value defined by the customer (frontend). + Bitte wählen Sie dieses Feld aus, wenn der Wert durch den Kunden (Frontend) ausgewählt/definiert werden kann. + + + Description + Beschreibung + + + The description is shown as a hint to the backend user. + Die Beschreibung wird als Hinweis für den Backend-Nutzer angezeigt. + + + Options source + Optionen-Quelle + + + Choose where the options for this field should be loaded from. + Wählen Sie aus, woher die Optionen für dieses Feld genommen werden sollen. + + + Attribute Name (Single Option) + Attribut-Name (Einzelauswahl) + + + Options Manager + Optionen-Manager + + + Product + Produkt + + + Custom database table (foreignKey) + Eigene Datanbank-Tabelle (foreignKey) + + + Options Wizard (deprecated) + Optionen-Assistent (veraltet) + + + Options + Optionen + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + Bitte geben Sie eine oder mehrere Optionen ein. Nutzen Sie die Buttons um eine Option hinzuzufügen, ihre Position zu verändern oder sie zu löschen. Wenn Sie ohne JavaScript-Unterstützung arbeiten, sollten Sie Ihre Änderungen speichern bevor Sie die Reihenfolge ändern! + + + Value + Wert + + + Label + Bezeichnung + + + Default + Standard + + + Group + Gruppe + + + Options + Optionen + + + Use the options manager to add your options to the field. + Benutzen Sie den Options Manager um dem Feld Optionen hinzuzufügen. + + + Include blank option + Leerauswahl einfügen + + + Check here to include a blank option in the select menu. + Hier klicken um dem Select-Menü eine leere Auswahl hinzuzufügen. + + + Label for blank option + Beschriftung für die Leerauswahl + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + Sie können optional eine Beschriftung für die Leerauswahl angeben. Wenn Sie hier nichts eingeben wird ein Strich (-) angezeigt. + + + Mandatory field + Pflichtfeld + + + The field must be filled when editing a product. + Das Produkt wird nicht in den Warenkorb gelegt, wenn das Feld leer ist. + + + Multiple selection + Mehrfach-Auswahl + + + Allow visitors to select more than one option. + Ermöglicht es dem Nutzer mehr als eine Option zu wählen. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + Erlaubte Dateitypen + + + A comma separated list of valid file extensions. + Eine kommagetrennte Liste erlaubter Dateitypen + + + Use HTML editor + Nutze HTML-Editor + + + Select a tinyMCE configuration file to enable the rich text editor. + Wähle eine tinyMCE-Konfigurationsdatei für den Rich Text Editor + + + Multilingual + Mehrsprachig + + + Check here if this field should be translated. + Wählen Sie ob dieses Attribut in andere Sprachen übersetzt werden muss (z.B. Textfelder). + + + Input validation + Eingabeprüfung + + + Validate the input against a regular expression. + Prüft den eingegebenen Inhalt auf Basis einer Regular Expression. + + + Placeholder + Platzhalter + + + Show this text as long as the field is empty (requires HTML5). + Zeigen Sie diesen Text an, solange das Feld leer ist (benötigt HTML5). + + + Minimum length + Mindestlänge + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + Maximallänge + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + Schränke die Feldlänge auf eine bestimmte Zeichenanzahl (Text) oder Bytes (Datei-Upload) ein. + + + Foreign table & field + Fremdtabelle und Feld + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + Anstatt Optionen hinzuzufügen, können Sie hier eine table.field Kombination eingeben um Daten aus der Datenbank auszuwählen. Mehrsprachigkeit lässt sich durch Angabe der Sprache pro Zeile realisieren (Beispiel: en=table.field) + + + Parent field + Übergeordnetes Feld + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + Bitte wählen Sie das übergeordnete Feld, welches vom Typ "Select-Menü" sein muss. Damit die Relation funktioniert, definieren Sie die Optionen des übergeordneten Feldes als Gruppe des abhängigen Select-Menüs. + + + Show files + Dateien anzeigen + + + Show both files and folders. + Klicken Sie hier um Dateien (und nicht nur Ordner) anzuzeigen. + + + Files only + Nur Dateien anzeigen + + + Remove the radio buttons or checkboxes next to folders. + Auswahl von Ordnern nicht erlauben. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + Feld-Typ + + + Display radio buttons or checkboxes next to folders. + Wählen Sie ob eine oder mehrere Datei gewählt werden können (Radio- oder Checkbox-Auswahl). + + + Order by + Sortieren nach + + + Please choose the sort order. + Bitte wählen Sie eine Sortierreihenfolge aus. + + + Root directory + Basisverzeichnis + + + You can limit the file tree by defining a root directory here. + Wählen Sie ab welchem Verzeichnis die Ordnerstruktur angezeigt werden soll. + + + Store uploaded files + Hochgeladene Dateien speichern + + + Move the uploaded files to a folder on the server. + Die hochgeladenen Dateien in einen Ordner auf dem Server verschieben. + + + Target folder + Zielverzeichnis + + + Please select the target folder from the files directory. + Bitte wählen Sie das Zielverzeichnis aus der Dateiübersicht. + + + Use home directory + Benutzerverzeichnis verwenden + + + Store the file in the home directory if there is an authenticated user. + Die Datei im Benutzerverzeichnis speichern, wenn sich ein Benutzer angemeldet hat. + + + Preserve existing files + Bestehende Dateien erhalten + + + Add a numeric suffix to the new file if the file name already exists. + Der neuen Datei ein numerisches Suffix hinzufügen, wenn der Dateiname bereits existiert. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + Zielverzeichnis + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + Zur "Sortieren nach"-Optionsliste hinzufügen + + + This field will be sortable in the listing module provided the attribute is visible to customers. + Dieses Feld kann im Listenmodul sortiert werden wenn das Attribut für Kunden sichtbar ist. + + + Backend filterable + Filterbar im Backend + + + Can this attribute be used in a backend filter? + Kann dieses Attribut im Backend als Filter genutzt werden? + + + Backend searchable + Durchsuchbar im Backend + + + Should the field be available in the backend search? + Soll die Backend-Suchfunktion dieses Feld nach Suchbegriffen durchsuchen? + + + Frontend filterable + Filterbar im Frontend + + + Can this attribute be used in a frontend filter? + Kann dieses Attribut im Frontend als Filter genutzt werden? + + + Frontend searchable + Durchsuchbar im Frontend + + + Should the search engine look in this field for search terms? + Soll die Suchmaschine dieses Feld nach Suchbegriffen durchsuchen? + + + Date picker + Datumsauswahl + + + Show a date picker for this field. + Datumsauswahl für dieses Feld anzeigen. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + Optionen bearbeiten + + + Checkbox + Checkbox + + + Radio + Radio-Button + + + Numeric characters + Numerische Zeichen + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + Erlaubt numerische Zeichen, Minus (-), Punkt (.) und Leerzeichen ( ). + + + Alphabetic characters + Alphabetische Zeichen + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + Erlaubt alphabetische Zeichen, Minus (-), Punkt (.) und Leerzeichen ( ). + + + Alphanumeric characters + Alphanumerische Zeichen + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + Erlaubt alphanumerische Zeichen, Minus (-), Punkt (.) und Leerzeichen ( ). + + + Extended alphanumeric characters + Erweiterte alphanumerische Zeichen + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + Erlaubt alles außer Spezialzeichen die normalerweise aus Sicherheitsgründen kodiert werden (#/()<=>). + + + Date + Datum + + + Checks whether the input matches the global date format. + Prüft ob die Eingabe dem globalen Datumsformat entspricht. + + + Time + Zeit + + + Checks whether the input matches the global time format. + Prüft ob die Eingabe dem globalen Zeitformat entspricht. + + + Date and time + Datum und Zeit + + + Checks whether the input matches the global date and time format. + Prüft ob die Eingabe dem globalen Datums- und Zeitformat entspricht. + + + Phone number + Telefonnummer + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + Erlaubt numerische Zeichen, Plus (+), Minus (-), Querstrich (/), Klammerzeichen () und Leerzeichen ( ). + + + E-mail address + E-Mail-Adresse + + + Checks whether the input is a valid e-mail address. + Prüft ob die Eingabe eine gültige E-Mail-Adresse ist. + + + URL format + URL-Format + + + Checks whether the input is a valid URL. + Prüft ob die Eingabe eine gültige URL ist. + + + Price + Preis + + + Checks whether the input is a valid price. + Prüft ob die Eingabe ein gültiger Preis ist. + + + Discount + Ermäßigung + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + Prüft ob die Eingabe eine gültige Ermäßigung ist.<br />Beispiel: -10%, -10, +10, +10% + + + Surcharge + Preisaufschlag + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + Prüft ob die Eingabe ein gültiger Preisaufschlag ist.<br />Beispiel: 10.00, 10% + + + Custom order + Eigene Reihenfolge + + + File name (ascending) + Dateiname (aufsteigend) + + + File name (descending) + Dateiname (absteigend) + + + Date (ascending) + Datum (aufsteigend) + + + Date (descending) + Datum (absteigend) + + + Random order + Zufällige Reihenfolge + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + ##document_number## + + + Generated document number for the order. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + Datenbank-ID der Bestellung. + + + ##order_date## + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + ##product_id## + + + Database ID of the product. + Datenbank-ID des Produkts. + + + ##product_sku## + ##product_sku## + + + SKU of the product. + Artikelnummer des Produkt. + + + ##product_name## + ##product_name## + + + Name of the product. + Name des Produkts. + + + ##product_position## + ##product_position## + + + Position of the product on the order document, starting from 1. + Position des Produkts auf der Bestellung, beginnend bei 1. + + + ##attribute_field## + ##attribute_field## + + + Database field name of the attribute. + Datenbank-Feldname des Attributs. + + + ##attribute_name## + ##attribute_name## + + + Name of the attribute. + Name des Attributs. + + + ##file_name## + ##file_name## + + + Full file name and extension as uploaded by the user. + Vollständiger Dateiname und -erweiterung gemäss Benutzer-Upload. + + + ##file_target## + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + ##file_extension## + + + The original file extension. + Die Original Dateiendung + + + ##has_member## + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + Neues Attribut + + + Create a new attribute. + Erstellt ein neues Attribut. + + + Edit attribute + Attribut bearbeiten + + + Edit attribute ID %s. + Attribut mit der ID %s bearbeiten. + + + Copy attribute + Attribut kopieren + + + Copy attribute ID %s. + Attribut mit der ID %s kopieren. + + + Delete attribute + Attribut löschen + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Löscht das Attribut mit der ID %s. Die Datenbank-Spalte wird nicht gelöscht. Sie müssen die Datenbank manuell aktualisieren indem Sie das Installationstool oder die Erweiterungsverwaltung benutzen. + + + Attribute details + Zeige Attributdetails + + + Show details for attribute ID %s. + Details des Attributs mit der ID %s anzeigen. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Möchten Sie wirklich das Attribut mit der ID %s löschen? Die Datenbank-Spalte wird nicht gelöscht. Sie müssen die Datenbank manuell aktualisieren indem Sie das Installationstool oder die Erweiterungsverwaltung benutzen. + + + Attribute name & type + Attribut-Name & -Typ + + + Description + Beschreibung + + + Options + Optionen + + + Attribute configuration + Attribut-Konfiguration + + + Search & Filtering Settings + Suche- & Filter-Einstellungen + + + Store file + Datei speichern + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_attribute_option.php b/system/modules/isotope/languages/de/tl_iso_attribute_option.php deleted file mode 100644 index 0fabc5b268..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_attribute_option.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Type + Typ + + + Select a type for this label. + Wähle einen Typ für diese Beschriftung. + + + Option + Option + + + Group + Gruppe + + + Default + Standard + + + Check here if this should be the default option. + Klicken Sie hier, wenn das die Standard-Option ist. + + + Label + Bezeichnung + + + Enter the label for this option. + Geben Sie die Bezeichnung für diese Auswahl ein. + + + Price surcharge or deduction + Preisaufschläge oder -abschläge + + + You can enter a positive or negative amount to alter the product price if this option is selected. + Sie können einen positiven oder negativen Wert eingeben, um den Produkt-Preis bei Auswahl dieser Option zu ändern. + + + Price + Preis + + + Published + Veröffentlicht + + + Make this option available in the product. + Diese Option im Produkt verfügbar machen. + + + New option + Neue Option + + + Create a new option. + Neue Option erstellen. + + + Edit option + Option bearbeiten + + + Edit option ID %s. + Option ID %s bearbeiten. + + + Copy option + Option kopieren + + + Copy option ID %s. + Option ID %s kopieren. + + + Delete option + Option löschen + + + Delete option ID %s. + Option ID %s löschen. + + + Option details + Option-Details + + + Show details for option ID %s. + Details der Option ID %s anzeigen. + + + Type &amp; Label + Typ und Beschriftung + + + Price change + Preisänderung + + + Publishing + Veröffentlichung + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_baseprice.php b/system/modules/isotope/languages/de/tl_iso_baseprice.php deleted file mode 100644 index ac1b59ffd7..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_baseprice.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Name + Name + + + Enter a name for this base price. + Bitte geben Sie den Namen für den Grundpreis ein. + + + Base amount + Basisbetrag + + + Enter the base amount (e.g. "100"). + Basisbetrag eingeben (z. B. "100"). + + + Label + Bezeichnung + + + Enter a label for this base price (e.g. "%s per 100g".) + Beschriftung für den Grundpreis eingeben (z. B. "%s pro 100 g"). + + + New base price + Neuer Grundpreis + + + Create a new base price + Einen neuen Grundpreis anlegen + + + Edit base price + Grundpreis bearbeiten + + + Edit base price ID %s + Grundpreis ID %s bearbeiten + + + Duplicate base price + Grundpreis duplizieren + + + Duplicate base price ID %s + Grundpreis ID %s duplizieren + + + Delete base price + Grundpreis löschen + + + Delete base price ID %s + Grundpreis ID %s löschen + + + Base price details + Grundpreisdetails + + + Show details of base price ID %s + Details des Grundpreises ID %s anzeigen + + + Base price + Grundpreis + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_config.php b/system/modules/isotope/languages/de/tl_iso_config.php deleted file mode 100644 index b105ba6ce0..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_config.php +++ /dev/null @@ -1,158 +0,0 @@ - + + + + Configuration Name + Name der Shop-Konfiguration + + + Please enter a name for your configuration. This is only used for back end reference. + Geben Sie einen eindeutigen Namen ein. + + + Label + Bezeichnung + + + The label is used in frontend, e.g. for config switcher. + Die Bezeichnung wird im Frontend z.B. für den Konfigurationswechsler verwendet. + + + Set as default store + Standard-Konfiguration + + + Set this as the default store for back-end currency formatting and other locale-specific information. + Verwendet dies als Standardkonfiguration für die Anzeige im Backend. + + + First name + Vorname + + + Please enter the first name (if applicable). + Bitte geben Sie den Vornamen ein (falls anwendbar). + + + Last name + Nachname + + + Please enter the last name (if applicable). + Bitte geben Sie den Nachnamenen (falls anwendbar). + + + Company + Firma + + + You can enter a company name here (if applicable). + Sie können hier einen Unternehmensnamen angeben (falls anwendbar). + + + VAT No. + USt-IdNr. + + + Please enter a VAT number. + Bitte geben Sie Ihre Umsatzsteuer-Identifikationsnummer ein. + + + Street + Straße + + + Please enter the street name and the street number. + Bitte geben Sie den Straßennamen und die Hausnummer ein. + + + Street 2 + Straße 2 + + + Enter a second street info if there's any. + Geben Sie eine zweite Zeile für die Straße ein falls nötig. + + + Street 3 + Straße 3 + + + Enter a third street info if there's any. + Geben Sie eine dritte Zeile für die Straße ein falls nötig. + + + Postal code + Postleitzahl + + + Please enter the postal code. + Bitte geben Sie die Postleitzahl ein. + + + City + Ort + + + Please enter the name of the city. + Bitte geben Sie den Namen der Stadt ein. + + + State + Staat + + + Please enter the name of the state. + Bitte geben Sie den Namen des Bundeslandes/Kanton ein. + + + Country + Land + + + Please select a country. This is also the default for custom shipping/billing addresses. + Bitte wählen Sie das Land. Dies ist auch die Standardeinstellung für individuelle Versand-/Rechnungs-Adressen. + + + Phone number + Telefonnummer + + + Please enter the phone number. + Bitte geben Sie die Telefonnummer ein. + + + Shipping email address + Versand E-Mail-Adresse + + + Please enter a valid e-mail address. + Bitte geben Sie eine gültige E-Mail-Adresse ein. + + + Address fields + Adressfelder + + + Select the fields for a billing and shipping address when checking out. + Wählen Sie die Felder für die Rechnungs- und Versandadresse beim bezahlen aus. + + + Address field + Adressfeld + + + For billing address + Für Rechnungs-Adresse + + + For shipping address + Für Versand-Adresse + + + Disabled + Deaktiviert + + + Enabled (not mandatory) + Aktiviert (Nicht verpflichtend) + + + Enabled (mandatory) + Aktiviert (Verpflichtend) + + + Default billing country + Standard Rechnungsland + + + Select a default country for new billing addresses. + Wählen Sie das Standard-Land für neue Rechnungsadressen. + + + Default shipping country + Standard Versandland + + + Select a default country for new shipping addresses. + Wählen Sie das Standard-Land für neue Versandadressen. + + + Available billing countries + Rechnungs-Länder + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + Wählen Sie die Länder, welche beim Bestellvorgang als Rechnungs-Adressen erlaubt sind. + + + Available shipping countries + Versand-Länder + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + Wählen Sie die Länder, welche beim Bestellvorgang als Versand-Adressen erlaubt sind. + + + Limit member countries + Mitgliederländer einschränken + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + Schränken Sie die Mitgliederländer (Registration, Persönliche Daten) auf die kombinierte Liste der Rechnungs- und Versand-Länder ein. + + + VAT No. validation + Validierung der USt-IdNr. + + + If you enable one or multiple services, the VAT No. address field will be validated. + Wenn Sie einen oder mehrere Dienste aktivieren, wird das USt-IdNr.-Adressfeld validiert. + + + Price display + Preisanzeige + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + Wählen Sie aus, ob Sie Netto- oder Bruttopreise in Ihrem Shop anzeigen möchten. Weiterführende Informationen finden Sie im Help-Wizard. + + + Price formatting + Preisformatierung + + + Choose a formatting for prices. + Wählen Sie eine Formatierung für Preise. + + + Rounding precision + Rundungspräzision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + Wählen Sie die Dezimal-Präzision. Sie sollten einen Wert zwischen 0 und 2 verwenden, um Kompatibilität mit allen Zahlungsmodulen zu gewährleisten. + + + Rounding increment + Rundungszuschlag + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + Einige Währungen (z.B. Schweizer Franken) erlauben keine 0.01 Beträge. + + + Currency + Währung + + + Please select a currency for this store. + Wählen Sie eine Währung für diesen Shop. + + + Position of currency code/symbol + Position der Währungsbezeichung/-symbol + + + Select if you want to show currency on the left or right side of the price. + Wählen Sie ob die Währung links oder rechts des Preises angezeigt werden soll. + + + Use currency symbol + Währungssymbol verwenden + + + Use a currency symbol ($, €) if available. + Das Währungssymbol verwenden ($, €) falls möglich. + + + Include blank space + Leerzeichen einfügen + + + Add space between price and currency symbol. + Zwischen den Preis und das Währungssymbol ein Leerzeichen einfügen. + + + Price factor + Berechnungsfaktor + + + Defaults should be 1. You can use this to convert between multiple currencies. + Standardmässig auf 1. Wählen Sie einen anderen Faktor für eine Umrechnung. + + + Calculation mode + Berechnungsmodus + + + Divide or multiply using this factor. + Preis dividieren oder multiplieren mit dem Faktor. + + + Automatic currency conversion + Automatischer Währungsrechner + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + Automatische Updates von Preisberechnungsfaktoren durch Anbieter von online Währungsrechnern ermöglichen. + + + Currency origin + Herkunftswährung + + + Please select the source currency for calculation. + Bitte wählen Sie die Währung für die Berechnung aus. + + + Currency Data Provider + Anbieter der Währungsdaten + + + Select an available online provider of currency calculation data. + Bitte wählen Sie einer der verfügbaren Anbieter von online Währungsdaten aus. + + + Order number prefix + Bestellnummer-Präfix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + Sie können für die automatisch hochzählende Bestellnummer einen Präxif (z. B. Fiskaljahr) hinzufügen. + + + Order number length + Bestellnummern-Länge + + + Select the minimum length of the order number (not including order prefix). + Wählen sie die minimale Länge für die Bestellnummer (den Bestellnummer-Präfix nicht mitgezählt). + + + Status for new orders + Status für neue Bestellungen + + + Choose a matching status for new orders. A payment module can override this. + Wählen Sie einen passenden Status für neue Bestellungen aus. Ein Zahlungsmodul kann diese Angaben überschreiben. + + + Order status on error + Bestellstatus bei einem Fehler + + + Select an order status if something goes wrong (e.g. payment). + Wählen Sie einen Status für fehlgeschlagene Bestellungen aus (z.B. Zahlung). + + + Module for backend view + Modul für Backend-Ansicht + + + Select a order details module that is used to show the order in the backend. + Wählen Sie ein Bestelldetails-Modul das verwendet werden soll um Bestellungen im Backend anzuzeigen. + + + Invoice Logo + Rechnungslogo + + + Select a logo to show up on the invoices for this store. + Wählen Sie ein Logo das auf den Rechnungen dieses Shops angezeigt werden soll. + + + Templates folder + Templates-Ordner + + + Here you can select a templates folder to search before every other template folder. + Hier können Sie einen Templates-Ordner festlegen der vor allen anderen Template-Ordnern bevorzugt werden soll. + + + Minimum subtotal + Mindestbetrag Zwischensumme + + + The minimum cart subtotal required to order. Enter 0 to disable. + Diese Gesamtsumme muss im Warenkorb mindest erreicht werden um die Bestellung durchzuführen. Geben Sie eine 0 ein um diese Funktion zu deaktivieren. + + + Duration to mark a product as "new" + Dauer, für die ein Produkt als "Neu" angezeigt wird + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + Wenn Sie neue Produkte hervorheben möchten, können Sie hier eine Dauer festlegen. Es wird automatisch eine CSS-Klasse "new" zu jedem Produkt in ganz Isotope eCommerce hinzugefügt. + + + Enable Google Analytics + Google Analytics aktivieren + + + Enable e-commerce tracking with Google Analytics. + Aktivieren Sie das Tracking with Google Analytics. + + + Account + Konto + + + Please provde the account key (UA-XXXXXXX-X). + Bitte geben Sie die Kontoschlüssel (UA-XXXXXXX-X) an. + + + Track member + Mitglieder tracken + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + Geben Sie Simple Token ein um Mitglieder zu tracken (z. B. ##firstname## ##lastname##). Achtung: vergewissern Sie sich, dass Sie das machen dürfen! + + + To the left of price + Links des Preises + + + To the right of price + Rechts des Preises + + + Divide + Dividieren + + + Multiply + Multiplizieren + + + Name + Name + + + Width + Breite + + + Height + Höhe + + + Mode + Modus + + + Watermark image + Wasserzeichen-Bild + + + Position + Position + + + European Central Bank + European Central Bank + + + Swiss Federal Department of Finance + Swiss Federal Department of Finance + + + Net + Netto + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + Zeigen Sie allen Kunden den Nettopreis an. Steuern die im Produktpreis (Konfiguration des Steuersatzes) inbegriffen sind, werden abgezogen. + + + Gross (recommended) + Brutto (empfohlen) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + Zeigen Sie allen Kunden den Bruttopreis an. Anwendbare Steuern werden zum angezeigten Produktpreis hinzugefügt. + + + Fixed + Festgelegt + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + Der Produktpreis wird immer so angezeigt wie in den Produkteinstellungen festgelegt. Steuern werden immer als "inbegriffen" berechnet. Das Bedeutet, dass der Verdienst des Shop-Besitzers je nach verwendeter Steuer variiert. + + + Legacy + Altlast + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + Der Preis wird wie in Isotope eCommerce kleiner als 2.3 angezeigt. Der Bruttopreis wird angezeigt, sobald eine Steuer inbegriffen ist und angewendet wird. Zusätzliche Steuern werden nur als Zuschlag angezeigt. + + + New configuration + Neue Konfiguration + + + Create a new store configuration. + Eine neue Shop-Konfiguration erstellen. + + + Edit configuration + Konfiguration bearbeiten + + + Edit store configuration ID %s. + Shop-Konfiguration ID %s bearbeiten. + + + Copy configuration + Konfiguration duplizieren + + + Copy store configuration ID %s. + Shop-Konfiguration ID %s duplizieren. + + + Delete configuration + Konfiguration löschen + + + Delete store configuration ID %s. + Shop-Konfiguration ID %s löschen. Dies löscht nicht die zugeordneten Dateien sondern lediglich die Grundkonfiguration. + + + Show configuration details + Konfigurationsdetails anzeigen + + + Show details for store configuration ID %s. + Details für Shop-Konfiguration ID %s anzeigen. + + + Name + Name + + + Address configuration + Adresse + + + Configuration + Konfiguration + + + Checkout + Kasse + + + Pricing + Preise + + + Currency formatting + Währungs-Formatierung + + + Currency conversion + Währungsumrechnung + + + Orders + Bestellungen + + + Images + Bilder + + + URL settings + URL-Einstellungen + + + Products + Produkte + + + Analytics + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_document.php b/system/modules/isotope/languages/de/tl_iso_document.php deleted file mode 100644 index 1af95f3a9e..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_document.php +++ /dev/null @@ -1,47 +0,0 @@ - + + + + Document name + Dokumentname + + + Enter a name for this document. This will only be used in the backend. + Geben Sie einen Namen für dieses Dokument ein. Dies wird nur im Backend benutzt. + + + Type of document + Dokumententyp + + + Select a particular document rendering class. + Wählen Sie eine mögliche Renderingklasse für das Dokument. + + + Logo + Logo + + + Select a logo. + Wählen Sie ein Logo. + + + Document title + Dokumententitel + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + Sie können Simple-Tokens ("collection_*" feldname * entspricht dem Datenbankfeld der Sammlung) verwenden, um den Dateinamen zu generieren (z.B. "Rechnungstitel ##collection_document_number##"). + + + File title + Dateiname + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + Sie können Simple-Tokens ("collection_*" feldname * entspricht dem Datenbankfeld der Sammlung) verwenden, um den Dateinamen zu generieren (z.B. "Rechnungstitel ##collection_document_number##"). + + + Document template + Dokumenten-Template + + + Choose a template you want to render this document with. + Wählen Sie ein Template aus, mit dem Sie das Dokument rendern möchten. + + + Gallery + Galerie + + + Select a gallery to render images. + Wählen Sie eine Galerie, um die Bilder zu rendern. + + + Collection template + Sammlung-Template + + + Choose a collection template you want to render the products with. + Bitte wählen Sie ein Template aus, mit welchem Sie die Sammlung rendern möchten. + + + Sorting + Sortierung + + + Define in what order the collection items should be listed. + Definieren Sie, in welcher Reihenfolge die Einträge einer Sammlung aufgelistet werden sollen. + + + New document + Neues Dokument + + + Create a new document + Neues Dokument erstellen + + + Edit document + Dokument bearbeiten + + + Edit document ID %s + Dokument ID %s bearbeiten + + + Copy document + Dokument kopieren + + + Copy document ID %s + Dokument ID %s kopieren + + + Delete document + Dokument löschen + + + Delete document ID %s + Dokument ID %s löschen + + + Document details + Dokumentendetails + + + Show details of document ID %s + Details vom Dokument ID %s anzeigen + + + Name & type + Name & Typ + + + General configuration + Allgemeine Einstellungen + + + Template + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_download.php b/system/modules/isotope/languages/de/tl_iso_download.php deleted file mode 100644 index 0e5fcd65bf..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_download.php +++ /dev/null @@ -1,47 +0,0 @@ - + + + + Attachement + Anhang + + + Select the file or folder content you want to sell. + Wählen Sie die Datei oder den Ordnerinhalt, den Sie verkaufen möchten. + + + Downloads allowed + Erlaubte Downloads + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + Anzahl wie oft diese Datei pro Bestellung (multipliziert mit der verkauften Menge) heruntergeladen werden kann. Geben Sie 0 ein um unlimitierte Downloads zu gestatten. + + + Expiration + Ablauf + + + Define if the download(s) expires after a certain time period. + Legen Sie fest, ob Downloads nach einer gewissen Dauer ablaufen sollen. + + + Download available + Download verfügbar + + + Click here to include this download in new orders. + Hier klicken um diesen Download in neuen Bestellungen einzubinden. + + + Add download + Download hinzufügen + + + Add a new download to this product + Einen neuen Download zu diesem Produkt hinzufügen. + + + Edit download + Download bearbeiten + + + Edit download ID %s + Download mit der ID %s bearbeiten. + + + Duplicate download + Download duplizieren + + + Duplicate download ID %s + Download mit der ID %s duplizieren. + + + Move download + Download verschieben + + + Move download ID %s + Download ID%s verschieben + + + Delete download + Download löschen + + + Delete download ID %s + Download mit der ID %s löschen. + + + Publish/unpublish download + Download veröffentlichen/unveröffentlichen + + + Publish/unpublish download ID %s + Download mit ID %s veröffentlichen/unveröffentlichen + + + Download details + Download-Details + + + Show details of download ID %s + Details vom Download mit der ID %s anzeigen. + + + Edit product + Produkt bearbeiten + + + Edit this product + Dieses Produkt bearbeiten + + + Paste at the top + Oben hinzufügen + + + Paste after download ID %s + Füge es nach dem Download ID %s ein + + + Add new at the top + Ganz oben neu einfügen + + + Add new after download ID %s + Neu nach der Download ID %s einfügen + + + Attachement + Anhang + + + Limits + Limitierungen + + + Publishing + Veröffentlichung + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_gallery.php b/system/modules/isotope/languages/de/tl_iso_gallery.php deleted file mode 100644 index 1feb14864a..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_gallery.php +++ /dev/null @@ -1,96 +0,0 @@ - + + + + Name + Name + + + Enter a name for this gallery. + Geben Sie einen Namen für die Galerie ein. + + + Type + Typ + + + Please select a gallery type. + Bitte wählen Sie einen Galerietyp. + + + Image anchor + Bildanker + + + Select what anchor type should be generated on the image. + Wählen Sie den Typ des Bildankers, welcher generiert werden soll. + + + Placeholder image + Platzhalter-Bild + + + This image will be used if an image file cannot be found or none are associated with a product. + Dieses Bild wird verwendet, wenn ein Bild nicht gefunden oder keines dem Produkt zugewiesen wurde. + + + Main image size + Hauptbildgröße + + + Please enter a width and height for the main product image. + Bitte geben Sie eine Breite und Höhe für das Hauptbild ein. + + + Gallery image size + Galeriegröße + + + Please enter a width and height for the additional images. + Bitte geben Sie eine Breite und Höhe für zusätzliche Bilder ein. + + + Lightbox template + Lightbox-Template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + Bitte wählen Sie das Lightbox-Template aus Ihrem Seitenlayout um die Bilder-Galerie nach einer AJAX-Anfrage neu zu laden + + + Lightbox image size + Lightbox Bildgröße + + + Please enter a width and height for lightbox images. + Bitte geben Sie eine Breite und Höhe für Lightbox-Bilder ein. + + + Zoom image size + Zoom-Bildgröße + + + Please enter a width and height for zoom images. + Bitte geben Sie eine Breite und Höhe für Zoom-Bilder ein. + + + Zoom window size + Zoom-Fenstergröße + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + Optional: Geben Sie eine Breite und Höhe für das Zoom-Fenster an (Standard 400×400). + + + Zoom window position + Zoom-Fensterposition + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + Optional: Geben Sie einen horizontalen und vertikalen Abstand für das Zoom-Fenster an. + + + Right Top (Pos. #1) + Rechts Oben (Pos. #1) + + + Right Center (Pos. #2) + Rechts Mitte (Pos. #2) + + + Right Bottom (Pos. #3) + Rechts Unten (Pos. #3) + + + Right Bottom Corner (Pos. #4) + Rechts unten. (Pos. #4) + + + Bottom Right (Pos. #5) + Unten Rechts (Pos. #5) + + + Bottom Center (Pos. #6) + Unten Mitte (Pos. #6) + + + Bottom Left (Pos. #7) + Unten Links (Pos. #7) + + + Left Bottom Corner (Pos. #8) + Links Unten (Pos. #8) + + + Left Bottom (Pos. #9) + Links Unten (Pos. #9) + + + Left Center (Pos. #10) + Links Mitte (Pos. #10) + + + Left Top (Pos. #11) + Links Oben (Pos. #11) + + + Left Top Corner (Pos. #12) + Links Oben (Pos. #12) + + + Top Left (Pos. #13) + Oben Links (Pos. #13) + + + Top Center (Pos. #14) + Oben Mitte (Pos. #14) + + + Top Right (Pos. #15) + Oben Rechts (Pos. #15) + + + Top Right Corner (Pos. #16) + Oben Rechts (Pos. #16) + + + Zoom window fade effect + Übergangseffekt des Zoom-Fensters. + + + Optionally enter miliseconds to fade in and fade out the zoom window. + Optional: Dauer in Millisekunden für den Ein- und Ausblendeffekt des Zoom-Fensters. + + + Zoom window border + Zomm-Fensterrahmen + + + Optionally enter a hex color and size in pixels for the zoom window. + Geben Sie eine optionale HEX-Farbe und Grösse in Pixeln für das Zoom-Fenster ein. + + + Main watermark image + Hauptbild-Wasserzeichen + + + Select an image if you want to add a watermark to the main product image. + Wählen Sie ein Bild aus, wenn Sie dem Hauptbild ein Wasserzeichen hinzufügen wollen. + + + Main watermark position + Hauptbild-Wasserzeichen-Position + + + Select the position where to apply the watermark to. + Wählen Sie die Position für das Wasserzeichen aus. + + + Gallery watermark image + Galeriebilder-Wasserzeichen + + + Select an image if you want to add a watermark to the gallery images. + Wählen Sie ein Bild aus, wenn Sie den Galeriebildern ein Wasserzeichen hinzufügen wollen. + + + Gallery watermark position + Galeriebild-Wasserzeichen-Position + + + Select the position where to apply the watermark to. + Wählen Sie die Position für das Wasserzeichen aus. + + + Lightbox watermark image + Lightboxbilder-Wasserzeichen + + + Select an image if you want to add a watermark to the lightbox images. + Wählen Sie ein Bild aus, wenn Sie den Lightboxbildern ein Wasserzeichen hinzufügen wollen. + + + Lightbox watermark position + Lightboxbild-Wasserzeichen-Position + + + Select the position where to apply the watermark to. + Wählen Sie die Position für das Wasserzeichen aus. + + + Zoom watermark image + Zoom-Wasserzeichenbild + + + Select an image if you want to add a watermark to the zoom images. + Wählen Sie ein Bild aus, wenn Sie den Zoom-Bildern ein Wasserzeichen zuweisen möchten. + + + Zoom watermark position + Zoom-Wasserzeichenposition + + + Select the position where to apply the watermark to. + Wählen Sie die Position für das Wasserzeichen aus. + + + Custom gallery template + Eigenes Galerie-Template + + + Here you can overwrite the default gallery template. + Hier können Sie das Standard Galerie-Template überschreiben. + + + New gallery + Neue Galerie + + + Create a new gallery + Neue Galerie erstellen + + + Edit gallery + Galerie bearbeiten + + + Edit gallery ID %s + Galerie ID %s bearbeiten + + + Duplicate gallery + Galerie duplizieren + + + Duplicate gallery ID %s + Galerie ID %s duplizieren + + + Delete gallery + Galerie löschen + + + Delete gallery ID %s + Galerie ID %s löschen + + + Gallery details + Galerie-Details + + + Show details of gallery ID %s + Zeige Details zu Galerie ID %s + + + Name &amp; Type + Name & Typ + + + Image sizes + Bildgrößen + + + Configuration + Konfiguration + + + Watermark + Wasserzeichen + + + Lightbox/Mediabox + Lightbox/Mediabox + + + Template settings + Template-Einstellungen + + + No link action + Keine Link-Aktion + + + Link to the product reader + Link zu den Produktdetails + + + Open lightbox/mediabox + Lightbox/Mediabox öffnen + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + Damit diese Galerie funktioniert, stellen Sie sicher, dass jQuery in Ihrem Seitenlayout eingebunden wird. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_group.php b/system/modules/isotope/languages/de/tl_iso_group.php deleted file mode 100644 index 572dd6bf92..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_group.php +++ /dev/null @@ -1,41 +0,0 @@ - + + + + Group name + Name + + + Please enter a name for this group. + Geben Sie einen Namen für diese Gruppe ein. + + + Default product type + Standard Produkttyp + + + Here you can specify a default product type for this product group. + Hier können Sie den Standard Produkttyp für diese Gruppe definieren. + + + New group + Neue Gruppe + + + Create a new group + Eine neue Produktgruppe erstellen + + + Edit group + Gruppe bearbeiten + + + Edit group ID %s + Produktgruppe ID %s bearbeiten + + + Duplicate group + Gruppe duplizieren + + + Duplicate group ID %s + Produktgruppe ID %s duplizieren + + + Duplicate with subgroups + Mit Untergruppen duplizieren + + + Duplicate group ID %s with subgroups + Dupliziere Gruppe mit ID %s mit Untergruppen + + + Move group + Gruppe verschieben + + + Move group ID %s + Produktgruppe ID %s verschieben + + + Delete group + Gruppe löschen + + + Delete group ID %s + Produktgruppep ID %s löschen + + + Group details + Gruppendetails + + + Show details of group ID %s + Details der Produktgruppe ID %s anzeigen + + + Paste after + Danach einfügen + + + Paste after group ID %s + Nach der Produktgruppe ID %s einfügen + + + Paste into + Am Anfang einfügen + + + Paste into group ID %s + Am Anfang einfügen + + + Product group settings + Produktgruppen-Einstellungen + + + Product Groups + Produktgruppen + + + Manage product groups + Produktgruppen verwalten + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_integrity.php b/system/modules/isotope/languages/de/tl_iso_integrity.php deleted file mode 100644 index d99c5e3c74..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_integrity.php +++ /dev/null @@ -1,34 +0,0 @@ -PIDs: %s.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['pricetable'][2] = 'Keine ungültigen Preise in der Datenbank.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['variantorphans'][0] = 'Ungültige Produkt-Varianten'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['variantorphans'][1] = '%s Varianten, die Produkten ohne Varianten-Unterstützung zugewiesen wurden.
IDs: %s'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['variantorphans'][2] = 'Keine ungültigen Varianten in der Datenbank.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['attributeoptionorphans'][0] = 'Ungültige Attribut-Optionen'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['attributeoptionorphans'][1] = '%s Attribut-Optionen, die zu nicht-existierenden Varianten oder Produkten zugewiesen wurden oder eine falsche optionsSource-Einstellung besitzen.
IDs: %s'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['attributeoptionorphans'][2] = 'Keine ungültigen Attribut-Optionen in der Datenbank.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['unusedrules'][0] = 'Regel-Modul'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['unusedrules'][1] = 'Das Regel-Modul sollte deaktiviert werden, wenn es nicht benutzt wird.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['unusedrules'][2] = 'Das Regelmodul ist deaktiviert oder in Benutzung.'; diff --git a/system/modules/isotope/languages/de/tl_iso_integrity.xlf b/system/modules/isotope/languages/de/tl_iso_integrity.xlf new file mode 100644 index 0000000000..ba8afe97b7 --- /dev/null +++ b/system/modules/isotope/languages/de/tl_iso_integrity.xlf @@ -0,0 +1,78 @@ + + + + + Integrity Check + Integritätscheck + + + Problem + Problem + + + Result of the check + Ergebnis der Überprüfung + + + Please choose the errors to be fixed. + Bitte wählen Sie die zu behebenen Fehler aus. + + + Resolve problems + Probleme lösen + + + Only admin can perform integrity check. + Nur Administratoren können den Integritätscheck ausführen. + + + Advanced prices + Erweiterte Preisangaben + + + %s invalid andvanced prices were found.<br>PIDs: %s. + %s ungültige erweiterte Preisangaben gefunden.<br>PIDs: %s. + + + There are no invalid prices in your database. + Keine ungültigen Preise in der Datenbank. + + + Invalid product variants + Ungültige Produkt-Varianten + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + %s Varianten, die Produkten ohne Varianten-Unterstützung zugewiesen wurden. <br>IDs: %s + + + There are no invalid variants in your database. + Keine ungültigen Varianten in der Datenbank. + + + Invalid attribute options + Ungültige Attribut-Optionen + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + %s Attribut-Optionen, die zu nicht-existierenden Varianten oder Produkten zugewiesen wurden oder eine falsche optionsSource-Einstellung besitzen.<br>IDs: %s + + + There are no invalid attribute options in your database. + Keine ungültigen Attribut-Optionen in der Datenbank. + + + Rules module + Regel-Modul + + + The rules module should be disabled if you do not use it. + Das Regel-Modul sollte deaktiviert werden, wenn es nicht benutzt wird. + + + The rules module is disabled or in use. + Das Regelmodul ist deaktiviert oder in Benutzung. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_label.php b/system/modules/isotope/languages/de/tl_iso_label.php deleted file mode 100644 index de030b9427..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_label.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Language + Sprache + + + Please select a language. + Bitte wählen Sie eine Sprache + + + Label + Bezeichnung + + + Enter the source label. + Geben Sie die ursprüngliche Beschriftung ein. + + + Replacement + Ersatz + + + Enter the replacement in the specified language. + Geben Sie den Ersatz in der vorgegebenen Sprache ein. + + + New label + Neue Beschriftung + + + Create a new label + Eine neue Beschriftung erstellen + + + Edit label + Beschriftung bearbeiten + + + Edit label ID %s + Beschriftung ID %s bearbeiten + + + Duplicate label + Beschriftung duplizieren + + + Duplicate label ID %s + Beschriftung ID %s duplizieren + + + Delete label + Beschriftung löschen + + + Delete label ID %s + Beschriftung ID %s löschen + + + Label details + Beschriftungsdetails + + + Show details of label ID %s + Details der Beschriftung ID %s anzeigen + + + Label translation + Beschriftungs-Übersetzung + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_orderstatus.php b/system/modules/isotope/languages/de/tl_iso_orderstatus.php deleted file mode 100644 index 72d05eb199..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_orderstatus.php +++ /dev/null @@ -1,49 +0,0 @@ - + + + + Name + Name + + + Please enter a name for this status. + Bitte geben Sie den Namen für den Status ein. + + + Color + Farbe + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + Hier können Sie eine Farbe für den Bestellstatus festlegen. Die Farbe wird in der Bestellliste im Backend ausgegeben. + + + Order is paid + Die Bestellung wurde bezahlt + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + Bei diesem Status wurde die Bestellung bezahlt. Beispielsweise ist das herunterladen von Dateien möglich. + + + Show on welcome screen + Auf der Willkommensseite anzeigen + + + Show number of orders with this status on the backend welcome screen. + Zeigt die Anzahl von Bestellungen mit diesem Status auf der Willkommensseite im Backend an. + + + Notification + Benachrichtigung + + + Please select a notification. + Bitte wählen Sie eine Benachrichtigung. + + + Saferpay transaction + Saferpay-Abwicklung + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + Bitte wählen Sie eine Option, wenn das Zahlungs-Gateway automatisch aktualisiert werden soll. Funktioniert nur, wenn der Kunde „Saferpay“ oder „Billpay for Saferpay“ schon als Zahlungsmethode verwendet hatte. + + + Capture payment + Zahlung erfassen + + + Suggest manual payment cancellation + Manuelle Zahlungsstornierung vorschlagen + + + New order status + Neuer Bestellstatus + + + Create a new order status + Einen neuen Bestellstatus erstellen + + + Edit order status + Bestellstatus bearbeiten + + + Edit order status ID %s + Bestellstatus ID %s bearbeiten + + + Duplicate order status + Bestellstatus duplizieren + + + Duplicate order status ID %s + Bestellstatus ID %s duplizieren + + + Move order status + Bestellstatus verschieben + + + Move order status ID %s + Bestellstatus ID %s verschieben + + + Delete order status + Bestellstatus löschen + + + Delete order status ID %s + Bestellstatus ID %s löschen + + + Order status details + Bestellstatusdetails + + + Show details of order status ID %s + Details des Bestellstatus ID %s anzeigen + + + Paste after + Danach einfügen + + + Paste after order status ID %s + Nach dem Bestellstatus ID %s einfügen + + + Paste into + Am Anfang einfügen + + + Paste into order status ID %s + Am Anfang einfügen + + + Name + Name + + + E-Mail Notification + Benachrichtigung + + + Payment Gateways + Zahlungs-Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_payment.php b/system/modules/isotope/languages/de/tl_iso_payment.php deleted file mode 100644 index c573547128..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_payment.php +++ /dev/null @@ -1,222 +0,0 @@ -absolute URL zu einem dynamischen Template ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_payment_method'][0] = 'Zahlungsart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_payment_method'][1] = 'Sie können hier eine Zahlungsart auswählen. Stellen Sie sicher, dass Ihr PSP-Vertrag diese Zahlungsart auch beinhaltet! Wenn Sie nichts auswählen, muss der Kunde die bevorzugte Zahlungsart in der PSP-Oberfläche auswählen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'][0] = 'Benötigt den Prüfcode (Card Code Verification - CCV)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'][1] = 'Wählen Sie diese Option wenn sie die Transaktionssicherheit durch die Abfrage des Prüfcodes erhöhen möchten.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allowed_cc_types'][0] = 'Erlaubte Kreditkarten-Typen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allowed_cc_types'][1] = 'Wählen Sie welche Kreditkarten die Bezahlmethode akzeptiert.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_id'][0] = 'Händler-ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_id'][1] = 'Bitte geben Sie Ihre Händler-ID ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_sign'][0] = 'HMAC Schlüssel'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_sign'][1] = 'Bitte geben Sie den HMAC Schlüssel der Datatrans-Verwaltung ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['vads_site_id'][0] = 'Seiten-Identifikation'; -$GLOBALS['TL_LANG']['tl_iso_payment']['vads_site_id'][1] = 'Geben Sie die Identifikation der Zahlungsseite ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['vads_certificate'][0] = 'Zertifikat'; -$GLOBALS['TL_LANG']['tl_iso_payment']['vads_certificate'][1] = 'Bitte geben Sie Ihr TEST- oder PRODUCTION-Zertifikat ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod'][0] = 'Zahlungsart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod'][1] = 'Bitte wählen Sie eine Zahlungsart.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['creditcard'] = 'Kreditkarte'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['maestro'] = 'Abbuchungskarte'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['directdebit'] = 'Bankeinzug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslmerchant'][0] = 'Verkäufer ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslmerchant'][1] = 'Bitte geben Sie Ihre Verkäufer ID ein (Händlerkennung).'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslpassword'][0] = 'Passwort'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslpassword'][1] = 'Bitte geben Sie Ihr SSL-Passwort ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_merchantref'][0] = 'Referenz'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_merchantref'][1] = 'Eine Referenz, welche auf der Detailseite des Verkäufers anstelle der Warenkorbnummer angezeigt wird.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_user_id'][0] = 'Kunden ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_user_id'][1] = 'Ihre Kunden ID bei sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_id'][0] = 'Projekt ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_id'][1] = 'Ihre Projekt ID bei sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_password'][0] = 'Projekt-Passwort'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_password'][1] = 'Ihr Projekt-Passwort bei sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_accountid'][0] = 'Saferpay Account-ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_accountid'][1] = 'Bitte geben Sie ihre eindeutige Saferpay Account ID ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_description'][0] = 'Checkout-Beschreibung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_description'][1] = 'Der Kunde wird diese Beschreibung auf der Saferpay Checkout-Seite sehen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_vtconfig'][0] = 'Konfiguration Zahlungsseite (VTCONFIG)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_vtconfig'][1] = 'Sie können verschiedene Zahlseiten-Konfigurationen erstellen. Wenn Sie eine spezielle verwenden möchten, geben Sie den Wert des "Request"-Parameter hier ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_paymentmethods'][0] = 'Zahlungsarten'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_paymentmethods'][1] = 'Sie können die verfügbaren Zahlungsmethoden einschränken (z. B. nur MasterCard). Wenn Sie hier nichts auswählen, sind alle Zahlungsmethoden erlaubt.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupId'][0] = 'ExperCash Popup-ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupId'][1] = 'Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_profile'][0] = 'ExperCash Profil'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_profile'][1] = 'Geben Sie die dreistellige Profilnummer ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupKey'][0] = 'ExperCash Popup-Schlüssel'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupKey'][1] = 'Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod'][0] = 'Transaktionsart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod'][1] = 'Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['automatic_payment_method'] = 'Auswahl der Zahlart durch den Endkunden'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['elv_buy'] = 'Zahlung per Lastschrift (ELV)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['elv_authorize'] = 'Prüfung und Speicherung von Kontodaten zum späteren Einzug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['cc_buy'] = 'Kreditkartenzahlung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['cc_authorize'] = 'verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['giropay'] = 'Transaktion über giropay'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['sofortueberweisung'] = 'Transaktion über Sofortüberweisung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_css'][0] = 'CSS-Vorlage'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_css'][1] = 'Wählen Sie eine CSS-Datei für die Übergabe an ExperCash.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_merchantnumber'][0] = 'Händler-Nummer'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_merchantnumber'][1] = 'Die in ePay erstellte, eindeutige Händler-Nummer. Diese Händler-Nummer finden Sie in Ihren Vertrag mit PBS.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_windowstate'][0] = 'Integrationstyp'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_windowstate'][1] = 'Wählen Sie eine der verfügbaren Integrations-Optionen. Beachten Sie bitte, dass bei Verwendung des integrierten Bezahlformulars nur Kartenzahlung akzeptiert werden kann.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_secretkey'][0] = 'Sicherheitsschlüssel'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_secretkey'][1] = 'Der geheime Schlüssel in Ihrer ePay-Konfiguration.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_clearingtype'][0] = 'Abwicklungsart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_clearingtype'][1] = 'Bitte wählen Sie eine Abwicklungsart.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_aid'][0] = 'PAYONE Sub-Account ID (aid)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_aid'][1] = 'Bitte geben Sie die eindeutige PAYONE Sub-Account ID (aid) ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_portalid'][0] = 'PAYONE Portal-ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_portalid'][1] = 'Bitte geben Sie die eindeutige PAYONE Portal ID ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_key'][0] = 'Sicherheitsschlüssel'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_key'][1] = 'Geben Sie den Sicherheitsschlüssel für dieses Portal ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_instId'][0] = 'Installation ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_instId'][1] = 'Bitte geben Sie die WorldPay Installation\'s ID ein'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_callbackPW'][0] = 'Transaktions-Passwort'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_callbackPW'][1] = 'Geben Sie das selbe Passwort ein, den Sie bei Ihrer WorldPay-Konfiguration eingegeben haben.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_signatureFields'][0] = 'Signaturfelder'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_signatureFields'][1] = 'Geben Sie den selben Wert für das Signaturfeld ein, den Sie bei Ihrer WorldPay-Konfiguration eingegeben haben.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_md5secret'][0] = 'MD5 Geheim'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_md5secret'][1] = 'Geben Sie den selben MD5 Geheimwert ein, den Sie bei Ihrer WorldPay-Konfiguration eingegeben haben.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_description'][0] = 'Beschreibung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_description'][1] = 'Geben Sie eine Beschreibung für Ihren Shop ein. Diese wird den Kunden während dem Worldpay Checkout gezeigt.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_merchantId'][0] = 'Händler-ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_merchantId'][1] = 'Bitte geben Sie Ihre Händler-ID ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_agreementId'][0] = 'Einverständis-ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_agreementId'][1] = 'Bitte geben Sie Ihre Einverständnis-ID (Agreement ID) ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_apiKey'][0] = 'API-Schlüssel'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_apiKey'][1] = 'Bitte geben Sie Ihren API-Schlüssel ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_privateKey'][0] = 'Privater Schlüssel'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_privateKey'][1] = 'Bitte geben Sie den privaten Schlüssel ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_paymentMethods'][0] = 'Zahlungsarten'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_paymentMethods'][1] = 'Bitte geben Sie eine Konfigurations-Zeichenfolge ein. Weitere Informationen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['groups'][0] = 'Mitgliedergruppen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['groups'][1] = 'Diese Bezahlmethode auf bestimmte Mitgliedergruppen beschränken.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['protected'][0] = 'Modul schützen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['protected'][1] = 'Diese Bezahlmethode nur bestimmten Mitgliedergruppen anzeigen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['guests'][0] = 'Nur für Gäste anzeigen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['guests'][1] = 'Diese Bezahlmethode nicht für eingeloggte Mitglieder anzeigen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['debug'][0] = 'Testsystem verwenden'; -$GLOBALS['TL_LANG']['tl_iso_payment']['debug'][1] = 'Aktivieren Sie diese Option um ein Testsystem zu verwenden, auf dem keine echten Zahlungen ausgeführt werden.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled'][0] = 'Aktiv'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled'][1] = 'Klicken Sie hier wenn dieses Modul für Besucher sichtbar sein soll.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['new'][0] = 'Neue Zahlungsart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['new'][1] = 'Erstellen Sie eine neue Zahlungsart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['edit'][0] = 'Zahlungsart bearbeiten'; -$GLOBALS['TL_LANG']['tl_iso_payment']['edit'][1] = 'Zahlungsart ID %s bearbeiten'; -$GLOBALS['TL_LANG']['tl_iso_payment']['copy'][0] = 'Zahlungsart kopieren'; -$GLOBALS['TL_LANG']['tl_iso_payment']['copy'][1] = 'Zahlungsart ID %s kopieren'; -$GLOBALS['TL_LANG']['tl_iso_payment']['delete'][0] = 'Zahlungsart löschen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['delete'][1] = 'Zahlungsart ID %s löschen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['toggle'][0] = 'Zahlungsmethode aktivieren/deaktivieren'; -$GLOBALS['TL_LANG']['tl_iso_payment']['toggle'][1] = 'Zahlungsart ID %s aktivieren/deaktivieren'; -$GLOBALS['TL_LANG']['tl_iso_payment']['show'][0] = 'Zahlungsart-Details'; -$GLOBALS['TL_LANG']['tl_iso_payment']['show'][1] = 'Details der Zahlungsart ID %s anzeigen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['capture'][0] = 'Autorisieren und Einnehmen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['capture'][1] = 'Transaktionen von diesem Typ werden für die Autorisierung gesendet. Die Transaktion wird automatisch zur Begleichung geleitet wenn die Transaktion erfolgreich war.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['auth'][0] = 'Nur Autorisieren'; -$GLOBALS['TL_LANG']['tl_iso_payment']['auth'][1] = 'Transaktionen dieses Typs werden übertragen, wenn der Händler die Kreditkarte auf die Menge der verkauften Waren prüfen lassen möchte. Wenn der Händler nicht genügend Waren im Lager hat oder die Bestellungen vor der Warenlieferung prüfen möchte, wird dieser Transaktiontyps übertragen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['no_shipping'] = 'Bestellungen ohne Versand'; -$GLOBALS['TL_LANG']['tl_iso_payment']['onlyAvailable'] = 'Nur erlauben bei folgenden Produkttypen im Warenkorb'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allAvailable'] = 'Nur erlauben wenn alle der folgenden Produkttypen im Warenkorb liegen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['oneAvailable'] = 'Erlauben, wenn einer der folgenden Produkttypen im Warenkorb liegt'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['elv'] = 'Einziehen mit Drawal'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['cc'] = 'Kreditkarte'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['dc'] = 'Bankomatkarte'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['vor'] = 'Vorauszahlung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['rec'] = 'Rechnung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['sb'] = 'Banküberweisung (SOFORT/Giropay/Postfinance/IDEAL)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['wlt'] = 'e-Wallet (PayPal)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['fnc'] = 'Finanzierung (BillSAFE Rechnung)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_windowstate_options'][3] = 'Vollbild'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_windowstate_options'][4] = 'Integriertes Zahlungsformular'; -$GLOBALS['TL_LANG']['tl_iso_payment']['type_legend'] = 'Name & Typ'; -$GLOBALS['TL_LANG']['tl_iso_payment']['note_legend'] = 'Bestellhinweis'; -$GLOBALS['TL_LANG']['tl_iso_payment']['config_legend'] = 'Allgemeine Einstellungen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['gateway_legend'] = 'Konfiguration des Zahlungsanbieters'; -$GLOBALS['TL_LANG']['tl_iso_payment']['price_legend'] = 'Preis'; -$GLOBALS['TL_LANG']['tl_iso_payment']['template_legend'] = 'Template'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expert_legend'] = 'Experten-Einstellungen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled_legend'] = 'Freigabe'; diff --git a/system/modules/isotope/languages/de/tl_iso_payment.xlf b/system/modules/isotope/languages/de/tl_iso_payment.xlf new file mode 100644 index 0000000000..a8ff48f8f7 --- /dev/null +++ b/system/modules/isotope/languages/de/tl_iso_payment.xlf @@ -0,0 +1,881 @@ + + + + + Payment Method Name + Name + + + Enter a name for this payment method. This will only be used in the backend. + Geben Sie einen Namen für diese Zahlungsart ein. Dieser wird nur im Backend benutzt. + + + Payment Method Label + Bezeichnung + + + The label will be shown to customers on checkout. + Diese Bezeichnung wird dem Kunden bei der Bestellung angezeigt. + + + Type of Payment Gateway + Zahlungsmodul + + + Select a particular payment gateway + Wählen Sie eines der unterstützen Zahlungsmodule + + + Payment Note + Hinweise + + + This note can be sent in confirmation mails (##payment_note##). + Die Hinweise können in der Bestellbestätigung mitgesendet werden (##payment_note##). + + + Status for new orders + Status für neue Bestellungen + + + Choose a matching status for new orders. + Wählen Sie einen zutreffenden Status für neue Bestellungen im System. + + + Minimum total + Mindestbestellwert + + + Enter a number greater zero to exclude this payment method for lower priced orders. + Geben Sie ein Zahl grösser als 0 ein, wenn diese Zahlungsart erst ab einem bestimmten Mindestbestellwert zur Verfügung steht. + + + Maximum total + Höchstbestellwert + + + Enter a number greater zero to exclude this payment method for higher priced orders. + Geben Sie ein Zahl grösser als 0 ein, wenn diese Zahlungsart nur bis zu einem bestimmten Höchstbestellwert zur Verfügung steht. + + + Minimum quantity + Mindestmenge + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + Geben Sie eine Zahl größer als 0 ein, um diese Zahlungsart bei Bestellungen mit niedrigerer Menge auszuschließen. + + + Maximum quantity + Höchstmenge + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + Geben Sie eine Zahl größer als 0 ein, um diese Zahlungsart bei Bestellungen mit höherer Menge auszuschließen. + + + Quantity calculation mode + Mengen-Berechnungsmodus + + + Select a calculation mode for min/max quantity. + Wählen Sie einen Berechnungsmodus für die minimale/maximale Menge. + + + Total quantity in cart + Gesamtmenge im Warenkorb + + + Total products in cart + Menge der verschiedenen Produkte im Warenkorb + + + Available countries + Aktive Länder + + + Select the countries where this payment method may be used (customer's billing address). + Falls diese Zahlungsart nur in gewissen Ländern unterstütz wird (Rechnungsadresse des Kunden). + + + Shipping methods + Versandarten + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + Falls diese Zahlungsart nur für bestimmte Versandarten unterstützt wird (z. B. Barzahlung nur bei Abholung). + + + Product types + Produkttypen + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + Sie können diese Bezahlmethode auf bestimmte Produkttypen einschränken. Wenn der Warenkorb einen Produkttypen enthält, den Sie nicht gewählt haben, ist die Bezahlmethode nicht verfügbar. + + + Product type condition + Produkttyp-Bedingungen + + + Select how the product type filter should be applied. + Wählen Sie aus, wie der Produkttyp-Filter angewandt werden soll. + + + Store configurations + Konfigurationen + + + You can restrict this payment method to certain shop configurations. + Diese Bezahlmethode kann auf bestimmte Shopkonfigurationen beschränkt werden. + + + Price + Preis + + + Enter a price or percent value (e.g. "10" or "10%"). + Geben Sie Preis oder einen prozentualen Wert ein (z. B. "10" oder "10%"). + + + Tax Class + Steuerklasse + + + Please select a tax class for the price. + Bitte wählen Sie eine Steuerklasse für diesen Preis. + + + Transaction type + Transaktions-Typ + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + Wählen Sie ob Sie das Geld sofort einnehmen oder für eine spätere Transaktion (z. B. wenn versandt wird) autorisieren (und abwarten) wollen. + + + Merchant ID + Händler-ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + Bitte geben Sie Ihre Paybyway Händer-ID ein. Die Unterhändler-ID ist auf der Unterhändler-Seite der Händler-Oberfläche aufgelistet. + + + Private Key + Privater Schlüssel + + + Please enter your Paybyway private key. + Bitte geben Sie den privaten Paybyway-Schlüssel ein. + + + PayPal Account + PayPal-Konto + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + Geben Sie die E-Mail Adresse ein, welche als Standard ihres PayPal Kontos festgelegt ist. Beachten Sie die korrekte Schreibweise, auch Groß-Kleinschreibung! + + + Paypal Payflow Pro username + Paypal Payflow Pro Nutzername + + + + + + Paypal Payflow Pro vendor + Paypal Payflow Pro Händler + + + An alphanumeric string of about 10 characters. + Ein alphanumerischer String mit ca. 10 Zeichen + + + Paypal Payflow Pro partner + Paypal Payflow Pro Partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + Groß-/Kleinschreibung beachten! Normalerweise sind Partner IDs entweder "PayPal" oder "PayPalUK". + + + Paypal Payflow Pro api password + Paypal Payflow Pro API-Passwort + + + An alphanumeric string of about 11 characters + Ein alphanumerischer String mit ca. 11 Zeichen + + + Paypal Payflow Pro transaction type + Paypal Payflow Pro Transaktionstyp + + + Please select a transaction type. + Bitte wählen Sie einen Transaktionstypen. + + + PSPID + PSPID + + + The PSPID is your unique identification for the payment method. + Die PSPID ist Ihr eindeutiger Erkennungsname im Postfinance-System. + + + HTTP method + HTTP Methode + + + Type of HTTP data transfer from and to the servers. + Typ der HTTP Daten von und zu den Servern. + + + Hash method + Hash-Methode + + + Hashing algorithm for data transfer from and to the servers. + Hash-Algorithmus für Datentransfer von und zu Servern. + + + SHA-1 + SHA-1 + + + SHA-256 + SHA-256 + + + SHA-512 + SHA-512 + + + SHA-IN signature + SHA-IN Signatur + + + This will be used to validate the server to server communication. + Dies wird zum validieren der Server-zu-Server-Verbindung genutzt. + + + SHA-OUT signature + SHA-OUT Signatur + + + This will be used to validate the server to server communication. + Dies wird zum validieren der Server-zu-Server-Verbindung genutzt. + + + Dynamic template URL + Dynamische Template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + Geben Sie eine <strong>absolute</strong> URL zu einem dynamischen Template ein. + + + Payment method + Zahlungsart + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + Sie können hier eine Zahlungsart auswählen. Stellen Sie sicher, dass Ihr PSP-Vertrag diese Zahlungsart auch beinhaltet! Wenn Sie nichts auswählen, muss der Kunde die bevorzugte Zahlungsart in der PSP-Oberfläche auswählen. + + + Require Card Code Verification (CCV) Number + Benötigt den Prüfcode (Card Code Verification - CCV) + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + Wählen Sie diese Option wenn sie die Transaktionssicherheit durch die Abfrage des Prüfcodes erhöhen möchten. + + + Allowed Credit Card Types + Erlaubte Kreditkarten-Typen + + + Select which credit cards the payment method accepts. + Wählen Sie welche Kreditkarten die Bezahlmethode akzeptiert. + + + Merchant-ID + Händler-ID + + + Please enter your merchant ID. + Bitte geben Sie Ihre Händler-ID ein. + + + HMAC Key + HMAC Schlüssel + + + Please enter your HMAC key from the Datatrans control panel. + Bitte geben Sie den HMAC Schlüssel der Datatrans-Verwaltung ein. + + + Hash method + Hash-Methode + + + Please select the hashing method configured in your Datatrans control panel. + Wählen Sie die Hashing-Methode wie sie im Datatrans Control Panel konfiguriert ist. + + + MD5 (outdated) + MD5 (veraltet) + + + SHA-256 + SHA-256 + + + Convert hash to binary + Hash in Binär konvertieren + + + Check here if the hash key needs to be converted to binary. + Klicken Sie hier wenn der Hash-Key in Binärdaten konvertiert werden soll. + + + Site Identifier + Seiten-Identifikation + + + Please enter your payment site identifier. + Geben Sie die Identifikation der Zahlungsseite ein. + + + Certificate + Zertifikat + + + Please enter your TEST or PRODUCTION certificate. + Bitte geben Sie Ihr TEST- oder PRODUCTION-Zertifikat ein. + + + Payment method + Zahlungsart + + + Please select a payment method for this method. + Bitte wählen Sie eine Zahlungsart. + + + Credit card + Kreditkarte + + + Debig card + Abbuchungskarte + + + Direct debit + Bankeinzug + + + Seller ID + Verkäufer ID + + + Please enter your seller ID (Händlerkennung). + Bitte geben Sie Ihre Verkäufer ID ein (Händlerkennung). + + + Password + Passwort + + + Please enter your SSL-Password. + Bitte geben Sie Ihr SSL-Passwort ein. + + + Reference + Referenz + + + A reference that will be shown on the seller details page instead of the cart ID. + Eine Referenz, welche auf der Detailseite des Verkäufers anstelle der Warenkorbnummer angezeigt wird. + + + Customer ID + Kunden ID + + + Your customer ID for sofortüberweisung.de + Ihre Kunden ID bei sofortüberweisung.de + + + Project ID + Projekt ID + + + Your project ID for sofortüberweisung.de + Ihre Projekt ID bei sofortüberweisung.de + + + Projekt password + Projekt-Passwort + + + Your project password for sofortüberweisung.de + Ihr Projekt-Passwort bei sofortüberweisung.de + + + Saferpay Account-ID + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + Bitte geben Sie ihre eindeutige Saferpay Account ID ein. + + + Checkout description + Checkout-Beschreibung + + + The customer will see this description on the Saferpay checkout page. + Der Kunde wird diese Beschreibung auf der Saferpay Checkout-Seite sehen. + + + Payment page configuration (VTCONFIG) + Konfiguration Zahlungsseite (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + Sie können verschiedene Zahlseiten-Konfigurationen erstellen. Wenn Sie eine spezielle verwenden möchten, geben Sie den Wert des "Request"-Parameter hier ein. + + + Payment methods + Zahlungsarten + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + Sie können die verfügbaren Zahlungsmethoden einschränken (z. B. nur MasterCard). Wenn Sie hier nichts auswählen, sind alle Zahlungsmethoden erlaubt. + + + ExperCash Popup-ID + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + ExperCash Profil + + + Geben Sie die dreistellige Profilnummer ein. + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + ExperCash Popup-Schlüssel + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + Transaktion über giropay + + + Transaktion über Sofortüberweisung + Transaktion über Sofortüberweisung + + + CSS-Vorlage + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + Händler-Nummer + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + Die in ePay erstellte, eindeutige Händler-Nummer. Diese Händler-Nummer finden Sie in Ihren Vertrag mit PBS. + + + Integration type + Integrationstyp + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + Wählen Sie eine der verfügbaren Integrations-Optionen. Beachten Sie bitte, dass bei Verwendung des integrierten Bezahlformulars nur Kartenzahlung akzeptiert werden kann. + + + Secret key + Sicherheitsschlüssel + + + The secret key set up in your ePay configuration. + Der geheime Schlüssel in Ihrer ePay-Konfiguration. + + + Clearing type + Abwicklungsart + + + Please choose a clearing type. + Bitte wählen Sie eine Abwicklungsart. + + + PAYONE subaccount ID (aid) + PAYONE Sub-Account ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + Bitte geben Sie die eindeutige PAYONE Sub-Account ID (aid) ein. + + + PAYONE Portal ID + PAYONE Portal-ID + + + Please enter your unique PAYONE portal ID. + Bitte geben Sie die eindeutige PAYONE Portal ID ein. + + + Secret key + Sicherheitsschlüssel + + + Enter the secret key you specified for this portal. + Geben Sie den Sicherheitsschlüssel für dieses Portal ein. + + + Installation ID + Installation ID + + + Please enter your WorldPay Installation ID + Bitte geben Sie die WorldPay Installation's ID ein + + + Transaction Password + Transaktions-Passwort + + + Enter the same transaction password as in your WorldPay configuration. + Geben Sie das selbe Passwort ein, den Sie bei Ihrer WorldPay-Konfiguration eingegeben haben. + + + SignatureFields + Signaturfelder + + + Enter the same SignatureField value as in your WorldPay configuration. + Geben Sie den selben Wert für das Signaturfeld ein, den Sie bei Ihrer WorldPay-Konfiguration eingegeben haben. + + + MD5 Secret + MD5 Geheim + + + Enter the same MD5 secret value as in your WorldPay configuration. + Geben Sie den selben MD5 Geheimwert ein, den Sie bei Ihrer WorldPay-Konfiguration eingegeben haben. + + + Description + Beschreibung + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + Geben Sie eine Beschreibung für Ihren Shop ein. Diese wird den Kunden während dem Worldpay Checkout gezeigt. + + + Merchant ID + Händler-ID + + + Please enter your merchant ID. + Bitte geben Sie Ihre Händler-ID ein. + + + Agreement ID + Einverständis-ID + + + Please enter your agreement ID. + Bitte geben Sie Ihre Einverständnis-ID (Agreement ID) ein. + + + API key + API-Schlüssel + + + Please enter your API key. + Bitte geben Sie Ihren API-Schlüssel ein. + + + Private key + Privater Schlüssel + + + Please enter your private key. + Bitte geben Sie den privaten Schlüssel ein. + + + Payment methods + Zahlungsarten + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + Bitte geben Sie eine Konfigurations-Zeichenfolge ein. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">Weitere Informationen</a>. + + + User ID + Benutzer-ID + + + Please enter your user ID. + Geben Sie ihre Benutzer-ID ein. + + + Password + Passwort + + + Please enter your user password. + Geben Sie ihr Benutzerpasswort ein. + + + Entity/Channel ID + Entity/Channel ID + + + Please enter your entity or channel ID + Geben Sie ihre Entity oder Channel ID ein. + + + Member groups + Mitgliedergruppen + + + Restrict this payment method to certain member groups. + Diese Bezahlmethode auf bestimmte Mitgliedergruppen beschränken. + + + Protect payment method + Modul schützen + + + Show the payment method to certain member groups only. + Diese Bezahlmethode nur bestimmten Mitgliedergruppen anzeigen. + + + Show to guests only + Nur für Gäste anzeigen + + + Hide the payment method if a member is logged in. + Diese Bezahlmethode nicht für eingeloggte Mitglieder anzeigen. + + + Debug mode + Testsystem verwenden + + + For testing without actually capturing for payment. + Aktivieren Sie diese Option um ein Testsystem zu verwenden, auf dem keine echten Zahlungen ausgeführt werden. + + + Enabled + Aktiv + + + Check here if the payment method should be enabled in the store. + Klicken Sie hier wenn dieses Modul für Besucher sichtbar sein soll. + + + New payment method + Neue Zahlungsart + + + Create a new payment method + Erstellen Sie eine neue Zahlungsart + + + Edit payment method + Zahlungsart bearbeiten + + + Edit payment method ID %s + Zahlungsart ID %s bearbeiten + + + Copy payment method + Zahlungsart kopieren + + + Copy payment method ID %s + Zahlungsart ID %s kopieren + + + Delete payment method + Zahlungsart löschen + + + Delete payment method ID %s + Zahlungsart ID %s löschen + + + Enable/disable payment method + Zahlungsmethode aktivieren/deaktivieren + + + Enable/disable payment method ID %s + Zahlungsart ID %s aktivieren/deaktivieren + + + Payment method details + Zahlungsart-Details + + + Show details of payment method ID %s + Details der Zahlungsart ID %s anzeigen + + + Authorize and Capture + Autorisieren und Einnehmen + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + Transaktionen von diesem Typ werden für die Autorisierung gesendet. Die Transaktion wird automatisch zur Begleichung geleitet wenn die Transaktion erfolgreich war. + + + Authorize Only + Nur Autorisieren + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + Transaktionen dieses Typs werden übertragen, wenn der Händler die Kreditkarte auf die Menge der verkauften Waren prüfen lassen möchte. Wenn der Händler nicht genügend Waren im Lager hat oder die Bestellungen vor der Warenlieferung prüfen möchte, wird dieser Transaktiontyps übertragen. + + + Orders without shipping + Bestellungen ohne Versand + + + Enable if only these product types are in cart + Nur erlauben bei folgenden Produkttypen im Warenkorb + + + Enable if all these product types are in cart + Nur erlauben wenn alle der folgenden Produkttypen im Warenkorb liegen + + + Enable if one of these product types is in cart + Erlauben, wenn einer der folgenden Produkttypen im Warenkorb liegt + + + Debit withdrawal + Einziehen mit Drawal + + + Credit card + Kreditkarte + + + Debit card + Bankomatkarte + + + Prepayment + Vorauszahlung + + + Invoice + Rechnung + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + Banküberweisung (SOFORT/Giropay/Postfinance/IDEAL) + + + e-Wallet (PayPal) + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + Finanzierung (BillSAFE Rechnung) + + + Full screen + Vollbild + + + Integrated payment form + Integriertes Zahlungsformular + + + Name &amp; Type + Name & Typ + + + Additional notes + Bestellhinweis + + + General configuration + Allgemeine Einstellungen + + + Payment gateway configuration + Konfiguration des Zahlungsanbieters + + + Price + Preis + + + Template + Template + + + Expert settings + Experten-Einstellungen + + + Approval + Freigabe + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_product.php b/system/modules/isotope/languages/de/tl_iso_product.php deleted file mode 100644 index 8e1fa8518a..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_product.php +++ /dev/null @@ -1,134 +0,0 @@ -Es gibt 2 unterschiedliche Wege dieses Feature zu nutzen:

\n
    \n
  1. Der Ordner mit den Quelldateien beinhaltet Dateien, welche der SKU oder dem Namen des Produktes gleichen. Isotope eCommerce vergleicht alle Dateien mit sämtlichen Produkten und importiert diese in den passenden Ordner des Produktes.
  2. \n
  3. Der Ordner mit den Quelldateien beinhaltet Unterordner, welche der SKU oder dem Namen des Produktes gleichen. Isotope eCommerce vergleicht alle Unterordner mit sämtlichen Produkten und imporietert diese in den passenden Ordner des Produktes.
  4. \n
\n

Hinweis: Jeder Entwickler kann weitere Regeln zum vergleichen bereitstellen, nicht nur die SKU oder den Namen

\n"; diff --git a/system/modules/isotope/languages/de/tl_iso_product.xlf b/system/modules/isotope/languages/de/tl_iso_product.xlf new file mode 100644 index 0000000000..96bab5850a --- /dev/null +++ b/system/modules/isotope/languages/de/tl_iso_product.xlf @@ -0,0 +1,498 @@ + + + + + Product ID + Produkt-ID + + + Categories + Kategorien + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + Wählen Sie eine Kategorie für dieses Produkt. Seitenbasierte Kategorien nutzen die Vorteile der Contao-Seitenfunktionen wie Navigationsautomatik, Seitenschutz, Templates und volle Einbindung mit Inhaltselementen. + + + Product type + Produkttyp + + + Select your product type. Product types are defined in the store configuration. + Produkttypen sind im Produkttypen-Manager definiert + + + Default variant + Standard-Variante + + + Click here if this variant should be pre-selected by default. + Klicken Sie hier um diese Variante standardmässig ausgewählt zu machen. + + + Alias + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + Sie können ein Alias für dieses Produkt eingeben. Falls Sie das Feld leer lassen wird eines anhand des Namens generiert. + + + Name + Name + + + Please enter the name of this product. + Bitte geben Sie einen Namen für diese Produkt ein. + + + SKU + Artikelnummer + + + Please enter a unique stock keeping unit for this product. + Bitte geben Sie eine Artikelnummer für dieses Produkt ein. + + + Shipping weight + Versandgewicht + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Geben Sie bitte das Versandgewicht für dieses Produkt ein. Dies kann später für eine Versandberechnung nach Gewicht berücksichtigt werden. + + + Teaser + Teaser + + + Please enter the teaser. + Bitte geben Sie einen Produkt-Teaser ein. + + + Description + Beschreibung + + + Please enter the product description. + Bitte geben Sie eine Produkt-Beschreibung ein. + + + Meta title + Meta-Titel + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + Der Meta-Titel wird als Seitentitel auf der Detailseite angezeigt. Wird dieser leer gelassen, wird der Produktname verwendet. + + + Meta description + Meta-Beschreibung + + + Meta description will be placed in the header on product detail page, for search engine optimization. + Die Meta-Beschreibung wird im Kopf der Detailseite für die Suchmaschinenoptimierung ausgegeben. + + + Meta keywords + Meta keywords + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + Die Meta-Keywords werden im Header der Detailseite für die Suchmaschinenoptimierung ausgegeben. + + + Price &amp; tax class + Preis + + + Please enter the price(s) for this product and select the tax class. + Bitte geben Sie den Preis für dieses Produkt ein und wählen die Steuerklasse. + + + Exempt from shipping + Vom Versand ausschliessen + + + Check if item is not a shipped item (such as downloadable products). + Klicken Sie hier wenn dieses Produkt nicht versendet wird (wie z.B. herunterladbare Produkte. + + + Base price amount + Grundpreis-Menge + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + Geben Sie die Menge dieses Produkts für den Grundpreis ein (z.B. "1500" wenn das Produkt 1500 Gramm schwer ist). + + + Images + Bilder + + + Upload images to this product. Please save the product after selecting a file. + Laden Sie Bilder für dieses Produkt hoch. Bitte speichern Sie das Produkt nachdem Sie eine Datei ausgewählt haben. + + + Protect product + Produkt schützen + + + Restrict product access to certain member groups. + Den Produkt-Zugriff auf bestimmte Mitgliedergruppen beschränken. + + + Allowed member groups + Produktgruppen + + + These groups will be able to access the product. + Produktgruppen verwalten + + + Show to guests only + Nur für Gäste anzeigen + + + Hide the product if there is an authenticated user. + Dieses Produkt ausblenden, sobald ein Benutzer angemeldet ist. + + + CSS ID/class + CSS-ID/Klasse + + + Here you can set an ID and one or more classes. + Hier können Sie eine ID und beliebig viele Klassen eingeben. + + + Publish product + Produkt veröffentlichen + + + Click here to show this product on your website. + Klicken Sie hier wenn das Produkt auf der Webseite angezeigt werden soll. + + + Start date + Startdatum + + + Do not show this product before the date specified. + Zeigen Sie das Produkt nicht vor dem angegebenen Datum an. + + + Stop date + Stopdatum + + + Do not show this product after the date specified. + Zeigen Sie das Produkt nicht nach dem angegebenen Datum an. + + + Inherited attributes + Vererbte Attribute + + + Check the fields you want to inherit from base product. + Haken Sie die Felder an, die vom Basisprodukt vererbt werden sollen. + + + Source folder + Quellordner + + + Please choose the folder where product assets are located. + Bitte wählen Sie den Ordner in dem sich die Produktanlagen befinden. + + + Preview + Vorschau + + + Alternate text + Alternativtext + + + Link target + Linkziel + + + Description + Beschreibung + + + Translate + Übersetzen + + + None + Nichts + + + Do not translate this image. + Dieses Bild nicht übersetzen. + + + Text + Text + + + Translate alt text and description for this image. + Alternativtext und Beschreibung für dieses Bild übersetzen. + + + All + Alle + + + Do not include this image in translated version. + Dieses Bild nicht in die übersetzte Version übernehmen. + + + Variant + Variante + + + Show product variants + Zeige Produktvarianten + + + New product + Neues Produkt + + + Create new product + Neues Produkt erstellen + + + Add variant + Variante hinzufügen + + + Add new variant to a given product + Eine weitere Variante zu einem Produkt hinzufügen + + + Edit product + Produkt bearbeiten + + + Edit product ID %s + Produkt ID %s bearbeiten + + + Copy product + Produkt duplizieren + + + Copy product ID %s + Produkt ID %s duplizieren + + + Move product + Produkt verschieben + + + Move product ID %s + Produkt ID %s verschieben + + + Delete product + Produkt löschen + + + Delete product ID %s + Produkt ID %s löschen + + + Publish/unpublish product + Produkt veröffentlichen/unveröffentlichen + + + Publish/unpublish product ID %s + Produkt ID %s veröffentlichen/unveröffentlichen + + + Product details + Produkt-Details + + + Show details of product ID %s + Details des Produkts ID %s anzeigen + + + Advanced filter: + Erweiterte Filter: + + + Without images + Ohne Bilder + + + Unassigned products + Nicht zugewiesene Produkte + + + New products + Neue Produkte + + + Added today + Heute hinzugefügt + + + Added this week + Diese Woche hinzugefügt + + + Added this month + Dieses Monat hinzugefügt + + + Manually sort products in a page + Die Produkte auf einer Seite von Hand sortieren + + + Product groups + Produktgruppen + + + Manage product groups + Produktgruppen verwalten + + + Import assets + Anlagen importieren + + + Import images and other media from a folder + Bilder und andere Mediendateien aus einem Ordner importieren + + + Manage prices + Preise verwalten + + + Click the button to manage advanced prices for this product. + Preise für das Produkt ID %s verwalten + + + Apply and close + Anwenden und schließen + + + Product variants + Produktvarianten + + + Show variants for product ID %s + Zeige Varianten für Produkt mit ID %s + + + Generate variants + Varianten generieren + + + Generate variants for product ID %s + Generiere Varianten für das Produkt ID %s + + + Related products + Ähnliche Produkte + + + Manage related products for product ID %s + Ähnliche Produkte für das Produkt ID %s verwalten + + + Downloads + Downloads + + + Edit downloads for product ID %s + Downloads für das Produkt ID %s bearbeiten + + + Currently: %s downloads. + Momentan: %s Downloads. + + + Move to group + In eine Gruppe verschieben + + + Move product ID %s to a group + Produkt ID %s in eine Gruppe verschieben + + + Group + Gruppe + + + General Settings + Allgemeine Einstellungen + + + Meta data + Meta-Angaben + + + Pricing Settings + Preis-Einstellungen + + + Inventory Settings + Inventar-Einstellungen + + + Shipping Settings + Versand-Einstellungen + + + Product Options Settings + Produktoptionen-Einstellungen + + + Media Management + Dateiverwaltung + + + Expert settings + Experten-Einstellungen + + + Publishing + Veröffentlichung + + + Quantity + Anzahl + + + from %s pcs. + ab %s Stück + + + Price + Preis + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + <p>Es gibt 2 unterschiedliche Wege dieses Feature zu nutzen:</p> +<ol> + <li>Der Ordner mit den Quelldateien beinhaltet Dateien, welche der SKU oder dem Namen des Produktes gleichen. Isotope eCommerce vergleicht alle Dateien mit sämtlichen Produkten und importiert diese in den passenden Ordner des Produktes.</li> + <li>Der Ordner mit den Quelldateien beinhaltet Unterordner, welche der SKU oder dem Namen des Produktes gleichen. Isotope eCommerce vergleicht alle Unterordner mit sämtlichen Produkten und imporietert diese in den passenden Ordner des Produktes.</li> +</ol> +<p>Hinweis: Jeder Entwickler kann weitere Regeln zum vergleichen bereitstellen, nicht nur die SKU oder den Namen</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_product_category.php b/system/modules/isotope/languages/de/tl_iso_product_category.php deleted file mode 100644 index 2d656c1e59..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_product_category.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Move product + Produkt verschieben + + + Move product ID %s + Produkt ID %s verschieben + + + Paste at the top + Oben hinzufügen + + + Paste after product ID %s + Füge es nach dem Produkt ID %s ein + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + Im Frontend-Modul darf kein Sortierungsfeld für die manuelle Sortierung vorhanden sein. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_product_collection.php b/system/modules/isotope/languages/de/tl_iso_product_collection.php deleted file mode 100644 index b5059cb058..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_product_collection.php +++ /dev/null @@ -1,69 +0,0 @@ -die Saferpay-Webschnittstelle.'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['saferpayStatusCancel'] = 'Saferpay-Zahlung kann nicht automatisch annulliert werden. Verwenden Sie die Saferpay-Webschittstelle um eine Rückerstattung auszugeben.'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['noEmailData'] = 'Keine weiteren E-Mail-Daten vorhanden.'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['status_legend'] = 'Bestellstatus'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['details_legend'] = 'Bestelldetails'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['email_legend'] = 'E-Mail Daten'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['billing_address_legend'] = 'Rechnungsadress-Daten'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['shipping_address_legend'] = 'Versandadress-Daten'; diff --git a/system/modules/isotope/languages/de/tl_iso_product_collection.xlf b/system/modules/isotope/languages/de/tl_iso_product_collection.xlf new file mode 100644 index 0000000000..c4a15fea1a --- /dev/null +++ b/system/modules/isotope/languages/de/tl_iso_product_collection.xlf @@ -0,0 +1,218 @@ + + + + + Order ID + Bestellnummer + + + Member (empty for guests) + Mitglied (Leer für Gäste) + + + Unique ID + Eindeutige ID + + + Order status + Bestellstatus + + + Select the status of this order. + Wählen Sie den Status der Bestellung. + + + Placed + Platziert + + + Source (Cart ID) + Quelle (Warenkorb ID) + + + Payment date + Bezahldatum + + + Enter a date when this order has been paid. + Geben Sie an wann (Datum) diese Bestellung bezahlt wurde. + + + Shipped date + Versanddatum + + + Enter a date when this order has been shipped. + Geben Sie an wann (Datum) diese Bestellung versandt wurde. + + + Shop configuration + Shop-Konfiguration + + + Payment method + Zahlungsart + + + Shipping method + Versandart + + + Billing address + Rechnungsadresse + + + Shipping address + Versandadresse + + + Subtotal + Zwischensumme + + + Subtotal without tax + Zwischensumme ohne Steuern + + + Total + Gesamt + + + Total without tax + Gesamt ohne Steuern + + + Currency + Währung + + + Language + Sprache + + + Order notes + Bestellanmerkungen + + + If you would like to convey information to other backend users, please do so here. + Wenn Sie für andere Backend-Nutzer hinterlegen möchten, tun Sie das bitte hier. + + + Edit order + Bestellung bearbeiten + + + Edit order ID %s + Bestellung ID %s bearbeiten + + + Copy order + Bestellung duplizieren + + + Copy order ID %s + Bestellung ID %s duplizieren + + + Delete order + Bestellung löschen + + + Delete order ID %s + Bestellung ID %s löschen + + + Order details + Bestelldetails + + + Show details of order ID %s + Details der Bestellung ID %s anzeigen + + + Payment details + Zahlungsdetails + + + Show payment details of order ID %s + Zahlungsdetails der Bestellung ID %s anzeigen + + + Shipping details + Versanddetails + + + Show shipping details of order ID %s + Versanddetails der Bestellung ID %s anzeigen + + + Print a document + Ein Dokument drucken + + + Print order ID %s with a document of your choice + Bestellung mit ID %s mit einem Dokument Ihrer Wahl drucken + + + Document + Dokument + + + Choose the document you would like to print the data with. + Wählen Sie das Dokument, mit welchem Sie die Daten drucken möchten. + + + Print + Drucken + + + The status of your order has been updated. + Der Status Ihrer Bestellung wurde aktualisiert. + + + Notifications (e.g. email to client) have been sent. + Benachrichtigung (z.B. E-Mail zum Kunden) wurde gesendet. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + Benachrichtigung (z.B. E-Mail an Kunden) konnte nicht gesendet werden. Überprüfen Sie den System-Log. + + + Saferpay payment was sucessfully captured. + Saferpay-Zahlung wurde erfolgreich erfasst. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + Saferpay-Zahlung konnte nicht erfasst werden! Bitte überprüfen Sie <a href="https://www.saferpay.com/BO/Login/" target="_blank">die Saferpay-Webschnittstelle</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + Saferpay-Zahlung kann nicht automatisch annulliert werden. Verwenden Sie <a href="https://www.saferpay.com/BO/Login/" target="_blank">die Saferpay-Webschittstelle</a> um eine Rückerstattung auszugeben. + + + No additional email data available. + Keine weiteren E-Mail-Daten vorhanden. + + + Order status + Bestellstatus + + + Order details + Bestelldetails + + + Email data + E-Mail Daten + + + Billing address data + Rechnungsadress-Daten + + + Shipping address data + Versandadress-Daten + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_product_price.php b/system/modules/isotope/languages/de/tl_iso_product_price.php deleted file mode 100644 index 1a78963efb..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Price Tiers + Preisstaffelungen + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + Legen Sie zumindest eine Preisstaffel für "Menge 1" an. Sie können ermäßigte Preise eingeben, wenn der Nutzer mehr als ein Produkt bestellt. + + + Tax Class + Steuerklasse + + + Please select a tax class for this price. + Bitte wählen Sie eine Steuerklasse für diesen Preis. + + + Store configuration + Shop-Konfiguration + + + Select a store configuration for this price. + Wählen Sie eine Shop-Konfiguration für diesen Preis. + + + Member group + Preisgruppe + + + Select a member group for this price. + Wählen Sie eine Preisgruppe (Mitgliedergruppe) für diesen Preis. + + + Use from + Startdatum + + + Do not use the price on the website before this day. + Nutze den Preis nicht vor diesem Tag. + + + Use until + Stopdatum + + + Do not use the price on the website after this day. + Nutze den Preis nicht nach diesem Tag. + + + Add price + Preis hinzufügen + + + Add a new price to this product + Einen neuen Preis zu diesem Produkt hinzufügen. + + + Edit price + Preis bearbeiten + + + Edit price ID %s + Preis ID %s bearbeiten + + + Duplicate price + Preis duplizieren + + + Duplicate price ID %s + Preis ID %s duplizieren + + + Delete price + Preis löschen + + + Delete price ID %s + Preis ID %s löschen + + + Price details + Preis-Details + + + Show details of price ID %s + Details der Preis ID %s anzeigen + + + Quantity (min) + Menge (min) + + + Price + Preis + + + Price + Preis + + + Limitations + Einschränkungen + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_producttype.php b/system/modules/isotope/languages/de/tl_iso_producttype.php deleted file mode 100644 index c39a9b822f..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_producttype.php +++ /dev/null @@ -1,73 +0,0 @@ - + + + + Name + Name + + + Please enter a name for this product type. + Bitte geben Sie einen Namen für diesen Produkttyp ein. + + + Product Class + Produktklasse + + + Please select a product class. Different product classes will handle products differently. + Bitte wählen Sie eine Produktklasse. Verschiedene Produktklassen wirken sich unterschiedlich auf Produkte aus. + + + Default + Standard + + + Check here if this is the default product type. + Klicken Sie hier, wenn das der Standard-Produkttyp ist. + + + Description + Beschreibung + + + A hint to product managers what this product type is for. + Ein Hinweis für Produktverwalter wofür dieser Produkttyp gedacht ist. + + + Advanced pricing + Erweiterte Preisangaben + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + Erlauben Sie die Definition von mehrfachen Preisen für ein Produkt, z. B. für verschiedene Shop-Konfigurationen, Mitgliedergruppen oder Daten. + + + Show price tiers + Preisebenen anzeigen + + + Show highest tier as lowest product price. + Zeige die höchste Ebene als tiefsten Produktpreis an. + + + List template + Auflistungs-Template + + + Select a template for product listing. + Wählen Sie ein Template für Produktlisten. + + + Reader template + Leser-Template + + + Select a template for product details. + Wählen Sie ein Template für Produkt-Details. + + + List gallery + Galerie auflisten + + + Select a gallery for product listing. + Wählen Sie eine Galerie für die Produktliste. + + + Reader gallery + Galerie für Detailseite + + + Select a gallery for product details. + Wählen Sie eine Galerie für die Produktdetails. + + + CSS class + CSS-Klasse + + + The class(es) will be added to the product list and reader templates. + Die Klasse(n) werden zur Produktliste und Produktleser hinzugefügt. + + + Attributes + Attribute + + + Select the collection of attributes that should be included for this product type. + Wählen Sie eine Attributsammlung die zu diesem Produkttyp hinzugefügt werden soll. + + + Grouping + Gruppierung + + + Group fields by topic (legends) + Felder nach Themen (Legenden) gruppieren + + + Alignment + Ausrichtung + + + Enter a tl_class to override alignment for this attribute. + Geben Sie eine tl_class ein, um die Ausrichtung für dieses Attribut zu überschreiben. + + + Mandatory + Verpflichtend + + + You can override the default mandatory-ness here. + Hier können Sie die Standard-Verpflichtung überschreiben. + + + Default + Standard + + + Enable variants + Varianten aktivieren + + + Check here if this product type has variants. + Klicken Sie hier, wenn dieser Produkttyp Varianten besitzt. + + + Variant attributes + Varianten-Attribute + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + Wählen Sie eine Sammlung von Varianten-Attributen die zu diesem Produkttyp hinzugefügt werden soll. Unausgewählte Varianten-Attribute sind unsichtbar und werden nicht vom Elternprodukt vererbt. + + + Always show variant attributes + Varianten eines Attributes immer anzeigen + + + Show a variant attribute (select, radio) even if there is only one choice. + Varianten eines Attributes (Select-Menü, Radio-Menü) auch anzeigen, wenn nur eine Möglichkeit besteht. + + + Exempt from shipping + Vom Versand ausschliessen + + + Check if items of this product type are not a shipped item (such as downloadable products). + Klicken Sie hier wenn Produkte dieses Typs nicht versendet werden (z.B. Downloads). + + + Enable downloads + Downloads aktivieren + + + Check here if this product type has downloads. + Klicken Sie hier, wenn dieser Produkttyp Downloads hat. + + + New product type + Neuer Produkttyp + + + Create new product type. + Neuen Produkttypen erstellen + + + Edit product type + Produkttyp bearbeiten + + + Edit product type ID %s + Produkttyp ID %s bearbeiten + + + Copy product type definiton + Produkttyp-Definition kopieren + + + Copy definition of product type ID %s + Kopiere die Definition des Produkttyps ID %s + + + Delete product type + Produkttyp löschen + + + Delete product type ID %s + Lösche den Produkttyp ID %s + + + product type details + Produkttyp-Details + + + Show details of product type ID %s + Zeige Details des Produkttyps ID %s an + + + Product type settings + Produkttyp-Einstellungen + + + Description + Beschreibung + + + Prices + Preise + + + Templates + Templates + + + Product attributes + Produktattribute + + + Variant attributes + Varianten-Attribute + + + Expert settings + Experten-Einstellungen + + + You must select at least one variant option (one of those: %s). + Sie müssen mindestens eine Varianten-Option (eine von diesen: %s) auswählen. + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + Das Attribut "%s" kann nicht für Produkt und Varianten aktiviert werden. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_related_category.php b/system/modules/isotope/languages/de/tl_iso_related_category.php deleted file mode 100644 index 6cc18ab435..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_related_category.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Category name + Kategorienname + + + Please enter a name for this category. + Bitte geben Sie einen Namen für diese Kategorie ein. + + + New category + Neue Kategorie + + + Create a new category + Neue Kategorie erstellen + + + Edit category + Kategorie bearbeiten + + + Edit category ID %s + Kategorie ID %s bearbeiten + + + Duplicate category + Kategorie duplizieren + + + Duplicate category ID %s + Kategorie ID %s duplizieren + + + Delete category + Kategorie löschen + + + Delete category ID %s + Kategorie ID %s löschen + + + Category details + Kategorie-Details + + + Show details of category ID %s + Details der Kategorie ID %s anzeigen + + + Name + Name + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_related_product.php b/system/modules/isotope/languages/de/tl_iso_related_product.php deleted file mode 100644 index 4b976271bb..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_related_product.php +++ /dev/null @@ -1,36 +0,0 @@ - + + + + Category + Kategorie + + + Select a category. + Wählen Sie eine Kategorie. + + + Products + Produkte + + + Enter a comma-separated list of product or variant IDs to show as related products. + Geben Sie eine komma-separierte Liste mit Produkt- und Varianten-ID's ein, welche als verwandte Produkte angezeigt werden sollen. + + + Add category + Kategorie hinzufügen + + + Add a new category with products + Eine neue Kategorie mit Produkten hinzufügen + + + Edit category + Kategorie bearbeiten + + + Edit category ID %s + Kategorie ID %s bearbeiten + + + Duplicate category + Kategorie duplizieren + + + Duplicate category ID %s + Kategorie ID %s duplizieren + + + Move category + Kategorie verschieben + + + Move category ID %s + Verschiebe Kategorie ID %s + + + Delete category + Kategorie löschen + + + Delete category ID %s + Kategorie ID %s löschen + + + Category details + Kategorie-Details + + + Show details of category ID %s + Details der Kategorie ID %s anzeigen + + + Edit product + Produkt bearbeiten + + + Edit this product + Dieses Produkt bearbeiten + + + Category + Kategorie + + + Related products + Ähnliche Produkte + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_shipping.php b/system/modules/isotope/languages/de/tl_iso_shipping.php deleted file mode 100644 index c5c19cee1e..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_shipping.php +++ /dev/null @@ -1,99 +0,0 @@ - + + + + Shipping Method Name + Versandart-Name + + + Please enter a name for this shipping method. + Bitte geben Sie einen Namen für die Versandart ein. + + + Shipping Method Type + Versandart-Typ + + + Please select the type of this shipping method + Wählen Sie einen Versandart-Typ + + + Price + Preis + + + Optionally enter a price for this shipping method. + Geben Sie hier optional einen Preis für diese Versandart ein. + + + Shipping Method Notes + Versandart-Hinweise + + + These will be displayed on the front end in association with this shipping option. + Diese werden im Frontend in Verbindung mit der Versandoption angezeigt. + + + Tax Class + Steuerklasse + + + Select a tax class that applies to the shipping price. + Wählen Sie eine Steuerklasse aus, die dem Versandpreis hinzugefügt wird. + + + Label + Bezeichnung + + + This is displayed on the front end in association with the shipping option. + Wird im Frontend in Verbindung mit der Versandoption angezeigt. + + + Flat calculation + Pauschalpreis-Berechnung + + + Select the mode of price calculation. + Wählen Sie den Modus der Preisberechnung. + + + Countries + Länder + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + Wählen Sie die Länder für die diese Versandart zur Verfügung steht. Wenn Sie kein Land wählen, gilt die Versandart für alle Länder. + + + State/Regions + Bundesländer/Staaten/Regionen + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + Wählen Sie die Bundesländer/Staaten/Regionen für die diese Versandart zur Verfügung steht. Wenn Sie nichts auswählen, gilt die Versandart für alle Bundesländer/Staaten/Regionen. + + + Postal codes + Postleitzahlen + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Limitieren Sie dieses Versandmodul auf bestimmte Postleitzahlen. Sie können eine komma-getrennte Liste und Bereiche eingeben (z. B. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + Mindestbetrag Zwischensumme + + + Enter a minimum amount to control availability based on the cart subtotal. + Geben Sie den Minimalbetrag der Zwischensumme für die Verfügbarkeit dieser Versandart ein. + + + Maximum subtotal + Höchstbetrag Zwischensumme + + + Enter a maximum amount to control availability based on the cart subtotal. + Geben Sie den Maximalbetrag der Zwischensumme für die Verfübarkeit dieser Versandart ein. + + + Minimum weight + Mindestgewicht + + + Enter a minimum weight to control availability based on the products in cart. + Geben Sie ein Mindestgewicht für die Verfügbarkeit dieser Versandart ein. + + + Maximum weight + Höchstgewicht + + + Enter a maximum weight to control availability based on the products in cart. + Geben Sie ein Maximalgewicht für die Verfügbarkeit dieser Versandart ein. + + + Quantity calculation mode + Mengen-Berechnungsmodus + + + Select a calculation mode for min/max quantity. + Wählen Sie einen Berechnungsmodus für die minimale/maximale Menge. + + + Total quantity in cart + Gesamtmenge im Warenkorb + + + Total products in cart + Menge der verschiedenen Produkte im Warenkorb + + + Minimum quantity + Mindestmenge + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + Geben Sie eine Zahl grösser als Null ein, um diese Versandart bei Bestellungen mit niedridger Menge auszuschliessen. + + + Maximum quantity + Höchstmenge + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + Geben Sie eine Zahl grösser als Null ein, um diese Versandart bei Bestellungen mit höherer Menge auszuschliessen. + + + Product types + Produkttypen + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + Sie können diese Versandart auf bestimmte Produkttypen einschränken. Wenn der Warenkorb einen Produkttyp enthält, den Sie hier nicht ausgewählt haben, steht das Versandmodul nicht zur Verfügung. + + + Product type condition + Produkttyp-Bedingungen + + + Select how the product type filter should be applied. + Wählen Sie aus, wie der Produkttyp-Filter angewandt werden soll. + + + Store configurations + Konfigurationen + + + You can restrict this shipping method to certain shop configurations. + Diese Versandmethode kann auf bestimmte Shopkonfigurationen beschränkt werden. + + + Shipping methods + Versandarten + + + Select the shipping methods to group in this method. + Wählen Sie die Versandarten aus, die gruppiert werden sollen. + + + Group calculation + Gruppen-Berechnung + + + Select how the price of this shipping method should be calculated. + Wählen Sie wie der Preis dieser Versandart berechnet werden soll. + + + Member Groups + Mitgliedergruppen + + + Restrict this shipping option to certain member groups. + Schränken Sie die Versandoptionen auf bestimmte Mitgliedergruppen ein. + + + Protect module + Modul schützen + + + Show the module to certain member groups only. + Modul nur für bestimmte Mitgliedergruppen anzeigen. + + + Show to guests only + Nur für Gäste anzeigen + + + Hide the module if a member is logged in. + Modul für eingeloggte Mitglieder nicht anzeigen. + + + Enabled + Aktiv + + + Is the module available for use in the store? + Wählen Sie ob dieses Modul für den Shop verfügbar ist. + + + Title and type + Titel und Typ + + + Shipping note + Versandhinweis + + + Configuration + Konfiguration + + + Pricing threshold and tax class applicability + Preis-Grenzwert und Steuerklassen-Anwendbarkeit + + + Expert settings + Experten-Einstellungen + + + Approval + Freigabe + + + New shipping method + Neue Versandart + + + Create a New shipping method + Eine neue Versandart erstellen + + + Edit shipping method + Versandart bearbeiten + + + Edit shipping method ID %s + Versandart ID %s bearbeiten + + + Copy shipping method + Versandart duplizieren + + + Copy shipping method ID %s + Versandart ID %s duplizieren + + + Delete shipping method + Versandart löschen + + + Delete shipping method ID %s + Versandart ID %s löschen + + + Enable/disable shipping method + Versandart aktivieren/deaktivieren + + + Enable/disable shipping method ID %s + Versandart mit ID %s aktivieren/deaktivieren + + + Shipping method details + Versandart-Details + + + Show details of shipping method ID %s + Details der Versandart ID %s anzeigen + + + Flat + Pauschal + + + Per Product + Pro Produkt + + + Per Item + Pro Stück + + + Price of the first available method + Preis der ersten verfügbaren Methode + + + Lowest price of available methods + Niedrigster Preis der verfügbaren Versandarten + + + Highest price of available methods + Höchster Preis der verfügbaren Versandarten + + + Summed price of available methods + Summierter Preis der verfügbaren Versandarten + + + Enable if only these product types are in cart + Nur erlauben bei folgenden Produkttypen im Warenkorb + + + Enable if all these product types are in cart + Nur erlauben wenn alle der folgenden Produkttypen im Warenkorb liegen + + + Enable if one of these product types is in cart + Erlauben, wenn einer der folgenden Produkttypen im Warenkorb liegt + + + Calculate price for these product types + Preis für diese Produkttypen berechnen + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_tax_class.php b/system/modules/isotope/languages/de/tl_iso_tax_class.php deleted file mode 100644 index d46adbcd82..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_tax_class.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Name + + + Give this tax class a name that explains what it is used for. + Legen Sie für die Steuerklasse einen Namen an, der beschreibt wofür sie eingesetzt wird. + + + Default + Standard + + + Check here if this is the default tax class. + Klicken Sie hier, wenn es sich um die Standard-Steuerklasse handelt. + + + Tax rate included with product price + Steuerklasse im Produktpreis enthalten + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + Wählen Sie ob Produktpreise mit dieser Steuerklasse einen Steuersatz enthalten. Dieser Steuersatz wird vom Produktpreis abgezogen, wenn sie nicht passt. + + + Include label + Beschriftung einbinden + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + Eine Beschriftung für Bestellungen um abgezogene Steuern anzuzeigen (falls eingebundene Steuern nicht passen). Wenn dieses Feld leer ist, wird die Beschriftung des Standard-Steuersatzes angezeigt. + + + Apply tax rates + Steuersätze hinzufügen + + + Add these tax rates to products with this tax class. + Diese Steuersätze zu Produkten mit diesen Steuerklassen hinzufügen. + + + Apply rounding increment + Rundungszuschlag verwenden + + + Check here if you want to apply the rounding increment of your shop config. + Rundungszuschlag der Shop-Konfiguration verwenden. + + + Not negative + Nicht negativ + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + Verhindert negative Beträge für diese Steuer (negative Zahl wird auf 0.00 aufgerundet). + + + New tax class + Neue Steuerklasse + + + Create a new tax class + Neue Steuerklasse erstellen + + + Edit tax class + Steuerklasse bearbeiten + + + Edit tax class ID %s + Steuerklasse ID %s bearbeiten + + + Copy tax class + Steuerklasse duplizieren + + + Copy tax class ID %s + Dupliziere Steuerklasse ID %s + + + Delete tax class + Steuerklasse löschen + + + Delete tax class ID %s + Lösche Steuerklasse ID %s + + + Tax class details + Bestelldetails + + + Show details of tax class ID %s + Details der Steuerklasse ID %s anzeigen + + + Name + Name + + + Tax rates + Steuersätze + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_iso_tax_rate.php b/system/modules/isotope/languages/de/tl_iso_tax_rate.php deleted file mode 100644 index d8cca8c2bd..0000000000 --- a/system/modules/isotope/languages/de/tl_iso_tax_rate.php +++ /dev/null @@ -1,61 +0,0 @@ - + + + + Name + Name + + + Enter a name for this tax rate. + Geben Sie einen Namen für den Steuersatz ein. + + + Label + Bezeichnung + + + This label will be used on the front end in the checkout process. + Diese Beschriftung wird im Frontend beim Bestellprozess angezeigt. + + + Address to use for calculation + Adressbasis für die Berechnung + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + Wählen Sie auf Basis welcher Adresse dieser Steuersatz berechnet werden soll. Die Versandadresse für nicht-versendbare Produkte entspricht der Rechnungsadresse. + + + Countries + Länder + + + Select the countries this tax class applies to. + Wählen Sie die Länder, auf welche diese Steuerklasse zutrifft. + + + States/Regions + Bundesländer/Staaten/Regionen + + + Select the states or regions this tax class applies to. + Wählen Sie die Bundesländer/Staaten/Regionen, auf welche diese Steuerklasse zutrifft. + + + Postal codes + Postleitzahlen + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Begrenzt den Steuersatz auf Postleitzahlen. Sie können einen Bereich mit kommaseparierte Liste auswählen (z.B. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + Zwischensummen-Wertbeschränkung + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + Optional: Beschränken Sie diesen Steuersatz auf einen bestimmten Zwischensummen-Wert (z. B. für eine Luxussteuer). + + + Tax rate + Steuersatz + + + A rate in percent this tax is set at. + Ein Prozentwert für diesen Steuersatz. + + + Store configuration + Shop-Konfiguration + + + Select the store configuration that the tax rate applies to. + Wählen Sie für welche Shop-Konfiguration dieser Steuersatz gilt. + + + Exempt on valid VAT number + USt-IdNr. bei Gültigkeit befreien. + + + Do not apply tax if the VAT number is valid. + Die Steuer nicht anwenden, wenn die USt-IdNr. gültig ist. + + + Stop calculations on trigger? + Berechnung bei Auslöser beenden + + + Stop other calculations if this tax rate is triggered. + Andere Berechnungen beenden, wenn dieser Steuersatz ausgelöst wird. + + + Member groups + Mitgliedergruppen + + + Restrict this tax rate to certain member groups. + Diesen Steuersatz auf bestimmte Mitgliedergruppen beschränken. + + + Protect tax rate + Steuersatz schützen + + + Apply the tax rate to certain member groups only. + Diesen Steuersatz nur bestimmten Mitgliedergruppen zuweisen. + + + Apply to guests only + Nur bei Gästen verwenden + + + Do not apply tax rate if a member is logged in. + Diesen Steuersatz für eingeloggte Mitglieder nicht verwenden (ausser die entsprechenden Gruppen sind erlaubt). + + + New tax rate + Neuer Steuersatz + + + Create a new tax rate + Neuen Steuersatz erstellen + + + Edit tax rate + Steuersatz bearbeiten + + + Edit tax rate ID %s + Steuersatz ID %s bearbeiten + + + Copy tax rate + Steuersatz duplizieren + + + Copy tax rate ID %s + Steuersatz ID %s duplizieren + + + Delete tax rate + Steuersatz löschen + + + Delete tax rate ID %s + Steuersatz ID %s löschen + + + Tax rate details + Bestelldetails + + + Show details of tax rate ID %s + Details des Steuersatzes ID %s anzeigen + + + Billing Address + Rechnungsadresse + + + Shipping Address + Versandadresse + + + Name + Name + + + Rate + Steuersatz + + + Location + Ort + + + Conditions + Bedingungen + + + Configuration + Konfiguration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_maintenance.php b/system/modules/isotope/languages/de/tl_maintenance.php deleted file mode 100644 index 65e4feab63..0000000000 --- a/system/modules/isotope/languages/de/tl_maintenance.php +++ /dev/null @@ -1,20 +0,0 @@ -tl_iso_productcache, welches die Produkte jeder Produktseite zwischenspeichert.'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][0] = 'Isotope Aufrufcache leeren'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][1] = 'Leert die Tabelle tl_iso_requestcache, welche informationen vom Filtermodul für kurze URLs zwischenspeichert.'; diff --git a/system/modules/isotope/languages/de/tl_maintenance.xlf b/system/modules/isotope/languages/de/tl_maintenance.xlf new file mode 100644 index 0000000000..7d2d4bc207 --- /dev/null +++ b/system/modules/isotope/languages/de/tl_maintenance.xlf @@ -0,0 +1,22 @@ + + + + + Purge Isotope product cache + Isotope Produktcache leeren + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + Leert die Tabelle <em>tl_iso_productcache</em>, welches die Produkte jeder Produktseite zwischenspeichert. + + + Purge Isotope request cache + Isotope Aufrufcache leeren + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + Leert die Tabelle <em>tl_iso_requestcache</em>, welche informationen vom Filtermodul für kurze URLs zwischenspeichert. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_member.php b/system/modules/isotope/languages/de/tl_member.php deleted file mode 100644 index dea1578df6..0000000000 --- a/system/modules/isotope/languages/de/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + Adressbuch + + + Manage the address book for member ID %s. + Dieses Adressbuch verwalten. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_module.php b/system/modules/isotope/languages/de/tl_module.php deleted file mode 100644 index d934985bea..0000000000 --- a/system/modules/isotope/languages/de/tl_module.php +++ /dev/null @@ -1,152 +0,0 @@ -iso_list_.'; -$GLOBALS['TL_LANG']['tl_module']['iso_reader_layout'][0] = 'Produktleser-Template'; -$GLOBALS['TL_LANG']['tl_module']['iso_reader_layout'][1] = 'Bitte wählen Sie ein Leser-Template. Leser-Templates beginnen mit iso_reader_.'; -$GLOBALS['TL_LANG']['tl_module']['iso_gallery'][0] = 'Galerie'; -$GLOBALS['TL_LANG']['tl_module']['iso_gallery'][1] = 'Wählen Sie eine Galerie, um die Bilder zu rendern (Überschreibt die Produkttyp-Einstellung).'; -$GLOBALS['TL_LANG']['tl_module']['iso_collectionTpl'][0] = 'Produktsammlung-Template'; -$GLOBALS['TL_LANG']['tl_module']['iso_collectionTpl'][1] = 'Bitte wählen Sie ein Template aus, um die Produkte zu rendern. Sie können eigene Templates in den Ordner templates hinzufügen. Templates für Sammlungen beginnen mit iso_collection_.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterTpl'][0] = 'Filter-Template'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterTpl'][1] = 'Bitte wählen Sie ein Filter-Template. Filter-Templates beginnen mit iso_filter_.'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][0] = 'Zum ersten Produkt weiterleiten'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][1] = 'Klicken Sie hier wenn Nutzer zum ersten Produkt der Liste weitergeleitet werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][0] = 'Ausblenden bei Produktansicht'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][1] = 'Blendet die Liste aus, wenn ein Produkt-Alias in der URL gefunden wird.'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][0] = 'Menge aktivieren'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][1] = 'Ermöglicht es den Nutzern anzugeben, dass 1 oder mehrere Stück eines Produkts gekauft werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'][0] = 'Eine 404 Fehlerseite anzeigen'; -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'][1] = 'Die 404-Fehlerseite anzeigen falls kein Produktalias in der URL vorhanden ist. Verwenden Sie diese Einstellung falls das Leser-Modul auf einer separaten Seite verwendet wird, die sonst nicht aufgerufen werden darf.'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][0] = 'Bestellvorgang-Art'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][1] = 'Wählen Sie eine Bestellvorgang-Art'; -$GLOBALS['TL_LANG']['tl_module']['iso_loginRequired'][0] = 'Login erforderlich machen'; -$GLOBALS['TL_LANG']['tl_module']['iso_loginRequired'][1] = 'Aktivieren Sie diese Checkbox, wenn ein Login für die Ansicht dieses Moduls erzwungen werden soll (z.B. wenn eine Bestellung zu einem Mitglied gehört).'; -$GLOBALS['TL_LANG']['tl_module']['iso_login_jumpTo'][0] = 'Anmeldeseite'; -$GLOBALS['TL_LANG']['tl_module']['iso_login_jumpTo'][1] = 'Wählen Sie die Seite auf der sich der Nutzer anmelden kann.'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][0] = '"In den Warenkorb"-Weiterleitungsseite hinzufügen'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][1] = 'Diese Einstellung gibt an, zu welcher Seite - außer der gerade aktiven - der Nutzer weitergeleitet wird, wenn er ein Produkt in den Warenkorb legt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][0] = 'Spalten'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][1] = 'Geben sie an wieviele Spalten der Breite nach im Listen-Template angezeigt werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][0] = 'Shop-Konfiguration'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][1] = 'Bitte wählen Sie für welche Shop-Konfiguration dieses Modul genutzt werden soll.'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][0] = 'Shop-Konfigurationen'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][1] = 'Bitte wählen Sie für welche Shop-Konfigurationen dieses Modul genutzt werden soll.'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][0] = 'Zahlungsarten'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][1] = 'Bitte wählen Sie eine oder mehrere Zahlungsarten für dieses Kassen-Modul.'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][0] = 'Versandarten'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][1] = 'Bitte wählen Sie eine oder mehrere Versandarten für diese Bestellvorgang-Module'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][0] = 'Bestellbestätigungs-Weiterleitungsseite'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][1] = 'Wählen Sie eine Seite aus, zu der der Kunde weitergeleitet wird, wenn seine Bestellung abgeschlossen wurde.'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][0] = 'Weiterleiten zur Bestätigungsseite'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][1] = 'Den Nutzer zur Bestätigungsseite weiterleiten, wenn alle benötigten Daten vorhanden sind.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][0] = 'Bestellbedingungsformular'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][1] = 'Optional: Wählen Sie ein individuelles Formular das genutzt werden soll um Bestellbedingungen (z. B. AGB, Widerrufsbelehrung, etc.) anzuzeigen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position'][0] = 'Position des Formulars für die Bestellbedingungen'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position'][1] = 'Definieren Sie, ob die Bestellbedingungen vor oder nach der Produktliste angezeigt werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['top'] = 'Oben (Vor Adresse)'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['before'] = 'Vor Produktliste'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['after'] = 'Nach Produktliste'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][0] = 'Zum Adressbuch hinzufügen'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][1] = 'Neue Adressen zum Mitglieder-Adressbuch hinzufügen (wenn angemeldet)'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][0] = 'Sortierung'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][1] = 'Definieren Sie, in welcher Reihenfolge die Einträge einer Sammlung aufgelistet werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][0] = 'Leer-Nachricht angeben'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][1] = 'Legen Sie eine individuelle Nachricht ein, falls keine Produkte angezeigt werden.'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][0] = 'Nachricht für leere Listen'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][1] = 'Geben Sie eine individuelle Nachricht ein die angezeigt wird, wenn keine Produkte anzuzeigen sind.'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyFilter'][0] = 'Definieren Sie eine Nachricht wenn kein Filter gesetzt ist'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyFilter'][1] = 'Eigene Nachricht zeigen, wenn kein Filter gesetzt ist.'; -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'][0] = 'Nachricht wenn kein Filter gesetzt ist'; -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'][1] = 'Geben Sie eine eigene Nachricht ein, welche angezeigt wird, wenn kein Filter gesetzt ist.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][0] = 'Kategorie-Anwendungsbereich'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][1] = 'Spezifizieren Sie den Anwendungsbereich diese Produktliste.'; -$GLOBALS['TL_LANG']['tl_module']['iso_list_where'][0] = 'Bedingung'; -$GLOBALS['TL_LANG']['tl_module']['iso_list_where'][1] = 'Geben Sie eine SQL-Bedingung zum filtern der Produkte ein. Sie müssen die Felder mit "tl_iso_product." beginnen (z. B. tl_iso_product.featured=1 oder tl_iso_product.color!=\'red\')!'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][0] = 'Filter-Module'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][1] = 'Wählen Sie die Filter-Module die Sie für diese Produkt-Liste in Betracht ziehen wollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][0] = 'Aktivierte Filter'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][1] = 'Bitte wählen Sie welche Filter aktiviert werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields'][0] = 'Filter-Konfiguration'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields'][1] = 'Konfigurieren Sie die Felder des Einschränkenden Filters.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['attribute'][0] = 'Attribute'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType'][0] = 'Abfrage-Typ'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType']['and'] = 'AND'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType']['or'] = 'OR'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount'][0] = 'Anzahl der Ergebnisse'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount']['none'] = 'Nicht anzeigen'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount']['all'] = 'Zeige alle'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount']['new'] = 'Unterschied anzeigen'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][0] = 'Einzelne Auswahlen verstecken'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][1] = 'Feld für Filter verstecken, wenn nur eine Auswahl'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][0] = 'Aktivierte Suchfelder'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][1] = 'Bitte wählen Sie welche Suchfelder aktiviert werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][0] = 'Suchfeld mit Autovervollständigung'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][1] = 'Wenn Sie hier ein Feld auswählen, wird die Suche mit den Werten dieses Feldes autovervollständigt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][0] = 'Aktivierte Sortierfelder'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][1] = 'Bitte wählen Sie welche Sortierfelder aktiviert werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][0] = 'Filterung für neue Produkte'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][1] = 'Wenn Sie die Möglichkeit in Ihrem Shop konfiguriert haben, Produkte als "neu" zu kennzeichnen, können Sie entweder nach alten, neuen oder nach allen Produkten filtern.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_all'] = 'Zeige alle Produkte'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_new'] = 'Zeige nur die neuen Produkte'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_old'] = 'Zeige alte Produkte'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][0] = '"Pro Seite"-Limit aktivieren'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][1] = 'Ermäglichen Sie es den Nutzern, dass sie auswählen wieviele Einträge pro Seite angezeigt werden.'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][0] = '"Pro Seite"-Optionen'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][1] = 'Geben Sie eine kommaseparierte Liste für das Limit-Dropdown ein. Die erste Option wird als Standardwert genutzt. Werte werden automatisch nach der Nummer sortiert.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][0] = 'Weiterleitungs-Seite für Warenkorb'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][1] = 'Diese Einstellung gibt an, zu welcher Seite der Nutzer weitergeleitet wird, wenn er den kompletten Warenkorb sehen möchte.'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][0] = 'Weiterleitungs-Seite für Bestellvorgang'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][1] = 'Diese Einstellung gibt an, zu welcher Seite der Nutzer weitergeleitet wird, wenn er die Bestellung abschließt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][0] = 'Anfängliches Sortierfeld'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][1] = 'Wählen Sie auf Basis welches Sortierfeldes die Liste beim ersten Laden der Seite sortiert werden soll.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][0] = 'Anfängliche Sortierrichtung'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][1] = 'Wählen Sie eine anfängliche Sortierrichtung.'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][0] = 'Schaltflächen'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][1] = 'Wählen Sie welche Schaltflächen angezeigt werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][0] = 'Ähnliche Kategorien'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][1] = 'Wählen Sie Kategorien aus denen Produkte angezeigt werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][0] = 'Nachrichten einbinden'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][1] = 'Diese Einstellung ermöglicht es dem Modul Fehler, Hinweise oder Bestätigungen anzuzeigen, die der Besucher sehen sollte.'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][0] = '"Einkauf fortsetzen"-Schaltfläche aktivieren'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][1] = 'Link zum gerade hinzugefügten Produkt hinzufügen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_address'][0] = 'Adresstypen'; -$GLOBALS['TL_LANG']['tl_module']['iso_address'][1] = 'Bitte wählen Sie die Adresstypen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['billing'] = 'Rechnungsadresse'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['shipping'] = 'Versandadresse'; -$GLOBALS['TL_LANG']['tl_module']['iso_addressFields'][0] = 'Verfügbare Adressfelder'; -$GLOBALS['TL_LANG']['tl_module']['iso_addressFields'][1] = 'Wählen Sie die Adressfelder aus, die angezeigt werden sollen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_legend'] = 'Bestellbedingungsformular'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['member'] = 'Anmelden/Registrieren erforderlich'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['guest'] = 'Nur Gast-Bestellungen'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['both'] = 'Beides erlaubt'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][0] = 'Alle Kategorien'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][1] = 'Zeige alle Produkte, welche einer Seite des aktiven Seitenbaumes zugewiesen sind (Basierend auf der Wurzelseite).'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][0] = 'Aktive Kategorie und "Erstes Kind"-Kategorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][1] = 'Zeige alle Produkte, welche der aktiven Seite oder Unterseiten der ersten Ebene des Seitenbaumes zugewiesen sind.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][0] = 'Aktive Kategorie und "Alle Kinder"-Kategorien'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][1] = 'Zeige alle Produkte, welche der aktiven Seite oder einer Unterseite des aktiven Seitenbaumes zugewiesen sind.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][0] = 'Aktive Kategorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][1] = 'Zeige alle Produkte, welche der aktiven Seite zugewiesen sind (Standard).'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][0] = 'Eltern-Kategorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][1] = 'Zeige alle Produkte, welche der Elternseite der aktiven Seite zugewiesen sind.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][0] = 'Kategorien des aktiven Produkts'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][1] = 'Zeige alle Produkte, welche der selben Seite als das Produkt zugewiesen sind.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['article'][0] = 'Kategorie des Artikels'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['article'][1] = 'Wenn Sie dieses Modul in einem Artikel plazieren, werden die Produkte der Artikel-Elternseite angezeigt (z.B. falls der Artikel per InsertTag auf einer anderen Seite verwendet wird).'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['ASC'] = 'Aufwärts'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['DESC'] = 'Abwärts'; diff --git a/system/modules/isotope/languages/de/tl_module.xlf b/system/modules/isotope/languages/de/tl_module.xlf new file mode 100644 index 0000000000..aa8d2c18f6 --- /dev/null +++ b/system/modules/isotope/languages/de/tl_module.xlf @@ -0,0 +1,574 @@ + + + + + Product list template + Produktlisten-Template + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + Bitte wählen Sie ein Listen-Layout. Listen-Templates beginnen mit <em>iso_list_</em>. + + + Product reader template + Produktleser-Template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + Bitte wählen Sie ein Leser-Template. Leser-Templates beginnen mit <em>iso_reader_</em>. + + + Gallery + Galerie + + + Select a gallery to render images (overrides the product type config). + Wählen Sie eine Galerie, um die Bilder zu rendern (Überschreibt die Produkttyp-Einstellung). + + + Product collection template + Produktsammlung-Template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + Bitte wählen Sie ein Template aus, um die Produkte zu rendern. Sie können eigene Templates in den Ordner <em>templates</em> hinzufügen. Templates für Sammlungen beginnen mit <em>iso_collection_</em>. + + + Filter template + Filter-Template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + Bitte wählen Sie ein Filter-Template. Filter-Templates beginnen mit <em>iso_filter_</em>. + + + Redirect to first product + Zum ersten Produkt weiterleiten + + + Check here if users are redirected to the first product of the list. + Klicken Sie hier wenn Nutzer zum ersten Produkt der Liste weitergeleitet werden sollen. + + + Hide in reader mode + Ausblenden bei Produktansicht + + + Hide product list when a product alias is found in the URL. + Blendet die Liste aus, wenn ein Produkt-Alias in der URL gefunden wird. + + + Enable quantity + Menge aktivieren + + + Allow users to specify 1 or more of a product to be purchased. + Ermöglicht es den Nutzern anzugeben, dass 1 oder mehrere Stück eines Produkts gekauft werden sollen. + + + Display a 404 page + Eine 404 Fehlerseite anzeigen + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + Die 404-Fehlerseite anzeigen falls kein Produktalias in der URL vorhanden ist. Verwenden Sie diese Einstellung falls das Leser-Modul auf einer separaten Seite verwendet wird, die sonst nicht aufgerufen werden darf. + + + Checkout method + Bestellvorgang-Art + + + Choose your checkout method. + Wählen Sie eine Bestellvorgang-Art + + + Require login + Login erforderlich machen + + + A member login is required to view this page (e.g. if the order belongs to a member). + Aktivieren Sie diese Checkbox, wenn ein Login für die Ansicht dieses Moduls erzwungen werden soll (z.B. wenn eine Bestellung zu einem Mitglied gehört). + + + Login page + Anmeldeseite + + + Select the page where a member can login. + Wählen Sie die Seite auf der sich der Nutzer anmelden kann. + + + Add product jump to page + "In den Warenkorb"-Weiterleitungsseite hinzufügen + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + Diese Einstellung gibt an, zu welcher Seite - außer der gerade aktiven - der Nutzer weitergeleitet wird, wenn er ein Produkt in den Warenkorb legt. + + + Columns + Spalten + + + Enter a number of columns to display width-wise in the listing template. + Geben sie an wieviele Spalten der Breite nach im Listen-Template angezeigt werden sollen. + + + Store configuration + Shop-Konfiguration + + + Select the store configuration that this module will be used for. + Bitte wählen Sie für welche Shop-Konfiguration dieses Modul genutzt werden soll. + + + Store configurations + Konfigurationen + + + Select the store configurations that this module will be used for. + Bitte wählen Sie für welche Shop-Konfigurationen dieses Modul genutzt werden soll. + + + Payment methods + Zahlungsarten + + + Select one or more payment methods for this checkout module. + Bitte wählen Sie eine oder mehrere Zahlungsarten für dieses Kassen-Modul. + + + Shipping methods + Versandarten + + + Select one or more shipping methods for this checkout module. + Bitte wählen Sie eine oder mehrere Versandarten für diese Bestellvorgang-Module + + + Completed order jump to page + Bestellbestätigungs-Weiterleitungsseite + + + Select a page the customer will be referred to after their order is complete. + Wählen Sie eine Seite aus, zu der der Kunde weitergeleitet wird, wenn seine Bestellung abgeschlossen wurde. + + + Forward to review page + Weiterleiten zur Bestätigungsseite + + + Forward the user to the review page if no data is required on any step. + Den Nutzer zur Bestätigungsseite weiterleiten, wenn alle benötigten Daten vorhanden sind. + + + Skip checkout steps + Bestell-Schritte überspringen + + + Enable individual options to skip certain checkout steps if possible + Wählen Sie die gewünschten Optionen um Bestellschritte zu überspringen + + + Use member address as billing address if user is logged in + Mitglied-Adresse als Rechnungsadresse verwenden, wenn Mitglied angemeldet ist + + + Always use billing address as shipping address + Rechnungsadresse als Versandadresse verwenden + + + Skip shipping step if only one shippig method is available + Versandschritt überspringen wenn nur eine Versandmethode verfügbar ist + + + Skip payment step if only one payment method is available + Bezahlschritt überspringen wenn nur eine Bezahlmethode verfügbar ist + + + Order conditions form + Bestellbedingungsformular + + + Choose a custom form that is used to display your order terms and conditions (optional). + Optional: Wählen Sie ein individuelles Formular das genutzt werden soll um Bestellbedingungen (z. B. AGB, Widerrufsbelehrung, etc.) anzuzeigen. + + + Position of order conditions form + Position des Formulars für die Bestellbedingungen + + + Define if the order condition form should be shown before or after the products list. + Definieren Sie, ob die Bestellbedingungen vor oder nach der Produktliste angezeigt werden sollen. + + + On top (before address) + Oben (Vor Adresse) + + + Before products list + Vor Produktliste + + + After products list + Nach Produktliste + + + Add to address book + Zum Adressbuch hinzufügen + + + Add new addresses to members address book (if logged in). + Neue Adressen zum Mitglieder-Adressbuch hinzufügen (wenn angemeldet) + + + Sorting + Sortierung + + + Define in what order the collection items should be listed. + Definieren Sie, in welcher Reihenfolge die Einträge einer Sammlung aufgelistet werden sollen. + + + Define empty message + Leer-Nachricht angeben + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + Legen Sie eine individuelle Nachricht ein, falls keine Produkte angezeigt werden. + + + Message when empty + Nachricht für leere Listen + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + Geben Sie eine individuelle Nachricht ein die angezeigt wird, wenn keine Produkte anzuzeigen sind. + + + Define a message if no filter is set + Definieren Sie eine Nachricht wenn kein Filter gesetzt ist + + + Set a custom message when there is no filter set. + Eigene Nachricht zeigen, wenn kein Filter gesetzt ist. + + + Message when no filter is set + Nachricht wenn kein Filter gesetzt ist + + + Enter a custom message if there is no filter set. + Geben Sie eine eigene Nachricht ein, welche angezeigt wird, wenn kein Filter gesetzt ist. + + + Category Scope + Kategorie-Anwendungsbereich + + + Specify the scope of a product lister. + Spezifizieren Sie den Anwendungsbereich diese Produktliste. + + + Condition + Bedingung + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + Geben Sie eine SQL-Bedingung zum filtern der Produkte ein. Sie müssen die Felder mit "tl_iso_product." beginnen (z. B. <em>tl_iso_product.featured=1</em> oder <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + Filter-Module + + + Select the filter modules you want to consider for this product list. + Wählen Sie die Filter-Module die Sie für diese Produkt-Liste in Betracht ziehen wollen. + + + Enabled filters + Aktivierte Filter + + + Please select filters to enable. + Bitte wählen Sie welche Filter aktiviert werden sollen. + + + Filter configuration + Filter-Konfiguration + + + Please configure the cumulative filter fields. + Konfigurieren Sie die Felder des Einschränkenden Filters. + + + Attribute + Attribute + + + Query Type + Abfrage-Typ + + + AND + AND + + + OR + OR + + + Number of results + Anzahl der Ergebnisse + + + Do not show + Nicht anzeigen + + + Show total + Zeige alle + + + Show difference + Unterschied anzeigen + + + Hide single options + Einzelne Auswahlen verstecken + + + Hide filter field if there is just one option. + Feld für Filter verstecken, wenn nur eine Auswahl + + + Enabled search fields + Aktivierte Suchfelder + + + Please select search fields to enable. + Bitte wählen Sie welche Suchfelder aktiviert werden sollen. + + + Autocomplete search field + Suchfeld mit Autovervollständigung + + + If you select a field here, the search will be autocompleted by the values of that field. + Wenn Sie hier ein Feld auswählen, wird die Suche mit den Werten dieses Feldes autovervollständigt. + + + Enabled sorting fields + Aktivierte Sortierfelder + + + Please select orderable fields to enable. + Bitte wählen Sie welche Sortierfelder aktiviert werden sollen. + + + Filtering for new products + Filterung für neue Produkte + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + Wenn Sie die Möglichkeit in Ihrem Shop konfiguriert haben, Produkte als "neu" zu kennzeichnen, können Sie entweder nach alten, neuen oder nach allen Produkten filtern. + + + Show all products + Zeige alle Produkte + + + Only show new products + Zeige nur die neuen Produkte + + + Only show old products + Zeige alte Produkte + + + Enable per-page limiting + "Pro Seite"-Limit aktivieren + + + Allow the user to select the number of records to show per page. + Ermäglichen Sie es den Nutzern, dass sie auswählen wieviele Einträge pro Seite angezeigt werden. + + + Per page options + "Pro Seite"-Optionen + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + Geben Sie eine kommaseparierte Liste für das Limit-Dropdown ein. Die erste Option wird als Standardwert genutzt. Werte werden automatisch nach der Nummer sortiert. + + + Shopping Cart Jump to page + Weiterleitungs-Seite für Warenkorb + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + Diese Einstellung gibt an, zu welcher Seite der Nutzer weitergeleitet wird, wenn er den kompletten Warenkorb sehen möchte. + + + Checkout Jump to page + Weiterleitungs-Seite für Bestellvorgang + + + This setting defines to which page a user will be redirected when completing their transaction. + Diese Einstellung gibt an, zu welcher Seite der Nutzer weitergeleitet wird, wenn er die Bestellung abschließt. + + + Initial sorting field + Anfängliches Sortierfeld + + + Select a sorting field to sort the listing by on first page load. + Wählen Sie auf Basis welches Sortierfeldes die Liste beim ersten Laden der Seite sortiert werden soll. + + + Initial sorting direction + Anfängliche Sortierrichtung + + + Select a initial sorting direction. + Wählen Sie eine anfängliche Sortierrichtung. + + + Buttons + Schaltflächen + + + Select the buttons you want to show. + Wählen Sie welche Schaltflächen angezeigt werden sollen. + + + Related categories + Verknüpfte Kategorien + + + Select the categories to show products of. + Wählen Sie Kategorien aus denen Produkte angezeigt werden sollen. + + + Include messaging + Nachrichten einbinden + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + Diese Einstellung ermöglicht es dem Modul Fehler, Hinweise oder Bestätigungen anzuzeigen, die der Besucher sehen sollte. + + + Enable "Continue shopping" button + "Einkauf fortsetzen"-Schaltfläche aktivieren + + + Add a link to the currently added product to the cart. + Link zum gerade hinzugefügten Produkt hinzufügen. + + + Address types + Adresstypen + + + Please choose the address types. + Bitte wählen Sie die Adresstypen. + + + Billing address + Rechnungsadresse + + + Shipping address + Versandadresse + + + Available address fields + Verfügbare Adressfelder + + + Choose the available address fields you would like to display. + Wählen Sie die Adressfelder aus, die angezeigt werden sollen. + + + Order conditions form + Bestellbedingungsformular + + + Login/Registration required + Anmelden/Registrieren erforderlich + + + Guest checkout only + Nur Gast-Bestellungen + + + Both allowed + Beides erlaubt + + + All Categories + Alle Kategorien + + + Show all products that are assigned to a page of the active page tree (based on the root page). + Zeige alle Produkte, welche einer Seite des aktiven Seitenbaumes zugewiesen sind (Basierend auf der Wurzelseite). + + + Current Category and First Child Category + Aktive Kategorie und "Erstes Kind"-Kategorie + + + Show all products that are assigned to the active page or child pages on the first sublevel. + Zeige alle Produkte, welche der aktiven Seite oder Unterseiten der ersten Ebene des Seitenbaumes zugewiesen sind. + + + Current Category and All Child Categories + Aktive Kategorie und "Alle Kinder"-Kategorien + + + Show all products that are assigned to the active page or any child page of it. + Zeige alle Produkte, welche der aktiven Seite oder einer Unterseite des aktiven Seitenbaumes zugewiesen sind. + + + Current Category + Aktive Kategorie + + + Show all products that are assigned to the active page (default). + Zeige alle Produkte, welche der aktiven Seite zugewiesen sind (Standard). + + + Parent Category + Eltern-Kategorie + + + Show all products that are assigned to the parent page of the active page. + Zeige alle Produkte, welche der Elternseite der aktiven Seite zugewiesen sind. + + + Current Product's Categories + Kategorien des aktiven Produkts + + + Show all products that are assigned to the same pages the currently active product is assigned to. + Zeige alle Produkte, welche der selben Seite als das Produkt zugewiesen sind. + + + Category of article + Kategorie des Artikels + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + Wenn Sie dieses Modul in einem Artikel plazieren, werden die Produkte der Artikel-Elternseite angezeigt (z.B. falls der Artikel per InsertTag auf einer anderen Seite verwendet wird). + + + ASC + Aufwärts + + + DESC + Abwärts + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_nc_notification.php b/system/modules/isotope/languages/de/tl_nc_notification.php deleted file mode 100644 index eb6b464421..0000000000 --- a/system/modules/isotope/languages/de/tl_nc_notification.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Product collection template + Produktsammlung-Template + + + Please choose a template to render the products for the notification content. + Bitte wählen Sie ein Template aus, um die Produkte für die Benachrichtigung zu rendern. + + + Sorting + Sortierung + + + Define in what order the collection items should be listed. + Definieren Sie, in welcher Reihenfolge die Einträge einer Sammlung aufgelistet werden sollen. + + + Gallery + Galerie + + + Select a gallery to render images. + Wählen Sie eine Galerie, um die Bilder zu rendern. + + + Document + Dokument + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + Wenn Sie der Benachrichtigung ein Dokument hinzufügen möchten, wählen Sie hier eines aus und nutzen Sie die Simple-Tokens im Benachrichtigungscenter. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + Änderung Bestellstatus + + + This notification type can be sent when the order status changes. + Dieser Benachrichtigungstyp kann gesendet werden, wenn sich der Status der Bestellung ändert. + + + Addressbook change + Adressbuchänderung + + + This notification type can be sent when the customer makes changes in his addressbook. + Dieser Benachrichtigungstyp kann gesendet werden, wenn der Kunde eine Änderung im Adressbuch macht. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_page.php b/system/modules/isotope/languages/de/tl_page.php deleted file mode 100644 index 51c370c9b0..0000000000 --- a/system/modules/isotope/languages/de/tl_page.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + Store Configuration + Shop-Konfiguration + + + Select a store configuration for this page structure. + Eine Shop-Konfiguration für diese Seitenstruktur wählen. + + + Use reader page + Detailseite benutzen + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + Die Konfiguration dieser Seite überschreiben wenn Produktdetails angezeigt werden. Sehen Sie in der Hilfe der Seitenauswahl für nähere Informationen nach. + + + Reader page + Detailseite + + + Select a page for your page reader. + Wählen Sie eine Seite als Detailseite aus. + + + Store ID + Shop-ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Nutzen Sie verschiedene Shop-IDs um einen Shop auf mehrere Wurzelseiten zu gruppieren. Der Warenkorb und die Adressen eines Mitgliedes werden über die gleiche Store-ID geteilt. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_settings.php b/system/modules/isotope/languages/de/tl_settings.php deleted file mode 100644 index 7dc4759d65..0000000000 --- a/system/modules/isotope/languages/de/tl_settings.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Guest cart timeout + Zeitlimit für Gäste-Warenkorb + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + Geben Sie die Lebensdauer für einen Gäste-Warenkorb in Sekunden ein (30 Tage = 2592000 Sekunden). + + + Order timeout + Zeitlimit für Bestellungen + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + Geben Sie an wie lange unvollständige Bestellungen gespeichert werden (in Sekunden; 7 Tage = 604800 Sekunden). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_user.php b/system/modules/isotope/languages/de/tl_user.php deleted file mode 100644 index f56f23b728..0000000000 --- a/system/modules/isotope/languages/de/tl_user.php +++ /dev/null @@ -1,48 +0,0 @@ - + + + + Isotope modules + Isotope-Module + + + Select which store configuration modules user of this group can access. + Wählen Sie auf welche Shop-Konfigurationsmodule die Benutzer Zugriff haben. + + + Allowed product types + Produkttypen + + + Here you can grant access to one or more product types. + Benutzer können nur Produkte und Produkttypen sehen, die Sie aktivieren. + + + Product type permissions + Produkttyp-Berechtigungen + + + Here you can define the product type permissions. + Hier können Sie die Berechtigungen für den Produkttyp definieren. + + + Allowed payment modules + Erlaubte Zahlungsarten + + + Here you can grant access to one or more payment modules. + Hier können Sie den Zugriff auf ein oder mehrere Zahlungsarten erlauben. + + + Payment module permissions + Zahlungsarten-Berechtigungen + + + Here you can define the payment module permissions. + Hier können Sie die Berechtigung für eine Zahlungsart definieren. + + + Allowed shipping modules + Erlaubte Versandarten + + + Here you can grant access to one or more shipping modules. + Hier können Sie den Zugriff auf eine oder mehrere Versandarten erlauben. + + + Shipping module permissions + Versandarten-Berechtigungen + + + Here you can define the shipping module permissions. + Hier können Sie die Berechtigungen für die Versandarten definieren. + + + Allowed tax classes + Erlaubte Steuerklassen + + + Here you can grant access to one or more tax classes. + Hier können Sie den Zugriff auf eine oder mehrere Steuerklassen erlauben. + + + Tax class permissions + Steuerklassen-Berechtigungen + + + Here you can define the tax class permissions. + Hier können Sie die Berechtigungen für die Steuerklassen definieren. + + + Allowed tax rates + Erlaubte Steuersätze + + + Here you can grant access to one or more tax rates. + Hier können Sie den Zugriff auf eine oder mehrere Steuersätze erlauben. + + + Tax rate permissions + Steuersätze-Berechtigungen + + + Here you can define the tax rate permissions. + Hier können Sie die Berechtigungen für die Steuersätze definieren. + + + Allowed store configurations + Shop-Konfigurationen + + + Here you can grant access to one or more store configurations. + Benutzer können Bestellungen aus diesen Shop-Konfigurationen sehen. + + + Store configuration permissions + Shop-Konfiguration-Berechtigungen + + + Her you can define the store configuration permissions. + Hier können Sie die Berechtigungen für die Shop-Konfigurationen definieren. + + + Allowed product groups + Erlaubte Produktgruppen + + + Limit access to product groups for this user group. Gets inherited. + Zugriff auf Produktegruppen für diese Benutzergruppe limitieren. Wird vererbt. + + + Product group permissions + Produktgruppen-Berechtigungen + + + Here you can define the product group permissions. + Hier können Sie die Berechtigungen für die Produktgruppen definieren. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + Zugriff auf oberste Ebene + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tl_user_group.php b/system/modules/isotope/languages/de/tl_user_group.php deleted file mode 100644 index 47095c686b..0000000000 --- a/system/modules/isotope/languages/de/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/de/tokens.php b/system/modules/isotope/languages/de/tokens.php deleted file mode 100644 index 439eb6bcc5..0000000000 --- a/system/modules/isotope/languages/de/tokens.php +++ /dev/null @@ -1,45 +0,0 @@ - + + + + The order's unique ID. + Eindeutige ID der Bestellung + + + The label of the order's current status. + Bezeichnung des derzeitigen Status der Bestellung. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + Bezeichnung des vorherigen Bestellstatus. Nützlich beispielsweise für „Bestellstatus änderte sich von x zu y“. + + + The ID of the order's current status. + Die ID des derzeitigen Status der Bestellung. + + + The ID of the order's previous status. + ID des vorherigen Status der Bestellung. + + + The email address of the recipient. + Die E-Mail-Adresse des Empfängers. + + + The ID of the order. + Die ID der Bestellung. + + + The number of items (quantities summed up) in the order. + Die Anzahl der Artikel (Anzahl aufsummiert) in der Bestellung. + + + The number of individual products in the order. + Die Anzahl von individuellen Produkten in der Bestellung. + + + The order's subtotal. + Zwischensumme der Bestellung. + + + The order's total. + Gesamtsumme der Bestellung. + + + The order document number. + Die Dokumentennummer der Bestellung. + + + Order/Cart as text. + Bestellung/Warenkorb im Text-Format. + + + Order/Cart as HTML. + Bestellung/Warenkorb in HTML. + + + The document that should be attached (e.g. an invoice). + Das Dokument, welches angehängt werden soll (z. B. eine Rechnung). + + + All the collection/order column fields as stored in the database + Alle Collection/Bestell-Spalten-Felder wie in der Datenbank gespeichert. + + + Formatted billing address. + Formatierte Rechnungsanschrift + + + All the billing address model fields. + Alle Rechnungsadresse-Model-Felder. + + + Formatted shipping address. + Formatierte Versandanschrift + + + All the shipping address model fields. + Alle Versandadresse-Model-Felder. + + + All the order condition form fields. + Alle Bestellbedingungen-Formular-Felder. + + + Payment method ID. + ID der Zahlungsart. + + + Payment method label. + Zahlungsart-Beschriftung. + + + Payment method note. + Notiz zur Zahlungsart. + + + Shipping method ID. + ID der Versandart. + + + Shipping method label. + Versandart-Name. + + + Shipping method note. + Versandart-Hinweis. + + + All the store configuration fields. + Alle Shop-Konfiguration-Felder. + + + All the member fields if it was a member checkout. + Alle Mitglieder-Felder wenn es die Bestellung eines Migliedes war. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/en/addresses.php b/system/modules/isotope/languages/en/addresses.php index 30bbbe605e..cc8c405d5b 100644 --- a/system/modules/isotope/languages/en/addresses.php +++ b/system/modules/isotope/languages/en/addresses.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ /** diff --git a/system/modules/isotope/languages/en/default.php b/system/modules/isotope/languages/en/default.php deleted file mode 100755 index 4bc72724c4..0000000000 --- a/system/modules/isotope/languages/en/default.php +++ /dev/null @@ -1,465 +0,0 @@ -From %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'View Details'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Products Per Page'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Keywords'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Submit'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Clear Filters'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Update'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Add To Cart'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Order By:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'No products have been found.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Back'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Continue'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Order'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'No categories are associated with this product.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Submit'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Remove'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'There are no items in your cart.'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'The selected product has been added to your shopping cart.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'The products from your last visit have been readded. Please review your shopping cart items.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Remove %s from your cart'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Order Subtotal: '; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Shipping'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Payment'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Order Total: '; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'No payment options are currently available'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'No shipping options are currently available.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'No orders emails found.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'No orders found.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s downloads remaining'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Shopping Cart'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Proceed to Checkout'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Continue shopping'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Update Cart'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Order Status: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Go back to step "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Create New Address'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Use billing address'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Use customer address'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Different shipping address'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Edit'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Delete'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Do you really want to delete this address? This cannot be undone.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Invoice'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Status'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Order date'; -$GLOBALS['TL_LANG']['MSC']['iso_order_document_number'] = 'Order number'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Description'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Quantity'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Price'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Total'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'lo to hi'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'hi to lo'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'A to Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'Z to A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'earlier to later'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'later to earlier'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Processing payment'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][1] = 'You will be redirected to the payment gateway website.'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Pay now'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][3] = 'Please click on the "Pay now" button to continue.'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Click here to view this PayPal transaction online'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 Product'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s Products'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Enter your shipping information or select an existing address.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Enter your billing information or select an existing address.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Enter your billing information'; -$GLOBALS['TL_LANG']['MSC']['customer_address_message'] = 'Enter your customer information or select an existing address.'; -$GLOBALS['TL_LANG']['MSC']['customer_address_guest_message'] = 'Enter your customer information'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Select a shipping method.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Please select a shipping method.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_message'] = 'Enter your payment information.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_missing'] = 'Please select a payment method.'; -$GLOBALS['TL_LANG']['MSC']['order_review_message'] = 'Review and confirm your order details.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Address'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Shipping'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Payment'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Review'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Billing Address'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Shipping Address'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Billing & Shipping Address'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Customer Address'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Shipping Method'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Payment Method'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Order Review'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Change'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Credit card number'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Credit card type'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'CCV number (3 or 4 digit code)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Expiration month'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Expiration year'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = 'Payment module not found!'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNotFound'] = 'Shipping module not found!'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNoInfo'] = 'This payment module does not provide additional information.'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNoInfo'] = 'This shipping module does not provide additional information.'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Use default value'; -$GLOBALS['TL_LANG']['MSC']['activeStep'] = 'active step: '; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Loading products...'; -$GLOBALS['TL_LANG']['MSC']['productcacheNoscript'] = 'Your browser does not support JavaScript. Please click here to load the product list.'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'No files in this folder'; -$GLOBALS['TL_LANG']['MSC']['assetImportConfirmation'] = 'Imported file %s for product "%s"'; -$GLOBALS['TL_LANG']['MSC']['assetImportNoFilesFound'] = 'The folder did not contain any files to be imported.'; -$GLOBALS['TL_LANG']['MSC']['loadingProductData'] = 'Loading product data …'; -$GLOBALS['TL_LANG']['MSC']['templatesConfig'] = 'Store Config "%s"'; -$GLOBALS['TL_LANG']['MSC']['splittedTaxRate'] = 'Splitted'; -$GLOBALS['TL_LANG']['MSC']['newOrders'] = 'You have %s order(s) with status "%s"'; -$GLOBALS['TL_LANG']['MSC']['checkoutStep'] = 'Step %s of %s (%s) - '; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minutes'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Hours'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Days'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Weeks'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Months'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Years'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroductionLegend'] = 'Introduction'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Welcome to Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][1] = 'Isotope is the premier open source eCommerce solution for Contao.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][2] = 'This is the page where most of the configuration will take place. You should start from the bottom of this page and work your way upward from right to left.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][3] = 'Visit the official Isotope eCommerce website for the latest news, configuration manuals and our fundraising campaigns. Thank you so much for considering giving something back!'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][4] = 'The Isotope eCommerce Team'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][5] = 'Isotope is a product of %s in association with the Isotope eCommerce Team.'; - -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_id'] = 'by date added (ascending)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_id'] = 'by date added (descending)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_tstamp'] = 'by date updated (ascending)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_tstamp'] = 'by date updated (descending)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_name'] = 'by product name (ascending)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_name'] = 'by product name (descending)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_price'] = 'by price (ascending)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_price'] = 'by price (descending)'; - -$GLOBALS['TL_LANG']['MSC']['noShippingAddress'] = 'Please fill in the shipping address.'; -$GLOBALS['TL_LANG']['MSC']['noShippingRequiredMsg'] = 'None of the products in your shopping cart require shipping!'; -$GLOBALS['TL_LANG']['MSC']['availableShippingMethodsMsg'] = 'The following shipping methods are available for your current shopping cart and the shipping address details you provided:'; -$GLOBALS['TL_LANG']['MSC']['saveAddressButton'] = 'Save address'; -$GLOBALS['TL_LANG']['MSC']['billpay_agb_de'] = 'Mit der Übermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die Billpay GmbH bin ich einverstanden. Es gelten die Datenschutzbestimmungen von Billpay.'; -$GLOBALS['TL_LANG']['MSC']['billpay_agb_ch'] = 'Mit der Übermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die Billpay GmbH bin ich einverstanden. Es gelten die Datenschutzbestimmungen von Billpay.'; -$GLOBALS['TL_LANG']['MSC']['billpay_agb_at'] = 'Mit der Übermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die Billpay GmbH bin ich einverstanden. Es gelten die Datenschutzbestimmungen von Billpay.'; - - -/** - * Content elements - */ -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; - -/** - * Shipping methods - */ -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping.flat'] = array('Flat-price shipping', 'This is the default shipping method for regular shipping.'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping.group'] = array('Shipping group', 'With this method, you can group multiple shipping methods into one and calculate the price based on them.'); - -/** - * Payment methods - */ -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.cash'] = array('Cash', 'Use this for all offline processed payment.'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.paybyway'] = array('Paybyway', 'Implements payment provider Paybyway.'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.paypal'] = array('PayPal Standard Checkout', 'This PayPal module supports IPN (Instant Payment Notifications).'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.postfinance'] = array('PostFinance', 'Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions.'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.viveum'] = array('VIVEUM', 'Payment gateway for VIVEUM Zahlungssysteme GmbH.'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.datatrans'] = array('Datatrans', 'A payment module for the swiss payment gateway "Datatrans".'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.innopay'] = array('Innopay', 'A payment module for the swiss payment gateway "Innocard".'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.sparkasse'] = array('Sparkasse'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.saferpay'] = array('Saferpay'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.billpay_saferpay'] = array('BillPay (using Saferpay)'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.sofortueberweisung'] = array('sofortüberweisung.de'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.expercash'] = array('ExperCash'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.epay'] = array('ePay', 'Implements payment provider ePay.'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.payone'] = array('PayOne'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.worldpay'] = array('WorldPay'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.quickpay'] = array('QuickPay'); - -/** - * Documents - */ -$GLOBALS['TL_LANG']['MODEL']['tl_iso_document.standard'] = array('Standard'); - -/** - * Galleries - */ -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery.standard'] = array('Default gallery', '

Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.

You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.

'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery.inline'] = array('Inline gallery', 'Clicking on a gallery image will replace the main image.'); -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery.elevatezoom'] = array('Elevate Zoom gallery', 'A gallery that zooms on the image on hover. See the script website for more information.'); - -/** - * Product types - */ -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product.standard'] = array('Standard product', 'A default product. Select this if nothing else matches.'); - -/** - * Vat No Validators - */ -$GLOBALS['TL_LANG']['ISO_VAT']['eu_vies'] = 'European VAT Number (VIES)'; - -/** - * Credit card types - */ -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['enroute'] = 'EnRoute'; -$GLOBALS['TL_LANG']['CCT']['carte_blanche'] = 'Carte Blanche'; -$GLOBALS['TL_LANG']['CCT']['jal'] = 'JAL'; -$GLOBALS['TL_LANG']['CCT']['maestro'] = 'Maestro UK'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['solo'] = 'Solo'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['CCT']['dankort'] = 'Dankort'; -$GLOBALS['TL_LANG']['CCT']['laser'] = 'Laser'; -$GLOBALS['TL_LANG']['CCT']['carte_bleue'] = 'Carte Bleue'; -$GLOBALS['TL_LANG']['CCT']['carta_si'] = 'Carta Si'; -$GLOBALS['TL_LANG']['CCT']['enc_acct_num'] = 'Encoded Account Number'; -$GLOBALS['TL_LANG']['CCT']['uatp'] = 'Universal Air Travel Program'; -$GLOBALS['TL_LANG']['CCT']['maestro_intl'] = 'Maestro International'; -$GLOBALS['TL_LANG']['CCT']['ge_money_uk'] = 'GE Money UK'; - -/** - * Attributes - */ -$GLOBALS['TL_LANG']['ATTR']['text'] = array('Text field', 'A single-line input field for a short or medium text.'); -$GLOBALS['TL_LANG']['ATTR']['textarea'] = array('Textarea', 'A multi-line input field for a medium or long text.'); -$GLOBALS['TL_LANG']['ATTR']['select'] = array('Select menu', 'A single- or multi-line drop-down menu.
This field type is suitable for product variants.'); -$GLOBALS['TL_LANG']['ATTR']['radio'] = array('Radio button menu', 'A list of multiple options from which one can be selected.
This field type is suitable for product variants.'); -$GLOBALS['TL_LANG']['ATTR']['checkbox'] = array('Checkbox menu', 'A list of multiple options from which any can be selected.'); -$GLOBALS['TL_LANG']['ATTR']['mediaManager'] = array('Media Manager', 'Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class.'); -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'] = array('Conditional Select-Menu', 'show select-options based on another select menu.'); -$GLOBALS['TL_LANG']['ATTR']['fileTree'] = array('File tree', 'A file tree for single or multiple files and folders.'); -$GLOBALS['TL_LANG']['ATTR']['downloads'] = array('Downloads', 'Download files from the product, e.g. manuals, data sheets etc.'); -$GLOBALS['TL_LANG']['ATTR']['upload'] = array('File upload', 'A single-line input field to upload a local file to the server.'); -$GLOBALS['TL_LANG']['ATTR']['media'] = array('Video/Audio', 'Generates a video or audio player.'); - -/** - * Currencies - */ -$GLOBALS['TL_LANG']['CUR']['AED'] = 'AED - United Arab Emirates Dirham'; -$GLOBALS['TL_LANG']['CUR']['AFN'] = 'AFN - Afghani'; -$GLOBALS['TL_LANG']['CUR']['ALL'] = 'ALL - Lek'; -$GLOBALS['TL_LANG']['CUR']['AMD'] = 'AMD - Dram'; -$GLOBALS['TL_LANG']['CUR']['ANG'] = 'ANG - Netherlands Antilles Guilder'; -$GLOBALS['TL_LANG']['CUR']['AOA'] = 'AOA - Kwanza'; -$GLOBALS['TL_LANG']['CUR']['ARS'] = 'ARS - Argentinian Nuevo Peso'; -$GLOBALS['TL_LANG']['CUR']['AUD'] = 'AUD - Australian Dollar'; -$GLOBALS['TL_LANG']['CUR']['AWG'] = 'AWG - Aruban Guilder'; -$GLOBALS['TL_LANG']['CUR']['AZN'] = 'AZN - Azerbaijani Manat'; -$GLOBALS['TL_LANG']['CUR']['BAM'] = 'BAM - Convertible Mark'; -$GLOBALS['TL_LANG']['CUR']['BBD'] = 'BBD - Barbados Dollar'; -$GLOBALS['TL_LANG']['CUR']['BDT'] = 'BDT - Taka'; -$GLOBALS['TL_LANG']['CUR']['BGN'] = 'BGN - Bulgarian Lev'; -$GLOBALS['TL_LANG']['CUR']['BHD'] = 'BHD - Bahraini Dinar'; -$GLOBALS['TL_LANG']['CUR']['BIF'] = 'BIF - Burundi Franc'; -$GLOBALS['TL_LANG']['CUR']['BMD'] = 'BMD - Bermudian Dollar'; -$GLOBALS['TL_LANG']['CUR']['BND'] = 'BND - Brunei Dollar'; -$GLOBALS['TL_LANG']['CUR']['BOB'] = 'BOB - Boliviano'; -$GLOBALS['TL_LANG']['CUR']['BRL'] = 'BRL - Brazilian real'; -$GLOBALS['TL_LANG']['CUR']['BSD'] = 'BSD - Bahamian Dollar'; -$GLOBALS['TL_LANG']['CUR']['BTN'] = 'BTN - Ngultrum'; -$GLOBALS['TL_LANG']['CUR']['BWP'] = 'BWP - Pula'; -$GLOBALS['TL_LANG']['CUR']['BYR'] = 'BYR - Belarussian Rouble'; -$GLOBALS['TL_LANG']['CUR']['BZD'] = 'BZD - Belize Dollar'; -$GLOBALS['TL_LANG']['CUR']['CAD'] = 'CAD - Canadian Dollar'; -$GLOBALS['TL_LANG']['CUR']['CDF'] = 'CDF - Congolese Franc'; -$GLOBALS['TL_LANG']['CUR']['CHF'] = 'CHF - Swiss Franc'; -$GLOBALS['TL_LANG']['CUR']['CLF'] = 'CLF - Unidades de Fomento'; -$GLOBALS['TL_LANG']['CUR']['CLP'] = 'CLP - Chilean Peso'; -$GLOBALS['TL_LANG']['CUR']['CNY'] = 'CNY - Yuan Renminbi'; -$GLOBALS['TL_LANG']['CUR']['COP'] = 'COP - Colombian Peso'; -$GLOBALS['TL_LANG']['CUR']['CRC'] = 'CRC - Costa Rican Colón'; -$GLOBALS['TL_LANG']['CUR']['CUC'] = 'CUC - Peso Convertible'; -$GLOBALS['TL_LANG']['CUR']['CUP'] = 'CUP - Cuban Peso'; -$GLOBALS['TL_LANG']['CUR']['CVE'] = 'CVE - Escudo Caboverdiano'; -$GLOBALS['TL_LANG']['CUR']['CZK'] = 'CZK - Czech Koruna'; -$GLOBALS['TL_LANG']['CUR']['DJF'] = 'DJF - Djibouti Franc'; -$GLOBALS['TL_LANG']['CUR']['DKK'] = 'DKK - Danish Krone'; -$GLOBALS['TL_LANG']['CUR']['DOP'] = 'DOP - Dominican Republic Peso'; -$GLOBALS['TL_LANG']['CUR']['DZD'] = 'DZD - Algerian Dinar'; -$GLOBALS['TL_LANG']['CUR']['EGP'] = 'EGP - Egyptian Pound'; -$GLOBALS['TL_LANG']['CUR']['ERN'] = 'ERN - Eritrean Nakfa'; -$GLOBALS['TL_LANG']['CUR']['ETB'] = 'ETB - Ethiopian Birr'; -$GLOBALS['TL_LANG']['CUR']['EUR'] = 'EUR - Euro'; -$GLOBALS['TL_LANG']['CUR']['FJD'] = 'FJD - Fiji Dollar'; -$GLOBALS['TL_LANG']['CUR']['FKP'] = 'FKP - Falkland Pound'; -$GLOBALS['TL_LANG']['CUR']['GBP'] = 'GBP - Pound Sterling'; -$GLOBALS['TL_LANG']['CUR']['GEL'] = 'GEL - Lari'; -$GLOBALS['TL_LANG']['CUR']['GHS'] = 'GHS - Ghanaian cedi'; -$GLOBALS['TL_LANG']['CUR']['GIP'] = 'GIP - Gibraltar Pound'; -$GLOBALS['TL_LANG']['CUR']['GMD'] = 'GMD - Dalasi'; -$GLOBALS['TL_LANG']['CUR']['GNF'] = 'GNF - Guinea Franc'; -$GLOBALS['TL_LANG']['CUR']['GTQ'] = 'GTQ - Quetzal'; -$GLOBALS['TL_LANG']['CUR']['GYD'] = 'GYD - Guyana Dollar'; -$GLOBALS['TL_LANG']['CUR']['HKD'] = 'HKD - Hong Kong Dollar'; -$GLOBALS['TL_LANG']['CUR']['HNL'] = 'HNL - Lempira'; -$GLOBALS['TL_LANG']['CUR']['HRD'] = 'HRD - Croatian Dinar'; -$GLOBALS['TL_LANG']['CUR']['HRK'] = 'HRK - Croatian Kuna'; -$GLOBALS['TL_LANG']['CUR']['HTG'] = 'HTG - Gourde'; -$GLOBALS['TL_LANG']['CUR']['HUF'] = 'HUF - Forint'; -$GLOBALS['TL_LANG']['CUR']['IDR'] = 'IDR - Rupiah'; -$GLOBALS['TL_LANG']['CUR']['ILS'] = 'ILS - Shekel'; -$GLOBALS['TL_LANG']['CUR']['INR'] = 'INR - Indian Rupee'; -$GLOBALS['TL_LANG']['CUR']['IQD'] = 'IQD - Iraqi Dinar'; -$GLOBALS['TL_LANG']['CUR']['IRR'] = 'IRR - Iranian Rial'; -$GLOBALS['TL_LANG']['CUR']['ISK'] = 'ISK - Icelandic Króna'; -$GLOBALS['TL_LANG']['CUR']['JMD'] = 'JMD - Jamaican Dollar'; -$GLOBALS['TL_LANG']['CUR']['JOD'] = 'JOD - Jordanian Dinar'; -$GLOBALS['TL_LANG']['CUR']['JPY'] = 'JPY - Yen'; -$GLOBALS['TL_LANG']['CUR']['KES'] = 'KES - Kenyan Shilling'; -$GLOBALS['TL_LANG']['CUR']['KGS'] = 'KGS - Kyrgyzstani Som'; -$GLOBALS['TL_LANG']['CUR']['KHR'] = 'KHR - Riel'; -$GLOBALS['TL_LANG']['CUR']['KMF'] = 'KMF - Comorian Franc'; -$GLOBALS['TL_LANG']['CUR']['KPW'] = 'KPW - Democratic People\'s Republic of Korean Won'; -$GLOBALS['TL_LANG']['CUR']['KRW'] = 'KRW - Republic of Korean Won'; -$GLOBALS['TL_LANG']['CUR']['KWD'] = 'KWD - Kuwaiti Dinar'; -$GLOBALS['TL_LANG']['CUR']['KYD'] = 'KYD - Cayman Islands Dollar'; -$GLOBALS['TL_LANG']['CUR']['KZT'] = 'KZT - Tenge'; -$GLOBALS['TL_LANG']['CUR']['LAK'] = 'LAK - Kip'; -$GLOBALS['TL_LANG']['CUR']['LBP'] = 'LBP - Lebanese Pound'; -$GLOBALS['TL_LANG']['CUR']['LKR'] = 'LKR - Sri Lankan Rupee'; -$GLOBALS['TL_LANG']['CUR']['LRD'] = 'LRD - Liberian Dollar'; -$GLOBALS['TL_LANG']['CUR']['LSL'] = 'LSL - Loti'; -$GLOBALS['TL_LANG']['CUR']['LTL'] = 'LTL - Litas'; -$GLOBALS['TL_LANG']['CUR']['LVL'] = 'LVL - Lats'; -$GLOBALS['TL_LANG']['CUR']['LYD'] = 'LYD - Libyan Dinar'; -$GLOBALS['TL_LANG']['CUR']['MAD'] = 'MAD - Moroccan Dirham'; -$GLOBALS['TL_LANG']['CUR']['MDL'] = 'MDL - Moldavian Leu'; -$GLOBALS['TL_LANG']['CUR']['MGA'] = 'MGA - Malagasy ariary'; -$GLOBALS['TL_LANG']['CUR']['MKD'] = 'MKD - Macedonian Dinar'; -$GLOBALS['TL_LANG']['CUR']['MMK'] = 'MMK - Kyat'; -$GLOBALS['TL_LANG']['CUR']['MNT'] = 'MNT - Tugrik'; -$GLOBALS['TL_LANG']['CUR']['MOP'] = 'MOP - Pataca'; -$GLOBALS['TL_LANG']['CUR']['MRO'] = 'MRO - Ouguiya'; -$GLOBALS['TL_LANG']['CUR']['MUR'] = 'MUR - Mauritius Rupee'; -$GLOBALS['TL_LANG']['CUR']['MVR'] = 'MVR - Rufiyaa'; -$GLOBALS['TL_LANG']['CUR']['MWK'] = 'MWK - Malawian Kwacha'; -$GLOBALS['TL_LANG']['CUR']['MXN'] = 'MXN - Mexican Peso'; -$GLOBALS['TL_LANG']['CUR']['MYR'] = 'MYR - Ringgit (Malaysian Dollar)'; -$GLOBALS['TL_LANG']['CUR']['MZN'] = 'MZN - Mozambican metical'; -$GLOBALS['TL_LANG']['CUR']['NAD'] = 'NAD - Namibia Dollar'; -$GLOBALS['TL_LANG']['CUR']['NGN'] = 'NGN - Naira'; -$GLOBALS['TL_LANG']['CUR']['NIO'] = 'NIO - Cordoba Oro'; -$GLOBALS['TL_LANG']['CUR']['NOK'] = 'NOK - Norwegian Krone'; -$GLOBALS['TL_LANG']['CUR']['NPR'] = 'NPR - Nepalese Rupee'; -$GLOBALS['TL_LANG']['CUR']['NZD'] = 'NZD - New Zealand Dollar'; -$GLOBALS['TL_LANG']['CUR']['OMR'] = 'OMR - Omani Rial'; -$GLOBALS['TL_LANG']['CUR']['PAB'] = 'PAB - Balboa'; -$GLOBALS['TL_LANG']['CUR']['PEN'] = 'PEN - New Sol'; -$GLOBALS['TL_LANG']['CUR']['PGK'] = 'PGK - Kina'; -$GLOBALS['TL_LANG']['CUR']['PHP'] = 'PHP - Philippines Peso'; -$GLOBALS['TL_LANG']['CUR']['PKR'] = 'PKR - Pakistani Rupee'; -$GLOBALS['TL_LANG']['CUR']['PLN'] = 'PLN - Zloty'; -$GLOBALS['TL_LANG']['CUR']['PYG'] = 'PYG - Guarani'; -$GLOBALS['TL_LANG']['CUR']['QAR'] = 'QAR - Qatari Riyal'; -$GLOBALS['TL_LANG']['CUR']['RON'] = 'RON - Romanian New Leu'; -$GLOBALS['TL_LANG']['CUR']['RSD'] = 'RSD - Serbian Dinar'; -$GLOBALS['TL_LANG']['CUR']['RUB'] = 'RUB - Russian Federation Rouble'; -$GLOBALS['TL_LANG']['CUR']['RWF'] = 'RWF - Rwandan Franc'; -$GLOBALS['TL_LANG']['CUR']['SAR'] = 'SAR - Saudi Riyal'; -$GLOBALS['TL_LANG']['CUR']['SBD'] = 'SBD - Solomon Islands Dollar'; -$GLOBALS['TL_LANG']['CUR']['SCR'] = 'SCR - Seychelles Rupee'; -$GLOBALS['TL_LANG']['CUR']['SDG'] = 'SDG - Sudanese Pound'; -$GLOBALS['TL_LANG']['CUR']['SEK'] = 'SEK - Swedish Krona'; -$GLOBALS['TL_LANG']['CUR']['SGD'] = 'SGD - Singapore Dollar'; -$GLOBALS['TL_LANG']['CUR']['SHP'] = 'SHP - St. Helena Pound'; -$GLOBALS['TL_LANG']['CUR']['SLL'] = 'SLL - Leone'; -$GLOBALS['TL_LANG']['CUR']['SOS'] = 'SOS - Somali Shilling'; -$GLOBALS['TL_LANG']['CUR']['SRD'] = 'SRD - Surinamese Dollar'; -$GLOBALS['TL_LANG']['CUR']['SSP'] = 'SSP - South Sudanese Pound'; -$GLOBALS['TL_LANG']['CUR']['STD'] = 'STD - Dobra'; -$GLOBALS['TL_LANG']['CUR']['SVC'] = 'SVC - El Salvador Colon'; -$GLOBALS['TL_LANG']['CUR']['SYP'] = 'SYP - Syrian Pound'; -$GLOBALS['TL_LANG']['CUR']['SZL'] = 'SZL - Lilangeni'; -$GLOBALS['TL_LANG']['CUR']['THB'] = 'THB - Baht'; -$GLOBALS['TL_LANG']['CUR']['TJS'] = 'TJS - Tajikistani Somoni'; -$GLOBALS['TL_LANG']['CUR']['TMT'] = 'TMT - Turkmenistani Manat'; -$GLOBALS['TL_LANG']['CUR']['TND'] = 'TND - Tunisian Dinar'; -$GLOBALS['TL_LANG']['CUR']['TOP'] = 'TOP - Pa\'anga'; -$GLOBALS['TL_LANG']['CUR']['TRY'] = 'TRY - New Turkish Lira'; -$GLOBALS['TL_LANG']['CUR']['TTD'] = 'TTD - Trinidad and Tobago Dollar'; -$GLOBALS['TL_LANG']['CUR']['TWD'] = 'TWD - Taiwan Dollar'; -$GLOBALS['TL_LANG']['CUR']['TZS'] = 'TZS - Tanzanian Shilling'; -$GLOBALS['TL_LANG']['CUR']['UAH'] = 'UAH - Hryvna'; -$GLOBALS['TL_LANG']['CUR']['UGX'] = 'UGX - Ugandan Shilling'; -$GLOBALS['TL_LANG']['CUR']['USD'] = 'USD - United States Dollar'; -$GLOBALS['TL_LANG']['CUR']['UYU'] = 'UYU - Uruguayan Peso'; -$GLOBALS['TL_LANG']['CUR']['UZS'] = 'UZS - Uzbekistani Som'; -$GLOBALS['TL_LANG']['CUR']['VEF'] = 'VEF - Bolivar Fuerte'; -$GLOBALS['TL_LANG']['CUR']['VND'] = 'VND - Viet Nam Dông'; -$GLOBALS['TL_LANG']['CUR']['VUV'] = 'VUV - Vatu'; -$GLOBALS['TL_LANG']['CUR']['WST'] = 'WST - Tala'; -$GLOBALS['TL_LANG']['CUR']['XCD'] = 'XCD - East Caribbean Dollar'; -$GLOBALS['TL_LANG']['CUR']['YER'] = 'YER - Yemeni Riyal'; -$GLOBALS['TL_LANG']['CUR']['ZAR'] = 'ZAR - Rand'; -$GLOBALS['TL_LANG']['CUR']['ZMK'] = 'ZMK - Zambian Kwacha'; -$GLOBALS['TL_LANG']['CUR']['ZWL'] = 'ZWL - Zimbabwe Dollar'; - -/** - * Currency symbols - */ -$GLOBALS['TL_LANG']['CUR_SYMBOL']['CHF'] = 'Fr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['DKK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['NOK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['SEK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; - diff --git a/system/modules/isotope/languages/en/default.xlf b/system/modules/isotope/languages/en/default.xlf new file mode 100644 index 0000000000..5548f82e9d --- /dev/null +++ b/system/modules/isotope/languages/en/default.xlf @@ -0,0 +1,1321 @@ + + + + + + Name "%s" is reserved for system use. Please choose a different name. + + + No store configuration available + + + Please create a default store configuration. + + + You have not yet placed any orders. + + + The requested order was not found. + + + You must be logged in to checkout. + + + A variant with this attributes is already available. Please select another combination. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + + + Please enter whole numbers or decimals optionally with a percentage. + + + Checkout failed. Please try again or choose another payment method. + + + You have no address book entries. + + + The minimum order amount is %s. Please add more products before checkout. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + + + This image has already been assigned to the fallback language. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + + + User checkout not allowed + + + This product is no longer available. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + + + Groups + + + Pages + + + Back to the group picker + + + Show all groups + + + There are no variants for this product. + + + Duplicate Fallback + + + Order no %s / %s + + + Your payment is being processed. Please be patient... + + + No files uploaded. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + + + Upload files + + + Processing dropped files... + + + Some records could not be deleted. + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + + + Tax-free + + + search products + + + Your downloadable products + + + <span class="from">From</span> %s + + + View Details + + + Reorder + + + Products Per Page + + + Keywords + + + Submit + + + Clear Filters + + + Update + + + Add To Cart + + + Add All To Cart + + + Update Cart + + + Add To Favorites + + + Remove From Favorites + + + Order By: + + + No products have been found. + + + Back + + + Continue + + + Order + + + No categories are associated with this product. + + + Submit + + + There are no items in your favorites list. + + + There are no items in your cart. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + + + The products from your last visit have been readded. Please review your shopping cart items. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + + + Remove + + + Remove %s from your cart + + + Order Subtotal: + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + + + No payment options are currently available + + + No shipping options are currently available. + + + No orders emails found. + + + No orders found. + + + <br />%s downloads remaining + + + Shopping Cart + + + Proceed to Checkout + + + Continue shopping + + + Update Cart + + + Order Status: %s + + + Go back to step "%s" + + + Create New Address + + + Use billing address + + + Use customer address + + + Different shipping address + + + Edit + + + Delete + + + Do you really want to delete this address? This cannot be undone. + + + Invoice + + + Status + + + Order date + + + Order number + + + Description + + + Quantity + + + Price + + + Total + + + lo to hi + + + hi to lo + + + A to Z + + + Z to A + + + earlier to later + + + later to earlier + + + Processing payment + + + You will be redirected to the payment gateway website. + + + Pay now + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + + + 1 Product + + + %s Products + + + Enter your shipping information or select an existing address. + + + Enter your billing information or select an existing address. + + + Enter your billing information + + + Enter your customer information or select an existing address. + + + Enter your customer information + + + Select a shipping method. + + + Please select a shipping method. + + + Enter your payment information. + + + Please select a payment method. + + + Review and confirm your order details. + + + Address + + + Shipping + + + Payment + + + Review + + + Billing Address + + + Shipping Address + + + Billing & Shipping Address + + + Customer Address + + + Shipping Method + + + Payment Method + + + Order Review + + + Change + + + Credit card number + + + Credit card type + + + CCV number (3 or 4 digit code) + + + Expiration month + + + Expiration year + + + Payment module not found! + + + Shipping module not found! + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + + + active step: + + + Loading products... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + + + Minutes + + + Hours + + + Days + + + Weeks + + + Months + + + Years + + + Introduction + + + Welcome to Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + + + Visa + + + American Express + + + Discover + + + JCB + + + Diner's Club + + + EnRoute + + + Carte Blanche + + + JAL + + + Maestro UK + + + Delta + + + Solo + + + Visa Electron + + + Dankort + + + Laser + + + Carte Bleue + + + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + + + A single-line input field for a short or medium text. + + + Textarea + + + A multi-line input field for a medium or long text. + + + Select menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + + + Kr. + + + € + + + £ + + + ¥ + + + Kr. + + + Kr. + + + $ + + + + diff --git a/system/modules/isotope/languages/en/exception.php b/system/modules/isotope/languages/en/exception.php deleted file mode 100644 index 25405f54c5..0000000000 --- a/system/modules/isotope/languages/en/exception.php +++ /dev/null @@ -1,20 +0,0 @@ -Please consider participating.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldFix3'] = 'Get an experienced Contao developer to migrate your data manually. We suggest to take a look at the Contao partner listing.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldExplain'] = 'Visit our website for more information about Isotope eCommerce.'; diff --git a/system/modules/isotope/languages/en/exception.xlf b/system/modules/isotope/languages/en/exception.xlf new file mode 100644 index 0000000000..1d3cea141e --- /dev/null +++ b/system/modules/isotope/languages/en/exception.xlf @@ -0,0 +1,28 @@ + + + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + diff --git a/system/modules/isotope/languages/en/explain.php b/system/modules/isotope/languages/en/explain.php deleted file mode 100755 index e1529448a3..0000000000 --- a/system/modules/isotope/languages/en/explain.php +++ /dev/null @@ -1,36 +0,0 @@ - - Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.
-
- The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:
-
- Option 1:
- Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there\'s a checkbox in the module settings). The reader will automatically be invisible if no reader is found.
- Advantage: Pretty simple to set up
- Disadvantage: The layout of reader and list will be identical, and you cannot have different article content for the two cases.
-
- Option 2:
- Set a reader page for every list page (product category) in the site structure. Be aware that the reader setting is not inherited! Add the reader module to this page as usual.
- Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.
- Advantage: You can have different page content and layout (e.g. different columns) for the reader page then the list page.
- Disadvantage: You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. -

'; - -$GLOBALS['TL_LANG']['XPL']['mediaManager'] = '

To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.

'; - -$GLOBALS['TL_LANG']['XPL']['noVariantAttributes'] = 'To use product variants with Isotope eCommerce, you must first configure the attributes.
Please refer to the manual for more information about attribute setup.'; - -$GLOBALS['TL_LANG']['XPL']['elevatezoom_position'] = 'Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: http://www.elevateweb.co.uk/image-zoom/examples#window-position

'; diff --git a/system/modules/isotope/languages/en/explain.xlf b/system/modules/isotope/languages/en/explain.xlf new file mode 100644 index 0000000000..b79535bf8f --- /dev/null +++ b/system/modules/isotope/languages/en/explain.xlf @@ -0,0 +1,35 @@ + + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + diff --git a/system/modules/isotope/languages/en/iso_upgrade.php b/system/modules/isotope/languages/en/iso_upgrade.php deleted file mode 100644 index 9724807370..0000000000 --- a/system/modules/isotope/languages/en/iso_upgrade.php +++ /dev/null @@ -1,16 +0,0 @@ -moo_mediabox or j_colorbox) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings.'; diff --git a/system/modules/isotope/languages/en/iso_upgrade.xlf b/system/modules/isotope/languages/en/iso_upgrade.xlf new file mode 100644 index 0000000000..7247a8c424 --- /dev/null +++ b/system/modules/isotope/languages/en/iso_upgrade.xlf @@ -0,0 +1,16 @@ + + + + + + Migration Assistant (Version: %s) + + + Update + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + diff --git a/system/modules/isotope/languages/en/modules.php b/system/modules/isotope/languages/en/modules.php deleted file mode 100755 index 35f1086c16..0000000000 --- a/system/modules/isotope/languages/en/modules.php +++ /dev/null @@ -1,63 +0,0 @@ - + + + + + Isotope eCommerce + + + Product management + + + Manage products for your Isotope eCommerce shop + + + Orders + + + See and manage orders for your shop + + + Store configuration + + + Setup and configure Isotope eCommerce to your needs + + + Isotope eCommerce + + + Product Filter + + + Define individual filters for Isotope such as category trees and product attribute filters. + + + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + + + Product Variant List + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + + + Product Reader + + + Product reader module. This is used to display product details. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + + + Checkout + + + Allow store customers to complete their transactions. + + + Address Book + + + Allow customers to manage their address book. + + + Order History + + + Order lister that allows customers to view their order history + + + Order Details + + + Order reader that allows customers to view order history details + + + Store Config Switcher + + + Switch between store configuration to change currency and other settings. + + + Related products + + + List products related to the current one. + + + Messages + + + Displays all Isotope messages if they have not been displayed elsewhere. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + + + Products + + + Attributes + + + Manage and create product attributes such as size, color, etc. + + + Product types + + + Manage and create product types from sets of attributes. + + + Related categories + + + Define categories for product relations. + + + Galleries + + + Define how you want the images in your product to be rendered. + + + Base prices + + + Define base price. + + + Checkout Flow + + + Shipping methods + + + Set up shipping methods. + + + Payment methods + + + Set up payment methods. + + + Tax classes + + + Set up Tax classes, which contain sets of Tax rates. + + + Tax rates + + + Set up tax rates based on things like shipping/billing location and order total. + + + General settings + + + Store configurations + + + Configure general settings for this store. + + + Order status + + + Define order status. + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + diff --git a/system/modules/isotope/languages/en/subdivisions.php b/system/modules/isotope/languages/en/subdivisions.php index 40618a9c19..0f8c29d750 100644 --- a/system/modules/isotope/languages/en/subdivisions.php +++ b/system/modules/isotope/languages/en/subdivisions.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ /** diff --git a/system/modules/isotope/languages/en/tl_iso_address.php b/system/modules/isotope/languages/en/tl_iso_address.php deleted file mode 100755 index 6081268c3b..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_address.php +++ /dev/null @@ -1,61 +0,0 @@ - + + + + + Store ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + + + Please enter a custom label for this address. + + + Gender + + + Please choose the gender. + + + Salutation + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + + + First name + + + Please enter the first name. + + + Last name + + + Please enter the last name. + + + Date of birth + + + Please enter the date of birth. + + + Company + + + You can enter a company name here. + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. + + + Phone number + + + Please enter the phone number. + + + E-mail address + + + Please enter a valid e-mail address. + + + Default billing address + + + Is this your default billing address? + + + Default shipping address + + + Is this your default shipping address? + + + Store + + + Personal data + + + Address details + + + Contact details + + + Default address + + + Personal data + + + Address details + + + Contact details + + + Default address + + + New address + + + Create a new address + + + Edit address + + + Edit address ID %s + + + Duplicate address + + + Duplicate address ID %s + + + Delete address + + + Delete address ID %s + + + Address details + + + Show details of address ID %s + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_attribute.php b/system/modules/isotope/languages/en/tl_iso_attribute.php deleted file mode 100755 index 282240a4b9..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_attribute.php +++ /dev/null @@ -1,108 +0,0 @@ -).'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'] = array('Date', 'Checks whether the input matches the global date format.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'] = array('Time', 'Checks whether the input matches the global time format.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'] = array('Date and time', 'Checks whether the input matches the global date and time format.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'] = array('Phone number', 'Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ).'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'] = array('E-mail address', 'Checks whether the input is a valid e-mail address.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'] = array('URL format', 'Checks whether the input is a valid URL.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'] = array('Price', 'Checks whether the input is a valid price.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'] = array('Discount', 'Checks whether the input is a valid discount.
Example: -10%, -10, +10, +10%'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'] = array('Surcharge', 'Checks whether the input is a valid surcharge.
Example: 10.00, 10%'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['custom'] = 'Custom order'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_asc'] = 'File name (ascending)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_desc'] = 'File name (descending)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_asc'] = 'Date (ascending)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_desc'] = 'Date (descending)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['random'] = 'Random order'; - -/** - * Buttons - */ -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'] = array('New attribute', 'Create a new attribute.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'] = array('Edit attribute', 'Edit attribute ID %s.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'] = array('Copy attribute', 'Copy attribute ID %s.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'] = array('Delete attribute', 'Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'] = array('Attribute details', 'Show details for attribute ID %s.'); -$GLOBALS['TL_LANG']['tl_iso_attribute']['deleteConfirm'] = 'Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager.'; - -/** - * Legends - */ -$GLOBALS['TL_LANG']['tl_iso_attribute']['attribute_legend'] = 'Attribute name & type'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['description_legend'] = 'Description'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['options_legend'] = 'Options'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['config_legend'] = 'Attribute configuration'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['search_filters_legend'] = 'Search & Filtering Settings'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['store_legend'] = 'Store file'; diff --git a/system/modules/isotope/languages/en/tl_iso_attribute.xlf b/system/modules/isotope/languages/en/tl_iso_attribute.xlf new file mode 100644 index 0000000000..f940ded536 --- /dev/null +++ b/system/modules/isotope/languages/en/tl_iso_attribute.xlf @@ -0,0 +1,547 @@ + + + + + + Name + + + Please enter a name for this attribute. + + + Internal name + + + Internal name is the database field name and must be unique. + + + Type + + + Please select a type for this attribute. + + + Field Group + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + + + Please select if this value defined by the customer (frontend). + + + Description + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + + + Default + + + Group + + + Options + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + + + The field must be filled when editing a product. + + + Multiple selection + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + + + Checks whether the input is a valid price. + + + Discount + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + + + Copy attribute ID %s. + + + Delete attribute + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + + + Show details for attribute ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + + + Description + + + Options + + + Attribute configuration + + + Search & Filtering Settings + + + Store file + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_attribute_option.php b/system/modules/isotope/languages/en/tl_iso_attribute_option.php deleted file mode 100755 index 9fcae8347d..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_attribute_option.php +++ /dev/null @@ -1,43 +0,0 @@ - + + + + + Type + + + Select a type for this label. + + + Option + + + Group + + + Default + + + Check here if this should be the default option. + + + Label + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_baseprice.php b/system/modules/isotope/languages/en/tl_iso_baseprice.php deleted file mode 100644 index 07783382c5..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_baseprice.php +++ /dev/null @@ -1,32 +0,0 @@ - + + + + + Name + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_config.php b/system/modules/isotope/languages/en/tl_iso_config.php deleted file mode 100755 index 5bed6c61a6..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_config.php +++ /dev/null @@ -1,113 +0,0 @@ - + + + + + Configuration Name + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + + + Please enter the first name (if applicable). + + + Last name + + + Please enter the last name (if applicable). + + + Company + + + You can enter a company name here (if applicable). + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + + + Please enter the phone number. + + + Shipping email address + + + Please enter a valid e-mail address. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + + + Address configuration + + + Configuration + + + Checkout + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + + + Images + + + URL settings + + + Products + + + Analytics + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_document.php b/system/modules/isotope/languages/en/tl_iso_document.php deleted file mode 100644 index 401adf5bab..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_document.php +++ /dev/null @@ -1,40 +0,0 @@ - + + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_download.php b/system/modules/isotope/languages/en/tl_iso_download.php deleted file mode 100644 index 0eabca18e3..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_download.php +++ /dev/null @@ -1,41 +0,0 @@ - + + + + + Attachement + + + Select the file or folder content you want to sell. + + + Downloads allowed + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + + + Add a new download to this product + + + Edit download + + + Edit download ID %s + + + Duplicate download + + + Duplicate download ID %s + + + Move download + + + Move download ID %s + + + Delete download + + + Delete download ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + + + Show details of download ID %s + + + Edit product + + + Edit this product + + + Paste at the top + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + + + Limits + + + Publishing + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_gallery.php b/system/modules/isotope/languages/en/tl_iso_gallery.php deleted file mode 100644 index 4ccb15aec6..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_gallery.php +++ /dev/null @@ -1,84 +0,0 @@ - + + + + + Name + + + Enter a name for this gallery. + + + Type + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_group.php b/system/modules/isotope/languages/en/tl_iso_group.php deleted file mode 100644 index 250233e2d6..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_group.php +++ /dev/null @@ -1,41 +0,0 @@ - + + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_integrity.php b/system/modules/isotope/languages/en/tl_iso_integrity.php deleted file mode 100755 index c0919e22b4..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_integrity.php +++ /dev/null @@ -1,37 +0,0 @@ -PIDs: %s.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['pricetable'][2] = 'There are no invalid prices in your database.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['variantorphans'][0] = 'Invalid product variants'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['variantorphans'][1] = 'You have %s variants that belong to products without active variant support.
IDs: %s'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['variantorphans'][2] = 'There are no invalid variants in your database.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['attributeoptionorphans'][0] = 'Invalid attribute options'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['attributeoptionorphans'][1] = 'You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.
IDs: %s'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['attributeoptionorphans'][2] = 'There are no invalid attribute options in your database.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['unusedrules'][0] = 'Rules module'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['unusedrules'][1] = 'The rules module should be disabled if you do not use it.'; -$GLOBALS['TL_LANG']['tl_iso_integrity']['unusedrules'][2] = 'The rules module is disabled or in use.'; diff --git a/system/modules/isotope/languages/en/tl_iso_integrity.xlf b/system/modules/isotope/languages/en/tl_iso_integrity.xlf new file mode 100644 index 0000000000..12ce904824 --- /dev/null +++ b/system/modules/isotope/languages/en/tl_iso_integrity.xlf @@ -0,0 +1,61 @@ + + + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_label.php b/system/modules/isotope/languages/en/tl_iso_label.php deleted file mode 100644 index 9a74380454..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_label.php +++ /dev/null @@ -1,35 +0,0 @@ - + + + + + Language + + + Please select a language. + + + Label + + + Enter the source label. + + + Replacement + + + Enter the replacement in the specified language. + + + New label + + + Create a new label + + + Edit label + + + Edit label ID %s + + + Duplicate label + + + Duplicate label ID %s + + + Delete label + + + Delete label ID %s + + + Label details + + + Show details of label ID %s + + + Label translation + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_orderstatus.php b/system/modules/isotope/languages/en/tl_iso_orderstatus.php deleted file mode 100644 index 0388324f79..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_orderstatus.php +++ /dev/null @@ -1,46 +0,0 @@ - + + + + + Name + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + + + E-Mail Notification + + + Payment Gateways + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_payment.php b/system/modules/isotope/languages/en/tl_iso_payment.php deleted file mode 100755 index 5b73207a20..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_payment.php +++ /dev/null @@ -1,149 +0,0 @@ -absolute URL to a dynamic template here.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_payment_method'] = array('Payment method', 'You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don\'t select anything at all here, the customer will have to choose the preferred payment method on the PSP interface!'); -$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'] = array('Require Card Code Verification (CCV) Number', 'Choose this option if you would like to increase transaction security by requiring the card code verification number.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['allowed_cc_types'] = array('Allowed Credit Card Types', 'Select which credit cards the payment method accepts.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_id'] = array('Merchant-ID', 'Please enter your merchant ID.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_sign'] = array('HMAC Key', 'Please enter your HMAC key from the Datatrans control panel.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['vads_site_id'] = array('Site Identifier', 'Please enter your payment site identifier.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['vads_certificate'] = array('Certificate', 'Please enter your TEST or PRODUCTION certificate.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod'] = array('Payment method', 'Please select a payment method for this method.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslmerchant'] = array('Seller ID', 'Please enter your seller ID (Händlerkennung).'); -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslpassword'] = array('Password', 'Please enter your SSL-Password.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_merchantref'] = array('Reference', 'A reference that will be shown on the seller details page instead of the cart ID.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_user_id'] = array('Customer ID', 'Your customer ID for sofortüberweisung.de'); -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_id'] = array('Project ID', 'Your project ID for sofortüberweisung.de'); -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_password'] = array('Projekt password', 'Your project password for sofortüberweisung.de'); -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_accountid'] = array('Saferpay Account-ID', 'Please enter your unique Saferpay account id.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_description'] = array('Checkout description', 'The customer will see this description on the Saferpay checkout page.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_vtconfig'] = array('Payment page configuration (VTCONFIG)', 'You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_paymentmethods'] = array('Payment methods', 'You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupId'] = array('ExperCash Popup-ID', 'Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_profile'] = array('ExperCash Profile', 'Geben Sie die dreistellige Profilnummer ein.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupKey'] = array('ExperCash Popup-Key', 'Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod'] = array('Transaktionsart', 'Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_css'] = array('CSS-Vorlage', 'Wählen Sie eine CSS-Datei für die Übergabe an ExperCash.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_merchantnumber'] = array('Merchant number', 'The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_windowstate'] = array('Integration type', 'Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_secretkey'] = array('Secret key', 'The secret key set up in your ePay configuration.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_clearingtype'] = array('Clearing type', 'Please choose a clearing type.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_aid'] = array('PAYONE subaccount ID (aid)', 'Please enter your unique PAYONE subaccount ID (aid).'); -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_portalid'] = array('PAYONE Portal ID', 'Please enter your unique PAYONE portal ID.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_key'] = array('Secret key', 'Enter the secret key you specified for this portal.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_instId'] = array('Installation ID', 'Please enter your WorldPay Installation ID'); -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_callbackPW'] = array('Transaction Password', 'Enter the same transaction password as in your WorldPay configuration.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_signatureFields'] = array('SignatureFields', 'Enter the same SignatureField value as in your WorldPay configuration.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_md5secret'] = array('MD5 Secret', 'Enter the same MD5 secret value as in your WorldPay configuration.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_description'] = array('Description', 'Enter a description for your store. It will be shown to the customer on the worldpay checkout process.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_merchantId'] = array('Merchant ID', 'Please enter your merchant ID.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_agreementId'] = array('Agreement ID', 'Please enter your agreement ID.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_apiKey'] = array('API key', 'Please enter your API key.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_privateKey'] = array('Private key', 'Please enter your private key.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_paymentMethods'] = array('Payment methods', 'Enter a configuration string to limit the payment methods. More Information.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['groups'] = array('Member groups', 'Restrict this payment method to certain member groups.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['protected'] = array('Protect payment method', 'Show the payment method to certain member groups only.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['guests'] = array('Show to guests only', 'Hide the payment method if a member is logged in.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['debug'] = array('Debug mode', 'For testing without actually capturing for payment.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled'] = array('Enabled', 'Check here if the payment method should be enabled in the store.'); - -/** - * Buttons - */ -$GLOBALS['TL_LANG']['tl_iso_payment']['new'] = array('New payment method', 'Create a new payment method'); -$GLOBALS['TL_LANG']['tl_iso_payment']['edit'] = array('Edit payment method', 'Edit payment method ID %s'); -$GLOBALS['TL_LANG']['tl_iso_payment']['copy'] = array('Copy payment method', 'Copy payment method ID %s'); -$GLOBALS['TL_LANG']['tl_iso_payment']['delete'] = array('Delete payment method', 'Delete payment method ID %s'); -$GLOBALS['TL_LANG']['tl_iso_payment']['toggle'] = array('Enable/disable payment method', 'Enable/disable payment method ID %s'); -$GLOBALS['TL_LANG']['tl_iso_payment']['show'] = array('Payment method details', 'Show details of payment method ID %s'); - -/** - * References - */ -$GLOBALS['TL_LANG']['tl_iso_payment']['capture'] = array('Authorize and Capture', 'Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['auth'] = array('Authorize Only', 'Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted.'); -$GLOBALS['TL_LANG']['tl_iso_payment']['no_shipping'] = 'Orders without shipping'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quantity_mode']['cart_items'] = 'Total quantity in cart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quantity_mode']['cart_products'] = 'Total products in cart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['onlyAvailable'] = 'Enable if only these product types are in cart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allAvailable'] = 'Enable if all these product types are in cart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['oneAvailable'] = 'Enable if one of these product types is in cart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['elv'] = 'Debit withdrawal'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['cc'] = 'Credit card'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['dc'] = 'Debit card'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['vor'] = 'Prepayment'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['rec'] = 'Invoice'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['sb'] = 'Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['wlt'] = 'e-Wallet (PayPal)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['fnc'] = 'Financing (BillSAFE Invoice)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['creditcard'] = 'Credit card'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['maestro'] = 'Debig card'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['directdebit'] = 'Direct debit'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['automatic_payment_method'] = 'Auswahl der Zahlart durch den Endkunden'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['elv_buy'] = 'Zahlung per Lastschrift (ELV)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['elv_authorize'] = 'Prüfung und Speicherung von Kontodaten zum späteren Einzug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['cc_buy'] = 'Kreditkartenzahlung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['cc_authorize'] = 'verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['giropay'] = 'Transaktion über giropay'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['sofortueberweisung'] = 'Transaktion über Sofortüberweisung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_hash_method']['sha1'] = 'SHA-1'; -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_hash_method']['sha256'] = 'SHA-256'; -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_hash_method']['sha512'] = 'SHA-512'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_windowstate_options'][3] = 'Full screen'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_windowstate_options'][4] = 'Integrated payment form'; - -/** - * Legends - */ -$GLOBALS['TL_LANG']['tl_iso_payment']['type_legend'] = 'Name & Type'; -$GLOBALS['TL_LANG']['tl_iso_payment']['note_legend'] = 'Additional notes'; -$GLOBALS['TL_LANG']['tl_iso_payment']['config_legend'] = 'General configuration'; -$GLOBALS['TL_LANG']['tl_iso_payment']['gateway_legend'] = 'Payment gateway configuration'; -$GLOBALS['TL_LANG']['tl_iso_payment']['price_legend'] = 'Price'; -$GLOBALS['TL_LANG']['tl_iso_payment']['template_legend'] = 'Template'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expert_legend'] = 'Expert settings'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled_legend'] = 'Approval'; diff --git a/system/modules/isotope/languages/en/tl_iso_payment.xlf b/system/modules/isotope/languages/en/tl_iso_payment.xlf new file mode 100644 index 0000000000..ff47b17d51 --- /dev/null +++ b/system/modules/isotope/languages/en/tl_iso_payment.xlf @@ -0,0 +1,664 @@ + + + + + + Payment Method Name + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this payment method to certain shop configurations. + + + Price + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + + + General configuration + + + Payment gateway configuration + + + Price + + + Template + + + Expert settings + + + Approval + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_product.php b/system/modules/isotope/languages/en/tl_iso_product.php deleted file mode 100755 index fc65010c72..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_product.php +++ /dev/null @@ -1,115 +0,0 @@ -There are two different ways this feature may be used:

-
    -
  1. The source folder you select contains files that either match the product\'s SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product\'s assets folder.
  2. -
  3. The source folder you select contains subfolders that either match the product\'s SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product\'s asset folder.
  4. -
-

Hint: Any developer can provide you with other matching rules than just the product\'s SKU or name.

-'; diff --git a/system/modules/isotope/languages/en/tl_iso_product.xlf b/system/modules/isotope/languages/en/tl_iso_product.xlf new file mode 100644 index 0000000000..71ff1c1e30 --- /dev/null +++ b/system/modules/isotope/languages/en/tl_iso_product.xlf @@ -0,0 +1,373 @@ + + + + + + Product ID + + + Categories + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + + + Product type + + + Select your product type. Product types are defined in the store configuration. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + + + Please enter the name of this product. + + + SKU + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + + + Teaser + + + Please enter the teaser. + + + Description + + + Please enter the product description. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + + + Check if item is not a shipped item (such as downloadable products). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + + + Click here to show this product on your website. + + + Start date + + + Do not show this product before the date specified. + + + Stop date + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + + + Please choose the folder where product assets are located. + + + Preview + + + Alternate text + + + Link target + + + Description + + + Translate + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + + + Show product variants + + + New product + + + Create new product + + + Add variant + + + Add new variant to a given product + + + Edit product + + + Edit product ID %s + + + Copy product + + + Copy product ID %s + + + Move product + + + Move product ID %s + + + Delete product + + + Delete product ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + + + Show details of product ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + + + Import images and other media from a folder + + + Manage prices + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + + + Generate variants for product ID %s + + + Related products + + + Manage related products for product ID %s + + + Downloads + + + Edit downloads for product ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + + + General Settings + + + Meta data + + + Pricing Settings + + + Inventory Settings + + + Shipping Settings + + + Product Options Settings + + + Media Management + + + Expert settings + + + Publishing + + + Quantity + + + from %s pcs. + + + Price + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_product_category.php b/system/modules/isotope/languages/en/tl_iso_product_category.php deleted file mode 100644 index d021313036..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_product_category.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + + Move product + + + Move product ID %s + + + Paste at the top + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_product_collection.php b/system/modules/isotope/languages/en/tl_iso_product_collection.php deleted file mode 100755 index 76f51648a2..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_product_collection.php +++ /dev/null @@ -1,72 +0,0 @@ -the Saferpay web interface.'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['saferpayStatusCancel'] = 'Saferpay payment cannot be canceled automatically. Use the Saferpay web interface to issue a refund.'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['noEmailData'] = 'No additional email data available.'; - -/** - * Legends - */ -$GLOBALS['TL_LANG']['tl_iso_product_collection']['status_legend'] = 'Order status'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['details_legend'] = 'Order details'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['email_legend'] = 'Email data'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['billing_address_legend'] = 'Billing address data'; -$GLOBALS['TL_LANG']['tl_iso_product_collection']['shipping_address_legend'] = 'Shipping address data'; diff --git a/system/modules/isotope/languages/en/tl_iso_product_collection.xlf b/system/modules/isotope/languages/en/tl_iso_product_collection.xlf new file mode 100644 index 0000000000..4cea607ff1 --- /dev/null +++ b/system/modules/isotope/languages/en/tl_iso_product_collection.xlf @@ -0,0 +1,166 @@ + + + + + + Order ID + + + Member (empty for guests) + + + Unique ID + + + Order status + + + Select the status of this order. + + + Placed + + + Source (Cart ID) + + + Payment date + + + Enter a date when this order has been paid. + + + Shipped date + + + Enter a date when this order has been shipped. + + + Shop configuration + + + Payment method + + + Shipping method + + + Billing address + + + Shipping address + + + Subtotal + + + Subtotal without tax + + + Total + + + Total without tax + + + Currency + + + Language + + + Order notes + + + If you would like to convey information to other backend users, please do so here. + + + Edit order + + + Edit order ID %s + + + Copy order + + + Copy order ID %s + + + Delete order + + + Delete order ID %s + + + Order details + + + Show details of order ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + + + Order details + + + Email data + + + Billing address data + + + Shipping address data + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_product_price.php b/system/modules/isotope/languages/en/tl_iso_product_price.php deleted file mode 100644 index 1a161ff156..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + + Price Tiers + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + + + Tax Class + + + Please select a tax class for this price. + + + Store configuration + + + Select a store configuration for this price. + + + Member group + + + Select a member group for this price. + + + Use from + + + Do not use the price on the website before this day. + + + Use until + + + Do not use the price on the website after this day. + + + Add price + + + Add a new price to this product + + + Edit price + + + Edit price ID %s + + + Duplicate price + + + Duplicate price ID %s + + + Delete price + + + Delete price ID %s + + + Price details + + + Show details of price ID %s + + + Quantity (min) + + + Price + + + Price + + + Limitations + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_producttype.php b/system/modules/isotope/languages/en/tl_iso_producttype.php deleted file mode 100755 index d125909658..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_producttype.php +++ /dev/null @@ -1,60 +0,0 @@ - + + + + + Name + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + + + Check here if this is the default product type. + + + Description + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_related_category.php b/system/modules/isotope/languages/en/tl_iso_related_category.php deleted file mode 100644 index 776618a906..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_related_category.php +++ /dev/null @@ -1,30 +0,0 @@ - + + + + + Category name + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Name + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_related_product.php b/system/modules/isotope/languages/en/tl_iso_related_product.php deleted file mode 100644 index d89311dfe7..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_related_product.php +++ /dev/null @@ -1,34 +0,0 @@ - + + + + + Category + + + Select a category. + + + Products + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + + + Add a new category with products + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Move category + + + Move category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Edit product + + + Edit this product + + + Category + + + Related products + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_shipping.php b/system/modules/isotope/languages/en/tl_iso_shipping.php deleted file mode 100755 index 3eb9d76642..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_shipping.php +++ /dev/null @@ -1,78 +0,0 @@ - + + + + + Shipping Method Name + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + + + Select a tax class that applies to the shipping price. + + + Label + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + + + Hide the module if a member is logged in. + + + Enabled + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_tax_class.php b/system/modules/isotope/languages/en/tl_iso_tax_class.php deleted file mode 100755 index 3067be25d5..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_tax_class.php +++ /dev/null @@ -1,37 +0,0 @@ - + + + + + Name + + + Give this tax class a name that explains what it is used for. + + + Default + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + + + Tax rates + + + + diff --git a/system/modules/isotope/languages/en/tl_iso_tax_rate.php b/system/modules/isotope/languages/en/tl_iso_tax_rate.php deleted file mode 100755 index 091c0f6b9f..0000000000 --- a/system/modules/isotope/languages/en/tl_iso_tax_rate.php +++ /dev/null @@ -1,53 +0,0 @@ - + + + + + Name + + + Enter a name for this tax rate. + + + Label + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + + + Shipping Address + + + Name + + + Rate + + + Location + + + Conditions + + + Configuration + + + + diff --git a/system/modules/isotope/languages/en/tl_maintenance.php b/system/modules/isotope/languages/en/tl_maintenance.php deleted file mode 100644 index 3c461c1d32..0000000000 --- a/system/modules/isotope/languages/en/tl_maintenance.php +++ /dev/null @@ -1,18 +0,0 @@ -tl_iso_productcache table which caches the products found for each product list on your page.'); -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'] = array('Purge Isotope request cache', 'Truncates the tl_iso_requestcache table which caches information from the filter module for short URLs.'); diff --git a/system/modules/isotope/languages/en/tl_maintenance.xlf b/system/modules/isotope/languages/en/tl_maintenance.xlf new file mode 100644 index 0000000000..a249b2f62b --- /dev/null +++ b/system/modules/isotope/languages/en/tl_maintenance.xlf @@ -0,0 +1,19 @@ + + + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + diff --git a/system/modules/isotope/languages/en/tl_member.php b/system/modules/isotope/languages/en/tl_member.php deleted file mode 100755 index 9bcdf85e3a..0000000000 --- a/system/modules/isotope/languages/en/tl_member.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + + Address Book + + + Manage the address book for member ID %s. + + + + diff --git a/system/modules/isotope/languages/en/tl_module.php b/system/modules/isotope/languages/en/tl_module.php deleted file mode 100755 index d4bbee6fc3..0000000000 --- a/system/modules/isotope/languages/en/tl_module.php +++ /dev/null @@ -1,102 +0,0 @@ -iso_list_.'); -$GLOBALS['TL_LANG']['tl_module']['iso_reader_layout'] = array('Product reader template', 'Please choose a reader template. Reader template files start with iso_reader_.'); -$GLOBALS['TL_LANG']['tl_module']['iso_gallery'] = array('Gallery', 'Select a gallery to render images (overrides the product type config).'); -$GLOBALS['TL_LANG']['tl_module']['iso_collectionTpl'] = array('Product collection template', 'Please choose a template to render the products. You can add custom collection templates to folder templates. Collection template files start with iso_collection_.'); -$GLOBALS['TL_LANG']['tl_module']['iso_filterTpl'] = array('Filter template', 'Please choose a filter template. Filter template files start with iso_filter_.'); -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'] = array('Redirect to first product', 'Check here if users are redirected to the first product of the list.'); -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'] = array('Hide in reader mode', 'Hide product list when a product alias is found in the URL.'); -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'] = array('Enable quantity', 'Allow users to specify 1 or more of a product to be purchased.'); -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'] = array('Display a 404 page', 'Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise.'); -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'] = array('Checkout method', 'Choose your checkout method.'); -$GLOBALS['TL_LANG']['tl_module']['iso_loginRequired'] = array('Require login', 'A member login is required to view this page (e.g. if the order belongs to a member).'); -$GLOBALS['TL_LANG']['tl_module']['iso_login_jumpTo'] = array('Login page', 'Select the page where a member can login.'); -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'] = array('Add product jump to page', 'This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page.'); -$GLOBALS['TL_LANG']['tl_module']['iso_cols'] = array('Columns', 'Enter a number of columns to display width-wise in the listing template.'); -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'] = array('Store configuration', 'Select the store configuration that this module will be used for.'); -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'] = array('Store configurations', 'Select the store configurations that this module will be used for.'); -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'] = array('Payment methods', 'Select one or more payment methods for this checkout module.'); -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'] = array('Shipping methods', 'Select one or more shipping methods for this checkout module.'); -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'] = array('Completed order jump to page', 'Select a page the customer will be referred to after their order is complete.'); -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'] = array('Forward to review page', 'Forward the user to the review page if no data is required on any step.'); -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'] = array('Order conditions form', 'Choose a custom form that is used to display your order terms and conditions (optional).'); -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position'] = array('Position of order conditions form', 'Define if the order condition form should be shown before or after the products list.'); -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'] = array('Add to address book', 'Add new addresses to members address book (if logged in).'); -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'] = array('Sorting', 'Define in what order the collection items should be listed.'); -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'] = array('Define empty message', 'Set a custom message when there is nothing to show (empty product list, empty cart, etc.).'); -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'] = array('Message when empty', 'Enter a custom message if there is nothing to show (empty product list, empty cart, etc.).'); -$GLOBALS['TL_LANG']['tl_module']['iso_emptyFilter'] = array('Define a message if no filter is set', 'Set a custom message when there is no filter set.'); -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'] = array('Message when no filter is set', 'Enter a custom message if there is no filter set.'); -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'] = array('Category Scope', 'Specify the scope of a product lister.'); -$GLOBALS['TL_LANG']['tl_module']['iso_list_where'] = array('Condition', 'Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. tl_iso_product.featured=1 or tl_iso_product.color!=\'red\')!'); -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'] = array('Filter modules', 'Select the filter modules you want to consider for this product list.'); -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'] = array('Enabled filters', 'Please select filters to enable.'); -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields'] = array('Filter configuration', 'Please configure the cumulative filter fields.'); -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'] = array('Hide single options', 'Hide filter field if there is just one option.'); -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'] = array('Enabled search fields', 'Please select search fields to enable.'); -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'] = array('Autocomplete search field', 'If you select a field here, the search will be autocompleted by the values of that field.'); -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'] = array('Enabled sorting fields', 'Please select orderable fields to enable.'); -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'] = array('Filtering for new products', 'If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products.'); -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'] = array('Enable per-page limiting', 'Allow the user to select the number of records to show per page.'); -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'] = array('Per page options', 'Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number.'); -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'] = array('Shopping Cart Jump to page', 'This setting defines to which page a user will be redirected when requesting a full shopping cart view.'); -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'] = array('Checkout Jump to page', 'This setting defines to which page a user will be redirected when completing their transaction.'); -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'] = array('Initial sorting field', 'Select a sorting field to sort the listing by on first page load.'); -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'] = array('Initial sorting direction', 'Select a initial sorting direction.'); -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'] = array('Buttons', 'Select the buttons you want to show.'); -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'] = array('Related categories', 'Select the categories to show products of.'); -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'] = array('Include messaging', 'This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of.'); -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'] = array('Enable "Continue shopping" button', 'Add a link to the currently added product to the cart.'); -$GLOBALS['TL_LANG']['tl_module']['iso_address'] = array('Address types', 'Please choose the address types.'); -$GLOBALS['TL_LANG']['tl_module']['iso_addressFields'] = array('Available address fields', 'Choose the available address fields you would like to display.'); - -/** - * Legends - */ -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_legend'] = 'Order conditions form'; - -/** - * References - */ -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['member'] = 'Login/Registration required'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['guest'] = 'Guest checkout only'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['both'] = 'Both allowed'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'] = array('All Categories', 'Show all products that are assigned to a page of the active page tree (based on the root page).'); -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'] = array('Current Category and First Child Category', 'Show all products that are assigned to the active page or child pages on the first sublevel.'); -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'] = array('Current Category and All Child Categories', 'Show all products that are assigned to the active page or any child page of it.'); -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'] = array('Current Category', 'Show all products that are assigned to the active page (default).'); -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'] = array('Parent Category', 'Show all products that are assigned to the parent page of the active page.'); -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'] = array('Current Product\'s Categories', 'Show all products that are assigned to the same pages the currently active product is assigned to.'); -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['article'] = array('Category of article', 'If you place the module in an article, it will show products assigned to the artilce\'s partent page, even though if you place the article in another page (e.g. using insert tag).'); -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['ASC'] = "ASC"; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['DESC'] = "DESC"; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['top'] = 'On top (before address)'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['before'] = 'Before products list'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['after'] = 'After products list'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_all'] = 'Show all products'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_new'] = 'Only show new products'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_old'] = 'Only show old products'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['billing'] = 'Billing address'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['shipping'] = 'Shipping address'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['attribute'] = array('Attribute'); -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType'] = array('Query Type'); -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType']['and'] = 'AND'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType']['or'] = 'OR'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount'] = array('Number of results'); -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount']['none'] = 'Do not show'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount']['all'] = 'Show total'; -$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount']['new'] = 'Show difference'; diff --git a/system/modules/isotope/languages/en/tl_module.xlf b/system/modules/isotope/languages/en/tl_module.xlf new file mode 100644 index 0000000000..dfb1bf5bd6 --- /dev/null +++ b/system/modules/isotope/languages/en/tl_module.xlf @@ -0,0 +1,433 @@ + + + + + + Product list template + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + + + Select the store configuration that this module will be used for. + + + Store configurations + + + Select the store configurations that this module will be used for. + + + Payment methods + + + Select one or more payment methods for this checkout module. + + + Shipping methods + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + + + Select a initial sorting direction. + + + Buttons + + + Select the buttons you want to show. + + + Related categories + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + + + Guest checkout only + + + Both allowed + + + All Categories + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + diff --git a/system/modules/isotope/languages/en/tl_nc_notification.php b/system/modules/isotope/languages/en/tl_nc_notification.php deleted file mode 100644 index 6f5fd89f9d..0000000000 --- a/system/modules/isotope/languages/en/tl_nc_notification.php +++ /dev/null @@ -1,28 +0,0 @@ - + + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + diff --git a/system/modules/isotope/languages/en/tl_page.php b/system/modules/isotope/languages/en/tl_page.php deleted file mode 100755 index 7b6334c180..0000000000 --- a/system/modules/isotope/languages/en/tl_page.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + + Store Configuration + + + Select a store configuration for this page structure. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + + + + diff --git a/system/modules/isotope/languages/en/tl_settings.php b/system/modules/isotope/languages/en/tl_settings.php deleted file mode 100644 index 778e185a2f..0000000000 --- a/system/modules/isotope/languages/en/tl_settings.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + + Guest cart timeout + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + diff --git a/system/modules/isotope/languages/en/tl_user.php b/system/modules/isotope/languages/en/tl_user.php deleted file mode 100644 index 6e08be05eb..0000000000 --- a/system/modules/isotope/languages/en/tl_user.php +++ /dev/null @@ -1,40 +0,0 @@ - + + + + + Isotope modules + + + Select which store configuration modules user of this group can access. + + + Allowed product types + + + Here you can grant access to one or more product types. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + + + Here you can grant access to one or more store configurations. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + + + Access to root node + + + + diff --git a/system/modules/isotope/languages/en/tl_user_group.php b/system/modules/isotope/languages/en/tl_user_group.php deleted file mode 100644 index 8677c7b8c6..0000000000 --- a/system/modules/isotope/languages/en/tl_user_group.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + + Isotope eCommerce + + + + diff --git a/system/modules/isotope/languages/en/tokens.php b/system/modules/isotope/languages/en/tokens.php deleted file mode 100755 index 5996c0fc01..0000000000 --- a/system/modules/isotope/languages/en/tokens.php +++ /dev/null @@ -1,44 +0,0 @@ - + + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + diff --git a/system/modules/isotope/languages/es/default.php b/system/modules/isotope/languages/es/default.php deleted file mode 100644 index f916d2353a..0000000000 --- a/system/modules/isotope/languages/es/default.php +++ /dev/null @@ -1,368 +0,0 @@ -A partir de %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Ver detalles'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Productos por página'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Palabras clave'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Enviar'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Borrar filtros'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Actualizar'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Añadir al la cesta'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Ordenar por:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'No se han encontrado productos.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Volver'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Continuar'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Pedir'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Ninguna categoría está asociada a este producto.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Enviar'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Quitar'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'No hay artículos en su cesta.'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'El producto seleccionado ha sido añadido a su cesta de la compra.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'Los productos de su última visita han sido añadidos de nuevo. Por favor, revise los productos de su cesta.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Retire %s de su cesta'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Subtotal del pedido : '; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Envío'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Pago'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Pedido Total :'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'No hay modos de pago disponibles actualmente'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'No hay modos de envío disponibles actualmente.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'No hay emails de pedidos encontrados.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'No hay pedidos encontrados.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s descargas restantes'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Cesta de la compra'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Pagar'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Seguir comprando'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Actualizar la cesta'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Estado del pedido: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Vuelva al paso "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Crear nueva dirección'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Utilizar la dirección de facturación'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Utilizar la dirección del cliente'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Diferente dirección de envío'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Editar'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Borrar'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = '¿Realmente quieres eliminar esta dirección? No se puede deshacer.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Factura'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Estado'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Fecha del pedido'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Descripción'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Cantidad'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Precio'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'de menos a más'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'de más a menos'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'A a Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'Z a A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'anterior a posterior'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'posterior a anterior'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Procesando el pago'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Pagar ahora'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Haz clic aquí para ver este transacciones PayPal en línea'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 Producto'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s Productos'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Introduce tu información de envío o seleccionar una dirección existente.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Introduce tu información de facturación o seleccionar una dirección existente.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Introduce tu información de facturación'; -$GLOBALS['TL_LANG']['MSC']['customer_address_message'] = 'Introduce tu información de cliente o seleccionar una dirección existente.'; -$GLOBALS['TL_LANG']['MSC']['customer_address_guest_message'] = 'Introduce tu información de cliente'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Selecciona un modo de envío.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Por favor, selecciona un método de envío.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_message'] = 'Introduce tu información de pago.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_missing'] = 'Por favor selecciona una forma de pago.'; -$GLOBALS['TL_LANG']['MSC']['order_review_message'] = 'Revisa y confirma tus detalles del pedido.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Dirección'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Envío'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Pago'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Revisión'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Dirección de facturación'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Dirección de envío'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Dirección de facturación y de envío'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Dirección del cliente'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Modo de envío'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Forma de pago'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Revisar el pedido'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Cambiar'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Número de tarjeta de crédito'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Tipo de tarjeta de crédito/debito'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'Número CCV (Código de 3 o 4 dígitos)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Mes de vencimiento'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Año de vencimiento'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = '¡Módulo de Pago no encontrado!'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNotFound'] = '¡Módulo de envío no encontrado!'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNoInfo'] = 'Este módulo de pago no proporciona información adicional.'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNoInfo'] = 'Este módulo de envío no proporciona información adicional.'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Utilizar el valor por defecto'; -$GLOBALS['TL_LANG']['MSC']['activeStep'] = 'Paso activo :'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Cargando productos...'; -$GLOBALS['TL_LANG']['MSC']['productcacheNoscript'] = 'Su navegador no soporta JavaScript. Por favor haz clic aquí para cargar la lista de productos.'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'No hay archivos en esta carpeta'; -$GLOBALS['TL_LANG']['MSC']['loadingProductData'] = 'Cargando datos del producto…'; -$GLOBALS['TL_LANG']['MSC']['splittedTaxRate'] = 'Fraccionado'; -$GLOBALS['TL_LANG']['MSC']['newOrders'] = 'Tiene %s orden(s) con el estado "%s"'; -$GLOBALS['TL_LANG']['MSC']['checkoutStep'] = 'Paso %s de %s (%s) - '; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minutos'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Horas'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Días'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Semanas'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Meses'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Años'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][0] = 'Precio fijo de envío'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][0] = 'Efectivo'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][1] = 'Usar esto para todos los pagos desconectados.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][0] = 'Pago PayPal estándar'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][1] = 'Este módulo soporta PayPal IPN (notificaciones de pago instantáneas).'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['postfinance'][1] = 'Pasarela de pago para el sistema de pago del correo suizo que soporta varios tipos de tarjetas. La tienda estará inmediatamente notificado de las transacciones con éxito.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][0] = 'Datatrans'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][1] = 'Pasarela de pago para el sistema de pago suizo "Datatrans".'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['sparkasse'][0] = 'Sparkasse'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['expercash'][0] = 'ExperCash'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['payone'][0] = 'PayOne'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][1] = '

Utiliza lightbox/mediabox para imágenes de tamaño completo. Asegúrate de seleccionar la plantilla "moo_" adecuada en la configuración de diseño de la página

Puede proporcionar un atributo "rel" para el destino del enlace mediante un tubo (por ejemplo, "tl_files/video.mov|lightbox[400 300]"). Si no se proporciona ningún atributo "rel", el enlace se abrirá en una nueva ventana.

'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][0] = 'Galería en línea'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][1] = 'Al hacer clic en una imagen de la galería se reemplazará la imagen principal.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][0] = 'Producto normal'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][1] = 'Un producto predeterminado. Seleccione esta opción si ninguna otra corresponde.'; -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['enroute'] = 'EnRoute'; -$GLOBALS['TL_LANG']['CCT']['carte_blanche'] = 'Carte Blanche'; -$GLOBALS['TL_LANG']['CCT']['jal'] = 'JAL'; -$GLOBALS['TL_LANG']['CCT']['maestro'] = 'Maestro UK'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['solo'] = 'Solo'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['CCT']['dankort'] = 'Dankort'; -$GLOBALS['TL_LANG']['CCT']['laser'] = 'Laser'; -$GLOBALS['TL_LANG']['CCT']['carte_bleue'] = 'Carte Bleue'; -$GLOBALS['TL_LANG']['CCT']['carta_si'] = 'Carta Si'; -$GLOBALS['TL_LANG']['CCT']['enc_acct_num'] = 'Número de cuenta codificado'; -$GLOBALS['TL_LANG']['CCT']['uatp'] = 'Programa Universal Air Travel'; -$GLOBALS['TL_LANG']['CCT']['maestro_intl'] = 'Maestro International'; -$GLOBALS['TL_LANG']['CCT']['ge_money_uk'] = 'GE Money UK'; -$GLOBALS['TL_LANG']['ATTR']['text'][0] = 'Campo de texto'; -$GLOBALS['TL_LANG']['ATTR']['text'][1] = 'Un campo de entrada de una sola línea para un texto corto.'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][0] = 'Área de texto'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][1] = 'Un campo de entrada de varias líneas de texto medio o largo.'; -$GLOBALS['TL_LANG']['ATTR']['select'][0] = 'Lista de selección'; -$GLOBALS['TL_LANG']['ATTR']['select'][1] = 'Un menú desplegable de una o varias líneas.
Este tipo de campo es el adecuado para variantes de productos.'; -$GLOBALS['TL_LANG']['ATTR']['radio'][0] = 'Botones Radio'; -$GLOBALS['TL_LANG']['ATTR']['radio'][1] = 'Una lista de múltiples opciones de las cuales una puede ser seleccionada.
Este tipo de campo es el adecuado para variantes de productos.'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][0] = 'Casillas'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][1] = 'Una lista de múltiples opciones de las cuales cualquiera se puede seleccionar.'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][0] = 'Media Manager'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][1] = 'Subir imágenes y otros archivos al sistema de archivos de isotope eCommerce. La salida es procesada a través de una clase IsotopeGallery.'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][0] = 'Lista de selección condicional'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][1] = 'Muestra una lista de selección basada en otra lista.'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][0] = 'Árbol de archivos'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][1] = 'Un árbol de archivos para uno o varios archivos y carpetas.'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Descargas'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][1] = 'Descarga archivos desde el producto, por ejemplo, manuales, hojas de datos, etc.'; -$GLOBALS['TL_LANG']['ATTR']['upload'][0] = 'Subida de archivos'; -$GLOBALS['TL_LANG']['ATTR']['upload'][1] = 'Un campo de entrada de una línea para cargar un archivo local al servidor.'; -$GLOBALS['TL_LANG']['CUR']['AED'] = 'AED - Emir. Árab. Uni. - Dirham'; -$GLOBALS['TL_LANG']['CUR']['AFN'] = 'AFN - Afghanistán - Afghani'; -$GLOBALS['TL_LANG']['CUR']['ALL'] = 'ALL - Albania - Lek'; -$GLOBALS['TL_LANG']['CUR']['AMD'] = 'AMD - Arnenia - dram'; -$GLOBALS['TL_LANG']['CUR']['ANG'] = 'ANG - Antillas Holandesas - Florín'; -$GLOBALS['TL_LANG']['CUR']['AOA'] = 'AOA - Angola - Kwanza'; -$GLOBALS['TL_LANG']['CUR']['ARS'] = 'ARS - Argentina - Peso'; -$GLOBALS['TL_LANG']['CUR']['AUD'] = 'AUD - Australia - Dólar'; -$GLOBALS['TL_LANG']['CUR']['AWG'] = 'AWG - Aruba - Florín'; -$GLOBALS['TL_LANG']['CUR']['AZN'] = 'AZN - Azerbaiyán - manat azerí nueva'; -$GLOBALS['TL_LANG']['CUR']['BAM'] = 'BAM - Bosnia - Marco'; -$GLOBALS['TL_LANG']['CUR']['BBD'] = 'BBD - Barbados - Dólar'; -$GLOBALS['TL_LANG']['CUR']['BDT'] = 'BDT - Bangladesh - Taka'; -$GLOBALS['TL_LANG']['CUR']['BGN'] = 'BGN - Bulgaria - Lev'; -$GLOBALS['TL_LANG']['CUR']['BHD'] = 'BHD - Bahráin - Dinar'; -$GLOBALS['TL_LANG']['CUR']['BIF'] = 'BIF - Burundi - Franc'; -$GLOBALS['TL_LANG']['CUR']['BMD'] = 'BMD - Bermudas - Dólar'; -$GLOBALS['TL_LANG']['CUR']['BND'] = 'BND - Brunéi - Dólar'; -$GLOBALS['TL_LANG']['CUR']['BOB'] = 'BOB - Bolivia - Boliviano'; -$GLOBALS['TL_LANG']['CUR']['BRL'] = 'BRL - Brasil - Real'; -$GLOBALS['TL_LANG']['CUR']['BSD'] = 'BSD - Bahamas - Dólar'; -$GLOBALS['TL_LANG']['CUR']['BTN'] = 'BTN - Bután - Ngultrum'; -$GLOBALS['TL_LANG']['CUR']['BWP'] = 'BWP - Botsuana - Pula'; -$GLOBALS['TL_LANG']['CUR']['BYR'] = 'BYR - Belarús - rublo bielorruso'; -$GLOBALS['TL_LANG']['CUR']['BZD'] = 'BZD - Belice - Dólar'; -$GLOBALS['TL_LANG']['CUR']['CAD'] = 'CAD - Canadá - Dólar'; -$GLOBALS['TL_LANG']['CUR']['CDF'] = 'CDF - Congo (RDC) - franco congoleño'; -$GLOBALS['TL_LANG']['CUR']['CHF'] = 'CHF - Suiza - Franco'; -$GLOBALS['TL_LANG']['CUR']['CLF'] = 'CLF - Unidades de Fomento'; -$GLOBALS['TL_LANG']['CUR']['CLP'] = 'CLP - Chile - Peso'; -$GLOBALS['TL_LANG']['CUR']['CNY'] = 'CNY - China - Renmimbi Yuan'; -$GLOBALS['TL_LANG']['CUR']['COP'] = 'COP - Colombia - Peso'; -$GLOBALS['TL_LANG']['CUR']['CRC'] = 'CRC - Costa Rica - Colón'; -$GLOBALS['TL_LANG']['CUR']['CUC'] = 'CUC - Cuba - Convertible Peso'; -$GLOBALS['TL_LANG']['CUR']['CUP'] = 'CUP - Cuba - Peso'; -$GLOBALS['TL_LANG']['CUR']['CVE'] = 'CVE - Cabo Verde - Escudo'; -$GLOBALS['TL_LANG']['CUR']['CZK'] = 'CZK - Rep. Checa - Corona'; -$GLOBALS['TL_LANG']['CUR']['DJF'] = 'DJF - Yibuti - Franco'; -$GLOBALS['TL_LANG']['CUR']['DKK'] = 'DKK - Dinamarca - Corona'; -$GLOBALS['TL_LANG']['CUR']['DOP'] = 'DOP - Rep.Dominicana - Peso'; -$GLOBALS['TL_LANG']['CUR']['DZD'] = 'DZD - Argelia - Dinar'; -$GLOBALS['TL_LANG']['CUR']['EGP'] = 'EGP - Egipto - Libra'; -$GLOBALS['TL_LANG']['CUR']['ERN'] = 'ERN - Eritrea - Nafka'; -$GLOBALS['TL_LANG']['CUR']['ETB'] = 'ETB - Etiopía - Birr'; -$GLOBALS['TL_LANG']['CUR']['EUR'] = 'EUR - Euro'; -$GLOBALS['TL_LANG']['CUR']['FJD'] = 'FJD - Fiyi - Dólar'; -$GLOBALS['TL_LANG']['CUR']['FKP'] = 'FKP - Islas Malvinas - Libra'; -$GLOBALS['TL_LANG']['CUR']['GBP'] = 'GBP - Inglaterra - Libra'; -$GLOBALS['TL_LANG']['CUR']['GEL'] = 'GEL - Georgia - lari'; -$GLOBALS['TL_LANG']['CUR']['GHS'] = 'GHS - Ghana - Nuevo Cedi'; -$GLOBALS['TL_LANG']['CUR']['GIP'] = 'GIP - Gibraltar - Libra'; -$GLOBALS['TL_LANG']['CUR']['GMD'] = 'GMD - Gambia - Dalasi'; -$GLOBALS['TL_LANG']['CUR']['GNF'] = 'GNF - Guinea - Franco'; -$GLOBALS['TL_LANG']['CUR']['GTQ'] = 'GTQ - Guatemala - Quetzal'; -$GLOBALS['TL_LANG']['CUR']['GYD'] = 'GYD - Guyana - Dólar'; -$GLOBALS['TL_LANG']['CUR']['HKD'] = 'HKD - Hong Kong Dólar'; -$GLOBALS['TL_LANG']['CUR']['HNL'] = 'HNL - Honduras - Lempira'; -$GLOBALS['TL_LANG']['CUR']['HRD'] = 'HRD - Croacia - Dinar'; -$GLOBALS['TL_LANG']['CUR']['HRK'] = 'HRK - Croacia - Kuna'; -$GLOBALS['TL_LANG']['CUR']['HTG'] = 'HTG - Haití - Gourde'; -$GLOBALS['TL_LANG']['CUR']['HUF'] = 'HUF - Hungría - Forint'; -$GLOBALS['TL_LANG']['CUR']['IDR'] = 'IDR - Indonesia - Rupia'; -$GLOBALS['TL_LANG']['CUR']['ILS'] = 'ILS - Israel - Nuevo Shekel'; -$GLOBALS['TL_LANG']['CUR']['INR'] = 'INR - India - Rupia'; -$GLOBALS['TL_LANG']['CUR']['IQD'] = 'IQD - Iraq - Dinar'; -$GLOBALS['TL_LANG']['CUR']['IRR'] = 'IRR - Irán - Rial'; -$GLOBALS['TL_LANG']['CUR']['ISK'] = 'ISK - Islandia - Corona'; -$GLOBALS['TL_LANG']['CUR']['JMD'] = 'JMD - Jamaica - Dólar'; -$GLOBALS['TL_LANG']['CUR']['JOD'] = 'JOD - Jordania - Dinar'; -$GLOBALS['TL_LANG']['CUR']['JPY'] = 'JPY - Japón - Yen'; -$GLOBALS['TL_LANG']['CUR']['KES'] = 'KES - Kenia - Chelín'; -$GLOBALS['TL_LANG']['CUR']['KGS'] = 'KGS - Kirguistán - Som'; -$GLOBALS['TL_LANG']['CUR']['KHR'] = 'KHR - Camboya - Riel'; -$GLOBALS['TL_LANG']['CUR']['KMF'] = 'KMF - Comoras - Franco'; -$GLOBALS['TL_LANG']['CUR']['KPW'] = 'KPW - Corea del Norte - Won'; -$GLOBALS['TL_LANG']['CUR']['KRW'] = 'KRW - Corea del Sur - Won'; -$GLOBALS['TL_LANG']['CUR']['KWD'] = 'KWD - Kuwait - Dinar'; -$GLOBALS['TL_LANG']['CUR']['KYD'] = 'KYD - Islas Caimánes - Dólar'; -$GLOBALS['TL_LANG']['CUR']['KZT'] = 'KZT - Kazajstán - Tenge'; -$GLOBALS['TL_LANG']['CUR']['LAK'] = 'LAK - Laos - Kip'; -$GLOBALS['TL_LANG']['CUR']['LBP'] = 'LBP - Líbano - Libra'; -$GLOBALS['TL_LANG']['CUR']['LKR'] = 'LKR - Sri Lanka - Rupia'; -$GLOBALS['TL_LANG']['CUR']['LRD'] = 'LRD - Libéria - Dólar'; -$GLOBALS['TL_LANG']['CUR']['LSL'] = 'LSL - Lesoto - Loti'; -$GLOBALS['TL_LANG']['CUR']['LTL'] = 'LTL - Lituania - Litas'; -$GLOBALS['TL_LANG']['CUR']['LVL'] = 'LVL - Letonia - Lats'; -$GLOBALS['TL_LANG']['CUR']['LYD'] = 'LYD - Libia - Dinar'; -$GLOBALS['TL_LANG']['CUR']['MAD'] = 'MAD - Marruecos - Dirham'; -$GLOBALS['TL_LANG']['CUR']['MDL'] = 'MDL - Moldova - leu moldavo'; -$GLOBALS['TL_LANG']['CUR']['MGA'] = 'MGA - Málaga - Ariary'; -$GLOBALS['TL_LANG']['CUR']['MKD'] = 'MKD - Macedonia - denar'; -$GLOBALS['TL_LANG']['CUR']['MMK'] = 'MMK - Myanmar - Kyat'; -$GLOBALS['TL_LANG']['CUR']['MNT'] = 'MNT - Mongolia - Tugrik'; -$GLOBALS['TL_LANG']['CUR']['MOP'] = 'MOP - Macao - Pataca'; -$GLOBALS['TL_LANG']['CUR']['MRO'] = 'MRO - Mauritania - Ouguiya'; -$GLOBALS['TL_LANG']['CUR']['MUR'] = 'MUR - Mauricio - Rupia'; -$GLOBALS['TL_LANG']['CUR']['MVR'] = 'MVR - Maledivas - Rupia'; -$GLOBALS['TL_LANG']['CUR']['MWK'] = 'MWK - Malaui - Kwacha'; -$GLOBALS['TL_LANG']['CUR']['MXN'] = 'MXN - México - Peso'; -$GLOBALS['TL_LANG']['CUR']['MYR'] = 'MYR - Malasia - Ringgit'; -$GLOBALS['TL_LANG']['CUR']['MZN'] = 'MZN - Mozambique - Nuevo Metical'; -$GLOBALS['TL_LANG']['CUR']['NAD'] = 'NAD - Namibia - Dólar'; -$GLOBALS['TL_LANG']['CUR']['NGN'] = 'NGN - Nigeria - Naira'; -$GLOBALS['TL_LANG']['CUR']['NIO'] = 'NIO - Nicaragua - Córdoba'; -$GLOBALS['TL_LANG']['CUR']['NOK'] = 'NOK - Noruega - Corona'; -$GLOBALS['TL_LANG']['CUR']['NPR'] = 'NPR - Nepal - Rupia'; -$GLOBALS['TL_LANG']['CUR']['NZD'] = 'NZD - Nueva Zelanda - Dólar'; -$GLOBALS['TL_LANG']['CUR']['OMR'] = 'OMR - Omán - Rial'; -$GLOBALS['TL_LANG']['CUR']['PAB'] = 'PAB - Panamá - Balboa'; -$GLOBALS['TL_LANG']['CUR']['PEN'] = 'PEN - Perú - Nuevo Sol'; -$GLOBALS['TL_LANG']['CUR']['PGK'] = 'PGK - Papúa Nueva Guinea - Kina'; -$GLOBALS['TL_LANG']['CUR']['PHP'] = 'PHP - Filipinas - Peso'; -$GLOBALS['TL_LANG']['CUR']['PKR'] = 'PKR - Pakistán - Rupia'; -$GLOBALS['TL_LANG']['CUR']['PLN'] = 'PLN - Polonia - Zloty'; -$GLOBALS['TL_LANG']['CUR']['PYG'] = 'PYG - Paraguay - Guaraní'; -$GLOBALS['TL_LANG']['CUR']['QAR'] = 'QAR - Qatar - Rial'; -$GLOBALS['TL_LANG']['CUR']['RON'] = 'RON - Rumanía - Nueva Lei'; -$GLOBALS['TL_LANG']['CUR']['RSD'] = 'RSD - Serbia - Dinar'; -$GLOBALS['TL_LANG']['CUR']['RUB'] = 'RUB - Rusia - Rublo'; -$GLOBALS['TL_LANG']['CUR']['RWF'] = 'RWF - Ruanda - franco ruandés'; -$GLOBALS['TL_LANG']['CUR']['SAR'] = 'SAR - Arabia Saudí - Rial'; -$GLOBALS['TL_LANG']['CUR']['SBD'] = 'SBD - Islas Salomón - Dólar'; -$GLOBALS['TL_LANG']['CUR']['SCR'] = 'SCR - Seychelles - Rupia'; -$GLOBALS['TL_LANG']['CUR']['SDG'] = 'SDG - Sudán - Libra'; -$GLOBALS['TL_LANG']['CUR']['SEK'] = 'SEK - Suecia - Corona'; -$GLOBALS['TL_LANG']['CUR']['SGD'] = 'SGD - Singapur - Dólar'; -$GLOBALS['TL_LANG']['CUR']['SHP'] = 'SHP - Santa Elena - Libra'; -$GLOBALS['TL_LANG']['CUR']['SLL'] = 'SLL - Sierra Leona - Leone'; -$GLOBALS['TL_LANG']['CUR']['SOS'] = 'SOS - Somalia - Chelín'; -$GLOBALS['TL_LANG']['CUR']['SRD'] = 'SRD - Surinam - Dólar'; -$GLOBALS['TL_LANG']['CUR']['SSP'] = 'SSP - Sudán del sur - Libra'; -$GLOBALS['TL_LANG']['CUR']['STD'] = 'STD - Santo Tomé/Príncipe - Dobra'; -$GLOBALS['TL_LANG']['CUR']['SVC'] = 'SVC - El Salvador - Colón'; -$GLOBALS['TL_LANG']['CUR']['SYP'] = 'SYP - Siria - Libra'; -$GLOBALS['TL_LANG']['CUR']['SZL'] = 'SZL - Suazilandia - Lilangeni'; -$GLOBALS['TL_LANG']['CUR']['THB'] = 'THB - Tailandia - Baht'; -$GLOBALS['TL_LANG']['CUR']['TJS'] = 'TJS - Tayikistán - Somoni'; -$GLOBALS['TL_LANG']['CUR']['TMT'] = 'TMT - Turkmenistán - Nuevo Manat'; -$GLOBALS['TL_LANG']['CUR']['TND'] = 'TND - Túnez - Dinar'; -$GLOBALS['TL_LANG']['CUR']['TOP'] = 'TOP - Tonga - Pa\'anga'; -$GLOBALS['TL_LANG']['CUR']['TRY'] = 'TRY - Turquía - Lira'; -$GLOBALS['TL_LANG']['CUR']['TTD'] = 'TTD - Trinidad/Tobago - Dólar'; -$GLOBALS['TL_LANG']['CUR']['TWD'] = 'TWD - Taiwan - Dólar'; -$GLOBALS['TL_LANG']['CUR']['TZS'] = 'TZS - Tanzania - Chelín'; -$GLOBALS['TL_LANG']['CUR']['UAH'] = 'UAH - Ucrania - Jrivnia'; -$GLOBALS['TL_LANG']['CUR']['UGX'] = 'UGX - Uganda - Chelín'; -$GLOBALS['TL_LANG']['CUR']['USD'] = 'USD - US Dólar'; -$GLOBALS['TL_LANG']['CUR']['UYU'] = 'UYU - Uruguay - Peso'; -$GLOBALS['TL_LANG']['CUR']['UZS'] = 'UZS - Uzbekistan - Som'; -$GLOBALS['TL_LANG']['CUR']['VEF'] = 'VEF - Venezuela - Bolívar Fuerte'; -$GLOBALS['TL_LANG']['CUR']['VND'] = 'VND - Vietnam - Dong'; -$GLOBALS['TL_LANG']['CUR']['VUV'] = 'VUV - Vanuatu - Vatu'; -$GLOBALS['TL_LANG']['CUR']['WST'] = 'WST - Samoa - Tala'; -$GLOBALS['TL_LANG']['CUR']['XCD'] = 'XCD - East Caribbean Dollar'; -$GLOBALS['TL_LANG']['CUR']['YER'] = 'YER - Yemen Rial'; -$GLOBALS['TL_LANG']['CUR']['ZAR'] = 'ZAR - Suráfrica - Rand'; -$GLOBALS['TL_LANG']['CUR']['ZMK'] = 'ZMK - Kwacha zambiano'; -$GLOBALS['TL_LANG']['CUR']['ZWL'] = 'ZWL - Zimbabwe - Dólar'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['CHF'] = 'Fr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['DKK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['NOK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['SEK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; diff --git a/system/modules/isotope/languages/es/default.xlf b/system/modules/isotope/languages/es/default.xlf new file mode 100644 index 0000000000..20b9f56cab --- /dev/null +++ b/system/modules/isotope/languages/es/default.xlf @@ -0,0 +1,1672 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + El nombre '%s' esta reservado para una utilización del sistema. Por favor elige otro nombre. + + + No store configuration available + Ninguna configuración de tienda disponible + + + Please create a default store configuration. + Por favor, crea una configuración por defecto. + + + You have not yet placed any orders. + Todavía no has realizado ningún pedido. + + + The requested order was not found. + El pedido solicitado no se encuentra. + + + You must be logged in to checkout. + Debe estar conectado para realizar el pago. + + + A variant with this attributes is already available. Please select another combination. + Una variante con estos atributos ya está disponible. Por favor, selecciona otra combinación. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Por favor, introduzca números enteros o decimales con + o - y opcionalmente con un porcentaje. + + + Please enter whole numbers or decimals optionally with a percentage. + Por favor, introduzca números enteros o decimales opcionalmente con un porcentaje. + + + Checkout failed. Please try again or choose another payment method. + El pago no se ha realizado. Por favor inténtelo de nuevo o elija otro método de pago. + + + You have no address book entries. + No tiene registros en la libreta de direcciones. + + + The minimum order amount is %s. Please add more products before checkout. + La cantidad mínima de pedido es %s. Por favor, añada más productos antes de pagar. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + + + This image has already been assigned to the fallback language. + Esta imagen ya ha sido asignado al idioma por defecto. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + Seleccione un campo de validación apropiado (fecha, hora, fecha y hora) para habilitar el selector de fecha. + + + The selected folder is empty. + La carpeta seleccionada está vacía. + + + User checkout not allowed + + + This product is no longer available. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + + + Groups + Groupos + + + Pages + + + Back to the group picker + + + Show all groups + + + There are no variants for this product. + + + Duplicate Fallback + Duplicado por defecto + + + Order no %s / %s + Pedido núm. %s / %s + + + Your payment is being processed. Please be patient... + Se está procesando su pago. Por favor, sea paciente... + + + No files uploaded. + No hay archivos subidos. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + + + Upload files + + + Processing dropped files... + + + Some records could not be deleted. + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + Cantidad + + + Tax-free + + + search products + buscar productos + + + Your downloadable products + Sus productos descargables + + + <span class="from">From</span> %s + <span class="from">A partir de</span> %s + + + View Details + Ver detalles + + + Reorder + + + Products Per Page + Productos por página + + + Keywords + Palabras clave + + + Submit + Enviar + + + Clear Filters + Borrar filtros + + + Update + Actualizar + + + Add To Cart + Añadir al la cesta + + + Add All To Cart + + + Update Cart + Actualizar la cesta + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Ordenar por: + + + No products have been found. + No se han encontrado productos. + + + Back + Volver + + + Continue + Continuar + + + Order + Pedir + + + No categories are associated with this product. + Ninguna categoría está asociada a este producto. + + + Submit + Enviar + + + There are no items in your favorites list. + + + There are no items in your cart. + No hay artículos en su cesta. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + El producto seleccionado ha sido añadido a su cesta de la compra. + + + The products from your last visit have been readded. Please review your shopping cart items. + Los productos de su última visita han sido añadidos de nuevo. Por favor, revise los productos de su cesta. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Editar + + + Remove + Quitar + + + Remove %s from your cart + Retire %s de su cesta + + + Order Subtotal: + Subtotal del pedido : + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Pedido Total : + + + No payment options are currently available + No hay modos de pago disponibles actualmente + + + No shipping options are currently available. + No hay modos de envío disponibles actualmente. + + + No orders emails found. + No hay emails de pedidos encontrados. + + + No orders found. + No hay pedidos encontrados. + + + <br />%s downloads remaining + <br />%s descargas restantes + + + Shopping Cart + Cesta de la compra + + + Proceed to Checkout + Pagar + + + Continue shopping + Seguir comprando + + + Update Cart + Actualizar la cesta + + + Order Status: %s + Estado del pedido: %s + + + Go back to step "%s" + Vuelva al paso "%s" + + + Create New Address + Crear nueva dirección + + + Use billing address + Utilizar la dirección de facturación + + + Use customer address + Utilizar la dirección del cliente + + + Different shipping address + Diferente dirección de envío + + + Edit + Editar + + + Delete + Borrar + + + Do you really want to delete this address? This cannot be undone. + ¿Realmente quieres eliminar esta dirección? No se puede deshacer. + + + Invoice + Factura + + + Status + Estado + + + Order date + Fecha del pedido + + + Order number + + + Description + Descripción + + + Quantity + Cantidad + + + Price + Precio + + + Total + + + lo to hi + de menos a más + + + hi to lo + de más a menos + + + A to Z + A a Z + + + Z to A + Z a A + + + earlier to later + anterior a posterior + + + later to earlier + posterior a anterior + + + Processing payment + Procesando el pago + + + You will be redirected to the payment gateway website. + + + Pay now + Pagar ahora + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + Haz clic aquí para ver este transacciones PayPal en línea + + + 1 Product + 1 Producto + + + %s Products + %s Productos + + + Enter your shipping information or select an existing address. + Introduce tu información de envío o seleccionar una dirección existente. + + + Enter your billing information or select an existing address. + Introduce tu información de facturación o seleccionar una dirección existente. + + + Enter your billing information + Introduce tu información de facturación + + + Enter your customer information or select an existing address. + Introduce tu información de cliente o seleccionar una dirección existente. + + + Enter your customer information + Introduce tu información de cliente + + + Select a shipping method. + Selecciona un modo de envío. + + + Please select a shipping method. + Por favor, selecciona un método de envío. + + + Enter your payment information. + Introduce tu información de pago. + + + Please select a payment method. + Por favor selecciona una forma de pago. + + + Review and confirm your order details. + Revisa y confirma tus detalles del pedido. + + + Address + Dirección + + + Shipping + Envío + + + Payment + Pago + + + Review + Revisión + + + Billing Address + Dirección de facturación + + + Shipping Address + Dirección de envío + + + Billing & Shipping Address + Dirección de facturación y de envío + + + Customer Address + Dirección del cliente + + + Shipping Method + Modo de envío + + + Payment Method + Forma de pago + + + Order Review + Revisar el pedido + + + Change + Cambiar + + + Credit card number + Número de tarjeta de crédito + + + Credit card type + Tipo de tarjeta de crédito/debito + + + CCV number (3 or 4 digit code) + Número CCV (Código de 3 o 4 dígitos) + + + Expiration month + Mes de vencimiento + + + Expiration year + Año de vencimiento + + + Payment module not found! + ¡Módulo de Pago no encontrado! + + + Shipping module not found! + ¡Módulo de envío no encontrado! + + + This payment module does not provide additional information. + Este módulo de pago no proporciona información adicional. + + + This shipping module does not provide additional information. + Este módulo de envío no proporciona información adicional. + + + Use default value + Utilizar el valor por defecto + + + active step: + Paso activo : + + + Loading products... + Cargando productos... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + Su navegador no soporta JavaScript. Por favor <a href="%s">haz clic aquí</a> para cargar la lista de productos. + + + No files in this folder + No hay archivos en esta carpeta + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + Cargando datos del producto… + + + Store Config "%s" + + + Splitted + Fraccionado + + + You have %s order(s) with status "%s" + Tiene %s orden(s) con el estado "%s" + + + Step %s of %s (%s) - + Paso %s de %s (%s) - + + + Minutes + Minutos + + + Hours + Horas + + + Days + Días + + + Weeks + Semanas + + + Months + Meses + + + Years + Años + + + Introduction + + + Welcome to Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + Precio fijo de envío + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + Efectivo + + + Use this for all offline processed payment. + Usar esto para todos los pagos desconectados. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + Pago PayPal estándar + + + This PayPal module supports IPN (Instant Payment Notifications). + Este módulo soporta PayPal IPN (notificaciones de pago instantáneas). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + Pasarela de pago para el sistema de pago del correo suizo que soporta varios tipos de tarjetas. La tienda estará inmediatamente notificado de las transacciones con éxito. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + Pasarela de pago para el sistema de pago suizo "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + <p>Utiliza lightbox/mediabox para imágenes de tamaño completo. Asegúrate de seleccionar la plantilla "moo_" adecuada en la configuración de diseño de la página</p><p>Puede proporcionar un atributo "rel" para el destino del enlace mediante un tubo (por ejemplo, "tl_files/video.mov|lightbox[400 300]"). Si no se proporciona ningún atributo "rel", el enlace se abrirá en una nueva ventana.</p> + + + Inline gallery + Galería en línea + + + Clicking on a gallery image will replace the main image. + Al hacer clic en una imagen de la galería se reemplazará la imagen principal. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + Producto normal + + + A default product. Select this if nothing else matches. + Un producto predeterminado. Seleccione esta opción si ninguna otra corresponde. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Discover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + EnRoute + + + Carte Blanche + Carte Blanche + + + JAL + JAL + + + Maestro UK + Maestro UK + + + Delta + Delta + + + Solo + Solo + + + Visa Electron + Visa Electron + + + Dankort + Dankort + + + Laser + Laser + + + Carte Bleue + Carte Bleue + + + Carta Si + Carta Si + + + Encoded Account Number + Número de cuenta codificado + + + Universal Air Travel Program + Programa Universal Air Travel + + + Maestro International + Maestro International + + + GE Money UK + GE Money UK + + + Text field + Campo de texto + + + A single-line input field for a short or medium text. + Un campo de entrada de una sola línea para un texto corto. + + + Textarea + Área de texto + + + A multi-line input field for a medium or long text. + Un campo de entrada de varias líneas de texto medio o largo. + + + Select menu + Lista de selección + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + Un menú desplegable de una o varias líneas.<br /><i>Este tipo de campo es el adecuado para variantes de productos.</i> + + + Radio button menu + Botones Radio + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + Una lista de múltiples opciones de las cuales una puede ser seleccionada.<br /><i>Este tipo de campo es el adecuado para variantes de productos.</i> + + + Checkbox menu + Casillas + + + A list of multiple options from which any can be selected. + Una lista de múltiples opciones de las cuales cualquiera se puede seleccionar. + + + Media Manager + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + Subir imágenes y otros archivos al sistema de archivos de isotope eCommerce. La salida es procesada a través de una clase IsotopeGallery. + + + Conditional Select-Menu + Lista de selección condicional + + + show select-options based on another select menu. + Muestra una lista de selección basada en otra lista. + + + File tree + Árbol de archivos + + + A file tree for single or multiple files and folders. + Un árbol de archivos para uno o varios archivos y carpetas. + + + Downloads + Descargas + + + Download files from the product, e.g. manuals, data sheets etc. + Descarga archivos desde el producto, por ejemplo, manuales, hojas de datos, etc. + + + File upload + Subida de archivos + + + A single-line input field to upload a local file to the server. + Un campo de entrada de una línea para cargar un archivo local al servidor. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + AED - Emir. Árab. Uni. - Dirham + + + AFN - Afghani + AFN - Afghanistán - Afghani + + + ALL - Lek + ALL - Albania - Lek + + + AMD - Dram + AMD - Arnenia - dram + + + ANG - Netherlands Antilles Guilder + ANG - Antillas Holandesas - Florín + + + AOA - Kwanza + AOA - Angola - Kwanza + + + ARS - Argentinian Nuevo Peso + ARS - Argentina - Peso + + + AUD - Australian Dollar + AUD - Australia - Dólar + + + AWG - Aruban Guilder + AWG - Aruba - Florín + + + AZN - Azerbaijani Manat + AZN - Azerbaiyán - manat azerí nueva + + + BAM - Convertible Mark + BAM - Bosnia - Marco + + + BBD - Barbados Dollar + BBD - Barbados - Dólar + + + BDT - Taka + BDT - Bangladesh - Taka + + + BGN - Bulgarian Lev + BGN - Bulgaria - Lev + + + BHD - Bahraini Dinar + BHD - Bahráin - Dinar + + + BIF - Burundi Franc + BIF - Burundi - Franc + + + BMD - Bermudian Dollar + BMD - Bermudas - Dólar + + + BND - Brunei Dollar + BND - Brunéi - Dólar + + + BOB - Boliviano + BOB - Bolivia - Boliviano + + + BRL - Brazilian real + BRL - Brasil - Real + + + BSD - Bahamian Dollar + BSD - Bahamas - Dólar + + + BTN - Ngultrum + BTN - Bután - Ngultrum + + + BWP - Pula + BWP - Botsuana - Pula + + + BYR - Belarussian Rouble + BYR - Belarús - rublo bielorruso + + + BZD - Belize Dollar + BZD - Belice - Dólar + + + CAD - Canadian Dollar + CAD - Canadá - Dólar + + + CDF - Congolese Franc + CDF - Congo (RDC) - franco congoleño + + + CHF - Swiss Franc + CHF - Suiza - Franco + + + CLF - Unidades de Fomento + CLF - Unidades de Fomento + + + CLP - Chilean Peso + CLP - Chile - Peso + + + CNY - Yuan Renminbi + CNY - China - Renmimbi Yuan + + + COP - Colombian Peso + COP - Colombia - Peso + + + CRC - Costa Rican Colón + CRC - Costa Rica - Colón + + + CUC - Peso Convertible + CUC - Cuba - Convertible Peso + + + CUP - Cuban Peso + CUP - Cuba - Peso + + + CVE - Escudo Caboverdiano + CVE - Cabo Verde - Escudo + + + CZK - Czech Koruna + CZK - Rep. Checa - Corona + + + DJF - Djibouti Franc + DJF - Yibuti - Franco + + + DKK - Danish Krone + DKK - Dinamarca - Corona + + + DOP - Dominican Republic Peso + DOP - Rep.Dominicana - Peso + + + DZD - Algerian Dinar + DZD - Argelia - Dinar + + + EGP - Egyptian Pound + EGP - Egipto - Libra + + + ERN - Eritrean Nakfa + ERN - Eritrea - Nafka + + + ETB - Ethiopian Birr + ETB - Etiopía - Birr + + + EUR - Euro + EUR - Euro + + + FJD - Fiji Dollar + FJD - Fiyi - Dólar + + + FKP - Falkland Pound + FKP - Islas Malvinas - Libra + + + GBP - Pound Sterling + GBP - Inglaterra - Libra + + + GEL - Lari + GEL - Georgia - lari + + + GHS - Ghanaian cedi + GHS - Ghana - Nuevo Cedi + + + GIP - Gibraltar Pound + GIP - Gibraltar - Libra + + + GMD - Dalasi + GMD - Gambia - Dalasi + + + GNF - Guinea Franc + GNF - Guinea - Franco + + + GTQ - Quetzal + GTQ - Guatemala - Quetzal + + + GYD - Guyana Dollar + GYD - Guyana - Dólar + + + HKD - Hong Kong Dollar + HKD - Hong Kong Dólar + + + HNL - Lempira + HNL - Honduras - Lempira + + + HRD - Croatian Dinar + HRD - Croacia - Dinar + + + HRK - Croatian Kuna + HRK - Croacia - Kuna + + + HTG - Gourde + HTG - Haití - Gourde + + + HUF - Forint + HUF - Hungría - Forint + + + IDR - Rupiah + IDR - Indonesia - Rupia + + + ILS - Shekel + ILS - Israel - Nuevo Shekel + + + INR - Indian Rupee + INR - India - Rupia + + + IQD - Iraqi Dinar + IQD - Iraq - Dinar + + + IRR - Iranian Rial + IRR - Irán - Rial + + + ISK - Icelandic Króna + ISK - Islandia - Corona + + + JMD - Jamaican Dollar + JMD - Jamaica - Dólar + + + JOD - Jordanian Dinar + JOD - Jordania - Dinar + + + JPY - Yen + JPY - Japón - Yen + + + KES - Kenyan Shilling + KES - Kenia - Chelín + + + KGS - Kyrgyzstani Som + KGS - Kirguistán - Som + + + KHR - Riel + KHR - Camboya - Riel + + + KMF - Comorian Franc + KMF - Comoras - Franco + + + KPW - Democratic People's Republic of Korean Won + KPW - Corea del Norte - Won + + + KRW - Republic of Korean Won + KRW - Corea del Sur - Won + + + KWD - Kuwaiti Dinar + KWD - Kuwait - Dinar + + + KYD - Cayman Islands Dollar + KYD - Islas Caimánes - Dólar + + + KZT - Tenge + KZT - Kazajstán - Tenge + + + LAK - Kip + LAK - Laos - Kip + + + LBP - Lebanese Pound + LBP - Líbano - Libra + + + LKR - Sri Lankan Rupee + LKR - Sri Lanka - Rupia + + + LRD - Liberian Dollar + LRD - Libéria - Dólar + + + LSL - Loti + LSL - Lesoto - Loti + + + LTL - Litas + LTL - Lituania - Litas + + + LVL - Lats + LVL - Letonia - Lats + + + LYD - Libyan Dinar + LYD - Libia - Dinar + + + MAD - Moroccan Dirham + MAD - Marruecos - Dirham + + + MDL - Moldavian Leu + MDL - Moldova - leu moldavo + + + MGA - Malagasy ariary + MGA - Málaga - Ariary + + + MKD - Macedonian Dinar + MKD - Macedonia - denar + + + MMK - Kyat + MMK - Myanmar - Kyat + + + MNT - Tugrik + MNT - Mongolia - Tugrik + + + MOP - Pataca + MOP - Macao - Pataca + + + MRO - Ouguiya + MRO - Mauritania - Ouguiya + + + MUR - Mauritius Rupee + MUR - Mauricio - Rupia + + + MVR - Rufiyaa + MVR - Maledivas - Rupia + + + MWK - Malawian Kwacha + MWK - Malaui - Kwacha + + + MXN - Mexican Peso + MXN - México - Peso + + + MYR - Ringgit (Malaysian Dollar) + MYR - Malasia - Ringgit + + + MZN - Mozambican metical + MZN - Mozambique - Nuevo Metical + + + NAD - Namibia Dollar + NAD - Namibia - Dólar + + + NGN - Naira + NGN - Nigeria - Naira + + + NIO - Cordoba Oro + NIO - Nicaragua - Córdoba + + + NOK - Norwegian Krone + NOK - Noruega - Corona + + + NPR - Nepalese Rupee + NPR - Nepal - Rupia + + + NZD - New Zealand Dollar + NZD - Nueva Zelanda - Dólar + + + OMR - Omani Rial + OMR - Omán - Rial + + + PAB - Balboa + PAB - Panamá - Balboa + + + PEN - New Sol + PEN - Perú - Nuevo Sol + + + PGK - Kina + PGK - Papúa Nueva Guinea - Kina + + + PHP - Philippines Peso + PHP - Filipinas - Peso + + + PKR - Pakistani Rupee + PKR - Pakistán - Rupia + + + PLN - Zloty + PLN - Polonia - Zloty + + + PYG - Guarani + PYG - Paraguay - Guaraní + + + QAR - Qatari Riyal + QAR - Qatar - Rial + + + RON - Romanian New Leu + RON - Rumanía - Nueva Lei + + + RSD - Serbian Dinar + RSD - Serbia - Dinar + + + RUB - Russian Federation Rouble + RUB - Rusia - Rublo + + + RWF - Rwandan Franc + RWF - Ruanda - franco ruandés + + + SAR - Saudi Riyal + SAR - Arabia Saudí - Rial + + + SBD - Solomon Islands Dollar + SBD - Islas Salomón - Dólar + + + SCR - Seychelles Rupee + SCR - Seychelles - Rupia + + + SDG - Sudanese Pound + SDG - Sudán - Libra + + + SEK - Swedish Krona + SEK - Suecia - Corona + + + SGD - Singapore Dollar + SGD - Singapur - Dólar + + + SHP - St. Helena Pound + SHP - Santa Elena - Libra + + + SLL - Leone + SLL - Sierra Leona - Leone + + + SOS - Somali Shilling + SOS - Somalia - Chelín + + + SRD - Surinamese Dollar + SRD - Surinam - Dólar + + + SSP - South Sudanese Pound + SSP - Sudán del sur - Libra + + + STD - Dobra + STD - Santo Tomé/Príncipe - Dobra + + + SVC - El Salvador Colon + SVC - El Salvador - Colón + + + SYP - Syrian Pound + SYP - Siria - Libra + + + SZL - Lilangeni + SZL - Suazilandia - Lilangeni + + + THB - Baht + THB - Tailandia - Baht + + + TJS - Tajikistani Somoni + TJS - Tayikistán - Somoni + + + TMT - Turkmenistani Manat + TMT - Turkmenistán - Nuevo Manat + + + TND - Tunisian Dinar + TND - Túnez - Dinar + + + TOP - Pa'anga + TOP - Tonga - Pa'anga + + + TRY - New Turkish Lira + TRY - Turquía - Lira + + + TTD - Trinidad and Tobago Dollar + TTD - Trinidad/Tobago - Dólar + + + TWD - Taiwan Dollar + TWD - Taiwan - Dólar + + + TZS - Tanzanian Shilling + TZS - Tanzania - Chelín + + + UAH - Hryvna + UAH - Ucrania - Jrivnia + + + UGX - Ugandan Shilling + UGX - Uganda - Chelín + + + USD - United States Dollar + USD - US Dólar + + + UYU - Uruguayan Peso + UYU - Uruguay - Peso + + + UZS - Uzbekistani Som + UZS - Uzbekistan - Som + + + VEF - Bolivar Fuerte + VEF - Venezuela - Bolívar Fuerte + + + VND - Viet Nam Dông + VND - Vietnam - Dong + + + VUV - Vatu + VUV - Vanuatu - Vatu + + + WST - Tala + WST - Samoa - Tala + + + XCD - East Caribbean Dollar + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + YER - Yemen Rial + + + ZAR - Rand + ZAR - Suráfrica - Rand + + + ZMK - Zambian Kwacha + ZMK - Kwacha zambiano + + + ZWL - Zimbabwe Dollar + ZWL - Zimbabwe - Dólar + + + Fr. + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/exception.php b/system/modules/isotope/languages/es/exception.php deleted file mode 100644 index ba8485348e..0000000000 --- a/system/modules/isotope/languages/es/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/explain.php b/system/modules/isotope/languages/es/explain.php deleted file mode 100644 index d9fc9f3359..0000000000 --- a/system/modules/isotope/languages/es/explain.php +++ /dev/null @@ -1,17 +0,0 @@ -Para subir una nueva imagen, selecciona el archivo y guardar el producto. Tras la subida con éxito, se muestra una vista previa de la imagen y junto a ella se puede acceder a su texto alternativo y una descripción. Por varias imágenes, puedes hacer clic en las flechas a la derecha y cambiar sus ordenes, la imagen superior se utiliza como la imagen principal de cada producto.

'; diff --git a/system/modules/isotope/languages/es/explain.xlf b/system/modules/isotope/languages/es/explain.xlf new file mode 100644 index 0000000000..7f64f428e6 --- /dev/null +++ b/system/modules/isotope/languages/es/explain.xlf @@ -0,0 +1,35 @@ + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + <p class="tl_help_table">Para subir una nueva imagen, selecciona el archivo y guardar el producto. Tras la subida con éxito, se muestra una vista previa de la imagen y junto a ella se puede acceder a su texto alternativo y una descripción. Por varias imágenes, puedes hacer clic en las flechas a la derecha y cambiar sus ordenes, la imagen superior se utiliza como la imagen principal de cada producto.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/iso_upgrade.php b/system/modules/isotope/languages/es/iso_upgrade.php deleted file mode 100644 index e5583d5526..0000000000 --- a/system/modules/isotope/languages/es/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Actualizar + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/modules.php b/system/modules/isotope/languages/es/modules.php deleted file mode 100644 index 656f40f864..0000000000 --- a/system/modules/isotope/languages/es/modules.php +++ /dev/null @@ -1,72 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Gestión de productos + + + Manage products for your Isotope eCommerce shop + Gestión de productos para la tienda Isotope eCommerce + + + Orders + Pedidos + + + See and manage orders for your shop + Ver y gestionar los pedidos de la tienda + + + Store configuration + Configuración de la tienda + + + Setup and configure Isotope eCommerce to your needs + Instalar y configurar Isotope eCommerce para tus necesidades + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Filtro de producto + + + Define individual filters for Isotope such as category trees and product attribute filters. + Definir filtros individuales para Isótope tales como árboles de categorías y filtros de atributos del producto. + + + Cumulative Filter + Filtro acumulable + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Proporciona un filtro acumulable para que los visitantes puedan reducir la elección del producto haciendo clic en varias condiciones. + + + Product List + Lista de productos + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Módulo de Listado General. Se puede utilizar para la lista de productos o valores de atributos. Puede combinarse con otros módulos (es decir, el módulo de filtro) para proporcionar más capacidades de desglose. + + + Product Variant List + Lista de Variantes + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Lista de cada variante de un producto. Asegúrese de que utiliza la plantilla iso_list_variants. + + + Product Reader + Lector de producto + + + Product reader module. This is used to display product details. + Módulo lector de producto. Esto se utiliza para mostrar los detalles del producto. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Cesta de la compra + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + Un módulo de cesta de la compra con todas las funciones. Bloque o Pantalla completa se puede configurar mediante la selección de la plantilla. + + + Checkout + Caja + + + Allow store customers to complete their transactions. + Permita que los clientes de la tienda completen sus transacciones. + + + Address Book + Libreta de direcciones + + + Allow customers to manage their address book. + Permite a los clientes gestionar su libreta de direcciones. + + + Order History + Historial de pedidos + + + Order lister that allows customers to view their order history + Lista de pedidos que permite a los clientes ver su historial de pedidos. + + + Order Details + Detalle de pedidos + + + Order reader that allows customers to view order history details + Lector de pedido que permite a los clientes ver los detalles de sus pedidos. + + + Store Config Switcher + Cambios de parámetros r de la tienda + + + Switch between store configuration to change currency and other settings. + Cambio de configuración del almacén para cambio de moneda y otros ajustes. + + + Related products + Productos relacionados + + + List products related to the current one. + Lista de productos relacionados con el actual. + + + Messages + Mensajes + + + Displays all Isotope messages if they have not been displayed elsewhere. + Muestra todos los mensajes de Isotope si no han sido mostrados en otro lugar. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + Configuración Isotope eCommerce (Version: %s) + + + Products + Productos + + + Attributes + Atributos + + + Manage and create product attributes such as size, color, etc. + Administrar y crear los atributos del producto como el tamaño, color, etc + + + Product types + Tipos de productos + + + Manage and create product types from sets of attributes. + Administrar y crear tipos de productos a partir de un conjunto de atributos. + + + Related categories + Categorías relacionadas + + + Define categories for product relations. + Definir categorías para las relaciones entre los productos. + + + Galleries + + + Define how you want the images in your product to be rendered. + + + Base prices + Precios básicos + + + Define base price. + Define precios básicos. + + + Checkout Flow + Proceso de pago + + + Shipping methods + Métodos de envío + + + Set up shipping methods. + + + Payment methods + Formas de pago + + + Set up payment methods. + + + Tax classes + Clases de impuestos + + + Set up Tax classes, which contain sets of Tax rates. + Configuración de las clases de impuestos, que contienen conjuntos de tasas de impuestos. + + + Tax rates + Tasas de impuestos + + + Set up tax rates based on things like shipping/billing location and order total. + Configuración de tasas de impuestos basadas en cosas como la dirección de envío/facturación y el total del pedido. + + + General settings + Configuración general + + + Store configurations + Configuración de la tienda + + + Configure general settings for this store. + Configurar las opciones generales para esta tienda. + + + Order status + Estado pedido + + + Define order status. + Definir el estado del pedido. + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/subdivisions.php b/system/modules/isotope/languages/es/subdivisions.php deleted file mode 100644 index 532cf2949f..0000000000 --- a/system/modules/isotope/languages/es/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + ID Tienda + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + Etiqueta + + + Please enter a custom label for this address. + Introduce una etiqueta personalizada para esta dirección. + + + Gender + + + Please choose the gender. + + + Salutation + Trato + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Por favor introduce el trato (Sr., Sra., Dr., Prof.). + + + First name + Nombre + + + Please enter the first name. + Introduce el nombre. + + + Last name + Apellido + + + Please enter the last name. + Introduce el apellido. + + + Date of birth + + + Please enter the date of birth. + + + Company + Empresa + + + You can enter a company name here. + Puede introducir aquí el nombre de la empresa. + + + VAT No. + NIF / Num. IVA + + + Please enter a VAT number. + Introduce un número de identificación fiscal. + + + Street + Calle + + + Please enter the street name and the street number. + Introduce el nombre de la calle y el número de la calle. + + + Street 2 + Calle 2 + + + Enter a second street info if there's any. + Información añadida a la dirección + + + Street 3 + Calle 3 + + + Enter a third street info if there's any. + Información añadida a la dirección + + + Postal code + Codigo Postal + + + Please enter the postal code. + Introduce el código postal. + + + City + Ciudad + + + Please enter the name of the city. + + + State + Comunidad + + + Please enter the name of the state. + + + Country + País + + + Please select a country. + Introduce el país. + + + Phone number + Teléfono + + + Please enter the phone number. + Introduce el número de teléfono. + + + E-mail address + E-mail + + + Please enter a valid e-mail address. + Por favor, introduzca una dirección de e-mail válida. + + + Default billing address + Dirección de facturación por defecto + + + Is this your default billing address? + ¿Es ésta su dirección de facturación prederterminada? + + + Default shipping address + Dirección de envío por defecto + + + Is this your default shipping address? + ¿Es ésta su dirección de envío predeterminada? + + + Store + Tienda + + + Personal data + Datos personales + + + Address details + Detalles dirección + + + Contact details + Contacto + + + Default address + Dirección predeterminada + + + Personal data + Datos personales + + + Address details + Detalles dirección + + + Contact details + Contacto + + + Default address + Dirección predeterminada + + + New address + Nueva dirección + + + Create a new address + Crear una nueva dirección + + + Edit address + Editar la dirección + + + Edit address ID %s + Editar la dirección ID %s + + + Duplicate address + Duplicar la dirección + + + Duplicate address ID %s + Duplicar la dirección ID %s + + + Delete address + Borrar la dirección + + + Delete address ID %s + Borrar la dirección ID %s + + + Address details + Detalles dirección + + + Show details of address ID %s + Mostrar los detalles de la dirección ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_attribute.php b/system/modules/isotope/languages/es/tl_iso_attribute.php deleted file mode 100644 index 85c76b5a84..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_attribute.php +++ /dev/null @@ -1,137 +0,0 @@ -).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][0] = 'Fecha'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][1] = 'Comprueba si la entrada coincide con el formato de fecha global.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][0] = 'Hora'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][1] = 'Comprueba si la entrada coincide con el formato de la hora global.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][0] = 'Fecha y Hora'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][1] = 'Comprueba si la entrada coincide con el formato global de fecha y de hora.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][0] = 'Teléfono'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][1] = 'Permite caracteres numéricos, mas (+), menos (-), barra (/), paréntesis () y espacio ( ).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][0] = 'E-mail'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][1] = 'Comprueba si la entrada es una dirección de correo electrónico válida.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][0] = 'Formato de URL'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][1] = 'Comprueba si la entrada es una URL válida.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][0] = 'Precio'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][1] = 'Comprueba si la entrada es un precio válido.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][0] = 'Descuento'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][1] = 'Comprueba si la entrada es un descuento válido
Ejemplo:. -10%, -10, 10, +10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][0] = 'Recargo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][1] = 'Comprueba si la entrada es un recargo válido
Ejemplo:. 10.00, 10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_asc'] = 'Nombre de archivo (ascendente)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_desc'] = 'Nombre de archivo (descendente)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_asc'] = 'Fecha (ascendente)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_desc'] = 'Fecha (descendente)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['random'] = 'Orden aleatorio'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][0] = 'Nuevo atributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][1] = 'Crear un nuevo atributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][0] = 'Editar atributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][1] = 'Editar atributo ID %s'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][0] = 'Copiar atributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][1] = 'Copiar atributo ID %s'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][0] = 'Borrar atributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][1] = 'Borrar atributo ID %s. La columna de base de datos no será eliminada, es necesario actualizar manualmente la base de datos utilizando la herramienta de instalación o el repository manager.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][0] = 'Detalles de atributos'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][1] = 'Mostrar los detalles del atributo ID %s'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['deleteConfirm'] = '¿Está seguro que quiere eliminar el atributo ID %s? La columna de la base de datos no será eliminada, es necesario actualizar manualmente la base de datos utilizando la herramienta de instalación o el repository manager.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['attribute_legend'] = 'Nombre y tipo de atributo '; -$GLOBALS['TL_LANG']['tl_iso_attribute']['description_legend'] = 'Descripción'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['options_legend'] = 'Opciones'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['config_legend'] = 'Configuración del atributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['search_filters_legend'] = 'Opciones de Búsqueda y Filtrado'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['store_legend'] = 'Archivo de la tienda'; diff --git a/system/modules/isotope/languages/es/tl_iso_attribute.xlf b/system/modules/isotope/languages/es/tl_iso_attribute.xlf new file mode 100644 index 0000000000..1183da49c7 --- /dev/null +++ b/system/modules/isotope/languages/es/tl_iso_attribute.xlf @@ -0,0 +1,667 @@ + + + + + Name + Nombre + + + Please enter a name for this attribute. + Por favor, introduzca un nombre para este atributo. + + + Internal name + Nombre interno + + + Internal name is the database field name and must be unique. + El nombre interno es el nombre en la base de datos y debe ser único. + + + Type + Tipo + + + Please select a type for this attribute. + Por favor seleccione un tipo de impuesto para este atributo. + + + Field Group + Grupo de campo + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + Seleccione un grupo de campo al cual se refiere este atributo (utilizado para organizar los campos relacionados en grupos fieldset plegables al editar los productos). + + + Add to product variants wizard + Asistente para añadir variantes del producto + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + Si está seleccionada, se añadirá este atributo en el asistente variantes del producto, para su uso como una opción de variante del producto. + + + Defined by customer + Definido por el cliente + + + Please select if this value defined by the customer (frontend). + Por favor, seleccione si este valor esta definido por el cliente (frontend). + + + Description + Descripción + + + The description is shown as a hint to the backend user. + La descripción se muestra como una sugerencia al usuario backend. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + Producto + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + Opciones + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + Escriba una o varias opciones. Utilice los botones para añadir, mover o eliminar una opción. Si está trabajando sin ayuda de JavaScript debe guardar sus cambios antes de modificar el orden! + + + Value + Valor + + + Label + Etiqueta + + + Default + Por defecto + + + Group + Groupo + + + Options + Opciones + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + Campo obligatorio + + + The field must be filled when editing a product. + El campo debe ser rellenado durante la edición de un producto. + + + Multiple selection + Selección múltiple + + + Allow visitors to select more than one option. + Permitir a los visitantes que seleccionen más de una opción. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + Tipos de archivo permitidos + + + A comma separated list of valid file extensions. + Una lista separada por comas de extensiones de archivo válidos. + + + Use HTML editor + Utilizar el editor HTML + + + Select a tinyMCE configuration file to enable the rich text editor. + Seleccione un archivo de configuración TinyMCE para habilitar el editor de texto enriquecido. + + + Multilingual + Multilingüe + + + Check here if this field should be translated. + Marque aquí si este campo debe ser traducido. + + + Input validation + Validación de entrada + + + Validate the input against a regular expression. + Validar la entrada con una expresión regular. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + Longitud máxima + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + Limitar la longitud de campo a un cierto número de caracteres (texto) o bytes (subida de archivos). + + + Foreign table & field + Tabla y campo exterior + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + En lugar de añadir opciones, puede introducir una combinación tabla.campo para seleccionar en la base de datos. Para utilizar las claves externas multilingües, introduzca una por línea y especifique el idioma (ejemplo: en = tl_table.field) + + + Parent field + Campo padre + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + Por favor, seleccione el campo padre, que debe ser de tipo "Select-Menu". Para que funcione la relación padre-hijo, definir cada opción de este campo padre como el grupo del Select-Menu condicional. + + + Show files + Mostrar archivos + + + Show both files and folders. + Mostrar archivos y carpetas. + + + Files only + Archivos sólo + + + Remove the radio buttons or checkboxes next to folders. + Retire los botones de opción o casillas junto a las carpetas. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + Tipo de campo + + + Display radio buttons or checkboxes next to folders. + Mostrar botones de opción o casillas junto a las carpetas. + + + Order by + Ordenar por + + + Please choose the sort order. + Por favor, elija el orden de clasificación. + + + Root directory + Directorio raíz + + + You can limit the file tree by defining a root directory here. + Puede limitar el árbol de archivos mediante la definición de un directorio raíz aquí. + + + Store uploaded files + Guardar los archivos subidos + + + Move the uploaded files to a folder on the server. + Mover los archivos subidos a una carpeta en el servidor. + + + Target folder + Carpeta de destino + + + Please select the target folder from the files directory. + Por favor, seleccione la carpeta de destino en el directorio de archivos. + + + Use home directory + Utilice el directorio home + + + Store the file in the home directory if there is an authenticated user. + Guardar el archivo en el directorio home si hay un usuario autentificado. + + + Preserve existing files + Preservar los archivos existentes + + + Add a numeric suffix to the new file if the file name already exists. + Agregar un sufijo numérico para el nuevo archivo si ya existe el nombre del archivo. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + Carpeta de destino + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + Añadir a la lista de opciones "Ordenar por" + + + This field will be sortable in the listing module provided the attribute is visible to customers. + Este campo se puede ordenar en el módulo de la lista proporcionando el atributo visible para los clientes. + + + Backend filterable + Filtrable Backend + + + Can this attribute be used in a backend filter? + ¿Este atributo puede ser utilizado en un filtro de backend? + + + Backend searchable + Búsqueda Backend + + + Should the field be available in the backend search? + + + Frontend filterable + Filtrable frontend + + + Can this attribute be used in a frontend filter? + ¿Este atributo puede ser utilizado en un filtro frontend? + + + Frontend searchable + Búsqueda frontend + + + Should the search engine look in this field for search terms? + ¿Debe el motor de búsqueda buscar en este campo para los términos de búsqueda? + + + Date picker + Selector de fecha + + + Show a date picker for this field. + Mostrar un selector de fecha para este campo. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + Casilla + + + Radio + Opción + + + Numeric characters + Caracteres numéricos + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + Permite caracteres numéricos, menos (-), punto (.) y espacio ( ). + + + Alphabetic characters + Caracteres alfabéticos + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + Permite caracteres alfabéticos, menos (-), punto (.) y espacio ( ). + + + Alphanumeric characters + Caracteres alfanuméricos + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + Permite caracteres alfanuméricos, menos (-), punto (.) y espacio ( ). + + + Extended alphanumeric characters + Caracteres alfanuméricos extendidos + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + Permite todo excepto caracteres especiales que generalmente están codificados por razones de seguridad (#/()<=>). + + + Date + Fecha + + + Checks whether the input matches the global date format. + Comprueba si la entrada coincide con el formato de fecha global. + + + Time + Hora + + + Checks whether the input matches the global time format. + Comprueba si la entrada coincide con el formato de la hora global. + + + Date and time + Fecha y Hora + + + Checks whether the input matches the global date and time format. + Comprueba si la entrada coincide con el formato global de fecha y de hora. + + + Phone number + Teléfono + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + Permite caracteres numéricos, mas (+), menos (-), barra (/), paréntesis () y espacio ( ). + + + E-mail address + E-mail + + + Checks whether the input is a valid e-mail address. + Comprueba si la entrada es una dirección de correo electrónico válida. + + + URL format + Formato de URL + + + Checks whether the input is a valid URL. + Comprueba si la entrada es una URL válida. + + + Price + Precio + + + Checks whether the input is a valid price. + Comprueba si la entrada es un precio válido. + + + Discount + Descuento + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + Comprueba si la entrada es un descuento válido <br /> Ejemplo:. -10%, -10, 10, +10% + + + Surcharge + Recargo + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + Comprueba si la entrada es un recargo válido <br /> Ejemplo:. 10.00, 10% + + + Custom order + + + File name (ascending) + Nombre de archivo (ascendente) + + + File name (descending) + Nombre de archivo (descendente) + + + Date (ascending) + Fecha (ascendente) + + + Date (descending) + Fecha (descendente) + + + Random order + Orden aleatorio + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + Nuevo atributo + + + Create a new attribute. + Crear un nuevo atributo + + + Edit attribute + Editar atributo + + + Edit attribute ID %s. + Editar atributo ID %s + + + Copy attribute + Copiar atributo + + + Copy attribute ID %s. + Copiar atributo ID %s + + + Delete attribute + Borrar atributo + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Borrar atributo ID %s. La columna de base de datos no será eliminada, es necesario actualizar manualmente la base de datos utilizando la herramienta de instalación o el repository manager. + + + Attribute details + Detalles de atributos + + + Show details for attribute ID %s. + Mostrar los detalles del atributo ID %s + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + ¿Está seguro que quiere eliminar el atributo ID %s? La columna de la base de datos no será eliminada, es necesario actualizar manualmente la base de datos utilizando la herramienta de instalación o el repository manager. + + + Attribute name & type + Nombre y tipo de atributo + + + Description + Descripción + + + Options + Opciones + + + Attribute configuration + Configuración del atributo + + + Search & Filtering Settings + Opciones de Búsqueda y Filtrado + + + Store file + Archivo de la tienda + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_attribute_option.php b/system/modules/isotope/languages/es/tl_iso_attribute_option.php deleted file mode 100644 index a06f8cecff..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_attribute_option.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Type + Tipo + + + Select a type for this label. + + + Option + + + Group + Groupo + + + Default + Por defecto + + + Check here if this should be the default option. + + + Label + Etiqueta + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Precio + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + Publicar + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_baseprice.php b/system/modules/isotope/languages/es/tl_iso_baseprice.php deleted file mode 100644 index 7e71f17f75..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_baseprice.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Name + Nombre + + + Enter a name for this base price. + Introduzca un nombre para este precio básico. + + + Base amount + Importe base + + + Enter the base amount (e.g. "100"). + Introduce el importe base (por ejemplo, "100"). + + + Label + Etiqueta + + + Enter a label for this base price (e.g. "%s per 100g".) + Introduce una etiqueta para este precio base (por ejemplo, "%s por 100g".) + + + New base price + Nuevo precio básico + + + Create a new base price + Crear un nuevo precio básico + + + Edit base price + Editar precio básico + + + Edit base price ID %s + Editar precio básico ID %s + + + Duplicate base price + Duplicar precio básico + + + Duplicate base price ID %s + Duplicar precio básico ID %s + + + Delete base price + Borrar precio básico + + + Delete base price ID %s + Borrar precio básico ID %s + + + Base price details + Detalles precio básico + + + Show details of base price ID %s + Mostrar detalles precio básico ID %s + + + Base price + Precio basico + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_config.php b/system/modules/isotope/languages/es/tl_iso_config.php deleted file mode 100644 index 93a12c7f5c..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_config.php +++ /dev/null @@ -1,117 +0,0 @@ - + + + + Configuration Name + Nombre de la configuración + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + Etiqueta + + + The label is used in frontend, e.g. for config switcher. + La etiqueta se utiliza en la interfaz, por ejemplo, config switcher. + + + Set as default store + Definir como tienda por defecto + + + Set this as the default store for back-end currency formatting and other locale-specific information. + Configura está como almacén predeterminado para el formato de moneda y otra información específica para la localización. + + + First name + Nombre + + + Please enter the first name (if applicable). + Introduce el nombre (si es aplicable). + + + Last name + Apellido + + + Please enter the last name (if applicable). + Introduce el apellido (si es aplicable). + + + Company + Empresa + + + You can enter a company name here (if applicable). + Puede introducir un nombre de la empresa aquí (si es aplicable). + + + VAT No. + NIF / Num. IVA + + + Please enter a VAT number. + Introduce un número de identificación fiscal. + + + Street + Calle + + + Please enter the street name and the street number. + Introduce el nombre de la calle y el número de la calle. + + + Street 2 + Calle 2 + + + Enter a second street info if there's any. + Información añadida a la dirección + + + Street 3 + Calle 3 + + + Enter a third street info if there's any. + Información añadida a la dirección + + + Postal code + Codigo Postal + + + Please enter the postal code. + Introduce el código postal. + + + City + Ciudad + + + Please enter the name of the city. + + + State + Comunidad + + + Please enter the name of the state. + + + Country + País + + + Please select a country. This is also the default for custom shipping/billing addresses. + Por favor, seleccione un país. Esto también es el valor predeterminado para las direcciones de envío/facturación personalizadas. + + + Phone number + Teléfono + + + Please enter the phone number. + Introduce el número de teléfono. + + + Shipping email address + Dirección de correo electrónico de envío + + + Please enter a valid e-mail address. + Por favor, introduzca una dirección de e-mail válida. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + Seleccione un país predeterminado para una nueva dirección de facturación + + + Default shipping country + + + Select a default country for new shipping addresses. + Seleccione un país predeterminado para una nueva dirección de envío + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + Limite los países de los miembros + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + Limite los países de los miembros (Registro, Datos de carácter cersonal) a la lista combinada de los países de facturación y de envío. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + Elegir un formato de precios. + + + Rounding precision + Precisión de redondeo + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + ¿Cuánta precisión decimal tener? Debe establecer algo entre 0 y 2 para todas las pasarelas de pago para que funcione correctamente. Vea el manual de PHP para round (). + + + Rounding increment + Incremento de redondeo + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + Algunas divisas (por ejemplo francos suizos) no son compatibles con una precisión de 0.01. + + + Currency + Divisa + + + Please select a currency for this store. + Por favor, selecciona una divisa para la tienda. + + + Position of currency code/symbol + Posición del símbolo/código de divisa + + + Select if you want to show currency on the left or right side of the price. + Seleccione si desea mostrar la divisa en la parte izquierda o derecha del precio. + + + Use currency symbol + Utilizar le símbolo de divisa + + + Use a currency symbol ($, €) if available. + Utilizar un símbolo de divisa ($, €) si está disponible. + + + Include blank space + Incluir un espacio + + + Add space between price and currency symbol. + Añadir un espacio entre el precio y el símbolo de la divisa. + + + Price factor + Factor de precio + + + Defaults should be 1. You can use this to convert between multiple currencies. + Debería ser 1 por defecto. Usted puede usar esto para convertir entre múltiples divisas. + + + Calculation mode + Modo de cálculo + + + Divide or multiply using this factor. + Dividir o multiplicar usando este factor. + + + Automatic currency conversion + Conversión de divisa automática + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + Habilitar la actualización automática de los elementos de cálculo de precios mediante el uso de un proveedor de cambio de divisas en línea. + + + Currency origin + Divisa de inicio + + + Please select the source currency for calculation. + Por favor, selecciona la divisa de origen para el cálculo + + + Currency Data Provider + Proveedor de datos de divisas + + + Select an available online provider of currency calculation data. + Seleccione un proveedor de datos de divisas en línea disponible. + + + Order number prefix + Prefijo del número de pedido + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + Puede agregar un prefijo (por ejemplo, ejercicio fiscal) para el número de pedido autoincremental. + + + Order number length + Longitud del número de pedido + + + Select the minimum length of the order number (not including order prefix). + Seleccione la longitud mínima del número de pedido (no incluye el prefijo del pedido). + + + Status for new orders + Estado para nuevos pedidos + + + Choose a matching status for new orders. A payment module can override this. + Elegir un estado para los nuevos pedidos. Un módulo de pago puede reemplazar esto. + + + Order status on error + Estado del pedido en caso de error + + + Select an order status if something goes wrong (e.g. payment). + Seleccione el estado del pedido, si algo sale mal (por ejemplo, pago). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + Logo de la factura + + + Select a logo to show up on the invoices for this store. + Seleccionar un logotipo para imprimir en las facturas de la tienda. + + + Templates folder + Carpeta de plantillas + + + Here you can select a templates folder to search before every other template folder. + Aquí puede seleccionar una carpeta de plantillas donde buscar antes de culquiera otra carpeta. + + + Minimum subtotal + Subtotal mínimo + + + The minimum cart subtotal required to order. Enter 0 to disable. + Subtotal mínimo de la cesta requerido para hacer un pedido. Introduzca 0 para desactivar. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + A la izquierda del precio + + + To the right of price + A la derecha del precio + + + Divide + Dividir + + + Multiply + Multiplicar + + + Name + Nombre + + + Width + Longitud + + + Height + Altura + + + Mode + Modo + + + Watermark image + Imagen filigrana + + + Position + Posición + + + European Central Bank + Banco Central Europeo + + + Swiss Federal Department of Finance + Departamento Federal Suizo de Finanzas + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + Nueva configuración + + + Create a new store configuration. + Crear una nueva configuración. + + + Edit configuration + Editar configuración + + + Edit store configuration ID %s. + Editar configuración ID %s + + + Copy configuration + Copiar configuración + + + Copy store configuration ID %s. + Copiar configuración ID %s + + + Delete configuration + Borrar configuración + + + Delete store configuration ID %s. + Borrar configuración ID %s. + + + Show configuration details + Mostrar los detalles de la configuración + + + Show details for store configuration ID %s. + Mostrar los detalles de la configuración ID %s. + + + Name + Nombre + + + Address configuration + Configuración de dirección + + + Configuration + Configuración + + + Checkout + Caja + + + Pricing + + + Currency formatting + Formato de moneda + + + Currency conversion + Conversión de divisa + + + Orders + Pedidos + + + Images + Imágenes + + + URL settings + + + Products + Productos + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_document.php b/system/modules/isotope/languages/es/tl_iso_document.php deleted file mode 100644 index 6895040b0d..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_document.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + Título del documento. + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + Plantilla de documento + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + Configuración general + + + Template + Plantilla + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_download.php b/system/modules/isotope/languages/es/tl_iso_download.php deleted file mode 100644 index 91891de613..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_download.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Attachement + Anexo + + + Select the file or folder content you want to sell. + + + Downloads allowed + Descargas permitidas + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + El número de veces que esto(s) archivo(s) se puede(n) descargar por pedido (multiplicado por la cantidad vendida). Introduce 0 para descargas ilimitadas. + + + Expiration + Expiración + + + Define if the download(s) expires after a certain time period. + Definir si la(s) descarga(s) expira(n) después de un cierto período de tiempo. + + + Download available + + + Click here to include this download in new orders. + + + Add download + Añadir descarga + + + Add a new download to this product + Añadir una nueva descarga de este producto + + + Edit download + Editar descarga + + + Edit download ID %s + Modificar descarga ID %s + + + Duplicate download + Duplicar descarga + + + Duplicate download ID %s + Duplicar descarga ID %s + + + Move download + Mover descarga + + + Move download ID %s + Mover descarga ID %s + + + Delete download + Borrar descarga + + + Delete download ID %s + Borrar descarga ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + Detalles descarga + + + Show details of download ID %s + Mostrar detalles de la descarga ID %s + + + Edit product + Editar producto + + + Edit this product + Editar este producto + + + Paste at the top + Copiar al principio + + + Paste after download ID %s + Pegar despues del archivo ID %s + + + Add new at the top + Añadir nuevo al principio + + + Add new after download ID %s + Añadir nuevo despues del archivo ID %s + + + Attachement + Anexo + + + Limits + Límites + + + Publishing + Publicar + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_gallery.php b/system/modules/isotope/languages/es/tl_iso_gallery.php deleted file mode 100644 index b7c977cc30..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_gallery.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Name + Nombre + + + Enter a name for this gallery. + + + Type + Tipo + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + Esta imagen se utilizará si no se encuentra un archivo de imagen o no está asociada con un producto. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + Nombre y tipo + + + Image sizes + Talla de las imagenes + + + Configuration + Configuración + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_group.php b/system/modules/isotope/languages/es/tl_iso_group.php deleted file mode 100644 index 35d4b2f893..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_group.php +++ /dev/null @@ -1,39 +0,0 @@ - + + + + Group name + Nombre del grupo + + + Please enter a name for this group. + Introduce un nombre para este grupo. + + + Default product type + Tipo de producto por defecto + + + Here you can specify a default product type for this product group. + Aquí puede especificar un tipo de producto por defecto de este grupo de productos. + + + New group + Nuevo grupo + + + Create a new group + Crear un nuevo grupo + + + Edit group + Editar grupo + + + Edit group ID %s + Editar grupo ID %s + + + Duplicate group + Duplicar grupo + + + Duplicate group ID %s + Duplicar grupo ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + Mover grupo + + + Move group ID %s + Mover grupo ID %s + + + Delete group + Borrar grupo + + + Delete group ID %s + Borrar grupo ID %s + + + Group details + Detalles grupo + + + Show details of group ID %s + Mostrar los detalles del grupo ID %s + + + Paste after + Copiar despues + + + Paste after group ID %s + Copiar detras del grupo ID %s + + + Paste into + Copiar dentro + + + Paste into group ID %s + Copiar dentro del grupo ID %s + + + Product group settings + Configuracion del grupo de productos + + + Product Groups + Grupo de productos + + + Manage product groups + Gestionar los grupos del producto + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_integrity.php b/system/modules/isotope/languages/es/tl_iso_integrity.php deleted file mode 100644 index ba8485348e..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_label.php b/system/modules/isotope/languages/es/tl_iso_label.php deleted file mode 100644 index 2f9b984019..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_label.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Language + Idioma + + + Please select a language. + Por favor selecciona un idioma. + + + Label + Etiqueta + + + Enter the source label. + introducir la etiqueta fuente + + + Replacement + Sustitución + + + Enter the replacement in the specified language. + Introducir la sustitución en el idioma especificado. + + + New label + Nueva etiqueta + + + Create a new label + Crear una nueva etiqueta + + + Edit label + Editar etiqueta + + + Edit label ID %s + Editar etiqueta ID %s + + + Duplicate label + Duplicar etiqueta + + + Duplicate label ID %s + Duplicar etiqueta ID %s + + + Delete label + Borrar etiqueta + + + Delete label ID %s + Borrar etiqueta ID %s + + + Label details + Detalles etiqueta + + + Show details of label ID %s + Mostrar los detalles de la etiqueta ID %s + + + Label translation + Traducción de etiqueta + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_orderstatus.php b/system/modules/isotope/languages/es/tl_iso_orderstatus.php deleted file mode 100644 index cda76a2ad6..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_orderstatus.php +++ /dev/null @@ -1,40 +0,0 @@ - + + + + Name + Nombre + + + Please enter a name for this status. + Introduce un nombre para este estado. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + El pedido está pagado + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + Supone que el pedido ha sido pagado cuando tiene este estado. Esto, por ejemplo, permite la descarga de los archivos. + + + Show on welcome screen + Mostrar en la pantalla de bienvenida + + + Show number of orders with this status on the backend welcome screen. + Mostrar el número de pedidos con este estado en la pantalla de bienvenida de backend. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + Nuevo estado de pedido + + + Create a new order status + Crear un nuevo estado de pedido + + + Edit order status + Editar el estado de pedido + + + Edit order status ID %s + Editar el estado de pedido ID %s + + + Duplicate order status + Duplicar el estado de pedido + + + Duplicate order status ID %s + Duplicar el estado de pedido ID %s + + + Move order status + Mover el estado de pedido + + + Move order status ID %s + Mover el estado de pedido ID %s + + + Delete order status + Borrar el estado de pedido + + + Delete order status ID %s + Borrar el estado de pedido ID %s + + + Order status details + Detalles del estado de pedido + + + Show details of order status ID %s + Mostrar los detalles del estado de pedido ID %s + + + Paste after + Copiar despues + + + Paste after order status ID %s + Copiar después del estado de pedido ID %s + + + Paste into + Copiar dentro + + + Paste into order status ID %s + Copiar dentro el estado de pedido ID %s + + + Name + Nombre + + + E-Mail Notification + Notificación E-Mail + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_payment.php b/system/modules/isotope/languages/es/tl_iso_payment.php deleted file mode 100644 index c77ec65b00..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_payment.php +++ /dev/null @@ -1,130 +0,0 @@ - + + + + Payment Method Name + Nombre de la forma de pago + + + Enter a name for this payment method. This will only be used in the backend. + Introduzca un nombre para este método de pago. Esto sólo se se utilizará en el backend. + + + Payment Method Label + Etiqueta para la forma de pago + + + The label will be shown to customers on checkout. + La etiqueta se mostrará al cliente durante el proceso de pago + + + Type of Payment Gateway + Tipo de pasarela de pago + + + Select a particular payment gateway + + + Payment Note + Nota de pago + + + This note can be sent in confirmation mails (##payment_note##). + Esta nota será enviada en el correo de confirmación (##payment_note##) + + + Status for new orders + Estado para nuevos pedidos + + + Choose a matching status for new orders. + Elegir un estado para los nuevos pedidos + + + Minimum total + Total mínimo + + + Enter a number greater zero to exclude this payment method for lower priced orders. + Introducir un número superior a cero para excluir este método de pago a los pedidos de menor precio. + + + Maximum total + Total máximo + + + Enter a number greater zero to exclude this payment method for higher priced orders. + Introducir un número superior a cero para excluir este método de pago a los pedidos de mayor precio. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + Modo de cálculo de la cantidad' + + + Select a calculation mode for min/max quantity. + Seleccione el modo de cálculo de cantidad min/max. + + + Total quantity in cart + Cantidad total en la cesta + + + Total products in cart + Total de productos en la cesta + + + Available countries + Países disponibles + + + Select the countries where this payment method may be used (customer's billing address). + Seleccione los países donde esta forma de pago se puede utilizar (la dirección de facturación del cliente). + + + Shipping methods + Métodos de envío + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + Para limitar este método de pago a determinados métodos de envío (por ejemplo, sólo en efectivo al recoger). + + + Product types + Tipos de productos + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + Para limitar este método de pago a determinados tipos de productos. Si la cesta tiene un tipo de producto que no ha seleccionado, el método de pago no está disponible. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Configuración de la tienda + + + You can restrict this payment method to certain shop configurations. + + + Price + Precio + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + Clase de Impuesto + + + Please select a tax class for the price. + + + Transaction type + Tipo de transacción + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + Seleccione si desea cobrar instantáneamente el dinero o autorizar (y mantener) en una transacción posterior (por ejemplo, cuando el envío). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + Cuenta PayPal + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + Nombre de usuario Paypal Payflow Pro + + + + + + Paypal Payflow Pro vendor + Vendedor Paypal Payflow Pro + + + An alphanumeric string of about 10 characters. + Cadena alfanumérica de unos 10 caracteres. + + + Paypal Payflow Pro partner + Socio Paypal Payflow Pro + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + Distinguir mayúsculas de minúsculas! Ids de socios habituales son o "PayPal" o "PayPalUK". + + + Paypal Payflow Pro api password + Contraseña Paypal Payflow Pro api + + + An alphanumeric string of about 11 characters + Cadena alfanumérica de unos 11 caracteres + + + Paypal Payflow Pro transaction type + Tipo de transacción Paypal Payflow Pro + + + Please select a transaction type. + Por favor selecciona un tipo de transacción. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + Forma de pago + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + Necesita una verificación del número de código de la tarjeta (CCV) + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + Elija esta opción si desea aumentar la seguridad de las transacciones al exigir el código de verificación de la tarjeta. + + + Allowed Credit Card Types + Tipos de tarjetas de crédito admitidos + + + Select which credit cards the payment method accepts. + Seleccione que tarjetas de crédito el método de pago acepta. + + + Merchant-ID + ID de comerciante + + + Please enter your merchant ID. + Introducir su ID de comerciante. + + + HMAC Key + clave HMAC + + + Please enter your HMAC key from the Datatrans control panel. + Introducir su clave HMAC del panel de control Datatrans. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + Forma de pago + + + Please select a payment method for this method. + Por favor, seleccione una forma de pago por este método. + + + Credit card + Tarjeta de credito + + + Debig card + Tarjeta de debito + + + Direct debit + Direct debit + + + Seller ID + ID Vendedor + + + Please enter your seller ID (Händlerkennung). + Por favor, introduzca su ID de Proveedor (Händlerkennung). + + + Password + Contraseña + + + Please enter your SSL-Password. + Introducir su SSL-Password. + + + Reference + Referencia + + + A reference that will be shown on the seller details page instead of the cart ID. + Una referencia que se mostrará en la página de detalles del vendedor en lugar del ID de la cesta. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + Formas de pago + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + Introducir el Popup ID de tu portal ExperCash. + + + ExperCash Profile + Perfil ExperCash + + + Geben Sie die dreistellige Profilnummer ein. + Introducir el número de perfil de tres dígitos. + + + ExperCash Popup-Key + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + Introducir la clave de pop-up de su portal ExperCash. + + + Transaktionsart + Transacción + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + Se puede predefinir una transacción o el cliente puede elegir. + + + Auswahl der Zahlart durch den Endkunden + La selección del método de pago por el usuario final + + + Zahlung per Lastschrift (ELV) + Pago con Débito Directo (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + Pago con tarjeta de crédito + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + Reserva obligatoria de una tarjeta de crédito para cobro futuro + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + Transacción disponible a través Sofortuberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + Clave secreta + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + Introducir su ID del portal PayOne. + + + Secret key + Clave secreta + + + Enter the secret key you specified for this portal. + Ingrese la clave secreta que ha especificado para este portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Descripción + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + Introducir su ID de comerciante. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Formas de pago + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + Contraseña + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + Grupos de miembros + + + Restrict this payment method to certain member groups. + Restringir esta forma de pago a determinados grupos de miembros. + + + Protect payment method + Proteger el método de pago + + + Show the payment method to certain member groups only. + Mostrar la forma de pago a sólo ciertos grupos de miembros. + + + Show to guests only + Mostrar solo a los invitados. + + + Hide the payment method if a member is logged in. + Ocultar el método de pago, si un miembro se ha autentificado. + + + Debug mode + Modo Debug + + + For testing without actually capturing for payment. + Para las pruebas sin realmente cobrar para el pago. + + + Enabled + Activado + + + Check here if the payment method should be enabled in the store. + Marque aquí si la forma de pago debe estar habilitada en la tienda. + + + New payment method + Nueva forma de pago + + + Create a new payment method + + + Edit payment method + Editar forma de pago + + + Edit payment method ID %s + Editar forma de pago ID %S + + + Copy payment method + Copiar forma de pago + + + Copy payment method ID %s + Copiar forma de pago ID %s + + + Delete payment method + Borrar forma de pago + + + Delete payment method ID %s + Borrar forma de pago ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + Detalles forma de pago + + + Show details of payment method ID %s + Mostrar los detalles de la forma de pago + + + Authorize and Capture + Autorización y captura + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + Las transacciones de este tipo serán enviados para su autorización. La transacción será automáticamente recogido para su liquidación si se aprueba. + + + Authorize Only + Autorizar Sólo + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + Las operaciones de este tipo son enviadas si el comerciante desea validar la tarjeta de crédito por el importe de los bienes vendidos. Si el comerciante no tiene las mercancías almacenadas, o si desea revisar las órdenes antes de enviar las mercancías, este tipo de transacción debe ser presentado. + + + Orders without shipping + Pedidos sin envio + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + Retirada de débito + + + Credit card + Tarjeta de credito + + + Debit card + Tarjeta de debito + + + Prepayment + Pago por adelantado + + + Invoice + Factura + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + Nombre y tipo + + + Additional notes + Notas adicionales + + + General configuration + Configuración general + + + Payment gateway configuration + Configuración de la pasarela de pago + + + Price + Precio + + + Template + Plantilla + + + Expert settings + Configuración avanzada + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_product.php b/system/modules/isotope/languages/es/tl_iso_product.php deleted file mode 100644 index 09c3ef7aa0..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_product.php +++ /dev/null @@ -1,114 +0,0 @@ - + + + + Product ID + ID producto + + + Categories + Categorías + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + Seleccione una categoría (las categorías basadas en páginas se aprovechan de las funciones de las páginas de Contao como la automatización de la navegación, la protección, plantillas, y la plena integración con los elementos de contenido). + + + Product type + + + Select your product type. Product types are defined in the store configuration. + Seleccione el tipo de producto. Los tipos de productos se definen en la configuración de la tienda. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + Puede introducir un alias exclusivo para este producto. Se genera automáticamente a partir del nombre si está vacío. + + + Name + Nombre + + + Please enter the name of this product. + Por favor, introduzca un nombre para este producto. + + + SKU + Ref. + + + Please enter a unique stock keeping unit for this product. + Por favor, introduzca una referencia única para este producto. + + + Shipping weight + Peso del envío + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Por favor introduzca el peso de envío para este producto. Esto se puede utilizar para calcular el coste de envío. + + + Teaser + Anuncio + + + Please enter the teaser. + Por favor, introduzca un anuncio. + + + Description + Descripción + + + Please enter the product description. + Por favor, introduzca una descripción para este producto. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + Meta descripción + + + Meta description will be placed in the header on product detail page, for search engine optimization. + Meta descripción será colocado en la cabecera de la página de detalles del producto, para la optimización del motor de búsqueda. + + + Meta keywords + Palabras clave meta + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + Palabras clave meta serán colocados en la cabecera de la página de detalles del producto, para la optimización de motor de búsqueda. + + + Price &amp; tax class + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + Exento de envío + + + Check if item is not a shipped item (such as downloadable products). + Marca si el artículo no es un artículo enviado (por ejemplo, productos descargables). + + + Base price amount + Importe de precio básico + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + Introduzca la cantidad para calcular el precio base (por ejemplo, "1500" si su producto es 1500 gramos). + + + Images + Imágenes + + + Upload images to this product. Please save the product after selecting a file. + Subir imágenes de este producto. Por favor, guarde el producto despues de seleccionar un archivo. + + + Protect product + Proteger el producto + + + Restrict product access to certain member groups. + Restringir el acceso del producto a ciertos grupos. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + Mostrar solo a los invitados. + + + Hide the product if there is an authenticated user. + Ocultar el producto si hay un usuario autentificado. + + + CSS ID/class + CSS ID/class + + + Here you can set an ID and one or more classes. + Aquí se puede establecer una ID y una o varias clases. + + + Publish product + Publicar el producto + + + Click here to show this product on your website. + Haga clic aquí para ver este producto en su sitio web. + + + Start date + Fecha de inicio + + + Do not show this product before the date specified. + No mostrar este producto antes de la fecha especificada. + + + Stop date + Fecha de fin + + + Do not show this product after the date specified. + No mostrar este producto después de la fecha especificada. + + + Inherited attributes + Atributos heredados + + + Check the fields you want to inherit from base product. + Marcar los campos que desea heredar del producto base. + + + Source folder + Carpeta fuente + + + Please choose the folder where product assets are located. + Elija la carpeta donde se encuentran los valores del producto. + + + Preview + Previsualización + + + Alternate text + Texto alternativo + + + Link target + Enlace de destino + + + Description + Descripción + + + Translate + Traducir + + + None + Ninguno + + + Do not translate this image. + No traducir esta imagen. + + + Text + Texto + + + Translate alt text and description for this image. + Traducir el texto alternativo y la descripción de esta imagen. + + + All + Todos + + + Do not include this image in translated version. + No incluya esta imagen en la versión traducida. + + + Variant + Variante + + + Show product variants + + + New product + Nuevo producto + + + Create new product + Crear un nuevo producto + + + Add variant + Añadir una variante + + + Add new variant to a given product + Añadir una variante a un producto específico + + + Edit product + Editar producto + + + Edit product ID %s + Editar producto ID %s + + + Copy product + Copiar producto + + + Copy product ID %s + Copiar producto ID %s + + + Move product + Mover producto + + + Move product ID %s + Mover producto ID %s + + + Delete product + Borrar producto + + + Delete product ID %s + Borrar producto ID %s + + + Publish/unpublish product + Publicar/anular la publicación del producto + + + Publish/unpublish product ID %s + Publicar/anular la publicación del producto ID %s + + + Product details + Detalles del producto + + + Show details of product ID %s + Mostrar los detalles del producto ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + Productos sin asignar + + + New products + + + Added today + Añadido hoy + + + Added this week + Añadido esta semana + + + Added this month + Añadido este mes + + + Manually sort products in a page + + + Product groups + Grupos del producto + + + Manage product groups + Gestionar los grupos del producto + + + Import assets + Importar valores + + + Import images and other media from a folder + Importar imágenes y otros medias desde una carpeta + + + Manage prices + Gestionar los precios + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + Generar variantes + + + Generate variants for product ID %s + Generar variantes para el producto ID %s + + + Related products + Productos relacionados + + + Manage related products for product ID %s + Gestionar los productos relacionados con el producto ID %s + + + Downloads + Descargas + + + Edit downloads for product ID %s + Editar descarga del producto ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + Groupo + + + General Settings + Configuración general + + + Meta data + Meta data + + + Pricing Settings + Configuración del precio + + + Inventory Settings + Ajustes de Inventario + + + Shipping Settings + Ajustes de envío + + + Product Options Settings + Ajustes de las opciones del producto + + + Media Management + Gestión de medios + + + Expert settings + Configuración avanzada + + + Publishing + Publicar + + + Quantity + Cantidad + + + from %s pcs. + desde %s piezas + + + Price + Precio + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_product_category.php b/system/modules/isotope/languages/es/tl_iso_product_category.php deleted file mode 100644 index 607e0407a3..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_product_category.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Move product + Mover producto + + + Move product ID %s + Mover producto ID %s + + + Paste at the top + Copiar al principio + + + Paste after product ID %s + Copiar después del producto ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_product_collection.php b/system/modules/isotope/languages/es/tl_iso_product_collection.php deleted file mode 100644 index 9381a52d03..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_product_collection.php +++ /dev/null @@ -1,49 +0,0 @@ - + + + + Order ID + ID Pedido + + + Member (empty for guests) + + + Unique ID + ID único + + + Order status + Estado pedido + + + Select the status of this order. + Seleccionar el estado de este pedido. + + + Placed + + + Source (Cart ID) + + + Payment date + Fecha de pago + + + Enter a date when this order has been paid. + Introducir una fecha en que este orden ha sido pagado. + + + Shipped date + Fecha de envío + + + Enter a date when this order has been shipped. + Introducir una fecha en que este orden ha sido enviado. + + + Shop configuration + Configuración de la tienda + + + Payment method + Forma de pago + + + Shipping method + Método de envío + + + Billing address + + + Shipping address + + + Subtotal + Subtotal + + + Subtotal without tax + + + Total + + + Total without tax + + + Currency + Divisa + + + Language + Idioma + + + Order notes + Notas de pedido + + + If you would like to convey information to other backend users, please do so here. + Si desea transmitir información a otros usuarios backend, por favor, hágalo aquí. + + + Edit order + Editar pedido + + + Edit order ID %s + Editar pedido ID %s + + + Copy order + Copiar pedido + + + Copy order ID %s + Copiar pedido ID %s + + + Delete order + Borrar pedido + + + Delete order ID %s + Borrar pedido ID %s + + + Order details + Detalles del pedido + + + Show details of order ID %s + Mostrar los detalles del pedido ID %s + + + Payment details + Detalles del pago + + + Show payment details of order ID %s + Mostrar los detalles del pedido ID %s + + + Shipping details + Detailles de envío + + + Show shipping details of order ID %s + Mostrar los detalles del envío ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + Estado pedido + + + Order details + Detalles del pedido + + + Email data + Datos de email + + + Billing address data + Datos de direcciones de facturación + + + Shipping address data + Datos de direcciones de envío + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_product_price.php b/system/modules/isotope/languages/es/tl_iso_product_price.php deleted file mode 100644 index c1ccf9814e..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Price Tiers + Niveles de precios + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + Configure al menos un nivel de precios de "Cantidad 1". Puede introducir precios rebajados si el usuario pide más de un producto. + + + Tax Class + Clase de Impuesto + + + Please select a tax class for this price. + Por favor seleccione un tipo de impuesto para este precio. + + + Store configuration + Configuración de la tienda + + + Select a store configuration for this price. + Seleccione una configuración de tienda para este precio. + + + Member group + Grupo de miembros + + + Select a member group for this price. + Seleccione un grupo de miembros para este precio. + + + Use from + Utilizar a partir de + + + Do not use the price on the website before this day. + No utilizar el precio en el sitio web antes de este día. + + + Use until + Utilizar hasta + + + Do not use the price on the website after this day. + No utilizar el precio en el sitio web después de este día. + + + Add price + Añadir precio + + + Add a new price to this product + Añadir un nuevo precio a este producto + + + Edit price + Editar precio + + + Edit price ID %s + Editar precio ID %s + + + Duplicate price + Duplicar precio + + + Duplicate price ID %s + Duplicar precio ID %s + + + Delete price + Borrar precio + + + Delete price ID %s + Borrar precio ID %s + + + Price details + Detalles del precio + + + Show details of price ID %s + Mostrar los detalles del precio ID %s + + + Quantity (min) + Cantidad (min) + + + Price + Precio + + + Price + Precio + + + Limitations + Limitaciones + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_producttype.php b/system/modules/isotope/languages/es/tl_iso_producttype.php deleted file mode 100644 index 03cad7b809..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_producttype.php +++ /dev/null @@ -1,61 +0,0 @@ - + + + + Name + Nombre + + + Please enter a name for this product type. + Introduce un nombre para este tipo de producto. + + + Product Class + Clase de producto + + + Please select a product class. Different product classes will handle products differently. + Por favor, seleccione una clase de producto. Las diferentes clases de productos manejarán los productos de manera diferente. + + + Default + Por defecto + + + Check here if this is the default product type. + Marcar la casilla si debe ser el tipo de producto por defecto. + + + Description + Descripción + + + A hint to product managers what this product type is for. + Un consejo para los gerentes de producto para lo que es este tipo de producto . + + + Advanced pricing + Precio avanzado + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + Permita definir varios precios por producto, por ejemplo, para diferentes configuraciones de tiendas, grupos de miembros o fechas. + + + Show price tiers + Mostrar las gamas de precios + + + Show highest tier as lowest product price. + Mostrar la gama más alta como el precio más bajo del producto. + + + List template + + + Select a template for product listing. + Seleccione una plantilla para el listado de productos. + + + Reader template + + + Select a template for product details. + Seleccione una plantilla para el lector de producto + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Atributos + + + Select the collection of attributes that should be included for this product type. + Seleccione el conjunto de atributos que se deben incluir para este tipo de producto. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + Obligatorio + + + You can override the default mandatory-ness here. + + + Default + Por defecto + + + Enable variants + Habilitar variantes + + + Check here if this product type has variants. + Marcar aquí si este tipo de producto tiene variantes. + + + Variant attributes + Atributos de variante + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + Seleccione la colección de atributos de la variante que se debe incluir para este tipo de producto. Los que no están seleccionados estarán ocultos de la vista y heredados del producto padre. + + + Always show variant attributes + Mostrar siempre los atributos de variantes + + + Show a variant attribute (select, radio) even if there is only one choice. + Mostrar un atributo de variante (select, radio), incluso si sólo hay una opción. + + + Exempt from shipping + Exento de envío + + + Check if items of this product type are not a shipped item (such as downloadable products). + Marcar si los elementos de este tipo de producto no son artículos enviados (por ejemplo, productos descargables). + + + Enable downloads + Habilitar descargas + + + Check here if this product type has downloads. + Marcar aquí si este tipo de producto tiene descargas. + + + New product type + Nuevo tipo de producto + + + Create new product type. + Crear un nuevo tipo de producto. + + + Edit product type + Editar tipo de producto + + + Edit product type ID %s + Editar tipo de producto ID %s + + + Copy product type definiton + Copiar definición tipo de producto + + + Copy definition of product type ID %s + Copiar la definición tipo de producto ID %s + + + Delete product type + Borrar tipo de producto + + + Delete product type ID %s + Borrar tipo de producto ID %s + + + product type details + Detalles del tipo de producto + + + Show details of product type ID %s + Mostrar los detalles del tipo de producto ID %s + + + Product type settings + Ajustes tipo de producto + + + Description + Descripción + + + Prices + Precios + + + Templates + Plantillas + + + Product attributes + Atributos del producto + + + Variant attributes + Atributos de variante + + + Expert settings + Configuración avanzada + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_related_category.php b/system/modules/isotope/languages/es/tl_iso_related_category.php deleted file mode 100644 index 2ee93629af..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_related_category.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Category name + Nombre de la categoría + + + Please enter a name for this category. + Por favor, introduzca un nombre para esta categoría. + + + New category + Nueva Categoría + + + Create a new category + Crear nueva categoría + + + Edit category + Editar categoría + + + Edit category ID %s + Editar categoría ID %s + + + Duplicate category + Duplicar categoría + + + Duplicate category ID %s + Duplicar categoría ID %s + + + Delete category + Borrar categoría + + + Delete category ID %s + Borrar categoría ID %s + + + Category details + Detalles de la categoría + + + Show details of category ID %s + Monstrar los detalles de la categoría ID %s + + + Name + Nombre + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_related_product.php b/system/modules/isotope/languages/es/tl_iso_related_product.php deleted file mode 100644 index 8befdc7b83..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_related_product.php +++ /dev/null @@ -1,35 +0,0 @@ - + + + + Category + Categoría + + + Select a category. + Elegir una categoría. + + + Products + Productos + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + Añadir categoría + + + Add a new category with products + Agregar una nueva categoría de productos + + + Edit category + Editar categoría + + + Edit category ID %s + Editar categoría ID %s + + + Duplicate category + Duplicar categoría + + + Duplicate category ID %s + Duplicar categoría ID %s + + + Move category + Mover categoría + + + Move category ID %s + Mover categoría ID %s + + + Delete category + Borrar categoría + + + Delete category ID %s + Borrar categoría ID %s + + + Category details + Detalles de la categoría + + + Show details of category ID %s + Monstrar los detalles de la categoría ID %s + + + Edit product + Editar producto + + + Edit this product + Editar este producto + + + Category + Categoría + + + Related products + Productos relacionados + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_shipping.php b/system/modules/isotope/languages/es/tl_iso_shipping.php deleted file mode 100644 index e7d3fb19fa..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_shipping.php +++ /dev/null @@ -1,63 +0,0 @@ - + + + + Shipping Method Name + Nombre del método de envío + + + Please enter a name for this shipping method. + + + Shipping Method Type + Tipo de Método de envío + + + Please select the type of this shipping method + + + Price + Precio + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + Notas del modo de envío + + + These will be displayed on the front end in association with this shipping option. + Estos se muestran en la parte frontal, en asociación con la opción de envío. + + + Tax Class + Clase de Impuesto + + + Select a tax class that applies to the shipping price. + + + Label + Etiqueta + + + This is displayed on the front end in association with the shipping option. + Esto se muestra en la parte frontal, en asociación con la opción de envío. + + + Flat calculation + Cálculo linear + + + Select the mode of price calculation. + + + Countries + Países + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + Seleccione los países donde utilizar este método de envío. Si no selecciona nada, el método de envío se aplicará a todos los países. + + + State/Regions + Comunidades/Regiones + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + Seleccione los estados/regiones donde utilizar este método de envío. Si no selecciona nada, el método de envío se aplicará a todos los estados / regiones. + + + Postal codes + Códigos postales + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Limite el módulo de envío a ciertos códigos postales. Puede introducir una lista y rangos (por ejemplo 1234,1235,1236-1239,1100-1200) separados por comas. + + + Minimum subtotal + Subtotal mínimo + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + Subtotal máximo + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + Modo de cálculo de la cantidad' + + + Select a calculation mode for min/max quantity. + Seleccione el modo de cálculo de cantidad min/max. + + + Total quantity in cart + Cantidad total en la cesta + + + Total products in cart + Total de productos en la cesta + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Tipos de productos + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + Para limitar este método de envío a ciertos tipos de productos. Si la cesta tiene un tipo de producto que no ha sido seleccionado, el módulo de envío no está disponible. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Configuración de la tienda + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Métodos de envío + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + Grupos del miembro + + + Restrict this shipping option to certain member groups. + Restringir la opción de envío a ciertos grupos de miembros. + + + Protect module + Proteger el módulo + + + Show the module to certain member groups only. + Mostrar el módulo sólo a ciertos grupos de miembros. + + + Show to guests only + Mostrar solo a los invitados. + + + Hide the module if a member is logged in. + Ocultar el módulo si un miembro se ha autentificado. + + + Enabled + Activado + + + Is the module available for use in the store? + ¿el módulo está disponible para su uso en la tienda? + + + Title and type + Título y tipo + + + Shipping note + Nota de envío + + + Configuration + Configuración + + + Pricing threshold and tax class applicability + Umbral de Precios y aplicabilidad del clase de impuesto + + + Expert settings + Configuración avanzada + + + Approval + + + New shipping method + Nuevo método de envío + + + Create a New shipping method + Crear un nuevo método de envío + + + Edit shipping method + + + Edit shipping method ID %s + Editar método de envío ID %s + + + Copy shipping method + + + Copy shipping method ID %s + Copiar método de envío ID %s + + + Delete shipping method + + + Delete shipping method ID %s + Borrar método de envío ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + Mostrar los detalles del método de envío ID %s + + + Flat + Lineal + + + Per Product + Por producto + + + Per Item + Por artículo + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_tax_class.php b/system/modules/isotope/languages/es/tl_iso_tax_class.php deleted file mode 100644 index 12f5da9708..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_tax_class.php +++ /dev/null @@ -1,40 +0,0 @@ - + + + + Name + Nombre + + + Give this tax class a name that explains what it is used for. + Dar a este tipo de impuesto un nombre que explique para que se utiliza. + + + Default + Por defecto + + + Check here if this is the default tax class. + Marcar la casilla si debe ser el tipo de impuesto por defecto. + + + Tax rate included with product price + Tasa de impuestos incluidos en el precio del producto + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + Seleccione si los precios de los productos con este tipo de impuesto ya contienen una tasa. Si no coincide, esta tasa se restará de precio del producto, . + + + Include label + Incluir etiqueta + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + Una etiqueta para los pedidos que indique los impuestos restados (si los impuestos incluidos no coinciden). La etiqueta por defecto de la tasa predeterminada se utilizará si está en blanco. + + + Apply tax rates + Aplicar tipo de impuestos + + + Add these tax rates to products with this tax class. + Añadir estas tasas de impuestos a los productos con este tipo de impuestos. + + + Apply rounding increment + Aplicar incremento de redondeo + + + Check here if you want to apply the rounding increment of your shop config. + Marque aquí si desea aplicar el incremento de redondeo en la tienda. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + Nuevo tipo de impuestos + + + Create a new tax class + Crear nueva tasa de impuestos + + + Edit tax class + Editar tipo de impuestos + + + Edit tax class ID %s + Editar tipo de impuestos ID %s + + + Copy tax class + Copiar tipo de impuestos + + + Copy tax class ID %s + Copiar tipo de impuestos ID %s + + + Delete tax class + Borrar tipo de impuestos + + + Delete tax class ID %s + Borrar tipo de impuestos ID %s + + + Tax class details + Detalles de la clase de impuestos + + + Show details of tax class ID %s + Mostrar los detalles del tipo de impuestos ID %s + + + Name + Nombre + + + Tax rates + Tasas de impuestos + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_iso_tax_rate.php b/system/modules/isotope/languages/es/tl_iso_tax_rate.php deleted file mode 100644 index bffef3be8c..0000000000 --- a/system/modules/isotope/languages/es/tl_iso_tax_rate.php +++ /dev/null @@ -1,57 +0,0 @@ - + + + + Name + Nombre + + + Enter a name for this tax rate. + Introducir un nombre para esta tasa de impuestos. + + + Label + Etiqueta + + + This label will be used on the front end in the checkout process. + Esta etiqueta se utiliza en el front end del proceso de compra. + + + Address to use for calculation + Dirección a utilizar para el cálculo + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + Países + + + Select the countries this tax class applies to. + + + States/Regions + Comunidades / Regiones + + + Select the states or regions this tax class applies to. + Seleccionar las comunidades o regiones donde esta clase de impuestos se aplica. + + + Postal codes + Códigos postales + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Limitar la tasa de impuestos a los códigos postales. Puede introducir una lista y rangos (por ejemplo 1234,1235,1236-1239,1100-1200) separados por comas. + + + Subtotal amount restriction + Restricción a un subtotal + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + Opcional: restringir la tasa de impuestos a un subtotal específico (como un impuesto de lujo). + + + Tax rate + Tasa de impuestos + + + A rate in percent this tax is set at. + Una tasa en porcentaje para este impuesto. + + + Store configuration + Configuración de la tienda + + + Select the store configuration that the tax rate applies to. + Seleccionar las configuraciones de tienda a las que se aplica el tipo impositivo. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + ¿Detener los cálculos al activar? + + + Stop other calculations if this tax rate is triggered. + Detener otros cálculos si se activa este tipo de impuesto. + + + Member groups + Grupos de miembros + + + Restrict this tax rate to certain member groups. + Restringir esta tasa para ciertos grupos de miembros + + + Protect tax rate + Tasa de impuestos protegida + + + Apply the tax rate to certain member groups only. + Aplicar la tasa de impuestos sólo a algunos grupos. + + + Apply to guests only + Aplicar solo a los invitados. + + + Do not apply tax rate if a member is logged in. + No aplicar la tasa de impuestos si un miembro se ha autentificado. + + + New tax rate + Nueva tasa de impuestos + + + Create a new tax rate + Crear una nueva tasa de impuestos + + + Edit tax rate + Editar tasa de impuestos + + + Edit tax rate ID %s + Editar la tasa de impuestos ID %s + + + Copy tax rate + Copiar tasa de impuestos + + + Copy tax rate ID %s + Copiar la tasa de impuestos ID %s + + + Delete tax rate + Borrar tasa de impuestos + + + Delete tax rate ID %s + Borrar la tasa de impuestos ID %s + + + Tax rate details + Detalles de la tasa de impuestos + + + Show details of tax rate ID %s + Mostrar los detalles de la tasa de impuestos ID %s + + + Billing Address + Dirección de facturación + + + Shipping Address + Dirección de envío + + + Name + Nombre + + + Rate + Tasa + + + Location + Ubicación + + + Conditions + Condiciones + + + Configuration + Configuración + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_maintenance.php b/system/modules/isotope/languages/es/tl_maintenance.php deleted file mode 100644 index ba8485348e..0000000000 --- a/system/modules/isotope/languages/es/tl_maintenance.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_member.php b/system/modules/isotope/languages/es/tl_member.php deleted file mode 100644 index 7fefb3b4b3..0000000000 --- a/system/modules/isotope/languages/es/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + Libreta de direcciones + + + Manage the address book for member ID %s. + Gestione la libreta de direcciones para el miembro ID %s. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_module.php b/system/modules/isotope/languages/es/tl_module.php deleted file mode 100644 index b5d1f08114..0000000000 --- a/system/modules/isotope/languages/es/tl_module.php +++ /dev/null @@ -1,115 +0,0 @@ - + + + + Product list template + Plantilla de lista de productos + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + Plantilla de lector de producto + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + Plantilla de filtro + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + Redirigir a primer producto + + + Check here if users are redirected to the first product of the list. + Marcar aquí si los usuarios estan redirigidos al primer producto de la lista. + + + Hide in reader mode + Ocultar en modo lector + + + Hide product list when a product alias is found in the URL. + Ocultar lista de productos cuando un alias de producto se encuentra en la URL. + + + Enable quantity + Habilitar cantidad + + + Allow users to specify 1 or more of a product to be purchased. + Permite a los usuarios especificar uno o varios de un producto para comprar. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + Método de pago + + + Choose your checkout method. + Elige la forma de pago. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + Añadir saltar a la página de producto + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + Este ajuste define a qué página será redirigido el usuario cuando se añade un producto a la cesta, si es distinta de la página actual. + + + Columns + Columnas + + + Enter a number of columns to display width-wise in the listing template. + Introducir un número de columnas que se muestran a lo ancho de la plantilla de anuncios. + + + Store configuration + Configuración de la tienda + + + Select the store configuration that this module will be used for. + Seleccionar las configuraciones de tienda a que se aplica este módulo. + + + Store configurations + Configuración de la tienda + + + Select the store configurations that this module will be used for. + Seleccionar las configuraciones de tienda a que se aplica este módulo. + + + Payment methods + Formas de pago + + + Select one or more payment methods for this checkout module. + Elegir uno o varios métodos de pago para este modulo de pedido + + + Shipping methods + Métodos de envío + + + Select one or more shipping methods for this checkout module. + Elegir uno o varios métodos de envío para este módulo de pedido. + + + Completed order jump to page + Salto a la página de pedido completo + + + Select a page the customer will be referred to after their order is complete. + Seleccione una página donde el cliente será redirigido una vez finalizada su pedido. + + + Forward to review page + Enviar a la página de revisión + + + Forward the user to the review page if no data is required on any step. + Avanzar al usuario a la página de revisión si no se requiere datos en cualquiera de los pasos. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + Condiciones del formulario de pedido + + + Choose a custom form that is used to display your order terms and conditions (optional). + Elige un formulario personalizado que se utiliza para mostrar los términos y condiciones del pedido (opcional). + + + Position of order conditions form + Posición del formulario de condiciones + + + Define if the order condition form should be shown before or after the products list. + Definir si el formulario de condiciones debe aparecer antes o después de la lista de productos. + + + On top (before address) + Arriba (antes de la dirección) + + + Before products list + Antes de la lista de productos + + + After products list + Después de la lista de productos + + + Add to address book + Añadir a la libreta de direcciones + + + Add new addresses to members address book (if logged in). + Añadir nuevas direcciones a la libreta de direcciones (si está conectado). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + Definir mensaje vacío + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + Establecer un mensaje personalizado cuando no hay nada para mostrar (lista de productos vacía, carro vacío, etc.) + + + Message when empty + Mensaje cuando esta vacio + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + Escribir un mensaje personalizado si no hay nada para mostrar (lista de productos vacía, carro vacío, etc.) + + + Define a message if no filter is set + Definir un mensaje si no hay ningún filtro + + + Set a custom message when there is no filter set. + Definir un mensaje si no hay ningún filtro + + + Message when no filter is set + Mensaje cuando no hay ningún filtro + + + Enter a custom message if there is no filter set. + Escriba un mensaje personalizado si no hay ningún filtro + + + Category Scope + Categoría Scope + + + Specify the scope of a product lister. + Especifique el alcance de un lister de producto. + + + Condition + Condición + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + Modulos filtro + + + Select the filter modules you want to consider for this product list. + Seleccionar los módulos de filtro que desee tener en cuenta para esta lista de productos. + + + Enabled filters + Habilitar los filtros + + + Please select filters to enable. + Por favor seleccione los filtros para habilitar. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + Ocultar opciones individuales + + + Hide filter field if there is just one option. + Ocultar campo de filtro, si sólo hay una opción. + + + Enabled search fields + Campos de búsqueda activados + + + Please select search fields to enable. + Por favor, seleccione los campos de búsqueda para activar. + + + Autocomplete search field + Campo Autocompletando de búsqueda + + + If you select a field here, the search will be autocompleted by the values of that field. + Si selecciona un campo aquí, la búsqueda se autocompletará con los valores de ese campo. + + + Enabled sorting fields + Campos de ordenación habilitados + + + Please select orderable fields to enable. + Por favor, seleccione los campos de ordenación para habilitar. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + Activar limitación por página + + + Allow the user to select the number of records to show per page. + Permitir al usuario seleccionar el número de registros por página. + + + Per page options + Opciones por página + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + Introducir una lista separada por comas para el desplegable. La primera opción se utiliza como valor predeterminado. Los valores se ordenará de forma automática por el número. + + + Shopping Cart Jump to page + Salto a la página de la cesta + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + Este ajuste define a qué página será redirigido el usuario al solicitar una vista completa de la cesta de compras. + + + Checkout Jump to page + Salto a la página de proceso de pago + + + This setting defines to which page a user will be redirected when completing their transaction. + Este ajuste define a qué página será redirigido el usuario al terminar su transacción. + + + Initial sorting field + Campo de clasificación inicial + + + Select a sorting field to sort the listing by on first page load. + Seleccionar un campo de ordenación para ordenar la lista durante la primera carga de la página. + + + Initial sorting direction + Sentido de clasificación inicial + + + Select a initial sorting direction. + Slecciona un sentido de clasificación inicial + + + Buttons + Botones + + + Select the buttons you want to show. + Seleccione los botones que desee mostrar. + + + Related categories + Categorías relacionadas + + + Select the categories to show products of. + Seleccione las categorías de los productos para mostrar. + + + Include messaging + Incluir mensajes + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + Esta configuración permite que el módulo incluya los errores, notificaciones o confirmaciones que el visitante debe tener en cuenta. + + + Enable "Continue shopping" button + Habilitar el botón "Seguir comprando" + + + Add a link to the currently added product to the cart. + Añadir un enlace al producto agregado actualmente a la cesta. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + Condiciones del formulario de pedido + + + Login/Registration required + Login / Registro requerido + + + Guest checkout only + Proceso de pago sólo para Invitado + + + Both allowed + Ambos permitido + + + All Categories + Todas las categorías + + + Show all products that are assigned to a page of the active page tree (based on the root page). + Mostrar todos los productos que están asignados a una página del árbol de página activo (basado en la página raíz). + + + Current Category and First Child Category + Categoría actual y Primera sub-categoría + + + Show all products that are assigned to the active page or child pages on the first sublevel. + Mostrar todos los productos que están asignados a la página activa o páginas secundarias en el primer subnivel. + + + Current Category and All Child Categories + Categoría actual y todos las categorías secundarias + + + Show all products that are assigned to the active page or any child page of it. + Mostrar todos los productos que están asignados a la categoría actual a cualquier categorías secundarias de la misma + + + Current Category + Categoría actual + + + Show all products that are assigned to the active page (default). + Mostrar todos los productos asignados a la página activa (por defecto). + + + Parent Category + Categoría padre + + + Show all products that are assigned to the parent page of the active page. + Mostrar todos los productos asignados a la página padre de la página activa. + + + Current Product's Categories + Categorías del producto actual + + + Show all products that are assigned to the same pages the currently active product is assigned to. + Mostrar todos los productos que están asignados a las mismas páginas que el producto activo. + + + Category of article + Categoría del articúlo + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + Si coloca el módulo en un artículo, se mostrará productos asignados a la página padre del artículo, aunque coloque el artículo en otra página (por ejemplo, utilizando la etiqueta insert). + + + ASC + ASC + + + DESC + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_nc_notification.php b/system/modules/isotope/languages/es/tl_nc_notification.php deleted file mode 100644 index fefae2e20b..0000000000 --- a/system/modules/isotope/languages/es/tl_nc_notification.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_page.php b/system/modules/isotope/languages/es/tl_page.php deleted file mode 100644 index 3881d73028..0000000000 --- a/system/modules/isotope/languages/es/tl_page.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Store Configuration + Configuración de la tienda + + + Select a store configuration for this page structure. + Seleccione una configuración de tienda para la estructura de la página. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + ID Tienda + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_settings.php b/system/modules/isotope/languages/es/tl_settings.php deleted file mode 100644 index c016ad00ab..0000000000 --- a/system/modules/isotope/languages/es/tl_settings.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Guest cart timeout + Terminado el plazo de tiempo de la cesta invitado + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_user.php b/system/modules/isotope/languages/es/tl_user.php deleted file mode 100644 index e2b3f0b315..0000000000 --- a/system/modules/isotope/languages/es/tl_user.php +++ /dev/null @@ -1,47 +0,0 @@ - + + + + Isotope modules + Modulos Isotope + + + Select which store configuration modules user of this group can access. + Selecciona que módulos de tienda puede acceder el usuario de este grupo. + + + Allowed product types + Tipos de productos permitidos + + + Here you can grant access to one or more product types. + Aquí podrá conceder el acceso a uno o varios tipos de productos. + + + Product type permissions + Permisos del tipo de producto + + + Here you can define the product type permissions. + Aquí puede definir los permisos del tipo de producto. + + + Allowed payment modules + Módulos de pago permitidos + + + Here you can grant access to one or more payment modules. + Aquí podrá conceder el acceso a uno o varios módulos de pago. + + + Payment module permissions + Permisos del módulo de pago + + + Here you can define the payment module permissions. + Aquí puede definir los permisos del módulo de pago. + + + Allowed shipping modules + Módulos de envío permitidos + + + Here you can grant access to one or more shipping modules. + Aquí podrá conceder el acceso a uno o varios módulos de envío. + + + Shipping module permissions + Permisos del módulo de envío + + + Here you can define the shipping module permissions. + Aquí puede definir los permisos del módulo de envío. + + + Allowed tax classes + Clases de impuestos permitidos + + + Here you can grant access to one or more tax classes. + Aquí se puede permitir el acceso a una o varias clases de impuestos. + + + Tax class permissions + Permisos de la clase de impuestos + + + Here you can define the tax class permissions. + Aquí puede definir los permisos de la clase de impuestos. + + + Allowed tax rates + Tasas de impuestos permitidos + + + Here you can grant access to one or more tax rates. + Aquí podrá conceder el acceso a uno o varios tipos de impuestos. + + + Tax rate permissions + Permisos del tipo de impuestos + + + Here you can define the tax rate permissions. + Aquí puede definir los permisos del tipo de impuestos. + + + Allowed store configurations + Configuraciones de tiendas permitidas + + + Here you can grant access to one or more store configurations. + Aquí podrá conceder el acceso a una o varias configuraciones de tienda. + + + Store configuration permissions + Permisos de la tienda + + + Her you can define the store configuration permissions. + Aquí puede definir los permisos de configuración de la tienda. + + + Allowed product groups + Grupos de productos permitidos + + + Limit access to product groups for this user group. Gets inherited. + Limitar a este grupo de usuarios el acceso a estos grupos de productos. Se hereda. + + + Product group permissions + Permisos grupo de productos + + + Here you can define the product group permissions. + Aquí puede definir los permisos del grupo de productos. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tl_user_group.php b/system/modules/isotope/languages/es/tl_user_group.php deleted file mode 100644 index 32de164468..0000000000 --- a/system/modules/isotope/languages/es/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/es/tokens.php b/system/modules/isotope/languages/es/tokens.php deleted file mode 100644 index ba8485348e..0000000000 --- a/system/modules/isotope/languages/es/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/default.php b/system/modules/isotope/languages/fa/default.php deleted file mode 100644 index 401bfa21c9..0000000000 --- a/system/modules/isotope/languages/fa/default.php +++ /dev/null @@ -1,109 +0,0 @@ - + + + + Name "%s" is reserved for system use. Please choose a different name. + + + No store configuration available + هیچ تنظیم فروشگاهی وجود ندارد + + + Please create a default store configuration. + + + You have not yet placed any orders. + + + The requested order was not found. + + + You must be logged in to checkout. + + + A variant with this attributes is already available. Please select another combination. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + + + Please enter whole numbers or decimals optionally with a percentage. + + + Checkout failed. Please try again or choose another payment method. + + + You have no address book entries. + + + The minimum order amount is %s. Please add more products before checkout. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + + + This image has already been assigned to the fallback language. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + + + User checkout not allowed + + + This product is no longer available. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + + + Groups + گروه‌ها + + + Pages + صفحه‌ها + + + Back to the group picker + + + Show all groups + + + There are no variants for this product. + + + Duplicate Fallback + + + Order no %s / %s + + + Your payment is being processed. Please be patient... + + + No files uploaded. + هیچ فایل بارگیری نشد. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + + + Upload files + + + Processing dropped files... + + + Some records could not be deleted. + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + تعداد + + + Tax-free + + + search products + + + Your downloadable products + + + <span class="from">From</span> %s + + + View Details + دیدن جزئیات + + + Reorder + + + Products Per Page + + + Keywords + کلیدواژه‌ها + + + Submit + ارسال + + + Clear Filters + + + Update + بروزرسانی + + + Add To Cart + افزودن به سبد + + + Add All To Cart + + + Update Cart + بروزرسانی سبد + + + Add To Favorites + + + Remove From Favorites + + + Order By: + + + No products have been found. + + + Back + بازگشت + + + Continue + ادامه + + + Order + سفارش + + + No categories are associated with this product. + + + Submit + ارسال + + + There are no items in your favorites list. + + + There are no items in your cart. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + + + The products from your last visit have been readded. Please review your shopping cart items. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + ویرایش + + + Remove + حذف + + + Remove %s from your cart + + + Order Subtotal: + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + + + No payment options are currently available + + + No shipping options are currently available. + + + No orders emails found. + + + No orders found. + + + <br />%s downloads remaining + + + Shopping Cart + سبد خرید + + + Proceed to Checkout + + + Continue shopping + + + Update Cart + بروزرسانی سبد + + + Order Status: %s + + + Go back to step "%s" + + + Create New Address + + + Use billing address + + + Use customer address + + + Different shipping address + + + Edit + ویرایش + + + Delete + حذف + + + Do you really want to delete this address? This cannot be undone. + + + Invoice + صورت‌حساب + + + Status + وضعیت + + + Order date + تاریخ سفارش + + + Order number + شماره سفارش + + + Description + + + Quantity + تعداد + + + Price + + + Total + کل + + + lo to hi + کم به زیاد + + + hi to lo + زیاد به کم + + + A to Z + الف تا ی + + + Z to A + ی تا الف + + + earlier to later + + + later to earlier + + + Processing payment + + + You will be redirected to the payment gateway website. + + + Pay now + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + + + 1 Product + یک کالا + + + %s Products + %s کالا + + + Enter your shipping information or select an existing address. + + + Enter your billing information or select an existing address. + + + Enter your billing information + + + Enter your customer information or select an existing address. + + + Enter your customer information + + + Select a shipping method. + + + Please select a shipping method. + + + Enter your payment information. + + + Please select a payment method. + + + Review and confirm your order details. + + + Address + نشانی + + + Shipping + حمل + + + Payment + پرداخت + + + Review + + + Billing Address + + + Shipping Address + + + Billing & Shipping Address + + + Customer Address + + + Shipping Method + + + Payment Method + + + Order Review + + + Change + تغییر + + + Credit card number + شماره کارت اعتباری + + + Credit card type + نوع کارت اعتباری + + + CCV number (3 or 4 digit code) + + + Expiration month + ماه انقضاء + + + Expiration year + سال انقضاء + + + Payment module not found! + + + Shipping module not found! + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + + + active step: + + + Loading products... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + + + Minutes + دقیقه‌ها + + + Hours + ساعت‌ها + + + Days + روزها + + + Weeks + هفته‌ها + + + Months + ماه‌ها + + + Years + سال‌ها + + + Introduction + مقدمه + + + Welcome to Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + نقد + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + مسترکارت + + + Visa + ویزا + + + American Express + + + Discover + دیسکاور + + + JCB + + + Diner's Club + + + EnRoute + + + Carte Blanche + + + JAL + + + Maestro UK + + + Delta + دلتا + + + Solo + سولو + + + Visa Electron + + + Dankort + + + Laser + + + Carte Bleue + + + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + + + A single-line input field for a short or medium text. + + + Textarea + + + A multi-line input field for a medium or long text. + + + Select menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + درخت پرونده + + + A file tree for single or multiple files and folders. + + + Downloads + بارگیری‌ها + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + بارگذاری پرونده + + + A single-line input field to upload a local file to the server. + + + Video/Audio + صوتی/تصویری + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + AED - درهم امارات متحده عربی + + + AFN - Afghani + AFN - افغانی + + + ALL - Lek + ALL - Lek + + + AMD - Dram + AMD - Dram + + + ANG - Netherlands Antilles Guilder + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + AUD - Australian Dollar + + + AWG - Aruban Guilder + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + BAM - Convertible Mark + + + BBD - Barbados Dollar + BBD - Barbados Dollar + + + BDT - Taka + BDT - Taka + + + BGN - Bulgarian Lev + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + BHD - دینار بحرین + + + BIF - Burundi Franc + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + BND - دلار برونئی + + + BOB - Boliviano + BOB - Boliviano + + + BRL - Brazilian real + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + CHF - فرانک سويس + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + EUR - یورو + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + IQD - دینار عراق + + + IRR - Iranian Rial + IRR - ریال ایران + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + JPY - ین + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + QAR - ریال قطر + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/exception.php b/system/modules/isotope/languages/fa/exception.php deleted file mode 100644 index fbc88fb3d5..0000000000 --- a/system/modules/isotope/languages/fa/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/explain.php b/system/modules/isotope/languages/fa/explain.php deleted file mode 100644 index fbc88fb3d5..0000000000 --- a/system/modules/isotope/languages/fa/explain.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/iso_upgrade.php b/system/modules/isotope/languages/fa/iso_upgrade.php deleted file mode 100644 index 89b6a9953d..0000000000 --- a/system/modules/isotope/languages/fa/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + بروزرسانی + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/modules.php b/system/modules/isotope/languages/fa/modules.php deleted file mode 100644 index 3211847715..0000000000 --- a/system/modules/isotope/languages/fa/modules.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + مدیریت کالا + + + Manage products for your Isotope eCommerce shop + + + Orders + + + See and manage orders for your shop + + + Store configuration + + + Setup and configure Isotope eCommerce to your needs + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + + + Define individual filters for Isotope such as category trees and product attribute filters. + + + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + + + Product Variant List + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + + + Product Reader + + + Product reader module. This is used to display product details. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + سبد خرید + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + + + Checkout + + + Allow store customers to complete their transactions. + + + Address Book + دفتر نشانی + + + Allow customers to manage their address book. + + + Order History + + + Order lister that allows customers to view their order history + + + Order Details + + + Order reader that allows customers to view order history details + + + Store Config Switcher + + + Switch between store configuration to change currency and other settings. + + + Related products + + + List products related to the current one. + + + Messages + + + Displays all Isotope messages if they have not been displayed elsewhere. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + + + Products + + + Attributes + + + Manage and create product attributes such as size, color, etc. + + + Product types + + + Manage and create product types from sets of attributes. + + + Related categories + + + Define categories for product relations. + + + Galleries + + + Define how you want the images in your product to be rendered. + + + Base prices + + + Define base price. + + + Checkout Flow + + + Shipping methods + + + Set up shipping methods. + + + Payment methods + + + Set up payment methods. + + + Tax classes + + + Set up Tax classes, which contain sets of Tax rates. + + + Tax rates + + + Set up tax rates based on things like shipping/billing location and order total. + + + General settings + + + Store configurations + + + Configure general settings for this store. + + + Order status + + + Define order status. + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + بررسی درستی + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/subdivisions.php b/system/modules/isotope/languages/fa/subdivisions.php deleted file mode 100644 index 9209d7ac70..0000000000 --- a/system/modules/isotope/languages/fa/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + شناسه‌ی فروشگاه + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + برچسب + + + Please enter a custom label for this address. + + + Gender + + + Please choose the gender. + + + Salutation + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + + + First name + + + Please enter the first name. + + + Last name + + + Please enter the last name. + + + Date of birth + + + Please enter the date of birth. + + + Company + + + You can enter a company name here. + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. + + + Phone number + + + Please enter the phone number. + + + E-mail address + + + Please enter a valid e-mail address. + + + Default billing address + + + Is this your default billing address? + + + Default shipping address + + + Is this your default shipping address? + + + Store + + + Personal data + + + Address details + + + Contact details + + + Default address + + + Personal data + + + Address details + + + Contact details + + + Default address + + + New address + + + Create a new address + + + Edit address + + + Edit address ID %s + + + Duplicate address + + + Duplicate address ID %s + + + Delete address + + + Delete address ID %s + + + Address details + + + Show details of address ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_attribute.php b/system/modules/isotope/languages/fa/tl_iso_attribute.php deleted file mode 100644 index 361d9836a1..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_attribute.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Name + نام + + + Please enter a name for this attribute. + لطفا نامی برای این خصوصیت وارد کنید. + + + Internal name + + + Internal name is the database field name and must be unique. + + + Type + نوع + + + Please select a type for this attribute. + + + Field Group + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + + + Please select if this value defined by the customer (frontend). + + + Description + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + برچسب + + + Default + پیش‌فرض + + + Group + + + Options + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + + + The field must be filled when editing a product. + + + Multiple selection + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + + + Checks whether the input is a valid price. + + + Discount + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + + + Copy attribute ID %s. + + + Delete attribute + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + + + Show details for attribute ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + + + Description + + + Options + + + Attribute configuration + + + Search & Filtering Settings + + + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_attribute_option.php b/system/modules/isotope/languages/fa/tl_iso_attribute_option.php deleted file mode 100644 index 18eb2e0e40..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_attribute_option.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Type + نوع + + + Select a type for this label. + + + Option + + + Group + + + Default + پیش‌فرض + + + Check here if this should be the default option. + + + Label + برچسب + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_baseprice.php b/system/modules/isotope/languages/fa/tl_iso_baseprice.php deleted file mode 100644 index d0da143b6b..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_baseprice.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + نام + + + Enter a name for this base price. + + + Base amount + مقدار پایه + + + Enter the base amount (e.g. "100"). + + + Label + برچسب + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_config.php b/system/modules/isotope/languages/fa/tl_iso_config.php deleted file mode 100644 index f7f85c8542..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_config.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Configuration Name + نام تنظیمات + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + برچسب + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + + + Please enter the first name (if applicable). + + + Last name + + + Please enter the last name (if applicable). + + + Company + + + You can enter a company name here (if applicable). + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + + + Please enter the phone number. + + + Shipping email address + + + Please enter a valid e-mail address. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + نام + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + نام + + + Address configuration + + + Configuration + + + Checkout + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + + + Images + + + URL settings + + + Products + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_document.php b/system/modules/isotope/languages/fa/tl_iso_document.php deleted file mode 100644 index 6edb9aee78..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_document.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Document name + نام سند + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + نوع سند + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_download.php b/system/modules/isotope/languages/fa/tl_iso_download.php deleted file mode 100644 index 85f771bf8e..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_download.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Attachement + پیوست + + + Select the file or folder content you want to sell. + + + Downloads allowed + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + + + Add a new download to this product + + + Edit download + + + Edit download ID %s + + + Duplicate download + + + Duplicate download ID %s + + + Move download + + + Move download ID %s + + + Delete download + + + Delete download ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + + + Show details of download ID %s + + + Edit product + + + Edit this product + + + Paste at the top + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + پیوست + + + Limits + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_gallery.php b/system/modules/isotope/languages/fa/tl_iso_gallery.php deleted file mode 100644 index 2ad720d7b4..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_gallery.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + نام + + + Enter a name for this gallery. + نامی برای این گالری وارد کنید. + + + Type + نوع + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_group.php b/system/modules/isotope/languages/fa/tl_iso_group.php deleted file mode 100644 index fae0b9bcf6..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Group name + نام گروه + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_integrity.php b/system/modules/isotope/languages/fa/tl_iso_integrity.php deleted file mode 100644 index 7d2ef7f352..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_integrity.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Integrity Check + بررسی درستی + + + Problem + مشکل + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_label.php b/system/modules/isotope/languages/fa/tl_iso_label.php deleted file mode 100644 index f0783bfb12..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_label.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Language + زبان + + + Please select a language. + لطفا یک زبان انتخاب کنید. + + + Label + برچسب + + + Enter the source label. + + + Replacement + + + Enter the replacement in the specified language. + + + New label + + + Create a new label + + + Edit label + + + Edit label ID %s + + + Duplicate label + + + Duplicate label ID %s + + + Delete label + + + Delete label ID %s + + + Label details + + + Show details of label ID %s + + + Label translation + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_orderstatus.php b/system/modules/isotope/languages/fa/tl_iso_orderstatus.php deleted file mode 100644 index b96f0dd55d..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_orderstatus.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + نام + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + نام + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_payment.php b/system/modules/isotope/languages/fa/tl_iso_payment.php deleted file mode 100644 index f9ec51038f..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_payment.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Payment Method Name + نام روش پرداخت + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this payment method to certain shop configurations. + + + Price + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + صورت‌حساب + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + + + General configuration + + + Payment gateway configuration + + + Price + + + Template + + + Expert settings + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_product.php b/system/modules/isotope/languages/fa/tl_iso_product.php deleted file mode 100644 index 93a0603f0b..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_product.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Product ID + شناسه‌ی کالا + + + Categories + دسته‌بندی‌ها + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + + + Product type + + + Select your product type. Product types are defined in the store configuration. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + نام + + + Please enter the name of this product. + + + SKU + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + + + Teaser + + + Please enter the teaser. + + + Description + + + Please enter the product description. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + + + Check if item is not a shipped item (such as downloadable products). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + + + Click here to show this product on your website. + + + Start date + + + Do not show this product before the date specified. + + + Stop date + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + + + Please choose the folder where product assets are located. + + + Preview + + + Alternate text + + + Link target + + + Description + + + Translate + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + + + Show product variants + + + New product + + + Create new product + + + Add variant + + + Add new variant to a given product + + + Edit product + + + Edit product ID %s + + + Copy product + + + Copy product ID %s + + + Move product + جابجایی کالا + + + Move product ID %s + جابجایی کالای شناسه‌ی %s + + + Delete product + + + Delete product ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + + + Show details of product ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + + + Import images and other media from a folder + + + Manage prices + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + + + Generate variants for product ID %s + + + Related products + + + Manage related products for product ID %s + + + Downloads + بارگیری‌ها + + + Edit downloads for product ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + + + General Settings + + + Meta data + + + Pricing Settings + + + Inventory Settings + + + Shipping Settings + + + Product Options Settings + + + Media Management + + + Expert settings + + + Publishing + + + Quantity + تعداد + + + from %s pcs. + + + Price + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_product_category.php b/system/modules/isotope/languages/fa/tl_iso_product_category.php deleted file mode 100644 index 3c9057e227..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_product_category.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Move product + جابجایی کالا + + + Move product ID %s + جابجایی کالای شناسه‌ی %s + + + Paste at the top + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_product_collection.php b/system/modules/isotope/languages/fa/tl_iso_product_collection.php deleted file mode 100644 index 8d3117451c..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_product_collection.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Order ID + شناسه سفارش + + + Member (empty for guests) + + + Unique ID + شناسه‌ی یکتا + + + Order status + + + Select the status of this order. + + + Placed + + + Source (Cart ID) + + + Payment date + + + Enter a date when this order has been paid. + + + Shipped date + + + Enter a date when this order has been shipped. + + + Shop configuration + + + Payment method + + + Shipping method + + + Billing address + + + Shipping address + + + Subtotal + + + Subtotal without tax + + + Total + کل + + + Total without tax + + + Currency + + + Language + زبان + + + Order notes + + + If you would like to convey information to other backend users, please do so here. + + + Edit order + + + Edit order ID %s + + + Copy order + + + Copy order ID %s + + + Delete order + + + Delete order ID %s + + + Order details + + + Show details of order ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + + + Order details + + + Email data + + + Billing address data + + + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_product_price.php b/system/modules/isotope/languages/fa/tl_iso_product_price.php deleted file mode 100644 index fbc88fb3d5..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_product_price.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Price Tiers + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + + + Tax Class + + + Please select a tax class for this price. + + + Store configuration + + + Select a store configuration for this price. + + + Member group + + + Select a member group for this price. + + + Use from + + + Do not use the price on the website before this day. + + + Use until + + + Do not use the price on the website after this day. + + + Add price + + + Add a new price to this product + + + Edit price + + + Edit price ID %s + + + Duplicate price + + + Duplicate price ID %s + + + Delete price + + + Delete price ID %s + + + Price details + + + Show details of price ID %s + + + Quantity (min) + + + Price + + + Price + + + Limitations + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_producttype.php b/system/modules/isotope/languages/fa/tl_iso_producttype.php deleted file mode 100644 index c05ffe0b91..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_producttype.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + نام + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + پیش‌فرض + + + Check here if this is the default product type. + + + Description + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + پیش‌فرض + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_related_category.php b/system/modules/isotope/languages/fa/tl_iso_related_category.php deleted file mode 100644 index fde0f8cf18..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_related_category.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Category name + نام دسته‌بندی + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Name + نام + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_related_product.php b/system/modules/isotope/languages/fa/tl_iso_related_product.php deleted file mode 100644 index 13021693e0..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_related_product.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Category + دسته‌بندی + + + Select a category. + یک دسته‌بندی انتخاب کنید. + + + Products + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + + + Add a new category with products + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Move category + + + Move category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Edit product + + + Edit this product + + + Category + دسته‌بندی + + + Related products + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_shipping.php b/system/modules/isotope/languages/fa/tl_iso_shipping.php deleted file mode 100644 index a7e2f0e758..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_shipping.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Shipping Method Name + نام روش ارسال + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + + + Select a tax class that applies to the shipping price. + + + Label + برچسب + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + + + Hide the module if a member is logged in. + + + Enabled + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_tax_class.php b/system/modules/isotope/languages/fa/tl_iso_tax_class.php deleted file mode 100644 index 803f57e5e2..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_tax_class.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + نام + + + Give this tax class a name that explains what it is used for. + + + Default + پیش‌فرض + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + نام + + + Tax rates + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_iso_tax_rate.php b/system/modules/isotope/languages/fa/tl_iso_tax_rate.php deleted file mode 100644 index de21d65239..0000000000 --- a/system/modules/isotope/languages/fa/tl_iso_tax_rate.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Name + نام + + + Enter a name for this tax rate. + نامی برای این نرخ مالیات وارد کنید. + + + Label + برچسب + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + + + Shipping Address + + + Name + نام + + + Rate + + + Location + + + Conditions + + + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_maintenance.php b/system/modules/isotope/languages/fa/tl_maintenance.php deleted file mode 100644 index 3ebba5a01c..0000000000 --- a/system/modules/isotope/languages/fa/tl_maintenance.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Purge Isotope product cache + پاک کردن نهانگاه کالا ایزوتوپ + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_member.php b/system/modules/isotope/languages/fa/tl_member.php deleted file mode 100644 index cf5dc665b6..0000000000 --- a/system/modules/isotope/languages/fa/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + دفتر نشانی + + + Manage the address book for member ID %s. + مدیریت دفتر نشانی برای عضو شناسه‌ی %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_module.php b/system/modules/isotope/languages/fa/tl_module.php deleted file mode 100644 index 9e5c5dd050..0000000000 --- a/system/modules/isotope/languages/fa/tl_module.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product list template + قالب فهرست کالا + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + + + Select the store configuration that this module will be used for. + + + Store configurations + + + Select the store configurations that this module will be used for. + + + Payment methods + + + Select one or more payment methods for this checkout module. + + + Shipping methods + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + + + Select a initial sorting direction. + + + Buttons + + + Select the buttons you want to show. + + + Related categories + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + + + Guest checkout only + + + Both allowed + + + All Categories + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_nc_notification.php b/system/modules/isotope/languages/fa/tl_nc_notification.php deleted file mode 100644 index 9eb3dda43c..0000000000 --- a/system/modules/isotope/languages/fa/tl_nc_notification.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_page.php b/system/modules/isotope/languages/fa/tl_page.php deleted file mode 100644 index 6744d52ada..0000000000 --- a/system/modules/isotope/languages/fa/tl_page.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Store Configuration + تنظیمات فروشگاه + + + Select a store configuration for this page structure. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + شناسه‌ی فروشگاه + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_settings.php b/system/modules/isotope/languages/fa/tl_settings.php deleted file mode 100644 index fbc88fb3d5..0000000000 --- a/system/modules/isotope/languages/fa/tl_settings.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Guest cart timeout + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_user.php b/system/modules/isotope/languages/fa/tl_user.php deleted file mode 100644 index 02ced61d36..0000000000 --- a/system/modules/isotope/languages/fa/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope modules + ماژول‌های ایزوتوپ + + + Select which store configuration modules user of this group can access. + + + Allowed product types + + + Here you can grant access to one or more product types. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + + + Here you can grant access to one or more store configurations. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tl_user_group.php b/system/modules/isotope/languages/fa/tl_user_group.php deleted file mode 100644 index cbf724f185..0000000000 --- a/system/modules/isotope/languages/fa/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fa/tokens.php b/system/modules/isotope/languages/fa/tokens.php deleted file mode 100644 index fbc88fb3d5..0000000000 --- a/system/modules/isotope/languages/fa/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/default.php b/system/modules/isotope/languages/fi/default.php deleted file mode 100644 index ae06e944e1..0000000000 --- a/system/modules/isotope/languages/fi/default.php +++ /dev/null @@ -1,97 +0,0 @@ - + + + + Name "%s" is reserved for system use. Please choose a different name. + + + No store configuration available + + + Please create a default store configuration. + + + You have not yet placed any orders. + + + The requested order was not found. + + + You must be logged in to checkout. + + + A variant with this attributes is already available. Please select another combination. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + + + Please enter whole numbers or decimals optionally with a percentage. + + + Checkout failed. Please try again or choose another payment method. + + + You have no address book entries. + + + The minimum order amount is %s. Please add more products before checkout. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + + + This image has already been assigned to the fallback language. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + + + User checkout not allowed + + + This product is no longer available. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + + + Groups + Ryhmät + + + Pages + Sivut + + + Back to the group picker + + + Show all groups + + + There are no variants for this product. + + + Duplicate Fallback + + + Order no %s / %s + + + Your payment is being processed. Please be patient... + + + No files uploaded. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + Vedä ja pudota ladattavat tiedostot tähän + + + Upload files + Lataa tiedostoja + + + Processing dropped files... + Käsitellään pudotettuja tiedostoja... + + + Some records could not be deleted. + Joitain + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + Määrä + + + Tax-free + + + search products + etsi tuotteita + + + Your downloadable products + + + <span class="from">From</span> %s + + + View Details + Näytä lisätietoja + + + Reorder + + + Products Per Page + Tuotteita sivulla + + + Keywords + Avainsanat + + + Submit + Lähetä + + + Clear Filters + Tyhjennä + + + Update + Päivitä + + + Add To Cart + Lisää ostoskoriin + + + Add All To Cart + + + Update Cart + Päivitä ostoskori + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Järjestele: + + + No products have been found. + Yhtään tuotetta ei löytynyt. + + + Back + Takaisin + + + Continue + Jatka + + + Order + Tilaa + + + No categories are associated with this product. + Tälle tuotteelle ei ole määritetty yhtään kategoriaa. + + + Submit + Lähetä + + + There are no items in your favorites list. + + + There are no items in your cart. + Ostoskorissasi ei ole yhtään tuotetta. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + Tuote on lisätty ostoskoriin. + + + The products from your last visit have been readded. Please review your shopping cart items. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Muokkaa + + + Remove + Poista + + + Remove %s from your cart + + + Order Subtotal: + Välisumma + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Yhteensä + + + No payment options are currently available + + + No shipping options are currently available. + + + No orders emails found. + + + No orders found. + + + <br />%s downloads remaining + + + Shopping Cart + Ostoskori + + + Proceed to Checkout + Siirry kassalle + + + Continue shopping + Jatka ostosten tekemistä + + + Update Cart + Päivitä ostoskori + + + Order Status: %s + Tilauksen Tila: %s + + + Go back to step "%s" + Siirry takaisin vaiheeseen "%s" + + + Create New Address + Luo uusi osoite + + + Use billing address + Käytä laskutusosoitetta + + + Use customer address + + + Different shipping address + Eri toimitusosoite + + + Edit + Muokkaa + + + Delete + Poista + + + Do you really want to delete this address? This cannot be undone. + Haluatko varmasti poistaa tämän osoitteen? Tätä ei voi peruuttaa. + + + Invoice + Lasku + + + Status + Tila + + + Order date + Tilauspäivä + + + Order number + Tilausnumero + + + Description + + + Quantity + Määrä + + + Price + + + Total + Yhteensä + + + lo to hi + + + hi to lo + + + A to Z + A - Z + + + Z to A + Z - A + + + earlier to later + vanhin ensin + + + later to earlier + uusin ensin + + + Processing payment + Maksunkäsittely + + + You will be redirected to the payment gateway website. + Sinut ohjataan nyt maksupalveluntarjoajan verkkosivulle. + + + Pay now + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + + + 1 Product + 1 Tuote + + + %s Products + %S Tuotetta + + + Enter your shipping information or select an existing address. + Syötä toimitusosoite tai valitse jo olemassa oleva osoite. + + + Enter your billing information or select an existing address. + Syötä laskutustietosi tai valitse jo olemassaoleva osoite. + + + Enter your billing information + Syötä laskutustietosi + + + Enter your customer information or select an existing address. + + + Enter your customer information + + + Select a shipping method. + Valitse toimitustapa. + + + Please select a shipping method. + Valitse maksutapa. + + + Enter your payment information. + Valitse maksutapa. + + + Please select a payment method. + Valitse maksutapa. + + + Review and confirm your order details. + Tarkista ja vahvista tilaus. + + + Address + Osoite + + + Shipping + Toimitus + + + Payment + Maksu + + + Review + Esikatselu + + + Billing Address + Laskutusosoite + + + Shipping Address + Toimitusosoite + + + Billing & Shipping Address + Laskutus- ja toimitusosoite + + + Customer Address + + + Shipping Method + Toimitustapa + + + Payment Method + Maksutapa + + + Order Review + Tilauksen esikatselu + + + Change + Vaihda + + + Credit card number + + + Credit card type + + + CCV number (3 or 4 digit code) + + + Expiration month + + + Expiration year + + + Payment module not found! + + + Shipping module not found! + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + + + active step: + + + Loading products... + Ladataan tuotteita... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + Vaihe %s / %s (%s) - + + + Minutes + Minuuttia + + + Hours + + + Days + + + Weeks + + + Months + + + Years + + + Introduction + + + Welcome to Isotope eCommerce + Tervetuloa Isotope eCommerceen + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + Tallenna osoite + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + + + Use this for all offline processed payment. + + + Paybyway + Maksukaista + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + + + Visa + + + American Express + + + Discover + + + JCB + + + Diner's Club + + + EnRoute + + + Carte Blanche + + + JAL + + + Maestro UK + + + Delta + + + Solo + + + Visa Electron + + + Dankort + + + Laser + + + Carte Bleue + + + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + + + A single-line input field for a short or medium text. + + + Textarea + + + A multi-line input field for a medium or long text. + + + Select menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + + + Kr. + + + € + + + £ + + + ¥ + + + Kr. + + + Kr. + + + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/exception.php b/system/modules/isotope/languages/fi/exception.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/explain.php b/system/modules/isotope/languages/fi/explain.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/explain.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/iso_upgrade.php b/system/modules/isotope/languages/fi/iso_upgrade.php deleted file mode 100644 index 6802a9451a..0000000000 --- a/system/modules/isotope/languages/fi/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Päivitä + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/modules.php b/system/modules/isotope/languages/fi/modules.php deleted file mode 100644 index a8ae5b4268..0000000000 --- a/system/modules/isotope/languages/fi/modules.php +++ /dev/null @@ -1,37 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Tuotteiden hallinta + + + Manage products for your Isotope eCommerce shop + Hallitse Isotope eCommerce verkkokauppasi tuotteita + + + Orders + Tilaukset + + + See and manage orders for your shop + Näe ja hallitse verkkokauppasi tilauksia + + + Store configuration + Verkkokaupan asetukset + + + Setup and configure Isotope eCommerce to your needs + Aseta Isotope eCommerce tarpeisiisi sopivaksi + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Tuotesuodatus + + + Define individual filters for Isotope such as category trees and product attribute filters. + + + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + Tuotelistaus + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + + + Product Variant List + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + + + Product Reader + + + Product reader module. This is used to display product details. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Ostoskori + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + + + Checkout + Kassa + + + Allow store customers to complete their transactions. + + + Address Book + Osoitekirja + + + Allow customers to manage their address book. + + + Order History + Tilaushistoria + + + Order lister that allows customers to view their order history + + + Order Details + + + Order reader that allows customers to view order history details + + + Store Config Switcher + + + Switch between store configuration to change currency and other settings. + + + Related products + + + List products related to the current one. + + + Messages + Viestit + + + Displays all Isotope messages if they have not been displayed elsewhere. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + + + Products + Tuotteet + + + Attributes + Ominaisuudet + + + Manage and create product attributes such as size, color, etc. + + + Product types + + + Manage and create product types from sets of attributes. + + + Related categories + + + Define categories for product relations. + + + Galleries + Galleriat + + + Define how you want the images in your product to be rendered. + + + Base prices + + + Define base price. + + + Checkout Flow + + + Shipping methods + + + Set up shipping methods. + + + Payment methods + + + Set up payment methods. + + + Tax classes + + + Set up Tax classes, which contain sets of Tax rates. + + + Tax rates + + + Set up tax rates based on things like shipping/billing location and order total. + + + General settings + Yleiset asetukset + + + Store configurations + + + Configure general settings for this store. + + + Order status + Tilauksen tila + + + Define order status. + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + Dokumentit + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/subdivisions.php b/system/modules/isotope/languages/fi/subdivisions.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/subdivisions.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Store ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + + + Please enter a custom label for this address. + + + Gender + Sukupuoli + + + Please choose the gender. + Valitse sukupuolesi. + + + Salutation + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + + + First name + Etunimi + + + Please enter the first name. + Syötä etunimi. + + + Last name + Sukunimi + + + Please enter the last name. + Syötä sukunimi. + + + Date of birth + Syntymäpäivä + + + Please enter the date of birth. + Syötä syntymäpäiväsi. + + + Company + Yritys + + + You can enter a company name here. + Syötä yrityksesi nimi. + + + VAT No. + Y-Tunnus. + + + Please enter a VAT number. + Syötä Y-Tunnus. + + + Street + Osoite + + + Please enter the street name and the street number. + Syötä kadun nimi ja kiinteistön numero. + + + Street 2 + Osoite 2 + + + Enter a second street info if there's any. + Syötä lisäosoitetietoja. + + + Street 3 + Osoite 3 + + + Enter a third street info if there's any. + Syötä lisäosoitetietoja. + + + Postal code + Postinumero + + + Please enter the postal code. + Syötä postinumero. + + + City + Kaupunki + + + Please enter the name of the city. + Syötä kaupunki. + + + State + Osavaltio + + + Please enter the name of the state. + Syötä osavaltion nimi. + + + Country + Maa + + + Please select a country. + Valitse maa. + + + Phone number + Puhelinnumero + + + Please enter the phone number. + Syötä puhelinnumero. + + + E-mail address + Sähköposti + + + Please enter a valid e-mail address. + Syötä oikea sähköpostiosoite. + + + Default billing address + Oletus laskutusosoite + + + Is this your default billing address? + Onko tämä sinun laskutusosoite? + + + Default shipping address + Oletus toimitusosoite + + + Is this your default shipping address? + Onko tämä sinun toimitusosoite? + + + Store + Kauppa + + + Personal data + Henkilökohtaiset tiedot + + + Address details + Osoitetiedot + + + Contact details + Yhteystiedot + + + Default address + Oletusosoite + + + Personal data + Henkilökohtaiset tiedot + + + Address details + Osoitetiedot + + + Contact details + Yhteystiedot + + + Default address + Oletusosoite + + + New address + + + Create a new address + + + Edit address + + + Edit address ID %s + + + Duplicate address + + + Duplicate address ID %s + + + Delete address + + + Delete address ID %s + + + Address details + Osoitetiedot + + + Show details of address ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_attribute.php b/system/modules/isotope/languages/fi/tl_iso_attribute.php deleted file mode 100644 index bdf7d494b5..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_attribute.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + + + Please enter a name for this attribute. + + + Internal name + + + Internal name is the database field name and must be unique. + + + Type + + + Please select a type for this attribute. + + + Field Group + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + + + Please select if this value defined by the customer (frontend). + + + Description + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + + + Default + + + Group + + + Options + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + + + The field must be filled when editing a product. + + + Multiple selection + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + Puhelinnumero + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + Sähköposti + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + + + Checks whether the input is a valid price. + + + Discount + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + + + Copy attribute ID %s. + + + Delete attribute + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + + + Show details for attribute ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + + + Description + + + Options + + + Attribute configuration + + + Search & Filtering Settings + + + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_attribute_option.php b/system/modules/isotope/languages/fi/tl_iso_attribute_option.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_attribute_option.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Type + + + Select a type for this label. + + + Option + + + Group + + + Default + + + Check here if this should be the default option. + + + Label + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_baseprice.php b/system/modules/isotope/languages/fi/tl_iso_baseprice.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_baseprice.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_config.php b/system/modules/isotope/languages/fi/tl_iso_config.php deleted file mode 100644 index bc04572972..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_config.php +++ /dev/null @@ -1,40 +0,0 @@ - + + + + Configuration Name + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + Etunimi + + + Please enter the first name (if applicable). + + + Last name + Sukunimi + + + Please enter the last name (if applicable). + + + Company + Yritys + + + You can enter a company name here (if applicable). + + + VAT No. + Y-Tunnus. + + + Please enter a VAT number. + Syötä Y-Tunnus. + + + Street + Osoite + + + Please enter the street name and the street number. + Syötä kadun nimi ja kiinteistön numero. + + + Street 2 + Osoite 2 + + + Enter a second street info if there's any. + Syötä lisäosoitetietoja. + + + Street 3 + Osoite 3 + + + Enter a third street info if there's any. + Syötä lisäosoitetietoja. + + + Postal code + Postinumero + + + Please enter the postal code. + Syötä postinumero. + + + City + Kaupunki + + + Please enter the name of the city. + Syötä kaupunki. + + + State + Osavaltio + + + Please enter the name of the state. + Syötä osavaltion nimi. + + + Country + Maa + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + Puhelinnumero + + + Please enter the phone number. + Syötä puhelinnumero. + + + Shipping email address + + + Please enter a valid e-mail address. + Syötä oikea sähköpostiosoite. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + + + Address configuration + + + Configuration + + + Checkout + Kassa + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + Tilaukset + + + Images + + + URL settings + + + Products + Tuotteet + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_document.php b/system/modules/isotope/languages/fi/tl_iso_document.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_document.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_download.php b/system/modules/isotope/languages/fi/tl_iso_download.php deleted file mode 100644 index 348803ec0e..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_download.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Attachement + Liite + + + Select the file or folder content you want to sell. + Valitse tiedosto tai kansiosisältö jonka haluat myydä. + + + Downloads allowed + Salli tiedostolataukset + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + + + Add a new download to this product + + + Edit download + + + Edit download ID %s + + + Duplicate download + + + Duplicate download ID %s + + + Move download + + + Move download ID %s + + + Delete download + + + Delete download ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + + + Show details of download ID %s + + + Edit product + + + Edit this product + + + Paste at the top + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + Liite + + + Limits + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_gallery.php b/system/modules/isotope/languages/fi/tl_iso_gallery.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_gallery.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Enter a name for this gallery. + + + Type + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_group.php b/system/modules/isotope/languages/fi/tl_iso_group.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_group.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_integrity.php b/system/modules/isotope/languages/fi/tl_iso_integrity.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_label.php b/system/modules/isotope/languages/fi/tl_iso_label.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_label.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Language + + + Please select a language. + + + Label + + + Enter the source label. + + + Replacement + + + Enter the replacement in the specified language. + + + New label + + + Create a new label + + + Edit label + + + Edit label ID %s + + + Duplicate label + + + Duplicate label ID %s + + + Delete label + + + Delete label ID %s + + + Label details + + + Show details of label ID %s + + + Label translation + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_orderstatus.php b/system/modules/isotope/languages/fi/tl_iso_orderstatus.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_orderstatus.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_payment.php b/system/modules/isotope/languages/fi/tl_iso_payment.php deleted file mode 100644 index a4f4199cfa..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_payment.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Payment Method Name + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this payment method to certain shop configurations. + + + Price + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + Lasku + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + + + General configuration + + + Payment gateway configuration + + + Price + + + Template + + + Expert settings + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_product.php b/system/modules/isotope/languages/fi/tl_iso_product.php deleted file mode 100644 index 3ca6e63cd2..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_product.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product ID + + + Categories + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + + + Product type + + + Select your product type. Product types are defined in the store configuration. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + + + Please enter the name of this product. + + + SKU + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + + + Teaser + + + Please enter the teaser. + + + Description + + + Please enter the product description. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + + + Check if item is not a shipped item (such as downloadable products). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + + + Click here to show this product on your website. + + + Start date + + + Do not show this product before the date specified. + + + Stop date + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + + + Please choose the folder where product assets are located. + + + Preview + + + Alternate text + + + Link target + + + Description + + + Translate + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + + + Show product variants + + + New product + + + Create new product + + + Add variant + + + Add new variant to a given product + + + Edit product + + + Edit product ID %s + + + Copy product + + + Copy product ID %s + + + Move product + + + Move product ID %s + + + Delete product + + + Delete product ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + + + Show details of product ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + + + Import images and other media from a folder + + + Manage prices + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + + + Generate variants for product ID %s + + + Related products + + + Manage related products for product ID %s + + + Downloads + + + Edit downloads for product ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + + + General Settings + + + Meta data + + + Pricing Settings + + + Inventory Settings + + + Shipping Settings + + + Product Options Settings + + + Media Management + + + Expert settings + + + Publishing + + + Quantity + Määrä + + + from %s pcs. + + + Price + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_product_category.php b/system/modules/isotope/languages/fi/tl_iso_product_category.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_product_category.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Move product + + + Move product ID %s + + + Paste at the top + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_product_collection.php b/system/modules/isotope/languages/fi/tl_iso_product_collection.php deleted file mode 100644 index d14941188a..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_product_collection.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Order ID + + + Member (empty for guests) + + + Unique ID + + + Order status + Tilauksen tila + + + Select the status of this order. + + + Placed + + + Source (Cart ID) + + + Payment date + + + Enter a date when this order has been paid. + + + Shipped date + + + Enter a date when this order has been shipped. + + + Shop configuration + + + Payment method + + + Shipping method + + + Billing address + + + Shipping address + + + Subtotal + + + Subtotal without tax + + + Total + Yhteensä + + + Total without tax + + + Currency + + + Language + + + Order notes + + + If you would like to convey information to other backend users, please do so here. + + + Edit order + + + Edit order ID %s + + + Copy order + + + Copy order ID %s + + + Delete order + + + Delete order ID %s + + + Order details + + + Show details of order ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + Tilauksen tila + + + Order details + + + Email data + + + Billing address data + + + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_product_price.php b/system/modules/isotope/languages/fi/tl_iso_product_price.php deleted file mode 100644 index 51009ed5e6..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_product_price.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Price Tiers + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + + + Tax Class + + + Please select a tax class for this price. + + + Store configuration + Verkkokaupan asetukset + + + Select a store configuration for this price. + + + Member group + + + Select a member group for this price. + + + Use from + + + Do not use the price on the website before this day. + + + Use until + + + Do not use the price on the website after this day. + + + Add price + + + Add a new price to this product + + + Edit price + + + Edit price ID %s + + + Duplicate price + + + Duplicate price ID %s + + + Delete price + + + Delete price ID %s + + + Price details + + + Show details of price ID %s + + + Quantity (min) + + + Price + + + Price + + + Limitations + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_producttype.php b/system/modules/isotope/languages/fi/tl_iso_producttype.php deleted file mode 100644 index fea76d64d8..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_producttype.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Name + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + + + Check here if this is the default product type. + + + Description + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Ominaisuudet + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_related_category.php b/system/modules/isotope/languages/fi/tl_iso_related_category.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_related_category.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Category name + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Name + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_related_product.php b/system/modules/isotope/languages/fi/tl_iso_related_product.php deleted file mode 100644 index 7159168ae3..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_related_product.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Category + + + Select a category. + + + Products + Tuotteet + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + + + Add a new category with products + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Move category + + + Move category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Edit product + + + Edit this product + + + Category + + + Related products + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_shipping.php b/system/modules/isotope/languages/fi/tl_iso_shipping.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_shipping.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Shipping Method Name + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + + + Select a tax class that applies to the shipping price. + + + Label + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + + + Hide the module if a member is logged in. + + + Enabled + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_tax_class.php b/system/modules/isotope/languages/fi/tl_iso_tax_class.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_tax_class.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Give this tax class a name that explains what it is used for. + + + Default + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + + + Tax rates + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_iso_tax_rate.php b/system/modules/isotope/languages/fi/tl_iso_tax_rate.php deleted file mode 100644 index 25693108ba..0000000000 --- a/system/modules/isotope/languages/fi/tl_iso_tax_rate.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + + + Enter a name for this tax rate. + + + Label + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + Verkkokaupan asetukset + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + Laskutusosoite + + + Shipping Address + Toimitusosoite + + + Name + + + Rate + + + Location + + + Conditions + + + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_maintenance.php b/system/modules/isotope/languages/fi/tl_maintenance.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_maintenance.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_member.php b/system/modules/isotope/languages/fi/tl_member.php deleted file mode 100644 index a6ad6dd190..0000000000 --- a/system/modules/isotope/languages/fi/tl_member.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Address Book + Osoitekirja + + + Manage the address book for member ID %s. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_module.php b/system/modules/isotope/languages/fi/tl_module.php deleted file mode 100644 index 0ce890ae10..0000000000 --- a/system/modules/isotope/languages/fi/tl_module.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product list template + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + Verkkokaupan asetukset + + + Select the store configuration that this module will be used for. + + + Store configurations + + + Select the store configurations that this module will be used for. + + + Payment methods + + + Select one or more payment methods for this checkout module. + + + Shipping methods + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + + + Select a initial sorting direction. + + + Buttons + + + Select the buttons you want to show. + + + Related categories + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + + + Guest checkout only + + + Both allowed + + + All Categories + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_nc_notification.php b/system/modules/isotope/languages/fi/tl_nc_notification.php deleted file mode 100644 index 9a94e3455b..0000000000 --- a/system/modules/isotope/languages/fi/tl_nc_notification.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_page.php b/system/modules/isotope/languages/fi/tl_page.php deleted file mode 100644 index c1f57b93f4..0000000000 --- a/system/modules/isotope/languages/fi/tl_page.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Store Configuration + + + Select a store configuration for this page structure. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_settings.php b/system/modules/isotope/languages/fi/tl_settings.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tl_settings.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Guest cart timeout + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_user.php b/system/modules/isotope/languages/fi/tl_user.php deleted file mode 100644 index 6b1485676c..0000000000 --- a/system/modules/isotope/languages/fi/tl_user.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope modules + + + Select which store configuration modules user of this group can access. + + + Allowed product types + + + Here you can grant access to one or more product types. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + + + Here you can grant access to one or more store configurations. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tl_user_group.php b/system/modules/isotope/languages/fi/tl_user_group.php deleted file mode 100644 index e1f7e4c6f3..0000000000 --- a/system/modules/isotope/languages/fi/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fi/tokens.php b/system/modules/isotope/languages/fi/tokens.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope/languages/fi/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/default.php b/system/modules/isotope/languages/fr/default.php deleted file mode 100644 index 3a96e08d64..0000000000 --- a/system/modules/isotope/languages/fr/default.php +++ /dev/null @@ -1,413 +0,0 @@ -À partir de %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Afficher les détails'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Produits par page'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Mots-clés'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Valider'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Effacer les filtres'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Mettre à jour'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Ajouter au panier'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Trier par :'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Aucun produit trouvé.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Retour'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Continuer'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Commander'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Pas de catégories associées avec ce produit'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Valider'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Supprimer'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Il n\'y a pas d\'article dans votre panier.'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'Le produit sélectionné a bien été ajouté à votre panier.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'The products from your last visit have been readded. Please review your shopping cart items.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Supprimer "%s" de votre panier'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Sous-total de la commande :'; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Livraison'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Paiement'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Total de la commande :'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'Actuellement, il n\'y a pas d\'options de paiement.'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'Actuellement, il n\'y a pas d\'options de livraison.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Aucun e-mail de commande trouvé.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Aucune commande trouvée.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s téléchargements restants'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Panier d\'achat'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Commander'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Continuez vos achats'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Mettre à jour le panier'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'État de la commande: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Retourner à l\'étape "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Créer une nouvelle adresse'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Utiliser l\'adresse de paiement'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Utiliser l\'adresse du client'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Adresse de livraison différente'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Éditer'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Supprimer'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Voulez-vous vraiment supprimer cette adresse ? Cette action ne peut pas être annulée.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Facture'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'État'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Date de la commande'; -$GLOBALS['TL_LANG']['MSC']['iso_order_document_number'] = 'Numéro de commande'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Description'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Quantité'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Prix'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Total général'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'de bas en haut'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'de haut en bas'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'de A à Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'de Z à A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'du plus ancien au plus récent'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'du plus récent au plus ancien'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Procéder au paiement'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Payer maintenant'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Cliquez ici pour voir cette transaction PayPal en ligne'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 Produit'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s produits'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Saisir vos informations d\'expédition ou sélectionner une adresse existante.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Saisir vos informations de facturation ou sélectionner une adresse existante.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Saisir vos informations de facturation'; -$GLOBALS['TL_LANG']['MSC']['customer_address_message'] = 'Saisir vos informations client ou sélectionner une adresse existante.'; -$GLOBALS['TL_LANG']['MSC']['customer_address_guest_message'] = 'Saisir vos informations client'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Sélectionner un mode de livraison.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Sélectionner un mode de livraison.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_message'] = 'Saisir vos informations de paiement.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_missing'] = 'Sélectionner un mode de paiement.'; -$GLOBALS['TL_LANG']['MSC']['order_review_message'] = 'Examiner et confirmer les détails de votre commande.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Adresse'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Livraison'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Paiement'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Récapitulatif'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Adresse de facturation'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Adresse de livraison'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Adresse de facturation et d\'expédition'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Adresse du client'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Mode de livraison'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Mode de paiement'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Récapitulation de la commande'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Change'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Numéro de carte de crédit'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Type de carte de crédit'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'Nombre CCV (3 ou 4 chiffres)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Mois d\'expiration'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Année d\'expiration'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = 'Module de paiement non trouvé !'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNotFound'] = 'Module d\'expédition non trouvé !'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNoInfo'] = 'Ce module de paiement ne fournit pas de renseignements supplémentaires.'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNoInfo'] = 'Ce module d\'expédition ne fournit pas d\'informations supplémentaires.'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Utiliser la valeur par défaut'; -$GLOBALS['TL_LANG']['MSC']['activeStep'] = 'étape en cours :'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Chargement des produits...'; -$GLOBALS['TL_LANG']['MSC']['productcacheNoscript'] = 'Votre navigateur ne supporte pas JavaScript. Veuillez cliquez ici pour charger la liste des produits.'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'Aucun fichier dans ce répertoire'; -$GLOBALS['TL_LANG']['MSC']['assetImportConfirmation'] = 'Importer le fichier %s pour le produit "%s"'; -$GLOBALS['TL_LANG']['MSC']['assetImportNoFilesFound'] = 'Le répertoire ne contenait pas de fichiers à importer.'; -$GLOBALS['TL_LANG']['MSC']['loadingProductData'] = 'Chargement des données de produits...'; -$GLOBALS['TL_LANG']['MSC']['templatesConfig'] = 'Configuration du magasin : %s'; -$GLOBALS['TL_LANG']['MSC']['splittedTaxRate'] = 'Divisé'; -$GLOBALS['TL_LANG']['MSC']['newOrders'] = 'Vous avez %s commande(s) avec le statut "%s"'; -$GLOBALS['TL_LANG']['MSC']['checkoutStep'] = 'Étape %s de %s (%s) - '; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minutes'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Heures'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Jours'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Semaines'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Mois'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Années'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Bienvenue sur Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][1] = 'Isotope est la solution eCommerce open source première pour Contao.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][2] = 'C\'est la page où la majeure partie de la configuration à lieu. Procédez depuis le bas de la liste en remontant de droite à gauche.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][3] = 'Visitez le site officiel Isotope eCommerce pour les dernières nouvelles, manuels de configuration et nos campagne de levée de fonds. Merci de nous aider à soutenir Isotope!'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][4] = 'L\'équipe de Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][5] = 'Isotope est un produit de %s en association avec l\'équipe Isotope eCommerce.'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_id'] = 'par date d\'ajout (ascendant)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_id'] = 'par date d\'ajout (descendant)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_tstamp'] = 'par date de mise à jour (ascendant)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_tstamp'] = 'par date de mise à jour (descendant)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_name'] = 'par nom de produit (ascendant)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_name'] = 'par nom de produit (descendant)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_price'] = 'par prix (ascendant)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_price'] = 'par prix (descendant)'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][0] = 'Expédition à prix fixe'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][1] = 'C\'est la méthode standard pour expédition standard.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][0] = 'Groupe d\'expédition'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][1] = 'Avec cette méthode, vous pouvez grouper plusieurs méthode d\'expédition en une et calculer le prix d\'après ces dernières.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][0] = 'Espèces'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][1] = 'A utiliser pour le traitement de tout paiement hors ligne.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][0] = 'PayPal Standard Checkout'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][1] = 'Ce module PayPal supporte IPN (Notification instantanée de paiement).'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['postfinance'][1] = 'Passerelle pour le système de paiement de la Poste Suisse qui prend en charge différents types de cartes. Le magasin sera immédiatement informé des transactions réussies.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['viveum'][0] = 'VIVEUM'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['viveum'][1] = 'Un module de paiement pour la passerelle VIVEUM Zahlungssysteme GmbH.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][0] = 'Datatrans'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][1] = 'Un module de paiement pour la passerelle Suisse "Datatrans".'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['sparkasse'][0] = 'Sparkasse'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['saferpay'][0] = 'Saferpay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['sofortueberweisung'][0] = 'sofortüberweisung.de'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['expercash'][0] = 'ExperCash'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['payone'][0] = 'PayOne'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['worldpay'][0] = 'WorldPay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_document']['standard'][0] = 'Standard'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][0] = 'Galerie par défaut'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][1] = '

Utilisez le lightbox/mediabox pour des images pleine résolution. Assurez vous de sélectionner le modèle "moo_" approprié dans la configuration du modèle de page.

Vous pouvez fournir un attribut "rel" à la cible du lien an utilisant un tuyaux (ex: "tl_files/video.mov|lightbox[400 300]"). Si aucun attribut "rel" n\'est renseigné, le lien sera ouvert dans une nouvelle fenêtre.

'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][0] = 'Galerie en ligne'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][1] = 'Cliquer sur une image de la galerie pour remplacer l\'image principale.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][0] = 'Produit standard'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][1] = 'Un produit par défaut. Sélectionnez-le si rien d\'autre ne correspond.'; -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['enroute'] = 'EnRoute'; -$GLOBALS['TL_LANG']['CCT']['carte_blanche'] = 'Carte Blanche'; -$GLOBALS['TL_LANG']['CCT']['jal'] = 'JAL'; -$GLOBALS['TL_LANG']['CCT']['maestro'] = 'Maestro UK'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['solo'] = 'Solo'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['CCT']['dankort'] = 'Dankort'; -$GLOBALS['TL_LANG']['CCT']['laser'] = 'Laser'; -$GLOBALS['TL_LANG']['CCT']['carte_bleue'] = 'Carte Bleue'; -$GLOBALS['TL_LANG']['CCT']['carta_si'] = 'Carta Si'; -$GLOBALS['TL_LANG']['CCT']['enc_acct_num'] = 'Numéro de compte codé'; -$GLOBALS['TL_LANG']['CCT']['uatp'] = 'Programme universel de transport aérien'; -$GLOBALS['TL_LANG']['CCT']['maestro_intl'] = 'Maestro International'; -$GLOBALS['TL_LANG']['CCT']['ge_money_uk'] = 'GE Money UK'; -$GLOBALS['TL_LANG']['ATTR']['text'][0] = 'Champ texte'; -$GLOBALS['TL_LANG']['ATTR']['text'][1] = 'Champ d\'une ligne pour la saisie d\'un texte court ou moyen.'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][0] = 'Zone de texte'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][1] = 'Champ comportant plusieurs lignes pour la saisie d\'un texte moyen ou long.'; -$GLOBALS['TL_LANG']['ATTR']['select'][0] = 'Liste déroulante'; -$GLOBALS['TL_LANG']['ATTR']['select'][1] = 'Liste déroulante pour la sélection d\'un ou plusieurs choix.
Ce type de champ est adapté pour les variantes de produits.'; -$GLOBALS['TL_LANG']['ATTR']['radio'][0] = 'Bouton radio'; -$GLOBALS['TL_LANG']['ATTR']['radio'][1] = 'Liste de plusieurs options dont une seule peut être sélectionnée.
Ce type de champ est adapté pour les variantes de produits.'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][0] = 'Case à cocher'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][1] = 'Liste de plusieurs options dont chacune peut être sélectionnée.'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][0] = 'Gestionnaire de médias'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][1] = 'Charge les images et autre fichiers dans le système de fichiers d\'Isotope eCommerce. La sortie est traitée par une classe IsotopeGallery'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][0] = 'Liste déroulante conditionnelle'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][1] = 'Liste déroulante affichant des options dépendantes d\'une autre liste déroulante.'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][0] = 'Arborescence de fichiers'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][1] = 'Une arborescence pour les fichiers et les dossiers uniques ou multiples.'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Téléchargements'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][1] = 'Télécharger les fichiers du produit, ex : manuels, fiches techniques, etc.'; -$GLOBALS['TL_LANG']['ATTR']['upload'][0] = 'Envoi de fichier'; -$GLOBALS['TL_LANG']['ATTR']['upload'][1] = 'Champ d\'une ligne pour l\'envoi d\'un fichier local vers le serveur.'; -$GLOBALS['TL_LANG']['CUR']['AED'] = 'AED - Dirham des émirats arabes unis'; -$GLOBALS['TL_LANG']['CUR']['AFN'] = 'AFN - Afghani'; -$GLOBALS['TL_LANG']['CUR']['ALL'] = 'ALL - Lek'; -$GLOBALS['TL_LANG']['CUR']['AMD'] = 'AMD - Dram'; -$GLOBALS['TL_LANG']['CUR']['ANG'] = 'ANG - Florin des Antilles'; -$GLOBALS['TL_LANG']['CUR']['AOA'] = 'AOA - Kwanza'; -$GLOBALS['TL_LANG']['CUR']['ARS'] = 'ARS - Peso argentain'; -$GLOBALS['TL_LANG']['CUR']['AUD'] = 'AUD - Dollar australien'; -$GLOBALS['TL_LANG']['CUR']['AWG'] = 'AWG - Florin d\'Aruba'; -$GLOBALS['TL_LANG']['CUR']['AZN'] = 'AZN - Nouveau manat azerbaïdjanais'; -$GLOBALS['TL_LANG']['CUR']['BAM'] = 'BAM - Mark bosniaque convertible'; -$GLOBALS['TL_LANG']['CUR']['BBD'] = 'BBD - Dollar de Barbade'; -$GLOBALS['TL_LANG']['CUR']['BDT'] = 'BDT - Taka'; -$GLOBALS['TL_LANG']['CUR']['BGN'] = 'BGN - Lev'; -$GLOBALS['TL_LANG']['CUR']['BHD'] = 'BHD - Dinar de Bahreïn'; -$GLOBALS['TL_LANG']['CUR']['BIF'] = 'BIF - Franc du Burundi'; -$GLOBALS['TL_LANG']['CUR']['BMD'] = 'BMD - Dollar des Bermudes'; -$GLOBALS['TL_LANG']['CUR']['BND'] = 'BND - Dollar de Brunéi'; -$GLOBALS['TL_LANG']['CUR']['BOB'] = 'BOB - Boliviano'; -$GLOBALS['TL_LANG']['CUR']['BRL'] = 'BRL - Real'; -$GLOBALS['TL_LANG']['CUR']['BSD'] = 'BSD - Dollar des Bahamas'; -$GLOBALS['TL_LANG']['CUR']['BTN'] = 'BTN - Ngultrum'; -$GLOBALS['TL_LANG']['CUR']['BWP'] = 'BWP - Pula'; -$GLOBALS['TL_LANG']['CUR']['BYR'] = 'BYR - Rouble biélorusse'; -$GLOBALS['TL_LANG']['CUR']['BZD'] = 'BZD - Dollar de Belize'; -$GLOBALS['TL_LANG']['CUR']['CAD'] = 'CAD - Dollar canadien'; -$GLOBALS['TL_LANG']['CUR']['CDF'] = 'CDF - Franc du Congo démocratique'; -$GLOBALS['TL_LANG']['CUR']['CHF'] = 'CHF - Franc suisse'; -$GLOBALS['TL_LANG']['CUR']['CLF'] = 'CLF - Unidad de Fomento chilien'; -$GLOBALS['TL_LANG']['CUR']['CLP'] = 'CLP - Peso chilien'; -$GLOBALS['TL_LANG']['CUR']['CNY'] = 'CNY - Yuan Ren-Min-Bi'; -$GLOBALS['TL_LANG']['CUR']['COP'] = 'COP - Peso colombien'; -$GLOBALS['TL_LANG']['CUR']['CRC'] = 'CRC - Colon de Costa Rica'; -$GLOBALS['TL_LANG']['CUR']['CUC'] = 'CUC - Peso cubain convertible'; -$GLOBALS['TL_LANG']['CUR']['CUP'] = 'CUP - Peso cubain'; -$GLOBALS['TL_LANG']['CUR']['CVE'] = 'CVE - Escudo du Cap-Vert'; -$GLOBALS['TL_LANG']['CUR']['CZK'] = 'CZK - Couronne Tchèque'; -$GLOBALS['TL_LANG']['CUR']['DJF'] = 'DJF - Franc de Djibouti'; -$GLOBALS['TL_LANG']['CUR']['DKK'] = 'DKK - Couronne danoise'; -$GLOBALS['TL_LANG']['CUR']['DOP'] = 'DOP - Peso dominicain'; -$GLOBALS['TL_LANG']['CUR']['DZD'] = 'DZD - Dinar algérien'; -$GLOBALS['TL_LANG']['CUR']['EGP'] = 'EGP - Livre égyptienne'; -$GLOBALS['TL_LANG']['CUR']['ERN'] = 'ERN - Nafka'; -$GLOBALS['TL_LANG']['CUR']['ETB'] = 'ETB - Birr éthiopien'; -$GLOBALS['TL_LANG']['CUR']['EUR'] = 'EUR - Euro'; -$GLOBALS['TL_LANG']['CUR']['FJD'] = 'FJD - Dollar des Fidji'; -$GLOBALS['TL_LANG']['CUR']['FKP'] = 'FKP - Livre de Falkland'; -$GLOBALS['TL_LANG']['CUR']['GBP'] = 'GBP - Livre sterling'; -$GLOBALS['TL_LANG']['CUR']['GEL'] = 'GEL - Lari'; -$GLOBALS['TL_LANG']['CUR']['GHS'] = 'GHS - Cedi'; -$GLOBALS['TL_LANG']['CUR']['GIP'] = 'GIP - Livre de Gibraltar'; -$GLOBALS['TL_LANG']['CUR']['GMD'] = 'GMD - Dalasie'; -$GLOBALS['TL_LANG']['CUR']['GNF'] = 'GNF - Franc guinéen'; -$GLOBALS['TL_LANG']['CUR']['GTQ'] = 'GTQ - Quetzal'; -$GLOBALS['TL_LANG']['CUR']['GYD'] = 'GYD - Dollar de Guyane'; -$GLOBALS['TL_LANG']['CUR']['HKD'] = 'HKD - Dollar de Hong-Kong'; -$GLOBALS['TL_LANG']['CUR']['HNL'] = 'HNL - Lempira'; -$GLOBALS['TL_LANG']['CUR']['HRD'] = 'HRD - Dinar Croate'; -$GLOBALS['TL_LANG']['CUR']['HRK'] = 'HRK - Kuna'; -$GLOBALS['TL_LANG']['CUR']['HTG'] = 'HTG - Gourde'; -$GLOBALS['TL_LANG']['CUR']['HUF'] = 'HUF - Forint'; -$GLOBALS['TL_LANG']['CUR']['IDR'] = 'IDR - Rupiah'; -$GLOBALS['TL_LANG']['CUR']['ILS'] = 'ILS - Sheqel'; -$GLOBALS['TL_LANG']['CUR']['INR'] = 'INR - Roupie indienne'; -$GLOBALS['TL_LANG']['CUR']['IQD'] = 'IQD - Dinar iraquien'; -$GLOBALS['TL_LANG']['CUR']['IRR'] = 'IRR - Rial iranien'; -$GLOBALS['TL_LANG']['CUR']['ISK'] = 'ISK - Couronne islandaise'; -$GLOBALS['TL_LANG']['CUR']['JMD'] = 'JMD - Dollar jamaïcain'; -$GLOBALS['TL_LANG']['CUR']['JOD'] = 'JOD - Dinar jordanien'; -$GLOBALS['TL_LANG']['CUR']['JPY'] = 'JPY - Yen'; -$GLOBALS['TL_LANG']['CUR']['KES'] = 'KES - Shilling du Kenya'; -$GLOBALS['TL_LANG']['CUR']['KGS'] = 'KGS - Som'; -$GLOBALS['TL_LANG']['CUR']['KHR'] = 'KHR - Riel'; -$GLOBALS['TL_LANG']['CUR']['KMF'] = 'KMF - Franc des Comores'; -$GLOBALS['TL_LANG']['CUR']['KPW'] = 'KPW - Won de la Corée du Nord'; -$GLOBALS['TL_LANG']['CUR']['KRW'] = 'KRW - Won'; -$GLOBALS['TL_LANG']['CUR']['KWD'] = 'KWD - Dinar koweïtien'; -$GLOBALS['TL_LANG']['CUR']['KYD'] = 'KYD - Dollar des îles Caïmanes'; -$GLOBALS['TL_LANG']['CUR']['KZT'] = 'KZT - Tenge'; -$GLOBALS['TL_LANG']['CUR']['LAK'] = 'LAK - Kip'; -$GLOBALS['TL_LANG']['CUR']['LBP'] = 'LBP - Livre libanaise'; -$GLOBALS['TL_LANG']['CUR']['LKR'] = 'PKR - Roupie pakistanaise'; -$GLOBALS['TL_LANG']['CUR']['LRD'] = 'LRD - Dollar libérien'; -$GLOBALS['TL_LANG']['CUR']['LSL'] = 'LSL - Loti'; -$GLOBALS['TL_LANG']['CUR']['LTL'] = 'LTL - Litas lituanien'; -$GLOBALS['TL_LANG']['CUR']['LVL'] = 'LVL - Lats letton'; -$GLOBALS['TL_LANG']['CUR']['LYD'] = 'LYD - Dinar libyen'; -$GLOBALS['TL_LANG']['CUR']['MAD'] = 'MAD - Dirham marocain'; -$GLOBALS['TL_LANG']['CUR']['MDL'] = 'MDL - Leu de Moldave'; -$GLOBALS['TL_LANG']['CUR']['MGA'] = 'MGA - Ariary malgache'; -$GLOBALS['TL_LANG']['CUR']['MKD'] = 'MKD - Denar'; -$GLOBALS['TL_LANG']['CUR']['MMK'] = 'MMK - Kyat'; -$GLOBALS['TL_LANG']['CUR']['MNT'] = 'MNT - Tugrik'; -$GLOBALS['TL_LANG']['CUR']['MOP'] = 'MOP - Pataca'; -$GLOBALS['TL_LANG']['CUR']['MRO'] = 'MRO - Ouguija'; -$GLOBALS['TL_LANG']['CUR']['MUR'] = 'MUR - Roupie mauricienne'; -$GLOBALS['TL_LANG']['CUR']['MVR'] = 'MVR - Rufiyaa'; -$GLOBALS['TL_LANG']['CUR']['MWK'] = 'MWK - Kwacha'; -$GLOBALS['TL_LANG']['CUR']['MXN'] = 'MXN - Peso mexicain'; -$GLOBALS['TL_LANG']['CUR']['MYR'] = 'MYR - Ringgit de Malaisie'; -$GLOBALS['TL_LANG']['CUR']['MZN'] = 'MZN - Nouveau metical'; -$GLOBALS['TL_LANG']['CUR']['NAD'] = 'NAD - Dollar namibien'; -$GLOBALS['TL_LANG']['CUR']['NGN'] = 'NGN - Naira'; -$GLOBALS['TL_LANG']['CUR']['NIO'] = 'NIO - Cordoba Oro'; -$GLOBALS['TL_LANG']['CUR']['NOK'] = 'NOK - Couronne norvégienne'; -$GLOBALS['TL_LANG']['CUR']['NPR'] = 'NPR - Roupie Népalaise'; -$GLOBALS['TL_LANG']['CUR']['NZD'] = 'NZD - Dollar néo-zélandais'; -$GLOBALS['TL_LANG']['CUR']['OMR'] = 'OMR - Rial Omani'; -$GLOBALS['TL_LANG']['CUR']['PAB'] = 'PAB - Balboa'; -$GLOBALS['TL_LANG']['CUR']['PEN'] = 'PEN - Nouveau sol'; -$GLOBALS['TL_LANG']['CUR']['PGK'] = 'PGK - Kina'; -$GLOBALS['TL_LANG']['CUR']['PHP'] = 'PHP - Peso philippin'; -$GLOBALS['TL_LANG']['CUR']['PKR'] = 'PKR - Roupie pakistanaise'; -$GLOBALS['TL_LANG']['CUR']['PLN'] = 'PLN - Zloty'; -$GLOBALS['TL_LANG']['CUR']['PYG'] = 'PYG - Guarani'; -$GLOBALS['TL_LANG']['CUR']['QAR'] = 'QAR - Riyal du Qatar'; -$GLOBALS['TL_LANG']['CUR']['RON'] = 'RON - Nouveau Leu'; -$GLOBALS['TL_LANG']['CUR']['RSD'] = 'RSD - Dinar Serbe'; -$GLOBALS['TL_LANG']['CUR']['RUB'] = 'RUB - Rouble russe'; -$GLOBALS['TL_LANG']['CUR']['RWF'] = 'RWF - Franc du Rwanda'; -$GLOBALS['TL_LANG']['CUR']['SAR'] = 'SAR - Riyal saoudien'; -$GLOBALS['TL_LANG']['CUR']['SBD'] = 'SBD - Dollar des îles Salomon'; -$GLOBALS['TL_LANG']['CUR']['SCR'] = 'SCR - Roupie des Seychelles'; -$GLOBALS['TL_LANG']['CUR']['SDG'] = 'SDG - Livre soudanaise'; -$GLOBALS['TL_LANG']['CUR']['SEK'] = 'SEK - Couronne suédoise'; -$GLOBALS['TL_LANG']['CUR']['SGD'] = 'SGD - Dollar de Singapour'; -$GLOBALS['TL_LANG']['CUR']['SHP'] = 'SHP - Livre de Sainte-Hélène'; -$GLOBALS['TL_LANG']['CUR']['SLL'] = 'SLL - Leone'; -$GLOBALS['TL_LANG']['CUR']['SOS'] = 'SOS - Shilling Somalien'; -$GLOBALS['TL_LANG']['CUR']['SRD'] = 'SRD - Florin du suriname'; -$GLOBALS['TL_LANG']['CUR']['SSP'] = 'SSP - Livre sud Soudanaise'; -$GLOBALS['TL_LANG']['CUR']['STD'] = 'STD - Dobra'; -$GLOBALS['TL_LANG']['CUR']['SVC'] = 'SVC - Colon salvadorien'; -$GLOBALS['TL_LANG']['CUR']['SYP'] = 'SYP - Livre syrienne'; -$GLOBALS['TL_LANG']['CUR']['SZL'] = 'SZL - Lilangeni'; -$GLOBALS['TL_LANG']['CUR']['THB'] = 'THB - Baht'; -$GLOBALS['TL_LANG']['CUR']['TJS'] = 'TJS - Somoni'; -$GLOBALS['TL_LANG']['CUR']['TMT'] = 'TMT - Manat'; -$GLOBALS['TL_LANG']['CUR']['TND'] = 'TND - Dinar tunisien'; -$GLOBALS['TL_LANG']['CUR']['TOP'] = 'TOP - Pa\'anga'; -$GLOBALS['TL_LANG']['CUR']['TRY'] = 'TRL - Livre turque'; -$GLOBALS['TL_LANG']['CUR']['TTD'] = 'TTD - Dollar de Trinité et de Tobago'; -$GLOBALS['TL_LANG']['CUR']['TWD'] = 'TWD - Dollar de Taïwan'; -$GLOBALS['TL_LANG']['CUR']['TZS'] = 'TZS - Shilling tanzanien'; -$GLOBALS['TL_LANG']['CUR']['UAH'] = 'UAH - Hryvna'; -$GLOBALS['TL_LANG']['CUR']['UGX'] = 'UGX - Shilling ougandais'; -$GLOBALS['TL_LANG']['CUR']['USD'] = 'USD - Dollar des Etats-unis'; -$GLOBALS['TL_LANG']['CUR']['UYU'] = 'UYU - Peso uruguayen'; -$GLOBALS['TL_LANG']['CUR']['UZS'] = 'UZS - Soum ouzbek'; -$GLOBALS['TL_LANG']['CUR']['VEF'] = 'VEF - Bolivar fuerté'; -$GLOBALS['TL_LANG']['CUR']['VND'] = 'VND - Dong'; -$GLOBALS['TL_LANG']['CUR']['VUV'] = 'VUV - Vatu'; -$GLOBALS['TL_LANG']['CUR']['WST'] = 'WST - Tala'; -$GLOBALS['TL_LANG']['CUR']['XCD'] = 'XCD - Dollar des Caraïbes de l\'Est'; -$GLOBALS['TL_LANG']['CUR']['YER'] = 'YER - Riyal yéménite'; -$GLOBALS['TL_LANG']['CUR']['ZAR'] = 'ZAR - Rand'; -$GLOBALS['TL_LANG']['CUR']['ZMK'] = 'ZMK - Kwacha de Zambie'; -$GLOBALS['TL_LANG']['CUR']['ZWL'] = 'ZWL - Dollar du Zimbabwe'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['CHF'] = 'Fr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['DKK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['NOK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['SEK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; diff --git a/system/modules/isotope/languages/fr/default.xlf b/system/modules/isotope/languages/fr/default.xlf new file mode 100644 index 0000000000..14a1d45c9a --- /dev/null +++ b/system/modules/isotope/languages/fr/default.xlf @@ -0,0 +1,1716 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Le nom `%s` est réservé pour l'administration du système. Merci de choisir un autre nom. + + + No store configuration available + Il n'existe pas de configuration pour cette entrepot + + + Please create a default store configuration. + Créez d'abord une configuration de l'entrepot. + + + You have not yet placed any orders. + Vous n'avez rien commandé jusqu'ici. + + + The requested order was not found. + La commande désirée n'a pas pu être trouvée. + + + You must be logged in to checkout. + Vous devez être enregistré pour commander. + + + A variant with this attributes is already available. Please select another combination. + Il existe déjà une variante avec ces attributs. Merci de choisir une autre combinaison. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Saisir des nombres entiers ou décimaux avec + ou - et éventuellement avec un pourcentage. + + + Please enter whole numbers or decimals optionally with a percentage. + Saisir des nombres entiers ou décimaux éventuellement avec un pourcentage. + + + Checkout failed. Please try again or choose another payment method. + Paiement échoué. Essayez encore une fois ou choisissez un autre mode de paiement + + + You have no address book entries. + Il n'y a pas d'entrées dans votre carnet d'adresses. + + + The minimum order amount is %s. Please add more products before checkout. + Le montant minimum de commande est %s. Veuillez ajouter d'autres produits avant de commander. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + La quantité minimale pour "%s" est de %s de produit. Veuillez vérifier votre panier. + + + This image has already been assigned to the fallback language. + Cette image a déjà été attribuée à la langue de secours. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + Sélectionner une validation de champ approprié (date, heure, date et heure) pour le sélecteur de date. + + + The selected folder is empty. + Le dossier sélectionné est vide. + + + User checkout not allowed + Récapitulatif utilisateur interdit + + + This product is no longer available. + Ce produit n'est plus disponible. + + + There are errors in your products. + Il y a des erreurs dans votre produit. + + + Please resolve the errors in your cart before checking out. + Veuillez corriger les erreurs dans votre panier avant le récapitulatif. + + + You cannot configure the same attribute multiple times. + + + Only show this group + Montrer seulement ce groupe + + + Groups + Groupes + + + Pages + Pages + + + Back to the group picker + Retour au sélecteur de groupe + + + Show all groups + Afficher tous les groupes + + + There are no variants for this product. + Aucune variante de produit trouvée. + + + Duplicate Fallback + Dupliquer la langue de secours + + + Order no %s / %s + Numéro de commande de %s / %s + + + Your payment is being processed. Please be patient... + Votre paiement est en cours de traitement. Veuillez patienter... + + + No files uploaded. + Aucun fichier envoyé. + + + The file could not be uploaded for unknown reason. Please check the system log. + Le fichier ne peut être chargé pour une raison inconnue. Veuillez vérifier les logs système. + + + Drop files here to upload + Lâcher les fichiers à charger ici + + + Upload files + Charger les fichiers + + + Processing dropped files... + Traitement des fichiers déposés... + + + Some records could not be deleted. + Certains enregistrements ne peuvent pas être supprimés. + + + Some records could not be deleted and have been unpublished instead. + Certains enregistrements ne peuvent pas être supprimés et n'ont pas été dé-publier. + + + Quantity + Quantité + + + Tax-free + + + search products + Produits à rechercher + + + Your downloadable products + Vos produits téléchargeables + + + <span class="from">From</span> %s + <span class="from">À partir de</span> %s + + + View Details + Afficher les détails + + + Reorder + + + Products Per Page + Produits par page + + + Keywords + Mots-clés + + + Submit + Valider + + + Clear Filters + Effacer les filtres + + + Update + Mettre à jour + + + Add To Cart + Ajouter au panier + + + Add All To Cart + + + Update Cart + Mettre à jour le panier + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Trier par : + + + No products have been found. + Aucun produit trouvé. + + + Back + Retour + + + Continue + Continuer + + + Order + Commander + + + No categories are associated with this product. + Pas de catégories associées avec ce produit + + + Submit + Valider + + + There are no items in your favorites list. + + + There are no items in your cart. + Il n'y a pas d'article dans votre panier. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + Le produit sélectionné a bien été ajouté à votre panier. + + + The products from your last visit have been readded. Please review your shopping cart items. + The products from your last visit have been readded. Please review your shopping cart items. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Éditer + + + Remove + Supprimer + + + Remove %s from your cart + Supprimer "%s" de votre panier + + + Order Subtotal: + Sous-total de la commande : + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Total de la commande : + + + No payment options are currently available + Actuellement, il n'y a pas d'options de paiement. + + + No shipping options are currently available. + Actuellement, il n'y a pas d'options de livraison. + + + No orders emails found. + Aucun e-mail de commande trouvé. + + + No orders found. + Aucune commande trouvée. + + + <br />%s downloads remaining + <br />%s téléchargements restants + + + Shopping Cart + Panier d'achat + + + Proceed to Checkout + Commander + + + Continue shopping + Continuez vos achats + + + Update Cart + Mettre à jour le panier + + + Order Status: %s + État de la commande: %s + + + Go back to step "%s" + Retourner à l'étape "%s" + + + Create New Address + Créer une nouvelle adresse + + + Use billing address + Utiliser l'adresse de paiement + + + Use customer address + Utiliser l'adresse du client + + + Different shipping address + Adresse de livraison différente + + + Edit + Éditer + + + Delete + Supprimer + + + Do you really want to delete this address? This cannot be undone. + Voulez-vous vraiment supprimer cette adresse ? Cette action ne peut pas être annulée. + + + Invoice + Facture + + + Status + État + + + Order date + Date de la commande + + + Order number + Numéro de commande + + + Description + Description + + + Quantity + Quantité + + + Price + Prix + + + Total + Total général + + + lo to hi + de bas en haut + + + hi to lo + de haut en bas + + + A to Z + de A à Z + + + Z to A + de Z à A + + + earlier to later + du plus ancien au plus récent + + + later to earlier + du plus récent au plus ancien + + + Processing payment + Procéder au paiement + + + You will be redirected to the payment gateway website. + + + Pay now + Payer maintenant + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + Cliquez ici pour voir cette transaction PayPal en ligne + + + 1 Product + 1 Produit + + + %s Products + %s produits + + + Enter your shipping information or select an existing address. + Saisir vos informations d'expédition ou sélectionner une adresse existante. + + + Enter your billing information or select an existing address. + Saisir vos informations de facturation ou sélectionner une adresse existante. + + + Enter your billing information + Saisir vos informations de facturation + + + Enter your customer information or select an existing address. + Saisir vos informations client ou sélectionner une adresse existante. + + + Enter your customer information + Saisir vos informations client + + + Select a shipping method. + Sélectionner un mode de livraison. + + + Please select a shipping method. + Sélectionner un mode de livraison. + + + Enter your payment information. + Saisir vos informations de paiement. + + + Please select a payment method. + Sélectionner un mode de paiement. + + + Review and confirm your order details. + Examiner et confirmer les détails de votre commande. + + + Address + Adresse + + + Shipping + Livraison + + + Payment + Paiement + + + Review + Récapitulatif + + + Billing Address + Adresse de facturation + + + Shipping Address + Adresse de livraison + + + Billing & Shipping Address + Adresse de facturation et d'expédition + + + Customer Address + Adresse du client + + + Shipping Method + Mode de livraison + + + Payment Method + Mode de paiement + + + Order Review + Récapitulation de la commande + + + Change + Change + + + Credit card number + Numéro de carte de crédit + + + Credit card type + Type de carte de crédit + + + CCV number (3 or 4 digit code) + Nombre CCV (3 ou 4 chiffres) + + + Expiration month + Mois d'expiration + + + Expiration year + Année d'expiration + + + Payment module not found! + Module de paiement non trouvé ! + + + Shipping module not found! + Module d'expédition non trouvé ! + + + This payment module does not provide additional information. + Ce module de paiement ne fournit pas de renseignements supplémentaires. + + + This shipping module does not provide additional information. + Ce module d'expédition ne fournit pas d'informations supplémentaires. + + + Use default value + Utiliser la valeur par défaut + + + active step: + étape en cours : + + + Loading products... + Chargement des produits... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + Votre navigateur ne supporte pas JavaScript. Veuillez <a href="%s">cliquez ici</a> pour charger la liste des produits. + + + No files in this folder + Aucun fichier dans ce répertoire + + + Imported file %s for product "%s" + Importer le fichier %s pour le produit "%s" + + + The folder did not contain any files to be imported. + Le répertoire ne contenait pas de fichiers à importer. + + + Loading product data … + Chargement des données de produits... + + + Store Config "%s" + Configuration du magasin : %s + + + Splitted + Divisé + + + You have %s order(s) with status "%s" + Vous avez %s commande(s) avec le statut "%s" + + + Step %s of %s (%s) - + Étape %s de %s (%s) - + + + Minutes + Minutes + + + Hours + Heures + + + Days + Jours + + + Weeks + Semaines + + + Months + Mois + + + Years + Années + + + Introduction + + + Welcome to Isotope eCommerce + Bienvenue sur Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + Isotope est la solution eCommerce open source première pour Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + C'est la page où la majeure partie de la configuration à lieu. <strong>Procédez depuis le bas de la liste en remontant de droite à gauche.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + L'équipe de Isotope eCommerce + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + Isotope est un produit de %s en association avec <a href="http://isotopeecommerce.org/de/team.html" target="_blank">l'équipe Isotope eCommerce</a>. + + + by date added (ascending) + par date d'ajout (ascendant) + + + by date added (descending) + par date d'ajout (descendant) + + + by date updated (ascending) + par date de mise à jour (ascendant) + + + by date updated (descending) + par date de mise à jour (descendant) + + + by product name (ascending) + par nom de produit (ascendant) + + + by product name (descending) + par nom de produit (descendant) + + + by price (ascending) + par prix (ascendant) + + + by price (descending) + par prix (descendant) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + Expédition à prix fixe + + + This is the default shipping method for regular shipping. + C'est la méthode standard pour expédition standard. + + + Shipping group + Groupe d'expédition + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + Avec cette méthode, vous pouvez grouper plusieurs méthode d'expédition en une et calculer le prix d'après ces dernières. + + + Cash + Espèces + + + Use this for all offline processed payment. + A utiliser pour le traitement de tout paiement hors ligne. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + Ce module PayPal supporte IPN (Notification instantanée de paiement). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + Passerelle pour le système de paiement de la Poste Suisse qui prend en charge différents types de cartes. Le magasin sera immédiatement informé des transactions réussies. + + + VIVEUM + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + Un module de paiement pour la passerelle VIVEUM Zahlungssysteme GmbH. + + + Datatrans + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + Un module de paiement pour la passerelle Suisse "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + Sparkasse + + + Saferpay + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + sofortüberweisung.de + + + ExperCash + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + PayOne + + + WorldPay + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + Standard + + + Default gallery + Galerie par défaut + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + <p>Utilisez le lightbox/mediabox pour des images pleine résolution. Assurez vous de sélectionner le modèle "moo_" approprié dans la configuration du modèle de page.</p><p>Vous pouvez fournir un attribut "rel" à la cible du lien an utilisant un tuyaux (ex: "tl_files/video.mov|lightbox[400 300]"). Si aucun attribut "rel" n'est renseigné, le lien sera ouvert dans une nouvelle fenêtre.</p> + + + Inline gallery + Galerie en ligne + + + Clicking on a gallery image will replace the main image. + Cliquer sur une image de la galerie pour remplacer l'image principale. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + Produit standard + + + A default product. Select this if nothing else matches. + Un produit par défaut. Sélectionnez-le si rien d'autre ne correspond. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Discover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + EnRoute + + + Carte Blanche + Carte Blanche + + + JAL + JAL + + + Maestro UK + Maestro UK + + + Delta + Delta + + + Solo + Solo + + + Visa Electron + Visa Electron + + + Dankort + Dankort + + + Laser + Laser + + + Carte Bleue + Carte Bleue + + + Carta Si + Carta Si + + + Encoded Account Number + Numéro de compte codé + + + Universal Air Travel Program + Programme universel de transport aérien + + + Maestro International + Maestro International + + + GE Money UK + GE Money UK + + + Text field + Champ texte + + + A single-line input field for a short or medium text. + Champ d'une ligne pour la saisie d'un texte court ou moyen. + + + Textarea + Zone de texte + + + A multi-line input field for a medium or long text. + Champ comportant plusieurs lignes pour la saisie d'un texte moyen ou long. + + + Select menu + Liste déroulante + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + Liste déroulante pour la sélection d'un ou plusieurs choix.<br /><em>Ce type de champ est adapté pour les variantes de produits.</em> + + + Radio button menu + Bouton radio + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + Liste de plusieurs options dont une seule peut être sélectionnée.<br /><em>Ce type de champ est adapté pour les variantes de produits.</em> + + + Checkbox menu + Case à cocher + + + A list of multiple options from which any can be selected. + Liste de plusieurs options dont chacune peut être sélectionnée. + + + Media Manager + Gestionnaire de médias + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + Charge les images et autre fichiers dans le système de fichiers d'Isotope eCommerce. La sortie est traitée par une classe IsotopeGallery + + + Conditional Select-Menu + Liste déroulante conditionnelle + + + show select-options based on another select menu. + Liste déroulante affichant des options dépendantes d'une autre liste déroulante. + + + File tree + Arborescence de fichiers + + + A file tree for single or multiple files and folders. + Une arborescence pour les fichiers et les dossiers uniques ou multiples. + + + Downloads + Téléchargements + + + Download files from the product, e.g. manuals, data sheets etc. + Télécharger les fichiers du produit, ex : manuels, fiches techniques, etc. + + + File upload + Envoi de fichier + + + A single-line input field to upload a local file to the server. + Champ d'une ligne pour l'envoi d'un fichier local vers le serveur. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + AED - Dirham des émirats arabes unis + + + AFN - Afghani + AFN - Afghani + + + ALL - Lek + ALL - Lek + + + AMD - Dram + AMD - Dram + + + ANG - Netherlands Antilles Guilder + ANG - Florin des Antilles + + + AOA - Kwanza + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + ARS - Peso argentain + + + AUD - Australian Dollar + AUD - Dollar australien + + + AWG - Aruban Guilder + AWG - Florin d'Aruba + + + AZN - Azerbaijani Manat + AZN - Nouveau manat azerbaïdjanais + + + BAM - Convertible Mark + BAM - Mark bosniaque convertible + + + BBD - Barbados Dollar + BBD - Dollar de Barbade + + + BDT - Taka + BDT - Taka + + + BGN - Bulgarian Lev + BGN - Lev + + + BHD - Bahraini Dinar + BHD - Dinar de Bahreïn + + + BIF - Burundi Franc + BIF - Franc du Burundi + + + BMD - Bermudian Dollar + BMD - Dollar des Bermudes + + + BND - Brunei Dollar + BND - Dollar de Brunéi + + + BOB - Boliviano + BOB - Boliviano + + + BRL - Brazilian real + BRL - Real + + + BSD - Bahamian Dollar + BSD - Dollar des Bahamas + + + BTN - Ngultrum + BTN - Ngultrum + + + BWP - Pula + BWP - Pula + + + BYR - Belarussian Rouble + BYR - Rouble biélorusse + + + BZD - Belize Dollar + BZD - Dollar de Belize + + + CAD - Canadian Dollar + CAD - Dollar canadien + + + CDF - Congolese Franc + CDF - Franc du Congo démocratique + + + CHF - Swiss Franc + CHF - Franc suisse + + + CLF - Unidades de Fomento + CLF - Unidad de Fomento chilien + + + CLP - Chilean Peso + CLP - Peso chilien + + + CNY - Yuan Renminbi + CNY - Yuan Ren-Min-Bi + + + COP - Colombian Peso + COP - Peso colombien + + + CRC - Costa Rican Colón + CRC - Colon de Costa Rica + + + CUC - Peso Convertible + CUC - Peso cubain convertible + + + CUP - Cuban Peso + CUP - Peso cubain + + + CVE - Escudo Caboverdiano + CVE - Escudo du Cap-Vert + + + CZK - Czech Koruna + CZK - Couronne Tchèque + + + DJF - Djibouti Franc + DJF - Franc de Djibouti + + + DKK - Danish Krone + DKK - Couronne danoise + + + DOP - Dominican Republic Peso + DOP - Peso dominicain + + + DZD - Algerian Dinar + DZD - Dinar algérien + + + EGP - Egyptian Pound + EGP - Livre égyptienne + + + ERN - Eritrean Nakfa + ERN - Nafka + + + ETB - Ethiopian Birr + ETB - Birr éthiopien + + + EUR - Euro + EUR - Euro + + + FJD - Fiji Dollar + FJD - Dollar des Fidji + + + FKP - Falkland Pound + FKP - Livre de Falkland + + + GBP - Pound Sterling + GBP - Livre sterling + + + GEL - Lari + GEL - Lari + + + GHS - Ghanaian cedi + GHS - Cedi + + + GIP - Gibraltar Pound + GIP - Livre de Gibraltar + + + GMD - Dalasi + GMD - Dalasie + + + GNF - Guinea Franc + GNF - Franc guinéen + + + GTQ - Quetzal + GTQ - Quetzal + + + GYD - Guyana Dollar + GYD - Dollar de Guyane + + + HKD - Hong Kong Dollar + HKD - Dollar de Hong-Kong + + + HNL - Lempira + HNL - Lempira + + + HRD - Croatian Dinar + HRD - Dinar Croate + + + HRK - Croatian Kuna + HRK - Kuna + + + HTG - Gourde + HTG - Gourde + + + HUF - Forint + HUF - Forint + + + IDR - Rupiah + IDR - Rupiah + + + ILS - Shekel + ILS - Sheqel + + + INR - Indian Rupee + INR - Roupie indienne + + + IQD - Iraqi Dinar + IQD - Dinar iraquien + + + IRR - Iranian Rial + IRR - Rial iranien + + + ISK - Icelandic Króna + ISK - Couronne islandaise + + + JMD - Jamaican Dollar + JMD - Dollar jamaïcain + + + JOD - Jordanian Dinar + JOD - Dinar jordanien + + + JPY - Yen + JPY - Yen + + + KES - Kenyan Shilling + KES - Shilling du Kenya + + + KGS - Kyrgyzstani Som + KGS - Som + + + KHR - Riel + KHR - Riel + + + KMF - Comorian Franc + KMF - Franc des Comores + + + KPW - Democratic People's Republic of Korean Won + KPW - Won de la Corée du Nord + + + KRW - Republic of Korean Won + KRW - Won + + + KWD - Kuwaiti Dinar + KWD - Dinar koweïtien + + + KYD - Cayman Islands Dollar + KYD - Dollar des îles Caïmanes + + + KZT - Tenge + KZT - Tenge + + + LAK - Kip + LAK - Kip + + + LBP - Lebanese Pound + LBP - Livre libanaise + + + LKR - Sri Lankan Rupee + PKR - Roupie pakistanaise + + + LRD - Liberian Dollar + LRD - Dollar libérien + + + LSL - Loti + LSL - Loti + + + LTL - Litas + LTL - Litas lituanien + + + LVL - Lats + LVL - Lats letton + + + LYD - Libyan Dinar + LYD - Dinar libyen + + + MAD - Moroccan Dirham + MAD - Dirham marocain + + + MDL - Moldavian Leu + MDL - Leu de Moldave + + + MGA - Malagasy ariary + MGA - Ariary malgache + + + MKD - Macedonian Dinar + MKD - Denar + + + MMK - Kyat + MMK - Kyat + + + MNT - Tugrik + MNT - Tugrik + + + MOP - Pataca + MOP - Pataca + + + MRO - Ouguiya + MRO - Ouguija + + + MUR - Mauritius Rupee + MUR - Roupie mauricienne + + + MVR - Rufiyaa + MVR - Rufiyaa + + + MWK - Malawian Kwacha + MWK - Kwacha + + + MXN - Mexican Peso + MXN - Peso mexicain + + + MYR - Ringgit (Malaysian Dollar) + MYR - Ringgit de Malaisie + + + MZN - Mozambican metical + MZN - Nouveau metical + + + NAD - Namibia Dollar + NAD - Dollar namibien + + + NGN - Naira + NGN - Naira + + + NIO - Cordoba Oro + NIO - Cordoba Oro + + + NOK - Norwegian Krone + NOK - Couronne norvégienne + + + NPR - Nepalese Rupee + NPR - Roupie Népalaise + + + NZD - New Zealand Dollar + NZD - Dollar néo-zélandais + + + OMR - Omani Rial + OMR - Rial Omani + + + PAB - Balboa + PAB - Balboa + + + PEN - New Sol + PEN - Nouveau sol + + + PGK - Kina + PGK - Kina + + + PHP - Philippines Peso + PHP - Peso philippin + + + PKR - Pakistani Rupee + PKR - Roupie pakistanaise + + + PLN - Zloty + PLN - Zloty + + + PYG - Guarani + PYG - Guarani + + + QAR - Qatari Riyal + QAR - Riyal du Qatar + + + RON - Romanian New Leu + RON - Nouveau Leu + + + RSD - Serbian Dinar + RSD - Dinar Serbe + + + RUB - Russian Federation Rouble + RUB - Rouble russe + + + RWF - Rwandan Franc + RWF - Franc du Rwanda + + + SAR - Saudi Riyal + SAR - Riyal saoudien + + + SBD - Solomon Islands Dollar + SBD - Dollar des îles Salomon + + + SCR - Seychelles Rupee + SCR - Roupie des Seychelles + + + SDG - Sudanese Pound + SDG - Livre soudanaise + + + SEK - Swedish Krona + SEK - Couronne suédoise + + + SGD - Singapore Dollar + SGD - Dollar de Singapour + + + SHP - St. Helena Pound + SHP - Livre de Sainte-Hélène + + + SLL - Leone + SLL - Leone + + + SOS - Somali Shilling + SOS - Shilling Somalien + + + SRD - Surinamese Dollar + SRD - Florin du suriname + + + SSP - South Sudanese Pound + SSP - Livre sud Soudanaise + + + STD - Dobra + STD - Dobra + + + SVC - El Salvador Colon + SVC - Colon salvadorien + + + SYP - Syrian Pound + SYP - Livre syrienne + + + SZL - Lilangeni + SZL - Lilangeni + + + THB - Baht + THB - Baht + + + TJS - Tajikistani Somoni + TJS - Somoni + + + TMT - Turkmenistani Manat + TMT - Manat + + + TND - Tunisian Dinar + TND - Dinar tunisien + + + TOP - Pa'anga + TOP - Pa'anga + + + TRY - New Turkish Lira + TRL - Livre turque + + + TTD - Trinidad and Tobago Dollar + TTD - Dollar de Trinité et de Tobago + + + TWD - Taiwan Dollar + TWD - Dollar de Taïwan + + + TZS - Tanzanian Shilling + TZS - Shilling tanzanien + + + UAH - Hryvna + UAH - Hryvna + + + UGX - Ugandan Shilling + UGX - Shilling ougandais + + + USD - United States Dollar + USD - Dollar des Etats-unis + + + UYU - Uruguayan Peso + UYU - Peso uruguayen + + + UZS - Uzbekistani Som + UZS - Soum ouzbek + + + VEF - Bolivar Fuerte + VEF - Bolivar fuerté + + + VND - Viet Nam Dông + VND - Dong + + + VUV - Vatu + VUV - Vatu + + + WST - Tala + WST - Tala + + + XCD - East Caribbean Dollar + XCD - Dollar des Caraïbes de l'Est + + + YER - Yemeni Riyal + YER - Riyal yéménite + + + ZAR - Rand + ZAR - Rand + + + ZMK - Zambian Kwacha + ZMK - Kwacha de Zambie + + + ZWL - Zimbabwe Dollar + ZWL - Dollar du Zimbabwe + + + Fr. + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/exception.php b/system/modules/isotope/languages/fr/exception.php deleted file mode 100644 index 6ed5e09e6e..0000000000 --- a/system/modules/isotope/languages/fr/exception.php +++ /dev/null @@ -1,23 +0,0 @@ -Participer.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldFix3'] = 'Contacter un développeur expérimenté Contao afin de migrer vos données manuellement. Nous vous suggérons de jeter un œil à la liste des partenaires Contao.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldExplain'] = 'Visitez notre site web pour obtenir plus d\'informations sur Isotope eCommerce.'; diff --git a/system/modules/isotope/languages/fr/exception.xlf b/system/modules/isotope/languages/fr/exception.xlf new file mode 100644 index 0000000000..dc8aaa35ef --- /dev/null +++ b/system/modules/isotope/languages/fr/exception.xlf @@ -0,0 +1,34 @@ + + + + + Isotope eCommerce - data loss protection + Isotope eCommerce - protection contre les pertes de données + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + Une ancienne version de Isotope eCommerce a été détecté sur votre installation. Si vous souhaitez mettre à jour la base de données maintenant, vos données clients existantes et la configuration peuvent être perdues. Pour éviter cela, les outils de mise à jour de bases de données ont été verrouillés automatiquement. + + + There are multiple options to get your installation back: + Il y a plusieurs options pour obtenir votre installation d'origine : + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + Créer une sauvegarde, puis désinstaller complètement Isotope. Retirer toute les tables de la base et les extensions liées. Ensuite, installer à nouveau Isotope eCommerce 2.0. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + Nous menons actuellement une levée de fonds pour développer un outil de mise à jour. Plus les personnes nous aide, plus vite vous serez en mesure de mettre à jour votre ancienne installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Participer</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + Contacter un développeur expérimenté Contao afin de migrer vos données manuellement. Nous vous suggérons de jeter un œil à <a href="http://contao.org/en/" target="_blank">la liste des partenaires Contao</ a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + <a href="http://isotopeecommerce.org/" target="_blank">Visitez notre site web</ a> pour obtenir plus d'informations sur Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/explain.php b/system/modules/isotope/languages/fr/explain.php deleted file mode 100644 index 301596c0e5..0000000000 --- a/system/modules/isotope/languages/fr/explain.php +++ /dev/null @@ -1,17 +0,0 @@ -Pour télécharger une nouvelle image, sélectionner le fichier et sauvegarder le produit. Après le téléchargement, un aperçu de l\'image, un texte alternatif et une description sont affichés. Si vous avez plusieurs photos, cliquez sur les flèches à droite pour changer leur ordre, l\'image du haut est utilisée comme image principale de chaque produit.

'; diff --git a/system/modules/isotope/languages/fr/explain.xlf b/system/modules/isotope/languages/fr/explain.xlf new file mode 100644 index 0000000000..c5762beeef --- /dev/null +++ b/system/modules/isotope/languages/fr/explain.xlf @@ -0,0 +1,35 @@ + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + <p class="tl_help_table">Pour télécharger une nouvelle image, sélectionner le fichier et sauvegarder le produit. Après le téléchargement, un aperçu de l'image, un texte alternatif et une description sont affichés. Si vous avez plusieurs photos, cliquez sur les flèches à droite pour changer leur ordre, l'image du haut est utilisée comme image principale de chaque produit.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/iso_upgrade.php b/system/modules/isotope/languages/fr/iso_upgrade.php deleted file mode 100644 index 2750b99d75..0000000000 --- a/system/modules/isotope/languages/fr/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Mettre à jour + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/modules.php b/system/modules/isotope/languages/fr/modules.php deleted file mode 100644 index f63be0d6e7..0000000000 --- a/system/modules/isotope/languages/fr/modules.php +++ /dev/null @@ -1,83 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Produits + + + Manage products for your Isotope eCommerce shop + Gérer les produits de votre boutique eCommerce Isotope + + + Orders + Commandes + + + See and manage orders for your shop + Voir et gérer les commandes de votre boutique + + + Store configuration + Configuration de la boutique + + + Setup and configure Isotope eCommerce to your needs + Installer et configurer Isotope eCommerce à vos besoins + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Filtre de produit + + + Define individual filters for Isotope such as category trees and product attribute filters. + Permet de définir les filtres individuels pour Isotope tels que l'arborescence des catégories et les filtres d'attributs des produits. + + + Cumulative Filter + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + Liste de produits + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Peut être utilisé pour lister des produits ou des valeurs d'attributs. Peut être combiné avec d'autres modules (ex. : le module de filtrage). + + + Product Variant List + Liste de variantes d'un produit + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Liste de chaque variante d'un produit. Assurez-vous d'utiliser le modèle iso_list_variants. + + + Product Reader + Détails d'un produit + + + Product reader module. This is used to display product details. + Module lecteur de produits. Il est utilisé pour afficher les détails d'un produit. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Panier d'achat + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + Module panier d'achat. En box ou un plein affichage peut être réglé par la sélection de modèle. + + + Checkout + Commander + + + Allow store customers to complete their transactions. + Permet aux clients de finaliser leur commande. + + + Address Book + Carnet d'adresse + + + Allow customers to manage their address book. + Permet aux clients de gérer leur carnet d'adresses. + + + Order History + Historique des commandes + + + Order lister that allows customers to view their order history + Permet aux clients de consulter l'historique de leurs commandes. + + + Order Details + Détails des commandes + + + Order reader that allows customers to view order history details + Permet aux clients de consulter le détail de leurs commandes dans l'historique. + + + Store Config Switcher + Changeur de configuration de boutique + + + Switch between store configuration to change currency and other settings. + Basculer entre les configurations de boutique pour changer de monnaie et d'autres paramètres. + + + Related products + Produits similaires + + + List products related to the current one. + Lister les produits similaires au produit courant. + + + Messages + Messages + + + Displays all Isotope messages if they have not been displayed elsewhere. + Affiche tous les messages d'Isotopes s'ils n'ont pas été affichés ailleurs. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + Configuration du eCommerce Isotope (Version : %s) + + + Products + Produits + + + Attributes + Attributs + + + Manage and create product attributes such as size, color, etc. + Gérer et créer des attributs de produits telles que la taille, la couleur, etc. + + + Product types + Types de produits + + + Manage and create product types from sets of attributes. + Gérer et créer des types de produits à partir d'ensembles d'attributs. + + + Related categories + Catégories similaires + + + Define categories for product relations. + Choisir des catégories pour définir les relations de produits. + + + Galleries + Galeries + + + Define how you want the images in your product to be rendered. + Définir comment les images de votre produit seront rendues. + + + Base prices + Prix de base + + + Define base price. + Définir les prix de base. + + + Checkout Flow + Déroulement de la commande + + + Shipping methods + Modes de livraison + + + Set up shipping methods. + Mise en place de modes de livraison tels que UPS, USPS, DHL, etc. + + + Payment methods + Modes de paiement + + + Set up payment methods. + Mise en place de modes de paiement tels que Authorize.net, PayPal Pro, et plus encore. + + + Tax classes + Taxes + + + Set up Tax classes, which contain sets of Tax rates. + Mise en place de taxes, qui contiennent des ensembles de taux de taxe. + + + Tax rates + Taux de taxe + + + Set up tax rates based on things like shipping/billing location and order total. + Mise en place des taux de taxe basés sur des choses comme le lieu de livraison/facturation et le total de la commande. + + + General settings + Paramètres généraux + + + Store configurations + Configurations de boutique + + + Configure general settings for this store. + Configurer les paramètres généraux de la boutique. + + + Order status + État des commandes + + + Define order status. + Définir l'état des commandes. + + + Notifications + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + Utiliser le Centre de Notification pour gérer les emails, etc. pour Isotope eCommerce. + + + Documents + Documents + + + Define documents. + Définir des documents. + + + Miscellaneous + Divers + + + Translations + Traductions + + + Replace given labels for certain languages. + Remplacez les libellés fournis pour certaines langues. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/subdivisions.php b/system/modules/isotope/languages/fr/subdivisions.php deleted file mode 100644 index fa0f55f532..0000000000 --- a/system/modules/isotope/languages/fr/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + ID de la boutique + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Utiliser des ID de boutique différents pour regrouper un ensemble de configurations de boutique. Un panier de commande sera partagé entre les mêmes ID de boutique. + + + Label + Libellé + + + Please enter a custom label for this address. + Veuillez, s'il vous plaît, entrer un libellé personnalisé pour cette adresse. + + + Gender + Genre + + + Please choose the gender. + Choisir un genre. + + + Salutation + Civilité + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Veuillez, s'il vous plaît, entrer un titre de civilité (M., Mme, Dr, Pr). + + + First name + Prénom + + + Please enter the first name. + Saisir le prénom. + + + Last name + Nom de famille + + + Please enter the last name. + Saisir le nom de famille. + + + Date of birth + Date de naissance + + + Please enter the date of birth. + Saisir la date de naissance. + + + Company + Entreprise + + + You can enter a company name here. + Saisir un nom d'entreprise. + + + VAT No. + Numéro de TVA + + + Please enter a VAT number. + Veuillez entrer un numéro de TVA. + + + Street + Rue + + + Please enter the street name and the street number. + Saisir la rue et le numéro de rue. + + + Street 2 + Rue 2 + + + Enter a second street info if there's any. + Saisir un complément d'adresse s'il y a lieu. + + + Street 3 + Rue 3 + + + Enter a third street info if there's any. + Saisir un complément d'adresse s'il y a lieu. + + + Postal code + Code postal + + + Please enter the postal code. + Saisir le code postal. + + + City + Ville + + + Please enter the name of the city. + Veuillez entrer le nom de la ville. + + + State + État + + + Please enter the name of the state. + Veuillez entrer le nom du Département. + + + Country + Pays + + + Please select a country. + Choisir un pays. + + + Phone number + Numéro de téléphone + + + Please enter the phone number. + Saisir le numéro de téléphone. + + + E-mail address + Adresse e-mail + + + Please enter a valid e-mail address. + Saisir une adresse e-mail valide. + + + Default billing address + Adresse de facturation par défaut + + + Is this your default billing address? + Est-ce l'adresse de facturation par défaut ? + + + Default shipping address + Adresse de livraison par défaut + + + Is this your default shipping address? + Est-ce l'adresse de livraison par défaut ? + + + Store + Boutique + + + Personal data + Données personnelles + + + Address details + Détails de l'adresse + + + Contact details + Détails du contact + + + Default address + Adresse par défaut + + + Personal data + Données personnelles + + + Address details + Détails de l'adresse + + + Contact details + Détails du contact + + + Default address + Adresse par défaut + + + New address + Nouvelle adresse + + + Create a new address + Créer une nouvelle adresse + + + Edit address + Éditer une adresse + + + Edit address ID %s + Éditer l'adresse ID %s + + + Duplicate address + Dupliquer une adresse + + + Duplicate address ID %s + Dupliquer l'adresse ID %s + + + Delete address + Supprimer une adresse + + + Delete address ID %s + Supprimer l'adresse ID %s + + + Address details + Détails de l'adresse + + + Show details of address ID %s + Afficher les détails de l'adresse ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_attribute.php b/system/modules/isotope/languages/fr/tl_iso_attribute.php deleted file mode 100644 index 0ea0d66e94..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_attribute.php +++ /dev/null @@ -1,138 +0,0 @@ -).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][0] = 'Date'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][1] = 'Vérifie si l\'entrée correspond au format de date.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][0] = 'Heure'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][1] = 'Vérifie si l\'entrée correspond au format d\'heure.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][0] = 'Date et heure'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][1] = 'Vérifie si l\'entrée correspond aux formats de date et d\'heure.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][0] = 'Numéro de téléphone'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][1] = 'Autorise les caractères numériques, plus (+), moins (-), slash (/), parenthèses () et espace ( ).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][0] = 'Adresse e-mail'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][1] = 'Vérifie si l\'adresse e-mail est valide.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][0] = 'Format d\'URL'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][1] = 'Vérifie si l\'URL est valide.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][0] = 'Prix'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][1] = 'Vérifie si le prix est valide.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][0] = 'Remise'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][1] = 'Vérifie si le format de réduction est valide.
Exemple: -10%, -10, +10, +10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][0] = 'Supplément'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][1] = 'Vérifie si le format de supplément est valide.
Exemple: 10.00, 10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['custom'] = 'Ordre personnalisé'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_asc'] = 'Nom de fichier (ascendant)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_desc'] = 'Nom de fichier (descendant)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_asc'] = 'Date (ascendant)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_desc'] = 'Date (descendant)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['random'] = 'Ordre aléatoire'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][0] = 'Nouvel attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][1] = 'Créer un nouvel attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][0] = 'Éditer un attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][1] = 'Éditer l\'attribut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][0] = 'Dupliquer un attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][1] = 'Dupliquer l\'attribut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][0] = 'Supprimer un attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][1] = 'Supprimer l\'attribut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][0] = 'Détails de l\'attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][1] = 'Afficher les détails de l\'attribut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['deleteConfirm'] = 'Voulez-vous vraiment supprimer l\'attribut ID %s ? Le champ de la base de données n\'est pas supprimé, vous devez mettre à jour manuellement la base de données en utilisant l\'outil d\'installation ou le gestionnaire d\'extensions.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['attribute_legend'] = 'Nom et type d\'attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['description_legend'] = 'Description'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['options_legend'] = 'Options'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['config_legend'] = 'Configuration d\'attribut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['search_filters_legend'] = 'Paramètres de recherche et de filtre'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['store_legend'] = 'Store file'; diff --git a/system/modules/isotope/languages/fr/tl_iso_attribute.xlf b/system/modules/isotope/languages/fr/tl_iso_attribute.xlf new file mode 100644 index 0000000000..7a80646eda --- /dev/null +++ b/system/modules/isotope/languages/fr/tl_iso_attribute.xlf @@ -0,0 +1,669 @@ + + + + + Name + Nom + + + Please enter a name for this attribute. + Merci d'entrer un nom pour cet attribut. + + + Internal name + Nom interne + + + Internal name is the database field name and must be unique. + Le nom interne est le nom du champ dans la base de données et doit être unique. + + + Type + Type + + + Please select a type for this attribute. + Merci de sélectionner un type pour cet attribut. + + + Field Group + Groupe de champs + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + Ajouter à l'assistant de variantes du produit + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + Si sélectionné, cet attribut sera ajouté à l'assistant de variantes de produit pour une utilisation comme une option de variante de produit. + + + Defined by customer + Défini par le client + + + Please select if this value defined by the customer (frontend). + Merci de choisir si cette valeur doit être définie par le client (front office). + + + Description + Description + + + The description is shown as a hint to the backend user. + La description est indiquée par un indice à l'utilisateur back office. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + Produit + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + Options + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + Merci d'entrer une ou plusieurs options. Utilisez les boutons pour ajouter, déplacer ou supprimer une option. Si vous travaillez sans l'aide de JavaScript, vous devez enregistrer vos modifications avant de modifier l'ordre. + + + Value + Valeur + + + Label + Libellé + + + Default + Taxe par défaut + + + Group + Groupe + + + Options + Options + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + Champ obligatoire + + + The field must be filled when editing a product. + Le produit ne sera pas ajouté au panier si ce champ est vide. + + + Multiple selection + Sélection multiple + + + Allow visitors to select more than one option. + Autorise les visiteurs à sélectionner plusieurs options. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + Types de champs autorisés + + + A comma separated list of valid file extensions. + Une liste des extensions de fichier valides séparée par des virgules. + + + Use HTML editor + Utiliser l'éditeur HTML + + + Select a tinyMCE configuration file to enable the rich text editor. + Sélectionnez un fichier de configuration tinyMCE pour activer l'éditeur de texte riche. + + + Multilingual + Multilingue + + + Check here if this field should be translated. + Cochez cette case si ce champ doit être traduit. + + + Input validation + Validation de saisie + + + Validate the input against a regular expression. + Validez l'entrée avec une expression régulière. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + Longueur maximale + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + Limite la longueur du champ à un certain nombre de caractères (texte) ou octets (téléchargement). + + + Foreign table & field + Table et champ contenant les options + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + Au lieu d'ajouter des options vous pouvez entrer une combinaison "table.champ" pour les sélectionner depuis la base de données. + + + Parent field + Champ parent + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + Afficher les fichiers + + + Show both files and folders. + Afficher les fichiers et dossiers. + + + Files only + Files only + + + Remove the radio buttons or checkboxes next to folders. + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + Field type + + + Display radio buttons or checkboxes next to folders. + Display radio buttons or checkboxes next to folders. + + + Order by + Trier par + + + Please choose the sort order. + Choisir un type de tri. + + + Root directory + Répertoire racine + + + You can limit the file tree by defining a root directory here. + Vous pouvez limiter l'arborescence de fichiers en définissant un répertoire racine ici. + + + Store uploaded files + Enregistrer les fichiers envoyés + + + Move the uploaded files to a folder on the server. + Envoyer les fichiers dans un dossier sur le serveur. + + + Target folder + Dossier de destination + + + Please select the target folder from the files directory. + Veuillez, s'il vous plaît, choisir le dossier de destination dans l'arborescence de fichiers. + + + Use home directory + Utiliser le répertoire personnel + + + Store the file in the home directory if there is an authenticated user. + Enregistrer le fichier dans le répertoire personnel si l'utilisateur est authentifié. + + + Preserve existing files + Conserver les fichiers existants + + + Add a numeric suffix to the new file if the file name already exists. + Ajouter un suffixe numérique au nouveau fichier si le nom de fichier existe déjà. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + Dossier de destination + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + Peut être filtré en back office + + + Can this attribute be used in a backend filter? + Cet attribut peut-il être filtré en back office ? + + + Backend searchable + Peut être recherché en back office + + + Should the field be available in the backend search? + + + Frontend filterable + Peut être filtré en front office + + + Can this attribute be used in a frontend filter? + Cet attribut peut-il être filtré en front office ? + + + Frontend searchable + Peut être recherché en front office + + + Should the search engine look in this field for search terms? + Le moteur de recherche doit-il inclure ce champ ? + + + Date picker + Sélecteur de date + + + Show a date picker for this field. + Afficher un sélecteur de date pour ce champ. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + Case à cocher + + + Radio + Radio + + + Numeric characters + Caractères numériques + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + Autorise les caractères numériques, moins (-), point (.) et espace ( ). + + + Alphabetic characters + Caractères alphabétiques + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + Autorise les caractères alphabétiques, moins (-), point (.) et espace ( ). + + + Alphanumeric characters + Caractères alphanumériques + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + Autorise les caractères alphanumériques, moins (-), point (.), underscore (_) et espace ( ). + + + Extended alphanumeric characters + Caractères alphanumériques étendus + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + Permet tout sauf les caractères spéciaux qui sont généralement encodés pour des raisons de sécurité (#/()<=>). + + + Date + Date + + + Checks whether the input matches the global date format. + Vérifie si l'entrée correspond au format de date. + + + Time + Heure + + + Checks whether the input matches the global time format. + Vérifie si l'entrée correspond au format d'heure. + + + Date and time + Date et heure + + + Checks whether the input matches the global date and time format. + Vérifie si l'entrée correspond aux formats de date et d'heure. + + + Phone number + Numéro de téléphone + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + Autorise les caractères numériques, plus (+), moins (-), slash (/), parenthèses () et espace ( ). + + + E-mail address + Adresse e-mail + + + Checks whether the input is a valid e-mail address. + Vérifie si l'adresse e-mail est valide. + + + URL format + Format d'URL + + + Checks whether the input is a valid URL. + Vérifie si l'URL est valide. + + + Price + Prix + + + Checks whether the input is a valid price. + Vérifie si le prix est valide. + + + Discount + Remise + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + Vérifie si le format de réduction est valide.<br />Exemple: -10%, -10, +10, +10% + + + Surcharge + Supplément + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + Vérifie si le format de supplément est valide.<br />Exemple: 10.00, 10% + + + Custom order + Ordre personnalisé + + + File name (ascending) + Nom de fichier (ascendant) + + + File name (descending) + Nom de fichier (descendant) + + + Date (ascending) + Date (ascendant) + + + Date (descending) + Date (descendant) + + + Random order + Ordre aléatoire + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + ##order_id## + + + Generated document number for the order. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + Nouvel attribut + + + Create a new attribute. + Créer un nouvel attribut + + + Edit attribute + Éditer un attribut + + + Edit attribute ID %s. + Éditer l'attribut ID %s. + + + Copy attribute + Dupliquer un attribut + + + Copy attribute ID %s. + Dupliquer l'attribut ID %s. + + + Delete attribute + Supprimer un attribut + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Supprimer l'attribut ID %s. + + + Attribute details + Détails de l'attribut + + + Show details for attribute ID %s. + Afficher les détails de l'attribut ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Voulez-vous vraiment supprimer l'attribut ID %s ? Le champ de la base de données n'est pas supprimé, vous devez mettre à jour manuellement la base de données en utilisant l'outil d'installation ou le gestionnaire d'extensions. + + + Attribute name & type + Nom et type d'attribut + + + Description + Description + + + Options + Options + + + Attribute configuration + Configuration d'attribut + + + Search & Filtering Settings + Paramètres de recherche et de filtre + + + Store file + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_attribute_option.php b/system/modules/isotope/languages/fr/tl_iso_attribute_option.php deleted file mode 100644 index 22f16668d8..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_attribute_option.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Type + Type + + + Select a type for this label. + + + Option + + + Group + Groupe + + + Default + Taxe par défaut + + + Check here if this should be the default option. + + + Label + Libellé + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Prix + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + Publication + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_baseprice.php b/system/modules/isotope/languages/fr/tl_iso_baseprice.php deleted file mode 100644 index a669f17b37..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_baseprice.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Name + Nom + + + Enter a name for this base price. + Entrez un nom pour ce prix de base. + + + Base amount + Quantité + + + Enter the base amount (e.g. "100"). + Entrez la quantité (ex: "100"). + + + Label + Libellé + + + Enter a label for this base price (e.g. "%s per 100g".) + Entrez un label pour ce prix de base (par exemple : "%s par 100g".) + + + New base price + Nouveau prix de base + + + Create a new base price + Créer un nouveau prix de base + + + Edit base price + Éditer un prix de base + + + Edit base price ID %s + Éditer le prix de base ID %s + + + Duplicate base price + Dupliquer un prix de base + + + Duplicate base price ID %s + Dupliquer le prix de base ID %s + + + Delete base price + Supprimer un prix de base + + + Delete base price ID %s + Supprimer le prix de base ID %s + + + Base price details + Détails du prix de base + + + Show details of base price ID %s + Afficher les détails du prix de base ID %s + + + Base price + Prix de base + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_config.php b/system/modules/isotope/languages/fr/tl_iso_config.php deleted file mode 100644 index 7cd67f9190..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_config.php +++ /dev/null @@ -1,137 +0,0 @@ - + + + + Configuration Name + Nom de la configuration + + + Please enter a name for your configuration. This is only used for back end reference. + Veuillez entrer un nom pour la configuration. Ce n'est utilisé que dans le back office + + + Label + Libellé + + + The label is used in frontend, e.g. for config switcher. + Ce libellé est utilisé en front office, ex. : l'outil de changement de configuration + + + Set as default store + Boutique par défaut + + + Set this as the default store for back-end currency formatting and other locale-specific information. + Définir cette boutique par défaut pour le formatage de monnaies et d'autres informations spécifiques aux paramètres régionaux du back office. + + + First name + Prénom + + + Please enter the first name (if applicable). + Saisir le prénom. + + + Last name + Nom de famille + + + Please enter the last name (if applicable). + Saisir le nom. + + + Company + Entreprise + + + You can enter a company name here (if applicable). + Saisir la société. + + + VAT No. + Numéro de TVA + + + Please enter a VAT number. + Veuillez entrer un numéro de TVA. + + + Street + Rue + + + Please enter the street name and the street number. + Saisir la rue et le numéro de rue. + + + Street 2 + Rue 2 + + + Enter a second street info if there's any. + Saisir un complément d'adresse s'il y a lieu. + + + Street 3 + Rue 3 + + + Enter a third street info if there's any. + Saisir un complément d'adresse s'il y a lieu. + + + Postal code + Code postal + + + Please enter the postal code. + Saisir le code postal. + + + City + Ville + + + Please enter the name of the city. + Veuillez entrer le nom de la ville. + + + State + État + + + Please enter the name of the state. + Veuillez entrer le nom du Département. + + + Country + Pays + + + Please select a country. This is also the default for custom shipping/billing addresses. + Sélectionner le pays. + + + Phone number + Numéro de téléphone + + + Please enter the phone number. + Saisir le numéro de téléphone. + + + Shipping email address + Adresse e-mail de livraison + + + Please enter a valid e-mail address. + Saisir une adresse e-mail valide. + + + Address fields + Champs d'adresse + + + Select the fields for a billing and shipping address when checking out. + Veuillez sélectionner les champs pour une adresse de facturation et d'expédition lors de la vérification. + + + Address field + Champ d'adresse + + + For billing address + Pour l'adresse de facturation + + + For shipping address + Pour l'adresse d'expédition + + + Disabled + Désactivé + + + Enabled (not mandatory) + Activé (facultatif) + + + Enabled (mandatory) + Activé (obligatoire) + + + Default billing country + Billing default country + + + Select a default country for new billing addresses. + Select a default country for new billing addresses. + + + Default shipping country + Pays de livraison par défaut + + + Select a default country for new shipping addresses. + Sélectionnez un pays par défaut pour les nouvelles adresses de livraison. + + + Available billing countries + Pays de facturation + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + Sélectionner les pays autorisés pour l'adresse de facturation de la commande. + + + Available shipping countries + Pays de livraison + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + Sélectionner les pays autorisés pour l'adresse de livraison de la commande. + + + Limit member countries + Limiter les pays des membres + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + Limiter les pays des membres (inscription, données personnelles) à la liste combinée des pays de facturation et d'expédition. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + Choisir un formatage de la monnaie pour les prix. + + + Rounding precision + Précision de l'arrondi + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + Définir la précision de l'arrondi. Une valeur entre 0 et 2 fonctionne correctement sur toutes les passerelles de paiement. Voir le manuel de PHP pour la fonction round(). + + + Rounding increment + Augmentation de l'arrondi + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + Certaines monnaies (ex. : franc suisse) ne prennent pas en charge la précision 0.01. + + + Currency + Monnaie + + + Please select a currency for this store. + Sélectionner une monnaie pour cette boutique. + + + Position of currency code/symbol + Position du symbole monétaire + + + Select if you want to show currency on the left or right side of the price. + Sélectionner si la devise doit s'afficher à gauche ou à droite du prix. + + + Use currency symbol + Utiliser un symbole monétaire + + + Use a currency symbol ($, €) if available. + Utiliser le symbole monétaire ($, €) si disponible. + + + Include blank space + Inclure un espace vide + + + Add space between price and currency symbol. + Ajouter un espace vide entre le prix et le symbole monétaire. + + + Price factor + Taux de conversion + + + Defaults should be 1. You can use this to convert between multiple currencies. + La valeur par défaut est 1. Le taux de conversion est utiliser pour convertir plusieurs devises. + + + Calculation mode + Mode de calcul + + + Divide or multiply using this factor. + Divise ou multiplie en utilisant le taux de conversion. + + + Automatic currency conversion + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + Currency origin + + + Please select the source currency for calculation. + Please select the source currency for calculation. + + + Currency Data Provider + Currency Data Provider + + + Select an available online provider of currency calculation data. + Select an available online provider of currency calculation data. + + + Order number prefix + Préfixe du numéro de commande + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + Ajouter un préfixe (ex. : année de l'exercice fiscal) pour le numéro auto-incrémenté de la commande. + + + Order number length + Order number length + + + Select the minimum length of the order number (not including order prefix). + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + État pour les nouvelles commandes + + + Choose a matching status for new orders. A payment module can override this. + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + État des commandes en cas d'erreur + + + Select an order status if something goes wrong (e.g. payment). + Sélectionnez un état de la commande en cas d'erreur (par exemple : le paiement). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + Logo des factures + + + Select a logo to show up on the invoices for this store. + Sélectionner un logo qui apparaîtra sur les factures de cette boutique. + + + Templates folder + Répertoire des modèles + + + Here you can select a templates folder to search before every other template folder. + Sélectionner un répertoire de modèles qui sera utilisé avant la recherche dans les autres répertoires de modèles. + + + Minimum subtotal + Sous-total minimum + + + The minimum cart subtotal required to order. Enter 0 to disable. + Le sous-total minimum du panier requis lors d'une commande. Saisir 0 pour désactiver. + + + Duration to mark a product as "new" + Durée pendant laquelle un produit est "nouveau" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + Si vous souhaitez mettre en valeur de nouveau produits, vous pouvez entrer une durée ici. Ceci ajoutera automatiquement une classe CSS "new" à tout les produits dans Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + A la gauche du prix + + + To the right of price + A la droite du prix + + + Divide + Diviser + + + Multiply + Multiplier + + + Name + Nom + + + Width + Largeur + + + Height + Hauteur + + + Mode + Mode + + + Watermark image + Image en filigrane + + + Position + Position + + + European Central Bank + Banque centrale européenne + + + Swiss Federal Department of Finance + Département fédéral des finances + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + Nouvelle configuration + + + Create a new store configuration. + Créer une nouvelle configuration de boutique. + + + Edit configuration + Éditer une configuration + + + Edit store configuration ID %s. + Éditer la configuration de boutique ID %s. + + + Copy configuration + Dupliquer une configuration + + + Copy store configuration ID %s. + Dupliquer la configuration de boutique ID %s. + + + Delete configuration + Supprimer une configuration + + + Delete store configuration ID %s. + Supprimer la configuration de boutique ID %s. + + + Show configuration details + Détails de la configuration + + + Show details for store configuration ID %s. + Afficher les détails de la configuration de boutique ID %s. + + + Name + Nom + + + Address configuration + Configuration d'adresse + + + Configuration + Configuration + + + Checkout + Commander + + + Pricing + + + Currency formatting + Formatage de la monnaie + + + Currency conversion + Conversion de la monnaie + + + Orders + Commandes + + + Images + Images + + + URL settings + Paramètres URL + + + Products + Produits + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_document.php b/system/modules/isotope/languages/fr/tl_iso_document.php deleted file mode 100644 index 21f2a5d9bc..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_document.php +++ /dev/null @@ -1,46 +0,0 @@ - + + + + Document name + Nom du document + + + Enter a name for this document. This will only be used in the backend. + Saisir un nom pour ce document. Il ne sera utilisé que dans le back office. + + + Type of document + Type de document + + + Select a particular document rendering class. + Sélectionner une classe de rendu document particulière. + + + Logo + Logo + + + Select a logo. + Sélectionner un logo + + + Document title + Titre du document + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + Vous pouvez utiliser des signes simples ("collection_*" où * équivaut à la colonne de la base de donnée de la collection) pour générer vos titre de fichier (ex: "Invoice title##nombre_document_collection##"). + + + File title + Titre du fichier + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + Vous pouvez utiliser des signes simples ("collection_*" où * équivaut à la colonne de la base de donnée de la collection) pour générer vos titre de fichier (ex: "Invoice_##nombre_document_collection##"). + + + Document template + Modèle de document + + + Choose a template you want to render this document with. + Choisissez un modèle de votre choix pour générer le document. + + + Gallery + Galerie + + + Select a gallery to render images. + Sélectionner une galerie pour rendre les images. + + + Collection template + Ensemble de modèles + + + Choose a collection template you want to render the products with. + Choisissez un modèle de collection pour générer les produits + + + Sorting + Ordonnancement + + + Define in what order the collection items should be listed. + Définir dans quel ordre les éléments de l'ensemble doivent être listés. + + + New document + Nouveau document + + + Create a new document + Créer un nouveau document + + + Edit document + Éditer le document + + + Edit document ID %s + Éditer le document ID %s + + + Copy document + Dupliquer le document + + + Copy document ID %s + Dupliquer le document ID %s + + + Delete document + + + Delete document ID %s + Supprimer le document ID %s + + + Document details + Détails du document + + + Show details of document ID %s + Afficher les détails du document ID %s + + + Name & type + Nom & Type + + + General configuration + Configuration générale + + + Template + Modèle + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_download.php b/system/modules/isotope/languages/fr/tl_iso_download.php deleted file mode 100644 index 55302d9ce3..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_download.php +++ /dev/null @@ -1,47 +0,0 @@ - + + + + Attachement + Fichier joint + + + Select the file or folder content you want to sell. + Sélectionner le fichier qui sera mis en vente. + + + Downloads allowed + Téléchargements autorisés + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + Le nombre de fois où ce fichier peut être téléchargé par commande (multiplié par la quantité vendue). Saisir 0 pour les téléchargements illimités. + + + Expiration + Date d'expiration + + + Define if the download(s) expires after a certain time period. + Définir si le(s) téléchargement(s) expire(nt) après une certaine période de temps. + + + Download available + Téléchargement disponible + + + Click here to include this download in new orders. + Cliquez ici pour inclure ce téléchargement dans les nouvelles commandes. + + + Add download + Ajouter un fichier à télécharger + + + Add a new download to this product + Ajouter un nouveau fichier à télécharger pour ce produit. + + + Edit download + Éditer le fichier à télécharger + + + Edit download ID %s + Éditer le fichier à télécharger ID %s + + + Duplicate download + Dupliquer le fichier à télécharger + + + Duplicate download ID %s + Dupliquer le fichier à télécharger ID %s + + + Move download + Déplacer l'élément + + + Move download ID %s + Déplacer l'élément ID %s + + + Delete download + Supprimer le fichier à télécharger + + + Delete download ID %s + Supprimer le fichier à télécharger ID %s + + + Publish/unpublish download + Publier/dé-publier un téléchargement + + + Publish/unpublish download ID %s + Publier/dé-publier le téléchargement ID %s + + + Download details + Afficher les détails du fichier à télécharger + + + Show details of download ID %s + Afficher les détails du fichier à télécharger ID %s + + + Edit product + Éditer un produit + + + Edit this product + Éditer ce produit + + + Paste at the top + Coller en haut + + + Paste after download ID %s + Coller après l'élément ID %s + + + Add new at the top + Ajouter un nouveau au début + + + Add new after download ID %s + Ajouter un nouveau après l'élément ID %s + + + Attachement + Fichier joint + + + Limits + Limites + + + Publishing + Publication + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_gallery.php b/system/modules/isotope/languages/fr/tl_iso_gallery.php deleted file mode 100644 index 59742cb6c6..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_gallery.php +++ /dev/null @@ -1,60 +0,0 @@ - + + + + Name + Nom + + + Enter a name for this gallery. + Saisir un nom pour cette galerie. + + + Type + Type + + + Please select a gallery type. + Sélectionner un type de galerie. + + + Image anchor + Ancre d'image + + + Select what anchor type should be generated on the image. + Sélectionner quel type d'ancrage doit être généré sur l'image. + + + Placeholder image + Image de substitution + + + This image will be used if an image file cannot be found or none are associated with a product. + Cette image sera utilisée si un fichier image ne peut être trouvé ou si aucune image n'est associée à un produit. + + + Main image size + Taille de l'image principale + + + Please enter a width and height for the main product image. + Saisir une largeur et une hauteur de l'image principale du produit. + + + Gallery image size + Taille de la galerie d'images + + + Please enter a width and height for the additional images. + Saisir une largeur et une hauteur pour les images supplémentaires. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + Taille de l'image Lightbox + + + Please enter a width and height for lightbox images. + Saisir une largeur et une hauteur pour l'image Lightbox. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + Filigrane de l'image principale + + + Select an image if you want to add a watermark to the main product image. + Sélectionner une image pour ajouter un filigrane à l'image principale du produit. + + + Main watermark position + Position du filigrane de l'image principale + + + Select the position where to apply the watermark to. + Sélectionner la position où le filigrane sera appliqué. + + + Gallery watermark image + Filigrane de la galerie + + + Select an image if you want to add a watermark to the gallery images. + Sélectionner une image pour ajouter un filigrane à la galerie d'images. + + + Gallery watermark position + Position du filigrane de la galerie + + + Select the position where to apply the watermark to. + Sélectionner la position où le filigrane sera appliqué. + + + Lightbox watermark image + Filigrane de l'image Lightbox + + + Select an image if you want to add a watermark to the lightbox images. + Sélectionner une image pour ajouter un filigrane l'image Lightbox. + + + Lightbox watermark position + Position du filigrane de l'image Lightbox + + + Select the position where to apply the watermark to. + Sélectionner la position où le filigrane sera appliqué. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + Sélectionner la position où le filigrane sera appliqué. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + Nouvelle galerie + + + Create a new gallery + Créer une nouvelle galerie + + + Edit gallery + Éditer la galerie + + + Edit gallery ID %s + Éditer la galerie ID %s + + + Duplicate gallery + Dupliquer une galerie + + + Duplicate gallery ID %s + Dupliquer la galerie ID %s + + + Delete gallery + Supprimer la galerie + + + Delete gallery ID %s + Supprimer la galerie ID %s + + + Gallery details + Détails de la galerie + + + Show details of gallery ID %s + Afficher les détails de la galerie ID %s + + + Name &amp; Type + Nom &amp; Type + + + Image sizes + Tailles des images + + + Configuration + Configuration + + + Watermark + Image en filigrane + + + Lightbox/Mediabox + + + Template settings + + + No link action + Aucune action de lien + + + Link to the product reader + Lien vers le lecteur de produit + + + Open lightbox/mediabox + Ouvrir la Lightbox/Mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_group.php b/system/modules/isotope/languages/fr/tl_iso_group.php deleted file mode 100644 index 62dd1e6a07..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_group.php +++ /dev/null @@ -1,41 +0,0 @@ - + + + + Group name + Nom du groupe + + + Please enter a name for this group. + Veuillez, s'il vous plaît, entrer un nom pour ce groupe. + + + Default product type + Type de produit par défaut + + + Here you can specify a default product type for this product group. + Spécifier un type de produit par défaut pour ce groupe de produits. + + + New group + Nouveau groupe + + + Create a new group + Créer un nouveau groupe + + + Edit group + Éditer un groupe + + + Edit group ID %s + Éditer le groupe ID %s + + + Duplicate group + Dupliquer un groupe + + + Duplicate group ID %s + Dupliquer le groupe ID %s + + + Duplicate with subgroups + Dupliquer avec les sous-groupes + + + Duplicate group ID %s with subgroups + Dupliquer le groupe ID %s avec les sous-groupes + + + Move group + Déplacer un groupe + + + Move group ID %s + Déplacer le groupe ID %s + + + Delete group + Supprimer un groupe + + + Delete group ID %s + Supprimer le groupe ID %s + + + Group details + Détails du groupe + + + Show details of group ID %s + Afficher les détails du groupe ID %s + + + Paste after + Coller après + + + Paste after group ID %s + Coller après le groupe ID %s + + + Paste into + Coller dans + + + Paste into group ID %s + Coller dans le groupe ID %s + + + Product group settings + Paramètres du groupe de produits + + + Product Groups + Groupes de produits + + + Manage product groups + Gérer les groupes de produits + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_integrity.php b/system/modules/isotope/languages/fr/tl_iso_integrity.php deleted file mode 100644 index 215444c63f..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_label.php b/system/modules/isotope/languages/fr/tl_iso_label.php deleted file mode 100644 index 236bc1efe1..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_label.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Language + Langue + + + Please select a language. + Sélectionnez une langue + + + Label + Libellé + + + Enter the source label. + Modifier le libellé de la source + + + Replacement + Remplacement + + + Enter the replacement in the specified language. + Entrez le remplacement dans la langue spécifiée. + + + New label + Nouveau libellé + + + Create a new label + Créer un nouveau libellé + + + Edit label + Éditer un libellé + + + Edit label ID %s + Éditer le libellé ID %s + + + Duplicate label + Dupliquer un libellé + + + Duplicate label ID %s + Dupliquer le libellé ID %s + + + Delete label + Supprimer un libellé + + + Delete label ID %s + Supprimer le libellé ID %s + + + Label details + Détails du libellé + + + Show details of label ID %s + Afficher les détails du libellé ID %s + + + Label translation + Traduction du libellé + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_orderstatus.php b/system/modules/isotope/languages/fr/tl_iso_orderstatus.php deleted file mode 100644 index 163e76e5f4..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_orderstatus.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Nom + + + Please enter a name for this status. + Veuillez, s'il vous plaît, entrer un nom pour cet état. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + La commande est payée + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + On suppose que la commande est payée quand elle a cet état. + + + Show on welcome screen + Afficher dans le back office + + + Show number of orders with this status on the backend welcome screen. + Afficher le nombre de commandes avec cet état dans le back office. + + + Notification + Notification + + + Please select a notification. + Veuillez choisir une notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + Nouvel état des commandes + + + Create a new order status + Créer un nouvel état des commandes + + + Edit order status + Éditer un état des commandes + + + Edit order status ID %s + Éditer l'état des commandes ID %s + + + Duplicate order status + Dupliquer un état des commandes + + + Duplicate order status ID %s + Dupliquer l'état des commandes ID %s + + + Move order status + Déplacer un état des commandes + + + Move order status ID %s + Déplacer l'état des commandes ID %s + + + Delete order status + Supprimer un état des commandes + + + Delete order status ID %s + Supprimer l'état des commandes ID %s + + + Order status details + Détails de l'état des commandes + + + Show details of order status ID %s + Afficher les détails de l'état des commandes ID %s + + + Paste after + Coller après + + + Paste after order status ID %s + Coller après l'état des commandes ID %s + + + Paste into + Coller dans + + + Paste into order status ID %s + Coller dans l'état des commandes ID %s + + + Name + Nom + + + E-Mail Notification + Notification par e-mail + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_payment.php b/system/modules/isotope/languages/fr/tl_iso_payment.php deleted file mode 100644 index bc878ae794..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_payment.php +++ /dev/null @@ -1,143 +0,0 @@ -absolue valide à une modèle dynamique.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_payment_method'][0] = 'Mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'][0] = 'Code de vérification de la carte (cryptogramme)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'][1] = 'Choisir cette option pour augmenter la sécurité des transactions en exigeant que le numéro de vérification de carte soit saisi.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allowed_cc_types'][0] = 'Cartes de crédit acceptés'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allowed_cc_types'][1] = 'Sélectionner quelles cartes de crédits sont acceptées par le module.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_id'][0] = 'ID du commerçant'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_id'][1] = 'Saisir votre identifiant de commerçant (merchant ID).'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_sign'][0] = 'Clé HMAC'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_sign'][1] = 'Saisir votre clé HMAC à partir de l\'interface d\'administration de Datatrans.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod'][0] = 'Mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod'][1] = 'Sélectionner un mode de paiement.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['creditcard'] = 'Carte de crédit'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['maestro'] = 'Carte de débit'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['directdebit'] = 'Débit direct'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslmerchant'][0] = 'ID du vendeur'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslmerchant'][1] = 'Saisir l\'identifiant du vendeur (seller ID).'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslpassword'][0] = 'Mot de passe'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslpassword'][1] = 'Saisir votre mot de passe SSL.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_merchantref'][0] = 'Référence'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_merchantref'][1] = 'Une référence qui sera montrée sur la page détaillée du vendeur au lieu de l\'ID du panier'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_user_id'][0] = 'ID du client'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_user_id'][1] = 'Votre ID client pour sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_id'][0] = 'ID du projet'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_id'][1] = 'Votre ID projet pour sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_password'][0] = 'Mot de passe du projet'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_password'][1] = 'Votre mot de passe projet pour sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_accountid'][0] = 'ID acompte Saferpay'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_accountid'][1] = 'Veuillez saisir votre identifiant unique Saferpay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_description'][0] = 'Description récapitulatif'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_description'][1] = 'Le client verra cette description sur la page récapitulative de Saferpay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_vtconfig'][0] = 'Configuration page de paiement (VTCONFIG)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_paymentmethods'][0] = 'Modes de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_description'][0] = 'Description'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_paymentMethods'][0] = 'Modes de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['groups'][0] = 'Groupes de membres'; -$GLOBALS['TL_LANG']['tl_iso_payment']['groups'][1] = 'Restreindre ce mode de paiement pour certains groupes de membres.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['protected'][0] = 'Protéger le module'; -$GLOBALS['TL_LANG']['tl_iso_payment']['protected'][1] = 'Ne montrer le mode de paiement qu\'à certains groupes de membres'; -$GLOBALS['TL_LANG']['tl_iso_payment']['guests'][0] = 'Visible par les invités seulement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['guests'][1] = 'Cacher le mode de paiement si un membre est connecté'; -$GLOBALS['TL_LANG']['tl_iso_payment']['debug'][0] = 'Mode debug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['debug'][1] = 'Pour les tests sans paiement réel.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled'][0] = 'Activé'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled'][1] = 'Cochez cette case si le module de paiement doit être activé dans la boutique.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['new'][0] = 'Nouveau mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['new'][1] = 'Créer un nouveau mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['edit'][0] = 'Éditer un mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['edit'][1] = 'Éditer le mode de paiement ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['copy'][0] = 'Dupliquer un mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['copy'][1] = 'Dupliquer le mode de paiement ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['delete'][0] = 'Supprimer un mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['delete'][1] = 'Supprimer le mode de paiement ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['toggle'][0] = 'Activer/désactiver un mode de paiement.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['toggle'][1] = 'Activer/désactiver le mode de paiement ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['show'][0] = 'Détails du mode de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['show'][1] = 'Afficher les détails du mode de paiement ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['no_shipping'] = 'Commandes sans livraison'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['elv'] = 'Rétraction du débit'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['cc'] = 'Carte de crédit'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['dc'] = 'Carte de débit'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['vor'] = 'Prépaiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['rec'] = 'Facture'; -$GLOBALS['TL_LANG']['tl_iso_payment']['type_legend'] = 'Nom & Type'; -$GLOBALS['TL_LANG']['tl_iso_payment']['note_legend'] = 'Notes complémentaires'; -$GLOBALS['TL_LANG']['tl_iso_payment']['config_legend'] = 'Configuration générale'; -$GLOBALS['TL_LANG']['tl_iso_payment']['gateway_legend'] = 'Configuration de la passerelle de paiement'; -$GLOBALS['TL_LANG']['tl_iso_payment']['price_legend'] = 'Prix'; -$GLOBALS['TL_LANG']['tl_iso_payment']['template_legend'] = 'Modèle'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expert_legend'] = 'Paramètres avancés'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled_legend'] = 'Approbation'; diff --git a/system/modules/isotope/languages/fr/tl_iso_payment.xlf b/system/modules/isotope/languages/fr/tl_iso_payment.xlf new file mode 100644 index 0000000000..0245a0a0f2 --- /dev/null +++ b/system/modules/isotope/languages/fr/tl_iso_payment.xlf @@ -0,0 +1,794 @@ + + + + + Payment Method Name + Nom du mode de paiement + + + Enter a name for this payment method. This will only be used in the backend. + Saisir un nom pour ce mode de paiement. Il ne sera utilisé que dans le back office. + + + Payment Method Label + Libellé du mode de paiement + + + The label will be shown to customers on checkout. + Le libellé sera montré aux clients à la caisse. + + + Type of Payment Gateway + Type de passerelle de paiement + + + Select a particular payment gateway + Sélectionner une passerelle de paiement particulière (par exemple Authorize.net) + + + Payment Note + Note relative au paiement + + + This note can be sent in confirmation mails (##payment_note##). + Cette note peut être envoyée dans les mails de confirmation (##payment_note##). + + + Status for new orders + État pour les nouvelles commandes + + + Choose a matching status for new orders. + Choisir un état correspondant aux nouvelles commandes. + + + Minimum total + Total minimum + + + Enter a number greater zero to exclude this payment method for lower priced orders. + Saisir un nombre supérieur à zéro pour exclure ce mode de paiement pour les commandes de prix inférieur. + + + Maximum total + Total maximum + + + Enter a number greater zero to exclude this payment method for higher priced orders. + Saisir un nombre supérieur à zéro pour exclure ce mode de paiement pour les commandes de prix supérieur. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + Select a calculation mode for min/max quantity. + + + Total quantity in cart + Quantité totale dans le panier + + + Total products in cart + Total des produits dans le panier + + + Available countries + Pays autorisés + + + Select the countries where this payment method may be used (customer's billing address). + Sélectionner les pays pour lesquels ce mode de paiement est accepté (adresse de facturation du client). + + + Shipping methods + Modes de livraison + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + Vous pouvez limiter ce mode de paiement à certains modes de livraison (par exemple, en espèces uniquement lors du ramassage). + + + Product types + Types de produits + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + Limiter ce mode de paiement pour certains types de produits. Si le panier contient un type de produit que vous n'avez pas sélectionné, le module de paiement n'est pas disponible. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Configurations de boutique + + + You can restrict this payment method to certain shop configurations. + + + Price + Prix + + + Enter a price or percent value (e.g. "10" or "10%"). + Entrez un prix ou une valeur en pourcentage (ex: "10" ou "10%"). + + + Tax Class + Taxe + + + Please select a tax class for the price. + Sélectionner une taxe pour le prix. + + + Transaction type + Type de transaction + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + Sélectionner un encaissement immédiat ou autoriser (et maintenir) en différé (par exemple lors de l'expédition). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + Compte PayPal + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + Entrez votre nom d'utilisateur PayPal (adresse e-mail). + + + Paypal Payflow Pro username + Nom d'utilisateur Paypal Payflow Pro + + + + + + Paypal Payflow Pro vendor + Fournisseur Paypal Payflow Pro + + + An alphanumeric string of about 10 characters. + Une chaîne alphanumérique de 10 caractères. + + + Paypal Payflow Pro partner + Partenaire Paypal Payflow Pro + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + Sensible à la casse ! Les identifiants habituels des partenaires sont soit "PayPal" ou "PayPalUK". + + + Paypal Payflow Pro api password + Mot de passe de l'API Paypal Payflow Pro + + + An alphanumeric string of about 11 characters + Une chaîne alphanumérique de 11 caractères. + + + Paypal Payflow Pro transaction type + Type de transaction Paypal Payflow Pro + + + Please select a transaction type. + Sélectionner un type de transaction. + + + PSPID + PSPID + + + The PSPID is your unique identification for the payment method. + Le PSPID est votre unique identifiant pour la méthode de paiement. + + + HTTP method + Mode HTTP + + + Type of HTTP data transfer from and to the servers. + Type de transfert de donnée HTTP depuis et vers les serveurs. + + + Hash method + Méthode de hachage + + + Hashing algorithm for data transfer from and to the servers. + Algorithme de hachage pour le transfert de donnée depuis et vers les serveurs. + + + SHA-1 + SHA-1 + + + SHA-256 + SHA-256 + + + SHA-512 + SHA-512 + + + SHA-IN signature + Signature SHA-IN + + + This will be used to validate the server to server communication. + Ceci sera utilisé pour valider la communication de serveur à serveur. + + + SHA-OUT signature + Signature SHA-OUT + + + This will be used to validate the server to server communication. + Ceci sera utilisé pour valider la communication de serveur à serveur. + + + Dynamic template URL + URL dynamique + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + Entrez ici une URL <strong>absolue</strong> valide à une modèle dynamique. + + + Payment method + Mode de paiement + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + Code de vérification de la carte (cryptogramme) + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + Choisir cette option pour augmenter la sécurité des transactions en exigeant que le numéro de vérification de carte soit saisi. + + + Allowed Credit Card Types + Cartes de crédit acceptés + + + Select which credit cards the payment method accepts. + Sélectionner quelles cartes de crédits sont acceptées par le module. + + + Merchant-ID + ID du commerçant + + + Please enter your merchant ID. + Saisir votre identifiant de commerçant (merchant ID). + + + HMAC Key + Clé HMAC + + + Please enter your HMAC key from the Datatrans control panel. + Saisir votre clé HMAC à partir de l'interface d'administration de Datatrans. + + + Hash method + Méthode de hachage + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + Mode de paiement + + + Please select a payment method for this method. + Sélectionner un mode de paiement. + + + Credit card + Carte de crédit + + + Debig card + Carte de débit + + + Direct debit + Débit direct + + + Seller ID + ID du vendeur + + + Please enter your seller ID (Händlerkennung). + Saisir l'identifiant du vendeur (seller ID). + + + Password + Mot de passe + + + Please enter your SSL-Password. + Saisir votre mot de passe SSL. + + + Reference + Référence + + + A reference that will be shown on the seller details page instead of the cart ID. + Une référence qui sera montrée sur la page détaillée du vendeur au lieu de l'ID du panier + + + Customer ID + ID du client + + + Your customer ID for sofortüberweisung.de + Votre ID client pour sofortüberweisung.de + + + Project ID + ID du projet + + + Your project ID for sofortüberweisung.de + Votre ID projet pour sofortüberweisung.de + + + Projekt password + Mot de passe du projet + + + Your project password for sofortüberweisung.de + Votre mot de passe projet pour sofortüberweisung.de + + + Saferpay Account-ID + ID acompte Saferpay + + + Please enter your unique Saferpay account id. + Veuillez saisir votre identifiant unique Saferpay. + + + Checkout description + Description récapitulatif + + + The customer will see this description on the Saferpay checkout page. + Le client verra cette description sur la page récapitulative de Saferpay. + + + Payment page configuration (VTCONFIG) + Configuration page de paiement (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + Modes de paiement + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Description + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + Saisir votre identifiant de commerçant (merchant ID). + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Modes de paiement + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + Mot de passe + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + Groupes de membres + + + Restrict this payment method to certain member groups. + Restreindre ce mode de paiement pour certains groupes de membres. + + + Protect payment method + Protéger le module + + + Show the payment method to certain member groups only. + Ne montrer le mode de paiement qu'à certains groupes de membres + + + Show to guests only + Visible par les invités seulement + + + Hide the payment method if a member is logged in. + Cacher le mode de paiement si un membre est connecté + + + Debug mode + Mode debug + + + For testing without actually capturing for payment. + Pour les tests sans paiement réel. + + + Enabled + Activé + + + Check here if the payment method should be enabled in the store. + Cochez cette case si le module de paiement doit être activé dans la boutique. + + + New payment method + Nouveau mode de paiement + + + Create a new payment method + Créer un nouveau mode de paiement + + + Edit payment method + Éditer un mode de paiement + + + Edit payment method ID %s + Éditer le mode de paiement ID %s + + + Copy payment method + Dupliquer un mode de paiement + + + Copy payment method ID %s + Dupliquer le mode de paiement ID %s + + + Delete payment method + Supprimer un mode de paiement + + + Delete payment method ID %s + Supprimer le mode de paiement ID %s + + + Enable/disable payment method + Activer/désactiver un mode de paiement. + + + Enable/disable payment method ID %s + Activer/désactiver le mode de paiement ID %s + + + Payment method details + Détails du mode de paiement + + + Show details of payment method ID %s + Afficher les détails du mode de paiement ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + Commandes sans livraison + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + Rétraction du débit + + + Credit card + Carte de crédit + + + Debit card + Carte de débit + + + Prepayment + Prépaiement + + + Invoice + Facture + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + Nom &amp; Type + + + Additional notes + Notes complémentaires + + + General configuration + Configuration générale + + + Payment gateway configuration + Configuration de la passerelle de paiement + + + Price + Prix + + + Template + Modèle + + + Expert settings + Paramètres avancés + + + Approval + Approbation + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_product.php b/system/modules/isotope/languages/fr/tl_iso_product.php deleted file mode 100644 index 3161f4fa64..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_product.php +++ /dev/null @@ -1,133 +0,0 @@ - + + + + Product ID + ID du produit + + + Categories + Categories + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + Sélectionner une catégorie (les catégories sont basées sur les pages afin de profiter des fonctionnalités de Contao telles que la création automatique de la navigation, la protection, les modèles, et l'intégration complète avec les éléments de contenu). + + + Product type + Type de produit + + + Select your product type. Product types are defined in the store configuration. + Les types de produit sont définis dans le gestionnaire de types de produits + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + Vous pouvez entrer un alias unique pour ce produit. Si vous ne remplissez pas le champ, il sera automatiquement généré à partir du nom. + + + Name + Nom + + + Please enter the name of this product. + Veuillez, s'il vous plaît, entrer le nom de ce produit. + + + SKU + SKU (Unité de gestion des stocks) + + + Please enter a unique stock keeping unit for this product. + Veuillez, s'il vous plaît, entrer une unité de gestion des stocks unique pour ce produit. + + + Shipping weight + Poids + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Saisir le poids de ce produit. Il peut être utilisé pour calculer le coût d'expédition. + + + Teaser + Résumé + + + Please enter the teaser. + Veuillez, s'il vous plaît, entrer un résumé. + + + Description + Description + + + Please enter the product description. + Veuillez, s'il vous plaît, entrer la description du produit. + + + Meta title + Méta titre + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + Le titre Meta est utilisé comme titre de page dans la vue détaillée du produit. Si laissé libre, le nom du produit sera utilisé. + + + Meta description + Méta description + + + Meta description will be placed in the header on product detail page, for search engine optimization. + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + Méta mots-clés + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + Les mots clef Meta seront placés dans l'en-tête de la page détaillée du produit pour une optimisation des moteurs de recherche. + + + Price &amp; tax class + Prix + + + Please enter the price(s) for this product and select the tax class. + Veuillez, s'il vous plaît, entrer un prix pour ce produit. + + + Exempt from shipping + Aucun frais de livraison + + + Check if item is not a shipped item (such as downloadable products). + Vérifier si le produit n'est pas un produit livré (comme les produits téléchargeables). + + + Base price amount + Prix de base + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + Veuillez, s'il vous plaît, entrer votre prix de base. + + + Images + Images + + + Upload images to this product. Please save the product after selecting a file. + Importer des images pour ce produit. Veuillez, s'il vous plaît, sauvegarder le produit après avoir sélectionné un fichier. + + + Protect product + Protéger le produit + + + Restrict product access to certain member groups. + Restreindre l'accès du produit à certains groupes de membres. + + + Allowed member groups + Groupes de produits + + + These groups will be able to access the product. + Gérer les groupes de produits + + + Show to guests only + Visible par les invités seulement + + + Hide the product if there is an authenticated user. + Masquer le produit s'il y a un utilisateur authentifié. + + + CSS ID/class + ID / classe(s) CSS + + + Here you can set an ID and one or more classes. + Ici, vous pouvez ajouter un ID et une ou plusieurs classes. + + + Publish product + Publier le produit + + + Click here to show this product on your website. + Rendre le produit visible aux visiteurs de votre site. + + + Start date + Afficher à partir du + + + Do not show this product before the date specified. + Ne pas afficher le produit sur le site avant ce jour. + + + Stop date + Afficher jusqu'au + + + Do not show this product after the date specified. + Ne plus afficher le produit sur le site après ce jour. + + + Inherited attributes + Attributs hérités + + + Check the fields you want to inherit from base product. + Vérifiez les champs que vous souhaitez reproduire du produit de base. + + + Source folder + Répertoire source + + + Please choose the folder where product assets are located. + Choisir le dossier où les produits actifs se trouvent + + + Preview + Aperçu + + + Alternate text + Texte alternatif + + + Link target + Cible du lien + + + Description + Description + + + Translate + Traduire + + + None + Non + + + Do not translate this image. + Ne pas traduire cette image. + + + Text + Texte + + + Translate alt text and description for this image. + Traduire le texte alternatif et la description pour cette image. + + + All + Exclure + + + Do not include this image in translated version. + Ne pas inclure cette image dans la version traduite. + + + Variant + Variante + + + Show product variants + Afficher les variantes de produit + + + New product + Nouveau produit + + + Create new product + Créer un nouveau produit + + + Add variant + Ajouter une variante + + + Add new variant to a given product + Ajouter une variante d'un produit. + + + Edit product + Éditer un produit + + + Edit product ID %s + Éditer le produit ID %s + + + Copy product + Dupliquer le produit + + + Copy product ID %s + Dupliquer le produit ID %s + + + Move product + Déplacer le produit + + + Move product ID %s + Déplacer le produit ID %s + + + Delete product + Supprimer le produit + + + Delete product ID %s + Supprimer le produit ID %s + + + Publish/unpublish product + Publier/dé-publier un produit + + + Publish/unpublish product ID %s + Publier/dé-publier le produit ID %s + + + Product details + Détails du produit + + + Show details of product ID %s + Afficher les détails du produit ID %s + + + Advanced filter: + Filtres avancés : + + + Without images + Sans images + + + Unassigned products + Produits non assignés + + + New products + Nouveau produit + + + Added today + Ajouté aujourd'hui + + + Added this week + Ajouté cette semaine + + + Added this month + Ajouté ce mois + + + Manually sort products in a page + Trier manuellement les produits dans une page + + + Product groups + Groupes de produits + + + Manage product groups + Gérer les groupes de produits + + + Import assets + Importer des éléments + + + Import images and other media from a folder + Importer des images et autres médias à partir d'un dossier. + + + Manage prices + Gestion des prix + + + Click the button to manage advanced prices for this product. + Gérer les prix du produit ID %s + + + Apply and close + Appliquer et fermer + + + Product variants + Variantes de produit + + + Show variants for product ID %s + Afficher les variantes pour le produit ID %s + + + Generate variants + Générer des variantes + + + Generate variants for product ID %s + Générer des variantes pour le produit ID %s + + + Related products + Produits similaires + + + Manage related products for product ID %s + Gérer les produits similaires pour le produit ID %s + + + Downloads + Téléchargements + + + Edit downloads for product ID %s + Éditer les téléchargements du produit ID %s + + + Currently: %s downloads. + + + Move to group + Déplacer dans un groupe + + + Move product ID %s to a group + Déplacer le produit ID %s dans un groupe + + + Group + Groupe + + + General Settings + Paramètres généraux + + + Meta data + Méta informations + + + Pricing Settings + Paramètres du prix + + + Inventory Settings + Paramètres de l'inventaire + + + Shipping Settings + Paramètres de livraison + + + Product Options Settings + Paramètres des options du produit + + + Media Management + Gestionnaire de média + + + Expert settings + Paramètres avancés + + + Publishing + Publication + + + Quantity + Quantité + + + from %s pcs. + de %s pièces. + + + Price + Prix + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + Il y a deux manière différente d'utiliser cette option: + +Le répertoire source contient des fichiers qui correspondent soit au SKU produit, soit à son nom. Isotope eCommerce va alors faire correspondre tout les fichiers avec vos produits et les importer dans les répertoire produits respectifs. +Le répertoire source contient des sous-répertoires qui correspondent soit au SKU produit, soit à son nom. Isotope eCommerce va alors faire correspondre tout les sous-répertoires avec vos produits et tout importer au sein d'un sous-répertoire dans le répertoire produits respectif. + +Nota: Un développeur peut vous fournir d'autre règles de correspondance qu'uniquement le SKU produit ou son nom. + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_product_category.php b/system/modules/isotope/languages/fr/tl_iso_product_category.php deleted file mode 100644 index b7c832416b..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_product_category.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Move product + Déplacer le produit + + + Move product ID %s + Déplacer le produit ID %s + + + Paste at the top + Coller en haut + + + Paste after product ID %s + Coller après le produit ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_product_collection.php b/system/modules/isotope/languages/fr/tl_iso_product_collection.php deleted file mode 100644 index 49aad4a2d6..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_product_collection.php +++ /dev/null @@ -1,64 +0,0 @@ - + + + + Order ID + ID de la commande + + + Member (empty for guests) + Membre (vide pour les invités) + + + Unique ID + ID unique + + + Order status + État des commandes + + + Select the status of this order. + Sélectionner l'état de cette commande + + + Placed + Placé + + + Source (Cart ID) + + + Payment date + Date de paiement + + + Enter a date when this order has been paid. + Saisir la date à laquelle la commande a été payée. + + + Shipped date + Date de livraison + + + Enter a date when this order has been shipped. + Saisir la date à laquelle la commande a été livrée. + + + Shop configuration + Configuration de boutique + + + Payment method + Mode de paiement + + + Shipping method + Mode de livraison + + + Billing address + Adresse de facturation + + + Shipping address + Adresse de livraison + + + Subtotal + Sous-total + + + Subtotal without tax + Sous-total sans taxe + + + Total + Total général + + + Total without tax + Total sans taxe + + + Currency + Monnaie + + + Language + Langue + + + Order notes + Informations sur la commande + + + If you would like to convey information to other backend users, please do so here. + Permet de transmettre des informations à d'autres utilisateurs du back office. + + + Edit order + Éditer une commande + + + Edit order ID %s + Éditer la commande ID %s + + + Copy order + Dupliquer une commande + + + Copy order ID %s + Dupliquer la commande ID %s + + + Delete order + Supprimer une commande + + + Delete order ID %s + Supprimer la commande ID %s + + + Order details + Détails de la commande + + + Show details of order ID %s + Afficher les détails de la commande ID %s + + + Payment details + Payment details + + + Show payment details of order ID %s + Show payment details of order ID %s + + + Shipping details + Shipping details + + + Show shipping details of order ID %s + Show shipping details of order ID %s + + + Print a document + Imprimer un document + + + Print order ID %s with a document of your choice + Imprimer commande ID %s avec un document de votre choix + + + Document + Document + + + Choose the document you would like to print the data with. + Choisissez le Document avec lequel vous souhaitez imprimer les données. + + + Print + Imprimer + + + The status of your order has been updated. + L'état de votre commande a été mis à jour. + + + Notifications (e.g. email to client) have been sent. + Notifications (ex: email au client) ont été envoyés. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + Notifications (ex: courriel au client) n'ont pas pu être envoyés. Vérifiez le log du système + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + État des commandes + + + Order details + Détails de la commande + + + Email data + Email data + + + Billing address data + Billing address data + + + Shipping address data + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_product_price.php b/system/modules/isotope/languages/fr/tl_iso_product_price.php deleted file mode 100644 index e3000483a9..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Price Tiers + Groupes de prix + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + Configurer au moins un niveau de prix pour "Quantité 1". Vous pouvez entrer des prix réduits si l'utilisateur commande plus d'un produit. + + + Tax Class + Taxe + + + Please select a tax class for this price. + Sélectionner une taxe pour ce prix. + + + Store configuration + Configuration de la boutique + + + Select a store configuration for this price. + Sélectionner une configuration de boutique pour ce prix + + + Member group + Groupe de prix + + + Select a member group for this price. + Sélectionner un groupe de prix pour ce prix + + + Use from + Utiliser à partir de + + + Do not use the price on the website before this day. + Ne pas utiliser le prix sur le site avant ce jour. + + + Use until + Utiliser jusqu'à + + + Do not use the price on the website after this day. + Ne pas utiliser le prix sur le site après ce jour. + + + Add price + Ajouter un prix + + + Add a new price to this product + Ajouter un nouveau prix à ce produit + + + Edit price + Éditer un prix + + + Edit price ID %s + Éditer le prix ID %s + + + Duplicate price + Dupliquer un prix + + + Duplicate price ID %s + Dupliquer le prix ID %s + + + Delete price + Effacer un prix + + + Delete price ID %s + Effacer le prix ID %s + + + Price details + Détails du prix + + + Show details of price ID %s + Afficher les détails du prix ID %s + + + Quantity (min) + Quantité (minimum) + + + Price + Prix + + + Price + Prix + + + Limitations + Limites + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_producttype.php b/system/modules/isotope/languages/fr/tl_iso_producttype.php deleted file mode 100644 index b311e46c96..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_producttype.php +++ /dev/null @@ -1,72 +0,0 @@ - + + + + Name + Nom + + + Please enter a name for this product type. + Saisir un nom pour ce produit + + + Product Class + Catégorie de produit + + + Please select a product class. Different product classes will handle products differently. + Sélectionner une catégorie de produit. Différentes catégories de produits se chargeront des produits différemment. + + + Default + Taxe par défaut + + + Check here if this is the default product type. + Cocher si c'est le type de produit par défaut. + + + Description + Description + + + A hint to product managers what this product type is for. + A hint to product managers what this product type is for. + + + Advanced pricing + Tarification avancée + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + Permet de définir plusieurs prix par produit, par exemple, pour les différentes configurations de boutique, des groupes de membres ou de dates. + + + Show price tiers + Show price tiers + + + Show highest tier as lowest product price. + Show highest tier as lowest product price. + + + List template + Modèles de liste + + + Select a template for product listing. + Sélectionner un modèle pour les listes de produits. + + + Reader template + Modèles de lecteur + + + Select a template for product details. + Sélectionner un modèle pour les détails du produit. + + + List gallery + Liste de galerie + + + Select a gallery for product listing. + Sélectionner une galerie pour les listes de produits. + + + Reader gallery + Lecteur de galerie + + + Select a gallery for product details. + Sélectionner une galerie pour les détails du produit. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Attributs + + + Select the collection of attributes that should be included for this product type. + Sélectionner la collection d'attributs qui doit être incluse pour ce type de produit. + + + Grouping + Regroupement + + + Group fields by topic (legends) + Groupe de champs par sujet (légendes) + + + Alignment + Alignement + + + Enter a tl_class to override alignment for this attribute. + Saisir un tl_class pour surcharger l'alignement pour cet attribut. + + + Mandatory + Obligatoire + + + You can override the default mandatory-ness here. + Vous pouvez surcharger la valeur par défaut obligatoire. + + + Default + Taxe par défaut + + + Enable variants + Activer les variantes + + + Check here if this product type has variants. + Vérifier si ce type de produit a des variantes + + + Variant attributes + Attributs des variantes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + Choisissez une collection d'attributs de variante à ajouter à ce type de produit. Les attributs des variantes non sélectionnés sont invisibles et ne seront pas hérités du produit parent. + + + Always show variant attributes + Toujours afficher les attributs de variantes + + + Show a variant attribute (select, radio) even if there is only one choice. + Afficher un attribut de variante (select, radio), même s'il n'y a qu'un seul choix. + + + Exempt from shipping + Aucun frais de livraison + + + Check if items of this product type are not a shipped item (such as downloadable products). + Vérifiez si les éléments de ce type de produit ne sont pas des éléments livrés (tels que les produits téléchargeables). + + + Enable downloads + Activer les téléchargements + + + Check here if this product type has downloads. + Cocher si ce type de produit a des téléchargements. + + + New product type + Nouveau type de produit + + + Create new product type. + Créer un nouveau type de produit + + + Edit product type + Éditer un type de produit + + + Edit product type ID %s + Éditer le type de produit ID %s + + + Copy product type definiton + Dupliquer un type de produit + + + Copy definition of product type ID %s + Dupliquer le type de produit ID %s + + + Delete product type + Effacer un type de produit + + + Delete product type ID %s + Effacer le type de produit ID %s + + + product type details + Détails du type de produit + + + Show details of product type ID %s + Afficher les détails du type de produit ID %s + + + Product type settings + Paramètres du type de produit + + + Description + Description + + + Prices + Prix + + + Templates + Modèles + + + Product attributes + Attributs de produit + + + Variant attributes + Attributs des variantes + + + Expert settings + Paramètres avancés + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_related_category.php b/system/modules/isotope/languages/fr/tl_iso_related_category.php deleted file mode 100644 index 62cd019c10..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_related_category.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Category name + Nom de la catégorie + + + Please enter a name for this category. + Saisir un nom pour la catégorie + + + New category + Nouvelle catégorie + + + Create a new category + Créer une nouvelle catégorie + + + Edit category + Éditer une catégorie + + + Edit category ID %s + Éditer la catégorie ID %s + + + Duplicate category + Dupliquer une catégorie + + + Duplicate category ID %s + Dupliquer la catégorie ID %s + + + Delete category + Effacer une catégorie + + + Delete category ID %s + Effacer la catégorie ID %s + + + Category details + Détails de la catégorie + + + Show details of category ID %s + Afficher les détails de la catégorie ID %s + + + Name + Nom + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_related_product.php b/system/modules/isotope/languages/fr/tl_iso_related_product.php deleted file mode 100644 index 10760e08cc..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_related_product.php +++ /dev/null @@ -1,36 +0,0 @@ - + + + + Category + Catégorie + + + Select a category. + Sélectionnez une catégorie + + + Products + Produits + + + Enter a comma-separated list of product or variant IDs to show as related products. + Saisir une liste séparée par des virgules des ID de produits ou variantes à afficher en tant que produits connexes. + + + Add category + Ajouter une catégorie + + + Add a new category with products + Ajouter une nouvelle catégorie avec des produits + + + Edit category + Éditer une catégorie + + + Edit category ID %s + Éditer la catégorie ID %s + + + Duplicate category + Dupliquer une catégorie + + + Duplicate category ID %s + Dupliquer la catégorie ID %s + + + Move category + Déplacer une catégorie + + + Move category ID %s + Déplacer la catégorie ID %s + + + Delete category + Effacer une catégorie + + + Delete category ID %s + Effacer la catégorie ID %s + + + Category details + Détails de la catégorie + + + Show details of category ID %s + Afficher les détails de la catégorie ID %s + + + Edit product + Éditer un produit + + + Edit this product + Éditer ce produit + + + Category + Catégorie + + + Related products + Produits similaires + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_shipping.php b/system/modules/isotope/languages/fr/tl_iso_shipping.php deleted file mode 100644 index d2edd6ef4c..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_shipping.php +++ /dev/null @@ -1,88 +0,0 @@ - + + + + Shipping Method Name + Nom du mode de livraison + + + Please enter a name for this shipping method. + Saisir un nom pour ce mode d'expédition. + + + Shipping Method Type + Type de mode de livraison + + + Please select the type of this shipping method + Sélectionner le type de ce mode de livraison. + + + Price + Prix + + + Optionally enter a price for this shipping method. + Optionnel : saisir un prix pour ce mode d'expédition. + + + Shipping Method Notes + Notes relatives au mode de livraison + + + These will be displayed on the front end in association with this shipping option. + Elles seront affichées en front office en liaison avec les options de livraison. + + + Tax Class + Taxe + + + Select a tax class that applies to the shipping price. + Sélectionner une taxe pour le prix du mode d'expédition. + + + Label + Libellé + + + This is displayed on the front end in association with the shipping option. + Il est affiché en front office en liaison avec l'option de livraison. + + + Flat calculation + Calcul forfaitaire + + + Select the mode of price calculation. + Sélectionnez le mode de calcul du prix. + + + Countries + Pays + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + Sélectionnez les pays auxquels ce mode de livraison s'applique. Si vous ne sélectionnez rien, le mode de livraison sera appliqué à tous les pays. + + + State/Regions + État / Régions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + Sélectionnez les états/régions auxquels ce mode de livraison s'applique. Si vous ne sélectionnez rien, le mode de livraison sera appliqué à tous les états/régions. + + + Postal codes + Codes postaux + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Limiter ce module d'expédition aux codes postaux. Saisir une liste et plages séparées par des virgules (ex 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + Sous-total minimum + + + Enter a minimum amount to control availability based on the cart subtotal. + Entrez un montant minimum pour contrôler la disponibilité basé sur le sous total du panier. + + + Maximum subtotal + Sous-total maximum + + + Enter a maximum amount to control availability based on the cart subtotal. + Entrez un montant maximum pour contrôler la disponibilité basé sur le sous total du panier. + + + Minimum weight + Poids minimum + + + Enter a minimum weight to control availability based on the products in cart. + Entrez un poids minimum pour contrôler la disponibilité basée sur les produits dans le panier. + + + Maximum weight + Poids maximum + + + Enter a maximum weight to control availability based on the products in cart. + Entrez un poids maximum pour contrôler la disponibilité basée sur les produits dans le panier. + + + Quantity calculation mode + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + Select a calculation mode for min/max quantity. + + + Total quantity in cart + Quantité totale dans le panier + + + Total products in cart + Total des produits dans le panier + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Types de produits + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + Limiter le mode de livraison pour certains types de produits. Si le panier contient un type de produit non sélectionné, le module d'expédition n'est pas disponible. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Configurations de boutique + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Modes de livraison + + + Select the shipping methods to group in this method. + Sélectionnez la méthode d'expédition à grouper dans cette méthode. + + + Group calculation + Calcul du groupe + + + Select how the price of this shipping method should be calculated. + Sélectionnez comment le prix de cette méthode d'expédition devrait être calculé. + + + Member Groups + Groupes de membres + + + Restrict this shipping option to certain member groups. + Restreindre l'option de livraison à certains groupes de membres. + + + Protect module + Proteger le module + + + Show the module to certain member groups only. + Ne montrer le module qu'à certains groupes de membres + + + Show to guests only + Visible par les invités seulement + + + Hide the module if a member is logged in. + Cacher le module si un membre est connecté + + + Enabled + Activé + + + Is the module available for use in the store? + Le module est-il disponible pour une utilisation dans la boutique ? + + + Title and type + Titre et type + + + Shipping note + Note de livraison + + + Configuration + Configuration + + + Pricing threshold and tax class applicability + Seuil de prix et application de la catégorie fiscale + + + Expert settings + Paramètres avancés + + + Approval + Approbation + + + New shipping method + Nouveau mode de livraison + + + Create a New shipping method + Créer un nouveau mode de livraison + + + Edit shipping method + Éditer un mode de livraison + + + Edit shipping method ID %s + Éditer le mode de livraison ID %s + + + Copy shipping method + Dupliquer un mode de livraison + + + Copy shipping method ID %s + Dupliquer le mode de livraison ID %s + + + Delete shipping method + Effacer un mode de livraison + + + Delete shipping method ID %s + Effacer le mode de livraison ID %s + + + Enable/disable shipping method + Activer/désactiver un mode de livraison. + + + Enable/disable shipping method ID %s + Activer/désactiver le mode de livraison ID %s + + + Shipping method details + Détails du mode de livraison + + + Show details of shipping method ID %s + Afficher les détails du mode de livraison ID %s + + + Flat + Appartement + + + Per Product + Par produit + + + Per Item + Par article + + + Price of the first available method + Prix de la première méthode disponible + + + Lowest price of available methods + Prix le plus bas des méthodes disponible + + + Highest price of available methods + Prix le plus haut des méthodes disponibles + + + Summed price of available methods + Résumé des prix des méthodes disponibles + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_tax_class.php b/system/modules/isotope/languages/fr/tl_iso_tax_class.php deleted file mode 100644 index 3f5253c737..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_tax_class.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Nom + + + Give this tax class a name that explains what it is used for. + Donner à cette taxe un nom qui explique pourquoi elle est utilisée. + + + Default + Taxe par défaut + + + Check here if this is the default tax class. + Définir cette taxe par défaut. + + + Tax rate included with product price + Taux de taxe inclus avec le prix du produit + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + Sélectionner si les prix des produits avec cette taxe possèdent un taux de taxe. Ce taux de taxe sera alors déduit du prix des produits si cela ne correspond pas. + + + Include label + Inclure un libellé + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + Taux de taxe à appliquer + + + Add these tax rates to products with this tax class. + Ajouter ces taux de taxe aux produits qui auront cette taxe. + + + Apply rounding increment + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + Non négatif + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + Empêche une valeur négative pour cette taxe (le montant négatif sera ajusté à 0,00). + + + New tax class + Nouvelle taxe + + + Create a new tax class + Créer un nouvelle taxe + + + Edit tax class + Éditer une taxe + + + Edit tax class ID %s + Éditer la taxe ID %s + + + Copy tax class + Dupliquer une taxe + + + Copy tax class ID %s + Dupliquer la taxe ID %s + + + Delete tax class + Supprimer une taxe + + + Delete tax class ID %s + Supprimer la taxe ID %s + + + Tax class details + Détails de la taxe + + + Show details of tax class ID %s + Afficher les détails de la taxe ID %s + + + Name + Nom + + + Tax rates + Taux de taxe + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_iso_tax_rate.php b/system/modules/isotope/languages/fr/tl_iso_tax_rate.php deleted file mode 100644 index b3df42d979..0000000000 --- a/system/modules/isotope/languages/fr/tl_iso_tax_rate.php +++ /dev/null @@ -1,57 +0,0 @@ - + + + + Name + Nom + + + Enter a name for this tax rate. + Saisir un nom pour le taux de taxe. + + + Label + Libellé + + + This label will be used on the front end in the checkout process. + Ce libellé sera utilisé en front office lors du processus de paiement. + + + Address to use for calculation + Adresse à utiliser pour le calcul + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + Pays + + + Select the countries this tax class applies to. + + + States/Regions + Régions/Départements + + + Select the states or regions this tax class applies to. + Sélection les États ou Régions auxquels s'appliquent cette classe de taxe. + + + Postal codes + Codes postaux + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Limiter le taux de taxe à certain code postaux. Vous pouvez utiliser une liste séparée par des virgules et des portée (ex: 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + Restriction au montant du total partiel + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + Facultatif : restreindre cette taxe à un sous-total spécifique (comme par exemple une taxe de luxe.) + + + Tax rate + Taux de taxe + + + A rate in percent this tax is set at. + Définir un taux de taxe en pourcentage. + + + Store configuration + Configuration de la boutique + + + Select the store configuration that the tax rate applies to. + Sélectionner la configuration de boutique à laquelle s'applique le taux de taxe. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + Stopper les calculs au déclenchement ? + + + Stop other calculations if this tax rate is triggered. + Arrêter les autres calculs si ce taux de taxe est déclenché + + + Member groups + Groupes de membres + + + Restrict this tax rate to certain member groups. + Restreindre ce taux de taxe à certain groupes de membres + + + Protect tax rate + Protéger le taux de taxe + + + Apply the tax rate to certain member groups only. + Appliquer le taux de taxe à certain groupes de membre seulement. + + + Apply to guests only + Appliquer aux invités seulement + + + Do not apply tax rate if a member is logged in. + Ne pas appliquer le taux de taxe si un membre est connecté. + + + New tax rate + Nouveau taux de taxe + + + Create a new tax rate + Créer un nouveau taux de taxe + + + Edit tax rate + Éditer un taux de taxe + + + Edit tax rate ID %s + Éditer le taux de taxe ID %s + + + Copy tax rate + Dupliquer un taux de taxe + + + Copy tax rate ID %s + Dupliquer le taux de taxe ID %s + + + Delete tax rate + Supprimer un taux de taxe ID %s + + + Delete tax rate ID %s + Supprimer le taux de taxe ID %s + + + Tax rate details + Détails du taux de taxe + + + Show details of tax rate ID %s + Afficher les détails du taux de taxe ID %s + + + Billing Address + Adresse de facturation + + + Shipping Address + Adresse de livraison + + + Name + Nom + + + Rate + Taux + + + Location + Lieu + + + Conditions + Conditions + + + Configuration + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_maintenance.php b/system/modules/isotope/languages/fr/tl_maintenance.php deleted file mode 100644 index 1764ca813c..0000000000 --- a/system/modules/isotope/languages/fr/tl_maintenance.php +++ /dev/null @@ -1,20 +0,0 @@ -tl_iso_productcache qui met en cache les produits trouvés pour chaque liste de produits sur votre page.'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][0] = 'Purger le cache des requêtes Isotope'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][1] = 'Tronque la table tl_iso_requestcache qui met en cache les informations du module de filtrage pour les URL courtes.'; diff --git a/system/modules/isotope/languages/fr/tl_maintenance.xlf b/system/modules/isotope/languages/fr/tl_maintenance.xlf new file mode 100644 index 0000000000..1e9d960c0f --- /dev/null +++ b/system/modules/isotope/languages/fr/tl_maintenance.xlf @@ -0,0 +1,22 @@ + + + + + Purge Isotope product cache + Purger le cache des produit Isotope + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + Tronque la table <em>tl_iso_productcache</em> qui met en cache les produits trouvés pour chaque liste de produits sur votre page. + + + Purge Isotope request cache + Purger le cache des requêtes Isotope + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + Tronque la table <em>tl_iso_requestcache</em> qui met en cache les informations du module de filtrage pour les URL courtes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_member.php b/system/modules/isotope/languages/fr/tl_member.php deleted file mode 100644 index 0c4d44ea12..0000000000 --- a/system/modules/isotope/languages/fr/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + Carnet d'adresse + + + Manage the address book for member ID %s. + Gérer ce carnet d'adresse + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_module.php b/system/modules/isotope/languages/fr/tl_module.php deleted file mode 100644 index e66fcd1edc..0000000000 --- a/system/modules/isotope/languages/fr/tl_module.php +++ /dev/null @@ -1,130 +0,0 @@ -templates. Les fichiers de modèles de collection commencent avec iso_collection_.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterTpl'][0] = 'Filter template'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][0] = 'Redirection vers le premier produit'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][1] = 'Cocher cette case si les utilisateurs sont redirigés vers le premier produit de la liste.'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][0] = 'Hide in reader mode'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][1] = 'Hide product list when a product alias is found in the URL.'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][0] = 'Activer la quantité'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][1] = 'Permet aux utilisateurs de spécifier un ou plusieurs produits à acheter.'; -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'][0] = 'Afficher une page 404'; -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'][1] = 'Afficher la page non trouvée 404 si aucun alias de produit est dans l\'URL. Utiliser cette option si le module de lecture est sur ​​une page séparée qui n\'est pas être disponible.'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][0] = 'Mode de commande'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][1] = 'Choisissez votre mode de commande'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][0] = 'Aller à la page produit'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][1] = 'Ce paramètre définit la page vers laquelle l\'utilisateur sera redirigé lorsqu\'il ajoute un article au panier, si autre que la page en cours.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][0] = 'Colonnes'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][1] = 'Entrez un nombre de colonnes à afficher en largeur dans la liste des modèles'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][0] = 'Configuration de boutique'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][1] = 'Sélectionner la configuration de boutique pour laquelle ce module sera utilisé.'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][0] = 'Configurations de boutique'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][1] = 'Sélectionner les configurations de boutique pour laquelle ce module sera utilisé.'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][0] = 'Modes de paiement'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][1] = 'Sélectionnez un ou plusieurs modes de paiement pour ce module de commande.'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][0] = 'Modes de livraison'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][1] = 'Sélectionnez un ou plusieurs modes de livraison pour ce module de commande.'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][0] = 'Aller à la page de commande terminée'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][1] = 'Sélectionner la page vers laquelle le client sera redirigé après sa commande validée.'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][0] = 'Avancer à la page résumé'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][1] = 'Avancer l\'utilisateur à la page résumé si aucune donnée n\'est requise lors des étapes suivantes.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][0] = 'Conditions de commande'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][1] = 'Choisissez un formulaire personnalisé utilisé pour afficher vos termes et conditions de vente (en option).'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position'][0] = 'Position of order conditions form'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position'][1] = 'Define if the order condition form should be shown before or after the products list.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['top'] = 'Dessus (avant l\'adresse)'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['before'] = 'Avant la liste des produits'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['after'] = 'Après la liste des produits'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][0] = 'Ajouter au carnet d\'adresses'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][1] = 'Ajouter de nouvelles adresses au carnet d\'adresses des membres (si connecté).'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][0] = 'Ordonnancement'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][1] = 'Définir dans quel ordre la collection de produits doit être classé.'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][0] = 'Message personnalisé quand il n\'y a rien à afficher'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][1] = 'Définir un message personnalisé quand il n\'y a rien à afficher (liste de produit vide, panier vide, etc.)'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][0] = 'Message'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][1] = 'Entrer un message personnalisé quand il n\'y a rien à afficher (liste de produit vide, panier vide, etc.)'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyFilter'][0] = 'Define a message if no filter is set'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyFilter'][1] = 'Set a custom message when there is no filter set.'; -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'][0] = 'Message when no filter is set'; -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'][1] = 'Enter a custom message if there is no filter set.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][0] = 'Portée de la catégorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][1] = 'Définir le champ d\'application d\'un listeur de produits.'; -$GLOBALS['TL_LANG']['tl_module']['iso_list_where'][0] = 'Condition'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][0] = 'Filter modules'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][1] = 'Select the filter modules you want to consider for this product list.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][0] = 'Activer les filtres'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][1] = 'Sélectionner les filtres à activer.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][0] = 'Caché les options unique'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][1] = 'Cache le champ filtre si il n\'y a qu\'une option.'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][0] = 'Activer les champs de recherche'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][1] = 'Sélectionner les champs de recherche à activer.'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][0] = 'Complètement automatique du champ de recherche'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][1] = 'Si vous sélectionner un champ ici, la recherche sera automatiquement complètementée par les valeurs de ce champ.'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][0] = 'Activer les champs de tri'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][1] = 'Sélectionner les champs de tri à activer.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][0] = 'Filtre pour produits nouveaux'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][1] = 'Si vous avez configuré marqué les produits comme "nouveaux" dans la configuration de votre boutique, vous pouvez filtrer soit les anciens, soit les nouveaux ou alors tous les montrer.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_all'] = 'Montrer tout les produits'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_new'] = 'Montrer seulement les produits nouveaux'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_old'] = 'Montrer seulement les produits anciens'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][0] = 'Activer la limitation par page'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][1] = 'Permettre à l\'utilisateur de sélectionner le nombre d\'enregistrements à afficher par page.'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][0] = 'Per page options'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][1] = 'Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][0] = 'Aller à la page du panier'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][1] = 'Ce paramètre définit la page vers laquelle l\'utilisateur sera redirigé lors d\'une vue complète du panier.'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][0] = 'Aller à la page de commande'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][1] = 'Ce paramètre définit la page vers laquelle l\'utilisateur sera redirigé au moment de compléter la transaction.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][0] = 'Champ de tri initial'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][1] = 'Choisir un champ d\'ordonnancement pour trier la liste par le chargement initial de la page.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][0] = 'Ordre initial de tri'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][1] = 'Sélectionnez un ordre initial de tri'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][0] = 'Boutons'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][1] = 'Sélectionner les boutons à afficher'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][0] = 'Catégories similaires'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][1] = 'Sélectionner les catégories desquelles montrer les produits.'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][0] = 'Include messaging'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][1] = 'This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of.'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][0] = 'Enable "Continue shopping" button'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][1] = 'Add a link to the currently added product to the cart.'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['billing'] = 'Adresse de facturation'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['shipping'] = 'Adresse de livraison'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_legend'] = 'Conditions de commande'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['member'] = 'Connexion/inscription requise'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['guest'] = 'Commande invité seulement'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['both'] = 'Les deux autorisés'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][0] = 'Toutes catégories'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][1] = 'Montrer tout les produits qui sont assignés à une page de l\'arborescence de la page active (basé sur la page racine).'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][0] = 'Catégorie actuelle et la première catégorie enfant'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][1] = 'Montrer tout les produits qui sont assignés à la page active ou page enfant du premier degré.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][0] = 'Catégorie actuelle et toutes les catégories enfant'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][1] = 'Montrer tout les produits qui sont assignés à la page active ou toute page enfant.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][0] = 'Catégorie en cours'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][1] = 'Montrer tout les produits qui sont assignés à la page active (standard)'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][0] = 'Catégorie parente'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][1] = 'Montrer tout les produits qui sont assignés à la page parent de la page active.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][0] = 'Produit actuel des catégories'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][1] = 'Montrer tout les produits qui sont assignés aux même pages que celles auxquelles le produit actif est assigné.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['article'][0] = 'Catégorie de produit'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['article'][1] = 'Si vous placez le module dans un article, il montrera les produits assignés à la page parent, même si vous placez l\'article dans une autre page (ex: en utilisant les balises d\'insertion).'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['ASC'] = 'Croissant'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['DESC'] = 'Décroissant'; diff --git a/system/modules/isotope/languages/fr/tl_module.xlf b/system/modules/isotope/languages/fr/tl_module.xlf new file mode 100644 index 0000000000..86072b648e --- /dev/null +++ b/system/modules/isotope/languages/fr/tl_module.xlf @@ -0,0 +1,546 @@ + + + + + Product list template + Modèle de liste de produits + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + Modèle de fiche produit + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + Galerie + + + Select a gallery to render images (overrides the product type config). + Sélectionner une galerie pour rendre les images (remplace la configuration type du produit). + + + Product collection template + Modèle collection produit + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + Veuillez choisir un modèle pour générer les produits. Vous pouvez ajouter des modèles de collection personnalisés au répertoire<em>templates</em>. Les fichiers de modèles de collection commencent avec <em>iso_collection_</em>. + + + Filter template + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + Redirection vers le premier produit + + + Check here if users are redirected to the first product of the list. + Cocher cette case si les utilisateurs sont redirigés vers le premier produit de la liste. + + + Hide in reader mode + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + Hide product list when a product alias is found in the URL. + + + Enable quantity + Activer la quantité + + + Allow users to specify 1 or more of a product to be purchased. + Permet aux utilisateurs de spécifier un ou plusieurs produits à acheter. + + + Display a 404 page + Afficher une page 404 + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + Afficher la page non trouvée 404 si aucun alias de produit est dans l'URL. Utiliser cette option si le module de lecture est sur ​​une page séparée qui n'est pas être disponible. + + + Checkout method + Mode de commande + + + Choose your checkout method. + Choisissez votre mode de commande + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + Aller à la page produit + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + Ce paramètre définit la page vers laquelle l'utilisateur sera redirigé lorsqu'il ajoute un article au panier, si autre que la page en cours. + + + Columns + Colonnes + + + Enter a number of columns to display width-wise in the listing template. + Entrez un nombre de colonnes à afficher en largeur dans la liste des modèles + + + Store configuration + Configuration de la boutique + + + Select the store configuration that this module will be used for. + Sélectionner la configuration de boutique pour laquelle ce module sera utilisé. + + + Store configurations + Configurations de boutique + + + Select the store configurations that this module will be used for. + Sélectionner les configurations de boutique pour laquelle ce module sera utilisé. + + + Payment methods + Modes de paiement + + + Select one or more payment methods for this checkout module. + Sélectionnez un ou plusieurs modes de paiement pour ce module de commande. + + + Shipping methods + Modes de livraison + + + Select one or more shipping methods for this checkout module. + Sélectionnez un ou plusieurs modes de livraison pour ce module de commande. + + + Completed order jump to page + Aller à la page de commande terminée + + + Select a page the customer will be referred to after their order is complete. + Sélectionner la page vers laquelle le client sera redirigé après sa commande validée. + + + Forward to review page + Avancer à la page résumé + + + Forward the user to the review page if no data is required on any step. + Avancer l'utilisateur à la page résumé si aucune donnée n'est requise lors des étapes suivantes. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + Conditions de commande + + + Choose a custom form that is used to display your order terms and conditions (optional). + Choisissez un formulaire personnalisé utilisé pour afficher vos termes et conditions de vente (en option). + + + Position of order conditions form + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + Dessus (avant l'adresse) + + + Before products list + Avant la liste des produits + + + After products list + Après la liste des produits + + + Add to address book + Ajouter au carnet d'adresses + + + Add new addresses to members address book (if logged in). + Ajouter de nouvelles adresses au carnet d'adresses des membres (si connecté). + + + Sorting + Ordonnancement + + + Define in what order the collection items should be listed. + Définir dans quel ordre les éléments de l'ensemble doivent être listés. + + + Define empty message + Message personnalisé quand il n'y a rien à afficher + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + Définir un message personnalisé quand il n'y a rien à afficher (liste de produit vide, panier vide, etc.) + + + Message when empty + Message + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + Entrer un message personnalisé quand il n'y a rien à afficher (liste de produit vide, panier vide, etc.) + + + Define a message if no filter is set + Define a message if no filter is set + + + Set a custom message when there is no filter set. + Set a custom message when there is no filter set. + + + Message when no filter is set + Message when no filter is set + + + Enter a custom message if there is no filter set. + Enter a custom message if there is no filter set. + + + Category Scope + Portée de la catégorie + + + Specify the scope of a product lister. + Définir le champ d'application d'un listeur de produits. + + + Condition + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + Filter modules + + + Select the filter modules you want to consider for this product list. + Select the filter modules you want to consider for this product list. + + + Enabled filters + Activer les filtres + + + Please select filters to enable. + Sélectionner les filtres à activer. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + Caché les options unique + + + Hide filter field if there is just one option. + Cache le champ filtre si il n'y a qu'une option. + + + Enabled search fields + Activer les champs de recherche + + + Please select search fields to enable. + Sélectionner les champs de recherche à activer. + + + Autocomplete search field + Complètement automatique du champ de recherche + + + If you select a field here, the search will be autocompleted by the values of that field. + Si vous sélectionner un champ ici, la recherche sera automatiquement complètementée par les valeurs de ce champ. + + + Enabled sorting fields + Activer les champs de tri + + + Please select orderable fields to enable. + Sélectionner les champs de tri à activer. + + + Filtering for new products + Filtre pour produits nouveaux + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + Si vous avez configuré marqué les produits comme "nouveaux" dans la configuration de votre boutique, vous pouvez filtrer soit les anciens, soit les nouveaux ou alors tous les montrer. + + + Show all products + Montrer tout les produits + + + Only show new products + Montrer seulement les produits nouveaux + + + Only show old products + Montrer seulement les produits anciens + + + Enable per-page limiting + Activer la limitation par page + + + Allow the user to select the number of records to show per page. + Permettre à l'utilisateur de sélectionner le nombre d'enregistrements à afficher par page. + + + Per page options + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + Aller à la page du panier + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + Ce paramètre définit la page vers laquelle l'utilisateur sera redirigé lors d'une vue complète du panier. + + + Checkout Jump to page + Aller à la page de commande + + + This setting defines to which page a user will be redirected when completing their transaction. + Ce paramètre définit la page vers laquelle l'utilisateur sera redirigé au moment de compléter la transaction. + + + Initial sorting field + Champ de tri initial + + + Select a sorting field to sort the listing by on first page load. + Choisir un champ d'ordonnancement pour trier la liste par le chargement initial de la page. + + + Initial sorting direction + Ordre initial de tri + + + Select a initial sorting direction. + Sélectionnez un ordre initial de tri + + + Buttons + Boutons + + + Select the buttons you want to show. + Sélectionner les boutons à afficher + + + Related categories + Catégories similaires + + + Select the categories to show products of. + Sélectionner les catégories desquelles montrer les produits. + + + Include messaging + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + Adresse de facturation + + + Shipping address + Adresse de livraison + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + Conditions de commande + + + Login/Registration required + Connexion/inscription requise + + + Guest checkout only + Commande invité seulement + + + Both allowed + Les deux autorisés + + + All Categories + Toutes catégories + + + Show all products that are assigned to a page of the active page tree (based on the root page). + Montrer tout les produits qui sont assignés à une page de l'arborescence de la page active (basé sur la page racine). + + + Current Category and First Child Category + Catégorie actuelle et la première catégorie enfant + + + Show all products that are assigned to the active page or child pages on the first sublevel. + Montrer tout les produits qui sont assignés à la page active ou page enfant du premier degré. + + + Current Category and All Child Categories + Catégorie actuelle et toutes les catégories enfant + + + Show all products that are assigned to the active page or any child page of it. + Montrer tout les produits qui sont assignés à la page active ou toute page enfant. + + + Current Category + Catégorie en cours + + + Show all products that are assigned to the active page (default). + Montrer tout les produits qui sont assignés à la page active (standard) + + + Parent Category + Catégorie parente + + + Show all products that are assigned to the parent page of the active page. + Montrer tout les produits qui sont assignés à la page parent de la page active. + + + Current Product's Categories + Produit actuel des catégories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + Montrer tout les produits qui sont assignés aux même pages que celles auxquelles le produit actif est assigné. + + + Category of article + Catégorie de produit + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + Si vous placez le module dans un article, il montrera les produits assignés à la page parent, même si vous placez l'article dans une autre page (ex: en utilisant les balises d'insertion). + + + ASC + Croissant + + + DESC + Décroissant + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_nc_notification.php b/system/modules/isotope/languages/fr/tl_nc_notification.php deleted file mode 100644 index c97c6720c2..0000000000 --- a/system/modules/isotope/languages/fr/tl_nc_notification.php +++ /dev/null @@ -1,27 +0,0 @@ - + + + + Product collection template + Modèle collection produit + + + Please choose a template to render the products for the notification content. + Choisir un modèle pour rendre les produits pour les notifications de contenu. + + + Sorting + Ordonnancement + + + Define in what order the collection items should be listed. + Définir dans quel ordre les éléments de l'ensemble doivent être listés. + + + Gallery + Galerie + + + Select a gallery to render images. + Sélectionner une galerie pour rendre les images. + + + Document + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + Pour joindre un document à la notification, en choisir un ici et utiliser le jeton simple dans le centre de notification. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + Changement des état des commandes + + + This notification type can be sent when the order status changes. + Ce type de notification peut être envoyé lors du changements d'état des commandes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_page.php b/system/modules/isotope/languages/fr/tl_page.php deleted file mode 100644 index 10173b9d98..0000000000 --- a/system/modules/isotope/languages/fr/tl_page.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + Store Configuration + Configuration de boutique + + + Select a store configuration for this page structure. + Sélectionner une configuration de boutique pour cette structure de page. + + + Use reader page + Configure a reader page for this Isotope category + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + Every page containing a product listing module must have a reader page assigned (gets inherited). + + + Reader page + Choose the reader page + + + Select a page for your page reader. + Select the target page products from this page should forwarded to. + + + Store ID + ID de la boutique + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Utiliser des ID de boutique différents pour regrouper une boutique sur plusieurs racines de sites. Un panier de commande et les adresses seront partagés entre les mêmes ID de boutique. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_settings.php b/system/modules/isotope/languages/fr/tl_settings.php deleted file mode 100644 index 0beac59022..0000000000 --- a/system/modules/isotope/languages/fr/tl_settings.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Guest cart timeout + Délai d'expiration du panier d'un invité + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + Saisir la durée de vie maximale du panier d'un invité en secondes (30 jours = 2592000 secondes). + + + Order timeout + Délai d'expiration d'une commande + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + Saisir la durée que restera une commande dans la base de données si le paiement n'a pas réussi (7 jours = 604800 secondes). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_user.php b/system/modules/isotope/languages/fr/tl_user.php deleted file mode 100644 index 706759af18..0000000000 --- a/system/modules/isotope/languages/fr/tl_user.php +++ /dev/null @@ -1,48 +0,0 @@ - + + + + Isotope modules + Modules Isotope + + + Select which store configuration modules user of this group can access. + Sélectionner les modules dont cet utilisateur peut accéder. + + + Allowed product types + Types de produits + + + Here you can grant access to one or more product types. + Les utilisateurs peuvent seulement voir et modifier les produits et les types de produits activés. + + + Product type permissions + Product type permissions + + + Here you can define the product type permissions. + Here you can define the product type permissions. + + + Allowed payment modules + Allowed payment modules + + + Here you can grant access to one or more payment modules. + Here you can grant access to one or more payment modules. + + + Payment module permissions + Payment module permissions + + + Here you can define the payment module permissions. + Here you can define the payment module permissions. + + + Allowed shipping modules + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + Shipping module permissions + + + Here you can define the shipping module permissions. + Here you can define the shipping module permissions. + + + Allowed tax classes + Taxes autorisées + + + Here you can grant access to one or more tax classes. + Ici vous pouvez accorder l'accès à une ou plusieurs taxes. + + + Tax class permissions + Permissions liées aux taxes + + + Here you can define the tax class permissions. + Ici, vous pouvez définir les permissions pour les taxes. + + + Allowed tax rates + Taux de taxe autorisés + + + Here you can grant access to one or more tax rates. + Ici vous pouvez accorder l'accès à un ou plusieurs taux de taxe. + + + Tax rate permissions + Permissions liées aux taux de taxe + + + Here you can define the tax rate permissions. + Ici, vous pouvez définir les permissions pour les taux de taxe. + + + Allowed store configurations + Configurations de boutique autorisées + + + Here you can grant access to one or more store configurations. + Ici, vous pouvez accorder l'accès à une ou plusieurs configurations de boutique. + + + Store configuration permissions + Permissions liées à la configuration de boutique + + + Her you can define the store configuration permissions. + Ici, vous pouvez définir les permissions de configuration de boutique. + + + Allowed product groups + Groupes de produits permis + + + Limit access to product groups for this user group. Gets inherited. + Limiter l'accès à des groupes de produits pour ce groupe d'utilisateurs. + + + Product group permissions + Autorisations des groupes de produits + + + Here you can define the product group permissions. + Définir les permissions du groupe de produits. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + Accès au nœud racine + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tl_user_group.php b/system/modules/isotope/languages/fr/tl_user_group.php deleted file mode 100644 index c57fdc9e37..0000000000 --- a/system/modules/isotope/languages/fr/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/fr/tokens.php b/system/modules/isotope/languages/fr/tokens.php deleted file mode 100644 index ef925c0ca2..0000000000 --- a/system/modules/isotope/languages/fr/tokens.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + Sous-total de la commande. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + Commande/Panier en texte. + + + Order/Cart as HTML. + Commande/Panier en HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + ID du mode de paiement. + + + Payment method label. + Libellé du mode de paiement. + + + Payment method note. + + + Shipping method ID. + ID du mode de livraison. + + + Shipping method label. + Libellé du mode de livraison. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/default.php b/system/modules/isotope/languages/it/default.php deleted file mode 100644 index 21caa690fe..0000000000 --- a/system/modules/isotope/languages/it/default.php +++ /dev/null @@ -1,141 +0,0 @@ -Da %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Visualizzare i dettagli'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Prodotti per pagina'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Parole chiave'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Inviare'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Cancellare i filtri'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Aggiornamento'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Aggiungere al carello'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Ordina per:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Nessun prodotto trovato.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Indietro'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Continuare'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Ordine'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Nessuna categoria è associata a questo prodotto.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Inviare'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Togliere'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Non ci sono prodotti nel suo carrello.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Togliere %s dal carrello.'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Subtotale ordine:'; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Spedizione'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Pagamento'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Totale Ordine:'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'Nessun opzione di pagamento è disponibile al momento.'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'Nessun opzione di spedizione è disponibile al momento.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Nessun ordine per email trovato.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Nessun ordine trovato.'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Carrello Spesa'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Procede al Checkout'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Continuare ad acquistare'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Aggiornare il carrello'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Stato Ordine: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Indietro al passo "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Creare un nuovo indirizzo'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Usare l\'indirizzo di fatturazione'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Usare l\'indirizzo del cliente'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Indirizzo di spedizione diverso'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Modificare'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Cancellare'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Fattura'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Stato'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Data dell\'ordine'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Descrizione'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Quantità'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Prezzo'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Totale'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'dal basso all\'alto'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'dall\'alto al basso'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'dalla A alla Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'dalla Z alla A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'dal meno recente all\'ultimo'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'dall\'ultimo al meno recente'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Il pagamento viene processato'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Paga ora'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 prodotto'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s prodotti'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Indirizzo'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Spedizione'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Pagamento'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Recensione'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Indirizzo Fattura'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Indirizzo Spedizione'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Cambio'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Numero carta di credito'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Caricamento prodotti...'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'Nessun file in questa cartella'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minuti'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Ore'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Giorni'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Settimane'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Mesi'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Anni'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Benvenuto su Isotope eCommerce'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_document']['standard'][0] = 'Standard'; -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['enroute'] = 'EnRoute'; -$GLOBALS['TL_LANG']['CCT']['carte_blanche'] = 'Carte Blanche'; -$GLOBALS['TL_LANG']['CCT']['jal'] = 'JAL'; -$GLOBALS['TL_LANG']['CCT']['maestro'] = 'Maestro UK'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['solo'] = 'Solo'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['CCT']['dankort'] = 'Dankort'; -$GLOBALS['TL_LANG']['CCT']['laser'] = 'Laser'; -$GLOBALS['TL_LANG']['CCT']['carte_bleue'] = 'Carte Bleue'; -$GLOBALS['TL_LANG']['CCT']['carta_si'] = 'Carta Si'; -$GLOBALS['TL_LANG']['CCT']['maestro_intl'] = 'Maestro International'; -$GLOBALS['TL_LANG']['CCT']['ge_money_uk'] = 'GE Money UK'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Download'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['CHF'] = 'Fr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['DKK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['NOK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['SEK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; diff --git a/system/modules/isotope/languages/it/default.xlf b/system/modules/isotope/languages/it/default.xlf new file mode 100644 index 0000000000..84b23945c4 --- /dev/null +++ b/system/modules/isotope/languages/it/default.xlf @@ -0,0 +1,1445 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Questo nome è riservato per l'uso del sistema. Si prega di scegliere un nome diverso. + + + No store configuration available + Configurazione negozio non disponibile. + + + Please create a default store configuration. + Si prega di creare una configurazione preimpostata del negozio. + + + You have not yet placed any orders. + Non ha ancora fatto nessun ordine. + + + The requested order was not found. + L'ordine richiesto non è stato trovato. + + + You must be logged in to checkout. + Deve essere autenticato per procedere al checkout. + + + A variant with this attributes is already available. Please select another combination. + Una variante con questi attributi è già disponibile. Si prega di scegliere una combinazione diversa. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Si prega di inserire numeri interi o decimali con il segno + o - e facoltativamente con una percentuale. + + + Please enter whole numbers or decimals optionally with a percentage. + Si prega di inserire numeri interi o decimali, facoltativamente con una percentuale. + + + Checkout failed. Please try again or choose another payment method. + Checkout fallito. Si prega di riprovare o di scegliere un altro metodo di pagamento. + + + You have no address book entries. + La sua rubrica è vuota. + + + The minimum order amount is %s. Please add more products before checkout. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + + + This image has already been assigned to the fallback language. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + La cartella selezionata è vuota. + + + User checkout not allowed + + + This product is no longer available. + Questo prodotto non è più disponibile. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + + + Groups + Gruppi + + + Pages + Pagine + + + Back to the group picker + + + Show all groups + + + There are no variants for this product. + Nessuna versione di prodotto trovata. + + + Duplicate Fallback + Duplica la lingua preimpostata + + + Order no %s / %s + Ordine no %s / %s + + + Your payment is being processed. Please be patient... + Stiamo processando il suo pagamento. Si prega di avere un attimo di pazienza... + + + No files uploaded. + Nessun file caricato. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + + + Upload files + + + Processing dropped files... + + + Some records could not be deleted. + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + Quantità + + + Tax-free + + + search products + cercare prodotti + + + Your downloadable products + I suoi prodotti scaricabili + + + <span class="from">From</span> %s + <span class="from">Da</span> %s + + + View Details + Visualizzare i dettagli + + + Reorder + + + Products Per Page + Prodotti per pagina + + + Keywords + Parole chiave + + + Submit + Inviare + + + Clear Filters + Cancellare i filtri + + + Update + Aggiornamento + + + Add To Cart + Aggiungere al carello + + + Add All To Cart + + + Update Cart + Aggiornare il carrello + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Ordina per: + + + No products have been found. + Nessun prodotto trovato. + + + Back + Indietro + + + Continue + Continuare + + + Order + Ordine + + + No categories are associated with this product. + Nessuna categoria è associata a questo prodotto. + + + Submit + Inviare + + + There are no items in your favorites list. + + + There are no items in your cart. + Non ci sono prodotti nel suo carrello. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + + + The products from your last visit have been readded. Please review your shopping cart items. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Modificare + + + Remove + Togliere + + + Remove %s from your cart + Togliere %s dal carrello. + + + Order Subtotal: + Subtotale ordine: + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Totale Ordine: + + + No payment options are currently available + Nessun opzione di pagamento è disponibile al momento. + + + No shipping options are currently available. + Nessun opzione di spedizione è disponibile al momento. + + + No orders emails found. + Nessun ordine per email trovato. + + + No orders found. + Nessun ordine trovato. + + + <br />%s downloads remaining + + + Shopping Cart + Carrello Spesa + + + Proceed to Checkout + Procede al Checkout + + + Continue shopping + Continuare ad acquistare + + + Update Cart + Aggiornare il carrello + + + Order Status: %s + Stato Ordine: %s + + + Go back to step "%s" + Indietro al passo "%s" + + + Create New Address + Creare un nuovo indirizzo + + + Use billing address + Usare l'indirizzo di fatturazione + + + Use customer address + Usare l'indirizzo del cliente + + + Different shipping address + Indirizzo di spedizione diverso + + + Edit + Modificare + + + Delete + Cancellare + + + Do you really want to delete this address? This cannot be undone. + + + Invoice + Fattura + + + Status + Stato + + + Order date + Data dell'ordine + + + Order number + + + Description + Descrizione + + + Quantity + Quantità + + + Price + Prezzo + + + Total + Totale + + + lo to hi + dal basso all'alto + + + hi to lo + dall'alto al basso + + + A to Z + dalla A alla Z + + + Z to A + dalla Z alla A + + + earlier to later + dal meno recente all'ultimo + + + later to earlier + dall'ultimo al meno recente + + + Processing payment + Il pagamento viene processato + + + You will be redirected to the payment gateway website. + + + Pay now + Paga ora + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + + + 1 Product + 1 prodotto + + + %s Products + %s prodotti + + + Enter your shipping information or select an existing address. + + + Enter your billing information or select an existing address. + + + Enter your billing information + + + Enter your customer information or select an existing address. + + + Enter your customer information + + + Select a shipping method. + + + Please select a shipping method. + + + Enter your payment information. + + + Please select a payment method. + + + Review and confirm your order details. + + + Address + Indirizzo + + + Shipping + Spedizione + + + Payment + Pagamento + + + Review + Recensione + + + Billing Address + Indirizzo Fattura + + + Shipping Address + Indirizzo Spedizione + + + Billing & Shipping Address + + + Customer Address + + + Shipping Method + + + Payment Method + + + Order Review + + + Change + Cambio + + + Credit card number + Numero carta di credito + + + Credit card type + + + CCV number (3 or 4 digit code) + + + Expiration month + + + Expiration year + + + Payment module not found! + + + Shipping module not found! + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + + + active step: + + + Loading products... + Caricamento prodotti... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + Nessun file in questa cartella + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + + + Minutes + Minuti + + + Hours + Ore + + + Days + Giorni + + + Weeks + Settimane + + + Months + Mesi + + + Years + Anni + + + Introduction + + + Welcome to Isotope eCommerce + Benvenuto su Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Discover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + EnRoute + + + Carte Blanche + Carte Blanche + + + JAL + JAL + + + Maestro UK + Maestro UK + + + Delta + Delta + + + Solo + Solo + + + Visa Electron + Visa Electron + + + Dankort + Dankort + + + Laser + Laser + + + Carte Bleue + Carte Bleue + + + Carta Si + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + Maestro International + + + GE Money UK + GE Money UK + + + Text field + + + A single-line input field for a short or medium text. + + + Textarea + + + A multi-line input field for a medium or long text. + + + Select menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + Download + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/exception.php b/system/modules/isotope/languages/it/exception.php deleted file mode 100644 index 630d4a4863..0000000000 --- a/system/modules/isotope/languages/it/exception.php +++ /dev/null @@ -1,23 +0,0 @@ -Prego considera la tua partecipazione'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldFix3'] = 'Ottieni uno sviluppatore Contao esperto per migrare manualmente i dati. Ti suggeriamo di dare uno sguardo a
la lista partner Contao .'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldExplain'] = 'Visita il nostro sito web per maggiori informazioni riguardo Isotope eCommerce.'; diff --git a/system/modules/isotope/languages/it/exception.xlf b/system/modules/isotope/languages/it/exception.xlf new file mode 100644 index 0000000000..7111f05634 --- /dev/null +++ b/system/modules/isotope/languages/it/exception.xlf @@ -0,0 +1,34 @@ + + + + + Isotope eCommerce - data loss protection + Isotope eCommerce - protezione contro la perdita dei dati + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + Una versione datata di Isotope eCommerce è stata rilevata sulla tua istallazione. + + + There are multiple options to get your installation back: + Ci sono diverse opzioni per ottenere l'istallazione precedente. + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + Crea un backup, poi disinstalla completamente Isotope e rimuovi tutte le tabelle di database e le relative estensioni. Successivamente puoi installare di nuovo Isotope eCommerce 2.0. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + Stiamo attualmente gestendo una raccolta fondi per sviluppare uno strumento aggiornato. Maggiore è il numero di persone che aiutano, prima sarà possibile aggiornare la tua vecchia istallazione. <a href="http://isotopeecommerce.com/en/" target="_blank">Prego considera la tua partecipazione + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + Ottieni uno sviluppatore Contao esperto per migrare manualmente i dati. Ti suggeriamo di dare uno sguardo a <a href="http://contao.org/en/" target="_blank"> la lista partner Contao </a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + <a href="http://isotopeecommerce.org/" target="_blank">Visita il nostro sito web</a> per maggiori informazioni riguardo Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/explain.php b/system/modules/isotope/languages/it/explain.php deleted file mode 100644 index 601dc3c49a..0000000000 --- a/system/modules/isotope/languages/it/explain.php +++ /dev/null @@ -1,18 +0,0 @@ -\nA differenza di qualsiasi altro modulo Contao, un utente non viene reindirizzato alla pagina di lettura quando si visualizzano i dettagli del prodotto. Per risolvere il problema di bei alias e per conoscere la pagina di dettaglio di un prodotto, siamo arrivati ​​a una nuova soluzione.
\n
\nLa pagina di lettore (alias) sarà sempre la stessa pagina da voi selezionato come categoria per il prodotto. Ci sono due opzioni per visualizzare i dettagli di un prodotto:
\n
\nOpzione 1:
\nNon impostare una pagina lettore nella struttura del sito. Posizionare la lista e modulo lettore sulla stessa pagina. Dite al modulo elenco di nascondersi se viene trovato un alias di prodotto (c'è una casella di controllo nelle impostazioni del modulo). Il lettore sarà automaticamente visibile se non viene trovato nessun lettore.
\nVantaggio:Semplice da settare
\nSvantaggio: Il layout del lettore e della lista sarà identico, e non si può avere un contenuto articolo diverso per i due casi.
\n
\nOpzione 2:
\nImpostare una pagina lettore per ogni pagina dell'elenco (categoria prodotto) nella struttura del sito. Essere consapevoli del fatto che l'impostazione del lettore non viene ereditata! aggiungere il modulo di lettura a questa pagina, come al solito.
\nIsotope ora userà questa pagina per generare il sito se un alias prodotto è trovato nell'URL. L'alias sarà ancora quello della pagina di elenco però.
\nVantaggio: Si possono avere contenuti pagina e il layout diversi (ad esempio diverse colonne) per la pagina lettore poi la pagina di elenco.
\nSvantaggio: È NECESSARIO impostare una pagina lettore per ogni pagina di elenco (categoria) che avete. L'impostazione non è ereditata.\n

"; -$GLOBALS['TL_LANG']['XPL']['mediaManager'] = '

Per caricare una nuova immagine selezioni il file e salvi il prodotto. Dopo aver caricato con successo, viene visualizzata un\'anteprima del messaggio e vicino ad essa puo\' inserire il testo alternativo e una descrizione. Per immagini multipli, puo\' fare click sulle frecce e cambiare la loro posizione, l\'immagine in cima è quella usata come immagine principale per ogni prodotto.

'; diff --git a/system/modules/isotope/languages/it/explain.xlf b/system/modules/isotope/languages/it/explain.xlf new file mode 100644 index 0000000000..1426d86828 --- /dev/null +++ b/system/modules/isotope/languages/it/explain.xlf @@ -0,0 +1,52 @@ + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + +<p class="tl_help_table"> +A differenza di qualsiasi altro modulo Contao, un utente non viene reindirizzato alla pagina di lettura quando si visualizzano i dettagli del prodotto. Per risolvere il problema di bei alias e per conoscere la pagina di dettaglio di un prodotto, siamo arrivati ​​a una nuova soluzione.<br> +<br> +La pagina di lettore (alias) sarà sempre la stessa pagina da voi selezionato come categoria per il prodotto. Ci sono due opzioni per visualizzare i dettagli di un prodotto:<br> +<br> +<strong>Opzione 1:</strong><br> +Non impostare una pagina lettore nella struttura del sito. Posizionare la lista e modulo lettore sulla stessa pagina. Dite al modulo elenco di nascondersi se viene trovato un alias di prodotto (c'è una casella di controllo nelle impostazioni del modulo). Il lettore sarà automaticamente visibile se non viene trovato nessun lettore.<br> +<u>Vantaggio:</u>Semplice da settare<br> +<u>Svantaggio:</u> Il layout del lettore e della lista sarà identico, e non si può avere un contenuto articolo diverso per i due casi.<br> +<br> +<strong>Opzione 2:</strong><br> +Impostare una pagina lettore per ogni pagina dell'elenco (categoria prodotto) nella struttura del sito. <i> Essere consapevoli del fatto che l'impostazione del lettore non viene ereditata!</ i> aggiungere il modulo di lettura a questa pagina, come al solito.<br> +Isotope ora userà questa pagina per generare il sito se un alias prodotto è trovato nell'URL. L'alias sarà ancora quello della pagina di elenco però.<br> +<u>Vantaggio:</u> Si possono avere contenuti pagina e il layout diversi (ad esempio diverse colonne) per la pagina lettore poi la pagina di elenco.<br> +<u>Svantaggio:</u> È NECESSARIO impostare una pagina lettore per ogni pagina di elenco (categoria) che avete. L'impostazione non è ereditata. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + <p class="tl_help_table">Per caricare una nuova immagine selezioni il file e salvi il prodotto. Dopo aver caricato con successo, viene visualizzata un'anteprima del messaggio e vicino ad essa puo' inserire il testo alternativo e una descrizione. Per immagini multipli, puo' fare click sulle frecce e cambiare la loro posizione, l'immagine in cima è quella usata come immagine principale per ogni prodotto.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/iso_upgrade.php b/system/modules/isotope/languages/it/iso_upgrade.php deleted file mode 100644 index 19a366a305..0000000000 --- a/system/modules/isotope/languages/it/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Aggiornamento + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/modules.php b/system/modules/isotope/languages/it/modules.php deleted file mode 100644 index 49da087958..0000000000 --- a/system/modules/isotope/languages/it/modules.php +++ /dev/null @@ -1,83 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Gestione prodotti + + + Manage products for your Isotope eCommerce shop + Gestisci prodotti per il tuo negozio Isotope eCommerce + + + Orders + Ordini + + + See and manage orders for your shop + Guarda e gestisci gli ordini per il tuo negozio + + + Store configuration + Configurazione negozio + + + Setup and configure Isotope eCommerce to your needs + Installa e configura Isotope eCommerce per i tuoi bisogni + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Filtro Prodotti + + + Define individual filters for Isotope such as category trees and product attribute filters. + Definisca filtri individuali per Isotope come categorie ad albero e filtri basati sugli attributi dei prodotti. + + + Cumulative Filter + Filtro Cumulativo + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Fornisce un filtro cumulativo così i visitatori possono ridurre la scelta dei prodotti cliccando su condizioni multiple. + + + Product List + Elenco Prodotti + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Modulo Elenco Generale. Puo' essere usato per elencare prodotti o valori di attributi. Puo' anche essere messo in combinazione con altri moduli (ad es. Modulo Filtro) per fornire ulteriori capacità. + + + Product Variant List + Elenco Versioni Prodotto + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Elenca ogni versione prodotto. Si assicuri di usare la template iso_list_variants + + + Product Reader + Lettore Prodotti + + + Product reader module. This is used to display product details. + Modulo lettore prodotti. Questo modulo è utilizzato per mostrare i dettagli di un prodotto. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Carrello Spesa + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + Un modulo carrello spesa completo. Box oppure Full Display possono essere impostate attraverso la selezione di template. + + + Checkout + Checkout + + + Allow store customers to complete their transactions. + Permetti ai clienti di completare le loro transazioni. + + + Address Book + Rubrica + + + Allow customers to manage their address book. + Permetti ai clienti di gestira la propria rubrica + + + Order History + Storico Ordini + + + Order lister that allows customers to view their order history + Elenco ordini che permette ai clienti di visualizzare il loro storico ordini + + + Order Details + Dettagli Ordine + + + Order reader that allows customers to view order history details + Lettore ordini che permette ai clienti di visualizzare il loro storico ordini + + + Store Config Switcher + Cambio Configurazione Negozio + + + Switch between store configuration to change currency and other settings. + Cambio tra due configurazioni di negozio per scegliere una valuta diversa e altre impostazioni. + + + Related products + Prodotti correlati + + + List products related to the current one. + Elenco dei prodotti correlati al presente. + + + Messages + Messaggi + + + Displays all Isotope messages if they have not been displayed elsewhere. + Visualizza tutti i messaggi Isotope se non sono stati visualizzati altrove. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + Configurazione Isotope eCommerce (Versione: %s) + + + Products + Prodotti + + + Attributes + Attributi + + + Manage and create product attributes such as size, color, etc. + Gestisca e crei attributi prodotto come misura, colore, ecc. + + + Product types + Tipi prodotto + + + Manage and create product types from sets of attributes. + Gestisca e crei tipi di prodotti da insieme di attributi. + + + Related categories + Categorie correlate + + + Define categories for product relations. + Definisca le categorie in base a relazioni prodotto. + + + Galleries + Gallerie + + + Define how you want the images in your product to be rendered. + Definire come si desidera che le immagini del prodotto siano presentate. + + + Base prices + Prezzi base + + + Define base price. + Definisci prezzi base. + + + Checkout Flow + Flusso Checkout + + + Shipping methods + Metodi di spedizione + + + Set up shipping methods. + Imposti lo spedizioniere ad esempio UPS, USPS, DHL, etc. + + + Payment methods + Metodi di pagamento + + + Set up payment methods. + Imposti un Metodo di Pagamento come Authorize.net, PayPal Pro, e altro. + + + Tax classes + Classe imposta + + + Set up Tax classes, which contain sets of Tax rates. + Imposti la classe di tassazione che contiene l'insieme delle aliquote d'imposta + + + Tax rates + Aliquota d'imposta + + + Set up tax rates based on things like shipping/billing location and order total. + Imposti le aliquote di imposta in base alla desitnazione di spedizione/fattura e ordine totale. + + + General settings + Impostazioni generali + + + Store configurations + Configurazioni negozio + + + Configure general settings for this store. + Configura le impostazioni generali per questo negozio. + + + Order status + Stato ordine + + + Define order status. + Definisci stato ordine. + + + Notifications + Notifiche + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + Usa il Centro Notifiche per gestire le email etc. per Isotope eCommerce. + + + Documents + Documenti + + + Define documents. + Definire i documenti. + + + Miscellaneous + Varie + + + Translations + Traduzioni + + + Replace given labels for certain languages. + Sostituire etichette fornite per alcune lingue. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/subdivisions.php b/system/modules/isotope/languages/it/subdivisions.php deleted file mode 100644 index c6b72b9814..0000000000 --- a/system/modules/isotope/languages/it/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + Etichetta + + + Please enter a custom label for this address. + + + Gender + + + Please choose the gender. + + + Salutation + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + + + First name + Nome + + + Please enter the first name. + Per cortesia inserisca il nome + + + Last name + Cognome + + + Please enter the last name. + Per cortesia inserisca il cognome + + + Date of birth + + + Please enter the date of birth. + + + Company + Ditta + + + You can enter a company name here. + Può inserire il nome della ditta qui. + + + VAT No. + + + Please enter a VAT number. + + + Street + Via + + + Please enter the street name and the street number. + Per cortesia inserisca il nome e il numero della via. + + + Street 2 + Via 2 + + + Enter a second street info if there's any. + Inserisca una seconda informazione per la via se necessario. + + + Street 3 + Via 3 + + + Enter a third street info if there's any. + Inserisca una terza informazione per la via se necessario. + + + Postal code + CAP + + + Please enter the postal code. + Per cortesia inserisca il CAP + + + City + Città + + + Please enter the name of the city. + + + State + Stato/Provincia + + + Please enter the name of the state. + + + Country + Paese + + + Please select a country. + Per cortesia scelga un paese. + + + Phone number + Numero di telefono + + + Please enter the phone number. + Per cortesia inserisca il numero di telefono. + + + E-mail address + Indirizzo e-mail + + + Please enter a valid e-mail address. + Per cortesia inserisca un indirizzo di mail valido. + + + Default billing address + Indirizzo Fattura Principale + + + Is this your default billing address? + E' questo il suo indirizzo di fatturazione principale? + + + Default shipping address + Indirizzo Spedizione di Base + + + Is this your default shipping address? + E' questo il suo indirizzo di spedizione principale? + + + Store + + + Personal data + Dati personali + + + Address details + Dettagli indirizzo + + + Contact details + Dettagli contatti + + + Default address + Indirizzo di base + + + Personal data + Dati personali + + + Address details + Dettagli indirizzo + + + Contact details + Dettagli contatti + + + Default address + Indirizzo di base + + + New address + Nuovo indirizzo + + + Create a new address + Crea un nuovo indirizzo + + + Edit address + Modifica indirizzo + + + Edit address ID %s + Modiica l'indirizzo ID %s + + + Duplicate address + Duplica indirizzo + + + Duplicate address ID %s + Duplica indirizzo ID %s + + + Delete address + Cancella indirizzo + + + Delete address ID %s + Cancella indirizzo ID %s + + + Address details + Dettagli indirizzo + + + Show details of address ID %s + Mostra i dettagli dell'indirizzo ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_attribute.php b/system/modules/isotope/languages/it/tl_iso_attribute.php deleted file mode 100644 index d3c941a203..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_attribute.php +++ /dev/null @@ -1,108 +0,0 @@ -Esempio: -10%, -10, +10, +10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][0] = 'Sovrattassa'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][1] = 'Verifica se l\'input è una sofrattassa valida.
Esempio: 10.00, 10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][0] = 'Nuovo Attributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][1] = 'Crea un nuovo attributo.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][0] = 'Modifica Attributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][1] = 'Modifica attributo ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][0] = 'Copia Attributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][1] = 'Copia attributo ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][0] = 'Cancella Attributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][1] = 'Cancella attributo ID %s. La colonna nel database non è stata cancellata, devi aggiornare il database manualmente usando il tool di installazione o il repository manager.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][0] = 'Mostra Dettagli Attributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][1] = 'Mostra i dettagli per l\'attributo ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['deleteConfirm'] = 'Vuole veramente cancellare l\'attributo ID %s. La colonna nel database non è stata cancellata, devi aggiornare il database manualmente usando il tool di installazione o il repository manager.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['attribute_legend'] = 'Attributo nome & tipo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['description_legend'] = 'Descrizione'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['options_legend'] = 'Opzioni'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['config_legend'] = 'Configurazione attributo'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['search_filters_legend'] = 'Impostazioni Cerca & Filtra'; diff --git a/system/modules/isotope/languages/it/tl_iso_attribute.xlf b/system/modules/isotope/languages/it/tl_iso_attribute.xlf new file mode 100644 index 0000000000..ee63be32fc --- /dev/null +++ b/system/modules/isotope/languages/it/tl_iso_attribute.xlf @@ -0,0 +1,637 @@ + + + + + Name + Nome + + + Please enter a name for this attribute. + Per cortesia inserisca un nome per questo attributo. + + + Internal name + Nome interno + + + Internal name is the database field name and must be unique. + Il nome interno è il nome campo nel database e deve essere unico. + + + Type + Tipo + + + Please select a type for this attribute. + Per cortesia selezioni un tipo per questo attributo. + + + Field Group + Grupo Campo + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + Selezioni un gruppo campo al quale questo attributo è relazionato (utilizzato per organizzare i campi relazionati in gruppi campo collassabili quando si modiricano i prodotti. + + + Add to product variants wizard + Aggiungi un wizard versioni prodotto. + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + Se selezionato, questo attributo sarà aggiunto al wizard versioni prodotto da usare come un'opzione versione prodotto. + + + Defined by customer + Definito dal Cliente + + + Please select if this value defined by the customer (frontend). + Per cortesia selezioni se questo valore è definito dal cliente (frontend). + + + Description + Descrizione + + + The description is shown as a hint to the backend user. + La descrizione è mostrata come suggerimento per l'utilizzatore backend. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + Prodotto + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + Opzioni + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + Per cortesia inserisca una o più opzioni. Usi i pulsatni per aggiungere, spostare o cancellare un'opzione. Se non ha il JavaScript abilitato, dovrebbe salvare i cambiamenti prima di modificare l'ordine! + + + Value + Valore + + + Label + Etichetta + + + Default + Preimpostato + + + Group + Gruppo + + + Options + Opzioni + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + Campo obligatorio + + + The field must be filled when editing a product. + Il prodotto non sarà aggiunto al carrello se il campo è vuoto. + + + Multiple selection + Selezione multipla + + + Allow visitors to select more than one option. + Permetta ai visitatori di selezionare più di un'opzione + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + Tipi file permessi. + + + A comma separated list of valid file extensions. + Un elenco di estensioni valide separate da virgola + + + Use HTML editor + Usi l'editor HTML + + + Select a tinyMCE configuration file to enable the rich text editor. + Selezioni una configurazione tinyMCE per abilitare il text editore avanzato. + + + Multilingual + Multilingua + + + Check here if this field should be translated. + Spunti qui se questo campo deve essere tradotto. + + + Input validation + Validazione imput + + + Validate the input against a regular expression. + Validare l'imput con un'espressione regolare. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + Lunghezza massima + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + Limiti la lunghezza del campo a un certo numero di caratteri (testo) o byte (caricamenti file) + + + Foreign table & field + Tabella & Campo Esterni + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + Invece di aggiungere opzioni può inserire una combinazione campo.tablella per selezionare dal database. + + + Parent field + Campo genitore + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + Per cortesia selezioni il campo genitore, chq deve essere del tipo "Menu-Selezione". Per far funzionare le relazioni genitore-figlio, defenisca ogni opzione in questo campo genitore come gruppo del menu selezione condizionale. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + Aggiungi all'elenco l'opzione "Ordina per" + + + This field will be sortable in the listing module provided the attribute is visible to customers. + Questo campo sarà ordinabile nel modulo elenco a patto che l'attributo sia visibile ai clienti. + + + Backend filterable + Backend Filtrabile + + + Can this attribute be used in a backend filter? + Può questo attributo essere utilizzato in un filtro backend? + + + Backend searchable + Ricercabile Backend + + + Should the field be available in the backend search? + + + Frontend filterable + Frontend Filtrabile + + + Can this attribute be used in a frontend filter? + Può questo attributo essere usato in un filtro frontend? + + + Frontend searchable + Frontend Ricercabile + + + Should the search engine look in this field for search terms? + Questo motore di ricerca deve usare questo campo per i termini di ricerca? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + Caratteri numerici + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + Permette caratteri numerici, minus (-), punto (.) e spazio (). + + + Alphabetic characters + Caratteri alfabetici + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + Permette caratteri alfabetici, minus (-), punto (.) e spazio (). + + + Alphanumeric characters + Caratteri alfanumerici + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + Permette caratteri alfabetici e numerici, minus (-), punto (.), trattino basso (_) e spazio (). + + + Extended alphanumeric characters + Caratteri alfanumerici estesi + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + Data + + + Checks whether the input matches the global date format. + Verifica se l'input corrisponde al formato data globale. + + + Time + Ora + + + Checks whether the input matches the global time format. + Verifica se l'input corrisponde al formato ora globale. + + + Date and time + Data e ora + + + Checks whether the input matches the global date and time format. + Verifica se l'input corrisponde al formato data e ora globale. + + + Phone number + Numero di telefono + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + Permette caratteri numerici, (+), minus (-), slash (/), parentesi () e spazio (). + + + E-mail address + Indirizzo e-mail + + + Checks whether the input is a valid e-mail address. + Verifichi se l'input è un indirizzo di mail valido. + + + URL format + Formato URL + + + Checks whether the input is a valid URL. + Verifica se l'input è un campo valido URL + + + Price + Prezzo + + + Checks whether the input is a valid price. + Verifica se l'input è un prezzo valido. + + + Discount + Sconto + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + Verifica se l'input è uno scondo valido. <br />Esempio: -10%, -10, +10, +10% + + + Surcharge + Sovrattassa + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + Verifica se l'input è una sofrattassa valida. <br />Esempio: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + Nuovo Attributo + + + Create a new attribute. + Crea un nuovo attributo. + + + Edit attribute + Modifica Attributo + + + Edit attribute ID %s. + Modifica attributo ID %s. + + + Copy attribute + Copia Attributo + + + Copy attribute ID %s. + Copia attributo ID %s. + + + Delete attribute + Cancella Attributo + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Cancella attributo ID %s. La colonna nel database non è stata cancellata, devi aggiornare il database manualmente usando il tool di installazione o il repository manager. + + + Attribute details + Mostra Dettagli Attributo + + + Show details for attribute ID %s. + Mostra i dettagli per l'attributo ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Vuole veramente cancellare l'attributo ID %s. La colonna nel database non è stata cancellata, devi aggiornare il database manualmente usando il tool di installazione o il repository manager. + + + Attribute name & type + Attributo nome & tipo + + + Description + Descrizione + + + Options + Opzioni + + + Attribute configuration + Configurazione attributo + + + Search & Filtering Settings + Impostazioni Cerca & Filtra + + + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_attribute_option.php b/system/modules/isotope/languages/it/tl_iso_attribute_option.php deleted file mode 100644 index eb51d3993f..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_attribute_option.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Type + Tipo + + + Select a type for this label. + + + Option + + + Group + Gruppo + + + Default + Preimpostato + + + Check here if this should be the default option. + + + Label + Etichetta + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Prezzo + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + Pubblicazione + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_baseprice.php b/system/modules/isotope/languages/it/tl_iso_baseprice.php deleted file mode 100644 index e91d1af8a6..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_baseprice.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Nome + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + Etichetta + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_config.php b/system/modules/isotope/languages/it/tl_iso_config.php deleted file mode 100644 index 44aec8de41..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_config.php +++ /dev/null @@ -1,44 +0,0 @@ - + + + + Configuration Name + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + Etichetta + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + Nome + + + Please enter the first name (if applicable). + + + Last name + Cognome + + + Please enter the last name (if applicable). + + + Company + Ditta + + + You can enter a company name here (if applicable). + + + VAT No. + + + Please enter a VAT number. + + + Street + Via + + + Please enter the street name and the street number. + Per cortesia inserisca il nome e il numero della via. + + + Street 2 + Via 2 + + + Enter a second street info if there's any. + Inserisca una seconda informazione per la via se necessario. + + + Street 3 + Via 3 + + + Enter a third street info if there's any. + Inserisca una terza informazione per la via se necessario. + + + Postal code + CAP + + + Please enter the postal code. + Per cortesia inserisca il CAP + + + City + Città + + + Please enter the name of the city. + + + State + Stato/Provincia + + + Please enter the name of the state. + + + Country + Paese + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + Numero di telefono + + + Please enter the phone number. + Per cortesia inserisca il numero di telefono. + + + Shipping email address + + + Please enter a valid e-mail address. + Per cortesia inserisca un indirizzo di mail valido. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + Valuta + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + Stato nuovi ordini + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + Subtotale minimo + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + Nome + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + Nome + + + Address configuration + + + Configuration + Configurazione + + + Checkout + Checkout + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + Ordini + + + Images + Immagini + + + URL settings + + + Products + Prodotti + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_document.php b/system/modules/isotope/languages/it/tl_iso_document.php deleted file mode 100644 index 4678f34e9f..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_document.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + Logo + + + Select a logo. + Seleziona un logo. + + + Document title + Titolo documento. + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + Titolo file + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + Galleria + + + Select a gallery to render images. + Seleziona una galleria per renderizzare immagini. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + Ordinamento + + + Define in what order the collection items should be listed. + Definisci in quale ordine gli elementi della raccolta dovrebbero essere elencati. + + + New document + Nuovo documento + + + Create a new document + Crea un nuovo documento + + + Edit document + Modifica documento + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + Configurazione Generale + + + Template + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_download.php b/system/modules/isotope/languages/it/tl_iso_download.php deleted file mode 100644 index 19cc7ce097..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_download.php +++ /dev/null @@ -1,36 +0,0 @@ - + + + + Attachement + Allegato + + + Select the file or folder content you want to sell. + Selezioni il file che vuole vendere. + + + Downloads allowed + Download permessi + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + Il numero di volte che questo file può essere messo in download moltiplicato l'ordine (moltiplicato per la quantità venduta). Inserisca 0 per numero illimitato di download + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + Aggiungi download + + + Add a new download to this product + Aggiungi un nuovo download per questo prodotto + + + Edit download + Modifica download + + + Edit download ID %s + Modifica download %s + + + Duplicate download + Duplica download + + + Duplicate download ID %s + Duplica download %S + + + Move download + + + Move download ID %s + + + Delete download + Cancella download + + + Delete download ID %s + Cancella download %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + Dettagli download + + + Show details of download ID %s + Mostra i dettagli del download ID %s + + + Edit product + Modifica prodotto + + + Edit this product + Modifica questo prodotto + + + Paste at the top + Incolla in alto + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + Allegato + + + Limits + Limiti + + + Publishing + Pubblicazione + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_gallery.php b/system/modules/isotope/languages/it/tl_iso_gallery.php deleted file mode 100644 index 87ff7028b2..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_gallery.php +++ /dev/null @@ -1,24 +0,0 @@ - + + + + Name + Nome + + + Enter a name for this gallery. + + + Type + Tipo + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + Nuova galleria + + + Create a new gallery + Crea una nuova galleria + + + Edit gallery + Modifica galleria + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + Elimina galleria + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + Nome & Tipo + + + Image sizes + + + Configuration + Configurazione + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_group.php b/system/modules/isotope/languages/it/tl_iso_group.php deleted file mode 100644 index 9c1ca14d39..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_group.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_integrity.php b/system/modules/isotope/languages/it/tl_iso_integrity.php deleted file mode 100644 index 9c1ca14d39..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_label.php b/system/modules/isotope/languages/it/tl_iso_label.php deleted file mode 100644 index 4cdc2b6d45..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_label.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Language + Lingua + + + Please select a language. + Per cortesia selezioni una lingua. + + + Label + Etichetta + + + Enter the source label. + Inserisca l'etichetta sorgente. + + + Replacement + Sostituzione + + + Enter the replacement in the specified language. + Inserisca la sostituzione nella lingua specificata. + + + New label + Nuova etichetta + + + Create a new label + Crei una nuova etichetat + + + Edit label + Modifica etichetta + + + Edit label ID %s + Modifica etichetta ID %s + + + Duplicate label + Duplica etichetta + + + Duplicate label ID %s + Duplica etichetta ID %s + + + Delete label + Cancella etichetta + + + Delete label ID %s + Cancella etichetta ID %s + + + Label details + Dettagli etichetta + + + Show details of label ID %s + Mostra i dettagli etichetta ID %s + + + Label translation + Traduzione etichetta + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_orderstatus.php b/system/modules/isotope/languages/it/tl_iso_orderstatus.php deleted file mode 100644 index c9da0b8c8a..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_orderstatus.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + Nome + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + Notifica + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + Nome + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_payment.php b/system/modules/isotope/languages/it/tl_iso_payment.php deleted file mode 100644 index 9eebf2bd84..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_payment.php +++ /dev/null @@ -1,91 +0,0 @@ - + + + + Payment Method Name + Nome Metodo di Pagamento + + + Enter a name for this payment method. This will only be used in the backend. + Inserisca un nome per questo metodo di pagamento. Questo sarà utilizzato soltanto nel backend. + + + Payment Method Label + Etichetta Metodo di Pagamento + + + The label will be shown to customers on checkout. + L'etichetta sarà mostrata ai clienti al checkout. + + + Type of Payment Gateway + Gateway Tipo di Pagamento + + + Select a particular payment gateway + Selezioni un gateway di pagamento (ad es. Authorize.net) + + + Payment Note + Nota di Pagamento + + + This note can be sent in confirmation mails (##payment_note##). + Questa nota può essere inviata nella mail di conferma (##payment_note##). + + + Status for new orders + Stato nuovi ordini + + + Choose a matching status for new orders. + Scelga uno stato corrispondente per i nuovi ordini. + + + Minimum total + Totale minimo + + + Enter a number greater zero to exclude this payment method for lower priced orders. + Inserisca un numero maggiore di zero per escludere questo metodo di pagamento per ordini con prezzi bassi. + + + Maximum total + Totale massimo + + + Enter a number greater zero to exclude this payment method for higher priced orders. + Inserisca un numero maggiore di zero per escludere questo metodo di pagamento per ordini con prezzi alti. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + Modalità quantità calcolo + + + Select a calculation mode for min/max quantity. + Selezionare una modalità calcolo per una quantità minima/massima. + + + Total quantity in cart + Quantità totale nel carrello + + + Total products in cart + Prodotti totali nel carrello + + + Available countries + Paesi disponibili + + + Select the countries where this payment method may be used (customer's billing address). + Selezioni i paesi in cui questo metodo di pagamento può essere usato (indirizzo fatturazione del cliente) + + + Shipping methods + Metodi di spedizione + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + Può limitare questo metodo di pagamento a certi metodi di spedizione (es. Contanti alla consegna). + + + Product types + Tipi prodotto + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + Può limitare questo metodo di pagamento a certi tipi di prodotto. Se il carello contiene un tipo di prodotto non selezionato, il modulo di pagamento non sarà disponibile. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Configurazioni negozio + + + You can restrict this payment method to certain shop configurations. + + + Price + Prezzo + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + Classe aliquota + + + Please select a tax class for the price. + + + Transaction type + Tipo transazione + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + Selezioni se vuole avere subito i soldi o autorizzare (e tenere) per una transazione successiva (ad es. alla spedizione). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + Conto PayPal + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + Inserisca il suo conto di paypal (indirizzo di mail). + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + Metodo di pagamento + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + Necessita del Numero di Verifica Codice Card (CCV) + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + Scelga questa opzione se vuole aumentare la sicurezza della transazione chiedendo il numero di verifica dlla card. + + + Allowed Credit Card Types + Tipi Carte di Credito Ammesse + + + Select which credit cards the payment method accepts. + Selezioni quele modulo pagamento carta di credito è accettato. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + Metodo di pagamento + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + Metodi di pagamento + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + Chiave segreta + + + The secret key set up in your ePay configuration. + + + Clearing type + Tipo liquidazione + + + Please choose a clearing type. + Per cortesia scelga un tipo di liquidazione. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + Per cortesia inserisca il suo ID unico per il portale PAYONE + + + Secret key + Chiave segreta + + + Enter the secret key you specified for this portal. + Inserisca la chiave segreta che ha specificato per questo portale. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Descrizione + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Metodi di pagamento + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + Gruppi Membri + + + Restrict this payment method to certain member groups. + Limiti questo metodo di pagamento a certi gruppi membri. + + + Protect payment method + Proteggi modulo + + + Show the payment method to certain member groups only. + Mostri il metodo di pagamento solo ad alcuni gruppi membri. + + + Show to guests only + Mostra solo agli ospiti + + + Hide the payment method if a member is logged in. + Nasconda il metodo di pagamento se un membro è loggato. + + + Debug mode + Modo debug + + + For testing without actually capturing for payment. + Per testare senza eseguire il pagamento. + + + Enabled + Attivato + + + Check here if the payment method should be enabled in the store. + Spunti qui se il modulo pagamento deve essere abilitato nel negozio. + + + New payment method + Nuovo metodo di pagamento + + + Create a new payment method + Crea un nuovo metodo di pagamento + + + Edit payment method + Modifica metodo di pagamento + + + Edit payment method ID %s + Modifica metodo di pagamento ID %s + + + Copy payment method + Copia metodo di pagamento + + + Copy payment method ID %s + Copia metodo di pagamento ID %s + + + Delete payment method + Cancella metodo di pagamento + + + Delete payment method ID %s + Cancella metodo di pagamento ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + Dettagli Metodo di Pagamento + + + Show details of payment method ID %s + Mostra dettagli metodo di pagamento ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + Ordini senza spedizione + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + Fattura + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + Nome & Tipo + + + Additional notes + Note Aggiuntive + + + General configuration + Configurazione Generale + + + Payment gateway configuration + Configurazione Gateway Pagamento + + + Price + Prezzo + + + Template + Template + + + Expert settings + Impostazioni esperto + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_product.php b/system/modules/isotope/languages/it/tl_iso_product.php deleted file mode 100644 index 1945df677c..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_product.php +++ /dev/null @@ -1,86 +0,0 @@ - + + + + Product ID + ID Prodotto + + + Categories + Categorie + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + Selezioni una categoria (le categorie basate sulla pagina traggono il vantaggio delle caratteristiche delle pagine TYPOlight/Contao come navigazione automatica, protezione, template e piena integrazione con gli elementi di amministrazione. + + + Product type + Tipi Prodotto + + + Select your product type. Product types are defined in the store configuration. + I tipi prodotto sono definiti nel Manager Tipi Prodotto + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + Nome + + + Please enter the name of this product. + + + SKU + SKU + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + Peso spedizione + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Per cortesia inserisca il peso di spedizine per questo prodotto. Questo può essere utilizzato per calcolare il costo di spedizione. + + + Teaser + Anteprima + + + Please enter the teaser. + + + Description + Descrizione + + + Please enter the product description. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + Meta descrizione + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + Meta parole + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + Prezzo + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + Esenzione da spedizione + + + Check if item is not a shipped item (such as downloadable products). + Verifichi se il prodotto è un prodotto non spedibile (ad esempio prodotti scaricabili). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + Immagini + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + Mostra solo agli ospiti + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + Pubblica prodotto + + + Click here to show this product on your website. + Click qui per mostrare questo prodotto sul suo sito web. + + + Start date + Data inizio + + + Do not show this product before the date specified. + Non mostrare questo prodotto prima della data specificata. + + + Stop date + Data fine + + + Do not show this product after the date specified. + Non mostrare questo prodotto dopo la data specificata. + + + Inherited attributes + Attributi ereditati + + + Check the fields you want to inherit from base product. + Spunti i campi che vuole ereditare dal prodotto base. + + + Source folder + Cartella sorgente + + + Please choose the folder where product assets are located. + Per cortesia scelga la cartella dove sono posizionati i beni. + + + Preview + Anteprima + + + Alternate text + Testo alternativo + + + Link target + Link target + + + Description + Descrizione + + + Translate + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + Versione + + + Show product variants + + + New product + Nuovo prodotto + + + Create new product + Crei un nuovo prodotto + + + Add variant + Aggiunga versione + + + Add new variant to a given product + Aggiunga una nuova versione a un certo prodotto + + + Edit product + Modifica prodotto + + + Edit product ID %s + Modifica il prodotto ID %s + + + Copy product + Copia il prodotto + + + Copy product ID %s + Copia il prodotto ID %s + + + Move product + Muovi prodotto + + + Move product ID %s + Muovi prodotto ID %s + + + Delete product + Cancella il prodotto + + + Delete product ID %s + Cancella il prodotto ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + Dettagli prodotto + + + Show details of product ID %s + Mostri i dettagli del prodotto ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + Importa beni + + + Import images and other media from a folder + Importa immagini e altri file multiediali da una cartella + + + Manage prices + Gestisca i prezzi + + + Click the button to manage advanced prices for this product. + Gestisca i prezzi per il prodotto ID %s + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + Genera versioni + + + Generate variants for product ID %s + Genera versioni per il prodotto ID %s + + + Related products + Prodotti correlati + + + Manage related products for product ID %s + Gestisi i prodotti collegati per il prodotto ID %s + + + Downloads + Download + + + Edit downloads for product ID %s + Modifica i download per il prodotto ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + Gruppo + + + General Settings + Impostazioni generali + + + Meta data + Metadati + + + Pricing Settings + Impostazioni prezzo + + + Inventory Settings + Impostazioni Inventario + + + Shipping Settings + Impostazioni Spedizione + + + Product Options Settings + Impostazioni Opzioni Prodotto + + + Media Management + Gestione Media + + + Expert settings + Impostazioni esperto + + + Publishing + Pubblicazione + + + Quantity + Quantità + + + from %s pcs. + + + Price + Prezzo + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_product_category.php b/system/modules/isotope/languages/it/tl_iso_product_category.php deleted file mode 100644 index f2d271ed13..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_product_category.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Move product + Muovi prodotto + + + Move product ID %s + Muovi prodotto ID %s + + + Paste at the top + Incolla in alto + + + Paste after product ID %s + Incolla dopo il prodotto ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_product_collection.php b/system/modules/isotope/languages/it/tl_iso_product_collection.php deleted file mode 100644 index f2aad1ed06..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_product_collection.php +++ /dev/null @@ -1,64 +0,0 @@ - + + + + Order ID + ID Ordine + + + Member (empty for guests) + Membro (vuoto per ospiti) + + + Unique ID + ID Unico + + + Order status + Stato ordine + + + Select the status of this order. + Selezioni lo stato di questo ordine. + + + Placed + Piazzato + + + Source (Cart ID) + + + Payment date + Data pagamento + + + Enter a date when this order has been paid. + Inserisca una data quando questo ordine sarà stato pagato + + + Shipped date + Data spedizione + + + Enter a date when this order has been shipped. + Inserisca una data quando questo ordine sarà spedito + + + Shop configuration + Configurazione negozio + + + Payment method + Metodo di pagamento + + + Shipping method + Metodo di spedizione + + + Billing address + Indirizzo Fatturazione + + + Shipping address + Indirizzo Spedizione + + + Subtotal + Subtotale + + + Subtotal without tax + Subtotale senza tasse + + + Total + Totale + + + Total without tax + Totale senza tasse + + + Currency + Valuta + + + Language + Lingua + + + Order notes + Note ordine + + + If you would like to convey information to other backend users, please do so here. + Se vuole inviare informazioni ad altri utenti backend per cortesia lo faccia qui. + + + Edit order + Modifica Ordine + + + Edit order ID %s + Modifica ordine ID %s + + + Copy order + Copia Ordine + + + Copy order ID %s + Copia ordine ID %s + + + Delete order + Cancella Ordine + + + Delete order ID %s + Cancella ordine ID %s + + + Order details + Dettagli ordine + + + Show details of order ID %s + Mostra i dettagli dell'ordine ID %s + + + Payment details + Dettagli pagamento + + + Show payment details of order ID %s + Mostra dettagli pagamento per l'ordine ID %s + + + Shipping details + Dettagli spedizione + + + Show shipping details of order ID %s + Mostra dettagli spedizione per l'ordine ID %s + + + Print a document + Stampa un documento + + + Print order ID %s with a document of your choice + Stampa ordine ID %s con un documento di tua scelta + + + Document + Documento + + + Choose the document you would like to print the data with. + Scegli il documento che vorresti stampare con i dati + + + Print + Stampa + + + The status of your order has been updated. + Lo stato del tuo ordine è stato aggiornato. + + + Notifications (e.g. email to client) have been sent. + Le notifiche (e.g email per client) sono state spedite. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + Le notifiche (e.g email per cliente) non possono essere spedite. Controlla il sistema di log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + Stato ordine + + + Order details + Dettagli ordine + + + Email data + dati email + + + Billing address data + Dati indirizzo fatturazione + + + Shipping address data + Dati indirizzo spedizione + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_product_price.php b/system/modules/isotope/languages/it/tl_iso_product_price.php deleted file mode 100644 index 4283f0dfdc..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Price Tiers + Gruppi prezzo + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + Fissi almeno un gruppo di prezzo per la "Quantità 1". Può inserire prezzi scontati se il cliente ordina più di un prodotto. + + + Tax Class + Classe aliquota + + + Please select a tax class for this price. + Per cortesia selezioni una classe aliquota per questo prezzo. + + + Store configuration + Configurazione negozio + + + Select a store configuration for this price. + Selezioni una configurazione negozio per questo prezzo. + + + Member group + Gruppo prezzo + + + Select a member group for this price. + Selezioni un gruppo prezzo (gruppo membro) per questo prezzo. + + + Use from + Usa da + + + Do not use the price on the website before this day. + Non usare il prezzo sul sito web prima di questo giorno. + + + Use until + Usa fino + + + Do not use the price on the website after this day. + Non usare il prezzo sul sito web dopo questo giorno. + + + Add price + Aggiungi prezzo + + + Add a new price to this product + Aggiungi un nuovo prezzo a questo prodotto + + + Edit price + Modifica prezzo + + + Edit price ID %s + Modifica prezzo ID %s + + + Duplicate price + Duplica prezzo + + + Duplicate price ID %s + Duplica prezzo ID %s + + + Delete price + Cancella prezzo + + + Delete price ID %s + Cancella prezzo ID %s + + + Price details + Dettagli prezzo + + + Show details of price ID %s + Mostra i dettagli del prezzo ID %s + + + Quantity (min) + Quantità (min) + + + Price + Prezzo + + + Price + Prezzo + + + Limitations + Restrizioni + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_producttype.php b/system/modules/isotope/languages/it/tl_iso_producttype.php deleted file mode 100644 index 082180909e..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_producttype.php +++ /dev/null @@ -1,56 +0,0 @@ - + + + + Name + Nome + + + Please enter a name for this product type. + Per cortesia inserisca un nome per questo tipo di prodotto. + + + Product Class + Classe Prodotto + + + Please select a product class. Different product classes will handle products differently. + Per cortesia selezioni una classe prodotto. Classi prodotto diverse gestiranno i prodotti in maniera diversa. + + + Default + Preimpostato + + + Check here if this is the default product type. + Spunti qui se questo è il prodotto preimpostato. + + + Description + Descrizione + + + A hint to product managers what this product type is for. + Un suggerimento per i gestori prodotti sull'utilizzo di questo tipo di prodotto. + + + Advanced pricing + Prezzamento avanzato + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + Permetta di definire più di un prezzo per un prodotto, ad esempio per configurazioni diverse di negozio, gruppi membri o date. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + Template Elenco + + + Select a template for product listing. + Selezioni una template per l'elenco dei prodotti + + + Reader template + Template Lettore + + + Select a template for product details. + Selezioni una template per i dettagli prodotto. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Attributi + + + Select the collection of attributes that should be included for this product type. + Selezioni la collezione di attributi che dovrebbero essere inclusi in questo tipo prodotto. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + Preimpostato + + + Enable variants + Abilita versioni + + + Check here if this product type has variants. + Spunti qui se questo prodotto ha versioni. + + + Variant attributes + Versioni attricuti + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + Selezioni la collezione di attributi versione che dovrebbero essere inclusi per questo tipo prodotto. Quelli che non sono state selezionati saranno nascosti alla vista ed ereditati dal prodotto genitore. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + Esenzione da spedizione + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + Abilita download + + + Check here if this product type has downloads. + Spunta qui se questo tipo di prodotto è scaricabile + + + New product type + Nuovo tipo prodotto + + + Create new product type. + Crea un nuovo tipo prodotto + + + Edit product type + Modifica il tipo prodotto + + + Edit product type ID %s + Modifica il tipo prodotto ID %s + + + Copy product type definiton + Copia la definizione tipo prodotto + + + Copy definition of product type ID %s + Copia la definizione tipo prodotto ID %s + + + Delete product type + Cancella tipo prodotto + + + Delete product type ID %s + Cancella tipo prodotto ID %s + + + product type details + Dettagli Tipo Prodotto + + + Show details of product type ID %s + Mostra i dettagli tipo prodotto ID %s + + + Product type settings + Impostazioni tipo prodotto + + + Description + Descrizione + + + Prices + + + Templates + Template + + + Product attributes + Attributi prodotto + + + Variant attributes + Versioni attricuti + + + Expert settings + Impostazioni esperto + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_related_category.php b/system/modules/isotope/languages/it/tl_iso_related_category.php deleted file mode 100644 index 89d21e181b..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_related_category.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Category name + Nome categoria + + + Please enter a name for this category. + Per cortesia inserisca un nome per questa categoria. + + + New category + Nuova categoria + + + Create a new category + Crea una nuova categoria + + + Edit category + Modifica categoria + + + Edit category ID %s + Modifica la categoria ID %s + + + Duplicate category + Duplica categoria + + + Duplicate category ID %s + Duplica categoria ID %s + + + Delete category + Cancella categoria + + + Delete category ID %s + Cancella categoria ID %s + + + Category details + Dettagli categoria + + + Show details of category ID %s + Visualizza i dettagli categoria ID %s + + + Name + Nome + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_related_product.php b/system/modules/isotope/languages/it/tl_iso_related_product.php deleted file mode 100644 index 0de31c281c..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_related_product.php +++ /dev/null @@ -1,35 +0,0 @@ - + + + + Category + Categoria + + + Select a category. + Selezioni una categoria + + + Products + Prodotti + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + Aggiuni categoria + + + Add a new category with products + Aggiungi una nuova categoria con prodotti + + + Edit category + Modifica categoria + + + Edit category ID %s + Modifica la categoria ID %s + + + Duplicate category + Duplica categoria + + + Duplicate category ID %s + Duplica categoria ID %s + + + Move category + Sposta categoria + + + Move category ID %s + Sposta categoria ID %s + + + Delete category + Cancella categoria + + + Delete category ID %s + Cancella categoria ID %s + + + Category details + Dettagli categoria + + + Show details of category ID %s + Visualizza i dettagli categoria ID %s + + + Edit product + Modifica prodotto + + + Edit this product + Modifica questo prodotto + + + Category + Categoria + + + Related products + Prodotti correlati + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_shipping.php b/system/modules/isotope/languages/it/tl_iso_shipping.php deleted file mode 100644 index ff30c6b1ca..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_shipping.php +++ /dev/null @@ -1,65 +0,0 @@ - + + + + Shipping Method Name + Nome Metodo Spedizione + + + Please enter a name for this shipping method. + + + Shipping Method Type + Tipo Metodo Spedizione + + + Please select the type of this shipping method + + + Price + Prezzo + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + Note Metodo Spedizione + + + These will be displayed on the front end in association with this shipping option. + Queste saranno visualizzate nel frontend associate all'opzione di spedizione. + + + Tax Class + Classe aliquota + + + Select a tax class that applies to the shipping price. + + + Label + Etichetta + + + This is displayed on the front end in association with the shipping option. + Questo sarà visualizzata nel frontend associata all'opzione di spedizione. + + + Flat calculation + Tassa fissa + + + Select the mode of price calculation. + + + Countries + Paesi + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + Selezioni i paesi ai quali questo metodo di spedizione sarà applicato. Se non selezioni niente, questo metodo di spedizione sarà applicato a tutti i paesi. + + + State/Regions + Stato/Regione + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + Selezionare lo stato/regione ai quali questo metodo di spedizione sarà applicato. Se non seleziona niente, questo metodo di spedizione sarà applicato a tutti gli stati/regioni. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + Subtotale minimo + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + Subtotale massimo + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + Modalità quantità calcolo + + + Select a calculation mode for min/max quantity. + Selezionare una modalità calcolo per una quantità minima/massima. + + + Total quantity in cart + Quantità totale nel carrello + + + Total products in cart + Prodotti totali nel carrello + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Tipi prodotto + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + Può limitare questo metodo di spedizione a certi prodotti. Se il carrello contiene un prodotto non selezionat, il modulo di spedizione non sarà disponibile. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Configurazioni negozio + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Metodi di spedizione + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + Gruppi membri + + + Restrict this shipping option to certain member groups. + Limiti quest'opzione di spedizione a certi gruppi di membri + + + Protect module + Modulo protetto + + + Show the module to certain member groups only. + Mostra il modulo soltanto ad alcuni membri del gruppo. + + + Show to guests only + Mostra solo agli ospiti + + + Hide the module if a member is logged in. + Nasconda il modulo se un membro è loggato. + + + Enabled + Attivato + + + Is the module available for use in the store? + Il modulo è disponibile all'uso nel negozio? + + + Title and type + Titolo e tipo + + + Shipping note + Nota spedizione + + + Configuration + Configurazione + + + Pricing threshold and tax class applicability + Soglia prezzo e classe aliquota applicabile + + + Expert settings + Impostazioni esperto + + + Approval + + + New shipping method + Nuovo metodo spedizione + + + Create a New shipping method + Crei un nuovo metodo di spedizione + + + Edit shipping method + Modifica spedizione + + + Edit shipping method ID %s + Modifica il metodo di spedizioneID %s + + + Copy shipping method + Copia spedizione + + + Copy shipping method ID %s + Copia il metodo di spedizione ID %s + + + Delete shipping method + Cancella spedizione + + + Delete shipping method ID %s + Cancella metodo spedizione ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + Dettagli spedizione + + + Show details of shipping method ID %s + Mostri i dettagli di spedizione ID %s + + + Flat + Tassa fissa + + + Per Product + Per prodotto + + + Per Item + Per pezzo + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_tax_class.php b/system/modules/isotope/languages/it/tl_iso_tax_class.php deleted file mode 100644 index 716cee5caf..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_tax_class.php +++ /dev/null @@ -1,38 +0,0 @@ - + + + + Name + Nome + + + Give this tax class a name that explains what it is used for. + Dia a questa classe di aliquota un nome rappresentativo. + + + Default + Preimpostato + + + Check here if this is the default tax class. + Spunti qui se questa è la classe di aliquota preimpostata. + + + Tax rate included with product price + Aliquota d'imposta inclusa nel prezzo del prodotto. + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + Selezioni se i prezzi dei prodotti in questa classe di aliquota contiene un'aliquota di imposta. Questa aliquota d'imposta sarà sottratta dal prezzo del prodotto se essa non combacia. + + + Include label + Includere etichetta + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + In'etichetta per ordini da presentare per aliquote rimosse (se le aliquote non combaciano). Etichetta aliquota d'imposta preimpostata sarà usata se non compilato. + + + Apply tax rates + Applica aliquota d'imposta + + + Add these tax rates to products with this tax class. + Aggiunge queste aliquote d'imposta ai prodotti che subentrano in questa classe di aliquota. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + Nuova classe di aliquota + + + Create a new tax class + Crea una nuova classe di aliquota + + + Edit tax class + Modifica classe di aliquota + + + Edit tax class ID %s + Modifica la classe ID %s + + + Copy tax class + Copia la classe di aliquota + + + Copy tax class ID %s + Copia la classe di aliquota ID %s + + + Delete tax class + Cancella la classe di aliquota + + + Delete tax class ID %s + Cancella la classe di aliquota ID %s + + + Tax class details + Dettagli Ordini + + + Show details of tax class ID %s + Mostra i dettagli della classe ID %s + + + Name + Nome + + + Tax rates + Aliquota d'imposta + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_iso_tax_rate.php b/system/modules/isotope/languages/it/tl_iso_tax_rate.php deleted file mode 100644 index 58eea8f6fe..0000000000 --- a/system/modules/isotope/languages/it/tl_iso_tax_rate.php +++ /dev/null @@ -1,48 +0,0 @@ - + + + + Name + Nome + + + Enter a name for this tax rate. + Inserisca un nome per l'aliquota + + + Label + Etichetta + + + This label will be used on the front end in the checkout process. + Quest'etichetta sarà usata nel frontend nel processo di checkout. + + + Address to use for calculation + Indirizzo usato per il Calcolo + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + Paesi + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + Quantità limite subtotale + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + Opzionale: Limiti questa aliquota d'imposta alla quantità subtotale specifica (ad esempio tassa beni di lusso). + + + Tax rate + Aliquota d'imposta + + + A rate in percent this tax is set at. + La tariffa fissata in percentuale + + + Store configuration + Configurazione negozio + + + Select the store configuration that the tax rate applies to. + Selezioni la configurazione negozio al quale la classe di aliquota si applica. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + Ferma calcolo al verificarsi di un Evento? + + + Stop other calculations if this tax rate is triggered. + Ferma altri calcoli se questa aliquota di imposto si presenta. + + + Member groups + Gruppi Membri + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + Nuova aliquota d'imposta + + + Create a new tax rate + Crea una nuova aliquota d'imposta + + + Edit tax rate + Modifica aliquota d'imposta + + + Edit tax rate ID %s + Modifica aliquota d'imposta %s + + + Copy tax rate + Copia aliquota d'imposta + + + Copy tax rate ID %s + Copia aliquota d'imposta ID %s + + + Delete tax rate + Cancella aliquota d'imposta + + + Delete tax rate ID %s + Cancella aliquota d'imposta %s + + + Tax rate details + Dettagli Ordine + + + Show details of tax rate ID %s + Visualizza i dettagli dell'aliquota d'imposta ID %s + + + Billing Address + Indirizzo Fattura + + + Shipping Address + Indirizzo Spedizione + + + Name + Nome + + + Rate + Legenda Tariffa + + + Location + Legenda Collocazione + + + Conditions + Legenda Condizioni + + + Configuration + Configurazione + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_maintenance.php b/system/modules/isotope/languages/it/tl_maintenance.php deleted file mode 100644 index b0251401c2..0000000000 --- a/system/modules/isotope/languages/it/tl_maintenance.php +++ /dev/null @@ -1,20 +0,0 @@ - tl_iso_productcache che memorizza nella cache i prodotti trovati per ciascun elenco dei prodotti sulla tua pagina.'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][0] = 'Epurare cache prodotto Isotope '; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][1] = 'Tronca la tabella tl_iso_requestcache , che memorizza le informazioni dal modulo filtro URL brevi. '; diff --git a/system/modules/isotope/languages/it/tl_maintenance.xlf b/system/modules/isotope/languages/it/tl_maintenance.xlf new file mode 100644 index 0000000000..8203b271f0 --- /dev/null +++ b/system/modules/isotope/languages/it/tl_maintenance.xlf @@ -0,0 +1,22 @@ + + + + + Purge Isotope product cache + Epurare cache prodotto Isotope + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + Tronca la tabella <em> tl_iso_productcache </ em> che memorizza nella cache i prodotti trovati per ciascun elenco dei prodotti sulla tua pagina. + + + Purge Isotope request cache + Epurare cache prodotto Isotope + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + Tronca la tabella <em> tl_iso_requestcache </ em>, che memorizza le informazioni dal modulo filtro URL brevi. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_member.php b/system/modules/isotope/languages/it/tl_member.php deleted file mode 100644 index 222af93a55..0000000000 --- a/system/modules/isotope/languages/it/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + Rubrica + + + Manage the address book for member ID %s. + Gestisca questa rubrica. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_module.php b/system/modules/isotope/languages/it/tl_module.php deleted file mode 100644 index 1d5382e12c..0000000000 --- a/system/modules/isotope/languages/it/tl_module.php +++ /dev/null @@ -1,86 +0,0 @@ - + + + + Product list template + Template elenco prodotti + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + Template lettore prodotto + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + Galleria + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + Modulo per la raccolta del prodotto + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + Reindirizza verso il primo prodotto + + + Check here if users are redirected to the first product of the list. + Spunti qui se gli utenti saranno reindirizzati al primo prodotto nell'elenco. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + Abiliti la quantità + + + Allow users to specify 1 or more of a product to be purchased. + Permetta agli utilizzatori di specificare uno o più prodotti da acquistare. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + Metodo di checkout + + + Choose your checkout method. + Scelga il metodo di checkout. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + Salto alla pagina Aggiunga prodotto + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + Queste impostazioni definiscono a quale pagina un utilizzatore sarà reindirizzato quando aggiunge un prodotto al carrello, se diversa dalla pagina corrente. + + + Columns + Colonne + + + Enter a number of columns to display width-wise in the listing template. + Inserisca un numero di colonne per mostrare in ampiezza nella template elenco. + + + Store configuration + Configurazione negozio + + + Select the store configuration that this module will be used for. + Selezioni la configurazione negozio per la quale questo modulo sarà utilizzato. + + + Store configurations + Configurazioni negozio + + + Select the store configurations that this module will be used for. + Selezioni le configurazioni negozio che questo per le quali modulo sarà utilizzato. + + + Payment methods + Metodi di pagamento + + + Select one or more payment methods for this checkout module. + Selezioni uno o più metodi di pagamento per questo modulo di checkout. + + + Shipping methods + Metodi di spedizione + + + Select one or more shipping methods for this checkout module. + Selezioni uno o più metodi di spedizione per il modulo di checkout. + + + Completed order jump to page + Salto alla pagina ordine completato + + + Select a page the customer will be referred to after their order is complete. + Selezioni una pagina alla quale il cliente farà riferimento dopo il completamento dell'ordine. + + + Forward to review page + Forward alla pagina riassunto + + + Forward the user to the review page if no data is required on any step. + Forward utente alal pagina riassunto se nessun dato è richiesto in nessuna tappa. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + Form condizioni ordine + + + Choose a custom form that is used to display your order terms and conditions (optional). + Scelga un form personalizzato per visualizzare i termini e le condizioni di ventita (opzionale). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + Aggiunga alla rubrica + + + Add new addresses to members address book (if logged in). + Aggiunga nuovi indirizzi alla rubrica membri (se loggati). + + + Sorting + Ordinamento + + + Define in what order the collection items should be listed. + Definisci in quale ordine gli elementi della raccolta dovrebbero essere elencati. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + Messaggio per elenco vuoto + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + Lasci non compilato per il messaggio preimpostato. + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + Ambito categoria + + + Specify the scope of a product lister. + Selezioni l'ambito di un elenco prodotti + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + Filtri abilitati + + + Please select filters to enable. + Per cortesia selezioni i filtri da abilitare. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + Campi ricerca abilitati + + + Please select search fields to enable. + Per cortesia selezioni i campi ricerca da abilitare. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + Campi "ordina per" abilitati + + + Please select orderable fields to enable. + Per cortesia selezioni i campi ordinabili da abilitare + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + Abilita limiti per pagina + + + Allow the user to select the number of records to show per page. + Permetta agli utilizzatori di selezionare il numero di record da mostrare per pagina. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + Salto alla pagina Carrello Spesa + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + Queste impostazioni definiscono verso quale pagina l'utilizzatore sarà reindirizzato quando richiede una vista completa del carrello della spesa. + + + Checkout Jump to page + Salto alla pagina Checkout + + + This setting defines to which page a user will be redirected when completing their transaction. + Questa impostazione definisce a quale pagina un utilizzatore sarà reindirizzato quanto ha completato la transazione. + + + Initial sorting field + Campo ordinamento iniziale + + + Select a sorting field to sort the listing by on first page load. + Selezioni un campo ordinamento per ordinare l'elenco al primo caricamento della pagina. + + + Initial sorting direction + Verso ordinamento iniziale + + + Select a initial sorting direction. + Selezionare un verso per il sorting iniziale. + + + Buttons + Bottoni + + + Select the buttons you want to show. + Selezioni i bottoni che vuole mostrare. + + + Related categories + Categorie correlate + + + Select the categories to show products of. + Selezioni le categorie prodotti da mostrare. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + Indirizzo Fatturazione + + + Shipping address + Indirizzo Spedizione + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + Form condizioni ordine + + + Login/Registration required + Regiatrazione/Login necessaria/o + + + Guest checkout only + Checkout solo per ospiti + + + Both allowed + Permessi entrambi + + + All Categories + Tutte le categorie + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + Categoria corrente e categoria "Primo Figlio" + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + Categoria corrente e categorie "Tutti i Figli" + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + Categoria Corrente + + + Show all products that are assigned to the active page (default). + + + Parent Category + Categoria Genitore + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + Categorie prodotti correnti + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + ASC + + + DESC + DISC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_nc_notification.php b/system/modules/isotope/languages/it/tl_nc_notification.php deleted file mode 100644 index 56e99f7b36..0000000000 --- a/system/modules/isotope/languages/it/tl_nc_notification.php +++ /dev/null @@ -1,27 +0,0 @@ - + + + + Product collection template + Modulo per la raccolta del prodotto + + + Please choose a template to render the products for the notification content. + Si prega di scegliere un modello per presentare i prodotti per il contenuto di notifica. + + + Sorting + Ordinamento + + + Define in what order the collection items should be listed. + Definisci in quale ordine gli elementi della raccolta dovrebbero essere elencati. + + + Gallery + Galleria + + + Select a gallery to render images. + Seleziona una galleria per renderizzare immagini. + + + Document + Documento + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + Se volessi allegare un documento alla notifica, scegline uno qui e usa il simbolo nel centro notifica. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + Stato ordine cambiato + + + This notification type can be sent when the order status changes. + Questo tipo di notifica può essere inviato quando lo stato ordine cambia. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_page.php b/system/modules/isotope/languages/it/tl_page.php deleted file mode 100644 index 9b65808574..0000000000 --- a/system/modules/isotope/languages/it/tl_page.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Store Configuration + Configurazione negozio + + + Select a store configuration for this page structure. + Selezioni una configurazione negozio per questa struttura pagina + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_settings.php b/system/modules/isotope/languages/it/tl_settings.php deleted file mode 100644 index 7989acc632..0000000000 --- a/system/modules/isotope/languages/it/tl_settings.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Guest cart timeout + Tempo scaduto carrello ospite + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_user.php b/system/modules/isotope/languages/it/tl_user.php deleted file mode 100644 index e54e2e74c1..0000000000 --- a/system/modules/isotope/languages/it/tl_user.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Isotope modules + Moduli isotope + + + Select which store configuration modules user of this group can access. + Selezioni quali moduli configurazione negozio sono disponibile per questo utente. + + + Allowed product types + Tipi prodotto + + + Here you can grant access to one or more product types. + Gli utilizzatori possono visualizzare e modificare i prodotti abilitati. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + Configurazioni negozio + + + Here you can grant access to one or more store configurations. + Gli utilizzatori possono visualizzare gli ordini da queste configurazioni di negozio. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tl_user_group.php b/system/modules/isotope/languages/it/tl_user_group.php deleted file mode 100644 index c553c12821..0000000000 --- a/system/modules/isotope/languages/it/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/it/tokens.php b/system/modules/isotope/languages/it/tokens.php deleted file mode 100644 index 9c1ca14d39..0000000000 --- a/system/modules/isotope/languages/it/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/default.php b/system/modules/isotope/languages/nl/default.php deleted file mode 100644 index 1b5957be01..0000000000 --- a/system/modules/isotope/languages/nl/default.php +++ /dev/null @@ -1,219 +0,0 @@ -Van %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Bekijk details'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Producten per pagina'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Keywords'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Verstuur'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Leeg filter'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Verversen'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'In winkelwagen'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Sorteren op:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Geen producten gevonden'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Terug'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Verder'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Bestellen'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Er zijn categorieën geassocieerd met dit product.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Verstuur'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Verwijder'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Er bevinden zich geen producten in uw winkelwagen'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'Het geselecteerde product is toegevoegd aan uw winkelwagen.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'De producten van uw vorige bezoek zijn opnieuw toegevoegd. Controleer a.u.b. uw winkelwagen.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Verwijder %s uit uw winkelwagen'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Subtotaal bestelling:'; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Verzending'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Betaling'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Totaal bestelling:'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'Momenteel zijn er geen betalings opties beschikbaar'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'Momenteel zijn er geen verzend opties beschikbaar.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Geen bestel e-mails gevonden.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Geen orders gevonden.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s downloads over'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Winkelwagen'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Ga verder met afrekenen'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Verder winkelen'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Winkelwagen bijwerken'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Status van de bestelling: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Ga terug naar stap "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Maak een nieuw adres aan'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Gebruik het factuur-adres'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Gebruik het standaard klant-adres'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Ander aflever adres'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Wijzigen'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Verwijderen'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Wilt u dit adres verwijderen? Dit kan niet ongedaan gemaakt worden.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Factuur'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Status'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Bestel datum'; -$GLOBALS['TL_LANG']['MSC']['iso_order_document_number'] = 'Ordernummer'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Omschrijving'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Aantal'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Prijs'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Totaal'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'laag - hoog'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'hoog - laag'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'A - Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'Z - A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'oud - nieuw'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'nieuw - oud'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Betaling wordt verwerkt'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Nu betalen'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Klik hier om deze PayPal transactie online te bekijken'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 Product'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s Producten'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Vul uw verzendadres in of selecteer een bestaand adres. '; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Vul uw factuuradres in of selecteer een bestaand adres'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Vul uw factuurinformatie in'; -$GLOBALS['TL_LANG']['MSC']['customer_address_message'] = 'Vul u klantinformatie in of kies een bestaand adres.'; -$GLOBALS['TL_LANG']['MSC']['customer_address_guest_message'] = 'Vul uw klantinformatie in'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Kies een verzendmethode.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Kies alstublieft een verzendmethode.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_message'] = 'Vul uw betaalgegevens in.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_missing'] = 'Kies alstublieft een betaalmethode.'; -$GLOBALS['TL_LANG']['MSC']['order_review_message'] = 'Bekijk en bevestig uw bestelling.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Adres'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Verzending'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Betaling'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Overzicht'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Factuuradres'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Verzendadres'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Factuur- en verzendadres'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Klantadres'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Verzendmethode'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Betaalmethode'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Bestelling controleren'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Aanpassen'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Creditcardnummer'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Type creditcard'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'CCV nummer (3 of 4 cijffercode)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Vervaldatum maand'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Vervaldatum jaar'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = 'Betaalmethode niet gevonden!'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNotFound'] = 'Verzendmethode niet gevonden!'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNoInfo'] = 'Deze betaalmodule verstrekt geen aanvullende informatie.'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNoInfo'] = 'Deze verzendmodule verstrekt geen aanvullende informatie.'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Gebruik de standaardwaarde'; -$GLOBALS['TL_LANG']['MSC']['activeStep'] = 'huidige stap:'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Haalt producten op...'; -$GLOBALS['TL_LANG']['MSC']['productcacheNoscript'] = 'Uw browser ondersteund geen javascript. Klik hier om de productlijst te laden.'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'Geen bestanden in deze map'; -$GLOBALS['TL_LANG']['MSC']['assetImportConfirmation'] = 'Bestand %s voor product "%s" geïmporteerd'; -$GLOBALS['TL_LANG']['MSC']['assetImportNoFilesFound'] = 'De map bevatte geen bestanden om te importeren.'; -$GLOBALS['TL_LANG']['MSC']['loadingProductData'] = 'Haalt productgegevens op...'; -$GLOBALS['TL_LANG']['MSC']['templatesConfig'] = 'Winkelconfiguratie "%s"'; -$GLOBALS['TL_LANG']['MSC']['splittedTaxRate'] = 'Gesplitst'; -$GLOBALS['TL_LANG']['MSC']['newOrders'] = 'U heeft %s bestelling(en) met de status "%s" '; -$GLOBALS['TL_LANG']['MSC']['checkoutStep'] = 'Stap %s van %s (%s) -'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minuten'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Uur'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Dagen'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Weken'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Maanden'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Jaar'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Welkom bij Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][1] = 'Isotope is de grootste open-source eCommerce oplossing voor Contao.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][2] = 'Op deze pagina vinden de meeste instellingen plaats. U kunt het beste van onder naar boven, en rechts naar links werken.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][3] = 'Bezoek de officiële Isotope eCommerce website voor het laatste nieuws, handleidingen en campagnes. Wij zijn blij met alle kleine beetjes hulp!'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][4] = 'Het Isotope eCommerce team'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_id'] = 'op datum toegevoegd (oud - nieuw)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_id'] = 'op datum toegevoegd (nieuw - oud)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_tstamp'] = 'op datum aangepast (oud - nieuw)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_tstamp'] = 'op datum aangepast (nieuw - oud)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_name'] = 'op productnaam (A - Z)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_name'] = 'op productnaam (Z - A)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_price'] = 'op prijs (oplopend)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_price'] = 'op prijs (aflopend)'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][0] = 'Vaste verzendkosten'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][1] = 'Dit is de standaard verzendmethode voor normale verzending.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][0] = 'Verzendgroep'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][1] = 'Hiermee kunt u meerder verzendmethoden groepen en de verzendprijs hiermee berekenen.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][0] = 'Contant'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][1] = 'Gebruik dit voor alle offline betalingen.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][1] = 'Deze PayPal module ondersteund IPN (Instant Payment Notifications).'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_document']['standard'][0] = 'Standaard'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][0] = 'Standaard gallerij'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][0] = 'Inline gallerij'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][1] = 'Op een afbeelding klikken vervangt de hoofdafbeelding.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][0] = 'Standaard product'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][1] = 'Het standaard product. Gebruik deze als geen andere beter past.'; -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['ATTR']['text'][0] = 'Tekstveld'; -$GLOBALS['TL_LANG']['ATTR']['text'][1] = 'Veld van één regel voor een korte of middellange tekst.'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][0] = 'Tekstgebied'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][1] = 'Een invoerveld met meerdere regels voor een middellange of lange tekst.'; -$GLOBALS['TL_LANG']['ATTR']['select'][0] = 'Selecteermenu'; -$GLOBALS['TL_LANG']['ATTR']['select'][1] = 'Een enkel- of uit meerdere regels bestaand drop-down menu.
Dit soort veld is geschikt voor productvarianten.'; -$GLOBALS['TL_LANG']['ATTR']['radio'][0] = 'Radiobutton menu'; -$GLOBALS['TL_LANG']['ATTR']['radio'][1] = 'Een lijst van meerdere opties waaruit geselecteerd kan worden.
Dit soort veld is geschikt voor productvarianten.'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][0] = 'Checkbox menu'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][1] = 'Een lijst van meerdere opties waaruit gekozen kan worden.'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][0] = 'Media manager'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][1] = 'Upload afbeeldingen en overige bestanden naar het Isotope eCommerce bestandsysteem. Output wordt door een IsotopeGallery klasse afgehandeld.'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][0] = 'Voorwaardelijk selecteermenu'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][1] = 'Toon selectie-opties op basis van een ander selecteermenu.'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][0] = 'Bestandsstructuur'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][1] = 'Een bestandsstructuur van één of meerdere bestanden en mappen.'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Downloads'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][1] = 'Download bestanden van het product, bijv. handleidingen, data sheets enz.'; -$GLOBALS['TL_LANG']['ATTR']['upload'][0] = 'Bestandsupload'; -$GLOBALS['TL_LANG']['ATTR']['upload'][1] = 'Invoerveld van één regel om een lokaal bestand naar de server te laden.'; -$GLOBALS['TL_LANG']['CUR']['EUR'] = 'EUR - Euro'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; diff --git a/system/modules/isotope/languages/nl/default.xlf b/system/modules/isotope/languages/nl/default.xlf new file mode 100644 index 0000000000..1456471891 --- /dev/null +++ b/system/modules/isotope/languages/nl/default.xlf @@ -0,0 +1,1522 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + '%s' is gereserveerd voor gebruik in het systeem. Kies alstublieft een andere naam. + + + No store configuration available + Er is geen Winkelinstellingen beschikbaar! + + + Please create a default store configuration. + Maak een standaard winkelinstellingen aan. + + + You have not yet placed any orders. + U heeft nog geen bestellingen geplaatst + + + The requested order was not found. + De gevraagde bestelling is niet gevonden + + + You must be logged in to checkout. + U moet zijn ingelogd om af te kunnen rekenen + + + A variant with this attributes is already available. Please select another combination. + Een variant met deze attributen is al beschikbaar. Selecteer een andere combinatie alstublieft. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Vul hele getallen of decimalen ondertekend met + of - en eventueel met een percentage. + + + Please enter whole numbers or decimals optionally with a percentage. + Vul hele getallen of optioneel decimalen met een percentage in. + + + Checkout failed. Please try again or choose another payment method. + Afrekenen mislukt, probeer opnieuw of kies een andere wijze van betaling. Onze excuses voor het ongemak. + + + You have no address book entries. + U heeft nog geen adressen in uw adresboek. + + + The minimum order amount is %s. Please add more products before checkout. + Het minimale bestelbedrag is %s. Voeg nog iets toe aan uw winkelwagen voordat u gaat afrekenen. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + Het minimum aantal voor "%s" is %s producten. Controleer uw winkelwagen. + + + This image has already been assigned to the fallback language. + Deze afbeelding is al toegewezen aan de terugvaltaal. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + Kies het gewenste invoertype (datum, tijd, datum en tijd) om de datumkiezer in te schakelen. + + + The selected folder is empty. + De geselecteerde map is leeg. + + + User checkout not allowed + + + This product is no longer available. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + Toon alleen deze groep + + + Groups + Groepen + + + Pages + Pagina's + + + Back to the group picker + + + Show all groups + Toon alle groepen + + + There are no variants for this product. + Geen productvarianten gevonden. + + + Duplicate Fallback + Kopie reservepagina + + + Order no %s / %s + Ordernummer %s / %s + + + Your payment is being processed. Please be patient... + Uw betaling wordt voltooid, een moment geduld alstublieft... + + + No files uploaded. + Geen bestanden geüpload. + + + The file could not be uploaded for unknown reason. Please check the system log. + Het bestand kon wegen onbekende oorzaak niet geüpload worden. Controleer het logbestand van het systeem. + + + Drop files here to upload + Sleep bestanden hierheen om te uploaden + + + Upload files + Bestanden uploaden + + + Processing dropped files... + Nieuwe bestanden worden verwerkt... + + + Some records could not be deleted. + Enkele items konden niet verwijderd worden. + + + Some records could not be deleted and have been unpublished instead. + Enkele items konden niet verwijderd worden en zijn in plaats daarvan verborgen. + + + Quantity + Aantal + + + Tax-free + + + search products + zoek producten + + + Your downloadable products + Uw te downloaden producten + + + <span class="from">From</span> %s + <span class="from">Van</span> %s + + + View Details + Bekijk details + + + Reorder + + + Products Per Page + Producten per pagina + + + Keywords + Keywords + + + Submit + Verstuur + + + Clear Filters + Leeg filter + + + Update + Verversen + + + Add To Cart + In winkelwagen + + + Add All To Cart + + + Update Cart + Winkelwagen bijwerken + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Sorteren op: + + + No products have been found. + Geen producten gevonden + + + Back + Terug + + + Continue + Verder + + + Order + Bestellen + + + No categories are associated with this product. + Er zijn categorieën geassocieerd met dit product. + + + Submit + Verstuur + + + There are no items in your favorites list. + + + There are no items in your cart. + Er bevinden zich geen producten in uw winkelwagen + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + Het geselecteerde product is toegevoegd aan uw winkelwagen. + + + The products from your last visit have been readded. Please review your shopping cart items. + De producten van uw vorige bezoek zijn opnieuw toegevoegd. Controleer a.u.b. uw winkelwagen. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Wijzigen + + + Remove + Verwijder + + + Remove %s from your cart + Verwijder %s uit uw winkelwagen + + + Order Subtotal: + Subtotaal bestelling: + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Totaal bestelling: + + + No payment options are currently available + Momenteel zijn er geen betalings opties beschikbaar + + + No shipping options are currently available. + Momenteel zijn er geen verzend opties beschikbaar. + + + No orders emails found. + Geen bestel e-mails gevonden. + + + No orders found. + Geen orders gevonden. + + + <br />%s downloads remaining + <br />%s downloads over + + + Shopping Cart + Winkelwagen + + + Proceed to Checkout + Ga verder met afrekenen + + + Continue shopping + Verder winkelen + + + Update Cart + Winkelwagen bijwerken + + + Order Status: %s + Status van de bestelling: %s + + + Go back to step "%s" + Ga terug naar stap "%s" + + + Create New Address + Maak een nieuw adres aan + + + Use billing address + Gebruik het factuur-adres + + + Use customer address + Gebruik het standaard klant-adres + + + Different shipping address + Ander aflever adres + + + Edit + Wijzigen + + + Delete + Verwijderen + + + Do you really want to delete this address? This cannot be undone. + Wilt u dit adres verwijderen? Dit kan niet ongedaan gemaakt worden. + + + Invoice + Factuur + + + Status + Status + + + Order date + Bestel datum + + + Order number + Ordernummer + + + Description + Omschrijving + + + Quantity + Aantal + + + Price + Prijs + + + Total + Totaal + + + lo to hi + laag - hoog + + + hi to lo + hoog - laag + + + A to Z + A - Z + + + Z to A + Z - A + + + earlier to later + oud - nieuw + + + later to earlier + nieuw - oud + + + Processing payment + Betaling wordt verwerkt + + + You will be redirected to the payment gateway website. + + + Pay now + Nu betalen + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + Klik hier om deze PayPal transactie online te bekijken + + + 1 Product + 1 Product + + + %s Products + %s Producten + + + Enter your shipping information or select an existing address. + Vul uw verzendadres in of selecteer een bestaand adres. + + + Enter your billing information or select an existing address. + Vul uw factuuradres in of selecteer een bestaand adres + + + Enter your billing information + Vul uw factuurinformatie in + + + Enter your customer information or select an existing address. + Vul u klantinformatie in of kies een bestaand adres. + + + Enter your customer information + Vul uw klantinformatie in + + + Select a shipping method. + Kies een verzendmethode. + + + Please select a shipping method. + Kies alstublieft een verzendmethode. + + + Enter your payment information. + Vul uw betaalgegevens in. + + + Please select a payment method. + Kies alstublieft een betaalmethode. + + + Review and confirm your order details. + Bekijk en bevestig uw bestelling. + + + Address + Adres + + + Shipping + Verzending + + + Payment + Betaling + + + Review + Overzicht + + + Billing Address + Factuuradres + + + Shipping Address + Verzendadres + + + Billing & Shipping Address + Factuur- en verzendadres + + + Customer Address + Klantadres + + + Shipping Method + Verzendmethode + + + Payment Method + Betaalmethode + + + Order Review + Bestelling controleren + + + Change + Aanpassen + + + Credit card number + Creditcardnummer + + + Credit card type + Type creditcard + + + CCV number (3 or 4 digit code) + CCV nummer (3 of 4 cijffercode) + + + Expiration month + Vervaldatum maand + + + Expiration year + Vervaldatum jaar + + + Payment module not found! + Betaalmethode niet gevonden! + + + Shipping module not found! + Verzendmethode niet gevonden! + + + This payment module does not provide additional information. + Deze betaalmodule verstrekt geen aanvullende informatie. + + + This shipping module does not provide additional information. + Deze verzendmodule verstrekt geen aanvullende informatie. + + + Use default value + Gebruik de standaardwaarde + + + active step: + huidige stap: + + + Loading products... + Haalt producten op... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + Uw browser ondersteund geen javascript. <a href="%s">Klik hier</a> om de productlijst te laden. + + + No files in this folder + Geen bestanden in deze map + + + Imported file %s for product "%s" + Bestand %s voor product "%s" geïmporteerd + + + The folder did not contain any files to be imported. + De map bevatte geen bestanden om te importeren. + + + Loading product data … + Haalt productgegevens op... + + + Store Config "%s" + Winkelconfiguratie "%s" + + + Splitted + Gesplitst + + + You have %s order(s) with status "%s" + U heeft %s bestelling(en) met de status "%s" + + + Step %s of %s (%s) - + Stap %s van %s (%s) - + + + Minutes + Minuten + + + Hours + Uur + + + Days + Dagen + + + Weeks + Weken + + + Months + Maanden + + + Years + Jaar + + + Introduction + + + Welcome to Isotope eCommerce + Welkom bij Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + Isotope is de grootste open-source eCommerce oplossing voor Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + Op deze pagina vinden de meeste instellingen plaats. <strong>U kunt het beste van onder naar boven, en rechts naar links werken.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + Het Isotope eCommerce team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + op datum toegevoegd (oud - nieuw) + + + by date added (descending) + op datum toegevoegd (nieuw - oud) + + + by date updated (ascending) + op datum aangepast (oud - nieuw) + + + by date updated (descending) + op datum aangepast (nieuw - oud) + + + by product name (ascending) + op productnaam (A - Z) + + + by product name (descending) + op productnaam (Z - A) + + + by price (ascending) + op prijs (oplopend) + + + by price (descending) + op prijs (aflopend) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + Vaste verzendkosten + + + This is the default shipping method for regular shipping. + Dit is de standaard verzendmethode voor normale verzending. + + + Shipping group + Verzendgroep + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + Hiermee kunt u meerder verzendmethoden groepen en de verzendprijs hiermee berekenen. + + + Cash + Contant + + + Use this for all offline processed payment. + Gebruik dit voor alle offline betalingen. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + Deze PayPal module ondersteund IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + Standaard + + + Default gallery + Standaard gallerij + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + Inline gallerij + + + Clicking on a gallery image will replace the main image. + Op een afbeelding klikken vervangt de hoofdafbeelding. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + Standaard product + + + A default product. Select this if nothing else matches. + Het standaard product. Gebruik deze als geen andere beter past. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Discover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + + + Carte Blanche + + + JAL + + + Maestro UK + + + Delta + Delta + + + Solo + + + Visa Electron + + + Dankort + + + Laser + + + Carte Bleue + + + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + Tekstveld + + + A single-line input field for a short or medium text. + Veld van één regel voor een korte of middellange tekst. + + + Textarea + Tekstgebied + + + A multi-line input field for a medium or long text. + Een invoerveld met meerdere regels voor een middellange of lange tekst. + + + Select menu + Selecteermenu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + Een enkel- of uit meerdere regels bestaand drop-down menu.<br /><i>Dit soort veld is geschikt voor productvarianten.</i> + + + Radio button menu + Radiobutton menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + Een lijst van meerdere opties waaruit geselecteerd kan worden.<br /><i>Dit soort veld is geschikt voor productvarianten.</i> + + + Checkbox menu + Checkbox menu + + + A list of multiple options from which any can be selected. + Een lijst van meerdere opties waaruit gekozen kan worden. + + + Media Manager + Media manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + Upload afbeeldingen en overige bestanden naar het Isotope eCommerce bestandsysteem. Output wordt door een IsotopeGallery klasse afgehandeld. + + + Conditional Select-Menu + Voorwaardelijk selecteermenu + + + show select-options based on another select menu. + Toon selectie-opties op basis van een ander selecteermenu. + + + File tree + Bestandsstructuur + + + A file tree for single or multiple files and folders. + Een bestandsstructuur van één of meerdere bestanden en mappen. + + + Downloads + Downloads + + + Download files from the product, e.g. manuals, data sheets etc. + Download bestanden van het product, bijv. handleidingen, data sheets enz. + + + File upload + Bestandsupload + + + A single-line input field to upload a local file to the server. + Invoerveld van één regel om een lokaal bestand naar de server te laden. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + + + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + + + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/exception.php b/system/modules/isotope/languages/nl/exception.php deleted file mode 100644 index 16e0b7892c..0000000000 --- a/system/modules/isotope/languages/nl/exception.php +++ /dev/null @@ -1,23 +0,0 @@ -Wellicht wilt u meehelpen.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldFix3'] = 'Zoek een ervaren Contao ontwikkelaar om uw gegevens handmatig te migreren. Wij adviseren de Contao partnerlijst te bekijken.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldExplain'] = 'Bezoek onze website voor meer informatie over Isotope eCommerce.'; diff --git a/system/modules/isotope/languages/nl/exception.xlf b/system/modules/isotope/languages/nl/exception.xlf new file mode 100644 index 0000000000..7c879ee1cd --- /dev/null +++ b/system/modules/isotope/languages/nl/exception.xlf @@ -0,0 +1,34 @@ + + + + + Isotope eCommerce - data loss protection + Isotope eCommerce - bescherming tegen gegevensverlies + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + Er is een oude versie van Isotope eCommerce gevonden in uw installatie. Als u de database nu update zou uw bestande klantgegevens en winkelconfiguratie verloren kunnen gaan. Om dit tegen te gaan zijn de databasegereedschappen automatisch geblokkeerd. + + + There are multiple options to get your installation back: + Er zijn meerdere opties om uw installatie terug te krijgen: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + Maak een backup, de-installeer Isotope en verwijder alle gerelateerde tabellen en uitbreidingen. Hierna kunt u Isotope eCommerce 2.0 installeren. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + Momenteel hebben we een geldinzameling om een automatische update te ontwikkelen. Hoe meer mensen helpen, hoe sneller we oude installaties kunnen updaten. <a href="http://isotopeecommerce.com/en/" target="_blank">Wellicht wilt u meehelpen</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + Zoek een ervaren Contao ontwikkelaar om uw gegevens handmatig te migreren. Wij adviseren de <a href="http://contao.org/en/" target="_blank">Contao partnerlijst</a> te bekijken. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + <a href="http://isotopeecommerce.org/" target="_blank">Bezoek onze website</a> voor meer informatie over Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/explain.php b/system/modules/isotope/languages/nl/explain.php deleted file mode 100644 index 8e674fdea6..0000000000 --- a/system/modules/isotope/languages/nl/explain.php +++ /dev/null @@ -1,18 +0,0 @@ -\nAnders dan in andere Contao modules wordt een bezoeker niet naar een aparte detailpagina doorgestuurd als deze productgegevens bekijkt. Om problemen met nette aliassen op te lossen en om te weten welke de pagina met productgegevens is hebben we een nieuwe oplossing bedacht.
\n
\nDe pagina met productgegevens is altijd de pagina van de categorie waarin het product zich bevindt. Er zijn twee manieren om het product weer te geven:
\n
\nOptie 1:
\nStel geen productgegevenspagina in in de paginastructuur. Plaats de productlijst- en productgegevensmodule op dezelfde pagina. Geef in de productlijstmodule aan dat deze verborgen moet zijn als er een productalias (in de URL) wordt gevonden, hiervoor is er een keuzevakje in de instellingen van de betreffende module. De productgegevens module is al automatisch onzichtbaar als er geen product getoond hoeft te worden.
\nVoordeel: Makkelijk in te stellen
\nNadeel: De lay-out van de productgegevens en -lijst zijn gelijk en er kan geen afwijkende inhoud aan de pagina toegevoegd worden voor een van beide.
\n
\nOptie 2:
\nStel een standaard productgegevens pagina in voor iedere productlijst pagina (productcategorie) in de paginastructuur. Let op dat deze instelling niet over wordt genomen door dieper liggende pagina's! Voeg de productgegevensmodule toe zoals gebruikelijk.
\nIsotope gebruikt nu deze pagina om productgegevens weer te geven als een productalias in de URL wordt gevonden. De alias staat wel nog op de pagina van de productlijst.
\nVoordeel: Het is mogelijk een afwijkende lay-out en overige inhoud te hebben voor productlezer- en productlijstpagina's (bijv. afwijkende kolommen).
\nNadeel: Er MOET voor iedere productlezerpagina ingesteld worden op iedere categoriepagina. De instelling wordt niet geërfd.\n

"; -$GLOBALS['TL_LANG']['XPL']['mediaManager'] = '

Om een nieuwe afbeelding te uploaden het bestand kiezen en product opslaan. Als het product succesvol opgeslagen is wordt de afbeelding getoond en dan kunt u een \'alt\' tekst en beschrijving opgeven. Indien er meerdere afbeeldingen zijn kan u de volgorde wijzigen door op de pijlen rechts van de afbeelding te klikken. De bovenste afbeelding is de hoofd-afbeelding van elk product.

'; diff --git a/system/modules/isotope/languages/nl/explain.xlf b/system/modules/isotope/languages/nl/explain.xlf new file mode 100644 index 0000000000..74ae12d7f5 --- /dev/null +++ b/system/modules/isotope/languages/nl/explain.xlf @@ -0,0 +1,52 @@ + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + +<p class="tl_help_table"> +Anders dan in andere Contao modules wordt een bezoeker niet naar een aparte detailpagina doorgestuurd als deze productgegevens bekijkt. Om problemen met nette aliassen op te lossen en om te weten welke de pagina met productgegevens is hebben we een nieuwe oplossing bedacht.<br> +<br> +De pagina met productgegevens is altijd de pagina van de categorie waarin het product zich bevindt. Er zijn twee manieren om het product weer te geven:<br> +<br> +<strong>Optie 1:</strong><br> +Stel geen productgegevenspagina in in de paginastructuur. Plaats de productlijst- en productgegevensmodule op dezelfde pagina. Geef in de productlijstmodule aan dat deze verborgen moet zijn als er een productalias (in de URL) wordt gevonden, hiervoor is er een keuzevakje in de instellingen van de betreffende module. De productgegevens module is al automatisch onzichtbaar als er geen product getoond hoeft te worden.<br> +<u>Voordeel:</u> Makkelijk in te stellen<br> +<u>Nadeel:</u> De lay-out van de productgegevens en -lijst zijn gelijk en er kan geen afwijkende inhoud aan de pagina toegevoegd worden voor een van beide.<br> +<br> +<strong>Optie 2:</strong><br> +Stel een standaard productgegevens pagina in voor iedere productlijst pagina (productcategorie) in de paginastructuur. <i>Let op dat deze instelling niet over wordt genomen door dieper liggende pagina's!</i> Voeg de productgegevensmodule toe zoals gebruikelijk.<br> +Isotope gebruikt nu deze pagina om productgegevens weer te geven als een productalias in de URL wordt gevonden. De alias staat wel nog op de pagina van de productlijst.<br> +<u>Voordeel:</u> Het is mogelijk een afwijkende lay-out en overige inhoud te hebben voor productlezer- en productlijstpagina's (bijv. afwijkende kolommen).<br> +<u>Nadeel:</u> Er MOET voor iedere productlezerpagina ingesteld worden op iedere categoriepagina. De instelling wordt niet geërfd. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + <p class="tl_help_table">Om een nieuwe afbeelding te uploaden het bestand kiezen en product opslaan. Als het product succesvol opgeslagen is wordt de afbeelding getoond en dan kunt u een 'alt' tekst en beschrijving opgeven. Indien er meerdere afbeeldingen zijn kan u de volgorde wijzigen door op de pijlen rechts van de afbeelding te klikken. De bovenste afbeelding is de hoofd-afbeelding van elk product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/iso_upgrade.php b/system/modules/isotope/languages/nl/iso_upgrade.php deleted file mode 100644 index 533200bb81..0000000000 --- a/system/modules/isotope/languages/nl/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Verversen + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/modules.php b/system/modules/isotope/languages/nl/modules.php deleted file mode 100644 index c1085d2a0a..0000000000 --- a/system/modules/isotope/languages/nl/modules.php +++ /dev/null @@ -1,83 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Productbeheer + + + Manage products for your Isotope eCommerce shop + Beheer producten in uw winkel + + + Orders + Bestellingen + + + See and manage orders for your shop + Bekijk en beheer bestellingen in uw winkel + + + Store configuration + Winkelinstellingen + + + Setup and configure Isotope eCommerce to your needs + Stel Isotope eCommerce in naar wens. + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Product filter + + + Define individual filters for Isotope such as category trees and product attribute filters. + Omschrijving van de individuele filters voor Webwinkel zoals categorieen en product attribuut filters. + + + Cumulative Filter + Gecombineerd filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Met een gecombineerd filter kunnen bezoekers de productresultaten filteren op basis van meerdere voorwaarden. + + + Product List + Productlijst + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Algemene module voor het aanmaken van lijsten. Deze module kan worden gebruikt om producten of waarden of attributen in een lijst te weergeven. Deze module mag worden gecombineerd met andere modules zoals de filter module. + + + Product Variant List + Product variantenlijst + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Weergave van alle varianten van een product. Maak gebruik van de iso_list_variants template. + + + Product Reader + Productlezer + + + Product reader module. This is used to display product details. + Productlezer module, deze module wordt gebruikt om productdetails te tonen + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Winkelwagen + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + Een volledig uitgeruste winkelwagen module. Kleine winkelwagen of volledige pagina kan worden ingesteld door template selectie. + + + Checkout + Afrekenen + + + Allow store customers to complete their transactions. + Module die er voor zorgt dat bezoekers kunnen afrekenen. + + + Address Book + Adresboek + + + Allow customers to manage their address book. + Hier kunnen leden hun adresboek beheren. + + + Order History + Bestelgeschiedenis + + + Order lister that allows customers to view their order history + Hier kunnen leden hun bestelgeschiedenis bekijken, en bestellingen volgen. + + + Order Details + Bestelling details + + + Order reader that allows customers to view order history details + Bestelling lezer zorgt er voor dat bezoekers hun bestellingen kunnen bekijken + + + Store Config Switcher + Winkelinstellingen wisselaar + + + Switch between store configuration to change currency and other settings. + Wissel tussen verschillende winkelinstellingen om de valuta of andere instellingen te wijzigen + + + Related products + Gerelateerde producten + + + List products related to the current one. + Lijst van producten die gerelateerd zijn aan het getoonde product + + + Messages + Berichten + + + Displays all Isotope messages if they have not been displayed elsewhere. + Toon alle Isotope berichten als deze niet al elders getoond worden. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + Isotope eCommerce configuratie (versie: %s) + + + Products + Producten + + + Attributes + Attributen + + + Manage and create product attributes such as size, color, etc. + Maak en beheer productattributen zoals maat, kleur, etc. + + + Product types + Productsoorten + + + Manage and create product types from sets of attributes. + Maak en beheer productsoorten uit sets van attributen. + + + Related categories + Gerelateerde categoriën + + + Define categories for product relations. + Definieer categorieën voor gerelateerde producten. + + + Galleries + Gallerijen + + + Define how you want the images in your product to be rendered. + Geef aan hoe u de afbeeldingen van uw product weergegeven wilt hebben. + + + Base prices + Eenheidsprijzen + + + Define base price. + Eenheidsprijzen definiëren. + + + Checkout Flow + Afreken stappen + + + Shipping methods + Verzendmethoden + + + Set up shipping methods. + Stel verzendmethoden zoals UPS, USPS, DHL etc. in. + + + Payment methods + Betaalmethoden + + + Set up payment methods. + Stel betaalmethoden zoals overschrijving, Paypal en iDeal in. + + + Tax classes + Belastingklassen + + + Set up Tax classes, which contain sets of Tax rates. + Stel belastingklassen in die zijn samengesteld o.b.v. belastingtarieven + + + Tax rates + Belastingtarief + + + Set up tax rates based on things like shipping/billing location and order total. + Stel belastingtarieven in gebaseerd op verzend/factuurlocatie of bestellingtotaal. + + + General settings + Algemene instellingen + + + Store configurations + Winkel configuraties + + + Configure general settings for this store. + Stel hier de algemene instellingen voor deze webwinkel in + + + Order status + Bestelstatus + + + Define order status. + Bestelstatus definiëren + + + Notifications + Meldingen + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + Gebruik het berichtencentrum om e-mails en dergelijke te beheren. + + + Documents + Documenten + + + Define documents. + Definieer documenten. + + + Miscellaneous + Diversen + + + Translations + Vertalingen + + + Replace given labels for certain languages. + Vervang aangepaste labels voor ingestelde talen. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/subdivisions.php b/system/modules/isotope/languages/nl/subdivisions.php deleted file mode 100644 index 2b37c662fe..0000000000 --- a/system/modules/isotope/languages/nl/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + Winkel ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Verschillende winkel ID's groeperen een set van configuraties. Een gebruikers winkelwagen en adressen worden gedeeld tussen de gezamenlijke winkel ID's. + + + Label + Label + + + Please enter a custom label for this address. + Vul een eigen label in voor dit adres. + + + Gender + Geslacht + + + Please choose the gender. + Voer alstublieft uw geslacht in. + + + Salutation + Aanhef + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Vul de titel in (Dhr., Mevr., Dr., Prof.). + + + First name + Voornaam + + + Please enter the first name. + Vul de voornaam in. + + + Last name + Achternaam + + + Please enter the last name. + Vul de achternaam in. + + + Date of birth + Geboortedatum + + + Please enter the date of birth. + Vul de geboortedatum in. + + + Company + Bedrijfsnaam + + + You can enter a company name here. + Hier kunt u een bedrijfsnaam invoeren. + + + VAT No. + BTW nr. + + + Please enter a VAT number. + Vul een BTW nummer in. + + + Street + Straatnaam + nr. + + + Please enter the street name and the street number. + Vul de straatnaam en huisnummer in. + + + Street 2 + Straatnaam 2 + + + Enter a second street info if there's any. + Vul een tweede regel voor de straatnaam in, indien van toepassing. + + + Street 3 + Straatnaam 3 + + + Enter a third street info if there's any. + Vul een derde regel voor de straatnaam in, indien van toepassing. + + + Postal code + Postcode + + + Please enter the postal code. + Vul de postcode in. + + + City + Plaats + + + Please enter the name of the city. + Vul de plaatsnaam in. + + + State + Provincie + + + Please enter the name of the state. + Vul de naam van de provincie in. + + + Country + Land + + + Please select a country. + Selecteer uw land alstublieft. + + + Phone number + Telefoonnummer + + + Please enter the phone number. + Vul het telefoonnummer in. + + + E-mail address + E-mailadres + + + Please enter a valid e-mail address. + Vul een geldig e-mailadres in. + + + Default billing address + Standaard factuuradres + + + Is this your default billing address? + Is dit uw standaard factuuradres? + + + Default shipping address + Standaard verzendadres + + + Is this your default shipping address? + Is dit uw standaard verzendadres? + + + Store + Winkel + + + Personal data + Persoonlijke gegevens + + + Address details + Adresinformatie + + + Contact details + Contactinformatie + + + Default address + Standaard adres + + + Personal data + Persoonlijke gegevens + + + Address details + Adresinformatie + + + Contact details + Contactinformatie + + + Default address + Standaard adres + + + New address + Nieuw adres + + + Create a new address + Maak een nieuw adres aan + + + Edit address + Bewerk adres + + + Edit address ID %s + Bewerk adres id %s + + + Duplicate address + Kopier adres + + + Duplicate address ID %s + Kopier adres id %s + + + Delete address + Verwijder adres + + + Delete address ID %s + Verwijder adres id %s + + + Address details + Adresinformatie + + + Show details of address ID %s + Toon informatie van adres id %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_attribute.php b/system/modules/isotope/languages/nl/tl_iso_attribute.php deleted file mode 100644 index eb67e0aea6..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_attribute.php +++ /dev/null @@ -1,138 +0,0 @@ -).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][0] = 'Datum'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][1] = 'Controleert of de invoer van de datumnotatie gelijk is de standaard datumnotatie.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][0] = 'Tijd'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][1] = 'Controleert of de invoer gelijk is aan de standaard tijdnotatie.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][0] = 'Datum en tijd'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][1] = 'Controleert of de invoer gelijk is aan de standaard tijd en datumnotatie.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][0] = 'Telefoonnummer'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][1] = 'Staat numerieke karakters toe inclusief plus (+), min (-), slash(/), Haakjes () en spatie ( ).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][0] = 'E-mailadres'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][1] = 'Controleert of de invoer een geldig e-mailadres is.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][0] = 'URL formaat'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][1] = 'Controleert of de invoer een gelde URL is.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][0] = 'Prijs'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][1] = 'Controleert of de invoer een geldige prijs is.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][0] = 'Korting'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][1] = 'Controleert of de invoer een geldige korting is
bijvoorbeeld -10%, -10, +10 of +10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][0] = 'Toeslag'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][1] = 'Controleert of de invoer een geldige toeslag is
bijvoorbeeld 10.00 of 10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['custom'] = 'Aangepaste volgorde'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_asc'] = 'Bestandsnaam (oplopend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_desc'] = 'Bestandsnaam (aflopend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_asc'] = 'Datum (oplopend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_desc'] = 'Datum (aflopend)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['random'] = 'Willekeurig'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][0] = 'Nieuw attribuut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][1] = 'Maak een nieuw attribuut aan'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][0] = 'Bewerk attribuut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][1] = 'Bewerk attribuut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][0] = 'Kopier attribuut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][1] = 'Kopier attribuut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][0] = 'Verwijder attribuut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][1] = 'Verwijderen kenmerk ID% s. De database kolom is niet verwijderd, u moetditu handmatig bijwerken van de database met behulp van de installatie tool of repository manager.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][0] = 'Toon attribuut details'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][1] = 'Toon details voor attribuut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['deleteConfirm'] = 'Wil je echt wilt attribuut ID %s verwijderen. Database veld is niet verwijderd, u moet dit handmatig bijwerken in de database met behulp van de installatie tool of repository manager.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['attribute_legend'] = 'Attribuut naam en type'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['description_legend'] = 'Omschrijving'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['options_legend'] = 'Opties'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['config_legend'] = 'Attribuut instellingen'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['search_filters_legend'] = 'Zoek en sorteerinstellingen'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['store_legend'] = 'Bestand opslaan'; diff --git a/system/modules/isotope/languages/nl/tl_iso_attribute.xlf b/system/modules/isotope/languages/nl/tl_iso_attribute.xlf new file mode 100644 index 0000000000..8d3b90a714 --- /dev/null +++ b/system/modules/isotope/languages/nl/tl_iso_attribute.xlf @@ -0,0 +1,668 @@ + + + + + Name + Naam + + + Please enter a name for this attribute. + Vul een naam in voor dit attribuut. + + + Internal name + Naam intern + + + Internal name is the database field name and must be unique. + De interne naam is de naam van de database tabel en moet uniek zijn + + + Type + Soort + + + Please select a type for this attribute. + Selecteer het soort attribuut + + + Field Group + Productkoppeling + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + Selecteer de plaats waar dit attribuut aan het product is gekoppeld, dit is om de gerelateerde velden bij elkaar te houden. + + + Add to product variants wizard + Voeg toe aan productvarianten wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + Wanneer deze is geselecteerd, dan wordt het attribuut toegevoegd aan de productvariant wizard, voor gebruik als productvariant optie. + + + Defined by customer + Gedefinieerd door bezoeker + + + Please select if this value defined by the customer (frontend). + Selecteer dit veld wanneer de waarde moet worden ingevoerd door de bezoeker + + + Description + Omschrijving + + + The description is shown as a hint to the backend user. + De omschrijving wordt getoond als hint aan de CMS gebruikers + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + Opties + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + Vul één of meer opties in. Gebruik de knoppen om toe te voegen, te verplaatsen of een optie te verwijderen. Als je zonder JavaScript werkt, moet je eerst opslaan voordat de volgorde kan worden aangepast! + + + Value + Waarde + + + Label + Label + + + Default + Standaard + + + Group + Groep + + + Options + Opties + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + Verplicht veld + + + The field must be filled when editing a product. + Als dit geselecteerd is, wordt wanneer dit veld niet is ingevuld, het product niet toegevoegd aan het winkelwagentje. + + + Multiple selection + Meervoudige selectie + + + Allow visitors to select more than one option. + Sta bezoekers toe meer dan één optie te selecteren. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + Toegestane bestandtypen + + + A comma separated list of valid file extensions. + Een door komma's gescheiden lijst van geldige extensies. + + + Use HTML editor + Gebruik HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + Selecteer een TinyMCE configuratie bestand om de rich text editor in te schakelen. + + + Multilingual + Meertalig + + + Check here if this field should be translated. + Controleer hier of dit veld moeten worden vertaald. + + + Input validation + Invoercontrole + + + Validate the input against a regular expression. + Controleren van de input tegen een reguliere expressie. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + Maximale lengte + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + Beperk het veld de lengte van een bepaald aantal karakters (tekst) of bytes (bestand upload + + + Foreign table & field + Aparte Tabel & Veld + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + In plaats van het toevoegen van opties kunt u een table.field combinatie te selecteren uit de database. Om meertalige foreign keys te gebruiken voer er één in per regel en geef de taal aan (voorbeeld: nl=tl_table.field) + + + Parent field + Moederveld + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + Selecteer het bovenliggende veld, dat moet van het type "Select-Menu". Voor ouder-kind relatie te werken, definiëren elke optie van deze ouder gebied als groep van de voorwaardelijke select-menu. + + + Show files + Toon bestanden + + + Show both files and folders. + Toon bestanden en mappen. + + + Files only + Alleen bestanden + + + Remove the radio buttons or checkboxes next to folders. + Toon geen radio button of checkboxen naast mappen + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + Veldtype + + + Display radio buttons or checkboxes next to folders. + Toon radio buttons of checkboxen naast mappen. + + + Order by + Sortereervolgorde + + + Please choose the sort order. + Kies de sorteervolgorde + + + Root directory + Startmap + + + You can limit the file tree by defining a root directory here. + U kunt de beschikbare mappen beperken door hier een startmap in te stellen. + + + Store uploaded files + Geüploade bestanden opslaan + + + Move the uploaded files to a folder on the server. + Verplaats de geüploade bestanden naar een map op de server. + + + Target folder + Doelmap + + + Please select the target folder from the files directory. + Kies de doelmap uit het bestandsbeheer. + + + Use home directory + Gebruik de home directory + + + Store the file in the home directory if there is an authenticated user. + Bewaar het bestand in de home directory als een gebruiker is ingelogd. + + + Preserve existing files + Behoud bestaande bestanden + + + Add a numeric suffix to the new file if the file name already exists. + Voeg een numerieke suffix to aan een bestandsnaam als deze reeds bestaat. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + Doelmap + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + Voeg "Sorteren op" toe aan de optielijst + + + This field will be sortable in the listing module provided the attribute is visible to customers. + Dit veld zal sorteerbaar worden in de lijstmodule wanneer dit attribuut zichtbaar is voor klanten. + + + Backend filterable + CMS sorteren + + + Can this attribute be used in a backend filter? + Kan dit attribuut worden gebruikt voor sorteren in het CMS + + + Backend searchable + CMS Doorzoekbaar + + + Should the field be available in the backend search? + + + Frontend filterable + Sorteerbaar door bezoekers + + + Can this attribute be used in a frontend filter? + Kan dit attribuut worden gebruikt in de sorteermodule + + + Frontend searchable + Doorzoekbaar voor bezoekers + + + Should the search engine look in this field for search terms? + Zou de zoekmachine zoeken in dit veld voor data? + + + Date picker + Datumkiezer + + + Show a date picker for this field. + Toon een datumkiezer voor dit veld. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + Checkbox + + + Radio + Radio + + + Numeric characters + Numerieke karakters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + Staat numerieke karakters toe, behalve min (-), punt (.) en spatie( ). + + + Alphabetic characters + Alphabetische karakters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + Staat alphabetische karakters toe, behalve min (-), punt (.) en spatie( ). + + + Alphanumeric characters + Alfanumerieke karakters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + Staat alphabetische en numerieke karakters toe, behalve min (-), punt (.) en spatie( ). + + + Extended alphanumeric characters + Uitgebreide alfanumerieke tekens + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + Staat alle karakters toe behalve speciale tekens die meestal worden gecodeerd om veiligheidsredenen (# / () <=>). + + + Date + Datum + + + Checks whether the input matches the global date format. + Controleert of de invoer van de datumnotatie gelijk is de standaard datumnotatie. + + + Time + Tijd + + + Checks whether the input matches the global time format. + Controleert of de invoer gelijk is aan de standaard tijdnotatie. + + + Date and time + Datum en tijd + + + Checks whether the input matches the global date and time format. + Controleert of de invoer gelijk is aan de standaard tijd en datumnotatie. + + + Phone number + Telefoonnummer + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + Staat numerieke karakters toe inclusief plus (+), min (-), slash(/), Haakjes () en spatie ( ). + + + E-mail address + E-mailadres + + + Checks whether the input is a valid e-mail address. + Controleert of de invoer een geldig e-mailadres is. + + + URL format + URL formaat + + + Checks whether the input is a valid URL. + Controleert of de invoer een gelde URL is. + + + Price + Prijs + + + Checks whether the input is a valid price. + Controleert of de invoer een geldige prijs is. + + + Discount + Korting + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + Controleert of de invoer een geldige korting is <br> bijvoorbeeld -10%, -10, +10 of +10% + + + Surcharge + Toeslag + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + Controleert of de invoer een geldige toeslag is <br> bijvoorbeeld 10.00 of 10% + + + Custom order + Aangepaste volgorde + + + File name (ascending) + Bestandsnaam (oplopend) + + + File name (descending) + Bestandsnaam (aflopend) + + + Date (ascending) + Datum (oplopend) + + + Date (descending) + Datum (aflopend) + + + Random order + Willekeurig + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + Nieuw attribuut + + + Create a new attribute. + Maak een nieuw attribuut aan + + + Edit attribute + Bewerk attribuut + + + Edit attribute ID %s. + Bewerk attribuut ID %s. + + + Copy attribute + Kopier attribuut + + + Copy attribute ID %s. + Kopier attribuut ID %s. + + + Delete attribute + Verwijder attribuut + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Verwijderen kenmerk ID% s. De database kolom is niet verwijderd, u moetditu handmatig bijwerken van de database met behulp van de installatie tool of repository manager. + + + Attribute details + Toon attribuut details + + + Show details for attribute ID %s. + Toon details voor attribuut ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Wil je echt wilt attribuut ID %s verwijderen. Database veld is niet verwijderd, u moet dit handmatig bijwerken in de database met behulp van de installatie tool of repository manager. + + + Attribute name & type + Attribuut naam en type + + + Description + Omschrijving + + + Options + Opties + + + Attribute configuration + Attribuut instellingen + + + Search & Filtering Settings + Zoek en sorteerinstellingen + + + Store file + Bestand opslaan + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_attribute_option.php b/system/modules/isotope/languages/nl/tl_iso_attribute_option.php deleted file mode 100644 index 358fa42fac..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_attribute_option.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Type + Soort + + + Select a type for this label. + + + Option + + + Group + Groep + + + Default + Standaard + + + Check here if this should be the default option. + + + Label + Label + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Prijs + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + Publicatie instellingen + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_baseprice.php b/system/modules/isotope/languages/nl/tl_iso_baseprice.php deleted file mode 100644 index c0226bffcd..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_baseprice.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Name + Naam + + + Enter a name for this base price. + Vul een naam in voor deze eenheidsprijs. + + + Base amount + Hoeveelheid per eenheid + + + Enter the base amount (e.g. "100"). + Vul de hoeveelheid per eenheid in (bijv. "100"). + + + Label + Label + + + Enter a label for this base price (e.g. "%s per 100g".) + Vul een label in voor de eenheidsprijs (bijv. "%s per 100gr"). + + + New base price + Nieuwe eenheidsprijs + + + Create a new base price + Maak een nieuwe eenheidsprijs + + + Edit base price + Wijzig eenheidsprijs + + + Edit base price ID %s + Wijzig eenheidsprijs ID %s + + + Duplicate base price + Dupliceer eenheidsprijs + + + Duplicate base price ID %s + Dupliceer eenheidsprijs ID %s + + + Delete base price + Verwijder eenheidsprijs + + + Delete base price ID %s + Verwijder eenheidsprijs ID %s + + + Base price details + Details Eenheidsprijs + + + Show details of base price ID %s + Toon details van eenheidsprijs ID %s + + + Base price + Eenheidsprijs + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_config.php b/system/modules/isotope/languages/nl/tl_iso_config.php deleted file mode 100644 index bd924d27a3..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_config.php +++ /dev/null @@ -1,144 +0,0 @@ - + + + + Configuration Name + Naam van configuratie + + + Please enter a name for your configuration. This is only used for back end reference. + Vul een naam in voor deze configuratie. Dit wordt alleen gebruikt voor verwijzingen in het backend. + + + Label + Label + + + The label is used in frontend, e.g. for config switcher. + Het label wordt gebruikt in de frontend, bijv. voor het config switcher. + + + Set as default store + Stel in als standaardwinkel + + + Set this as the default store for back-end currency formatting and other locale-specific information. + Stel deze als standaard op te slaan voor de back-end munt formattering en andere locale-specifieke informatie. + + + First name + Voornaam + + + Please enter the first name (if applicable). + Vul de voornaam (indien van toepassing). + + + Last name + Achternaam + + + Please enter the last name (if applicable). + Vul de achternaam (indien van toepassing). + + + Company + Bedrijfsnaam + + + You can enter a company name here (if applicable). + Hier kunt u uw bedrijfsnaam invoeren. + + + VAT No. + BTW nr. + + + Please enter a VAT number. + Vul een BTW nummer in. + + + Street + Straatnaam + nr. + + + Please enter the street name and the street number. + Vul de straatnaam en huisnummer in. + + + Street 2 + Straatnaam 2 + + + Enter a second street info if there's any. + Vul een tweede regel voor de straatnaam in, indien van toepassing. + + + Street 3 + Straatnaam 3 + + + Enter a third street info if there's any. + Vul een derde regel voor de straatnaam in, indien van toepassing. + + + Postal code + Postcode + + + Please enter the postal code. + Vul de postcode in. + + + City + Plaats + + + Please enter the name of the city. + Vul de plaatsnaam in. + + + State + Provincie + + + Please enter the name of the state. + Vul de naam van de provincie in. + + + Country + Land + + + Please select a country. This is also the default for custom shipping/billing addresses. + Selecteer uw land alstublieft. + + + Phone number + Telefoonnummer + + + Please enter the phone number. + Vul het telefoonnummer in. + + + Shipping email address + E-mailadres verzending + + + Please enter a valid e-mail address. + Vul een geldig e-mailadres in. + + + Address fields + Adresvelden + + + Select the fields for a billing and shipping address when checking out. + Selecteer de velden voor factuur- en leveradressen tijdens het afrekenen. + + + Address field + Adresveld + + + For billing address + Voor factuuradres + + + For shipping address + Voor verzendadres + + + Disabled + Uitgeschakeld + + + Enabled (not mandatory) + Ingeschakeld (niet verplicht) + + + Enabled (mandatory) + Ingeschakeld (verplicht) + + + Default billing country + Standaard land voor facturatie + + + Select a default country for new billing addresses. + Selecteer het standaard land voor nieuwe factuuradressen. + + + Default shipping country + Standaard land voor verzending. + + + Select a default country for new shipping addresses. + Selecteer het standaard land voor nieuwe verzendadressen. + + + Available billing countries + Uitvoerlanden Facturatie + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + Selecteer hier de landen waaruit bezoekers mogen afrekenen + + + Available shipping countries + Uitvoerlanden Verzending + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + Selecteer hier de landen waaruit bezoekers mogen afrekenen + + + Limit member countries + Beperk landen + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + Beperk landen (Registratie, persoonlijke gegevens) aan de gecombineerde lijst van de facturering en verzending landen. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + Kies een opmaak voor de prijzen. + + + Rounding precision + Afronding precisie + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + Hoeveel decimale precicion te hebben. Stel je iets tussen 0 en 2 voor alle betalingsmogelijkheden om correct te werken. Zie PHP handleiding voor round(). + + + Rounding increment + Afronding + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + Bepaalde valuta (bijvoorbeeld Zwitserse franken) geen ondersteuning voor 0.01 + + + Currency + Valuta + + + Please select a currency for this store. + Selecteer een valuta voor deze winkel. + + + Position of currency code/symbol + Positie van de valuta code / symbool + + + Select if you want to show currency on the left or right side of the price. + Selecteer deze optie als u wilt munt show op de linker-of rechterkant van de prijs. + + + Use currency symbol + Gebruik valutasymbool + + + Use a currency symbol ($, €) if available. + Gebruik een valutasymbool ($, €), indien beschikbaar. + + + Include blank space + Spatie toevoegen + + + Add space between price and currency symbol. + Voeg een spatie in tussen de prijs en het valutasymbool. + + + Price factor + Prijsfactor + + + Defaults should be 1. You can use this to convert between multiple currencies. + Standaardwaarden moeten worden 1. U kunt dit gebruiken om te converteren tussen meerdere valuta's. + + + Calculation mode + Berekeningswijze + + + Divide or multiply using this factor. + Splitsen of te vermenigvuldigen met deze factor. + + + Automatic currency conversion + Automatische valutaomrekening + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + Schakel automatisch updaten van prijsomrekeningfactoren in via een online valuta-omrekeningsleverancier. + + + Currency origin + Bronvaluta + + + Please select the source currency for calculation. + Kies de bronvaluta voor omrekenen. + + + Currency Data Provider + Valutagegevens leverancier + + + Select an available online provider of currency calculation data. + Kies een beschikbare online leverancier van valuta omrekeningsgegevens. + + + Order number prefix + Ordernummer voorvoegsel + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + U kunt een voorvoegsel, bijv. het fiscale jaar toevoegen dat automatische voor het ordernummer wordt geplaatst. + + + Order number length + Lengte ordernummer + + + Select the minimum length of the order number (not including order prefix). + Selecteer de minimumlengte van het ordernummer (exclusief voorvoegsel) + + + Status for new orders + Status voor nieuwe bestellingen + + + Choose a matching status for new orders. A payment module can override this. + Selecteer een status voor nieuwe bestellingen. Een betaalmodule kan dit wijzigen. + + + Order status on error + Bestelstatus bij fouten + + + Select an order status if something goes wrong (e.g. payment). + Selecteer een orderstatus in het geval er iets mis gaat (bijv. betaling). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + Factuur Logo + + + Select a logo to show up on the invoices for this store. + Selecteer een logo te laten zien op de facturen voor deze winkel. + + + Templates folder + Templatemap + + + Here you can select a templates folder to search before every other template folder. + Hier kunt u een map Sjablonen om te zoeken voor elke andere template map. + + + Minimum subtotal + Minimum subtotaal + + + The minimum cart subtotal required to order. Enter 0 to disable. + Het minimum subtotaal van de winkelwagen wat nodig is om een bestelling te kunnen plaatsen. Vul 0 in om te deactiveren. + + + Duration to mark a product as "new" + Tijd dat een product als "nieuw" gemarkeerd wordt + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + Als u nieuwe producten wilt markeren, voer dan hier een tijdperiode in. Hierdoor wordt er overal automatisch een CSS klasse "new" aan ieder product toegevoegd binnen Isotope eCommerce. + + + Enable Google Analytics + Google Analytics inschakelen + + + Enable e-commerce tracking with Google Analytics. + E-commerce tracking met Google Analytics inschakelen. + + + Account + Account + + + Please provde the account key (UA-XXXXXXX-X). + Vul het Google Tracking-ID in (UA-XXXXXXX-X). + + + Track member + Bezoeker volgen + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + Voer tokens in om de bezoeker mee te volgen (bijv. ##firstname## ##lastname##). LET OP: ga na of dit in uw situatie toe is gestaan. + + + To the left of price + Aan de linkerkant van de prijs + + + To the right of price + Aan de rechterkant van de prijs + + + Divide + verdelen + + + Multiply + Vermenigvuldigen + + + Name + Naam + + + Width + Breedte + + + Height + Hoogte + + + Mode + Mode + + + Watermark image + Watermerk afbeelding + + + Position + Positie + + + European Central Bank + Europese centrale bank + + + Swiss Federal Department of Finance + Zwitsers departement van financiën + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + Nieuwe instelling + + + Create a new store configuration. + Maak een nieuwe winkelinstelling aan + + + Edit configuration + Bewerk instelling + + + Edit store configuration ID %s. + Bewerk instelling ID %s + + + Copy configuration + Kopier instelling + + + Copy store configuration ID %s. + Kopier instelling ID %s + + + Delete configuration + Verwijder instelling + + + Delete store configuration ID %s. + Verwijder instelling ID %s + + + Show configuration details + Toon details instelling + + + Show details for store configuration ID %s. + Toon details voor instelling ID %s + + + Name + Naam + + + Address configuration + Adresinstellingen + + + Configuration + Configuratie + + + Checkout + Afrekenen + + + Pricing + + + Currency formatting + Valutaopmaak + + + Currency conversion + Valutaomrekening + + + Orders + Bestellingen + + + Images + Afbeeldingen + + + URL settings + URL instellingen + + + Products + Producten + + + Analytics + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_document.php b/system/modules/isotope/languages/nl/tl_iso_document.php deleted file mode 100644 index 63946bf324..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_document.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Document name + Documentnaam + + + Enter a name for this document. This will only be used in the backend. + Vul een naam in voor dit bestand. Dit wordt alleen in het backend gebruikt. + + + Type of document + Type document + + + Select a particular document rendering class. + + + Logo + Logo + + + Select a logo. + + + Document title + Documenttitel + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + Bestandstitel + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + Documenttemplate + + + Choose a template you want to render this document with. + + + Gallery + Gallerij + + + Select a gallery to render images. + Kies een gallerij om afbeeldingen mee weer te geven. + + + Collection template + Verzameling template + + + Choose a collection template you want to render the products with. + Kies een verzameling template waarmee producten weergegeven moeten worden. + + + Sorting + Volgorde + + + Define in what order the collection items should be listed. + Geef aan in welke volgorde de items in deze verzameling weergegeven moeten worden. + + + New document + Nieuw document + + + Create a new document + + + Edit document + Bewerk document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + Algemene configuratie + + + Template + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_download.php b/system/modules/isotope/languages/nl/tl_iso_download.php deleted file mode 100644 index f1ceab76f2..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_download.php +++ /dev/null @@ -1,47 +0,0 @@ - + + + + Attachement + Bijlage + + + Select the file or folder content you want to sell. + Selecteer het bestand dat u wil verkopen + + + Downloads allowed + Downloads toegestaan + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + Het aantal keer dat dit bestand kan worden gedownload per bestelling (vermenigvuldigd met de verkochte hoeveelheid). Voer 0 in voor onbeperkte downloads. + + + Expiration + Geldigheid + + + Define if the download(s) expires after a certain time period. + Geef aan of de download(s) verloopt na een bepaalde tijd. + + + Download available + Download beschikbaar + + + Click here to include this download in new orders. + Klik hier om deze download in nieuwe bestellingen bij te voegen. + + + Add download + Download toevoegen + + + Add a new download to this product + Voeg een nieuwe download voor dit product + + + Edit download + Bewerk download + + + Edit download ID %s + Bewerk download ID %s + + + Duplicate download + Kopier download + + + Duplicate download ID %s + Kopier download ID %s + + + Move download + Verplaats download + + + Move download ID %s + Verplaats download ID %s + + + Delete download + Verwijder download + + + Delete download ID %s + Verwijder download ID %s + + + Publish/unpublish download + Publiceer/verberg download + + + Publish/unpublish download ID %s + Publiceer/verberg download ID %s + + + Download details + Download details + + + Show details of download ID %s + Toon details van download ID %s + + + Edit product + Bewerk product + + + Edit this product + Bewerk dit product + + + Paste at the top + Boven invoegen + + + Paste after download ID %s + Invoegen onder download ID %s + + + Add new at the top + Maak nieuwe bovenaan + + + Add new after download ID %s + Maak nieuwe onder download ID %s + + + Attachement + Bijlage + + + Limits + Limieten + + + Publishing + Publicatie instellingen + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_gallery.php b/system/modules/isotope/languages/nl/tl_iso_gallery.php deleted file mode 100644 index 1690802742..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_gallery.php +++ /dev/null @@ -1,57 +0,0 @@ - + + + + Name + Naam + + + Enter a name for this gallery. + Vul een naam in voor deze gallerij. + + + Type + Soort + + + Please select a gallery type. + Kies een gallerijtype. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + Deze afbeelding wordt gebruikt als een productafbeelding niet kan worden gevonden of er geen gekoppeld zijn aan een product. + + + Main image size + Afmeting hoofdafbeelding + + + Please enter a width and height for the main product image. + Vul een breedte en hoogt in voor de hoofdafbeelding van producten. + + + Gallery image size + Formaat gallerij-afbeeldingen + + + Please enter a width and height for the additional images. + Vul een breedte en hoogt in voor overige afbeeldingen. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + Afmeting afbeelding lightbox + + + Please enter a width and height for lightbox images. + Vul een breedte en hoogt in voor de lightbox afbeeldingen + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + Watermerk hoofdafbeelding + + + Select an image if you want to add a watermark to the main product image. + Kies een afbeelding als u een watermerk toe wilt voegen aan de hoofdafbeelding van het product. + + + Main watermark position + Positie van watermerk hoofdafbeelding + + + Select the position where to apply the watermark to. + Kies de positie waar het watermerk geplaatst moet worden. + + + Gallery watermark image + Watermerk gallerij-afbeeldingen + + + Select an image if you want to add a watermark to the gallery images. + Kies een afbeelding als u een watermerk toe wilt voegen aan de afbeeldingen in de gallerij. + + + Gallery watermark position + Positie van watermerk gallerij-afbeeldingen + + + Select the position where to apply the watermark to. + Kies de positie waar het watermerk geplaatst moet worden. + + + Lightbox watermark image + Watermerk lightbox-afbeelding + + + Select an image if you want to add a watermark to the lightbox images. + Kies een afbeelding als u een watermerk toe wilt voegen aan de afbeeldingen in een lightbox. + + + Lightbox watermark position + Positie van watermerk lightbox + + + Select the position where to apply the watermark to. + Kies de positie waar het watermerk geplaatst moet worden. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + Kies de positie waar het watermerk geplaatst moet worden. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + Nieuwe gallerij + + + Create a new gallery + Maak een nieuwe gallerij + + + Edit gallery + Bewerk gallerij + + + Edit gallery ID %s + Bewerk gallerij ID %s + + + Duplicate gallery + Dupliceer gallerij + + + Duplicate gallery ID %s + Dupliceer gallerij ID %s + + + Delete gallery + Verwijder gallerij + + + Delete gallery ID %s + Verwijder gallerij ID %s + + + Gallery details + Gallerij details + + + Show details of gallery ID %s + Toon details van gallerij ID %s + + + Name &amp; Type + Naam &amp; type + + + Image sizes + Afbeeldingsformaten + + + Configuration + Configuratie + + + Watermark + Watermerk + + + Lightbox/Mediabox + + + Template settings + + + No link action + Geen link actie + + + Link to the product reader + Link naar de productlezer + + + Open lightbox/mediabox + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_group.php b/system/modules/isotope/languages/nl/tl_iso_group.php deleted file mode 100644 index be1a24d76d..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_group.php +++ /dev/null @@ -1,41 +0,0 @@ - + + + + Group name + Groepnaam + + + Please enter a name for this group. + Vul een naam voor deze groep in. + + + Default product type + Standaard productsoort + + + Here you can specify a default product type for this product group. + Hier kunt u een standaard productsoort voor deze groep opgeven. + + + New group + Nieuwe groep + + + Create a new group + Maak een nieuwe groep aan + + + Edit group + Bewerk groep + + + Edit group ID %s + Bewerk groep ID %s + + + Duplicate group + Dupliceer groep + + + Duplicate group ID %s + Dupliceer groep ID %s + + + Duplicate with subgroups + Dupliceer inclusief subgroepen + + + Duplicate group ID %s with subgroups + Dupliceer groep ID %s inclusief subgroepen + + + Move group + Verplaats groep + + + Move group ID %s + Verplaats groep ID %s + + + Delete group + Verwijder groep + + + Delete group ID %s + Verwijder groep ID %s + + + Group details + Details groep + + + Show details of group ID %s + Laat details van groep ID %s zien + + + Paste after + Invoegen achter + + + Paste after group ID %s + Invoegen achter groep ID %s + + + Paste into + Invoegen in + + + Paste into group ID %s + Invoegen in groep ID %s + + + Product group settings + Productgroep instellingen + + + Product Groups + Productgroepen + + + Manage product groups + Beheer productgroepen + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_integrity.php b/system/modules/isotope/languages/nl/tl_iso_integrity.php deleted file mode 100644 index 1bdc7549df..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_label.php b/system/modules/isotope/languages/nl/tl_iso_label.php deleted file mode 100644 index 655d3d1bee..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_label.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Language + Taal + + + Please select a language. + Kies alstublieft een taal. + + + Label + Label + + + Enter the source label. + Vul het bronlabel in. + + + Replacement + Vervanging + + + Enter the replacement in the specified language. + Vul de vervanging in voor de gekozen taal. + + + New label + Nieuw label + + + Create a new label + Maak een nieuw label aan + + + Edit label + Label aanpassen + + + Edit label ID %s + Bewerk label ID %s + + + Duplicate label + Kopieer label + + + Duplicate label ID %s + Kopier label ID %s + + + Delete label + Verwijder label + + + Delete label ID %s + Verwijder label ID %s + + + Label details + Label details + + + Show details of label ID %s + Toon details van label ID %s + + + Label translation + Label vertaling + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_orderstatus.php b/system/modules/isotope/languages/nl/tl_iso_orderstatus.php deleted file mode 100644 index 6120d68589..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_orderstatus.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Naam + + + Please enter a name for this status. + Vul een naam in voor deze status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + Bestelling is betaald + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + Geeft aan dat de bestelling met deze status betaald is. Dit staat bijvoorbeeld toe dat bestanden gedownload kunnen worden. + + + Show on welcome screen + Toon op welkomstscherm + + + Show number of orders with this status on the backend welcome screen. + Toon het aantal bestellingen met deze status op het welkomstscherm van het backend. + + + Notification + Melding + + + Please select a notification. + Kies alstublieft een melding. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + Nieuwe bestelstatus + + + Create a new order status + Maak een nieuwe bestelstatus + + + Edit order status + Pas bestelstatus aan + + + Edit order status ID %s + Pas bestelstatus ID %s aan + + + Duplicate order status + Dupliceer bestelstatus + + + Duplicate order status ID %s + Dupliceer bestelstatus ID %s + + + Move order status + Verplaats bestelstatus + + + Move order status ID %s + Verplaats bestelstatus ID %s + + + Delete order status + Verwijder bestelstatus + + + Delete order status ID %s + Verwijder bestelstatus ID %s + + + Order status details + Details van de bestelstatus + + + Show details of order status ID %s + Toon details van de bestelstatus ID %s + + + Paste after + Invoegen achter + + + Paste after order status ID %s + Invoegen achter bestelstaus ID %s + + + Paste into + Invoegen in + + + Paste into order status ID %s + Invoegen in bestelstaus ID %s + + + Name + Naam + + + E-Mail Notification + E-mail melding + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_payment.php b/system/modules/isotope/languages/nl/tl_iso_payment.php deleted file mode 100644 index 4ad4307746..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_payment.php +++ /dev/null @@ -1,80 +0,0 @@ - + + + + Payment Method Name + Naam betaalmethode + + + Enter a name for this payment method. This will only be used in the backend. + Vul een naam in voor deze betaalmethode. Deze wordt alleen in het backend weergegeven. + + + Payment Method Label + Betaalmethode label + + + The label will be shown to customers on checkout. + Het label wordt weergegeven voor klanten tijdens het afrekenen. + + + Type of Payment Gateway + Soort betalingsaanbieder + + + Select a particular payment gateway + Kies een soort betalingsaanbieder + + + Payment Note + Opmerking bij betaalmethode + + + This note can be sent in confirmation mails (##payment_note##). + Deze opmerking kan meegestuurd worden in bevestigingse-mails (##payment_note##). + + + Status for new orders + Status voor nieuwe bestellingen + + + Choose a matching status for new orders. + Kies een status voor nieuwe bestellingen. + + + Minimum total + Minimum totaal + + + Enter a number greater zero to exclude this payment method for lower priced orders. + Vul een getal groter dan nul in om deze betaalmethode te verbergen bij bestellingen met een lager totaalbedrag. + + + Maximum total + Maximun totaal + + + Enter a number greater zero to exclude this payment method for higher priced orders. + Vul een getal groter dan nul in om deze betaalmethode te verbergen bij bestellingen met een hoger totaalbedrag. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + Methode hoeveelheidsberekening + + + Select a calculation mode for min/max quantity. + Kies een berekeningswijze voor min/max hoeveelheid. + + + Total quantity in cart + Totale hoeveelheid in winkelwagen + + + Total products in cart + Totaal aantal producten in winkelwagen + + + Available countries + Beperk landen + + + Select the countries where this payment method may be used (customer's billing address). + Kies de landen waarvoor deze betaalmethode gebruikt wordt (gebaseerd op het factuuradres van de klant). + + + Shipping methods + Verzendmethoden + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + U kunt deze betaalmethode beperken tot enkele verzendmethodes (bijv. alleen contant betalen bij afhalen). + + + Product types + Productsoorten + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + U kan deze betaalmethode beperken tot bepaalde product soorten. Als de winkelwagen een product soort bevat die niet geselecteerd is, is deze betaalmethode niet beschikbaar. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Winkel configuraties + + + You can restrict this payment method to certain shop configurations. + + + Price + Prijs + + + Enter a price or percent value (e.g. "10" or "10%"). + Vul een prijs of percentage in (bijv. "10" of "10%"). + + + Tax Class + Belastingklasse + + + Please select a tax class for the price. + Kies een belastingklasse voor deze prijs. + + + Transaction type + Transactiesoort + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + Kies of u meteen wilt doorverwijzen om de betaling te verichten, of de bestelling toestaan (en vasthouden) om later te betalen (bijv. bij verzending). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + PayPal account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + PSPID + + + The PSPID is your unique identification for the payment method. + Het PSPID is uw unieke identificatie van de betaalmethode. + + + HTTP method + HTTP methode + + + Type of HTTP data transfer from and to the servers. + Type HTTP gebruikt voor data van en naar servers. + + + Hash method + Hashmethode + + + Hashing algorithm for data transfer from and to the servers. + Hashing methode voor data van en naar servers. + + + SHA-1 + SHA-1 + + + SHA-256 + SHA-256 + + + SHA-512 + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + Betaalmethode + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + Hashmethode + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + Betaalmethode + + + Please select a payment method for this method. + + + Credit card + Creditcard + + + Debig card + Debitcard + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + Wachtwoord + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + Betaalmethoden + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Omschrijving + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Betaalmethoden + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + Wachtwoord + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + Ledengroepen + + + Restrict this payment method to certain member groups. + Beperk deze betaalmethode tot bepaalde ledengroepen. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + Alleen zichtbaar voor gasten + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + Ingeschakeld + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + Creditcard + + + Debit card + Debitcard + + + Prepayment + Voorafbetaling + + + Invoice + Factuur + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + Naam &amp; type + + + Additional notes + Aanvullende berichten + + + General configuration + Algemene configuratie + + + Payment gateway configuration + Configuratie betalingsaanbieder + + + Price + Prijs + + + Template + Template + + + Expert settings + Expert instellingen + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_product.php b/system/modules/isotope/languages/nl/tl_iso_product.php deleted file mode 100644 index c4ed611694..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_product.php +++ /dev/null @@ -1,132 +0,0 @@ - + + + + Product ID + Product ID + + + Categories + Categoriën + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + Selecteer een categorie (pagina gebaseerde categoriën maken gebruik van Contao pagina features zoals navigatie automatisering, bescherming, templates en volledige integratie met content elementen) + + + Product type + Product type + + + Select your product type. Product types are defined in the store configuration. + Product types zoals gedefinieerd in de Product type manager + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + Hier kunt u een uniek alias voor dit product invullen. De productnaam wordt gebruikt om automatisch een alias aan te maken indien het alias niet wordt ingevuld. + + + Name + Naam + + + Please enter the name of this product. + Vul de naam in van dit product. + + + SKU + Artikelnummer + + + Please enter a unique stock keeping unit for this product. + Vul een uniek artikelnummer in voor dit product. + + + Shipping weight + Verzendgewicht + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Vul het verzendgewicht voor dit product in. Dit kan gebruikt worden om de verzendkosten te berekenen. + + + Teaser + Teaser + + + Please enter the teaser. + Vul een teaser in. + + + Description + Omschrijving + + + Please enter the product description. + Vul de omschrijving van het product in. + + + Meta title + Meta titel + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + Meta titel wordt gebruikt als paginatitel op de productlezerpagina. Prductnaam wordt gebruikt indien dit veld leeg is. + + + Meta description + Meta omschrijving + + + Meta description will be placed in the header on product detail page, for search engine optimization. + Meta omschrijving wordt in de header van de productlezerpagina geplaatst. Dit voor zoekmachine-optimalisatie. + + + Meta keywords + Meta trefwoorden + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + Meta trefwoorden wordt in de header van de productlezerpagina geplaatst. Dit voor zoekmachine-optimalisatie. + + + Price &amp; tax class + Prijs &amp; belastingklasse + + + Please enter the price(s) for this product and select the tax class. + Vul de prijzen in voor dit product en kies de belastingklasse. + + + Exempt from shipping + Uitzonderen van verzending + + + Check if item is not a shipped item (such as downloadable products). + Selecteren als een product niet verzonden wordt (zoals te downloaden producten) + + + Base price amount + Eenheidsprijs hoeveelheid + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + Vul de hoeveelheid in om de eenheidsprijs mee te berekenen (bijv. "1500" als het product 1500 gram weegt). + + + Images + Afbeeldingen + + + Upload images to this product. Please save the product after selecting a file. + Upload afbeeldingen voor dit product. Sla het product op nadat u een bestand heeft geselecteerd. + + + Protect product + Product afschermen + + + Restrict product access to certain member groups. + Beperk product tot bepaalde ledengroepen. + + + Allowed member groups + Toegestane ledengroepen + + + These groups will be able to access the product. + Hier kunt u toegang geven tot het product aan een of meerdere ledengroepen + + + Show to guests only + Alleen zichtbaar voor gasten + + + Hide the product if there is an authenticated user. + Verberg het product als een lid is ingelogd. + + + CSS ID/class + CSS ID/class + + + Here you can set an ID and one or more classes. + Stel hier één ID en één of meerdere of classes in. + + + Publish product + Maak product beschikbaar + + + Click here to show this product on your website. + Klik hier om dit product op de website te laten zien. + + + Start date + Startdatum + + + Do not show this product before the date specified. + Laat dit product niet zien voor de aangegeven datum. + + + Stop date + Eind-datum + + + Do not show this product after the date specified. + Laat dit product niet zien na de aangegeven datum. + + + Inherited attributes + Neem attributen over + + + Check the fields you want to inherit from base product. + Selecteer de velden van de attributen die u van het basis-product wenst over te nemen. + + + Source folder + Source folder + + + Please choose the folder where product assets are located. + Kies een folder waar bestanden voor dit product staan. + + + Preview + Voorvertoning + + + Alternate text + Alternatieve tekst + + + Link target + Koppel aan + + + Description + Omschrijving + + + Translate + Vertalen + + + None + Geen + + + Do not translate this image. + Deze afbeelding niet vertalen. + + + Text + Tekst + + + Translate alt text and description for this image. + Vertaal de alt tekst en omschrijving van deze afbeelding. + + + All + Alle + + + Do not include this image in translated version. + Gebruik deze afbeelding niet in de vertaalde versie. + + + Variant + Variant + + + Show product variants + Toon productvarianten + + + New product + Nieuw product + + + Create new product + Maak een nieuw product + + + Add variant + Voeg variant toe + + + Add new variant to a given product + Voeg een nieuwe variant aan een product toe + + + Edit product + Bewerk product + + + Edit product ID %s + Wijzig product ID %s + + + Copy product + Copieer product + + + Copy product ID %s + Copieer product ID %s + + + Move product + Verplaats product + + + Move product ID %s + Verplaats product ID %s + + + Delete product + Verwijder product + + + Delete product ID %s + Verwijder product ID %s + + + Publish/unpublish product + Publiceer/verberg product + + + Publish/unpublish product ID %s + Publiceer/verberg product ID %s + + + Product details + Product details + + + Show details of product ID %s + Laat details van product ID %s zien + + + Advanced filter: + Geavanceerd filter: + + + Without images + Zonder afbeeldingen + + + Unassigned products + Niet toegewezen producten + + + New products + Nieuwe producten + + + Added today + Vandaag toegevoegd + + + Added this week + Deze week toegevoegd + + + Added this month + Deze maand toegevoegd + + + Manually sort products in a page + Producten handmatig sorteren op een pagina + + + Product groups + Productgroepen + + + Manage product groups + Beheer productgroepen + + + Import assets + Importeer bestanden + + + Import images and other media from a folder + Importeer afbeeldingen en andere media van een folder + + + Manage prices + Beheer prijzen + + + Click the button to manage advanced prices for this product. + Beheer prijzen voor product ID %s + + + Apply and close + Toepassen en sluiten + + + Product variants + Productvarianten + + + Show variants for product ID %s + Toon varianten voor product ID %s + + + Generate variants + Genereer varianten + + + Generate variants for product ID %s + Genereer varianten voor product ID %s + + + Related products + Gerelateerde producten + + + Manage related products for product ID %s + Beheer gerelateerde producten voor product ID %s + + + Downloads + Downloads + + + Edit downloads for product ID %s + Wijzig downloads voor product ID %s + + + Currently: %s downloads. + + + Move to group + Verplaats naar groep + + + Move product ID %s to a group + Verplaats product ID %s naar een groep + + + Group + Groep + + + General Settings + Algemene Instellingen + + + Meta data + Meta data + + + Pricing Settings + Prijs instellingen + + + Inventory Settings + Voorraad instellingen + + + Shipping Settings + Verzend instellingen + + + Product Options Settings + Product optie instellingen + + + Media Management + Media Management + + + Expert settings + Expert instellingen + + + Publishing + Publicatie instellingen + + + Quantity + Aantal + + + from %s pcs. + vanaf %s st. + + + Price + Prijs + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_product_category.php b/system/modules/isotope/languages/nl/tl_iso_product_category.php deleted file mode 100644 index a5782bdbfb..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_product_category.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Move product + Verplaats product + + + Move product ID %s + Verplaats product ID %s + + + Paste at the top + Boven invoegen + + + Paste after product ID %s + Invoegen na product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_product_collection.php b/system/modules/isotope/languages/nl/tl_iso_product_collection.php deleted file mode 100644 index bb11e6a801..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_product_collection.php +++ /dev/null @@ -1,52 +0,0 @@ - + + + + Order ID + Bestelnr. + + + Member (empty for guests) + + + Unique ID + Uniek nr. + + + Order status + Bestelstatus + + + Select the status of this order. + Kies de status van deze bestelling + + + Placed + + + Source (Cart ID) + + + Payment date + Betaal-datum + + + Enter a date when this order has been paid. + Vul de betaaldatum in van deze bestelling + + + Shipped date + Verzend-datum + + + Enter a date when this order has been shipped. + Vul de verzenddatum in van deze bestelling. + + + Shop configuration + Winkelconfiguratie + + + Payment method + Betaalmethode + + + Shipping method + Verzendmethode + + + Billing address + Factuuradres + + + Shipping address + Verzendadres + + + Subtotal + subtotaal + + + Subtotal without tax + Subtotaal zonder BTW + + + Total + Totaal + + + Total without tax + Totaal zonder BTW + + + Currency + Valuta + + + Language + Taal + + + Order notes + Bestel notities + + + If you would like to convey information to other backend users, please do so here. + Voer hier informatie voor andere backend gebruikers in. + + + Edit order + Wijzig bestelling + + + Edit order ID %s + Wijzig bestel nr. %s + + + Copy order + Kopieër bestelling + + + Copy order ID %s + Kopieër bestel nr. %s + + + Delete order + Verwijder bestelling + + + Delete order ID %s + Verwijder bestel nr. %s + + + Order details + Details van de bestelling + + + Show details of order ID %s + Laat detail van bestel nr. %s zien + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + Druk een document af + + + Print order ID %s with a document of your choice + + + Document + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + Meldingen (bijv. e-mail aan klant) zijn verzonden. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + Meldingen (bijv. e-mail aan klant) zijn niet verzonden. Controleer het systeem logboek. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + Bestelstatus + + + Order details + Details van de bestelling + + + Email data + E-mailgegevens + + + Billing address data + + + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_product_price.php b/system/modules/isotope/languages/nl/tl_iso_product_price.php deleted file mode 100644 index e3729b3208..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Price Tiers + Prijsstelling + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + Stel op z'n minst een prijsstelling voor "1 stuks" in. U kunt kortingen instellen als de klant meer dan 1 product koopt. + + + Tax Class + Belastingklasse + + + Please select a tax class for this price. + Selecteer een belastingklasse voor deze prijs. + + + Store configuration + Winkelinstellingen + + + Select a store configuration for this price. + Selecteer een winkelinstelling voor deze prijs. + + + Member group + Prijsgroep + + + Select a member group for this price. + Selecteer een prijsgroep (leden-groep) voor deze prijs. + + + Use from + Gebruik vanaf + + + Do not use the price on the website before this day. + Deze prijs wordt niet gebruikt op de website voor deze dag + + + Use until + Gebruik tot + + + Do not use the price on the website after this day. + Deze prijs wordt niet gebruikt op de website na deze dag + + + Add price + Prijs toevoegen + + + Add a new price to this product + Voer een nieuwe prijs in voor dit product + + + Edit price + Bewerk prijs + + + Edit price ID %s + Bewerk prijs ID %s + + + Duplicate price + Kopier prijs + + + Duplicate price ID %s + Kopier prijs ID %s + + + Delete price + Verwijder prijs + + + Delete price ID %s + Verwijder prijs ID %s + + + Price details + Prijs details + + + Show details of price ID %s + Toon details van prijs ID %s + + + Quantity (min) + Hoeveelheid (minimaal) + + + Price + Prijs + + + Price + Prijs + + + Limitations + Beperkingen + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_producttype.php b/system/modules/isotope/languages/nl/tl_iso_producttype.php deleted file mode 100644 index c1aa929eea..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_producttype.php +++ /dev/null @@ -1,72 +0,0 @@ - + + + + Name + Naam + + + Please enter a name for this product type. + Voer hier een naam in voor dit product type. + + + Product Class + Product klasse + + + Please select a product class. Different product classes will handle products differently. + Selecteer een product klasse. Verschillende product klassen worden verschillend afgehandeld. + + + Default + Standaard + + + Check here if this is the default product type. + Selecteer dit voor het standaard product type + + + Description + Omschrijving + + + A hint to product managers what this product type is for. + Een hint voor product managers om aan te geven waar dit product type voor is. + + + Advanced pricing + Uitgebreide prijsstelling + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + Maakt het mogelijk meerdere prijzen per product in te stellen. Bijvoorbeeld voor verschillende winkel configuraties, ... Of data. + + + Show price tiers + Toon prijsniveaus + + + Show highest tier as lowest product price. + Toon hoogste niveau als laagste productprijs. + + + List template + Lijst Template + + + Select a template for product listing. + Selecteer een template voor een product-lijst + + + Reader template + Productviewer template + + + Select a template for product details. + Selecteer een template voor product details + + + List gallery + Gallerij productlijst + + + Select a gallery for product listing. + Kies een gallerij voor een productlijst. + + + Reader gallery + Gallerij productlezer + + + Select a gallery for product details. + Kies een gallerij voor product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Attributen + + + Select the collection of attributes that should be included for this product type. + Selecteer een verzameling van attributen die bij dit product type gebruikt worden + + + Grouping + Groeperen + + + Group fields by topic (legends) + Groepeer velden op onderwerp (legenda) + + + Alignment + Uitlijning + + + Enter a tl_class to override alignment for this attribute. + Vul een tl_class om uitlijning van dit attribuut te overschrijven. + + + Mandatory + Verplicht + + + You can override the default mandatory-ness here. + U kunt de verplichtheid hier overschrijven. + + + Default + Standaard + + + Enable variants + Gebruik varianten + + + Check here if this product type has variants. + Aanvinken als voor dit product type varianten gebruikt worden. + + + Variant attributes + Variant attributen + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + Kies de variant-attributen die bij dit product aanwezig moeten zijn. Attributen die niet zijn gelecteerd worden van het hoofdproduct overgenomen. + + + Always show variant attributes + Altijd attributen variant weergeven. + + + Show a variant attribute (select, radio) even if there is only one choice. + Geef een variant attribuut weer (select, radio), zelfs als er maar één keuze is. + + + Exempt from shipping + Uitzonderen van verzending + + + Check if items of this product type are not a shipped item (such as downloadable products). + Aanvinken als dit producttype niet verzonden wordt (zoals downloadbare producten). + + + Enable downloads + Downloads activeren + + + Check here if this product type has downloads. + Selecteer indien het produkt een download mogelijkheid heeft. + + + New product type + Nieuw product type + + + Create new product type. + Maak een nieuw product type + + + Edit product type + Wijzig product type + + + Edit product type ID %s + Wijzig product type ID %s + + + Copy product type definiton + Kopieër product type definitie + + + Copy definition of product type ID %s + Kopieër de definitie van product type ID %s + + + Delete product type + Verwijder product type + + + Delete product type ID %s + Verwijder product type ID %s + + + product type details + Details van het product type + + + Show details of product type ID %s + Bekijk de wrakke van product type ID %s + + + Product type settings + Product type instellingen + + + Description + Omschrijving + + + Prices + Prijzen + + + Templates + Templates + + + Product attributes + Product attributen + + + Variant attributes + Variant attributen + + + Expert settings + Expert instellingen + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_related_category.php b/system/modules/isotope/languages/nl/tl_iso_related_category.php deleted file mode 100644 index 45b69d202f..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_related_category.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Category name + Categorie naam + + + Please enter a name for this category. + Vul een naam in voor deze categorie. + + + New category + Nieuwe categorie + + + Create a new category + Maak een nieuwe categorie + + + Edit category + Bewerk categorie + + + Edit category ID %s + Bewerk categorie ID %s + + + Duplicate category + Kopier categorie + + + Duplicate category ID %s + Kopier categorie ID %s + + + Delete category + Verwijder categorie + + + Delete category ID %s + Verwijder categorie ID %s + + + Category details + Categorie details + + + Show details of category ID %s + Toon details van categorie ID %s + + + Name + Naam + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_related_product.php b/system/modules/isotope/languages/nl/tl_iso_related_product.php deleted file mode 100644 index 61fc66f272..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_related_product.php +++ /dev/null @@ -1,36 +0,0 @@ - + + + + Category + Categorie + + + Select a category. + Selecteer een categorie. + + + Products + Producten + + + Enter a comma-separated list of product or variant IDs to show as related products. + Vul een met komma's gescheiden lijst in met product of variant ID's om weer te geven als gerelateerde producten. + + + Add category + Categorie toevoegen + + + Add a new category with products + Voeg een nieuwe categorie met producten + + + Edit category + Bewerk categorie + + + Edit category ID %s + Bewerk categorie ID %s + + + Duplicate category + Kopier categorie + + + Duplicate category ID %s + Kopier categorie ID %s + + + Move category + Verplaats categorie + + + Move category ID %s + Verplaats categorie ID %s + + + Delete category + Verwijder categorie + + + Delete category ID %s + Verwijder categorie ID %s + + + Category details + Categorie details + + + Show details of category ID %s + Toon details van categorie ID %s + + + Edit product + Bewerk product + + + Edit this product + Bewerk dit product + + + Category + Categorie + + + Related products + Gerelateerde producten + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_shipping.php b/system/modules/isotope/languages/nl/tl_iso_shipping.php deleted file mode 100644 index a481fbc787..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_shipping.php +++ /dev/null @@ -1,87 +0,0 @@ - + + + + Shipping Method Name + Naam verzendmethode + + + Please enter a name for this shipping method. + Vul een naam in voor deze verzendmethode. + + + Shipping Method Type + Soort verzendmethode + + + Please select the type of this shipping method + Kies een type van deze verzendmethode + + + Price + Prijs + + + Optionally enter a price for this shipping method. + Vul een prijs in voor deze verzendmethode (optioneel). + + + Shipping Method Notes + Opmerkingen bij verzendmethode + + + These will be displayed on the front end in association with this shipping option. + Deze worden weergegeven in de frontend samen met deze verzendmethode. + + + Tax Class + Belastingklasse + + + Select a tax class that applies to the shipping price. + Kies de belastingklasse die van toepassing is op de verzendprijs. + + + Label + Label + + + This is displayed on the front end in association with the shipping option. + Deze wordt weergegeven in de frontend samen met de verzendmethode. + + + Flat calculation + Vlakke berekening + + + Select the mode of price calculation. + Kies de manier van prijsberekening. + + + Countries + Landen + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + Kies het land waarvoor deze verzendmethode van kracht is. Indien u geen enkel land selecteert zal deze verzendmethode voor alle landen van kracht zijn. + + + State/Regions + Provincies/Regio's + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + Selecteer de provincies/regio's waarvoor deze verzendmethode van kracht is. Indien u geen enkele provincie/regio selecteert zal deze verzendmethode voor alle provincies/regio's van kracht zijn. + + + Postal codes + Postcodes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Beperk deze verzendmethodes tot een aantal postcodes. U kan een lijst van postcodes opgeven met een komma ertussen (bijv. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + Minimum subtotaal + + + Enter a minimum amount to control availability based on the cart subtotal. + Vul een minimum bedrag in om beschikbaarheid te bepalen, gebaseerd op het subtotaal van de winkelwagen. + + + Maximum subtotal + Maximum subtotaal + + + Enter a maximum amount to control availability based on the cart subtotal. + Vul een maximum bedrag in om beschikbaarheid te bepalen, gebaseerd op het subtotaal van de winkelwagen. + + + Minimum weight + Minimum gewicht + + + Enter a minimum weight to control availability based on the products in cart. + Vul een minimum gewicht in om beschikbaarheid te bepalen, gebaseerd op de producten in de winkelwagen. + + + Maximum weight + Maximaal gewicht + + + Enter a maximum weight to control availability based on the products in cart. + Vul een maximum gewicht in om beschikbaarheid te bepalen, gebaseerd op de producten in de winkelwagen. + + + Quantity calculation mode + Methode hoeveelheidsberekening + + + Select a calculation mode for min/max quantity. + Kies een berekeningswijze voor min/max hoeveelheid. + + + Total quantity in cart + Totale hoeveelheid in winkelwagen + + + Total products in cart + Totaal aantal producten in winkelwagen + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Productsoorten + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + U kan deze verzendmethode beperken tot bepaalde product soorten. Als de winkelwagen een product soort bevat die niet geselecteerd is, is deze verzendmethode niet beschikbaar. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Winkel configuraties + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Verzendmethoden + + + Select the shipping methods to group in this method. + Kies de verzendmethodes om te groeperen in deze methode. + + + Group calculation + Groepsberekening + + + Select how the price of this shipping method should be calculated. + Kies hoe de prijs van deze verzendmethode berekend moet worden. + + + Member Groups + Ledengroepen + + + Restrict this shipping option to certain member groups. + Beperk deze verzendmethode tot bepaalde ledengroepen. + + + Protect module + Module beschermen + + + Show the module to certain member groups only. + Toon module enkel aan bepaalde ledengroepen. + + + Show to guests only + Alleen zichtbaar voor gasten + + + Hide the module if a member is logged in. + Verberg module als een lid is ingelogd. + + + Enabled + Ingeschakeld + + + Is the module available for use in the store? + Stel de module beschikbaar voor gebruik in de webwinkel. + + + Title and type + Naam en soort + + + Shipping note + Opmerking bij verzending + + + Configuration + Configuratie + + + Pricing threshold and tax class applicability + Prijsdrempel en tariefgroep toepasselijkheid + + + Expert settings + Expert instellingen + + + Approval + + + New shipping method + Nieuwe verzendmethode + + + Create a New shipping method + Voeg een verzendmethode toe + + + Edit shipping method + Bewerk verzendmethode + + + Edit shipping method ID %s + Bewerk verzendmethode met ID %s + + + Copy shipping method + Kopieer verzendmethode + + + Copy shipping method ID %s + Kopieer verzendmethode met ID %s + + + Delete shipping method + Verwijder verzendmethode + + + Delete shipping method ID %s + Verwijder verzendmethode met ID %s + + + Enable/disable shipping method + In-/uitschakelen verzendmethode + + + Enable/disable shipping method ID %s + In-/uitschakelen verzendmethode ID %s + + + Shipping method details + Details verzendmethode + + + Show details of shipping method ID %s + Laat de details zien van verzendmethode met ID %s + + + Flat + Vlak + + + Per Product + Per product + + + Per Item + Per item + + + Price of the first available method + Prijs van eerst beschikbare methode + + + Lowest price of available methods + Laagste prijs van beschikbare methoden + + + Highest price of available methods + Hoogste prijs van beschik bare methoden + + + Summed price of available methods + Optelling van alle beschikbare methoden + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_tax_class.php b/system/modules/isotope/languages/nl/tl_iso_tax_class.php deleted file mode 100644 index 48d4afbd32..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_tax_class.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Naam + + + Give this tax class a name that explains what it is used for. + Geef deze belastingcategorie een naam die verklaart waarvoor deze gebruikt wordt. + + + Default + Standaard + + + Check here if this is the default tax class. + Selecteer om dit als standaard belastingcategorie te gebruiken. + + + Tax rate included with product price + Product prijs inclusief BTW + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + Selecteer als de prijs van de producten met deze belastingklasse een belastingtarief bevatten. Het belastingtarief wordt van het totaal van de productprijs afgetrokken als het niet overeen komt. + + + Include label + Label toevoegen + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + Een label voor in bestellingen voor afgetrokken belastingen. (Wanneer toegevoegde belasting niet overeen komt). Standaard belastingcategorie label wordt gebruikt wanneer u het veld leeg laat. + + + Apply tax rates + Pas belasting toe + + + Add these tax rates to products with this tax class. + Voeg deze belasting tos aan producten met deze belasting categorie + + + Apply rounding increment + Pas afronding toe + + + Check here if you want to apply the rounding increment of your shop config. + Selecteer om de afronding van uw winkelconfiguratie toe te passen. + + + Not negative + Niet negatief + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + Voorkomt negatieve waarden voor deze belasting (een negatief bedrag wordt 0,00). + + + New tax class + Nieuwe belastingcategorie + + + Create a new tax class + Maak een nieuwe belastingcategorie + + + Edit tax class + Wijzig belastingcategorie + + + Edit tax class ID %s + Wijzig belastingcategorie ID %s + + + Copy tax class + Kopieër belastingcategorie + + + Copy tax class ID %s + Kopieër belastingcategorie ID %s + + + Delete tax class + Verwijder belastingcategorie + + + Delete tax class ID %s + Verwijder belasting categorie ID %s + + + Tax class details + Bestel details + + + Show details of tax class ID %s + Toon details van belasting categorie ID %s + + + Name + Naam + + + Tax rates + Belastingtarief + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_iso_tax_rate.php b/system/modules/isotope/languages/nl/tl_iso_tax_rate.php deleted file mode 100644 index 5f35f0b475..0000000000 --- a/system/modules/isotope/languages/nl/tl_iso_tax_rate.php +++ /dev/null @@ -1,56 +0,0 @@ - + + + + Name + Naam + + + Enter a name for this tax rate. + Vul de naam in voor dit belatingtarief. + + + Label + Label + + + This label will be used on the front end in the checkout process. + Dit label wordt gebruikt in de front-end bij het checkout proces. + + + Address to use for calculation + Adres dat wordt gebruikt voor berekening + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + Landen + + + Select the countries this tax class applies to. + + + States/Regions + Provincies/Regio's + + + Select the states or regions this tax class applies to. + Selecteer de provincies of regio's waarop deze belasting van teopassing is. + + + Postal codes + Postcodes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Beperk dit belastingtarief tot een aantal postcodes. U kunt een lijst van postcodes opgeven met een komma ertussen (bijv. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + Beperking subtotaal bedragen + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + Optioneel: Beperk dit belastingtarief tot specifieke subtotaal bedragen (zoals voor luxe belasting). + + + Tax rate + Belastingtarief + + + A rate in percent this tax is set at. + Procentueel tarief van deze belasting. + + + Store configuration + Winkelinstellingen + + + Select the store configuration that the tax rate applies to. + Selecteer de winkel configuratie waarop dit belastingtarief van toepassing is. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + Stop berekeningen bij het in gang zetten van dit tarief? + + + Stop other calculations if this tax rate is triggered. + Stop andere berekeningen als dit belastingtarief in gang wordt gezet. + + + Member groups + Ledengroepen + + + Restrict this tax rate to certain member groups. + Beperk dit belastingtarief tot bepaalde ledengroepen. + + + Protect tax rate + Bescherm belastingtrief + + + Apply the tax rate to certain member groups only. + Pas dit belastingtarief alleen toe op bepaalde ledengroepen. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + Pas belastingtarief niet toe als een lid is ingelogd. + + + New tax rate + Nieuw belastingtarief + + + Create a new tax rate + Creëer een nieuw belastingtarief + + + Edit tax rate + Wijzig belastingtarief + + + Edit tax rate ID %s + Wijzig belastingtarief ID %s + + + Copy tax rate + Dupliceer belastingtarief + + + Copy tax rate ID %s + Dupliceer belastingtarief ID %s + + + Delete tax rate + Verwijder belastingtarief + + + Delete tax rate ID %s + Verwijder belastingtarief ID %s + + + Tax rate details + Details belastingtarief + + + Show details of tax rate ID %s + Geef details weer van tarief ID %s + + + Billing Address + Factuuradres + + + Shipping Address + Verzendadres + + + Name + Naam + + + Rate + Tarief legenda + + + Location + Locatie legenda + + + Conditions + Voorwaarden legenda + + + Configuration + Configuratie + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_maintenance.php b/system/modules/isotope/languages/nl/tl_maintenance.php deleted file mode 100644 index 6ffb0a95fc..0000000000 --- a/system/modules/isotope/languages/nl/tl_maintenance.php +++ /dev/null @@ -1,20 +0,0 @@ -tl_iso_productcache.'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][0] = 'Opschonen Isotope request cache'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][1] = 'Verwijdert de gecachte informatie van de filtermodule tbv korte URL\'s uit tl_iso_requestcache tabel '; diff --git a/system/modules/isotope/languages/nl/tl_maintenance.xlf b/system/modules/isotope/languages/nl/tl_maintenance.xlf new file mode 100644 index 0000000000..8b66d2f393 --- /dev/null +++ b/system/modules/isotope/languages/nl/tl_maintenance.xlf @@ -0,0 +1,22 @@ + + + + + Purge Isotope product cache + Opschonen Isotope productcache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + Verwijdert de gecachte versies van producten in productlijsten uit de tabel <em>tl_iso_productcache</em>. + + + Purge Isotope request cache + Opschonen Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + Verwijdert de gecachte informatie van de filtermodule tbv korte URL's uit <em>tl_iso_requestcache</em> tabel + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_member.php b/system/modules/isotope/languages/nl/tl_member.php deleted file mode 100644 index 1f1979f797..0000000000 --- a/system/modules/isotope/languages/nl/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + Adresboek + + + Manage the address book for member ID %s. + Beheer het adressenboek van lid ID %s. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_module.php b/system/modules/isotope/languages/nl/tl_module.php deleted file mode 100644 index 3ecb5b318d..0000000000 --- a/system/modules/isotope/languages/nl/tl_module.php +++ /dev/null @@ -1,118 +0,0 @@ -templates. Collectie-templatebestanden beginnen met iso_collection.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterTpl'][0] = 'Filter template'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][0] = 'Doorsturen naar eerste product'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][1] = 'Check hier zodat gebruikers doorgestuurd zullen worden naar het eerste product van de lijst.'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][0] = 'Verbergen in productlezermodus'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][1] = 'Verberg de productlijtst als er een product alias in de URL staat.'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][0] = 'Hoeveelheid mogelijk maken'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][1] = 'Sta gebruikers toe aan te geven 1 of meerdere van een product aan te schaffen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'][0] = 'Toon een 404 pagina'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][0] = 'Checkout methode'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][1] = 'Selecteer je checkout methode'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][0] = 'Product "ga naar pagina" toevoegen'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][1] = 'Deze instelling definieert naar welke pagina de gebruiker wordt doorverwezen wanneer deze een product aan de winkelwagen heeft toevoegd, anders dan de huidige pagina.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][0] = 'Kolommen'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][1] = 'Vul het aantal kolommen in voor de breedteweergave in de productlijst template.'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][0] = 'Winkel configuratie'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][1] = 'Selecteer de winkel configuratie waar deze module voor gebruikt wordt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][0] = 'Winkel configuraties'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][1] = 'Selecteer de winkel configuraties waar deze module voor gebruikt wordt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][0] = 'Betaalmethoden'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][1] = 'Selecteer één of meer betaalmethoden voor deze checkout module.'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][0] = 'Verzendmethoden'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][1] = 'Selecteer één of meer verzendmethoden voor deze checkout module.'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][0] = 'Bestelling voltooid "ga naar pagina"'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][1] = 'Selecteer een pagina waarnaar klanten verder geleid zullen worden nadat hun bestelling is voltooid.'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][0] = 'Doorsturen naar overzichtspagina'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][1] = 'Stuur de gebruiker naar de overzichtspagina wanneer geen gegevens nodig zijn bij welke checkout stap dan ook.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][0] = 'Bestelvoorwaarden formulier'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][1] = 'Selecteer een eigen formulier dat gebruikt wordt om je algemene voorwaarden weer te geven.'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][0] = 'Voeg toe aan adresboek'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][1] = 'Voeg nieuw adres toe aan leden adresboek (wanneer ingelogd).'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][0] = 'Volgorde'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][1] = 'Geef aan in welke volgorde de items in deze verzameling weergegeven moeten worden.'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][0] = 'Bepaal een lege melding'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][1] = 'Plaats een eigen melding wanneer de productlijst leeg is.'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][0] = 'Melding voor lege lijst'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][1] = 'Vul een eigen melding in weer te geven als er niks weergegeven kan worden (lege productlijst, winkelwagen, enz.).'; -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'][1] = 'Vul een eigen melding in voor als er geen filter ingesteld is.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][0] = 'Categorie omvang'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][1] = 'Geef de omvang van een productlijst op.'; -$GLOBALS['TL_LANG']['tl_module']['iso_list_where'][0] = 'Voorwaarde'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][0] = 'Filter modules'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][1] = 'Selecteer de filter modules voor deze productlijst.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][0] = 'Filters mogelijk maken'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][1] = 'Selecteer de filters waar gebruik van gemaakt kan worden'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][0] = 'Verberg enkele keuzeopties'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][1] = 'Verberg het filterveld als er maar één optie beschikbaar is.'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][0] = 'Zoeken mogelijk maken'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][1] = 'Selecteer de velden waarop gezocht kan worden.'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][0] = 'Zoekveld voor automatisch aanvullen'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][1] = 'Als u hier een veld kiest wordt de zoekopdracht automatisch aangevuld met waardes van dat veld.'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][0] = 'Sortering mogelijk maken'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][1] = 'Selecteer de velden waarop gesorteerd kan worden.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][0] = 'Filter voor nieuwe producten'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][1] = 'Als u heeft ingesteld producten als "nieuw" te markeren in de configuratie, kunt u oude producten, nieuwe of alle producten tonen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_all'] = 'Toon all producten'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_new'] = 'Toon alleen nieuwe producten'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_old'] = 'Toon alleen oude producten'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][0] = 'Aantallen per pagina mogelijk maken'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][1] = 'Stel de gebruiker in staat het aantal records per pagina te selecteren.'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][0] = 'Opties per pagina'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][1] = 'Vul een, met komma\'s gescheiden, lijst in voor het limiteren van de dropdown. De eerste optie is de standaard waarde. Waarden worden automatisch gesorteerd op nummer.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][0] = 'Winkelwagen "ga naar pagina"'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][1] = 'Deze instelling definieert naar welke pagina de gebruiker wordt doorverwezen wanneer deze de volledige winkelwagen wil bekijken.'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][0] = 'Checkout "ga naar pagina"'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][1] = 'Deze instelling definieert naar welke pagina de gebruiker wordt doorverwezen wanneer deze de transactie heeft voltooid.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][0] = 'Eerste sorteringsveld'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][1] = 'Selecteer een sorteringsveld dat gebruikt wordt wanneer de pagina voor de eerste keer geladen wordt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][0] = 'Eerste sorteringsrichting'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][1] = 'Selecteer een sorteringsrichting.'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][0] = 'Knoppen'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][1] = 'Selecteer de knoppen die je wil weergeven.'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][0] = 'Gerelateerde categoriën'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][1] = 'Selecteer de categoriën waar de producten getoond moeten worden.'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][0] = 'Berichtgeving insluiten'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][1] = 'Deze instelling stelt de module in staat, alle foutmeldingen, notificaties of bevestigingen waar de bezoeker zich bewust van zou moeten zijn, in te sluiten.'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][0] = 'Voeg knop "Verder winkelen" toe'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][1] = 'Voeg een link to naar het zojuist aan winkelwagen toegevoegde product.'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['billing'] = 'Factuuradres'; -$GLOBALS['TL_LANG']['tl_module']['iso_address']['shipping'] = 'Verzendadres'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_legend'] = 'Bestelvoorwaarden formulier'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['member'] = 'Login/Registratie vereist'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['guest'] = 'Alleen gast checkout'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['both'] = 'Beide toegestaan'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][0] = 'Alle categoriën'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][1] = 'Toon alle producten welke zijn toegewezen aan pagina\'s onder het (huidig) actieve website startpunt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][0] = 'Huidige categorie en first child categorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][1] = 'Toon alle producten welke zijn toegewezen aan de huidige pagina en alle pagina\'s die hier direct onder liggen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][0] = 'Huidige categorie en all child categoriën'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][1] = 'Toon alle producten welke zijn toegewezen aan de huidige pagina en alle pagina\'s die hier onder liggen.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][0] = 'Huidige categorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][1] = 'Toon alle producten welke zijn toegewezen aan de huidige pagina (standaard).'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][0] = 'Parent categorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][1] = 'Toon alle producten welke zijn toegewezen aan bovenliggende pagina van de huidige pagina.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][0] = 'Huidige product categoriën'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][1] = 'Toon alle producten welke zijn toegewezen aan dezelfde pagina\'s waaraan het huidige product ook aan is toegewezen.'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['ASC'] = 'oplopende'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['DESC'] = 'aflopende'; diff --git a/system/modules/isotope/languages/nl/tl_module.xlf b/system/modules/isotope/languages/nl/tl_module.xlf new file mode 100644 index 0000000000..e2a04d6d0b --- /dev/null +++ b/system/modules/isotope/languages/nl/tl_module.xlf @@ -0,0 +1,534 @@ + + + + + Product list template + Productlijsttemplate + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + Product weergave template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + Gallerij + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + Productverzameling template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + Selecteer een template om producten mee weer te geven. U kunt aangepaste verzameling-templates toevoegen aan de map <em>templates</em>. Collectie-templatebestanden beginnen met <em>iso_collection</em>. + + + Filter template + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + Doorsturen naar eerste product + + + Check here if users are redirected to the first product of the list. + Check hier zodat gebruikers doorgestuurd zullen worden naar het eerste product van de lijst. + + + Hide in reader mode + Verbergen in productlezermodus + + + Hide product list when a product alias is found in the URL. + Verberg de productlijtst als er een product alias in de URL staat. + + + Enable quantity + Hoeveelheid mogelijk maken + + + Allow users to specify 1 or more of a product to be purchased. + Sta gebruikers toe aan te geven 1 of meerdere van een product aan te schaffen. + + + Display a 404 page + Toon een 404 pagina + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + Checkout methode + + + Choose your checkout method. + Selecteer je checkout methode + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + Product "ga naar pagina" toevoegen + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + Deze instelling definieert naar welke pagina de gebruiker wordt doorverwezen wanneer deze een product aan de winkelwagen heeft toevoegd, anders dan de huidige pagina. + + + Columns + Kolommen + + + Enter a number of columns to display width-wise in the listing template. + Vul het aantal kolommen in voor de breedteweergave in de productlijst template. + + + Store configuration + Winkelinstellingen + + + Select the store configuration that this module will be used for. + Selecteer de winkel configuratie waar deze module voor gebruikt wordt. + + + Store configurations + Winkel configuraties + + + Select the store configurations that this module will be used for. + Selecteer de winkel configuraties waar deze module voor gebruikt wordt. + + + Payment methods + Betaalmethoden + + + Select one or more payment methods for this checkout module. + Selecteer één of meer betaalmethoden voor deze checkout module. + + + Shipping methods + Verzendmethoden + + + Select one or more shipping methods for this checkout module. + Selecteer één of meer verzendmethoden voor deze checkout module. + + + Completed order jump to page + Bestelling voltooid "ga naar pagina" + + + Select a page the customer will be referred to after their order is complete. + Selecteer een pagina waarnaar klanten verder geleid zullen worden nadat hun bestelling is voltooid. + + + Forward to review page + Doorsturen naar overzichtspagina + + + Forward the user to the review page if no data is required on any step. + Stuur de gebruiker naar de overzichtspagina wanneer geen gegevens nodig zijn bij welke checkout stap dan ook. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + Bestelvoorwaarden formulier + + + Choose a custom form that is used to display your order terms and conditions (optional). + Selecteer een eigen formulier dat gebruikt wordt om je algemene voorwaarden weer te geven. + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + Voeg toe aan adresboek + + + Add new addresses to members address book (if logged in). + Voeg nieuw adres toe aan leden adresboek (wanneer ingelogd). + + + Sorting + Volgorde + + + Define in what order the collection items should be listed. + Geef aan in welke volgorde de items in deze verzameling weergegeven moeten worden. + + + Define empty message + Bepaal een lege melding + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + Plaats een eigen melding wanneer de productlijst leeg is. + + + Message when empty + Melding voor lege lijst + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + Vul een eigen melding in weer te geven als er niks weergegeven kan worden (lege productlijst, winkelwagen, enz.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + Vul een eigen melding in voor als er geen filter ingesteld is. + + + Category Scope + Categorie omvang + + + Specify the scope of a product lister. + Geef de omvang van een productlijst op. + + + Condition + Voorwaarde + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + Filter modules + + + Select the filter modules you want to consider for this product list. + Selecteer de filter modules voor deze productlijst. + + + Enabled filters + Filters mogelijk maken + + + Please select filters to enable. + Selecteer de filters waar gebruik van gemaakt kan worden + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + Verberg enkele keuzeopties + + + Hide filter field if there is just one option. + Verberg het filterveld als er maar één optie beschikbaar is. + + + Enabled search fields + Zoeken mogelijk maken + + + Please select search fields to enable. + Selecteer de velden waarop gezocht kan worden. + + + Autocomplete search field + Zoekveld voor automatisch aanvullen + + + If you select a field here, the search will be autocompleted by the values of that field. + Als u hier een veld kiest wordt de zoekopdracht automatisch aangevuld met waardes van dat veld. + + + Enabled sorting fields + Sortering mogelijk maken + + + Please select orderable fields to enable. + Selecteer de velden waarop gesorteerd kan worden. + + + Filtering for new products + Filter voor nieuwe producten + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + Als u heeft ingesteld producten als "nieuw" te markeren in de configuratie, kunt u oude producten, nieuwe of alle producten tonen. + + + Show all products + Toon all producten + + + Only show new products + Toon alleen nieuwe producten + + + Only show old products + Toon alleen oude producten + + + Enable per-page limiting + Aantallen per pagina mogelijk maken + + + Allow the user to select the number of records to show per page. + Stel de gebruiker in staat het aantal records per pagina te selecteren. + + + Per page options + Opties per pagina + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + Vul een, met komma's gescheiden, lijst in voor het limiteren van de dropdown. De eerste optie is de standaard waarde. Waarden worden automatisch gesorteerd op nummer. + + + Shopping Cart Jump to page + Winkelwagen "ga naar pagina" + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + Deze instelling definieert naar welke pagina de gebruiker wordt doorverwezen wanneer deze de volledige winkelwagen wil bekijken. + + + Checkout Jump to page + Checkout "ga naar pagina" + + + This setting defines to which page a user will be redirected when completing their transaction. + Deze instelling definieert naar welke pagina de gebruiker wordt doorverwezen wanneer deze de transactie heeft voltooid. + + + Initial sorting field + Standaard sorteringsveld + + + Select a sorting field to sort the listing by on first page load. + Selecteer een sorteringsveld dat gebruikt wordt wanneer de pagina voor de eerste keer geladen wordt. + + + Initial sorting direction + Standaard sorteerrichting + + + Select a initial sorting direction. + Kies de standaard sorteerrichting. + + + Buttons + Knoppen + + + Select the buttons you want to show. + Selecteer de knoppen die je wil weergeven. + + + Related categories + Gerelateerde categoriën + + + Select the categories to show products of. + Selecteer de categoriën waar de producten getoond moeten worden. + + + Include messaging + Berichtgeving insluiten + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + Deze instelling stelt de module in staat, alle foutmeldingen, notificaties of bevestigingen waar de bezoeker zich bewust van zou moeten zijn, in te sluiten. + + + Enable "Continue shopping" button + Voeg knop "Verder winkelen" toe + + + Add a link to the currently added product to the cart. + Voeg een link to naar het zojuist aan winkelwagen toegevoegde product. + + + Address types + + + Please choose the address types. + + + Billing address + Factuuradres + + + Shipping address + Verzendadres + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + Bestelvoorwaarden formulier + + + Login/Registration required + Login/Registratie vereist + + + Guest checkout only + Alleen gast checkout + + + Both allowed + Beide toegestaan + + + All Categories + Alle categoriën + + + Show all products that are assigned to a page of the active page tree (based on the root page). + Toon alle producten welke zijn toegewezen aan pagina's onder het (huidig) actieve website startpunt. + + + Current Category and First Child Category + Huidige categorie inclusief eerste niveau hieronder + + + Show all products that are assigned to the active page or child pages on the first sublevel. + Toon alle producten welke zijn toegewezen aan de huidige pagina en alle pagina's die hier direct onder liggen. + + + Current Category and All Child Categories + Huidige categorie en all subcategoriën hiervan. + + + Show all products that are assigned to the active page or any child page of it. + Toon alle producten welke zijn toegewezen aan de huidige pagina en alle pagina's die hier onder liggen. + + + Current Category + Huidige categorie + + + Show all products that are assigned to the active page (default). + Toon alle producten welke zijn toegewezen aan de huidige pagina (standaard). + + + Parent Category + Bovenliggende categorie + + + Show all products that are assigned to the parent page of the active page. + Toon alle producten welke zijn toegewezen aan bovenliggende pagina van de huidige pagina. + + + Current Product's Categories + Categoriën van huidige product + + + Show all products that are assigned to the same pages the currently active product is assigned to. + Toon alle producten welke zijn toegewezen aan dezelfde pagina's waaraan het huidige product ook aan is toegewezen. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + Oplopend + + + DESC + Aflopend + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_nc_notification.php b/system/modules/isotope/languages/nl/tl_nc_notification.php deleted file mode 100644 index 74d23b79f2..0000000000 --- a/system/modules/isotope/languages/nl/tl_nc_notification.php +++ /dev/null @@ -1,27 +0,0 @@ - + + + + Product collection template + Productverzameling template + + + Please choose a template to render the products for the notification content. + Kies alstublieft een template waarmee producten weergegeven worden in meldingen. + + + Sorting + Volgorde + + + Define in what order the collection items should be listed. + Geef aan in welke volgorde de items in deze verzameling weergegeven moeten worden. + + + Gallery + Gallerij + + + Select a gallery to render images. + Kies een gallerij om afbeeldingen mee weer te geven. + + + Document + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + Als u bestanden als bijlage mee wilt sturen met een melding, kies er hier één uit en gebruik wildcards in het berichtencentrum. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + Wijziging bestelstatus + + + This notification type can be sent when the order status changes. + Dit soort melding kan verzonden worden als de orderstatus wijzigd. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_page.php b/system/modules/isotope/languages/nl/tl_page.php deleted file mode 100644 index 5962745df1..0000000000 --- a/system/modules/isotope/languages/nl/tl_page.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + Store Configuration + Winkel instellingen + + + Select a store configuration for this page structure. + Selecteer een winkelinstelling voor deze pagina structuur + + + Use reader page + Gebruik pagina voor productlezer + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + Pas de instellingen van deze pagina aan als productdetails getoond worden. Bekijk de hulp wizard van de paginaselectie voor meer informatie. + + + Reader page + Pagina productlezer + + + Select a page for your page reader. + Selecteer een pagina voor de productlezer. + + + Store ID + Winkel ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Gebruik verschillende winkel ID's om een set van configuraties te groeperen. Een gebruikers winkelwagen en adressen worden gedeeld tussen de gezamenlijke winkel ID's. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_settings.php b/system/modules/isotope/languages/nl/tl_settings.php deleted file mode 100644 index 72827c7b9c..0000000000 --- a/system/modules/isotope/languages/nl/tl_settings.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Guest cart timeout + Bewaartijd van winkelwagen gastbezoekers + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + Voer de maximale tijd, in seconden, in dat de winkelwagen van een gastbezoeker wordt bewaard. (30 dagen is 2592000 seconden) + + + Order timeout + Bewaartijd bestelling + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + Voer in hoe lang de bestelling in de database bewaard blijft zolang het afrekenen niet succesvol verloopt (7 dagen - 604800 seconden). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_user.php b/system/modules/isotope/languages/nl/tl_user.php deleted file mode 100644 index 6ee86eb4fb..0000000000 --- a/system/modules/isotope/languages/nl/tl_user.php +++ /dev/null @@ -1,48 +0,0 @@ - + + + + Isotope modules + Isotope webwinkel modules + + + Select which store configuration modules user of this group can access. + Selecteer welke modules van de winkelinstellingen gebruikers van deze groep toegang tot hebben. + + + Allowed product types + Toegestane productsoorten + + + Here you can grant access to one or more product types. + Hier kunt u toegang tot één of meerdere producttypes verlenen. + + + Product type permissions + Producttype permissies + + + Here you can define the product type permissions. + Hier kunt u permissies voor de producttypes instellen. + + + Allowed payment modules + Toegestane betaalmethodes + + + Here you can grant access to one or more payment modules. + Hier kunt u toegang tot één of meerdere betaalmethodes verlenen. + + + Payment module permissions + Betaalmethode permissies + + + Here you can define the payment module permissions. + Hier kunt u permissies voor de betaalmethodes instellen. + + + Allowed shipping modules + Toegestane verzendmethodes + + + Here you can grant access to one or more shipping modules. + Hier kunt u toegang tot één of meerdere verzendmethodes verlenen. + + + Shipping module permissions + Verzendmethode permissies + + + Here you can define the shipping module permissions. + Hier kunt u permissies voor de verzendmethodes instellen. + + + Allowed tax classes + Toegestane belastingklassen + + + Here you can grant access to one or more tax classes. + Hier kunt u toegang tot één of meerdere belastingklassen verlenen. + + + Tax class permissions + Belastingklasse permissies + + + Here you can define the tax class permissions. + Hier kunt u permissies voor de belastingklassen instellen. + + + Allowed tax rates + Toegestane belastingtarieven + + + Here you can grant access to one or more tax rates. + Hier kunt u toegang tot één of meerdere belastingtarieven verlenen. + + + Tax rate permissions + Belastingtarief permissies + + + Here you can define the tax rate permissions. + Hier kunt u permissies voor de belastingtarieven instellen. + + + Allowed store configurations + Winkelinstellingen + + + Here you can grant access to one or more store configurations. + Hier kunt u toegang tot één of meerdere winkelconfiguraties verlenen. + + + Store configuration permissions + Winkelconfiguratie permissies + + + Her you can define the store configuration permissions. + Hier kunt u permissies voor de winkelconfiguratie instellen. + + + Allowed product groups + Toegestane productgroepen + + + Limit access to product groups for this user group. Gets inherited. + Beperk toegang tot productgroepen voor deze gebruikersgroep. Wordt geërfd. + + + Product group permissions + Productgroep permissies + + + Here you can define the product group permissions. + Hier kunt u permissies voor productgroepen instellen. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + Toegang tot startpunt + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tl_user_group.php b/system/modules/isotope/languages/nl/tl_user_group.php deleted file mode 100644 index 6d8face273..0000000000 --- a/system/modules/isotope/languages/nl/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/nl/tokens.php b/system/modules/isotope/languages/nl/tokens.php deleted file mode 100644 index 3d9d41b1c8..0000000000 --- a/system/modules/isotope/languages/nl/tokens.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + The order's unique ID. + Het unieke ID van de bestelling. + + + The label of the order's current status. + Het label van de huidige status van de bestelling. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + Het label van de vorige status van de bestelling. Handig voor zaken als "bestelstatus veranderd van x naar y". + + + The ID of the order's current status. + Het ID van de huidige bestelstatus. + + + The ID of the order's previous status. + Het ID van de vorige bestelstatus. + + + The email address of the recipient. + Het e-mailadres van de ontvanger. + + + The ID of the order. + Het ID van de bestelling. + + + The number of items (quantities summed up) in the order. + Het aantal items (totalen opgeteld) in de bestelling. + + + The number of individual products in the order. + Het aantal individuele productregels in de bestelling. + + + The order's subtotal. + Subtotaal van de bestelling. + + + The order's total. + Het besteltotaal. + + + The order document number. + Documentnummer van de bestelling. + + + Order/Cart as text. + Bestelling/winkelwagen als tekst. + + + Order/Cart as HTML. + Bestelling/winkelwagen als HTML. + + + The document that should be attached (e.g. an invoice). + Het document dat bijgevoegd moet worden (bijv. een factuur). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + Alle factuuradres model velden. + + + Formatted shipping address. + + + All the shipping address model fields. + Alle verzendadres model velden. + + + All the order condition form fields. + Alle velden van bestelvoorwaarden bestelling. + + + Payment method ID. + Betaalmethode ID. + + + Payment method label. + Label van betaalmethode + + + Payment method note. + Opmerking bij betaalmethode. + + + Shipping method ID. + Verzendmethode ID. + + + Shipping method label. + Label van verzendmethode + + + Shipping method note. + Opmerkingen bij verzendmethode + + + All the store configuration fields. + Alle winkelconfiguratievelden. + + + All the member fields if it was a member checkout. + Alle ledenvelden indien een lid heeft afgerekend. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/default.php b/system/modules/isotope/languages/pl/default.php deleted file mode 100644 index f70483d36d..0000000000 --- a/system/modules/isotope/languages/pl/default.php +++ /dev/null @@ -1,413 +0,0 @@ -już od: %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Zobacz więcej'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Wyników na stronie'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Słowa kluczowe'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Wyślij'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Wyczyść filtry'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Aktualizuj'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Dodaj do koszyka'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Porządkuj wg.:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Niestety, nie odnaleziono żadnego produktu.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Wróć'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Dalej'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Zamów'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Ten produkt nie należy do żadnej z kategorii.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Wyślij'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Usuń'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Twój koszyk jest w tej chwili pusty'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'Wybrany produkt został dodany do koszyka.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'Produkty z Twojej ostatniej wizyty zostały dodane. Prosimy o sprawdzenie koszyka.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Usuń %s z koszyka'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Podsuma zamówienia: '; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Wysyłka'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Płatność'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Suma zamówienia: '; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'W chwili obecnej nie ma dostępnych metod płatności.'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'W chwili obecnej nie ma dostepnych metod dostawy.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Nie znaleziono emaili z zamówieniami.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Nie znaleziono żadnego zamówienia.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s plików do pobrania'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Koszyk'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Przejdź do kasy'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Wróć do sklepu'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Aktualizuj koszyk'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Status zamówienia: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Wróć do kroku "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Doddaj nowy adres'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Użyj adresu z rachunku'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Użyj adresu klienta'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Inny adres dostawy'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Edytuj'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Skasuj'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Czy jesteś pewien, że chcesz usunąć ten adres? Ta operacja nie może być cofnięta.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Faktura'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Status'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Data zamówienia'; -$GLOBALS['TL_LANG']['MSC']['iso_order_document_number'] = 'Numer zamówienia'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Opis'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Ilość'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Cena'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Suma'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'rosnąco'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'malejąco'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'A do Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'Z do A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'od najstarszego'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'od najnowszego'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Płatność jest przetwarzana'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Zapłać teraz'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Kliknij tutaj, aby wyświetlić transakcję online PayPal'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 produkt'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s produkty'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Wprowadź informacje wysyłki lub wybierz istniejący adres.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Wprowadź informacje rozliczeniowe lub wybierz istniejący adres.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Wprowadź informacje rozliczeniowe'; -$GLOBALS['TL_LANG']['MSC']['customer_address_message'] = 'Wprowadź swoje informacje lub wybierz istniejący adres.'; -$GLOBALS['TL_LANG']['MSC']['customer_address_guest_message'] = 'Wprowadź swoje informacje'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Wybierz metodę wysyłki.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Wybierz metodę wysyłki.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_message'] = 'Wprowadź informację o płatności.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_missing'] = 'Wybierz metodę płatności.'; -$GLOBALS['TL_LANG']['MSC']['order_review_message'] = 'Podsumowanie i potwierdzenie szczegółów zamówienia.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Adres'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Wysyłka'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Płatność'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Podsumowanie'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Adres rozliczeniowy'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Adres dostawy'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Adres rozliczeniowy i dostawy'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Adres klienta'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Metoda dostawy'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Metoda płatności'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Podsumowanie zamówienia'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Zmiana'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Numer karty kredytowej'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Typ karty kredytowej'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'Numer CCV (3 lub 4 cyfry)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Miesiąc wygaśnięcia'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Rok wygaśnięcia'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = 'Moduł płatności nie znaleziony!'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNotFound'] = 'Moduł wysyłki nie znaleziony!'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNoInfo'] = 'Ten moduł płatności nie posiada dodatkowych informacji.'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNoInfo'] = 'Ten moduł wysyłki nie posiada dodatkowych informacji.'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Użyj domyślnej wartości'; -$GLOBALS['TL_LANG']['MSC']['activeStep'] = 'aktwny krok:'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Ładuję produkty...'; -$GLOBALS['TL_LANG']['MSC']['productcacheNoscript'] = 'Twoja przeglądarka nie obsługuje JavaScript. Kliknij click tutaj, aby załadować listę produktów.'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'Brak plików w tym katalogu'; -$GLOBALS['TL_LANG']['MSC']['assetImportConfirmation'] = 'Plik %s zaimportowany dla produktu "%s"'; -$GLOBALS['TL_LANG']['MSC']['assetImportNoFilesFound'] = 'Folder nie zawierał żadnych plików do importu.'; -$GLOBALS['TL_LANG']['MSC']['loadingProductData'] = 'Ładuję dane produktu …'; -$GLOBALS['TL_LANG']['MSC']['templatesConfig'] = 'Konfiguracja sklepu "%s"'; -$GLOBALS['TL_LANG']['MSC']['splittedTaxRate'] = 'Podzielony'; -$GLOBALS['TL_LANG']['MSC']['newOrders'] = 'Masz %s zamówień ze statusem "%s"'; -$GLOBALS['TL_LANG']['MSC']['checkoutStep'] = 'Krok %s z %s (%s) - '; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minuty'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Godziny'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Dni'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Tygodnie'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Miesiące'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Lata'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Witamy w Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][1] = 'Isotope jest prestiżowym rozwiązaniem open source eCommerce dla Contao.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][2] = 'Większość konfiguracji znajduje się w tym miejscu. Powinieneś zacząć od dołu strony i kontynuować w górę od lewej do prawej strony..'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][3] = 'Odwiedź oficjalną stronę Isotope eCommerce po najnowsze aktualności, instrukcje konfiguracji i kampanie zbierania funduszy. Dziękujemy za wsparcie!'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][4] = 'Zespół Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][5] = 'Isotope jest produktem %s przy współpracy z zespołem Isotope eCommerce.'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_id'] = 'po dacie dodania (rosnąco)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_id'] = 'po dacie dodania (malejąco)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_tstamp'] = 'po dacie aktualizacji (rosnąco)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_tstamp'] = 'po dacie aktualizacji (malejąco)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_name'] = 'po nazwie produktu (rosnąco)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_name'] = 'po nazwie produktu (malejąco)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['asc_price'] = 'po cenie (rosnąco)'; -$GLOBALS['TL_LANG']['MSC']['iso_orderCollectionBy']['desc_price'] = 'po cenie (malejąco)'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][0] = 'Jednolita cena wysyłki'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['flat'][1] = 'To jest domyślna metoda wysyłki dla normalnej wysyłki.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][0] = 'Grupy dostawy'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][1] = 'Za pomocą tej metody, możesz pogrupować kilka metod wysyłki w jedną i obliczyć na jej podstawie cenę.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][0] = 'Gotówka'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['cash'][1] = 'Użyj tego dla wszystkich procesów płatności offline.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][0] = 'PayPal Standard Checkout'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][1] = 'Ten moduł PayPal wspiera IPN (Instant Payment Notifications).'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['postfinance'][1] = 'Metoda płatności dla szwajcarskiego systemu płatności, która wspiera różne typy kart. Sklep zostanie natychmiastowo powiadomiony o pomyślnych transakcjach.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['viveum'][0] = 'VIVEUM'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['viveum'][1] = 'Metoda płatności dla VIVEUM Zahlungssysteme GmbH.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][0] = 'Datatrans'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['datatrans'][1] = 'Moduł płatności dla szwajcarskiej metody płatności "Datatrans".'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['sparkasse'][0] = 'Sparkasse'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['saferpay'][0] = 'Saferpay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['sofortueberweisung'][0] = 'sofortüberweisung.de'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['expercash'][0] = 'ExperCash'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['payone'][0] = 'PayOne'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['worldpay'][0] = 'WorldPay'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_document']['standard'][0] = 'Standard'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][0] = 'Domyślna galeria'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][1] = '

Używa lightbox/mediabox dla obrazków w pełnym rozmiarze. Sprawdź, czy wybrałeś odpowiedni szablon "moo_" w ustawieniach układu strony.

Możesz podać atrybut "rel" do celu linka używając tzw. pipe (np. "tl_files/video.mov|lightbox[400 300]"). Jeśli nie ma podanego atrybutu "rel", link zostanie otworzony w nowym oknie.

'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][0] = 'Szeregowa galeria'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][1] = 'Kliknięcie w obrazek galerii spowoduje zastąpienie głównego obrazka.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][0] = 'Standardowy produkt'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_product']['standard'][1] = 'Domyślny produkt. Wybierz ten, jeśli nic innego nie pasuje.'; -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['enroute'] = 'EnRoute'; -$GLOBALS['TL_LANG']['CCT']['carte_blanche'] = 'Carte Blanche'; -$GLOBALS['TL_LANG']['CCT']['jal'] = 'JAL'; -$GLOBALS['TL_LANG']['CCT']['maestro'] = 'Maestro UK'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['solo'] = 'Solo'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['CCT']['dankort'] = 'Dankort'; -$GLOBALS['TL_LANG']['CCT']['laser'] = 'Laser'; -$GLOBALS['TL_LANG']['CCT']['carte_bleue'] = 'Carte Bleue'; -$GLOBALS['TL_LANG']['CCT']['carta_si'] = 'Carta Si'; -$GLOBALS['TL_LANG']['CCT']['enc_acct_num'] = 'Encoded Account Number'; -$GLOBALS['TL_LANG']['CCT']['uatp'] = 'Universal Air Travel Program'; -$GLOBALS['TL_LANG']['CCT']['maestro_intl'] = 'Maestro International'; -$GLOBALS['TL_LANG']['CCT']['ge_money_uk'] = 'GE Money UK'; -$GLOBALS['TL_LANG']['ATTR']['text'][0] = 'Pole tekstowe'; -$GLOBALS['TL_LANG']['ATTR']['text'][1] = 'Pojedyncze pole tekstowe do krótkiego lub średniego tekstu.'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][0] = 'Textarea'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][1] = 'Obszar tekstowy do średniego lub długiego tekstu.'; -$GLOBALS['TL_LANG']['ATTR']['select'][0] = 'Rozwijane menu'; -$GLOBALS['TL_LANG']['ATTR']['select'][1] = 'Rozwijane menu z jedną lub wieloma opcjami.
Ten typ pola pasuje do wariantów produktu.'; -$GLOBALS['TL_LANG']['ATTR']['radio'][0] = 'Przyciski radio'; -$GLOBALS['TL_LANG']['ATTR']['radio'][1] = 'Lista wielu opcji, z których tylko jedna może zostać wybrana.
Ten typ pola pasuje do wariantów produktu.'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][0] = 'Lista checkbox'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][1] = 'Lista wielu opcji, które można zaznaczyć.'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][0] = 'Media manager'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][1] = 'Wgrywaj obrazki i inne pliki do systemu plików Isotope eCommerce. Wyjściowy rezultat jest przetwarzany przez klasę IsotopeGallery.'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][0] = 'Rozwijane menu (conditional)'; -$GLOBALS['TL_LANG']['ATTR']['conditionalselect'][1] = 'Pokazuje wybrane opcje na biorąc pod uwagę inne rozwijane menu.'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][0] = 'Drzewo plików'; -$GLOBALS['TL_LANG']['ATTR']['fileTree'][1] = 'Drzewo plików dla jednego lub wielu plików lub katalogów.'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Pliki do pobrania'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][1] = 'Pobierz pliki produktu, np. instrukcje, specyfikacje, itp.'; -$GLOBALS['TL_LANG']['ATTR']['upload'][0] = 'Upload pliku'; -$GLOBALS['TL_LANG']['ATTR']['upload'][1] = 'Pole do wgrywania plików na serwer.'; -$GLOBALS['TL_LANG']['CUR']['AED'] = 'AED - United Arab Emirates Dirham'; -$GLOBALS['TL_LANG']['CUR']['AFN'] = 'AFN - Afghani'; -$GLOBALS['TL_LANG']['CUR']['ALL'] = 'ALL - Lek'; -$GLOBALS['TL_LANG']['CUR']['AMD'] = 'AMD - Dram'; -$GLOBALS['TL_LANG']['CUR']['ANG'] = 'ANG - Netherlands Antilles Guilder'; -$GLOBALS['TL_LANG']['CUR']['AOA'] = 'AOA - Kwanza'; -$GLOBALS['TL_LANG']['CUR']['ARS'] = 'ARS - Argentinian Nuevo Peso'; -$GLOBALS['TL_LANG']['CUR']['AUD'] = 'AUD - Australian Dollar'; -$GLOBALS['TL_LANG']['CUR']['AWG'] = 'AWG - Aruban Guilder'; -$GLOBALS['TL_LANG']['CUR']['AZN'] = 'AZN - Azerbaijani Manat'; -$GLOBALS['TL_LANG']['CUR']['BAM'] = 'BAM - Convertible Mark'; -$GLOBALS['TL_LANG']['CUR']['BBD'] = 'BBD - Barbados Dollar'; -$GLOBALS['TL_LANG']['CUR']['BDT'] = 'BDT - Taka'; -$GLOBALS['TL_LANG']['CUR']['BGN'] = 'BGN - Bulgarian Lev'; -$GLOBALS['TL_LANG']['CUR']['BHD'] = 'BHD - Bahraini Dinar'; -$GLOBALS['TL_LANG']['CUR']['BIF'] = 'BIF - Burundi Franc'; -$GLOBALS['TL_LANG']['CUR']['BMD'] = 'BMD - Bermudian Dollar'; -$GLOBALS['TL_LANG']['CUR']['BND'] = 'BND - Brunei Dollar'; -$GLOBALS['TL_LANG']['CUR']['BOB'] = 'BOB - Boliviano'; -$GLOBALS['TL_LANG']['CUR']['BRL'] = 'BRL - Brazilian real'; -$GLOBALS['TL_LANG']['CUR']['BSD'] = 'BSD - Bahamian Dollar'; -$GLOBALS['TL_LANG']['CUR']['BTN'] = 'BTN - Ngultrum'; -$GLOBALS['TL_LANG']['CUR']['BWP'] = 'BWP - Pula'; -$GLOBALS['TL_LANG']['CUR']['BYR'] = 'BYR - Belarussian Rouble'; -$GLOBALS['TL_LANG']['CUR']['BZD'] = 'BZD - Belize Dollar'; -$GLOBALS['TL_LANG']['CUR']['CAD'] = 'CAD - Canadian Dollar'; -$GLOBALS['TL_LANG']['CUR']['CDF'] = 'CDF - Congolese Franc'; -$GLOBALS['TL_LANG']['CUR']['CHF'] = 'CHF - Swiss Franc'; -$GLOBALS['TL_LANG']['CUR']['CLF'] = 'CLF - Unidades de Fomento'; -$GLOBALS['TL_LANG']['CUR']['CLP'] = 'CLP - Chilean Peso'; -$GLOBALS['TL_LANG']['CUR']['CNY'] = 'CNY - Yuan Renminbi'; -$GLOBALS['TL_LANG']['CUR']['COP'] = 'COP - Colombian Peso'; -$GLOBALS['TL_LANG']['CUR']['CRC'] = 'CRC - Costa Rican Colón'; -$GLOBALS['TL_LANG']['CUR']['CUC'] = 'CUC - Peso Convertible'; -$GLOBALS['TL_LANG']['CUR']['CUP'] = 'CUP - Cuban Peso'; -$GLOBALS['TL_LANG']['CUR']['CVE'] = 'CVE - Escudo Caboverdiano'; -$GLOBALS['TL_LANG']['CUR']['CZK'] = 'CZK - Czech Koruna'; -$GLOBALS['TL_LANG']['CUR']['DJF'] = 'DJF - Djibouti Franc'; -$GLOBALS['TL_LANG']['CUR']['DKK'] = 'DKK - Danish Krone'; -$GLOBALS['TL_LANG']['CUR']['DOP'] = 'DOP - Dominican Republic Peso'; -$GLOBALS['TL_LANG']['CUR']['DZD'] = 'DZD - Algerian Dinar'; -$GLOBALS['TL_LANG']['CUR']['EGP'] = 'EGP - Egyptian Pound'; -$GLOBALS['TL_LANG']['CUR']['ERN'] = 'ERN - Eritrean Nakfa'; -$GLOBALS['TL_LANG']['CUR']['ETB'] = 'ETB - Ethiopian Birr'; -$GLOBALS['TL_LANG']['CUR']['EUR'] = 'EUR - Euro'; -$GLOBALS['TL_LANG']['CUR']['FJD'] = 'FJD - Fiji Dollar'; -$GLOBALS['TL_LANG']['CUR']['FKP'] = 'FKP - Falkland Pound'; -$GLOBALS['TL_LANG']['CUR']['GBP'] = 'GBP - Pound Sterling'; -$GLOBALS['TL_LANG']['CUR']['GEL'] = 'GEL - Lari'; -$GLOBALS['TL_LANG']['CUR']['GHS'] = 'GHS - Ghanaian cedi'; -$GLOBALS['TL_LANG']['CUR']['GIP'] = 'GIP - Gibraltar Pound'; -$GLOBALS['TL_LANG']['CUR']['GMD'] = 'GMD - Dalasi'; -$GLOBALS['TL_LANG']['CUR']['GNF'] = 'GNF - Guinea Franc'; -$GLOBALS['TL_LANG']['CUR']['GTQ'] = 'GTQ - Quetzal'; -$GLOBALS['TL_LANG']['CUR']['GYD'] = 'GYD - Guyana Dollar'; -$GLOBALS['TL_LANG']['CUR']['HKD'] = 'HKD - Hong Kong Dollar'; -$GLOBALS['TL_LANG']['CUR']['HNL'] = 'HNL - Lempira'; -$GLOBALS['TL_LANG']['CUR']['HRD'] = 'HRD - Croatian Dinar'; -$GLOBALS['TL_LANG']['CUR']['HRK'] = 'HRK - Croatian Kuna'; -$GLOBALS['TL_LANG']['CUR']['HTG'] = 'HTG - Gourde'; -$GLOBALS['TL_LANG']['CUR']['HUF'] = 'HUF - Forint'; -$GLOBALS['TL_LANG']['CUR']['IDR'] = 'IDR - Rupiah'; -$GLOBALS['TL_LANG']['CUR']['ILS'] = 'ILS - Shekel'; -$GLOBALS['TL_LANG']['CUR']['INR'] = 'INR - Indian Rupee'; -$GLOBALS['TL_LANG']['CUR']['IQD'] = 'IQD - Iraqi Dinar'; -$GLOBALS['TL_LANG']['CUR']['IRR'] = 'IRR - Iranian Rial'; -$GLOBALS['TL_LANG']['CUR']['ISK'] = 'ISK - Icelandic Króna'; -$GLOBALS['TL_LANG']['CUR']['JMD'] = 'JMD - Jamaican Dollar'; -$GLOBALS['TL_LANG']['CUR']['JOD'] = 'JOD - Jordanian Dinar'; -$GLOBALS['TL_LANG']['CUR']['JPY'] = 'JPY - Yen'; -$GLOBALS['TL_LANG']['CUR']['KES'] = 'KES - Kenyan Shilling'; -$GLOBALS['TL_LANG']['CUR']['KGS'] = 'KGS - Kyrgyzstani Som'; -$GLOBALS['TL_LANG']['CUR']['KHR'] = 'KHR - Riel'; -$GLOBALS['TL_LANG']['CUR']['KMF'] = 'KMF - Comorian Franc'; -$GLOBALS['TL_LANG']['CUR']['KPW'] = 'KPW - Democratic People\'s Republic of Korean Won'; -$GLOBALS['TL_LANG']['CUR']['KRW'] = 'KRW - Republic of Korean Won'; -$GLOBALS['TL_LANG']['CUR']['KWD'] = 'KWD - Kuwaiti Dinar'; -$GLOBALS['TL_LANG']['CUR']['KYD'] = 'KYD - Cayman Islands Dollar'; -$GLOBALS['TL_LANG']['CUR']['KZT'] = 'KZT - Tenge'; -$GLOBALS['TL_LANG']['CUR']['LAK'] = 'LAK - Kip'; -$GLOBALS['TL_LANG']['CUR']['LBP'] = 'LBP - Lebanese Pound'; -$GLOBALS['TL_LANG']['CUR']['LKR'] = 'LKR - Sri Lankan Rupee'; -$GLOBALS['TL_LANG']['CUR']['LRD'] = 'LRD - Liberian Dollar'; -$GLOBALS['TL_LANG']['CUR']['LSL'] = 'LSL - Loti'; -$GLOBALS['TL_LANG']['CUR']['LTL'] = 'LTL - Litas'; -$GLOBALS['TL_LANG']['CUR']['LVL'] = 'LVL - Lats'; -$GLOBALS['TL_LANG']['CUR']['LYD'] = 'LYD - Libyan Dinar'; -$GLOBALS['TL_LANG']['CUR']['MAD'] = 'MAD - Moroccan Dirham'; -$GLOBALS['TL_LANG']['CUR']['MDL'] = 'MDL - Moldavian Leu'; -$GLOBALS['TL_LANG']['CUR']['MGA'] = 'MGA - Malagasy ariary'; -$GLOBALS['TL_LANG']['CUR']['MKD'] = 'MKD - Macedonian Dinar'; -$GLOBALS['TL_LANG']['CUR']['MMK'] = 'MMK - Kyat'; -$GLOBALS['TL_LANG']['CUR']['MNT'] = 'MNT - Tugrik'; -$GLOBALS['TL_LANG']['CUR']['MOP'] = 'MOP - Pataca'; -$GLOBALS['TL_LANG']['CUR']['MRO'] = 'MRO - Ouguiya'; -$GLOBALS['TL_LANG']['CUR']['MUR'] = 'MUR - Mauritius Rupee'; -$GLOBALS['TL_LANG']['CUR']['MVR'] = 'MVR - Rufiyaa'; -$GLOBALS['TL_LANG']['CUR']['MWK'] = 'MWK - Malawian Kwacha'; -$GLOBALS['TL_LANG']['CUR']['MXN'] = 'MXN - Mexican Peso'; -$GLOBALS['TL_LANG']['CUR']['MYR'] = 'MYR - Ringgit (Malaysian Dollar)'; -$GLOBALS['TL_LANG']['CUR']['MZN'] = 'MZN - Mozambican metical'; -$GLOBALS['TL_LANG']['CUR']['NAD'] = 'NAD - Namibia Dollar'; -$GLOBALS['TL_LANG']['CUR']['NGN'] = 'NGN - Naira'; -$GLOBALS['TL_LANG']['CUR']['NIO'] = 'NIO - Cordoba Oro'; -$GLOBALS['TL_LANG']['CUR']['NOK'] = 'NOK - Norwegian Krone'; -$GLOBALS['TL_LANG']['CUR']['NPR'] = 'NPR - Nepalese Rupee'; -$GLOBALS['TL_LANG']['CUR']['NZD'] = 'NZD - New Zealand Dollar'; -$GLOBALS['TL_LANG']['CUR']['OMR'] = 'OMR - Omani Rial'; -$GLOBALS['TL_LANG']['CUR']['PAB'] = 'PAB - Balboa'; -$GLOBALS['TL_LANG']['CUR']['PEN'] = 'PEN - New Sol'; -$GLOBALS['TL_LANG']['CUR']['PGK'] = 'PGK - Kina'; -$GLOBALS['TL_LANG']['CUR']['PHP'] = 'PHP - Philippines Peso'; -$GLOBALS['TL_LANG']['CUR']['PKR'] = 'PKR - Pakistani Rupee'; -$GLOBALS['TL_LANG']['CUR']['PLN'] = 'PLN - Zloty'; -$GLOBALS['TL_LANG']['CUR']['PYG'] = 'PYG - Guarani'; -$GLOBALS['TL_LANG']['CUR']['QAR'] = 'QAR - Qatari Riyal'; -$GLOBALS['TL_LANG']['CUR']['RON'] = 'RON - Romanian New Leu'; -$GLOBALS['TL_LANG']['CUR']['RSD'] = 'RSD - Serbian Dinar'; -$GLOBALS['TL_LANG']['CUR']['RUB'] = 'RUB - Russian Federation Rouble'; -$GLOBALS['TL_LANG']['CUR']['RWF'] = 'RWF - Rwandan Franc'; -$GLOBALS['TL_LANG']['CUR']['SAR'] = 'SAR - Saudi Riyal'; -$GLOBALS['TL_LANG']['CUR']['SBD'] = 'SBD - Solomon Islands Dollar'; -$GLOBALS['TL_LANG']['CUR']['SCR'] = 'SCR - Seychelles Rupee'; -$GLOBALS['TL_LANG']['CUR']['SDG'] = 'SDG - Sudanese Pound'; -$GLOBALS['TL_LANG']['CUR']['SEK'] = 'SEK - Swedish Krona'; -$GLOBALS['TL_LANG']['CUR']['SGD'] = 'SGD - Singapore Dollar'; -$GLOBALS['TL_LANG']['CUR']['SHP'] = 'SHP - St. Helena Pound'; -$GLOBALS['TL_LANG']['CUR']['SLL'] = 'SLL - Leone'; -$GLOBALS['TL_LANG']['CUR']['SOS'] = 'SOS - Somali Shilling'; -$GLOBALS['TL_LANG']['CUR']['SRD'] = 'SRD - Surinamese Dollar'; -$GLOBALS['TL_LANG']['CUR']['SSP'] = 'SSP - South Sudanese Pound'; -$GLOBALS['TL_LANG']['CUR']['STD'] = 'STD - Dobra'; -$GLOBALS['TL_LANG']['CUR']['SVC'] = 'SVC - El Salvador Colon'; -$GLOBALS['TL_LANG']['CUR']['SYP'] = 'SYP - Syrian Pound'; -$GLOBALS['TL_LANG']['CUR']['SZL'] = 'SZL - Lilangeni'; -$GLOBALS['TL_LANG']['CUR']['THB'] = 'THB - Baht'; -$GLOBALS['TL_LANG']['CUR']['TJS'] = 'TJS - Tajikistani Somoni'; -$GLOBALS['TL_LANG']['CUR']['TMT'] = 'TMT - Turkmenistani Manat'; -$GLOBALS['TL_LANG']['CUR']['TND'] = 'TND - Tunisian Dinar'; -$GLOBALS['TL_LANG']['CUR']['TOP'] = 'TOP - Pa\'anga'; -$GLOBALS['TL_LANG']['CUR']['TRY'] = 'TRY - New Turkish Lira'; -$GLOBALS['TL_LANG']['CUR']['TTD'] = 'TTD - Trinidad and Tobago Dollar'; -$GLOBALS['TL_LANG']['CUR']['TWD'] = 'TWD - Taiwan Dollar'; -$GLOBALS['TL_LANG']['CUR']['TZS'] = 'TZS - Tanzanian Shilling'; -$GLOBALS['TL_LANG']['CUR']['UAH'] = 'UAH - Hryvna'; -$GLOBALS['TL_LANG']['CUR']['UGX'] = 'UGX - Ugandan Shilling'; -$GLOBALS['TL_LANG']['CUR']['USD'] = 'USD - United States Dollar'; -$GLOBALS['TL_LANG']['CUR']['UYU'] = 'UYU - Uruguayan Peso'; -$GLOBALS['TL_LANG']['CUR']['UZS'] = 'UZS - Uzbekistani Som'; -$GLOBALS['TL_LANG']['CUR']['VEF'] = 'VEF - Bolivar Fuerte'; -$GLOBALS['TL_LANG']['CUR']['VND'] = 'VND - Viet Nam Dông'; -$GLOBALS['TL_LANG']['CUR']['VUV'] = 'VUV - Vatu'; -$GLOBALS['TL_LANG']['CUR']['WST'] = 'WST - Tala'; -$GLOBALS['TL_LANG']['CUR']['XCD'] = 'XCD - East Caribbean Dollar'; -$GLOBALS['TL_LANG']['CUR']['YER'] = 'YER - Yemeni Riyal'; -$GLOBALS['TL_LANG']['CUR']['ZAR'] = 'ZAR - Rand'; -$GLOBALS['TL_LANG']['CUR']['ZMK'] = 'ZMK - Zambian Kwacha'; -$GLOBALS['TL_LANG']['CUR']['ZWL'] = 'ZWL - Zimbabwe Dollar'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['CHF'] = 'Fr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['DKK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['NOK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['SEK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; diff --git a/system/modules/isotope/languages/pl/default.xlf b/system/modules/isotope/languages/pl/default.xlf new file mode 100644 index 0000000000..b816e625f9 --- /dev/null +++ b/system/modules/isotope/languages/pl/default.xlf @@ -0,0 +1,1716 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Nazwa `%s` jest zarezerwowana przez system. Spróbuj innej nazwy. + + + No store configuration available + Nie ma żadnej dostępnej konfiguracji sklepu + + + Please create a default store configuration. + Stwórz domyślną konfigurację sklepu. + + + You have not yet placed any orders. + Nie złożono jeszcze żadnych zamówień. + + + The requested order was not found. + Żądane zamówienie nie zostało odnalezione. + + + You must be logged in to checkout. + Musisz być zalogowany aby przejść do kasy. + + + A variant with this attributes is already available. Please select another combination. + Taki sam wariant produktu już istnieje. Utwórz inny wariant + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Proszę wprowadzić liczby całkowite dziesiętne poprzedzone + lub - dozwolony jest także procent. + + + Please enter whole numbers or decimals optionally with a percentage. + Proszę wprowadzić liczby całkowite dziesiętne z opcjonalnym symbolem procenta. + + + Checkout failed. Please try again or choose another payment method. + Kasa. Prosze spróbować ponownie lub wybrać inny moduł płatności. + + + You have no address book entries. + Nie masz żadnych wpisów adresowych. + + + The minimum order amount is %s. Please add more products before checkout. + Minimalna wartość zamówienia wynosi %s. Musisz dodać więcej produktów przez złożeniem zamówienia. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + Minimalna ilość dla "%s" wynosi %s przedmiotów. Proszę sprawdzić koszyk. + + + This image has already been assigned to the fallback language. + Obrazek został już przypisany do języka awaryjnego. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + Proszę wybrać właściwą walidację pola (data, czas, data i czas), aby włączyć kalendarz (date picker). + + + The selected folder is empty. + Wybrany katalog jest pusty. + + + User checkout not allowed + Zamówienie użytkownika jest niedozwolone + + + This product is no longer available. + Ten produkt jest niedostępny. + + + There are errors in your products. + Wystąpiły błędy w produktach. + + + Please resolve the errors in your cart before checking out. + Proszę rozwiązać problemy w koszyku przed złożeniem zamówienia. + + + You cannot configure the same attribute multiple times. + + + Only show this group + Pokaż tylko tą grupę + + + Groups + Grupy + + + Pages + Strony + + + Back to the group picker + Powrót do wyboru grupy + + + Show all groups + Pokaż wszystkie grupy + + + There are no variants for this product. + Nie znaleziono żadnych wariantów tego produktu. + + + Duplicate Fallback + Kopiuj podstawowy + + + Order no %s / %s + Zamówienie nr %s / %s + + + Your payment is being processed. Please be patient... + Trwa dokonywanie płatności. Prosimy cierpliwie czekać... + + + No files uploaded. + Nie załadowano plików. + + + The file could not be uploaded for unknown reason. Please check the system log. + Plik nie mógł zostać wysłany na serwer. Proszę sprawdzić logi systemu. + + + Drop files here to upload + Upuść pliki tutaj, aby je wysłać + + + Upload files + Wyślij pliki + + + Processing dropped files... + Przetwarzam pliki... + + + Some records could not be deleted. + Niektóre rekordy nie mogły zostać usunięte. + + + Some records could not be deleted and have been unpublished instead. + Niektóre rekordy nie mogły zostać usunięte i zostały ukryte. + + + Quantity + Ilość + + + Tax-free + + + search products + wyszukaj... + + + Your downloadable products + Produkty do pobrania + + + <span class="from">From</span> %s + <span class="from">już od: %s</span> + + + View Details + Zobacz więcej + + + Reorder + + + Products Per Page + Wyników na stronie + + + Keywords + Słowa kluczowe + + + Submit + Wyślij + + + Clear Filters + Wyczyść filtry + + + Update + Aktualizuj + + + Add To Cart + Dodaj do koszyka + + + Add All To Cart + + + Update Cart + Aktualizuj koszyk + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Porządkuj wg.: + + + No products have been found. + Niestety, nie odnaleziono żadnego produktu. + + + Back + Wróć + + + Continue + Dalej + + + Order + Zamów + + + No categories are associated with this product. + Ten produkt nie należy do żadnej z kategorii. + + + Submit + Wyślij + + + There are no items in your favorites list. + + + There are no items in your cart. + Twój koszyk jest w tej chwili pusty + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + Wybrany produkt został dodany do koszyka. + + + The products from your last visit have been readded. Please review your shopping cart items. + Produkty z Twojej ostatniej wizyty zostały dodane. Prosimy o sprawdzenie koszyka. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Edytuj + + + Remove + Usuń + + + Remove %s from your cart + Usuń %s z koszyka + + + Order Subtotal: + Podsuma zamówienia: + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Suma zamówienia: + + + No payment options are currently available + W chwili obecnej nie ma dostępnych metod płatności. + + + No shipping options are currently available. + W chwili obecnej nie ma dostepnych metod dostawy. + + + No orders emails found. + Nie znaleziono emaili z zamówieniami. + + + No orders found. + Nie znaleziono żadnego zamówienia. + + + <br />%s downloads remaining + <br />%s plików do pobrania + + + Shopping Cart + Koszyk + + + Proceed to Checkout + Przejdź do kasy + + + Continue shopping + Wróć do sklepu + + + Update Cart + Aktualizuj koszyk + + + Order Status: %s + Status zamówienia: %s + + + Go back to step "%s" + Wróć do kroku "%s" + + + Create New Address + Doddaj nowy adres + + + Use billing address + Użyj adresu z rachunku + + + Use customer address + Użyj adresu klienta + + + Different shipping address + Inny adres dostawy + + + Edit + Edytuj + + + Delete + Skasuj + + + Do you really want to delete this address? This cannot be undone. + Czy jesteś pewien, że chcesz usunąć ten adres? Ta operacja nie może być cofnięta. + + + Invoice + Faktura + + + Status + Status + + + Order date + Data zamówienia + + + Order number + Numer zamówienia + + + Description + Opis + + + Quantity + Ilość + + + Price + Cena + + + Total + Suma + + + lo to hi + rosnąco + + + hi to lo + malejąco + + + A to Z + A do Z + + + Z to A + Z do A + + + earlier to later + od najstarszego + + + later to earlier + od najnowszego + + + Processing payment + Płatność jest przetwarzana + + + You will be redirected to the payment gateway website. + + + Pay now + Zapłać teraz + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + Kliknij tutaj, aby wyświetlić transakcję online PayPal + + + 1 Product + 1 produkt + + + %s Products + %s produkty + + + Enter your shipping information or select an existing address. + Wprowadź informacje wysyłki lub wybierz istniejący adres. + + + Enter your billing information or select an existing address. + Wprowadź informacje rozliczeniowe lub wybierz istniejący adres. + + + Enter your billing information + Wprowadź informacje rozliczeniowe + + + Enter your customer information or select an existing address. + Wprowadź swoje informacje lub wybierz istniejący adres. + + + Enter your customer information + Wprowadź swoje informacje + + + Select a shipping method. + Wybierz metodę wysyłki. + + + Please select a shipping method. + Wybierz metodę wysyłki. + + + Enter your payment information. + Wprowadź informację o płatności. + + + Please select a payment method. + Wybierz metodę płatności. + + + Review and confirm your order details. + Podsumowanie i potwierdzenie szczegółów zamówienia. + + + Address + Adres + + + Shipping + Wysyłka + + + Payment + Płatność + + + Review + Podsumowanie + + + Billing Address + Adres rozliczeniowy + + + Shipping Address + Adres dostawy + + + Billing & Shipping Address + Adres rozliczeniowy i dostawy + + + Customer Address + Adres klienta + + + Shipping Method + Metoda dostawy + + + Payment Method + Metoda płatności + + + Order Review + Podsumowanie zamówienia + + + Change + Zmiana + + + Credit card number + Numer karty kredytowej + + + Credit card type + Typ karty kredytowej + + + CCV number (3 or 4 digit code) + Numer CCV (3 lub 4 cyfry) + + + Expiration month + Miesiąc wygaśnięcia + + + Expiration year + Rok wygaśnięcia + + + Payment module not found! + Moduł płatności nie znaleziony! + + + Shipping module not found! + Moduł wysyłki nie znaleziony! + + + This payment module does not provide additional information. + Ten moduł płatności nie posiada dodatkowych informacji. + + + This shipping module does not provide additional information. + Ten moduł wysyłki nie posiada dodatkowych informacji. + + + Use default value + Użyj domyślnej wartości + + + active step: + aktwny krok: + + + Loading products... + Ładuję produkty... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + Twoja przeglądarka nie obsługuje JavaScript. Kliknij <a href="%s">click tutaj</a>, aby załadować listę produktów. + + + No files in this folder + Brak plików w tym katalogu + + + Imported file %s for product "%s" + Plik %s zaimportowany dla produktu "%s" + + + The folder did not contain any files to be imported. + Folder nie zawierał żadnych plików do importu. + + + Loading product data … + Ładuję dane produktu … + + + Store Config "%s" + Konfiguracja sklepu "%s" + + + Splitted + Podzielony + + + You have %s order(s) with status "%s" + Masz %s zamówień ze statusem "%s" + + + Step %s of %s (%s) - + Krok %s z %s (%s) - + + + Minutes + Minuty + + + Hours + Godziny + + + Days + Dni + + + Weeks + Tygodnie + + + Months + Miesiące + + + Years + Lata + + + Introduction + + + Welcome to Isotope eCommerce + Witamy w Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + Isotope jest prestiżowym rozwiązaniem open source eCommerce dla Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + Większość konfiguracji znajduje się w tym miejscu. <strong>Powinieneś zacząć od dołu strony i kontynuować w górę od lewej do prawej strony.</strong>. + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + Zespół Isotope eCommerce + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + Isotope jest produktem %s przy współpracy z <a href="http://isotopeecommerce.org/de/team.html" target="_blank">zespołem Isotope eCommerce</a>. + + + by date added (ascending) + po dacie dodania (rosnąco) + + + by date added (descending) + po dacie dodania (malejąco) + + + by date updated (ascending) + po dacie aktualizacji (rosnąco) + + + by date updated (descending) + po dacie aktualizacji (malejąco) + + + by product name (ascending) + po nazwie produktu (rosnąco) + + + by product name (descending) + po nazwie produktu (malejąco) + + + by price (ascending) + po cenie (rosnąco) + + + by price (descending) + po cenie (malejąco) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + Jednolita cena wysyłki + + + This is the default shipping method for regular shipping. + To jest domyślna metoda wysyłki dla normalnej wysyłki. + + + Shipping group + Grupy dostawy + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + Za pomocą tej metody, możesz pogrupować kilka metod wysyłki w jedną i obliczyć na jej podstawie cenę. + + + Cash + Gotówka + + + Use this for all offline processed payment. + Użyj tego dla wszystkich procesów płatności offline. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + Ten moduł PayPal wspiera IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + Metoda płatności dla szwajcarskiego systemu płatności, która wspiera różne typy kart. Sklep zostanie natychmiastowo powiadomiony o pomyślnych transakcjach. + + + VIVEUM + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + Metoda płatności dla VIVEUM Zahlungssysteme GmbH. + + + Datatrans + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + Moduł płatności dla szwajcarskiej metody płatności "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + Sparkasse + + + Saferpay + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + sofortüberweisung.de + + + ExperCash + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + PayOne + + + WorldPay + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + Standard + + + Default gallery + Domyślna galeria + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + <p>Używa lightbox/mediabox dla obrazków w pełnym rozmiarze. Sprawdź, czy wybrałeś odpowiedni szablon "moo_" w ustawieniach układu strony.</p><p>Możesz podać atrybut "rel" do celu linka używając tzw. pipe (np. "tl_files/video.mov|lightbox[400 300]"). Jeśli nie ma podanego atrybutu "rel", link zostanie otworzony w nowym oknie.</p> + + + Inline gallery + Szeregowa galeria + + + Clicking on a gallery image will replace the main image. + Kliknięcie w obrazek galerii spowoduje zastąpienie głównego obrazka. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + Standardowy produkt + + + A default product. Select this if nothing else matches. + Domyślny produkt. Wybierz ten, jeśli nic innego nie pasuje. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Discover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + EnRoute + + + Carte Blanche + Carte Blanche + + + JAL + JAL + + + Maestro UK + Maestro UK + + + Delta + Delta + + + Solo + Solo + + + Visa Electron + Visa Electron + + + Dankort + Dankort + + + Laser + Laser + + + Carte Bleue + Carte Bleue + + + Carta Si + Carta Si + + + Encoded Account Number + Encoded Account Number + + + Universal Air Travel Program + Universal Air Travel Program + + + Maestro International + Maestro International + + + GE Money UK + GE Money UK + + + Text field + Pole tekstowe + + + A single-line input field for a short or medium text. + Pojedyncze pole tekstowe do krótkiego lub średniego tekstu. + + + Textarea + Textarea + + + A multi-line input field for a medium or long text. + Obszar tekstowy do średniego lub długiego tekstu. + + + Select menu + Rozwijane menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + Rozwijane menu z jedną lub wieloma opcjami.<br /><i>Ten typ pola pasuje do wariantów produktu.</i> + + + Radio button menu + Przyciski radio + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + Lista wielu opcji, z których tylko jedna może zostać wybrana.<br /><i>Ten typ pola pasuje do wariantów produktu.</i> + + + Checkbox menu + Lista checkbox + + + A list of multiple options from which any can be selected. + Lista wielu opcji, które można zaznaczyć. + + + Media Manager + Media manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + Wgrywaj obrazki i inne pliki do systemu plików Isotope eCommerce. Wyjściowy rezultat jest przetwarzany przez klasę IsotopeGallery. + + + Conditional Select-Menu + Rozwijane menu (conditional) + + + show select-options based on another select menu. + Pokazuje wybrane opcje na biorąc pod uwagę inne rozwijane menu. + + + File tree + Drzewo plików + + + A file tree for single or multiple files and folders. + Drzewo plików dla jednego lub wielu plików lub katalogów. + + + Downloads + Pliki do pobrania + + + Download files from the product, e.g. manuals, data sheets etc. + Pobierz pliki produktu, np. instrukcje, specyfikacje, itp. + + + File upload + Upload pliku + + + A single-line input field to upload a local file to the server. + Pole do wgrywania plików na serwer. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + AED - United Arab Emirates Dirham + + + AFN - Afghani + AFN - Afghani + + + ALL - Lek + ALL - Lek + + + AMD - Dram + AMD - Dram + + + ANG - Netherlands Antilles Guilder + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + AUD - Australian Dollar + + + AWG - Aruban Guilder + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + BAM - Convertible Mark + + + BBD - Barbados Dollar + BBD - Barbados Dollar + + + BDT - Taka + BDT - Taka + + + BGN - Bulgarian Lev + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + BHD - Bahraini Dinar + + + BIF - Burundi Franc + BIF - Burundi Franc + + + BMD - Bermudian Dollar + BMD - Bermudian Dollar + + + BND - Brunei Dollar + BND - Brunei Dollar + + + BOB - Boliviano + BOB - Boliviano + + + BRL - Brazilian real + BRL - Brazilian real + + + BSD - Bahamian Dollar + BSD - Bahamian Dollar + + + BTN - Ngultrum + BTN - Ngultrum + + + BWP - Pula + BWP - Pula + + + BYR - Belarussian Rouble + BYR - Belarussian Rouble + + + BZD - Belize Dollar + BZD - Belize Dollar + + + CAD - Canadian Dollar + CAD - Canadian Dollar + + + CDF - Congolese Franc + CDF - Congolese Franc + + + CHF - Swiss Franc + CHF - Swiss Franc + + + CLF - Unidades de Fomento + CLF - Unidades de Fomento + + + CLP - Chilean Peso + CLP - Chilean Peso + + + CNY - Yuan Renminbi + CNY - Yuan Renminbi + + + COP - Colombian Peso + COP - Colombian Peso + + + CRC - Costa Rican Colón + CRC - Costa Rican Colón + + + CUC - Peso Convertible + CUC - Peso Convertible + + + CUP - Cuban Peso + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + CZK - Czech Koruna + + + DJF - Djibouti Franc + DJF - Djibouti Franc + + + DKK - Danish Krone + DKK - Danish Krone + + + DOP - Dominican Republic Peso + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + DZD - Algerian Dinar + + + EGP - Egyptian Pound + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + ETB - Ethiopian Birr + + + EUR - Euro + EUR - Euro + + + FJD - Fiji Dollar + FJD - Fiji Dollar + + + FKP - Falkland Pound + FKP - Falkland Pound + + + GBP - Pound Sterling + GBP - Pound Sterling + + + GEL - Lari + GEL - Lari + + + GHS - Ghanaian cedi + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + GIP - Gibraltar Pound + + + GMD - Dalasi + GMD - Dalasi + + + GNF - Guinea Franc + GNF - Guinea Franc + + + GTQ - Quetzal + GTQ - Quetzal + + + GYD - Guyana Dollar + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + HKD - Hong Kong Dollar + + + HNL - Lempira + HNL - Lempira + + + HRD - Croatian Dinar + HRD - Croatian Dinar + + + HRK - Croatian Kuna + HRK - Croatian Kuna + + + HTG - Gourde + HTG - Gourde + + + HUF - Forint + HUF - Forint + + + IDR - Rupiah + IDR - Rupiah + + + ILS - Shekel + ILS - Shekel + + + INR - Indian Rupee + INR - Indian Rupee + + + IQD - Iraqi Dinar + IQD - Iraqi Dinar + + + IRR - Iranian Rial + IRR - Iranian Rial + + + ISK - Icelandic Króna + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + JOD - Jordanian Dinar + + + JPY - Yen + JPY - Yen + + + KES - Kenyan Shilling + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + KGS - Kyrgyzstani Som + + + KHR - Riel + KHR - Riel + + + KMF - Comorian Franc + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + KYD - Cayman Islands Dollar + + + KZT - Tenge + KZT - Tenge + + + LAK - Kip + LAK - Kip + + + LBP - Lebanese Pound + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + LRD - Liberian Dollar + + + LSL - Loti + LSL - Loti + + + LTL - Litas + LTL - Litas + + + LVL - Lats + LVL - Lats + + + LYD - Libyan Dinar + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + MDL - Moldavian Leu + + + MGA - Malagasy ariary + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + MKD - Macedonian Dinar + + + MMK - Kyat + MMK - Kyat + + + MNT - Tugrik + MNT - Tugrik + + + MOP - Pataca + MOP - Pataca + + + MRO - Ouguiya + MRO - Ouguiya + + + MUR - Mauritius Rupee + MUR - Mauritius Rupee + + + MVR - Rufiyaa + MVR - Rufiyaa + + + MWK - Malawian Kwacha + MWK - Malawian Kwacha + + + MXN - Mexican Peso + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + MZN - Mozambican metical + + + NAD - Namibia Dollar + NAD - Namibia Dollar + + + NGN - Naira + NGN - Naira + + + NIO - Cordoba Oro + NIO - Cordoba Oro + + + NOK - Norwegian Krone + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + NZD - New Zealand Dollar + + + OMR - Omani Rial + OMR - Omani Rial + + + PAB - Balboa + PAB - Balboa + + + PEN - New Sol + PEN - New Sol + + + PGK - Kina + PGK - Kina + + + PHP - Philippines Peso + PHP - Philippines Peso + + + PKR - Pakistani Rupee + PKR - Pakistani Rupee + + + PLN - Zloty + PLN - Zloty + + + PYG - Guarani + PYG - Guarani + + + QAR - Qatari Riyal + QAR - Qatari Riyal + + + RON - Romanian New Leu + RON - Romanian New Leu + + + RSD - Serbian Dinar + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + RWF - Rwandan Franc + + + SAR - Saudi Riyal + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + SDG - Sudanese Pound + + + SEK - Swedish Krona + SEK - Swedish Krona + + + SGD - Singapore Dollar + SGD - Singapore Dollar + + + SHP - St. Helena Pound + SHP - St. Helena Pound + + + SLL - Leone + SLL - Leone + + + SOS - Somali Shilling + SOS - Somali Shilling + + + SRD - Surinamese Dollar + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + SSP - South Sudanese Pound + + + STD - Dobra + STD - Dobra + + + SVC - El Salvador Colon + SVC - El Salvador Colon + + + SYP - Syrian Pound + SYP - Syrian Pound + + + SZL - Lilangeni + SZL - Lilangeni + + + THB - Baht + THB - Baht + + + TJS - Tajikistani Somoni + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + TND - Tunisian Dinar + + + TOP - Pa'anga + TOP - Pa'anga + + + TRY - New Turkish Lira + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + TZS - Tanzanian Shilling + + + UAH - Hryvna + UAH - Hryvna + + + UGX - Ugandan Shilling + UGX - Ugandan Shilling + + + USD - United States Dollar + USD - United States Dollar + + + UYU - Uruguayan Peso + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + VND - Viet Nam Dông + + + VUV - Vatu + VUV - Vatu + + + WST - Tala + WST - Tala + + + XCD - East Caribbean Dollar + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + YER - Yemeni Riyal + + + ZAR - Rand + ZAR - Rand + + + ZMK - Zambian Kwacha + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + ZWL - Zimbabwe Dollar + + + Fr. + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/exception.php b/system/modules/isotope/languages/pl/exception.php deleted file mode 100644 index db3f0c7019..0000000000 --- a/system/modules/isotope/languages/pl/exception.php +++ /dev/null @@ -1,23 +0,0 @@ -Prosimy rozważyć dotację.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldFix3'] = 'Uzyskaj pomoc doświadczonego developera Contao przy ręcznej migracji danych. Sugerujemy zajrzenie na oficjalną listę partnerów Contao.'; -$GLOBALS['TL_LANG']['XPT']['isotopeOldExplain'] = 'Odwiedź naszą stronę po więcej informacji na temat Isotope eCommerce.'; diff --git a/system/modules/isotope/languages/pl/exception.xlf b/system/modules/isotope/languages/pl/exception.xlf new file mode 100644 index 0000000000..6dbbc70254 --- /dev/null +++ b/system/modules/isotope/languages/pl/exception.xlf @@ -0,0 +1,34 @@ + + + + + Isotope eCommerce - data loss protection + Isotope eCommerce - ochrona przed utratą danych + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + Została wykryta stara wersja Isotope eCommerce. Jeśli chciałbyś zaktualizować bazę danych, istniejące dane o klientach i konfiguracji mogą zostać utracone. Aby temu zapobiec, narzędzia do aktualizacji bazy danych zostały automatycznie zablokowane. + + + There are multiple options to get your installation back: + Istnieje kilka sposobów, aby przywrócić instalację: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + Utwórz kopię zapasową, a następnie odinstaluj Isotope i usuń wszystkie jego tabele w bazie danych i powiązane rozszerzenia. Potem ponownie zainstaluj Isotope eCommerce 2.0. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + Jesteśmy na etapie zbierania funduszy w celu utworzenia narzędzia aktualizacji. Im więcej osób pomoże, tym szybciej będziesz mógł zaktualizować starą instalację. <a href="http://isotopeecommerce.com/en/" target="_blank">Prosimy rozważyć dotację</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + Uzyskaj pomoc doświadczonego developera Contao przy ręcznej migracji danych. Sugerujemy zajrzenie na <a href="http://contao.org/en/" target="_blank">oficjalną listę partnerów Contao</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + <a href="http://isotopeecommerce.org/" target="_blank">Odwiedź naszą stronę</a> po więcej informacji na temat Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/explain.php b/system/modules/isotope/languages/pl/explain.php deleted file mode 100644 index ca1c20ed4a..0000000000 --- a/system/modules/isotope/languages/pl/explain.php +++ /dev/null @@ -1,18 +0,0 @@ -\n W przeciwieństwie do innych modułów Contao, użytkownik nie może zostać przekierowany do strony czytnika podczas przeglądania szczegółów produktu. Aby rozwiązać problem ładnych aliasów i znania strony szczegółów produktu, wymyśliliśmy nowe rozwiązanie.
\n
\n Strona czytnika (alias) będzie zawsze tą samę stroną, którą wybrałeś jako kategorię dla produktu. Są dwie opcje wyświetlania szczegółów produktu:
\n
\n Opcja 1:
\n Nie ustawiaj strony czytnika w strukturze stron. Umieść listę i czytnik na tej samej stronie. Wskaż modułowi listy, aby się ukrył, jeśli znaleziony został alias produktu (checkbox w ustawieniach modułu). Czytnik będzie automatycznie niewidoczny, jeśli żaden czytnik nie został znaleziony.
\n Zaleta: Proste w ustawieniu
\n Wada: Układ strony czytnika oraz listy będą takie same i nie możesz mieć różnych artykułów dla obu przypadków.
\n
\n Opcja 2:
\n Ustaw stronę czytnika dla każdej strony listy (kategoria produktu) w strukturze stron. Miej świaomość, że ustawienia czytnika nie są dziedziczone! Dodaj czytnik modułu do strony, tak jak zwykle.
\n Isotope użyje tej strony do generowanie serwisu, jeśli alias produktu został znaleziony w URL. Alias jednak będzie taki sam jak ze strony listy.
\n Zaleta: Możesz mieć różną treść i układ strony (np. różne kolumny) dla strony czytnika i strony listy.
\n Wada: Musisz ustawić stronę czytnika dla każdej strony listy (kategorii). To ustawienie NIE JEST DZIEDZICZONE.\n

"; -$GLOBALS['TL_LANG']['XPL']['mediaManager'] = '

Aby wgrać nowy obrazek, wybierz plik i zapisz produkt. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.

'; diff --git a/system/modules/isotope/languages/pl/explain.xlf b/system/modules/isotope/languages/pl/explain.xlf new file mode 100644 index 0000000000..453107bd52 --- /dev/null +++ b/system/modules/isotope/languages/pl/explain.xlf @@ -0,0 +1,52 @@ + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + +<p class="tl_help_table"> + W przeciwieństwie do innych modułów Contao, użytkownik nie może zostać przekierowany do strony czytnika podczas przeglądania szczegółów produktu. Aby rozwiązać problem ładnych aliasów i znania strony szczegółów produktu, wymyśliliśmy nowe rozwiązanie.<br> + <br> + Strona czytnika (alias) będzie zawsze tą samę stroną, którą wybrałeś jako kategorię dla produktu. Są dwie opcje wyświetlania szczegółów produktu:<br> + <br> + <strong>Opcja 1:</strong><br> + Nie ustawiaj strony czytnika w strukturze stron. Umieść listę i czytnik na tej samej stronie. Wskaż modułowi listy, aby się ukrył, jeśli znaleziony został alias produktu (checkbox w ustawieniach modułu). Czytnik będzie automatycznie niewidoczny, jeśli żaden czytnik nie został znaleziony.<br> + <u>Zaleta:</u> Proste w ustawieniu<br> + <u>Wada:</u> Układ strony czytnika oraz listy będą takie same i nie możesz mieć różnych artykułów dla obu przypadków.<br> + <br> + <strong>Opcja 2:</strong><br> + Ustaw stronę czytnika dla każdej strony listy (kategoria produktu) w strukturze stron. <i>Miej świaomość, że ustawienia czytnika nie są dziedziczone!<i> Dodaj czytnik modułu do strony, tak jak zwykle.<br> + Isotope użyje tej strony do generowanie serwisu, jeśli alias produktu został znaleziony w URL. Alias jednak będzie taki sam jak ze strony listy.<br> + <u>Zaleta:</u> Możesz mieć różną treść i układ strony (np. różne kolumny) dla strony czytnika i strony listy.<br> + <u>Wada:</u> Musisz ustawić stronę czytnika dla każdej strony listy (kategorii). To ustawienie NIE JEST DZIEDZICZONE. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + <p class="tl_help_table">Aby wgrać nowy obrazek, wybierz plik i zapisz produkt. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/iso_upgrade.php b/system/modules/isotope/languages/pl/iso_upgrade.php deleted file mode 100644 index bd1411726a..0000000000 --- a/system/modules/isotope/languages/pl/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Aktualizuj + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/modules.php b/system/modules/isotope/languages/pl/modules.php deleted file mode 100644 index 20c165e873..0000000000 --- a/system/modules/isotope/languages/pl/modules.php +++ /dev/null @@ -1,83 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Zarządzanie produktami + + + Manage products for your Isotope eCommerce shop + Zarządzaj produktami swojego sklepu Isotope + + + Orders + Zamówienia + + + See and manage orders for your shop + Zobacz i zarządzaj zamówieniami w sklepie + + + Store configuration + Konfiguracja sklepu + + + Setup and configure Isotope eCommerce to your needs + Skonfiguruj i dostosuj Isotope eCommerce do swoich potrzeb + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Filtry produktów + + + Define individual filters for Isotope such as category trees and product attribute filters. + Definiuj indywidualne filtry dla Isotope, takie jak drzewa kategorii i atrybuty produków. + + + Cumulative Filter + Kumulacyjny filtr + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Dodaje kumulacyjny filtr, dzięki któremu użytkownicy mogą ograniczyć wybór produktów klikając odpowiednie kryteria. + + + Product List + Lista produktów + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Główny moduł listy produktów. Może być użyty do wyświetlenia listy produktów lub wartości atrybutów. Może być używany z innymi modułami (np. moduł filtrowania). + + + Product Variant List + Lista wariantów produktu + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Wyświetla listę każdego wariantu produktu. Używaj templatki iso_list_variants z tym modułem. + + + Product Reader + Przeglądarka produktów + + + Product reader module. This is used to display product details. + Ten moduł wyświetla pełny opis produktu + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Koszyk + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + W pełni fukncjonalny koszyk produktów. Tryb wyświetlania zależy od templatki. + + + Checkout + Kasa + + + Allow store customers to complete their transactions. + Miejsce, gdzie klienci finalizują swoje transakcje. + + + Address Book + Książka adresowa + + + Allow customers to manage their address book. + Miejsce, gdzie klienci zarządzają swoimi książkami adresowymi. + + + Order History + Historia zamówień + + + Order lister that allows customers to view their order history + Lista sfinalizowanych zamówień klienta. + + + Order Details + Szczegóły zamówienia + + + Order reader that allows customers to view order history details + Czytnik zamówienia, który pozwala klientowi na dostęp do historii zamówienia. + + + Store Config Switcher + Zmiana konfiguracji sklepu + + + Switch between store configuration to change currency and other settings. + Przełącznik pomiędzy konfiguracjami sklepu, np. do zmiany waluty i innych ustawień. + + + Related products + Powiązane produkty + + + List products related to the current one. + Lista produktów powiązanych z aktywnie wyświetlonym. + + + Messages + Wiadomości + + + Displays all Isotope messages if they have not been displayed elsewhere. + Wyświetla wszystkie wiadomości Isotope, jeśli nie zostały wyświetlone nigdzie indziej. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + Konfiguracja Isotope eCommerce (wersja: %s) + + + Products + Produkty + + + Attributes + Atrybuty + + + Manage and create product attributes such as size, color, etc. + Twórz i zarządzaj atrybutami porduktów takimi jak rozmiar, kolor, kształt itd... Ułatwi Ci to późniejsze generowanie wariantów tego samego towaru. + + + Product types + Typy produktów + + + Manage and create product types from sets of attributes. + Dodawaj i zarządzaj typami towaru w sklepie na podstawie zdefiniowanych atrybutów. + + + Related categories + Powiązane kategorie + + + Define categories for product relations. + Swórz nowe kategorie i powiaż ze sobą produkty lub grupy produktów. + + + Galleries + Galerie + + + Define how you want the images in your product to be rendered. + Określ w jaki sposób mają wyświetlać się obrazki produktów. + + + Base prices + Ceny bazowe + + + Define base price. + Definiuj cenę bazową. + + + Checkout Flow + Funkcje finansowe + + + Shipping methods + Metody dostawy + + + Set up shipping methods. + Utwórz opcje dostawy widoczne dla klientów, PocztaPolska, UPS, DHL itd.. + + + Payment methods + Metody płatności + + + Set up payment methods. + Zdefiniuj metody płatności dostepne przy składaniu zamówienia Authorize.net, PayPal Pro, i inne. + + + Tax classes + Klasy podatku + + + Set up Tax classes, which contain sets of Tax rates. + Definiuj i zarządzaj klasami podatku na postawie stawek podatkowych. + + + Tax rates + Stawki podatkowe + + + Set up tax rates based on things like shipping/billing location and order total. + Definiuj stawki podatku dla produktów. Moga one zależeć np. od miejsca/kraju w którym prowadzi działalność lub zamieszkuje odbiorca, miejsca dostawy towaru lub całości zamówienia. + + + General settings + Ustawienia ogólne + + + Store configurations + Konfiguracje sklepu + + + Configure general settings for this store. + Skonfiguruj najważniejsze ustawienia dla swoich sklepów. + + + Order status + Status zamówienia + + + Define order status. + Definiuj statusy zamówień. + + + Notifications + Powiadomienia + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + Użyj Centrum Powiadomień do zarządzania e-mailami np. dla Isotope eCommerce. + + + Documents + Dokumenty + + + Define documents. + Definiuj dokumenty. + + + Miscellaneous + Rożności + + + Translations + Tranzakcje + + + Replace given labels for certain languages. + Zastąp podane etykiety dla określonych języków. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/subdivisions.php b/system/modules/isotope/languages/pl/subdivisions.php deleted file mode 100644 index 02c2368fb8..0000000000 --- a/system/modules/isotope/languages/pl/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + ID sklepu + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Używaj różnych ID sklepów do grupowania zestawów konfiguracji. Koszyk użytkownika i adres będzie współdzielony w obrębie tego samego ID sklepu. + + + Label + Etykieta + + + Please enter a custom label for this address. + Proszę wprowadzić nazwę etykiety dla tego adresu. + + + Gender + Płeć + + + Please choose the gender. + Proszę wprowadzić płeć. + + + Salutation + Tytuł + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Proszę wprowadzić tytuł (Pan, Pani, Dr, Prof.). + + + First name + Imię + + + Please enter the first name. + Proszę wprowadzić imię. + + + Last name + Nazwisko + + + Please enter the last name. + Proszę wprowadzić nazwisko. + + + Date of birth + Data urodzenia + + + Please enter the date of birth. + Proszę wprowadzić datę urodzenia. + + + Company + Nazwa firmy + + + You can enter a company name here. + Tutaj możesz wprowadzić nazwę firmy. + + + VAT No. + Nr VAT + + + Please enter a VAT number. + Proszę wprowadzić numer VAT. + + + Street + Ulica + + + Please enter the street name and the street number. + Proszę wprowadzić nazwę ulicy i numer lokalu. + + + Street 2 + Ulica 2 + + + Enter a second street info if there's any. + Tutaj możesz wprowadzić dodatkową informację o ulicy + + + Street 3 + Ulica 3 + + + Enter a third street info if there's any. + Tutaj możesz wprowadzić dodatkową informację o ulicy. + + + Postal code + Kod pocztowy + + + Please enter the postal code. + Proszę wprowadzić kod pocztowy. + + + City + Miasto + + + Please enter the name of the city. + Proszę wprowadzić nazwę miasta. + + + State + Stan + + + Please enter the name of the state. + Proszę wprowadzić nazwę stanu. + + + Country + Kraj + + + Please select a country. + Proszę wybrać kraj. + + + Phone number + Numer telefonu + + + Please enter the phone number. + Proszę wprowadzić numer telefonu. + + + E-mail address + Adres e-mail + + + Please enter a valid e-mail address. + Proszę wprowadzić adres e-mail. + + + Default billing address + Domyślny adres rozliczeniowy + + + Is this your default billing address? + Czy to twój domyślny adres rozliczeniowy? + + + Default shipping address + Domyślny adres do wysyłki + + + Is this your default shipping address? + Czy to twój domyślny adres do wysyłki? + + + Store + Sklep + + + Personal data + Dane osobiste + + + Address details + Szczegóły adresu + + + Contact details + Dane kontaktowe + + + Default address + Domyślny adres + + + Personal data + Dane osobiste + + + Address details + Szczegóły adresu + + + Contact details + Dane kontaktowe + + + Default address + Domyślny adres + + + New address + Nowy adres + + + Create a new address + Dodaj nowy adres + + + Edit address + Edytuj adres + + + Edit address ID %s + Edytuj adres ID %s + + + Duplicate address + Duplikuj adres + + + Duplicate address ID %s + Duplikuj adres ID %s + + + Delete address + Usuń adres + + + Delete address ID %s + Usuń adres ID %s + + + Address details + Szczegóły adresu + + + Show details of address ID %s + Pokaż szczegóły adresu ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_attribute.php b/system/modules/isotope/languages/pl/tl_iso_attribute.php deleted file mode 100644 index 784307b410..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_attribute.php +++ /dev/null @@ -1,138 +0,0 @@ -).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][0] = 'Data'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date'][1] = 'Sprawdza, czy wprowadzona wartość zgadza się z globalnym formatem daty.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][0] = 'Czas'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['time'][1] = 'Sprawdza, czy wprowadzona wartość zgadza się z globalnym formatem czasu.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][0] = 'Data i czas'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['datim'][1] = 'Sprawdza, czy wprowadzona wartość zgadza się z globalnym formatem daty i czasu.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][0] = 'Numer telefonu'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['phone'][1] = 'Dozwolone cyfry, plus (+), minus (-), slash (/), nawiasy () i spacja ( ).'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][0] = 'Adres e-mail'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['email'][1] = 'Sprawdza, czy wprowadzona wartość jest prawdiłowym adresem e-mail.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][0] = 'Adres URL'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['url'][1] = 'Sprawdza, czy wprowadzona wartość jest prawdiłowym adresem URL.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][0] = 'Cena'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['price'][1] = 'Sprawdza, czy wprowadzona wartość jest prawidłową ceną'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][0] = 'Zniżka'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['discount'][1] = 'Sprawdza, czy wprowadzona wartość jest prawidłową zniżką.
Przykład: -10%, -10, +10, +10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][0] = 'Dopłata'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['surcharge'][1] = 'Sprawdza, czy wprowadzona wartość jest prawidłową dopłatą.
Przykład: 10.00, 10%'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['custom'] = 'Niestandardowa kolejność'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_asc'] = 'Nazwa pliku (rosnąco)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['name_desc'] = 'Nazwa pliku (malejąco)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_asc'] = 'Data (rosnąco)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['date_desc'] = 'Data (malejąco)'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['random'] = 'Losowa kolejność'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][0] = 'Nowy atrybut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['new'][1] = 'Dodaj nowy atrybut.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][0] = 'Edycja atrybutu'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['edit'][1] = 'Edytuj atrybut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][0] = 'Kopiuj atrybut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['copy'][1] = 'Kopiuj atrybut ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][0] = 'Usuń atrybut'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['delete'][1] = 'Usuń atrybut ID %s. Pole w bazie danych nie zostanie usunięte, w tym celu użyj narzędzia instalacyjnego Contao lub Menadżera rozszerzeń.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][0] = 'Pokaż szczegóły atrybutu'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['show'][1] = 'Pokaż szczegóły atrybutu ID %s.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['deleteConfirm'] = 'Czy na pewno chcesz usunąć atrybut ID %s? Pole w bazie danych nie zostanie usunięte, w tym celu użyj narzędzia instalacyjnego Contao lub Menadżera rozszerzeń.'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['attribute_legend'] = 'Nazwa i typ atrybutu'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['description_legend'] = 'Opis'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['options_legend'] = 'Opcje'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['config_legend'] = 'Konfiguracja atrybutu'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['search_filters_legend'] = 'Ustawienia wyszukiwania i filtrowania'; -$GLOBALS['TL_LANG']['tl_iso_attribute']['store_legend'] = 'Przetrzymuj plik'; diff --git a/system/modules/isotope/languages/pl/tl_iso_attribute.xlf b/system/modules/isotope/languages/pl/tl_iso_attribute.xlf new file mode 100644 index 0000000000..f4d33f8949 --- /dev/null +++ b/system/modules/isotope/languages/pl/tl_iso_attribute.xlf @@ -0,0 +1,668 @@ + + + + + Name + Nazwa + + + Please enter a name for this attribute. + Proszę wprowadzić nazwę dla tego atrybutu. + + + Internal name + Wewnętrzna nazwa + + + Internal name is the database field name and must be unique. + Wewnętrzna nazwa jest nazwą pola w bazie danych i musi być unikalna. + + + Type + Typ + + + Please select a type for this attribute. + Proszę wybrać typ dla tego atrybutu. + + + Field Group + Grupa + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + Wybierz grupę, do której ten atrybut się odnosi (używane to porządkowania powiązanych pól podczas edycji produktu. + + + Add to product variants wizard + Dodaj atrybut do wizarda wariantów + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + Dodaje atrybut do wizarda wariantów produktu jako opcję wariantu. + + + Defined by customer + Określone przez klienta + + + Please select if this value defined by the customer (frontend). + Zaznacz, jeśli wartość atrybutu jest określana przez klienta (frontend). + + + Description + Opis + + + The description is shown as a hint to the backend user. + Opis jest pokazany jako podpowiedź dla użytkownika panelu administratora. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + Produkt + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + Opcje + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + Proszę wprowadzić jedną lub więcej opcji. Użyj przycisków by dodać, przesunąć lub usunąć opcję. + + + Value + Wartość + + + Label + Etykieta + + + Default + Domyślny + + + Group + Grupa + + + Options + Opcje + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + Pole wymagane + + + The field must be filled when editing a product. + Pole musi zostać wypełnione podczas edycji produktu. + + + Multiple selection + Wielokrotny wybór + + + Allow visitors to select more than one option. + Pozwól odwiedzającym na wybranie jednej lub więcej opcji. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + Dozwolone typy plików + + + A comma separated list of valid file extensions. + Lista oddzielonych przecinkami dozwolonych rozszerzeń plików. + + + Use HTML editor + Używaj edytora HTML + + + Select a tinyMCE configuration file to enable the rich text editor. + Wybierz konfigurację tinyMCE by włączyć edytor tekstu. + + + Multilingual + Wielojęzyczny + + + Check here if this field should be translated. + Zaznacz, jeśli pole powinno być przetłumaczone. + + + Input validation + Sprawdzenie wartości + + + Validate the input against a regular expression. + Sprawdź wprowadzoną wartość przy pomocy wyrażenia regularnego. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + Maksymalna długość + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + Ogranicz długość pola do wybranej liczby znaków (tekst) lub bitów (upload plików). + + + Foreign table & field + Zewnętrzna tabela i pole + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + Tutaj możesz wprowadzić nazwę tabeli i pola, z której zostaną pobrane opcje (np. tl_tabela.pole). By używać wielojęzycznych kluczy, wprowadź jeden na linię i określ język (np. pl=tl_tabela.pole) + + + Parent field + Pole rodzica + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + Proszę wybrać pole rodzica, które musi być typu "Select-Menu". Dla relacji rodzic-dziecko, zdefiniuj każdą opcję dla tego pola jako grupa dla conditional select-menu. + + + Show files + Pokaż pliki + + + Show both files and folders. + Pokazuj pliki i foldery. + + + Files only + Tylko pliki + + + Remove the radio buttons or checkboxes next to folders. + Usuń przyciski radio i checkbox obok folderów. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + Typ pola + + + Display radio buttons or checkboxes next to folders. + Wyświetl przycisk radio lub checkbox obok folderów. + + + Order by + Sortowanie + + + Please choose the sort order. + Proszę wybrać opcję sortowania. + + + Root directory + Katalog domyślny + + + You can limit the file tree by defining a root directory here. + Możesz ograniczyć drzewo plików ustalając katalog główny. + + + Store uploaded files + Przechowuj wysłane pliki + + + Move the uploaded files to a folder on the server. + Przenieś wysłane pliki do folderu na serwerze. + + + Target folder + Docelowy folder + + + Please select the target folder from the files directory. + Wybierz docelowy folder z menadżera plików. + + + Use home directory + Użyj katalogu domowego + + + Store the file in the home directory if there is an authenticated user. + Zachowaj plik w katalogu domowym, jeśli użytkownik jest zalogowany. + + + Preserve existing files + Zachować istniejące pliki + + + Add a numeric suffix to the new file if the file name already exists. + Dodaje numeryczny przyrostek do pliku jeśli istnieje już plik o takiej nazwie. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + Docelowy folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + Dodaj do listy "Sortuj" + + + This field will be sortable in the listing module provided the attribute is visible to customers. + To pole będzie możliwe do sortowania w module listingu, o ile atrybut jest widoczny dla klientów. + + + Backend filterable + Filtrowanie backend + + + Can this attribute be used in a backend filter? + Czy ten atrybut może być filtrowany a backendzie? + + + Backend searchable + Wyszukiwanie backend + + + Should the field be available in the backend search? + + + Frontend filterable + Filtrowanie frontend + + + Can this attribute be used in a frontend filter? + Czy ten atrybut może zostać użyty w filtrze frontend? + + + Frontend searchable + Wyszukiwanie frontend + + + Should the search engine look in this field for search terms? + Czy wyszukiwarka powinna uwzględniać to pole przy wyszukiawniu? + + + Date picker + Wybór daty + + + Show a date picker for this field. + Pokaż okno wyboru daty dla tego pola. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + Checkbox + + + Radio + Radio + + + Numeric characters + Znaki numeryczne + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + Dozwolone cyfry, minus (-), kropka (.) i spacja ( ). + + + Alphabetic characters + Znaki alfabetyczne + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + Dozwolone znaki alfabetu, minus (-), kropka (.) i spacja ( ). + + + Alphanumeric characters + Znaki alfanumeryczne + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + Dozwolone znaki alfabetu i cyfry, minus (-), kropka (.), podkreślenie (_) i spacja ( ). + + + Extended alphanumeric characters + Rozszerzone znaki alfabetyczne + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + Dozwolone wszystko oprócz znaków specjalnych (#/()<=>). + + + Date + Data + + + Checks whether the input matches the global date format. + Sprawdza, czy wprowadzona wartość zgadza się z globalnym formatem daty. + + + Time + Czas + + + Checks whether the input matches the global time format. + Sprawdza, czy wprowadzona wartość zgadza się z globalnym formatem czasu. + + + Date and time + Data i czas + + + Checks whether the input matches the global date and time format. + Sprawdza, czy wprowadzona wartość zgadza się z globalnym formatem daty i czasu. + + + Phone number + Numer telefonu + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + Dozwolone cyfry, plus (+), minus (-), slash (/), nawiasy () i spacja ( ). + + + E-mail address + Adres e-mail + + + Checks whether the input is a valid e-mail address. + Sprawdza, czy wprowadzona wartość jest prawdiłowym adresem e-mail. + + + URL format + Adres URL + + + Checks whether the input is a valid URL. + Sprawdza, czy wprowadzona wartość jest prawdiłowym adresem URL. + + + Price + Cena + + + Checks whether the input is a valid price. + Sprawdza, czy wprowadzona wartość jest prawidłową ceną + + + Discount + Zniżka + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + Sprawdza, czy wprowadzona wartość jest prawidłową zniżką.<br />Przykład: -10%, -10, +10, +10% + + + Surcharge + Dopłata + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + Sprawdza, czy wprowadzona wartość jest prawidłową dopłatą.<br />Przykład: 10.00, 10% + + + Custom order + Niestandardowa kolejność + + + File name (ascending) + Nazwa pliku (rosnąco) + + + File name (descending) + Nazwa pliku (malejąco) + + + Date (ascending) + Data (rosnąco) + + + Date (descending) + Data (malejąco) + + + Random order + Losowa kolejność + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + Nowy atrybut + + + Create a new attribute. + Dodaj nowy atrybut. + + + Edit attribute + Edycja atrybutu + + + Edit attribute ID %s. + Edytuj atrybut ID %s. + + + Copy attribute + Kopiuj atrybut + + + Copy attribute ID %s. + Kopiuj atrybut ID %s. + + + Delete attribute + Usuń atrybut + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Usuń atrybut ID %s. Pole w bazie danych nie zostanie usunięte, w tym celu użyj narzędzia instalacyjnego Contao lub Menadżera rozszerzeń. + + + Attribute details + Pokaż szczegóły atrybutu + + + Show details for attribute ID %s. + Pokaż szczegóły atrybutu ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + Czy na pewno chcesz usunąć atrybut ID %s? Pole w bazie danych nie zostanie usunięte, w tym celu użyj narzędzia instalacyjnego Contao lub Menadżera rozszerzeń. + + + Attribute name & type + Nazwa i typ atrybutu + + + Description + Opis + + + Options + Opcje + + + Attribute configuration + Konfiguracja atrybutu + + + Search & Filtering Settings + Ustawienia wyszukiwania i filtrowania + + + Store file + Przetrzymuj plik + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_attribute_option.php b/system/modules/isotope/languages/pl/tl_iso_attribute_option.php deleted file mode 100644 index d33eb67d90..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_attribute_option.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Type + Typ + + + Select a type for this label. + + + Option + + + Group + Grupa + + + Default + Domyślny + + + Check here if this should be the default option. + + + Label + Etykieta + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Cena + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + Publikacja + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_baseprice.php b/system/modules/isotope/languages/pl/tl_iso_baseprice.php deleted file mode 100644 index b075f7b48d..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_baseprice.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Name + Nazwa + + + Enter a name for this base price. + Proszę wprowadzić nazwę dla tej ceny bazowej. + + + Base amount + Bazowa ilość + + + Enter the base amount (e.g. "100"). + Proszę wprowadzić bazową ilość (np. "100"). + + + Label + Etykieta + + + Enter a label for this base price (e.g. "%s per 100g".) + Proszę wprowadzić etykietę dla tej ceny bazowej (np. "%s dla 100g"). + + + New base price + Nowa cena bazowa + + + Create a new base price + Utwórz nową cenę bazową + + + Edit base price + Edytuj cenę bazową + + + Edit base price ID %s + Edytuj cenę bazową ID %s + + + Duplicate base price + Duplikuj cenę bazową + + + Duplicate base price ID %s + Duplikuj cenę bazową ID %s + + + Delete base price + Usuń cenę bazową + + + Delete base price ID %s + Usuń cenę bazową ID %s + + + Base price details + Szczegóły ceny bazowej + + + Show details of base price ID %s + Pokaż szczegóły ceny bazowej ID %s + + + Base price + Cena bazowa + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_config.php b/system/modules/isotope/languages/pl/tl_iso_config.php deleted file mode 100644 index b78fb03e20..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_config.php +++ /dev/null @@ -1,137 +0,0 @@ - + + + + Configuration Name + Nazwa konfiguracji + + + Please enter a name for your configuration. This is only used for back end reference. + Proszę wprowadzić nazwę dla konfiguracji. Będzie ona używana tylko w panelu administratora. + + + Label + Etykieta + + + The label is used in frontend, e.g. for config switcher. + Etykieta będzie używana we frontend, np. przy przełączniku konfiguracji. + + + Set as default store + Ustaw jako domyślny sklep + + + Set this as the default store for back-end currency formatting and other locale-specific information. + Ustaw jako domyślny sklep dla formatowania waluty i innych informacji w panelu administratora. + + + First name + Imię + + + Please enter the first name (if applicable). + Proszę wprowadzić imię (jeśli dotyczy). + + + Last name + Nazwisko + + + Please enter the last name (if applicable). + Proszę wprowadzić nazwisko (jeśli dotyczy). + + + Company + Nazwa firmy + + + You can enter a company name here (if applicable). + Tutaj możesz wprowadzić nazwę firmy (jeśli dotyczy). + + + VAT No. + Nr VAT + + + Please enter a VAT number. + Proszę wprowadzić numer VAT. + + + Street + Ulica + + + Please enter the street name and the street number. + Proszę wprowadzić nazwę ulicy i numer lokalu. + + + Street 2 + Ulica 2 + + + Enter a second street info if there's any. + Tutaj możesz wprowadzić dodatkową informację o ulicy + + + Street 3 + Ulica 3 + + + Enter a third street info if there's any. + Tutaj możesz wprowadzić dodatkową informację o ulicy. + + + Postal code + Kod pocztowy + + + Please enter the postal code. + Proszę wprowadzić kod pocztowy. + + + City + Miasto + + + Please enter the name of the city. + Proszę wprowadzić nazwę miasta. + + + State + Stan + + + Please enter the name of the state. + Proszę wprowadzić nazwę stanu. + + + Country + Kraj + + + Please select a country. This is also the default for custom shipping/billing addresses. + Proszę wybrać kraj. Będzie on również użyty jako domyślny dla adresu wysyłki/rozliczeniowego. + + + Phone number + Numer telefonu + + + Please enter the phone number. + Proszę wprowadzić numer telefonu. + + + Shipping email address + Adres e-mail dostawy + + + Please enter a valid e-mail address. + Proszę wprowadzić adres e-mail. + + + Address fields + Pola adresowe + + + Select the fields for a billing and shipping address when checking out. + Proszę wybrać pola dla adresu wysyłki i rozliczeniowego podczas robienia zakupów. + + + Address field + Pole adresu + + + For billing address + Dla adresu rozliczeniowego + + + For shipping address + Dla adresu wysyłki + + + Disabled + Wyłączony + + + Enabled (not mandatory) + Włączony (nieobowiązkowy) + + + Enabled (mandatory) + Włączony (obowiązkowy) + + + Default billing country + Domyślny kraj rozliczeniowy + + + Select a default country for new billing addresses. + Proszę wybrać domyślny kraj dla nowych adresów rozliczeniowych. + + + Default shipping country + Domyślny kraj wysyłki + + + Select a default country for new shipping addresses. + Proszę wybrać domyślny kraj dla nowych adresów wysyłki. + + + Available billing countries + Dostępne kraje rozliczeniowe + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + Proszę wybrać kraje, który mają być dostępne dla adresów rozliczeniowych. Nie wybranie żadnego udostępni wszystkie kraje. + + + Available shipping countries + Dostępne kraje wysyłki + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + Proszę wybrać kraje, który mają być dostępne dla adresów wysyłki. Nie wybranie żadnego udostępni wszystkie kraje. + + + Limit member countries + Ogranicz kraje użytkowników + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + Ogranicz kraje użytkowników (Rejestracja, Dane Osobiste) do połączonej listy krajów rozliczeniowych i krajów wysyłki. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + Proszę wybrać formatowanie dla cen. + + + Rounding precision + Precyzja zaokrąglenia + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + Wartość precyzji zaokrąglenia. Powinieneś ustawić ją pomiędzy 0 i 2, aby wszystkie metody płatności działały prawidłowo. Zobacz manual PHP dla funkcji round(). + + + Rounding increment + Przyrost zaokrąglenia + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + Niektóre waluty (np. franki szwajcarskie) nie posiadają precyzji 0.01. + + + Currency + Waluta + + + Please select a currency for this store. + Proszę wybrać walutę dla tego sklepu. + + + Position of currency code/symbol + Pozycja kodu/symbolu waluty + + + Select if you want to show currency on the left or right side of the price. + Wybierz czy chcesz pokazać walutę z lewej czy z prawej strony ceny. + + + Use currency symbol + Użyj symbolu waluty + + + Use a currency symbol ($, €) if available. + Użyj symbolu waluty ($, €), jeśli jest dostępny. + + + Include blank space + Zawrzyj odstęp + + + Add space between price and currency symbol. + Dodaj odstęp pomiędzy ceną i symbolem waluty. + + + Price factor + Współczynnik ceny + + + Defaults should be 1. You can use this to convert between multiple currencies. + Domyślny to 1. Możesz użyć tego do przeliczania pomiędzy różnymi walutami. + + + Calculation mode + Tryb obliczeń + + + Divide or multiply using this factor. + Dziel lub mnóż przez ten współczynnik. + + + Automatic currency conversion + Automatyczne przeliczanie waluty + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + Włącz automatyczną aktualizację współczynników ceny używając dostawcy przeliczeń online. + + + Currency origin + Waluta źródłowa + + + Please select the source currency for calculation. + Proszę wybrać źródłową walutę do obliczeń. + + + Currency Data Provider + Dostawca danych walutowych + + + Select an available online provider of currency calculation data. + Proszę wybrać dostępnego dostawcę danych walutowych używanych do przeliczania waluty. + + + Order number prefix + Prefiks numeru zamówienia + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + Tutaj możesz dodać prefiks (np. rok podatkowy) do automatycznego numeru zamówienia. + + + Order number length + Długość numeru zamówienia + + + Select the minimum length of the order number (not including order prefix). + Proszę wybrać minimalną długość dla numeru zamówienia (wyłączając prefiks). + + + Status for new orders + Status nowych zamówień + + + Choose a matching status for new orders. A payment module can override this. + Wybierz pasujący status dla nowych zamówień. Metoda płatności może to nadpisać. + + + Order status on error + Status zamówienia przy błędzie + + + Select an order status if something goes wrong (e.g. payment). + Proszę wybrać status zamówienia, jeśli zamówienie poszło źle (np. płatność). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + Logo faktury + + + Select a logo to show up on the invoices for this store. + Proszę wybrać logo, które pojawi się na fakturach tego sklepu. + + + Templates folder + Folder szablonów + + + Here you can select a templates folder to search before every other template folder. + Tutaj możesz wybrać folder szablonów, który będzie przeszukiwany w pierwszej kolejności. + + + Minimum subtotal + Minimalna suma częściowa + + + The minimum cart subtotal required to order. Enter 0 to disable. + Minimalna suma częściowa koszyku dla zamówienia. Wprowadź 0, aby wyłączyć. + + + Duration to mark a product as "new" + Czas trwania oznaczenia produktu jako "nowy" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + Jeśli chciałbyś wyróżnić nowe produkty, tutaj możesz wprowadzić czas trwania takiego oznaczenia. Automatycznie zostanie dodana klasa CSS "new" dla każdego produktu. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + Po lewej stronie ceny + + + To the right of price + Po prawej stronie ceny + + + Divide + Dzielenie + + + Multiply + Mnożenie + + + Name + Nazwa + + + Width + Szerokość + + + Height + Wysokość + + + Mode + Tryb + + + Watermark image + Znak wodny + + + Position + Pozycja + + + European Central Bank + Centralny Bank Europejski + + + Swiss Federal Department of Finance + Szwajcarski Federalny Departament Finansów + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + Nowa konfiguracja + + + Create a new store configuration. + Utwórz nową konfigurację sklepu. + + + Edit configuration + Edytuj konfigurację + + + Edit store configuration ID %s. + Edytuj konfigurację sklepu ID %s. + + + Copy configuration + Kopiuj konfigurację + + + Copy store configuration ID %s. + Kopiuj konfigurację sklepu ID %s. + + + Delete configuration + Usuń konfigurację + + + Delete store configuration ID %s. + Usuń konfigurację ID %s. + + + Show configuration details + Pokaż szczegóły konfiguracji + + + Show details for store configuration ID %s. + Pokaż szczegóły konfiguracji ID %s. + + + Name + Nazwa + + + Address configuration + Konfiguracja adresu + + + Configuration + Konfiguracja + + + Checkout + Kasa + + + Pricing + + + Currency formatting + Formatowanie waluty + + + Currency conversion + Przeliczanie waluty + + + Orders + Zamówienia + + + Images + Obrazki + + + URL settings + Ustawienia URL + + + Products + Produkty + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_document.php b/system/modules/isotope/languages/pl/tl_iso_document.php deleted file mode 100644 index 9b0057b7c1..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_document.php +++ /dev/null @@ -1,46 +0,0 @@ - + + + + Document name + Nazwa dokumenty + + + Enter a name for this document. This will only be used in the backend. + Proszę wprowadzić nazwę dla tego dokumentu. Będzie ona użyta tylko w panelu administratora. + + + Type of document + Typ dokumentu + + + Select a particular document rendering class. + Proszę wybrać klasę wyświetlania dokumentu. + + + Logo + Logo + + + Select a logo. + Proszę wybrać logo. + + + Document title + Tytuł dokumentu + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + Możesz używać prostych tokenów ("collection_*" gdzie * odpowiada kolumnie w bazie danych kolekcji), aby wyświetlić tytuł pliku (np. "Tytuł faktury ##collection_document_number##"). + + + File title + Tytuł pliku + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + Możesz używać prostych tokenów ("collection_*" gdzie * odpowiada kolumnie w bazie danych kolekcji), aby wyświetlić tytuł pliku (np. "faktura_##collection_document_number##"). + + + Document template + Szablon dokumentu + + + Choose a template you want to render this document with. + Proszę wybrać szablon, który ma zostać użyty do wyświetlenia dokumentu. + + + Gallery + Galeria + + + Select a gallery to render images. + Proszę wybrać galerię do wyświetlenia obrazków. + + + Collection template + Szablon kolekcji + + + Choose a collection template you want to render the products with. + Proszę wybrać szablon kolekcji, który ma zostać użyty do wyświetlenia produktów. + + + Sorting + Sortowanie + + + Define in what order the collection items should be listed. + Proszę określić w jakiej kolejności mają zostać wyświetlone elementy kolekcji. + + + New document + Nowy dokument + + + Create a new document + Utwórz nowy dokument + + + Edit document + Edytuj dokument + + + Edit document ID %s + Edytuj dokument ID %s + + + Copy document + Kopiuj dokument + + + Copy document ID %s + Kopiuj dokument ID %s + + + Delete document + + + Delete document ID %s + Usuń dokument ID %s + + + Document details + Szczegóły dokumentu + + + Show details of document ID %s + Pokaż szczegóły dokumentu ID %s + + + Name & type + Nazwa i typ + + + General configuration + Ogólna konfiguracja + + + Template + Szablon + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_download.php b/system/modules/isotope/languages/pl/tl_iso_download.php deleted file mode 100644 index cb29e61ad4..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_download.php +++ /dev/null @@ -1,47 +0,0 @@ - + + + + Attachement + Załącznik + + + Select the file or folder content you want to sell. + Wybierz plik, który chcesz sprzedać. + + + Downloads allowed + Dozwolona liczba pobrań + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + Maksymalna liczba pobrań pliku dla jednego zamówienia (mnożona przez ilość sprzedanego produktu). Wprowadź 0 by wyłączyć limit. + + + Expiration + Wygasa + + + Define if the download(s) expires after a certain time period. + Określ jeśli pobieranie wygasa po określonym czasie. + + + Download available + Pobieranie dozwolone + + + Click here to include this download in new orders. + Zaznacz, aby załączyć ten plik w nowych zamówieniach. + + + Add download + Dodaj plik + + + Add a new download to this product + Dodaj nowy plik dla tego produktu + + + Edit download + Edytuj plik + + + Edit download ID %s + Edytuj plik ID %s + + + Duplicate download + Duplikuj plik + + + Duplicate download ID %s + Duplikuj plik ID %s + + + Move download + Przenieś plik + + + Move download ID %s + Przenieś plik ID %s + + + Delete download + Usuń plik + + + Delete download ID %s + Usuń plik ID %s + + + Publish/unpublish download + Publikuj/ukryj plik + + + Publish/unpublish download ID %s + Publikuj/ukryj plik ID %s + + + Download details + Szczegóły pliku + + + Show details of download ID %s + Pokaż szczegóły pliku ID %s + + + Edit product + Edytuj produkt + + + Edit this product + Edytuj ten produkt + + + Paste at the top + Wklej na początku + + + Paste after download ID %s + Wklej po pliku ID %s + + + Add new at the top + Dodaj na początku + + + Add new after download ID %s + Dodaj nowy po pliku ID %s + + + Attachement + Załącznik + + + Limits + Limity + + + Publishing + Publikacja + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_gallery.php b/system/modules/isotope/languages/pl/tl_iso_gallery.php deleted file mode 100644 index 4963334ad2..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_gallery.php +++ /dev/null @@ -1,60 +0,0 @@ - + + + + Name + Nazwa + + + Enter a name for this gallery. + Proszę wprowadzić nazwę dla tej galerii. + + + Type + Typ + + + Please select a gallery type. + Proszę wybrać typ galerii. + + + Image anchor + Kotwica obrazka + + + Select what anchor type should be generated on the image. + Proszę wybrać typ kotwicy, która będzie wygenerowana na obrazku. + + + Placeholder image + Obrazek zastępczy + + + This image will be used if an image file cannot be found or none are associated with a product. + Ten obrazek będzie użyty, jeśli produkt nie ma przypisanego żadnego obrazka. + + + Main image size + Rozmiar głównego obrazka + + + Please enter a width and height for the main product image. + Proszę wprowadzić szerokość i wysokość głównego obrazka produktu. + + + Gallery image size + Rozmiar galerii + + + Please enter a width and height for the additional images. + Proszę wprowadzić szerokość i wysokość dodatkowych obrazków. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + Rozmiar lightbox + + + Please enter a width and height for lightbox images. + Proszę wprowadzić szerokość i wysokość lightbox. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + Znak wodny głównego obrazka + + + Select an image if you want to add a watermark to the main product image. + Proszę wybrać obrazek, jeśli chcesz dodać znak wodny do głównego obrazka produktu. + + + Main watermark position + Pozycja znaku wodnego głównego obrazka + + + Select the position where to apply the watermark to. + Proszę wybrać pozycję znaku wodnego. + + + Gallery watermark image + Znak wodny galerii + + + Select an image if you want to add a watermark to the gallery images. + Proszę wybrać obrazek, jeśli chcesz dodać znak wodny do galerii produktu. + + + Gallery watermark position + Pozycja znaku wodnego galerii + + + Select the position where to apply the watermark to. + Proszę wybrać pozycję znaku wodnego. + + + Lightbox watermark image + Znak wodny lightbox + + + Select an image if you want to add a watermark to the lightbox images. + Proszę wybrać obrazek, jeśli chcesz dodać znak wodny do lightbox. + + + Lightbox watermark position + Pozycja znaku wodnego lightbox + + + Select the position where to apply the watermark to. + Proszę wybrać pozycję znaku wodnego. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + Proszę wybrać pozycję znaku wodnego. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + Nowa galeria + + + Create a new gallery + Utwórz nową galerię + + + Edit gallery + Edytuj galerię + + + Edit gallery ID %s + Edytuj galerię ID %s + + + Duplicate gallery + Duplikuj galerię + + + Duplicate gallery ID %s + Duplikuj galerię ID %s + + + Delete gallery + Usuń galerię + + + Delete gallery ID %s + Usuń galerię ID %s + + + Gallery details + Szczegóły galerii + + + Show details of gallery ID %s + Pokaż szczegóły galerii ID %s + + + Name &amp; Type + Nazwa i typ + + + Image sizes + Rozmiary obrazków + + + Configuration + Konfiguracja + + + Watermark + Znak wodny + + + Lightbox/Mediabox + + + Template settings + + + No link action + Brak linku + + + Link to the product reader + Link do czytnika produktów + + + Open lightbox/mediabox + Otwórz lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_group.php b/system/modules/isotope/languages/pl/tl_iso_group.php deleted file mode 100644 index 7eb822438b..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_group.php +++ /dev/null @@ -1,41 +0,0 @@ - + + + + Group name + Nazwa grupy + + + Please enter a name for this group. + Proszę wprowadzić nazwę grupy. + + + Default product type + Domyślny typ produktu + + + Here you can specify a default product type for this product group. + Tutaj możesz określić domyślny typ produktu dla tej grupy. + + + New group + Nowa grupa + + + Create a new group + Dodaj nową grupę + + + Edit group + Edytuj grupę + + + Edit group ID %s + Edytuj grupę ID %s + + + Duplicate group + Duplikuj grupę + + + Duplicate group ID %s + Duplikuj grupę ID %s + + + Duplicate with subgroups + Duplikuj z podgrupami + + + Duplicate group ID %s with subgroups + Duplikuj grupę ID %s z podgrupami + + + Move group + Przenieś grupę + + + Move group ID %s + Przenieś grupę ID %s + + + Delete group + Usuń grupę + + + Delete group ID %s + Usuń grupę ID %s + + + Group details + Szczegóły gurpy + + + Show details of group ID %s + Pokaż szczegóły grupy ID %s + + + Paste after + Wklej po + + + Paste after group ID %s + Wklej po grupie ID %s + + + Paste into + Wklej w + + + Paste into group ID %s + Wklej w grupę ID %s + + + Product group settings + Ustawienia grupy produktów + + + Product Groups + Grupy produktów + + + Manage product groups + Zarządzaj grupami produktów + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_integrity.php b/system/modules/isotope/languages/pl/tl_iso_integrity.php deleted file mode 100644 index db77b9c431..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_label.php b/system/modules/isotope/languages/pl/tl_iso_label.php deleted file mode 100644 index 96e8d52591..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_label.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Language + Język + + + Please select a language. + Proszę wybrać język. + + + Label + Etykieta + + + Enter the source label. + Proszę wybrać etykietę źródła. + + + Replacement + Zastępstwo + + + Enter the replacement in the specified language. + Proszę wprowadzić zastępstwo w podanym języku. + + + New label + Nowa etykieta + + + Create a new label + Utwórz nową etykietę + + + Edit label + Edytuj etykietę + + + Edit label ID %s + Edytuj etykietę ID %s + + + Duplicate label + Duplikuj etykietę + + + Duplicate label ID %s + Duplikuj etykietę ID %s + + + Delete label + Usuń etykietę + + + Delete label ID %s + Usuń etykietę ID %s + + + Label details + Szczegóły etykiety + + + Show details of label ID %s + Pokaż szczegóły etykiety ID %s + + + Label translation + Tłumaczenie etykiety + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_orderstatus.php b/system/modules/isotope/languages/pl/tl_iso_orderstatus.php deleted file mode 100644 index e383d9127e..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_orderstatus.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Nazwa + + + Please enter a name for this status. + Wprowadź nazwę tego statusu. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + Zamówienie jest zapłacone + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + Zamówienie jest opłacone jeśli ma ten status. Pozwoli to na przykład na ściągnięcie plików. + + + Show on welcome screen + Pokaż na ekranie powitania + + + Show number of orders with this status on the backend welcome screen. + Pokaż liczbę zamówień z tym statusem na stronie powitalnej panelu administratora. + + + Notification + Powiadomienie + + + Please select a notification. + Proszę wybrać powiadomienie. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + Status nowego zamówienia + + + Create a new order status + Stwórz status nowego zamówienia + + + Edit order status + Edytuj status zamówienia + + + Edit order status ID %s + Edytuj status zamówienia ID %s + + + Duplicate order status + Duplikuj status zamówienia + + + Duplicate order status ID %s + Duplikuj status zamówienia ID %s + + + Move order status + Przenieś status zamówienia + + + Move order status ID %s + Przenieś status zamówienia ID %s + + + Delete order status + Usuń status zamówienia + + + Delete order status ID %s + Usuń status zamówienia ID %s + + + Order status details + Szczegóły statusu zamówienia + + + Show details of order status ID %s + Pokaż szczegóły statusu zamówienia ID %s + + + Paste after + Wklej po + + + Paste after order status ID %s + Wklej po statusie zamówienia ID %s + + + Paste into + Wklej w + + + Paste into order status ID %s + Wklej w status zamówienia ID %s + + + Name + Nazwa + + + E-Mail Notification + Powiadomienie e-mail + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_payment.php b/system/modules/isotope/languages/pl/tl_iso_payment.php deleted file mode 100644 index d1173cf112..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_payment.php +++ /dev/null @@ -1,180 +0,0 @@ -absolutny URL do dynamicznego szablonu.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['psp_payment_method'][0] = 'Metoda płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'][0] = 'Require Card Code Verification (CCV) Number'; -$GLOBALS['TL_LANG']['tl_iso_payment']['requireCCV'][1] = 'Choose this option if you would like to increase transaction security by requiring the card code verification number.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allowed_cc_types'][0] = 'Allowed Credit Card Types'; -$GLOBALS['TL_LANG']['tl_iso_payment']['allowed_cc_types'][1] = 'Select which credit cards the payment module accepts.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_id'][0] = 'ID kupca'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_id'][1] = 'Proszę wprowadzić ID kupca.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_sign'][0] = 'Klucz HMAC'; -$GLOBALS['TL_LANG']['tl_iso_payment']['datatrans_sign'][1] = 'Proszę wprowadzić klucz HMAC z panelu Datatrans.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod'][0] = 'Metoda płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod'][1] = 'Proszę wybrać metodę płatności dla tej metody.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['creditcard'] = 'Karta kredytowa'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['maestro'] = 'Karta debig'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_paymentmethod']['directdebit'] = 'Polecenie zapłaty'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslmerchant'][0] = 'ID sprzedawcy'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslmerchant'][1] = 'Proszę wprowadzić ID sprzedawcy (Händlerkennung).'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslpassword'][0] = 'Hasło'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_sslpassword'][1] = 'Proszę wprowadzić hasło SSL.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_merchantref'][0] = 'Odniesienie'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sparkasse_merchantref'][1] = 'Odniesienie, które będzie pokazane zamiast ID koszyka na stronie sprzedającego.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_user_id'][0] = 'ID klienta'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_user_id'][1] = 'Twoje ID klienta dla sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_id'][0] = 'ID projektu'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_id'][1] = 'Twoje ID projektu dla sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_password'][0] = 'Hasło projektu'; -$GLOBALS['TL_LANG']['tl_iso_payment']['sofortueberweisung_project_password'][1] = 'Twoje hasło projektu dla sofortüberweisung.de'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_accountid'][0] = 'ID konta Saferpay'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_accountid'][1] = 'Proszę wprowadzić unikalne ID konta Saferpay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_description'][0] = 'Opis zamówienia'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_description'][1] = 'Klient zobaczy ten opis na stronie zamówienia Saferpay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_vtconfig'][0] = 'Konfiguracja strony płatności (VTCONFIG)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_vtconfig'][1] = 'Możesz utworzyć różne konfiguracje strony płatności. Jeśli chcesz użyć konkretnej z nich, wprowadź jej "Parametr dla zapytania" tutaj.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['saferpay_paymentmethods'][0] = 'Metody płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupId'][0] = 'ExperCash Popup-ID'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupId'][1] = 'Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_profile'][0] = 'ExperCash Profile'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_profile'][1] = 'Geben Sie die dreistellige Profilnummer ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupKey'][0] = 'ExperCash Popup-Key'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_popupKey'][1] = 'Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod'][0] = 'Transaktionsart'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod'][1] = 'Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['automatic_payment_method'] = 'Auswahl der Zahlart durch den Endkunden'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['elv_buy'] = 'Zahlung per Lastschrift (ELV)'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['elv_authorize'] = 'Prüfung und Speicherung von Kontodaten zum späteren Einzug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['cc_buy'] = 'Kreditkartenzahlung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['cc_authorize'] = 'verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['giropay'] = 'Transaktion über giropay'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_paymentMethod']['sofortueberweisung'] = 'Transaktion über Sofortüberweisung'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_css'][0] = 'CSS-Vorlage'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expercash_css'][1] = 'Wählen Sie eine CSS-Datei für die Übergabe an ExperCash.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['epay_secretkey'][0] = 'Sekretny klucz'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_clearingtype'][0] = 'Typ czyszczenia'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_clearingtype'][1] = 'Proszę wybrać typ czyszczenia.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_portalid'][1] = 'Proszę wprowadzić ID portalu PAYONE.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_key'][0] = 'Sekretny klucz'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone_key'][1] = 'Proszę wprowadzić sekretny klucz, który określiłeś dla tego portalu.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_instId'][0] = 'ID instalacji'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_instId'][1] = 'Proszę wprowadzić ID instalacji WorldPay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_callbackPW'][0] = 'Hasło transakcji'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_callbackPW'][1] = 'Proszę wprowadzić takie same hasło transakcji jak w konfiguracji WorldPay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_signatureFields'][0] = 'SignatureFields'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_signatureFields'][1] = 'Proszę wprowadzić taką samą wartość SignatureFields jak w konfiguracji Worldpay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_md5secret'][0] = 'Sekretny MD5'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_md5secret'][1] = 'Proszę wprowadzić taką samą wartość sekretnego MD5 jak w konfiguracji WorldPay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_description'][0] = 'Opis'; -$GLOBALS['TL_LANG']['tl_iso_payment']['worldpay_description'][1] = 'Proszę wprowadzić opis dla sklepu. Zostanie on pokazany klientowi podczas procesu zamówienia WorldPay.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_merchantId'][1] = 'Proszę wprowadzić ID kupca.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['quickpay_paymentMethods'][0] = 'Metody płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['groups'][0] = 'Grupy użytkowników'; -$GLOBALS['TL_LANG']['tl_iso_payment']['groups'][1] = 'Zastrzeż tę metodę płatności do konkretnych grup użytkowników.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['protected'][0] = 'Chroń moduł'; -$GLOBALS['TL_LANG']['tl_iso_payment']['protected'][1] = 'Pokaż metodę płatności tylko konkretnym grupom użytkowników.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['guests'][0] = 'Pokaż tylko dla gości'; -$GLOBALS['TL_LANG']['tl_iso_payment']['guests'][1] = 'Ukryj metodę płatności, jeśli użytkownik jest zalogowany.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['debug'][0] = 'Tryb debugowania'; -$GLOBALS['TL_LANG']['tl_iso_payment']['debug'][1] = 'Włącz tryb testowy, bez rzeczywistego przyjmowania płatności.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled'][0] = 'Aktywna'; -$GLOBALS['TL_LANG']['tl_iso_payment']['enabled'][1] = 'Zaznacz tutaj jeśli moduł płatności ma być aktywny.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['new'][0] = 'Nowa metoda płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['new'][1] = 'Dodaj nową metodę płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['edit'][0] = 'Edytuj metodę płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['edit'][1] = 'Edytuj metodę płatności ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['copy'][0] = 'Kopiuj metodę płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['copy'][1] = 'Kopiuj metodę płatności ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['delete'][0] = 'Usuń metodę płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['delete'][1] = 'Usuń metodę płatności ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['toggle'][0] = 'Włącz/wyłącz metodę płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['toggle'][1] = 'Włącz/wyłącz metodę płatności ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['show'][0] = 'Szczegóły metody płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['show'][1] = 'Pokaż szczegóły metody płatności ID %s'; -$GLOBALS['TL_LANG']['tl_iso_payment']['capture'][0] = 'Autoryzacja i potwierdzenie'; -$GLOBALS['TL_LANG']['tl_iso_payment']['capture'][1] = 'Transakcje tego typu będą wysłane do autoryzacji. Transakcja będzie automatycznie poddana rozliczeniu, jeśli zostanie zatwierdzona.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['auth'][0] = 'Tylko autoryzacja'; -$GLOBALS['TL_LANG']['tl_iso_payment']['auth'][1] = 'Transakcje tego typu są wysyłane, jeśli kupiec chce zweryfikować kartę kredytową dla ilości sprzedanych dóbr. Jeśli kupiec nie posiada dóbr w magazynie lub chce sprawdzić zamówienia przed wysłaniem dóbr, ten typ transakcji powinien zostać wysłany.'; -$GLOBALS['TL_LANG']['tl_iso_payment']['no_shipping'] = 'Orders without shipping'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['elv'] = 'Wycofanie debetu'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['cc'] = 'Karta kredytowa'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['dc'] = 'Karta debetowa'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['vor'] = 'Przedpłata'; -$GLOBALS['TL_LANG']['tl_iso_payment']['payone']['rec'] = 'Faktura'; -$GLOBALS['TL_LANG']['tl_iso_payment']['type_legend'] = 'Nazwa i typ'; -$GLOBALS['TL_LANG']['tl_iso_payment']['note_legend'] = 'Dodatkowe notatki'; -$GLOBALS['TL_LANG']['tl_iso_payment']['config_legend'] = 'Ogólna konfiguracja'; -$GLOBALS['TL_LANG']['tl_iso_payment']['gateway_legend'] = 'Konfiguracja metody płatności'; -$GLOBALS['TL_LANG']['tl_iso_payment']['price_legend'] = 'Cena'; -$GLOBALS['TL_LANG']['tl_iso_payment']['template_legend'] = 'Szablon'; -$GLOBALS['TL_LANG']['tl_iso_payment']['expert_legend'] = 'Zaawansowane ustawienia'; diff --git a/system/modules/isotope/languages/pl/tl_iso_payment.xlf b/system/modules/isotope/languages/pl/tl_iso_payment.xlf new file mode 100644 index 0000000000..5f1e12fcf9 --- /dev/null +++ b/system/modules/isotope/languages/pl/tl_iso_payment.xlf @@ -0,0 +1,830 @@ + + + + + Payment Method Name + Nazwa metody płatności + + + Enter a name for this payment method. This will only be used in the backend. + Wprowadź nazwę dla tej metody płatności. Zostanie ona użyta tylko w backendzie. + + + Payment Method Label + Etykieta metody płatności + + + The label will be shown to customers on checkout. + Etykieta będzie wyświetlona dla klientów przy składaniu zamówienia. + + + Type of Payment Gateway + Typ płatności + + + Select a particular payment gateway + Wybierz typ płatności (np. Authorize.net) + + + Payment Note + Notatka + + + This note can be sent in confirmation mails (##payment_note##). + Ta notatka może zostać wysłana w potwierdzeniu (##payment_note##). + + + Status for new orders + Status nowych zamówień + + + Choose a matching status for new orders. + Wybierz pasujący status dla nowych zamówień. + + + Minimum total + Minimalna wartość + + + Enter a number greater zero to exclude this payment method for lower priced orders. + Wprowadź liczbę większą niż zero by nie obsługiwać zamówień o mniejszej wartości. + + + Maximum total + Maksymalna wartość + + + Enter a number greater zero to exclude this payment method for higher priced orders. + Wprowadź liczbę większą niż zero by nie obsługiwać zamówień o większej wartości. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + Tryb obliczeń ilościowych + + + Select a calculation mode for min/max quantity. + Proszę wybrać tryb obliczeń dla minimalnej/maksymalnej ilości. + + + Total quantity in cart + Całkowita ilość w koszyku + + + Total products in cart + Wszystkie produkty w koszyku + + + Available countries + Dostępne kraje + + + Select the countries where this payment method may be used (customer's billing address). + Wybierz kraje, w których ta metoda płatności może być użyta. + + + Shipping methods + Metody dostawy + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + Możesz zastrzec tę metodę płatności do konkretnych metod dostawy. + + + Product types + Typy produktów + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + Możesz zastrzeć tę metodę płatności do konkretnych typów produktów. Jeśli koszyk zawiera pordukt, który nie jest tu wybrany, ta metoda płatności nie będzie dostępna. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Konfiguracje sklepu + + + You can restrict this payment method to certain shop configurations. + + + Price + Cena + + + Enter a price or percent value (e.g. "10" or "10%"). + Proszę wprowadzić cenę lub wartość procentową (np. "10" lub "10%"). + + + Tax Class + Klasa podatku + + + Please select a tax class for the price. + Proszę wybrać klasę podatku dla tej ceny. + + + Transaction type + Typ transakcji + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + Wybeirz czy chcesz od razu otrzymać pieniądze czy zatrzymać płatność na później (np. przy wysyłce). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + Enter your paypal account (email address). + + + Paypal Payflow Pro username + Użytkownika Paypal Payflow Pro + + + + + + Paypal Payflow Pro vendor + Sprzedawca Paypal Payflow Pro + + + An alphanumeric string of about 10 characters. + Alfanumeryczny ciąg znaków długości około 10 znaków. + + + Paypal Payflow Pro partner + Partner Paypal Payflow Pro + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + Zwróć uwagę na wielkość liter! Zwykle ID partnera to "PayPal" lub "PayPalUK". + + + Paypal Payflow Pro api password + Hasło API Paypal Payflow Pro + + + An alphanumeric string of about 11 characters + Alfanumeryczny ciąg znaków długości około 11 znaków. + + + Paypal Payflow Pro transaction type + Typ transakcji Paypal Payflow Pro + + + Please select a transaction type. + Proszę wybrać typ transakcji. + + + PSPID + PSPiD + + + The PSPID is your unique identification for the payment method. + PSPiD jest twoim unikalnym identyfikatorem dla metody płatności. + + + HTTP method + Metoda HTTP + + + Type of HTTP data transfer from and to the servers. + Typ transferu danych HTTP z i do innych serwerów. + + + Hash method + Metoda hash + + + Hashing algorithm for data transfer from and to the servers. + Algorytm hashujący dla transferu danych z i do serwerów. + + + SHA-1 + SHA-1 + + + SHA-256 + SHA-256 + + + SHA-512 + SHA-512 + + + SHA-IN signature + Sygnatura SHA-IN + + + This will be used to validate the server to server communication. + To zostanie użyte do walidacji komunikacji serwera z serwerem. + + + SHA-OUT signature + Sygnature SHA-OUT + + + This will be used to validate the server to server communication. + To zostanie użyte do walidacji komunikacji serwera z serwerem. + + + Dynamic template URL + Dynamiczny szablon URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + Proszę wprowadzić prawidłowy <strong>absolutny</strong> URL do dynamicznego szablonu. + + + Payment method + Metoda płatności + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + Select which credit cards the payment module accepts. + + + Merchant-ID + ID kupca + + + Please enter your merchant ID. + Proszę wprowadzić ID kupca. + + + HMAC Key + Klucz HMAC + + + Please enter your HMAC key from the Datatrans control panel. + Proszę wprowadzić klucz HMAC z panelu Datatrans. + + + Hash method + Metoda hash + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + Metoda płatności + + + Please select a payment method for this method. + Proszę wybrać metodę płatności dla tej metody. + + + Credit card + Karta kredytowa + + + Debig card + Karta debig + + + Direct debit + Polecenie zapłaty + + + Seller ID + ID sprzedawcy + + + Please enter your seller ID (Händlerkennung). + Proszę wprowadzić ID sprzedawcy (Händlerkennung). + + + Password + Hasło + + + Please enter your SSL-Password. + Proszę wprowadzić hasło SSL. + + + Reference + Odniesienie + + + A reference that will be shown on the seller details page instead of the cart ID. + Odniesienie, które będzie pokazane zamiast ID koszyka na stronie sprzedającego. + + + Customer ID + ID klienta + + + Your customer ID for sofortüberweisung.de + Twoje ID klienta dla sofortüberweisung.de + + + Project ID + ID projektu + + + Your project ID for sofortüberweisung.de + Twoje ID projektu dla sofortüberweisung.de + + + Projekt password + Hasło projektu + + + Your project password for sofortüberweisung.de + Twoje hasło projektu dla sofortüberweisung.de + + + Saferpay Account-ID + ID konta Saferpay + + + Please enter your unique Saferpay account id. + Proszę wprowadzić unikalne ID konta Saferpay. + + + Checkout description + Opis zamówienia + + + The customer will see this description on the Saferpay checkout page. + Klient zobaczy ten opis na stronie zamówienia Saferpay. + + + Payment page configuration (VTCONFIG) + Konfiguracja strony płatności (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + Możesz utworzyć różne konfiguracje strony płatności. Jeśli chcesz użyć konkretnej z nich, wprowadź jej "Parametr dla zapytania" tutaj. + + + Payment methods + Metody płatności + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + Transaktion über giropay + + + Transaktion über Sofortüberweisung + Transaktion über Sofortüberweisung + + + CSS-Vorlage + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + Sekretny klucz + + + The secret key set up in your ePay configuration. + + + Clearing type + Typ czyszczenia + + + Please choose a clearing type. + Proszę wybrać typ czyszczenia. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + Proszę wprowadzić ID portalu PAYONE. + + + Secret key + Sekretny klucz + + + Enter the secret key you specified for this portal. + Proszę wprowadzić sekretny klucz, który określiłeś dla tego portalu. + + + Installation ID + ID instalacji + + + Please enter your WorldPay Installation ID + Proszę wprowadzić ID instalacji WorldPay. + + + Transaction Password + Hasło transakcji + + + Enter the same transaction password as in your WorldPay configuration. + Proszę wprowadzić takie same hasło transakcji jak w konfiguracji WorldPay. + + + SignatureFields + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + Proszę wprowadzić taką samą wartość SignatureFields jak w konfiguracji Worldpay. + + + MD5 Secret + Sekretny MD5 + + + Enter the same MD5 secret value as in your WorldPay configuration. + Proszę wprowadzić taką samą wartość sekretnego MD5 jak w konfiguracji WorldPay. + + + Description + Opis + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + Proszę wprowadzić opis dla sklepu. Zostanie on pokazany klientowi podczas procesu zamówienia WorldPay. + + + Merchant ID + + + Please enter your merchant ID. + Proszę wprowadzić ID kupca. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Metody płatności + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + Hasło + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + Grupy użytkowników + + + Restrict this payment method to certain member groups. + Zastrzeż tę metodę płatności do konkretnych grup użytkowników. + + + Protect payment method + Chroń moduł + + + Show the payment method to certain member groups only. + Pokaż metodę płatności tylko konkretnym grupom użytkowników. + + + Show to guests only + Pokaż tylko dla gości + + + Hide the payment method if a member is logged in. + Ukryj metodę płatności, jeśli użytkownik jest zalogowany. + + + Debug mode + Tryb debugowania + + + For testing without actually capturing for payment. + Włącz tryb testowy, bez rzeczywistego przyjmowania płatności. + + + Enabled + Aktywna + + + Check here if the payment method should be enabled in the store. + Zaznacz tutaj jeśli moduł płatności ma być aktywny. + + + New payment method + Nowa metoda płatności + + + Create a new payment method + Dodaj nową metodę płatności + + + Edit payment method + Edytuj metodę płatności + + + Edit payment method ID %s + Edytuj metodę płatności ID %s + + + Copy payment method + Kopiuj metodę płatności + + + Copy payment method ID %s + Kopiuj metodę płatności ID %s + + + Delete payment method + Usuń metodę płatności + + + Delete payment method ID %s + Usuń metodę płatności ID %s + + + Enable/disable payment method + Włącz/wyłącz metodę płatności + + + Enable/disable payment method ID %s + Włącz/wyłącz metodę płatności ID %s + + + Payment method details + Szczegóły metody płatności + + + Show details of payment method ID %s + Pokaż szczegóły metody płatności ID %s + + + Authorize and Capture + Autoryzacja i potwierdzenie + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + Transakcje tego typu będą wysłane do autoryzacji. Transakcja będzie automatycznie poddana rozliczeniu, jeśli zostanie zatwierdzona. + + + Authorize Only + Tylko autoryzacja + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + Transakcje tego typu są wysyłane, jeśli kupiec chce zweryfikować kartę kredytową dla ilości sprzedanych dóbr. Jeśli kupiec nie posiada dóbr w magazynie lub chce sprawdzić zamówienia przed wysłaniem dóbr, ten typ transakcji powinien zostać wysłany. + + + Orders without shipping + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + Wycofanie debetu + + + Credit card + Karta kredytowa + + + Debit card + Karta debetowa + + + Prepayment + Przedpłata + + + Invoice + Faktura + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + Nazwa i typ + + + Additional notes + Dodatkowe notatki + + + General configuration + Ogólna konfiguracja + + + Payment gateway configuration + Konfiguracja metody płatności + + + Price + Cena + + + Template + Szablon + + + Expert settings + Zaawansowane ustawienia + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_product.php b/system/modules/isotope/languages/pl/tl_iso_product.php deleted file mode 100644 index 6bf7458ccb..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_product.php +++ /dev/null @@ -1,133 +0,0 @@ -Ta funkcjonalność może zostać użyta na dwa sposoby:

\n
    \n
  1. Wybrany katalog źródłowy zawiera pliki, które pasują do nazwy lub jednostki magazynowej produktu. Isotope eCommerce dopasuje wszystkie pliki do produktów i zaimportuje je do odpowiedniego katalogu.
  2. \n
  3. Wybrany katalog źródłowy zawiera podkatalogi, który pasują do nazwy lub jednostki magazynowej produktu. Isotope eCommerce dopasuje wszystkie pliki do produktów i zaimportuje je do odpowiedniego katalogu.
  4. \n
\n

Podpowiedź: Każdy developer może rozszerzyć reguły pasowania plików do produktów.

\n"; diff --git a/system/modules/isotope/languages/pl/tl_iso_product.xlf b/system/modules/isotope/languages/pl/tl_iso_product.xlf new file mode 100644 index 0000000000..2baf967821 --- /dev/null +++ b/system/modules/isotope/languages/pl/tl_iso_product.xlf @@ -0,0 +1,495 @@ + + + + + Product ID + ID produktu + + + Categories + Kategorie + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + Proszę wybrać kategorie produktu. + + + Product type + Typ produktu + + + Select your product type. Product types are defined in the store configuration. + Typy produktów są zdeifniowane w menedżerze typów produktu. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + Możesz wprowadzić unikalny alias dla tego produktu. Zostaw to pole puste, jeśli ma on zostać wygenerowany automatycznie. + + + Name + Nazwa + + + Please enter the name of this product. + Proszę wprowadzić nazwę tego produktu. + + + SKU + SKU + + + Please enter a unique stock keeping unit for this product. + Proszę wprowadzić unikalną jednostkę magazynową tego produktu. + + + Shipping weight + Waga przy wysyłce + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Proszę wprowadzić wagę produktu przy wysyłce. Może być to użyte przy kalkulowaniu kosztów wysyłki. + + + Teaser + Zajawka + + + Please enter the teaser. + Proszę wprowadzić krótki opis produktu. + + + Description + Opis + + + Please enter the product description. + Proszę wprowadzić opis produktu. + + + Meta title + Tytuł meta + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + Tytuł meta zostanie użyty jako tytuł strony w widoku szczegółów produktu. Jeśli zostawisz to pole puste, zostanie użyta nazwa produktu. + + + Meta description + Opis meta + + + Meta description will be placed in the header on product detail page, for search engine optimization. + Opis meta zostanie umieszczony w nagłówku na stronie szczegółów produktu dla optymalizacji wyników wyszukiwania. + + + Meta keywords + Słowa kluczowe meta + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + Słowa kluczowe meta zostaną umieszczone w nagłówku na stronie szczegółów produktu dla optymalizacji wyników wyszukiwania. + + + Price &amp; tax class + Cena + + + Please enter the price(s) for this product and select the tax class. + Proszę wprowadzić ceny tego produktu i wybrać klasę podatku. + + + Exempt from shipping + Niedostępny do wysyłki + + + Check if item is not a shipped item (such as downloadable products). + Zaznacz jeśli produkt nie jest dostępny do wysyłki (np. w przypadku plików do pobrania). + + + Base price amount + Ilość bazowej ceny + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + Proszę wprowadzić ilość do obliczenia bazowej ceny (np. "1500" jeśli twój produkt ma 1500 gram). + + + Images + Obrazki + + + Upload images to this product. Please save the product after selecting a file. + Wgraj obrazki dla tego produktu. Zapisz produkt po wybraniu pliku. + + + Protect product + Chroń produkt + + + Restrict product access to certain member groups. + Zastrzeż dostęp do produktu do konkretnych grup użytkowników. + + + Allowed member groups + Grupy produktów + + + These groups will be able to access the product. + Zarządzaj grupami produktów + + + Show to guests only + Pokaż tylko dla gości + + + Hide the product if there is an authenticated user. + Ukryj produkt jeśli użytkownik jest zalogowany. + + + CSS ID/class + ID/Klasa CSS + + + Here you can set an ID and one or more classes. + Tutaj możesz ustawić ID dla jednej lub więcej klas. + + + Publish product + Publikuj produkt + + + Click here to show this product on your website. + Zanzacz by pokazać produkt na stronie. + + + Start date + Data początkowa + + + Do not show this product before the date specified. + Nie pokazuj produktu przed tą datą. + + + Stop date + Pokazuj do + + + Do not show this product after the date specified. + Nie pokazuj produktu po tej dacie. + + + Inherited attributes + Odziedziczone atrybuty + + + Check the fields you want to inherit from base product. + Zaznacz pola, które chcesz odziedziczyć po produkcie bazowym. + + + Source folder + Źródłowy folder + + + Please choose the folder where product assets are located. + Proszę wybrać folder, w którym zlokalizowane są pliki produktu. + + + Preview + Podgląd + + + Alternate text + Tekst zastępczy + + + Link target + Cel odnośnika + + + Description + Opis + + + Translate + Tłumaczenie + + + None + Brak + + + Do not translate this image. + Nie tłumacz tego obrazka. + + + Text + Tekst + + + Translate alt text and description for this image. + Tłumacz tekst zastępczy i opis tego obrazka. + + + All + Wszystko + + + Do not include this image in translated version. + Nie załączaj tego obrazka w przetłumaczonej wersji. + + + Variant + Wariant + + + Show product variants + Pokaż warianty produktu + + + New product + Nowy produkt + + + Create new product + Dodaj nowy produkt + + + Add variant + Dodaj wariant + + + Add new variant to a given product + Dodaj nowy wariant do wybranego produktu + + + Edit product + Edytuj produkt + + + Edit product ID %s + Edytuj produkt ID %s + + + Copy product + Kopiuj produkt + + + Copy product ID %s + Kopiuj produkt ID %s + + + Move product + Przenieś produkt + + + Move product ID %s + Przenieś produkt ID %s + + + Delete product + Usuń produkt + + + Delete product ID %s + Usuń produkt ID %s + + + Publish/unpublish product + Publikuj/ukryj produkt + + + Publish/unpublish product ID %s + Publikuj/ukryj produkt ID %s + + + Product details + Szczegóły produktu + + + Show details of product ID %s + Pokaż szczegóły produktu ID %s + + + Advanced filter: + Zaawansowany filtr: + + + Without images + Bez obrazków + + + Unassigned products + Nieprzypisane produkty + + + New products + Nowe produkty + + + Added today + Dodane dzisiaj + + + Added this week + Dodane w tym tygodniu + + + Added this month + Dodane w tym miesiącu + + + Manually sort products in a page + Ręczne sortowanie produktów na stronie + + + Product groups + Grupy produktów + + + Manage product groups + Zarządzaj grupami produktów + + + Import assets + Importuj pliki + + + Import images and other media from a folder + Importuj obrazki i inne pliki z folderu + + + Manage prices + Zarządzaj cenami + + + Click the button to manage advanced prices for this product. + Zarządzaj cenami produktu ID %s + + + Apply and close + Zastosuj i zamknij + + + Product variants + Warianty produktu + + + Show variants for product ID %s + Pokaż warianty produktu ID %s + + + Generate variants + Generuj warianty + + + Generate variants for product ID %s + Generuj warianty dla produktu ID %s + + + Related products + Powiązane produkty + + + Manage related products for product ID %s + Zarządzaj powiązanymi produktami dla tego produktu ID %s + + + Downloads + Pliki do pobrania + + + Edit downloads for product ID %s + Edytuj pliki do pobrania dla produktu ID %s + + + Currently: %s downloads. + + + Move to group + Przenieś do grupy + + + Move product ID %s to a group + Przenieś produkt ID %s do grupy + + + Group + Grupa + + + General Settings + Ogólne ustawienia + + + Meta data + Informacje meta + + + Pricing Settings + Ustawienia cen + + + Inventory Settings + Ustawienia inwentarzu + + + Shipping Settings + Ustawienia wysyłki i dostawy + + + Product Options Settings + Ustawienia opcji produktu + + + Media Management + Zarządzanie multimediami + + + Expert settings + Zaawansowane ustawienia + + + Publishing + Publikacja + + + Quantity + Ilość + + + from %s pcs. + od %s szt. + + + Price + Cena + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + <p>Ta funkcjonalność może zostać użyta na dwa sposoby:</p> +<ol> + <li>Wybrany katalog źródłowy zawiera pliki, które pasują do nazwy lub jednostki magazynowej produktu. Isotope eCommerce dopasuje wszystkie pliki do produktów i zaimportuje je do odpowiedniego katalogu.</li> + <li>Wybrany katalog źródłowy zawiera podkatalogi, który pasują do nazwy lub jednostki magazynowej produktu. Isotope eCommerce dopasuje wszystkie pliki do produktów i zaimportuje je do odpowiedniego katalogu.</li> +</ol> +<p>Podpowiedź: Każdy developer może rozszerzyć reguły pasowania plików do produktów.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_product_category.php b/system/modules/isotope/languages/pl/tl_iso_product_category.php deleted file mode 100644 index 2e245aa35e..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_product_category.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Move product + Przenieś produkt + + + Move product ID %s + Przenieś produkt ID %s + + + Paste at the top + Wklej na początku + + + Paste after product ID %s + Wklej po produkcie ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_product_collection.php b/system/modules/isotope/languages/pl/tl_iso_product_collection.php deleted file mode 100644 index 4d4c7dc57c..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_product_collection.php +++ /dev/null @@ -1,62 +0,0 @@ - + + + + Order ID + ID zamówienia + + + Member (empty for guests) + Użytkownik (puste dla gości) + + + Unique ID + Unikalne ID + + + Order status + Status zamówienia + + + Select the status of this order. + Proszę wybrać status tego zamówienia. + + + Placed + Umieszczony + + + Source (Cart ID) + + + Payment date + Data płatności + + + Enter a date when this order has been paid. + Proszę wprowadzić datę płatności za to zamówienie. + + + Shipped date + Data wysyłki + + + Enter a date when this order has been shipped. + Proszę wprowadzić datę wysyłki tego zamówienia. + + + Shop configuration + Konfiguracja sklepu + + + Payment method + Metoda płatności + + + Shipping method + Metoda dostawy + + + Billing address + + + Shipping address + + + Subtotal + Podsumowanie + + + Subtotal without tax + Podsumowanie bez podatku + + + Total + Suma + + + Total without tax + Suma bez podatku + + + Currency + Waluta + + + Language + Język + + + Order notes + Notatki + + + If you would like to convey information to other backend users, please do so here. + Jeśli chcesz przekazać dodatkowe informacje dla innych użytkowników, zrób to tutaj. + + + Edit order + Edytuj zamówienie + + + Edit order ID %s + Edytuj zamówienie ID %s + + + Copy order + Kopiuj zamówienie + + + Copy order ID %s + Kopiuj zamówienie ID %s + + + Delete order + Usuń zamówienie + + + Delete order ID %s + Usuń zamówienie ID %s + + + Order details + Szczegóły zamówienia + + + Show details of order ID %s + Pokaż szczegóły zamówienia ID %s + + + Payment details + Szczegóły płatności + + + Show payment details of order ID %s + Pokaż szczegóły płatności zamówienia ID %s + + + Shipping details + Szczegóły wysyłki + + + Show shipping details of order ID %s + Pokaż szczegóły wysyłki dla zamówienia ID %s + + + Print a document + Wydrukuj dokument + + + Print order ID %s with a document of your choice + Wydrukuj zamówienie ID %s z wybranym dokumentem + + + Document + Dokument + + + Choose the document you would like to print the data with. + Proszę wybrać dokument, z którym chcesz wydrukować dane. + + + Print + Drukuj + + + The status of your order has been updated. + Status twojego zamówienia się zmienił. + + + Notifications (e.g. email to client) have been sent. + Powiadomienia (np. e-mail do klienta) zostały wysłane. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + Powiadomienia (np. e-mail do klienta) nie mogły zostać wysłane. Sprawdź logi systemowe. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + Status zamówienia + + + Order details + Szczegóły zamówienia + + + Email data + Informacje e-mail + + + Billing address data + Adres rozliczeniowy + + + Shipping address data + Adres dostawy + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_product_price.php b/system/modules/isotope/languages/pl/tl_iso_product_price.php deleted file mode 100644 index b822450ad7..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_product_price.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Price Tiers + Poziomy cen + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + Ustaw przynajmniej jeden poziom ceny dla "Ilość 1". Możesz wprowadzić obniżki cen, jesli użytkownik zamówi więcej niż jeden produkt. + + + Tax Class + Klasa podatku + + + Please select a tax class for this price. + Proszę wybrać klasę podatku dla tej ceny. + + + Store configuration + Konfiguracja sklepu + + + Select a store configuration for this price. + Proszę wybrać konfigurację sklepu dla tej ceny. + + + Member group + Grupa użytkowników + + + Select a member group for this price. + Proszę wybrać grupę użytkowników dla tej ceny. + + + Use from + Używaj od + + + Do not use the price on the website before this day. + Nie używaj tej ceny przed tym dniem. + + + Use until + Używaj do + + + Do not use the price on the website after this day. + Nie używaj ten ceny po tym dniu. + + + Add price + Dodaj cenę + + + Add a new price to this product + Dodaj nową cenę dla tego produktu + + + Edit price + Edytuj cenę + + + Edit price ID %s + Edytyj cenę ID %s + + + Duplicate price + Duplikuj cenę + + + Duplicate price ID %s + Duplikuj cenę ID %s + + + Delete price + Usuń cenę + + + Delete price ID %s + Usuń cenę ID %s + + + Price details + Szczegóły ceny + + + Show details of price ID %s + Pokaż szczegóły ceny ID %s + + + Quantity (min) + Ilość (min) + + + Price + Cena + + + Price + Cena + + + Limitations + Ograniczenia + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_producttype.php b/system/modules/isotope/languages/pl/tl_iso_producttype.php deleted file mode 100644 index afdf182b3d..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_producttype.php +++ /dev/null @@ -1,72 +0,0 @@ - + + + + Name + Nazwa + + + Please enter a name for this product type. + Proszę wprowadzić nazwę dla tego typu produktu. + + + Product Class + Klasa produktu + + + Please select a product class. Different product classes will handle products differently. + Proszę wybrać klasę produktu. + + + Default + Domyślny + + + Check here if this is the default product type. + Zaznacz, jeśli to jest domyślny typ produktu. + + + Description + Opis + + + A hint to product managers what this product type is for. + Podpowiedź dla menedżerów produktów, do czego nadaje się ten typ. + + + Advanced pricing + Zaawnsowane ceny + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + Pozwala na określenie wielu cen dla produktu, np. dla różnych konfiguracji sklepów, grup użytkowników czy dat. + + + Show price tiers + Pokaż poziomy cen + + + Show highest tier as lowest product price. + Pokaż najwyższy poziom jako najniższa cena produktu. + + + List template + Szablon listy + + + Select a template for product listing. + Wybierz szablon dla listy produktów. + + + Reader template + Szablon czytnika + + + Select a template for product details. + Wybierz szablon dla czytnika produktów. + + + List gallery + Lista galerii + + + Select a gallery for product listing. + Wybierz galerię dla listy produktów. + + + Reader gallery + Galeria czytnika + + + Select a gallery for product details. + Wybierz galerię dla czytnika produktów. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Atrybuty + + + Select the collection of attributes that should be included for this product type. + Wybierz kolekcję atrybutów, która powinna być dołączona dla tego typu produktu. + + + Grouping + Grupowanie + + + Group fields by topic (legends) + Grupuj pola według tematu (legend) + + + Alignment + Wyrównanie + + + Enter a tl_class to override alignment for this attribute. + Wprowadź tl_class, aby nadpisać położenie tego atrybutu. + + + Mandatory + Wymagane + + + You can override the default mandatory-ness here. + Możesz nadpisać domyślną wymagalność atrybutu tutaj. + + + Default + Domyślny + + + Enable variants + Włącz warianty + + + Check here if this product type has variants. + Zaznacz, jeśli ten typ produktu ma warianty. + + + Variant attributes + Atrybuty wariantów + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + Wybierz kolekcję wariantów atrybutów, która będze dołączona do tego typu produktu. Te, które nie są zaznaczone, będą ukryte i odziedziczone z rodzica produktu. + + + Always show variant attributes + Zawsze pokazuj atrybuty wariantow + + + Show a variant attribute (select, radio) even if there is only one choice. + Pokaż warianty atrybutów (select, radio), nawet jeśli jest tylko jeden wybór. + + + Exempt from shipping + Niedostępny do wysyłki + + + Check if items of this product type are not a shipped item (such as downloadable products). + Zaznacz jeśli produkty tego typu nie są dostępny do wysyłki (np. w przypadku plików do pobrania). + + + Enable downloads + Włącz pliki do pobrania + + + Check here if this product type has downloads. + Zaznacz, jeśli typ produktu ma pliki do pobrania. + + + New product type + Nowy typ produktu + + + Create new product type. + Dodaj nowy typ produktu. + + + Edit product type + Edytuj typ produktu + + + Edit product type ID %s + Edytuj typ produktu ID %s + + + Copy product type definiton + Kopiuj definicję typu produktu + + + Copy definition of product type ID %s + Kopiuj definicję typu produktu ID %s + + + Delete product type + Usuń typ produktu + + + Delete product type ID %s + Usuń typ produktu ID %s + + + product type details + Szczegóły typu produktu + + + Show details of product type ID %s + Pokaż szczegóły typu produktu ID %s + + + Product type settings + Ustawienia typu produktu + + + Description + Opis + + + Prices + Ceny + + + Templates + Szablony + + + Product attributes + Atrbyuty produktu + + + Variant attributes + Atrybuty wariantów + + + Expert settings + Zaawansowane ustawienia + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_related_category.php b/system/modules/isotope/languages/pl/tl_iso_related_category.php deleted file mode 100644 index 26e47edc46..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_related_category.php +++ /dev/null @@ -1,29 +0,0 @@ - + + + + Category name + Nazwa kategorii + + + Please enter a name for this category. + Proszę wprowadzić nazwę kategorii. + + + New category + Nowa kategoria + + + Create a new category + Dodaj nową kategorią + + + Edit category + Edytuj kategorię + + + Edit category ID %s + Edytuj kategorię ID %s + + + Duplicate category + Duplikuj kategorię + + + Duplicate category ID %s + Duplikuj kategorię ID %s + + + Delete category + Usuń kategorię + + + Delete category ID %s + Usuń kategorię ID %s + + + Category details + Szczegóły kategorii + + + Show details of category ID %s + Pokaż szczegóły kategorii ID %s + + + Name + Nazwa + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_related_product.php b/system/modules/isotope/languages/pl/tl_iso_related_product.php deleted file mode 100644 index dc40e1ed89..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_related_product.php +++ /dev/null @@ -1,36 +0,0 @@ - + + + + Category + Kategoria + + + Select a category. + Wybierz kategorię. + + + Products + Produkty + + + Enter a comma-separated list of product or variant IDs to show as related products. + Wprowadź listę produktów po przecinku lub ID wariantów, które pokażą się jako produkty powiązane. + + + Add category + Nowa kategoria + + + Add a new category with products + Dodaj nową kategorią + + + Edit category + Edytuj kategorię + + + Edit category ID %s + Edytuj kategorię ID %s + + + Duplicate category + Duplikuj kategorię + + + Duplicate category ID %s + Duplikuj kategorię ID %s + + + Move category + Przenieś kategorię + + + Move category ID %s + Przenieś kategorię ID %s + + + Delete category + Usuń kategorię + + + Delete category ID %s + Usuń kategorię ID %s + + + Category details + Szczegóły kategorii + + + Show details of category ID %s + Pokaż szczegóły kategorii ID %s + + + Edit product + Edytuj produkt + + + Edit this product + Edytuj ten produkt + + + Category + Kategoria + + + Related products + Powiązane produkty + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_shipping.php b/system/modules/isotope/languages/pl/tl_iso_shipping.php deleted file mode 100644 index 2f0d600532..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_shipping.php +++ /dev/null @@ -1,87 +0,0 @@ - + + + + Shipping Method Name + Nazwa metody wysyłki + + + Please enter a name for this shipping method. + Proszę wprowadzić nazwę dla tej metody wysyłki. + + + Shipping Method Type + Typ metody wysyłki + + + Please select the type of this shipping method + Proszę wybrać typ dla tej metody wysyłki. + + + Price + Cena + + + Optionally enter a price for this shipping method. + Opcjonalnie możesz wprowadzić cenę dla tej metody wysyłki. + + + Shipping Method Notes + Notatki + + + These will be displayed on the front end in association with this shipping option. + Te notatki zostaną wyświetlone na stronie przy tej opcji wysyłki. + + + Tax Class + Klasa podatku + + + Select a tax class that applies to the shipping price. + Proszę wybrać klasę podatku dla ceny wysyłki. + + + Label + Etykieta + + + This is displayed on the front end in association with the shipping option. + Etykieta zostanie wyświetlona na stronie przy tej opcji wysyłki. + + + Flat calculation + Płaska kalkulacja + + + Select the mode of price calculation. + Proszę wybrać tryb kalkulacji ceny. + + + Countries + Kraje + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + Wybierz kraje, do których ta metoda wysyłki jest dostępna. Jeśli nic nie wybierzesz, wysyłka będzie dostępna do wszystkich krajów. + + + State/Regions + Stany/regiony + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + Wybierz stany/regiony, do których ta metoda wysyłki jest dostępna. Jeśli nic nie wybierzesz, wysyłka będzie dostępna do wszystkich stanów/regionów. + + + Postal codes + Kody pocztowe + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Ogranicz ten moduł wysyłki do kodów pocztowych. Możesz wprowadzić wiele kodów oraz zakresy, oddzielając je przecinkami (np. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + Minimalna suma częściowa + + + Enter a minimum amount to control availability based on the cart subtotal. + Proszę wprowadzić minimalną ilość do kontroli dostępności opartej na sumie częściowej koszyka. + + + Maximum subtotal + Maksymalna suma częściowa + + + Enter a maximum amount to control availability based on the cart subtotal. + Proszę wprowadzić maksymalną ilość do kontroli dostępności opartej na sumie częściowej koszyka. + + + Minimum weight + Minimalna waga + + + Enter a minimum weight to control availability based on the products in cart. + Proszę wprowadzić minimalną wagę do kontroli dostępności opartej na produktach w koszyku. + + + Maximum weight + Maksymalna waga + + + Enter a maximum weight to control availability based on the products in cart. + Proszę wprowadzić maksymalną wagę do kontroli dostępności opartej na produktach w koszyku. + + + Quantity calculation mode + Tryb obliczeń ilościowych + + + Select a calculation mode for min/max quantity. + Proszę wybrać tryb obliczeń dla minimalnej/maksymalnej ilości. + + + Total quantity in cart + Całkowita ilość w koszyku + + + Total products in cart + Wszystkie produkty w koszyku + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Typy produktów + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + Tutaj możesz zastrzec dla jakich typów produktów ta metoda wysyłki jest dostępna. Jeśli koszyk zawiera produkt, który nie jest zaznaczony, moduł wysyłki będzie niedostępny. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Konfiguracje sklepu + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Metody dostawy + + + Select the shipping methods to group in this method. + Proszę wybrać metody wysyłki do grupy w tej metodzie. + + + Group calculation + Grupowa kalkulacja + + + Select how the price of this shipping method should be calculated. + Proszę wybrać, w jaki sposób ma zostać liczona cena dla tej metody wysyłki. + + + Member Groups + Grupy użytkowników + + + Restrict this shipping option to certain member groups. + Zastrzeż tę metodę wysyłki do konkretnych grup użytkowników. + + + Protect module + Chroń moduł + + + Show the module to certain member groups only. + Pokaż metodę wysyłki tylko konkretnym grupom użytkowników. + + + Show to guests only + Pokaż tylko dla gości + + + Hide the module if a member is logged in. + Ukryj metodę wysyłki, jeśli użytkownik jest zalogowany. + + + Enabled + Aktywna + + + Is the module available for use in the store? + Zaznacz tutaj jeśli moduł wysyłki ma być aktywny. + + + Title and type + Tytuł i typ + + + Shipping note + Notatka + + + Configuration + Konfiguracja + + + Pricing threshold and tax class applicability + Próg cenowy i klasa podatku + + + Expert settings + Zaawansowane ustawienia + + + Approval + + + New shipping method + Nowa metoda wysyłki + + + Create a New shipping method + Dodaj nową metodę wysyłki + + + Edit shipping method + Edytuj metodę wysyłki + + + Edit shipping method ID %s + Edytuj metodę wysyłki ID %s + + + Copy shipping method + Kopiuj metodę wysyłki + + + Copy shipping method ID %s + Kopiuj metodę wysyłki ID %s + + + Delete shipping method + Usuń metodę wysyłki + + + Delete shipping method ID %s + Usuń metodę wysyłki ID %s + + + Enable/disable shipping method + Włącz / wyłącz metody wysyłki + + + Enable/disable shipping method ID %s + Włącz / wyłącz metodę wysyłki ID %s + + + Shipping method details + Pokaż szczegóły metody wysyłk + + + Show details of shipping method ID %s + Pokaż szczegóły metody wysyłki ID %s + + + Flat + Płaski + + + Per Product + Za produkt + + + Per Item + Za rzecz + + + Price of the first available method + Cena pierwszej dostępnej metody + + + Lowest price of available methods + Najniższa cena z dostępnych metod + + + Highest price of available methods + Najwyższa cena z dostępnych metod + + + Summed price of available methods + Zsumowana cena dostępnych metod + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_tax_class.php b/system/modules/isotope/languages/pl/tl_iso_tax_class.php deleted file mode 100644 index 8413f7fda3..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_tax_class.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Nazwa + + + Give this tax class a name that explains what it is used for. + Wprowadź nazwę podatku, która wyjaśnia do czego jest użyty. + + + Default + Domyślny + + + Check here if this is the default tax class. + Zaznacz, jeśli to domyślna stawka podatku. + + + Tax rate included with product price + Stawka podatkowa zawarta w cenie produktu + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + Zaznacz, jeśli ceny produktu z tą klasą podatkową już zawierają w sobie stawkę podatkową. Ta stawka podatkowa będzie odjęta od ceny produktu, jesli nie pasuje. + + + Include label + Dołącz etykietę + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + Etykieta dla zamówień, która prezentuje odjęte podatki (jeśli podatek nie pasuje). Jeśli pole jest puste, użyta zostnaie etykieta domyślnej stawki podatku. + + + Apply tax rates + Zastosuj stawki podatkowe + + + Add these tax rates to products with this tax class. + Dodaj te stawik podatkowe do produktów z tą klasą podatkową. + + + Apply rounding increment + Zastosuj przyrost zaokrąglenia + + + Check here if you want to apply the rounding increment of your shop config. + Zaznacz, jeśli chcesz zastosować przyrost zaokrąglenia z konfiguracji sklepu. + + + Not negative + Nie ujemne + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + Zapobiega ujemnym wartością dla tego podatku (ujemne wartości zostaną zmienione na 0.00) + + + New tax class + Nowa klasa podatku + + + Create a new tax class + Dodaj nową klasę podatku + + + Edit tax class + Edytuj klasę podatku + + + Edit tax class ID %s + Edytuj klasę podatku ID %s + + + Copy tax class + Kopiuj klasę podatku + + + Copy tax class ID %s + Kopiuj klasę podatku ID %s + + + Delete tax class + Usuń klasę podatku + + + Delete tax class ID %s + Usuń klasę podatku ID %s + + + Tax class details + Szczegóły zamówienia + + + Show details of tax class ID %s + Pokaż szczegóły klasy podatku ID %s + + + Name + Nazwa + + + Tax rates + Stawki podatkowe + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_iso_tax_rate.php b/system/modules/isotope/languages/pl/tl_iso_tax_rate.php deleted file mode 100644 index f39119418e..0000000000 --- a/system/modules/isotope/languages/pl/tl_iso_tax_rate.php +++ /dev/null @@ -1,57 +0,0 @@ - + + + + Name + Nazwa + + + Enter a name for this tax rate. + Wprowadź nazwę stawki podatku. + + + Label + Etykieta + + + This label will be used on the front end in the checkout process. + Ta etykieta zostanie używa we frontendzie przy składaniu zamówienia. + + + Address to use for calculation + Adres do użycia w kalkulacji + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + Kraje + + + Select the countries this tax class applies to. + + + States/Regions + Stany/regiony + + + Select the states or regions this tax class applies to. + Wybierz stany lub regiony, których dotyczy ta stawka podatku. + + + Postal codes + Kody pocztowe + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Ogranicz tę stawkę podatku do kodów pocztowych. Możesz wprowadzić wiele kodów oraz zakresy, oddzielając je przecinkami (np. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + Ograniczenie wartości podsumy + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + Opcjonalne: Zastrzeż tę stawkę podatku do określonej wartości podsumy. + + + Tax rate + Stawka podatku + + + A rate in percent this tax is set at. + Stawka podatku w procentach. + + + Store configuration + Konfiguracja sklepu + + + Select the store configuration that the tax rate applies to. + Proszę wybrać konfigurację sklepu dla tej stawki podatku. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + Zatrzymać kalkulacje przy przełączeniu? + + + Stop other calculations if this tax rate is triggered. + Zatrzymaj inne kalkulacje jeśli ta stawka jest użyta. + + + Member groups + Grupy użytkowników + + + Restrict this tax rate to certain member groups. + Zastrzeż tę klasę podatku do konkretnych grup użytkowników. + + + Protect tax rate + Chroń klasę podatku + + + Apply the tax rate to certain member groups only. + Aktywuj klasę podatku tylko dla wybranych grup. + + + Apply to guests only + Aktywuj tylko dla gości + + + Do not apply tax rate if a member is logged in. + Nie aktywuj klasy podatku dla zalogowanych użytkowników. + + + New tax rate + Nowa stawka podatku + + + Create a new tax rate + Dodaj nową stawkę podatku + + + Edit tax rate + Edytuj stawkę podatku + + + Edit tax rate ID %s + Edytuj stawkę podatku ID %s + + + Copy tax rate + Kopiuj stawkę podatku + + + Copy tax rate ID %s + Kopiuj stawkę podatku ID %s + + + Delete tax rate + Usuń stawkę podatku + + + Delete tax rate ID %s + Usuń stawkę podatku ID %s + + + Tax rate details + Szczegóły zamówienia + + + Show details of tax rate ID %s + Pokaż szczegóły stawki podatku ID %s + + + Billing Address + Adres rozliczeniowy + + + Shipping Address + Adres dostawy + + + Name + Nazwa + + + Rate + Stawka + + + Location + Lokalizacja + + + Conditions + Warunki + + + Configuration + Konfiguracja + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_maintenance.php b/system/modules/isotope/languages/pl/tl_maintenance.php deleted file mode 100644 index 00672d9b1e..0000000000 --- a/system/modules/isotope/languages/pl/tl_maintenance.php +++ /dev/null @@ -1,20 +0,0 @@ -tl_iso_productcache, która cacheuje produkty wyświetlone na każdej liście produktów w serwisie.'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][0] = 'Wyczyść cache zapytań Isotope'; -$GLOBALS['TL_LANG']['tl_maintenance_jobs']['iso_requestcache'][1] = 'Czyści tabelę tl_iso_requestcache , która cacheuje informacje z modułów filtrów dla krótkich URLi.'; diff --git a/system/modules/isotope/languages/pl/tl_maintenance.xlf b/system/modules/isotope/languages/pl/tl_maintenance.xlf new file mode 100644 index 0000000000..15721933ce --- /dev/null +++ b/system/modules/isotope/languages/pl/tl_maintenance.xlf @@ -0,0 +1,22 @@ + + + + + Purge Isotope product cache + Wyczyść cache produktów Isotope + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + Czyści tabelę <em>tl_iso_productcache</em>, która cacheuje produkty wyświetlone na każdej liście produktów w serwisie. + + + Purge Isotope request cache + Wyczyść cache zapytań Isotope + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + Czyści tabelę <em> tl_iso_requestcache </em>, która cacheuje informacje z modułów filtrów dla krótkich URLi. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_member.php b/system/modules/isotope/languages/pl/tl_member.php deleted file mode 100644 index eee7aec72a..0000000000 --- a/system/modules/isotope/languages/pl/tl_member.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Address Book + Książka adresowa + + + Manage the address book for member ID %s. + Zarządzaj tą książką adresową. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_module.php b/system/modules/isotope/languages/pl/tl_module.php deleted file mode 100644 index 52babab04c..0000000000 --- a/system/modules/isotope/languages/pl/tl_module.php +++ /dev/null @@ -1,128 +0,0 @@ -templates. Pliki szablonów kolekcji zaczynają się z iso_collection_.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterTpl'][0] = 'Szablon filtru'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][0] = 'Przekieruj do pierwszego produktu'; -$GLOBALS['TL_LANG']['tl_module']['iso_jump_first'][1] = 'Zaznacz tutaj jeśli użytkownicy powinni być przekierowani do pierwszego produktu z listy.'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][0] = 'Ukryj w czytniku'; -$GLOBALS['TL_LANG']['tl_module']['iso_hide_list'][1] = 'Ukryj listę produktów jeśli alias produktu jest w adresie URL.'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][0] = 'Dowolna ilość'; -$GLOBALS['TL_LANG']['tl_module']['iso_use_quantity'][1] = 'Pozwala użytkownikowi na określenie ilości produktu, który chce kupić.'; -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'][0] = 'Wyświetl stronę 404'; -$GLOBALS['TL_LANG']['tl_module']['iso_display404Page'][1] = 'Wyświetl stronę 404, jeśli nie ma aliasu produktu w URL. Używaj tego jeśli moduł czytnika jest na osobnej stronie, która nie powinna być dostępna w żadnym innym przypadku.'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][0] = 'Metody kasy'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method'][1] = 'Proszę wybrać metodę kasy.'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][0] = 'Strona dodania produktu'; -$GLOBALS['TL_LANG']['tl_module']['iso_addProductJumpTo'][1] = 'Wybierz stronę, na którą zostanie przekierowany użytkownik, gdy doda nowy produkt do koszyka.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][0] = 'Kolumny'; -$GLOBALS['TL_LANG']['tl_module']['iso_cols'][1] = 'Wprowadź liczbę kolumn do wyświetlenia w szablonie listy.'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][0] = 'Konfiguracja sklepu'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_id'][1] = 'Wybierz konfigurację sklepu, która będzie używana przez ten moduł.'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][0] = 'Konfiguracje sklepu'; -$GLOBALS['TL_LANG']['tl_module']['iso_config_ids'][1] = 'Wybierz konfiguracje sklepu, które będą używane przez ten moduł.'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][0] = 'Metody płatności'; -$GLOBALS['TL_LANG']['tl_module']['iso_payment_modules'][1] = 'Wybierz jedną lub więcej metod płatności dla tego modułu kasy.'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][0] = 'Metody dostawy'; -$GLOBALS['TL_LANG']['tl_module']['iso_shipping_modules'][1] = 'Wybierz jedną lub więcej metod dostawy dla tego modułu kasy.'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][0] = 'Strona po zakończonym zamówieniu'; -$GLOBALS['TL_LANG']['tl_module']['orderCompleteJumpTo'][1] = 'Wybierz stronę, na którą zostanie przkierowany klient po zakończonym zamówieniu.'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][0] = 'Przejdź do strony przeglądu'; -$GLOBALS['TL_LANG']['tl_module']['iso_forward_review'][1] = 'Przekieruj użytkownika do strony przeglądu, jeśli żadne informacje nie są wymagane w żadnym z kroków.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][0] = 'Formularz warunków zakupu'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions'][1] = 'Wybierz formularz, który zostanie użyty do wyświetlenia twojego regulaminu i warunków zakupu (opcjonalne).'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position'][0] = 'Pozycja formularza warunków zakupu'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position'][1] = 'Proszę określić czy formularz warunków zakupu powinien być wyświetlony przed czy po liście produktów.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['top'] = 'Na górze (przed adresem)'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['before'] = 'Przed listą produktów'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_position']['after'] = 'Po liście produktów'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][0] = 'Dodaj do książki adresowej'; -$GLOBALS['TL_LANG']['tl_module']['iso_addToAddressbook'][1] = 'Dodaj nowe adresy do książki adresowej zalogowanego użytkownika.'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][0] = 'Sortowanie'; -$GLOBALS['TL_LANG']['tl_module']['iso_orderCollectionBy'][1] = 'Proszę określić w jakiej kolejności mają zostać wyświetlone elementy kolekcji.'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][0] = 'Określ wiadomość dla pustych modułów'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyMessage'][1] = 'Ustaw wiadomość jeśli nie ma nic do wyświetlenia (pusta lista produktów, pusty koszyk, itp.).'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][0] = 'Wiadomość dla pustych modułów'; -$GLOBALS['TL_LANG']['tl_module']['iso_noProducts'][1] = 'Wprowadź wiadomość jeśli nie ma nic do wyświetlenia (pusta lista produktów, pusty koszyk, itp.).'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyFilter'][0] = 'Określi wiadomość, jeżeli nie jest ustawiony żaden filtr.'; -$GLOBALS['TL_LANG']['tl_module']['iso_emptyFilter'][1] = 'Ustaw własną wiadomość, jeżeli nie jest ustawiony żaden filtr.'; -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'][0] = 'Wiadomość, jeżeli nie jest ustawiony żaden filtr.'; -$GLOBALS['TL_LANG']['tl_module']['iso_noFilter'][1] = 'Proszę wprowadzić wiadomość, jeżeli nie jest ustawiony żaden filtr.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][0] = 'Zakres kategorii'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope'][1] = 'Określ zakres listy prodkutów.'; -$GLOBALS['TL_LANG']['tl_module']['iso_list_where'][0] = 'Warunek'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][0] = 'Moduły filtrów'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterModules'][1] = 'Wybierz moduły filtrów, które chcesz uwzględnić dla tej listy produktów.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][0] = 'Włączone filtry'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterFields'][1] = 'Wybierz filtry do włączenia.'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][0] = 'Ukryj pojedyncze opcje'; -$GLOBALS['TL_LANG']['tl_module']['iso_filterHideSingle'][1] = 'Ukryj pole filtru, jeżeli jest tylko jedna opcja.'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][0] = 'Włączone pola wyszukiwania'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchFields'][1] = 'Proszę wybrać pola wyszukiwania do włączenia.'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][0] = 'Autouzupełnianie pola wyszukiwania'; -$GLOBALS['TL_LANG']['tl_module']['iso_searchAutocomplete'][1] = 'Jeśli zaznaczysz to pole, wyszukiwarka będzie autouzupełniona przez wartości tego pola.'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][0] = 'Włączone pola sortowania'; -$GLOBALS['TL_LANG']['tl_module']['iso_sortingFields'][1] = 'Proszę wybrać pola sortowania do włączenia.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][0] = 'Filtrowanie dla nowych produktów'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter'][1] = 'Jeśli skonfigurowałeś oznaczanie produktów jako "nowe" w konfiguracji sklepu, możesz wyświetlić stare, nowe lub wszystkie produkty.'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_all'] = 'Pokaż wszystkie produkty'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_new'] = 'Pokaż tylko nowe produkty'; -$GLOBALS['TL_LANG']['tl_module']['iso_newFilter']['show_old'] = 'Pokaż tylko stare produkty'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][0] = 'Włącz limit rekordów na stronę'; -$GLOBALS['TL_LANG']['tl_module']['iso_enableLimit'][1] = 'Pozwala użytkownikowi wybrać, ile rekordów zostanie pokazanych na jednej stronie.'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][0] = 'Opcje rekordów na stronę'; -$GLOBALS['TL_LANG']['tl_module']['iso_perPage'][1] = 'Wprowadź listę wartości oddzieloną przecinkami, które będą użyte w menu dropdown. Pierwsza opcja zostanie użyta jako domyślna wartość. Wartości zostaną automatycznie posortowane wg. liczby.'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][0] = 'Strona koszyka produktów'; -$GLOBALS['TL_LANG']['tl_module']['iso_cart_jumpTo'][1] = 'Wybierz stronę, na którą zostanie przekierowany użytkownik, gdy zażąda pełnego widoku koszyka.'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][0] = 'Strona kasy'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_jumpTo'][1] = 'Wybierz stronę, na którą zostanie przekierowany użytkownik, gdy zakończy transakcję.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][0] = 'Domyślne pole sortujące'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortField'][1] = 'Wybierz pole sortujące, które będzie użyte po pierwszym załadowaniu strony.'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][0] = 'Domyślny kierunek sortujący'; -$GLOBALS['TL_LANG']['tl_module']['iso_listingSortDirection'][1] = 'Wybierz domyślne kierunek sortujący.'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][0] = 'Przyciski'; -$GLOBALS['TL_LANG']['tl_module']['iso_buttons'][1] = 'Wybierz przyciski, które chcesz wyświetlić.'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][0] = 'Powiązane kategorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_related_categories'][1] = 'Wybierz kategorie z których będą pokazane produkty.'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][0] = 'Dołącz wiadomości'; -$GLOBALS['TL_LANG']['tl_module']['iso_includeMessages'][1] = 'To ustawienie pozwala modułowi na dołączenie wszelakich błędów, powiadomień czy potwierdzeń, z którymi odwiedzający powinien się zapoznać.'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][0] = 'Włącz przycisk "Kontynuuj zakupy"'; -$GLOBALS['TL_LANG']['tl_module']['iso_continueShopping'][1] = 'Dodaj link do właśnie dodanego produktu do koszyka.'; -$GLOBALS['TL_LANG']['tl_module']['iso_order_conditions_legend'] = 'Formularz warunków zakupu'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['member'] = 'Wymagane logowanie/rejestracja'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['guest'] = 'Kasa tylko dla gości'; -$GLOBALS['TL_LANG']['tl_module']['iso_checkout_method_ref']['both'] = 'Oba dozwolone'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][0] = 'Wszystkie kategorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['global'][1] = 'Pokaż wszystkie produkty, które są przypisane do strony aktywnego drzewa stron (na podstawie punktu startowego).'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][0] = 'Aktywna kategoria i pierwsza podkategoria'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_first_child'][1] = 'Pokaż wszystkie produkty, które są przypisane do aktywnej strony lub podstron pierwszego poziomu.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][0] = 'Aktywna kategoria i wszystkie podkategorie'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_and_all_children'][1] = 'Pokaż wszystkie produkty, które są przypisane do aktywnej strony lub jakiejkolwiek podstrony.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][0] = 'Aktywna kategoria'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['current_category'][1] = 'Pokaż wszystkie produkty, które są przypisane do aktywnej strony (domyślnie).'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][0] = 'Nadrzędna kategoria'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['parent'][1] = 'Pokaż wszystkie produkty, które są przypisane do strony nadrzędnej aktywnej strony.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][0] = 'Kategorie aktywnego produktu'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['product'][1] = 'Pokaż wszystkie produkty, które są przypisane do tych samych stron co aktywny produkt.'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['article'][0] = 'Kategoria artykułu'; -$GLOBALS['TL_LANG']['tl_module']['iso_category_scope_ref']['article'][1] = 'Jeśli umieścisz moduł w artykule, pokaże produkty przypisane do strony nadrzędnej tego artykułu, nawet jeśli umieścisz artykuł na innej stronie (np. poprzez insert tag).'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['ASC'] = 'ASC'; -$GLOBALS['TL_LANG']['tl_module']['sortingDirection']['DESC'] = 'DESC'; diff --git a/system/modules/isotope/languages/pl/tl_module.xlf b/system/modules/isotope/languages/pl/tl_module.xlf new file mode 100644 index 0000000000..3a3aa8f3ef --- /dev/null +++ b/system/modules/isotope/languages/pl/tl_module.xlf @@ -0,0 +1,544 @@ + + + + + Product list template + Szablon listy produktów + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + Szablon czytnika produktów + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + Galeria + + + Select a gallery to render images (overrides the product type config). + Wybierz galerię do wyświetlenia obrazków (nadpisuje ustawienia typu produktu). + + + Product collection template + Szablon kolekcji produktów + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + Proszę wybrać szablon do wyświetlenia produktów. Możesz dodać własne szablony kolekcji do katalogu <em>templates</em>. Pliki szablonów kolekcji zaczynają się z <em>iso_collection_</em>. + + + Filter template + Szablon filtru + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + Przekieruj do pierwszego produktu + + + Check here if users are redirected to the first product of the list. + Zaznacz tutaj jeśli użytkownicy powinni być przekierowani do pierwszego produktu z listy. + + + Hide in reader mode + Ukryj w czytniku + + + Hide product list when a product alias is found in the URL. + Ukryj listę produktów jeśli alias produktu jest w adresie URL. + + + Enable quantity + Dowolna ilość + + + Allow users to specify 1 or more of a product to be purchased. + Pozwala użytkownikowi na określenie ilości produktu, który chce kupić. + + + Display a 404 page + Wyświetl stronę 404 + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + Wyświetl stronę 404, jeśli nie ma aliasu produktu w URL. Używaj tego jeśli moduł czytnika jest na osobnej stronie, która nie powinna być dostępna w żadnym innym przypadku. + + + Checkout method + Metody kasy + + + Choose your checkout method. + Proszę wybrać metodę kasy. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + Strona dodania produktu + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + Wybierz stronę, na którą zostanie przekierowany użytkownik, gdy doda nowy produkt do koszyka. + + + Columns + Kolumny + + + Enter a number of columns to display width-wise in the listing template. + Wprowadź liczbę kolumn do wyświetlenia w szablonie listy. + + + Store configuration + Konfiguracja sklepu + + + Select the store configuration that this module will be used for. + Wybierz konfigurację sklepu, która będzie używana przez ten moduł. + + + Store configurations + Konfiguracje sklepu + + + Select the store configurations that this module will be used for. + Wybierz konfiguracje sklepu, które będą używane przez ten moduł. + + + Payment methods + Metody płatności + + + Select one or more payment methods for this checkout module. + Wybierz jedną lub więcej metod płatności dla tego modułu kasy. + + + Shipping methods + Metody dostawy + + + Select one or more shipping methods for this checkout module. + Wybierz jedną lub więcej metod dostawy dla tego modułu kasy. + + + Completed order jump to page + Strona po zakończonym zamówieniu + + + Select a page the customer will be referred to after their order is complete. + Wybierz stronę, na którą zostanie przkierowany klient po zakończonym zamówieniu. + + + Forward to review page + Przejdź do strony przeglądu + + + Forward the user to the review page if no data is required on any step. + Przekieruj użytkownika do strony przeglądu, jeśli żadne informacje nie są wymagane w żadnym z kroków. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + Formularz warunków zakupu + + + Choose a custom form that is used to display your order terms and conditions (optional). + Wybierz formularz, który zostanie użyty do wyświetlenia twojego regulaminu i warunków zakupu (opcjonalne). + + + Position of order conditions form + Pozycja formularza warunków zakupu + + + Define if the order condition form should be shown before or after the products list. + Proszę określić czy formularz warunków zakupu powinien być wyświetlony przed czy po liście produktów. + + + On top (before address) + Na górze (przed adresem) + + + Before products list + Przed listą produktów + + + After products list + Po liście produktów + + + Add to address book + Dodaj do książki adresowej + + + Add new addresses to members address book (if logged in). + Dodaj nowe adresy do książki adresowej zalogowanego użytkownika. + + + Sorting + Sortowanie + + + Define in what order the collection items should be listed. + Proszę określić w jakiej kolejności mają zostać wyświetlone elementy kolekcji. + + + Define empty message + Określ wiadomość dla pustych modułów + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + Ustaw wiadomość jeśli nie ma nic do wyświetlenia (pusta lista produktów, pusty koszyk, itp.). + + + Message when empty + Wiadomość dla pustych modułów + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + Wprowadź wiadomość jeśli nie ma nic do wyświetlenia (pusta lista produktów, pusty koszyk, itp.). + + + Define a message if no filter is set + Określi wiadomość, jeżeli nie jest ustawiony żaden filtr. + + + Set a custom message when there is no filter set. + Ustaw własną wiadomość, jeżeli nie jest ustawiony żaden filtr. + + + Message when no filter is set + Wiadomość, jeżeli nie jest ustawiony żaden filtr. + + + Enter a custom message if there is no filter set. + Proszę wprowadzić wiadomość, jeżeli nie jest ustawiony żaden filtr. + + + Category Scope + Zakres kategorii + + + Specify the scope of a product lister. + Określ zakres listy prodkutów. + + + Condition + Warunek + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + Moduły filtrów + + + Select the filter modules you want to consider for this product list. + Wybierz moduły filtrów, które chcesz uwzględnić dla tej listy produktów. + + + Enabled filters + Włączone filtry + + + Please select filters to enable. + Wybierz filtry do włączenia. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + Ukryj pojedyncze opcje + + + Hide filter field if there is just one option. + Ukryj pole filtru, jeżeli jest tylko jedna opcja. + + + Enabled search fields + Włączone pola wyszukiwania + + + Please select search fields to enable. + Proszę wybrać pola wyszukiwania do włączenia. + + + Autocomplete search field + Autouzupełnianie pola wyszukiwania + + + If you select a field here, the search will be autocompleted by the values of that field. + Jeśli zaznaczysz to pole, wyszukiwarka będzie autouzupełniona przez wartości tego pola. + + + Enabled sorting fields + Włączone pola sortowania + + + Please select orderable fields to enable. + Proszę wybrać pola sortowania do włączenia. + + + Filtering for new products + Filtrowanie dla nowych produktów + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + Jeśli skonfigurowałeś oznaczanie produktów jako "nowe" w konfiguracji sklepu, możesz wyświetlić stare, nowe lub wszystkie produkty. + + + Show all products + Pokaż wszystkie produkty + + + Only show new products + Pokaż tylko nowe produkty + + + Only show old products + Pokaż tylko stare produkty + + + Enable per-page limiting + Włącz limit rekordów na stronę + + + Allow the user to select the number of records to show per page. + Pozwala użytkownikowi wybrać, ile rekordów zostanie pokazanych na jednej stronie. + + + Per page options + Opcje rekordów na stronę + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + Wprowadź listę wartości oddzieloną przecinkami, które będą użyte w menu dropdown. Pierwsza opcja zostanie użyta jako domyślna wartość. Wartości zostaną automatycznie posortowane wg. liczby. + + + Shopping Cart Jump to page + Strona koszyka produktów + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + Wybierz stronę, na którą zostanie przekierowany użytkownik, gdy zażąda pełnego widoku koszyka. + + + Checkout Jump to page + Strona kasy + + + This setting defines to which page a user will be redirected when completing their transaction. + Wybierz stronę, na którą zostanie przekierowany użytkownik, gdy zakończy transakcję. + + + Initial sorting field + Domyślne pole sortujące + + + Select a sorting field to sort the listing by on first page load. + Wybierz pole sortujące, które będzie użyte po pierwszym załadowaniu strony. + + + Initial sorting direction + Domyślny kierunek sortujący + + + Select a initial sorting direction. + Wybierz domyślne kierunek sortujący. + + + Buttons + Przyciski + + + Select the buttons you want to show. + Wybierz przyciski, które chcesz wyświetlić. + + + Related categories + Powiązane kategorie + + + Select the categories to show products of. + Wybierz kategorie z których będą pokazane produkty. + + + Include messaging + Dołącz wiadomości + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + To ustawienie pozwala modułowi na dołączenie wszelakich błędów, powiadomień czy potwierdzeń, z którymi odwiedzający powinien się zapoznać. + + + Enable "Continue shopping" button + Włącz przycisk "Kontynuuj zakupy" + + + Add a link to the currently added product to the cart. + Dodaj link do właśnie dodanego produktu do koszyka. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + Formularz warunków zakupu + + + Login/Registration required + Wymagane logowanie/rejestracja + + + Guest checkout only + Kasa tylko dla gości + + + Both allowed + Oba dozwolone + + + All Categories + Wszystkie kategorie + + + Show all products that are assigned to a page of the active page tree (based on the root page). + Pokaż wszystkie produkty, które są przypisane do strony aktywnego drzewa stron (na podstawie punktu startowego). + + + Current Category and First Child Category + Aktywna kategoria i pierwsza podkategoria + + + Show all products that are assigned to the active page or child pages on the first sublevel. + Pokaż wszystkie produkty, które są przypisane do aktywnej strony lub podstron pierwszego poziomu. + + + Current Category and All Child Categories + Aktywna kategoria i wszystkie podkategorie + + + Show all products that are assigned to the active page or any child page of it. + Pokaż wszystkie produkty, które są przypisane do aktywnej strony lub jakiejkolwiek podstrony. + + + Current Category + Aktywna kategoria + + + Show all products that are assigned to the active page (default). + Pokaż wszystkie produkty, które są przypisane do aktywnej strony (domyślnie). + + + Parent Category + Nadrzędna kategoria + + + Show all products that are assigned to the parent page of the active page. + Pokaż wszystkie produkty, które są przypisane do strony nadrzędnej aktywnej strony. + + + Current Product's Categories + Kategorie aktywnego produktu + + + Show all products that are assigned to the same pages the currently active product is assigned to. + Pokaż wszystkie produkty, które są przypisane do tych samych stron co aktywny produkt. + + + Category of article + Kategoria artykułu + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + Jeśli umieścisz moduł w artykule, pokaże produkty przypisane do strony nadrzędnej tego artykułu, nawet jeśli umieścisz artykuł na innej stronie (np. poprzez insert tag). + + + ASC + ASC + + + DESC + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_nc_notification.php b/system/modules/isotope/languages/pl/tl_nc_notification.php deleted file mode 100644 index 90e17c7937..0000000000 --- a/system/modules/isotope/languages/pl/tl_nc_notification.php +++ /dev/null @@ -1,27 +0,0 @@ - + + + + Product collection template + Szablon kolekcji produktów + + + Please choose a template to render the products for the notification content. + Proszę wybrać szablon kolekcji, który ma zostać użyty do wyświetlenia produktów w treści powiadomienia. + + + Sorting + Sortowanie + + + Define in what order the collection items should be listed. + Proszę określić w jakiej kolejności mają zostać wyświetlone elementy kolekcji. + + + Gallery + Galeria + + + Select a gallery to render images. + Proszę wybrać galerię do wyświetlenia obrazków. + + + Document + Dokument + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + Jeśli chciałbyś dołączyć dokument do powiadomienia, wybierz go i użyj prostego tokenu w centrum powiadomień. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + Zmiana statusu zamówienia + + + This notification type can be sent when the order status changes. + Ten typ powiadomienia może zostać wysłany podczas zmiany statusu zamówienia. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_page.php b/system/modules/isotope/languages/pl/tl_page.php deleted file mode 100644 index b2aca28aa7..0000000000 --- a/system/modules/isotope/languages/pl/tl_page.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + Store Configuration + Konfiguracja sklepu + + + Select a store configuration for this page structure. + Wybierz konfigurację sklepu dla tej struktury stron. + + + Use reader page + Skonfiguruj stronę czytnika dla tej kategorii Isotope + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + Każda strona zawierająca listę produktów musi mieć przypisaną stronę z czytnikiem (dziedziczne). + + + Reader page + Wybierz stronę czytnika + + + Select a page for your page reader. + Wybierz stronę docelową, do której będą prowadzić produkty z tej stronie. + + + Store ID + ID sklepu + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Używaj różnych ID sklepów do grupowania zestawów konfiguracji. Koszyk użytkownika i adres będzie współdzielony w obrębie tego samego ID sklepu. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_settings.php b/system/modules/isotope/languages/pl/tl_settings.php deleted file mode 100644 index 22e16ec056..0000000000 --- a/system/modules/isotope/languages/pl/tl_settings.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Guest cart timeout + Okres ważności koszyka gości + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + Wprowadź maksymalny czas wartości koszyka gości w sekundach (30 dni = 2592000 sekund). + + + Order timeout + Limit czasu zamówienia + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + Wprowadź jak długo zamówienie zostanie w bazie danych, jeśli złożenie zamówienia nie zakończyło się sukcesem (7 dni = 604800 sekund). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_user.php b/system/modules/isotope/languages/pl/tl_user.php deleted file mode 100644 index 11277fc6d9..0000000000 --- a/system/modules/isotope/languages/pl/tl_user.php +++ /dev/null @@ -1,48 +0,0 @@ - + + + + Isotope modules + Moduły Isotope + + + Select which store configuration modules user of this group can access. + Wybierz dla których konfiguracji sklepów ten użytkownik ma dostęp. + + + Allowed product types + Typy produktów + + + Here you can grant access to one or more product types. + Użytkownik może zobaczyć i edytować tylko produkty i typy produktów, które udostępnisz. + + + Product type permissions + Uprawnienia dla typów produktów + + + Here you can define the product type permissions. + Tutaj możesz określić uprawnienia dla typów produktów. + + + Allowed payment modules + Dozwolone moduły płatności + + + Here you can grant access to one or more payment modules. + Tutaj możesz nadać dostęp do jednego lub więcej modułów płatności. + + + Payment module permissions + Uprawnienia dla modułów płatności + + + Here you can define the payment module permissions. + Tutaj możesz określić uprawnienia dla modułów płatności. + + + Allowed shipping modules + Dozwolone moduły dostawy + + + Here you can grant access to one or more shipping modules. + Tutaj możesz nadać dostęp do jednego lub więcej modułów dostawy. + + + Shipping module permissions + Uprawnienia dla modułów dostawy + + + Here you can define the shipping module permissions. + Tutaj możesz określić uprawnienia dla modułów dostawy. + + + Allowed tax classes + Dozwolone klasy podatków + + + Here you can grant access to one or more tax classes. + Tutaj możesz nadać dostęp do jednego lub więcej klas podatków. + + + Tax class permissions + Uprawnienia dla klas podatków + + + Here you can define the tax class permissions. + Tutaj możesz określić uprawnienia dla klas podatków. + + + Allowed tax rates + Dozwolone stawki podatkowe + + + Here you can grant access to one or more tax rates. + Tutaj możesz nadać dostęp do jednego lub więcej stawek podatków. + + + Tax rate permissions + Uprawnienia dla stawek podatkowych + + + Here you can define the tax rate permissions. + Tutaj możesz określić uprawnienia dla stawek produktów. + + + Allowed store configurations + Konfiguracje sklepu + + + Here you can grant access to one or more store configurations. + Użytkownik może widzieć zamówienia z tych konfiguracji sklepów. + + + Store configuration permissions + Uprawnienia dla konfiguracji sklepów + + + Her you can define the store configuration permissions. + Tutaj możesz określić uprawnienia dla konfiguracji sklepów. + + + Allowed product groups + Dozwolone grupy produktów + + + Limit access to product groups for this user group. Gets inherited. + Ogranicz dostęp do grup produktów dla tej grupy użytkowników. Wartość dziedziczona. + + + Product group permissions + Uprawnienia dla grup produktów + + + Here you can define the product group permissions. + Tutaj możesz określić uprawnienia dla grup produktów. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + Dostęp do głównego węzła + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tl_user_group.php b/system/modules/isotope/languages/pl/tl_user_group.php deleted file mode 100644 index 44b80c8945..0000000000 --- a/system/modules/isotope/languages/pl/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pl/tokens.php b/system/modules/isotope/languages/pl/tokens.php deleted file mode 100644 index bdd3689ba0..0000000000 --- a/system/modules/isotope/languages/pl/tokens.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + The order's unique ID. + Unikalne ID zamówienia + + + The label of the order's current status. + Etykieta aktualnego statusu zamówienia + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + Etykieta poprzedniego statusu zamówienia. Użyteczne dla rzeczy typu "status zamówienia zmienił się z x na y". + + + The ID of the order's current status. + ID aktualnego statusu zamówienia + + + The ID of the order's previous status. + ID poprzedniego statusu zamówienia + + + The email address of the recipient. + Adres e-mail odbiorcy. + + + The ID of the order. + ID zamówienia + + + The number of items (quantities summed up) in the order. + Ilość przedmiotów (ilości zsumowane) w zamówieniu. + + + The number of individual products in the order. + Ilość indywidualnych produktów z zamówieniu. + + + The order's subtotal. + Podsuma zamówienia. + + + The order's total. + Suma zamówienia. + + + The order document number. + Numer dokumentu zamówienia. + + + Order/Cart as text. + Zamówienie/Koszyk jako tekst. + + + Order/Cart as HTML. + Zamówienie/Koszyk jako HTML. + + + The document that should be attached (e.g. an invoice). + Dokument, który powinien być załączony (np. faktura). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + Wszystkie pola adresu rozliczeniowego. + + + Formatted shipping address. + + + All the shipping address model fields. + Wszystkie pola adresu wysyłki. + + + All the order condition form fields. + Wszystkie pola formularza warunków zakupu. + + + Payment method ID. + ID metody płatności. + + + Payment method label. + Etykieta metody płatności. + + + Payment method note. + Notatka metody płatności. + + + Shipping method ID. + ID metody wysyłki. + + + Shipping method label. + Etykieta metody wysyłki. + + + Shipping method note. + Notatka metody wysyłki. + + + All the store configuration fields. + Wszystkie pola konfiguracji sklepu. + + + All the member fields if it was a member checkout. + Wszystkie pola użytkownika, który złożył zamówienie. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/default.php b/system/modules/isotope/languages/pt_BR/default.php deleted file mode 100644 index 5de78aa3fb..0000000000 --- a/system/modules/isotope/languages/pt_BR/default.php +++ /dev/null @@ -1,211 +0,0 @@ -De %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Ver Detalhes'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Produtos Por Página'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Palavras-chaves'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Enviar'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Limpar Filtros'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Atualizar'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Adicionar ao Carrinho'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Dispor Por:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Nenhum produto foi encontrado.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Voltar'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Continuar'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Pedido'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Não há categorias associadas a este produto.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Enviar'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Remover'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Não há itens no seu carrinho.'; -$GLOBALS['TL_LANG']['MSC']['addedToCart'] = 'O produto selecionado foi adicionado ao seu carrinho.'; -$GLOBALS['TL_LANG']['MSC']['cartMerged'] = 'Os produtos da sua última visita foram readicionados. Por favor revise os itens do seu carrinho.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Remove %s do seu carrinho'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Subtotal do Pedido:'; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Envio'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Pagamento'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Total do Pedido:'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'Não há opções de pagamento no momento'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'Não há opções de envio no momento.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Não foram encontrados emails de pedidos.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Nenhum pedido foi encontrado.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s de downloads restantes'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Carrinho'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Finalizar Pedido'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Continuar comprando'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Atualizar Carrinho'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Status do Pedido: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Retornar ao passo "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Criar Novo Endereço'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Utilizar endereço de cobrança'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Utilizar endereço do cliente'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Endereço de entrega diferente'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Editar'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Apagar'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Você realmente quer apagar este endereço? Esta operação não pode ser desfeita.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Fatura'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Status'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Data do Pedido'; -$GLOBALS['TL_LANG']['MSC']['iso_order_document_number'] = 'Número do Pedido'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Quantidade'; -$GLOBALS['TL_LANG']['MSC']['iso_order_total'] = 'Total'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'do menor para o maior'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'do maior para o menor'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'de A para Z'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'de Z para A'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'do mais recente para o mais antigo'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'do mais antigo para o mais recente'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Processando pagamento'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Pagar agora'; -$GLOBALS['TL_LANG']['MSC']['paypalTransactionOnline'] = 'Clique aqui para ver esta transação Paypal online'; -$GLOBALS['TL_LANG']['MSC']['productSingle'] = '1 Produto'; -$GLOBALS['TL_LANG']['MSC']['productMultiple'] = '%s Produtos'; -$GLOBALS['TL_LANG']['MSC']['shipping_address_message'] = 'Preencha seus dados de entrega ou selecione um endereço existente.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_message'] = 'Preencha seus dados de cobrança ou selecione um endereço existente.'; -$GLOBALS['TL_LANG']['MSC']['billing_address_guest_message'] = 'Preencha seus dados de cobrança'; -$GLOBALS['TL_LANG']['MSC']['customer_address_message'] = 'Preencha seus dados de cliente ou selecione um endereço existente.'; -$GLOBALS['TL_LANG']['MSC']['customer_address_guest_message'] = 'Preencha seus dados de cliente'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_message'] = 'Selecione a forma de entrega.'; -$GLOBALS['TL_LANG']['MSC']['shipping_method_missing'] = 'Por favor seleciona a forma de entrega.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_message'] = 'Preencha seus dados de pagamento.'; -$GLOBALS['TL_LANG']['MSC']['payment_method_missing'] = 'Por favor selecione uma forma de pagamento.'; -$GLOBALS['TL_LANG']['MSC']['order_review_message'] = 'Revise e confirme os detalhes do seu pedido.'; -$GLOBALS['TL_LANG']['MSC']['checkout_address'] = 'Endereço'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Envio'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Pagamento'; -$GLOBALS['TL_LANG']['MSC']['checkout_review'] = 'Revisão'; -$GLOBALS['TL_LANG']['MSC']['billing_address'] = 'Enderenço de Cobrança'; -$GLOBALS['TL_LANG']['MSC']['shipping_address'] = 'Endereço de Entrega'; -$GLOBALS['TL_LANG']['MSC']['billing_shipping_address'] = 'Endereço de Cobrança e Entrega'; -$GLOBALS['TL_LANG']['MSC']['customer_address'] = 'Endereço do Cliente'; -$GLOBALS['TL_LANG']['MSC']['shipping_method'] = 'Forma de Entrega'; -$GLOBALS['TL_LANG']['MSC']['payment_method'] = 'Forma de Pagamento'; -$GLOBALS['TL_LANG']['MSC']['order_review'] = 'Revisão do Pedido'; -$GLOBALS['TL_LANG']['MSC']['changeCheckoutInfo'] = 'Alterar'; -$GLOBALS['TL_LANG']['MSC']['cc_num'] = 'Número do Cartão de crédito'; -$GLOBALS['TL_LANG']['MSC']['cc_type'] = 'Tipo do Cartão de crédito'; -$GLOBALS['TL_LANG']['MSC']['cc_ccv'] = 'Número de verificação CCV (número de 3 ou 4 dígitos)'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_month'] = 'Mês de Expiração'; -$GLOBALS['TL_LANG']['MSC']['cc_exp_year'] = 'Ano de Expiração'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNotFound'] = 'Módulo de pagamento não foi encontrado!'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNotFound'] = 'Módulo de entrega não foi encontrado!'; -$GLOBALS['TL_LANG']['MSC']['backendPaymentNoInfo'] = 'Este módulo de pagamento não fornece informação adicional.'; -$GLOBALS['TL_LANG']['MSC']['backendShippingNoInfo'] = 'Este módulo de entrega não fornece informação adicional.'; -$GLOBALS['TL_LANG']['MSC']['useDefault'] = 'Usar valor padrão'; -$GLOBALS['TL_LANG']['MSC']['activeStep'] = 'passo ativo:'; -$GLOBALS['TL_LANG']['MSC']['productcacheLoading'] = 'Carregando produtos...'; -$GLOBALS['TL_LANG']['MSC']['productcacheNoscript'] = 'Seu navegador não suporta JavaScript. Por favor clique aquipara carregar a lista de produtos.'; -$GLOBALS['TL_LANG']['MSC']['noFilesInFolder'] = 'Não há arquivos nesta pasta'; -$GLOBALS['TL_LANG']['MSC']['assetImportConfirmation'] = 'Arquivo importado %s para o produto "%s"'; -$GLOBALS['TL_LANG']['MSC']['assetImportNoFilesFound'] = 'A pasta não continha nenhum arquivo para ser importado.'; -$GLOBALS['TL_LANG']['MSC']['loadingProductData'] = 'Carregando dados do produto ...'; -$GLOBALS['TL_LANG']['MSC']['templatesConfig'] = 'Config da Loja "%s"'; -$GLOBALS['TL_LANG']['MSC']['splittedTaxRate'] = 'Dividido'; -$GLOBALS['TL_LANG']['MSC']['newOrders'] = 'Você tem %s pedido(s) com status "%s"'; -$GLOBALS['TL_LANG']['MSC']['checkoutStep'] = 'Passo %s de %s (%s) -'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['minutes'] = 'Minutos'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['hours'] = 'Horas'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['days'] = 'Dias'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['weeks'] = 'Semanas'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['months'] = 'Meses'; -$GLOBALS['TL_LANG']['MSC']['timePeriod']['years'] = 'Anos'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][0] = 'Bem-vindo ao Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][1] = 'Isotope é a solução número 1 de eCommerce em código aberto para Contao.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][2] = 'Esta é a página onde a maioria da configuração acontecerá. Você deveria começar a partir do final desta página e subir até o início da direita para a esquerda.'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][3] = 'Visite o website oficial do Isotope eCommerce para as últimas novidades, manuais de configuração e nossas campanhas de arrecadação. Muito obrigado por considerar dar algo de volta!'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][4] = 'A Equipe do Isotope eCommerce'; -$GLOBALS['TL_LANG']['MSC']['isotopeIntroduction'][5] = 'Isotope é um produto de %s em associação com a Equipe do Isotope eCommerce.'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping']['group'][1] = 'Com esta forma, você pode agrupar várias formas de entrega em uma só forma e calcular o preço baseado nelas.'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_document']['standard'][0] = 'Padrão'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][0] = 'Galeria Padrão'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['standard'][1] = '

Utiliza o lightbox/mediabox para imagens em tamanho integral. Certifique-se de selecionar o tema "moo_" apropriado na sua configuração de layout de página.

Você pode fornecer um atributo "rel" ao destino do link usando um pipe (p. ex. "tl_files/video.mov|lightbox[400 300]"). Se nenhum atributo "rel" for informado, o link será aberto em uma nova janela.

'; -$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery']['inline'][1] = 'Clicar em uma imagem da galeria substituirá a imagem principal.'; -$GLOBALS['TL_LANG']['CCT']['mc'] = 'MasterCard'; -$GLOBALS['TL_LANG']['CCT']['visa'] = 'Visa'; -$GLOBALS['TL_LANG']['CCT']['amex'] = 'American Express'; -$GLOBALS['TL_LANG']['CCT']['discover'] = 'Discover'; -$GLOBALS['TL_LANG']['CCT']['jcb'] = 'JCB'; -$GLOBALS['TL_LANG']['CCT']['diners'] = 'Diner\'s Club'; -$GLOBALS['TL_LANG']['CCT']['enroute'] = 'EnRoute'; -$GLOBALS['TL_LANG']['CCT']['carte_blanche'] = 'Carte Blanche'; -$GLOBALS['TL_LANG']['CCT']['jal'] = 'JAL'; -$GLOBALS['TL_LANG']['CCT']['maestro'] = 'Maestro GB'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; -$GLOBALS['TL_LANG']['CCT']['solo'] = 'Solo'; -$GLOBALS['TL_LANG']['CCT']['visa_electron'] = 'Visa Electron'; -$GLOBALS['TL_LANG']['CCT']['dankort'] = 'Dankort'; -$GLOBALS['TL_LANG']['CCT']['laser'] = 'Laser'; -$GLOBALS['TL_LANG']['CCT']['carte_bleue'] = 'Carte Bleue'; -$GLOBALS['TL_LANG']['CCT']['carta_si'] = 'Carta Si'; -$GLOBALS['TL_LANG']['CCT']['maestro_intl'] = 'Maestro Internacional'; -$GLOBALS['TL_LANG']['CCT']['ge_money_uk'] = 'GE Money UK'; -$GLOBALS['TL_LANG']['ATTR']['text'][0] = 'Campo de texto'; -$GLOBALS['TL_LANG']['ATTR']['text'][1] = 'Um campo de texto de uma só linha para texto pequeno ou médio.'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][0] = 'Área de texto'; -$GLOBALS['TL_LANG']['ATTR']['textarea'][1] = 'Um campo de texto de múltiplas linhas para texto médio ou longo.'; -$GLOBALS['TL_LANG']['ATTR']['select'][0] = 'Selecionar menu'; -$GLOBALS['TL_LANG']['ATTR']['select'][1] = 'Um menu drop-down de uma ou múltiplas linhas.
Este tipo de campo é adequado para variantes de produto.'; -$GLOBALS['TL_LANG']['ATTR']['radio'][0] = 'Menu de botão de opção'; -$GLOBALS['TL_LANG']['ATTR']['radio'][1] = 'Uma lista de múltiplas opções das quais uma delas pode ser selecionada.
Este tipo de campo é adequado para variantes do produto.'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][0] = 'Menu caixa de seleção'; -$GLOBALS['TL_LANG']['ATTR']['checkbox'][1] = 'Uma lista de múltiplas opções das quais qualquer uma das opções podem ser selecionadas.'; -$GLOBALS['TL_LANG']['ATTR']['mediaManager'][0] = 'Gerenciador de Mídia'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][0] = 'Downloads'; -$GLOBALS['TL_LANG']['ATTR']['downloads'][1] = 'Baixar arquivos do produto, p. ex. manuais, dados técnicos etc.'; -$GLOBALS['TL_LANG']['ATTR']['upload'][0] = 'Enviar arquivo'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['DKK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['EUR'] = '€'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['GBP'] = '£'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['JPY'] = '¥'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['NOK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['SEK'] = 'Kr.'; -$GLOBALS['TL_LANG']['CUR_SYMBOL']['USD'] = '$'; diff --git a/system/modules/isotope/languages/pt_BR/default.xlf b/system/modules/isotope/languages/pt_BR/default.xlf new file mode 100644 index 0000000000..691b88e3df --- /dev/null +++ b/system/modules/isotope/languages/pt_BR/default.xlf @@ -0,0 +1,1514 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Nome "%s" está reservado para uso do sistema. Por favor escolha um nome diferente. + + + No store configuration available + Nenhuma configuração de loja disponível + + + Please create a default store configuration. + Por favor crie uma configuração padrão de loja + + + You have not yet placed any orders. + Você ainda não realizou nenhum pedido. + + + The requested order was not found. + O pedido solicitado não foi encontrado. + + + You must be logged in to checkout. + Você precisa fazer login para finalizar o pedido. + + + A variant with this attributes is already available. Please select another combination. + Uma variante com esses atributos já está disponível. Por favor selecione outra combinação. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Por favor digite números inteiros ou decimais assinalados com + ou - e opcionalmente com uma porcentagem. + + + Please enter whole numbers or decimals optionally with a percentage. + Por favor digite números inteiros ou decimais opcionalmente com uma porcentagem. + + + Checkout failed. Please try again or choose another payment method. + Ocorreu um erro na finalização do pedido. Por favor tente de novo ou escolha outra forma de pagamento. + + + You have no address book entries. + Você não tem nenhum cadastro no catálogo de endereço. + + + The minimum order amount is %s. Please add more products before checkout. + O pedido mínimo é %s. Por favor adicione mais produtos antes de finalizar o pedido. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + A quantidade mínima para "%s" é %s itens. Por favor verifique seu carrinho. + + + This image has already been assigned to the fallback language. + Esta imagem já foi atribuída ao idioma reservado. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + Selecione um campo de validação apropriado (data, hora, data e hora) para habilitar o selecionador de data. + + + The selected folder is empty. + A pasta selecionada está vazia. + + + User checkout not allowed + Pedido do usuário não permitido + + + This product is no longer available. + Este produto não está mais disponível. + + + There are errors in your products. + Existem erros nos seus produtos. + + + Please resolve the errors in your cart before checking out. + Por favor resolva os erros no seu carrinho antes de finalizar o pedido. + + + You cannot configure the same attribute multiple times. + + + Only show this group + Mostrar somente este grupo + + + Groups + Grupos + + + Pages + Páginas + + + Back to the group picker + Voltar ao selecionador de grupo + + + Show all groups + Mostrar todos os grupos + + + There are no variants for this product. + Não há variações para este produto. + + + Duplicate Fallback + Duplicar Recorrente + + + Order no %s / %s + Pedido no %s / %s + + + Your payment is being processed. Please be patient... + Seu pagamento está sendo processado. Por favor aguarde... + + + No files uploaded. + Nenhum arquivo enviado. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + + + Upload files + + + Processing dropped files... + + + Some records could not be deleted. + Alguns registros não puderam ser apagados. + + + Some records could not be deleted and have been unpublished instead. + Alguns registros não puderam ser apagados e ainda não foram publicados. + + + Quantity + Quantidade + + + Tax-free + + + search products + pesquisar produtos + + + Your downloadable products + Seus produtos para baixar + + + <span class="from">From</span> %s + <span class="from">De</span> %s + + + View Details + Ver Detalhes + + + Reorder + + + Products Per Page + Produtos Por Página + + + Keywords + Palavras-chaves + + + Submit + Enviar + + + Clear Filters + Limpar Filtros + + + Update + Atualizar + + + Add To Cart + Adicionar ao Carrinho + + + Add All To Cart + + + Update Cart + Atualizar Carrinho + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Dispor Por: + + + No products have been found. + Nenhum produto foi encontrado. + + + Back + Voltar + + + Continue + Continuar + + + Order + Pedido + + + No categories are associated with this product. + Não há categorias associadas a este produto. + + + Submit + Enviar + + + There are no items in your favorites list. + + + There are no items in your cart. + Não há itens no seu carrinho. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + O produto selecionado foi adicionado ao seu carrinho. + + + The products from your last visit have been readded. Please review your shopping cart items. + Os produtos da sua última visita foram readicionados. Por favor revise os itens do seu carrinho. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Editar + + + Remove + Remover + + + Remove %s from your cart + Remove %s do seu carrinho + + + Order Subtotal: + Subtotal do Pedido: + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Total do Pedido: + + + No payment options are currently available + Não há opções de pagamento no momento + + + No shipping options are currently available. + Não há opções de envio no momento. + + + No orders emails found. + Não foram encontrados emails de pedidos. + + + No orders found. + Nenhum pedido foi encontrado. + + + <br />%s downloads remaining + <br />%s de downloads restantes + + + Shopping Cart + Carrinho + + + Proceed to Checkout + Finalizar Pedido + + + Continue shopping + Continuar comprando + + + Update Cart + Atualizar Carrinho + + + Order Status: %s + Status do Pedido: %s + + + Go back to step "%s" + Retornar ao passo "%s" + + + Create New Address + Criar Novo Endereço + + + Use billing address + Utilizar endereço de cobrança + + + Use customer address + Utilizar endereço do cliente + + + Different shipping address + Endereço de entrega diferente + + + Edit + Editar + + + Delete + Apagar + + + Do you really want to delete this address? This cannot be undone. + Você realmente quer apagar este endereço? Esta operação não pode ser desfeita. + + + Invoice + Fatura + + + Status + Status + + + Order date + Data do Pedido + + + Order number + Número do Pedido + + + Description + + + Quantity + Quantidade + + + Price + + + Total + Total + + + lo to hi + do menor para o maior + + + hi to lo + do maior para o menor + + + A to Z + de A para Z + + + Z to A + de Z para A + + + earlier to later + do mais recente para o mais antigo + + + later to earlier + do mais antigo para o mais recente + + + Processing payment + Processando pagamento + + + You will be redirected to the payment gateway website. + + + Pay now + Pagar agora + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + Clique aqui para ver esta transação Paypal online + + + 1 Product + 1 Produto + + + %s Products + %s Produtos + + + Enter your shipping information or select an existing address. + Preencha seus dados de entrega ou selecione um endereço existente. + + + Enter your billing information or select an existing address. + Preencha seus dados de cobrança ou selecione um endereço existente. + + + Enter your billing information + Preencha seus dados de cobrança + + + Enter your customer information or select an existing address. + Preencha seus dados de cliente ou selecione um endereço existente. + + + Enter your customer information + Preencha seus dados de cliente + + + Select a shipping method. + Selecione a forma de entrega. + + + Please select a shipping method. + Por favor seleciona a forma de entrega. + + + Enter your payment information. + Preencha seus dados de pagamento. + + + Please select a payment method. + Por favor selecione uma forma de pagamento. + + + Review and confirm your order details. + Revise e confirme os detalhes do seu pedido. + + + Address + Endereço + + + Shipping + Envio + + + Payment + Pagamento + + + Review + Revisão + + + Billing Address + Enderenço de Cobrança + + + Shipping Address + Endereço de Entrega + + + Billing & Shipping Address + Endereço de Cobrança e Entrega + + + Customer Address + Endereço do Cliente + + + Shipping Method + Forma de Entrega + + + Payment Method + Forma de Pagamento + + + Order Review + Revisão do Pedido + + + Change + Alterar + + + Credit card number + Número do Cartão de crédito + + + Credit card type + Tipo do Cartão de crédito + + + CCV number (3 or 4 digit code) + Número de verificação CCV (número de 3 ou 4 dígitos) + + + Expiration month + Mês de Expiração + + + Expiration year + Ano de Expiração + + + Payment module not found! + Módulo de pagamento não foi encontrado! + + + Shipping module not found! + Módulo de entrega não foi encontrado! + + + This payment module does not provide additional information. + Este módulo de pagamento não fornece informação adicional. + + + This shipping module does not provide additional information. + Este módulo de entrega não fornece informação adicional. + + + Use default value + Usar valor padrão + + + active step: + passo ativo: + + + Loading products... + Carregando produtos... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + Seu navegador não suporta JavaScript. Por favor <a href="%s">clique aqui</a>para carregar a lista de produtos. + + + No files in this folder + Não há arquivos nesta pasta + + + Imported file %s for product "%s" + Arquivo importado %s para o produto "%s" + + + The folder did not contain any files to be imported. + A pasta não continha nenhum arquivo para ser importado. + + + Loading product data … + Carregando dados do produto ... + + + Store Config "%s" + Config da Loja "%s" + + + Splitted + Dividido + + + You have %s order(s) with status "%s" + Você tem %s pedido(s) com status "%s" + + + Step %s of %s (%s) - + Passo %s de %s (%s) - + + + Minutes + Minutos + + + Hours + Horas + + + Days + Dias + + + Weeks + Semanas + + + Months + Meses + + + Years + Anos + + + Introduction + + + Welcome to Isotope eCommerce + Bem-vindo ao Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + Isotope é a solução número 1 de eCommerce em código aberto para Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + Esta é a página onde a maioria da configuração acontecerá. <strong>Você deveria começar a partir do final desta página e subir até o início da direita para a esquerda.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + A Equipe do Isotope eCommerce + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + Isotope é um produto de %s em associação com <a href="http://isotopeecommerce.org/de/team.html" target="_blank">a Equipe do Isotope eCommerce</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + Com esta forma, você pode agrupar várias formas de entrega em uma só forma e calcular o preço baseado nelas. + + + Cash + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + Padrão + + + Default gallery + Galeria Padrão + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + <p>Utiliza o lightbox/mediabox para imagens em tamanho integral. Certifique-se de selecionar o tema "moo_" apropriado na sua configuração de layout de página.</p><p>Você pode fornecer um atributo "rel" ao destino do link usando um pipe (p. ex. "tl_files/video.mov|lightbox[400 300]"). Se nenhum atributo "rel" for informado, o link será aberto em uma nova janela.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + Clicar em uma imagem da galeria substituirá a imagem principal. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Discover + + + JCB + JCB + + + Diner's Club + Diner's Club + + + EnRoute + EnRoute + + + Carte Blanche + Carte Blanche + + + JAL + JAL + + + Maestro UK + Maestro GB + + + Delta + Delta + + + Solo + Solo + + + Visa Electron + Visa Electron + + + Dankort + Dankort + + + Laser + Laser + + + Carte Bleue + Carte Bleue + + + Carta Si + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + Maestro Internacional + + + GE Money UK + GE Money UK + + + Text field + Campo de texto + + + A single-line input field for a short or medium text. + Um campo de texto de uma só linha para texto pequeno ou médio. + + + Textarea + Área de texto + + + A multi-line input field for a medium or long text. + Um campo de texto de múltiplas linhas para texto médio ou longo. + + + Select menu + Selecionar menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + Um menu drop-down de uma ou múltiplas linhas.<br /><i>Este tipo de campo é adequado para variantes de produto.</i> + + + Radio button menu + Menu de botão de opção + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + Uma lista de múltiplas opções das quais uma delas pode ser selecionada.<br /><i>Este tipo de campo é adequado para variantes do produto.</i> + + + Checkbox menu + Menu caixa de seleção + + + A list of multiple options from which any can be selected. + Uma lista de múltiplas opções das quais qualquer uma das opções podem ser selecionadas. + + + Media Manager + Gerenciador de Mídia + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + Downloads + + + Download files from the product, e.g. manuals, data sheets etc. + Baixar arquivos do produto, p. ex. manuais, dados técnicos etc. + + + File upload + Enviar arquivo + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/exception.php b/system/modules/isotope/languages/pt_BR/exception.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/explain.php b/system/modules/isotope/languages/pt_BR/explain.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/explain.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/iso_upgrade.php b/system/modules/isotope/languages/pt_BR/iso_upgrade.php deleted file mode 100644 index e9d95122be..0000000000 --- a/system/modules/isotope/languages/pt_BR/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Atualizar + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/modules.php b/system/modules/isotope/languages/pt_BR/modules.php deleted file mode 100644 index bb17028779..0000000000 --- a/system/modules/isotope/languages/pt_BR/modules.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + + + Manage products for your Isotope eCommerce shop + + + Orders + + + See and manage orders for your shop + + + Store configuration + + + Setup and configure Isotope eCommerce to your needs + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + + + Define individual filters for Isotope such as category trees and product attribute filters. + + + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + + + Product Variant List + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + + + Product Reader + + + Product reader module. This is used to display product details. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Carrinho + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + + + Checkout + + + Allow store customers to complete their transactions. + + + Address Book + + + Allow customers to manage their address book. + + + Order History + + + Order lister that allows customers to view their order history + + + Order Details + + + Order reader that allows customers to view order history details + + + Store Config Switcher + + + Switch between store configuration to change currency and other settings. + + + Related products + + + List products related to the current one. + + + Messages + + + Displays all Isotope messages if they have not been displayed elsewhere. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + + + Products + + + Attributes + + + Manage and create product attributes such as size, color, etc. + + + Product types + + + Manage and create product types from sets of attributes. + + + Related categories + + + Define categories for product relations. + + + Galleries + + + Define how you want the images in your product to be rendered. + + + Base prices + + + Define base price. + + + Checkout Flow + + + Shipping methods + + + Set up shipping methods. + + + Payment methods + + + Set up payment methods. + + + Tax classes + + + Set up Tax classes, which contain sets of Tax rates. + + + Tax rates + + + Set up tax rates based on things like shipping/billing location and order total. + + + General settings + + + Store configurations + + + Configure general settings for this store. + + + Order status + + + Define order status. + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/subdivisions.php b/system/modules/isotope/languages/pt_BR/subdivisions.php deleted file mode 100644 index 1e053f6551..0000000000 --- a/system/modules/isotope/languages/pt_BR/subdivisions.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + + diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_address.php b/system/modules/isotope/languages/pt_BR/tl_iso_address.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_address.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Store ID + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + + + Please enter a custom label for this address. + + + Gender + + + Please choose the gender. + + + Salutation + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + + + First name + + + Please enter the first name. + + + Last name + + + Please enter the last name. + + + Date of birth + + + Please enter the date of birth. + + + Company + + + You can enter a company name here. + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. + + + Phone number + + + Please enter the phone number. + + + E-mail address + + + Please enter a valid e-mail address. + + + Default billing address + + + Is this your default billing address? + + + Default shipping address + + + Is this your default shipping address? + + + Store + + + Personal data + + + Address details + + + Contact details + + + Default address + + + Personal data + + + Address details + + + Contact details + + + Default address + + + New address + + + Create a new address + + + Edit address + + + Edit address ID %s + + + Duplicate address + + + Duplicate address ID %s + + + Delete address + + + Delete address ID %s + + + Address details + + + Show details of address ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_attribute.php b/system/modules/isotope/languages/pt_BR/tl_iso_attribute.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_attribute.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Please enter a name for this attribute. + + + Internal name + + + Internal name is the database field name and must be unique. + + + Type + + + Please select a type for this attribute. + + + Field Group + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + + + Please select if this value defined by the customer (frontend). + + + Description + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + + + Default + + + Group + + + Options + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + + + The field must be filled when editing a product. + + + Multiple selection + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + + + Checks whether the input is a valid price. + + + Discount + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + + + Copy attribute ID %s. + + + Delete attribute + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + + + Show details for attribute ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + + + Description + + + Options + + + Attribute configuration + + + Search & Filtering Settings + + + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_attribute_option.php b/system/modules/isotope/languages/pt_BR/tl_iso_attribute_option.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_attribute_option.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Type + + + Select a type for this label. + + + Option + + + Group + + + Default + + + Check here if this should be the default option. + + + Label + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_baseprice.php b/system/modules/isotope/languages/pt_BR/tl_iso_baseprice.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_baseprice.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_config.php b/system/modules/isotope/languages/pt_BR/tl_iso_config.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_config.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Configuration Name + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + + + Please enter the first name (if applicable). + + + Last name + + + Please enter the last name (if applicable). + + + Company + + + You can enter a company name here (if applicable). + + + VAT No. + + + Please enter a VAT number. + + + Street + + + Please enter the street name and the street number. + + + Street 2 + + + Enter a second street info if there's any. + + + Street 3 + + + Enter a third street info if there's any. + + + Postal code + + + Please enter the postal code. + + + City + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + + + Please enter the phone number. + + + Shipping email address + + + Please enter a valid e-mail address. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + + + Address configuration + + + Configuration + + + Checkout + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + + + Images + + + URL settings + + + Products + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_document.php b/system/modules/isotope/languages/pt_BR/tl_iso_document.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_document.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_download.php b/system/modules/isotope/languages/pt_BR/tl_iso_download.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_download.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Attachement + + + Select the file or folder content you want to sell. + + + Downloads allowed + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + + + Add a new download to this product + + + Edit download + + + Edit download ID %s + + + Duplicate download + + + Duplicate download ID %s + + + Move download + + + Move download ID %s + + + Delete download + + + Delete download ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + + + Show details of download ID %s + + + Edit product + + + Edit this product + + + Paste at the top + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + + + Limits + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_gallery.php b/system/modules/isotope/languages/pt_BR/tl_iso_gallery.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_gallery.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Enter a name for this gallery. + + + Type + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_group.php b/system/modules/isotope/languages/pt_BR/tl_iso_group.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_group.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_integrity.php b/system/modules/isotope/languages/pt_BR/tl_iso_integrity.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_label.php b/system/modules/isotope/languages/pt_BR/tl_iso_label.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_label.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Language + + + Please select a language. + + + Label + + + Enter the source label. + + + Replacement + + + Enter the replacement in the specified language. + + + New label + + + Create a new label + + + Edit label + + + Edit label ID %s + + + Duplicate label + + + Duplicate label ID %s + + + Delete label + + + Delete label ID %s + + + Label details + + + Show details of label ID %s + + + Label translation + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_orderstatus.php b/system/modules/isotope/languages/pt_BR/tl_iso_orderstatus.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_orderstatus.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_payment.php b/system/modules/isotope/languages/pt_BR/tl_iso_payment.php deleted file mode 100644 index 97706934a8..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_payment.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Payment Method Name + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this payment method to certain shop configurations. + + + Price + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + Fatura + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + + + General configuration + + + Payment gateway configuration + + + Price + + + Template + + + Expert settings + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_product.php b/system/modules/isotope/languages/pt_BR/tl_iso_product.php deleted file mode 100644 index b7d4f32ae1..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_product.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Product ID + + + Categories + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + + + Product type + + + Select your product type. Product types are defined in the store configuration. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + + + Please enter the name of this product. + + + SKU + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + + + Teaser + + + Please enter the teaser. + + + Description + + + Please enter the product description. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + + + Check if item is not a shipped item (such as downloadable products). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + + + Click here to show this product on your website. + + + Start date + + + Do not show this product before the date specified. + + + Stop date + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + + + Please choose the folder where product assets are located. + + + Preview + + + Alternate text + + + Link target + + + Description + + + Translate + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + + + Show product variants + + + New product + + + Create new product + + + Add variant + + + Add new variant to a given product + + + Edit product + + + Edit product ID %s + + + Copy product + + + Copy product ID %s + + + Move product + + + Move product ID %s + + + Delete product + + + Delete product ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + + + Show details of product ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + + + Import images and other media from a folder + + + Manage prices + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + + + Generate variants for product ID %s + + + Related products + + + Manage related products for product ID %s + + + Downloads + Downloads + + + Edit downloads for product ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + + + General Settings + + + Meta data + + + Pricing Settings + + + Inventory Settings + + + Shipping Settings + + + Product Options Settings + + + Media Management + + + Expert settings + + + Publishing + + + Quantity + Quantidade + + + from %s pcs. + + + Price + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_product_category.php b/system/modules/isotope/languages/pt_BR/tl_iso_product_category.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_product_category.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Move product + + + Move product ID %s + + + Paste at the top + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_product_collection.php b/system/modules/isotope/languages/pt_BR/tl_iso_product_collection.php deleted file mode 100644 index 6cf4de4f17..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_product_collection.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Order ID + + + Member (empty for guests) + + + Unique ID + + + Order status + + + Select the status of this order. + + + Placed + + + Source (Cart ID) + + + Payment date + + + Enter a date when this order has been paid. + + + Shipped date + + + Enter a date when this order has been shipped. + + + Shop configuration + + + Payment method + + + Shipping method + + + Billing address + + + Shipping address + + + Subtotal + + + Subtotal without tax + + + Total + Total + + + Total without tax + + + Currency + + + Language + + + Order notes + + + If you would like to convey information to other backend users, please do so here. + + + Edit order + + + Edit order ID %s + + + Copy order + + + Copy order ID %s + + + Delete order + + + Delete order ID %s + + + Order details + + + Show details of order ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + + + Order details + + + Email data + + + Billing address data + + + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_product_price.php b/system/modules/isotope/languages/pt_BR/tl_iso_product_price.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_product_price.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Price Tiers + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + + + Tax Class + + + Please select a tax class for this price. + + + Store configuration + + + Select a store configuration for this price. + + + Member group + + + Select a member group for this price. + + + Use from + + + Do not use the price on the website before this day. + + + Use until + + + Do not use the price on the website after this day. + + + Add price + + + Add a new price to this product + + + Edit price + + + Edit price ID %s + + + Duplicate price + + + Duplicate price ID %s + + + Delete price + + + Delete price ID %s + + + Price details + + + Show details of price ID %s + + + Quantity (min) + + + Price + + + Price + + + Limitations + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_producttype.php b/system/modules/isotope/languages/pt_BR/tl_iso_producttype.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_producttype.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + + + Check here if this is the default product type. + + + Description + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_related_category.php b/system/modules/isotope/languages/pt_BR/tl_iso_related_category.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_related_category.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Category name + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Name + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_related_product.php b/system/modules/isotope/languages/pt_BR/tl_iso_related_product.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_related_product.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Category + + + Select a category. + + + Products + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + + + Add a new category with products + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Move category + + + Move category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Edit product + + + Edit this product + + + Category + + + Related products + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_shipping.php b/system/modules/isotope/languages/pt_BR/tl_iso_shipping.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_shipping.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Shipping Method Name + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + + + Select a tax class that applies to the shipping price. + + + Label + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + + + Hide the module if a member is logged in. + + + Enabled + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_tax_class.php b/system/modules/isotope/languages/pt_BR/tl_iso_tax_class.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_tax_class.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Name + + + Give this tax class a name that explains what it is used for. + + + Default + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + + + Tax rates + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_tax_rate.php b/system/modules/isotope/languages/pt_BR/tl_iso_tax_rate.php deleted file mode 100644 index 626937cce8..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_iso_tax_rate.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + + + Enter a name for this tax rate. + + + Label + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + Enderenço de Cobrança + + + Shipping Address + Endereço de Entrega + + + Name + + + Rate + + + Location + + + Conditions + + + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_maintenance.php b/system/modules/isotope/languages/pt_BR/tl_maintenance.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_maintenance.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_member.php b/system/modules/isotope/languages/pt_BR/tl_member.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_member.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Address Book + + + Manage the address book for member ID %s. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_module.php b/system/modules/isotope/languages/pt_BR/tl_module.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_module.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Product list template + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + + + Select the store configuration that this module will be used for. + + + Store configurations + + + Select the store configurations that this module will be used for. + + + Payment methods + + + Select one or more payment methods for this checkout module. + + + Shipping methods + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + + + Select a initial sorting direction. + + + Buttons + + + Select the buttons you want to show. + + + Related categories + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + + + Guest checkout only + + + Both allowed + + + All Categories + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_nc_notification.php b/system/modules/isotope/languages/pt_BR/tl_nc_notification.php deleted file mode 100644 index a8100a440c..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_nc_notification.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_page.php b/system/modules/isotope/languages/pt_BR/tl_page.php deleted file mode 100644 index 5c16ccd162..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_page.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Store Configuration + + + Select a store configuration for this page structure. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_settings.php b/system/modules/isotope/languages/pt_BR/tl_settings.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_settings.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Guest cart timeout + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_user.php b/system/modules/isotope/languages/pt_BR/tl_user.php deleted file mode 100644 index b2be4865d6..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_user.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope modules + + + Select which store configuration modules user of this group can access. + + + Allowed product types + + + Here you can grant access to one or more product types. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + + + Here you can grant access to one or more store configurations. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tl_user_group.php b/system/modules/isotope/languages/pt_BR/tl_user_group.php deleted file mode 100644 index 8a43654e3e..0000000000 --- a/system/modules/isotope/languages/pt_BR/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/pt_BR/tokens.php b/system/modules/isotope/languages/pt_BR/tokens.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope/languages/pt_BR/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/default.php b/system/modules/isotope/languages/ru/default.php deleted file mode 100644 index a6842e9772..0000000000 --- a/system/modules/isotope/languages/ru/default.php +++ /dev/null @@ -1,94 +0,0 @@ -От %s'; -$GLOBALS['TL_LANG']['MSC']['detailLabel'] = 'Подробнее'; -$GLOBALS['TL_LANG']['MSC']['perPageLabel'] = 'Товаров на странице'; -$GLOBALS['TL_LANG']['MSC']['searchTermsLabel'] = 'Ключевые слова'; -$GLOBALS['TL_LANG']['MSC']['submitLabel'] = 'Отправить'; -$GLOBALS['TL_LANG']['MSC']['clearFiltersLabel'] = 'Очистить фильтры'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] = 'Обновить'; -$GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'] = 'Добавить в корзину'; -$GLOBALS['TL_LANG']['MSC']['orderByLabel'] = 'Сортировать по:'; -$GLOBALS['TL_LANG']['MSC']['noProducts'] = 'Товаров не найдено.'; -$GLOBALS['TL_LANG']['MSC']['previousStep'] = 'Назад'; -$GLOBALS['TL_LANG']['MSC']['nextStep'] = 'Продолжить'; -$GLOBALS['TL_LANG']['MSC']['confirmOrder'] = 'Заказ'; -$GLOBALS['TL_LANG']['MSC']['noCategoriesAssociated'] = 'Категории не связаны с этим товаром.'; -$GLOBALS['TL_LANG']['MSC']['labelSubmit'] = 'Отправить'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkText'] = 'Удалить'; -$GLOBALS['TL_LANG']['MSC']['noItemsInCart'] = 'Ваша корзина пуста.'; -$GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'] = 'Удалить %s из корзины'; -$GLOBALS['TL_LANG']['MSC']['subTotalLabel'] = 'Предварительный итог заказа:'; -$GLOBALS['TL_LANG']['MSC']['shippingLabel'] = 'Доставка'; -$GLOBALS['TL_LANG']['MSC']['paymentLabel'] = 'Оплата'; -$GLOBALS['TL_LANG']['MSC']['grandTotalLabel'] = 'Итого:'; -$GLOBALS['TL_LANG']['MSC']['noPaymentModules'] = 'Опций оплаты сейчас недоступны.'; -$GLOBALS['TL_LANG']['MSC']['noShippingModules'] = 'Опций доставки сейчас недоступны.'; -$GLOBALS['TL_LANG']['MSC']['noOrderEmails'] = 'Электронные письма заказов не найдены.'; -$GLOBALS['TL_LANG']['MSC']['noOrders'] = 'Заказов не найдено.'; -$GLOBALS['TL_LANG']['MSC']['downloadsRemaining'] = '
%s загрузок остается'; -$GLOBALS['TL_LANG']['MSC']['cartBT'] = 'Корзина'; -$GLOBALS['TL_LANG']['MSC']['checkoutBT'] = 'Оформить заказ'; -$GLOBALS['TL_LANG']['MSC']['continueShoppingBT'] = 'Продолжить покупки'; -$GLOBALS['TL_LANG']['MSC']['updateCartBT'] = 'Обновить корзину'; -$GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'] = 'Состояние заказа: %s'; -$GLOBALS['TL_LANG']['MSC']['checkboutStepBack'] = 'Вернуться к шагу "%s"'; -$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'] = 'Создать новый адрес'; -$GLOBALS['TL_LANG']['MSC']['useBillingAddress'] = 'Использовать адрес для выставления счета'; -$GLOBALS['TL_LANG']['MSC']['useCustomerAddress'] = 'Использовать адрес покупателя'; -$GLOBALS['TL_LANG']['MSC']['differentShippingAddress'] = 'Разные адреса доставки'; -$GLOBALS['TL_LANG']['MSC']['editAddressLabel'] = 'Изменить'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressLabel'] = 'Удалить'; -$GLOBALS['TL_LANG']['MSC']['deleteAddressConfirm'] = 'Вы действительно хотите удалить этот адрес? Действие не может быть отменено.'; -$GLOBALS['TL_LANG']['MSC']['iso_invoice_title'] = 'Счет'; -$GLOBALS['TL_LANG']['MSC']['iso_order_status'] = 'Состояние'; -$GLOBALS['TL_LANG']['MSC']['iso_order_date'] = 'Дата заказа'; -$GLOBALS['TL_LANG']['MSC']['iso_order_description'] = 'Описание'; -$GLOBALS['TL_LANG']['MSC']['iso_order_quantity'] = 'Количество'; -$GLOBALS['TL_LANG']['MSC']['iso_order_price'] = 'Цена'; -$GLOBALS['TL_LANG']['MSC']['low_to_high'] = 'мал. к больш.'; -$GLOBALS['TL_LANG']['MSC']['high_to_low'] = 'больш. к мал.'; -$GLOBALS['TL_LANG']['MSC']['a_to_z'] = 'А до Я'; -$GLOBALS['TL_LANG']['MSC']['z_to_a'] = 'Я до А'; -$GLOBALS['TL_LANG']['MSC']['old_to_new'] = 'от ранее до поздее'; -$GLOBALS['TL_LANG']['MSC']['new_to_old'] = 'от поздее до ранее'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0] = 'Обработка платежа'; -$GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2] = 'Оплатить сейчас'; -$GLOBALS['TL_LANG']['MSC']['checkout_shipping'] = 'Доставка'; -$GLOBALS['TL_LANG']['MSC']['checkout_payment'] = 'Оплата'; -$GLOBALS['TL_LANG']['CTE']['isotope'] = 'Isotope eCommerce'; -$GLOBALS['TL_LANG']['CCT']['delta'] = 'Delta'; diff --git a/system/modules/isotope/languages/ru/default.xlf b/system/modules/isotope/languages/ru/default.xlf new file mode 100644 index 0000000000..bdeb6c1774 --- /dev/null +++ b/system/modules/isotope/languages/ru/default.xlf @@ -0,0 +1,1399 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + Имя `%s` зарезервировано системой. Пожалуйста, выберите другое имя. + + + No store configuration available + Конфигурация магазина недоступна + + + Please create a default store configuration. + Пожалуйста, создайте конфигурацию магазина по-умолчанию. + + + You have not yet placed any orders. + Вы не разместили ещё ни одного заказа. + + + The requested order was not found. + Запрашиваемый заказ не найден. + + + You must be logged in to checkout. + Вы должны войти в систему для оформления заказа. + + + A variant with this attributes is already available. Please select another combination. + Вариант с этими атрибутами уже есть. +Пожалуйста выберите другую комбинацию. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Пожалуйста, введите целые или десятичные со знаком + или - числа, или со знаком процента. + + + Please enter whole numbers or decimals optionally with a percentage. + Пожалуйста, введите целые или десятичные числа, или со знаком процента. + + + Checkout failed. Please try again or choose another payment method. + Оформление заказа не удалось. Попробуйте еще раз позднее или выберите другой способ оплаты. + + + You have no address book entries. + Ваша адресная книга пуста. + + + The minimum order amount is %s. Please add more products before checkout. + Минимальная сумма заказа %s. Пожалуйста добавьте еще товаров перед оформлением заказа. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + + + This image has already been assigned to the fallback language. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + + + User checkout not allowed + + + This product is no longer available. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + + + Groups + + + Pages + + + Back to the group picker + + + Show all groups + + + There are no variants for this product. + Других вариантов товара не найдено. + + + Duplicate Fallback + Удвоенный запас + + + Order no %s / %s + Заказ № %s / %s + + + Your payment is being processed. Please be patient... + Ваш платеж обрабатывается. Пожалуйста, подождите... + + + No files uploaded. + Файлы не загружены. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + + + Upload files + + + Processing dropped files... + + + Some records could not be deleted. + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + Количество + + + Tax-free + + + search products + Найти товары + + + Your downloadable products + Ваши товары доступные для загрузки + + + <span class="from">From</span> %s + <span class="from">От</span> %s + + + View Details + Подробнее + + + Reorder + + + Products Per Page + Товаров на странице + + + Keywords + Ключевые слова + + + Submit + Отправить + + + Clear Filters + Очистить фильтры + + + Update + Обновить + + + Add To Cart + Добавить в корзину + + + Add All To Cart + + + Update Cart + Обновить корзину + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Сортировать по: + + + No products have been found. + Товаров не найдено. + + + Back + Назад + + + Continue + Продолжить + + + Order + Заказ + + + No categories are associated with this product. + Категории не связаны с этим товаром. + + + Submit + Отправить + + + There are no items in your favorites list. + + + There are no items in your cart. + Ваша корзина пуста. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + + + The products from your last visit have been readded. Please review your shopping cart items. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Изменить + + + Remove + Удалить + + + Remove %s from your cart + Удалить %s из корзины + + + Order Subtotal: + Предварительный итог заказа: + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Итого: + + + No payment options are currently available + Опций оплаты сейчас недоступны. + + + No shipping options are currently available. + Опций доставки сейчас недоступны. + + + No orders emails found. + Электронные письма заказов не найдены. + + + No orders found. + Заказов не найдено. + + + <br />%s downloads remaining + <br />%s загрузок остается + + + Shopping Cart + Корзина + + + Proceed to Checkout + Оформить заказ + + + Continue shopping + Продолжить покупки + + + Update Cart + Обновить корзину + + + Order Status: %s + Состояние заказа: %s + + + Go back to step "%s" + Вернуться к шагу "%s" + + + Create New Address + Создать новый адрес + + + Use billing address + Использовать адрес для выставления счета + + + Use customer address + Использовать адрес покупателя + + + Different shipping address + Разные адреса доставки + + + Edit + Изменить + + + Delete + Удалить + + + Do you really want to delete this address? This cannot be undone. + Вы действительно хотите удалить этот адрес? Действие не может быть отменено. + + + Invoice + Счет + + + Status + Состояние + + + Order date + Дата заказа + + + Order number + + + Description + Описание + + + Quantity + Количество + + + Price + Цена + + + Total + + + lo to hi + мал. к больш. + + + hi to lo + больш. к мал. + + + A to Z + А до Я + + + Z to A + Я до А + + + earlier to later + от ранее до поздее + + + later to earlier + от поздее до ранее + + + Processing payment + Обработка платежа + + + You will be redirected to the payment gateway website. + + + Pay now + Оплатить сейчас + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + + + 1 Product + + + %s Products + + + Enter your shipping information or select an existing address. + + + Enter your billing information or select an existing address. + + + Enter your billing information + + + Enter your customer information or select an existing address. + + + Enter your customer information + + + Select a shipping method. + + + Please select a shipping method. + + + Enter your payment information. + + + Please select a payment method. + + + Review and confirm your order details. + + + Address + + + Shipping + Доставка + + + Payment + Оплата + + + Review + + + Billing Address + + + Shipping Address + + + Billing & Shipping Address + + + Customer Address + + + Shipping Method + + + Payment Method + + + Order Review + + + Change + + + Credit card number + + + Credit card type + + + CCV number (3 or 4 digit code) + + + Expiration month + + + Expiration year + + + Payment module not found! + + + Shipping module not found! + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + + + active step: + + + Loading products... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + + + Minutes + + + Hours + + + Days + + + Weeks + + + Months + + + Years + + + Introduction + + + Welcome to Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + + + by product name (descending) + + + by price (ascending) + + + by price (descending) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + + + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + + + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + + + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + + + Visa + + + American Express + + + Discover + + + JCB + + + Diner's Club + + + EnRoute + + + Carte Blanche + + + JAL + + + Maestro UK + + + Delta + Delta + + + Solo + + + Visa Electron + + + Dankort + + + Laser + + + Carte Bleue + + + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + + + A single-line input field for a short or medium text. + + + Textarea + + + A multi-line input field for a medium or long text. + + + Select menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + + + Kr. + + + € + + + £ + + + ¥ + + + Kr. + + + Kr. + + + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/exception.php b/system/modules/isotope/languages/ru/exception.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/explain.php b/system/modules/isotope/languages/ru/explain.php deleted file mode 100644 index 84b0c47ee4..0000000000 --- a/system/modules/isotope/languages/ru/explain.php +++ /dev/null @@ -1,17 +0,0 @@ -Чтобы загрузить новое изображение, выберите файл и сохраните товар. После успешной загрузки рядом с товаром отобразиться эскиз изображения, и вы сможете ввести для него альтернативный текст и описание. Для нескольких изображений, вы можете нажать на стрелки справа и изменить их порядок, верхнее изображение используется в качестве основного изображения каждого товара.

'; diff --git a/system/modules/isotope/languages/ru/explain.xlf b/system/modules/isotope/languages/ru/explain.xlf new file mode 100644 index 0000000000..c8860ed21f --- /dev/null +++ b/system/modules/isotope/languages/ru/explain.xlf @@ -0,0 +1,35 @@ + + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + <p class="tl_help_table">Чтобы загрузить новое изображение, выберите файл и сохраните товар. После успешной загрузки рядом с товаром отобразиться эскиз изображения, и вы сможете ввести для него альтернативный текст и описание. Для нескольких изображений, вы можете нажать на стрелки справа и изменить их порядок, верхнее изображение используется в качестве основного изображения каждого товара.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/iso_upgrade.php b/system/modules/isotope/languages/ru/iso_upgrade.php deleted file mode 100644 index a06663f95e..0000000000 --- a/system/modules/isotope/languages/ru/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Обновить + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/modules.php b/system/modules/isotope/languages/ru/modules.php deleted file mode 100644 index 4e0f8de0f4..0000000000 --- a/system/modules/isotope/languages/ru/modules.php +++ /dev/null @@ -1,62 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Управление товарами + + + Manage products for your Isotope eCommerce shop + + + Orders + Заказы + + + See and manage orders for your shop + + + Store configuration + Конфигурация магазина + + + Setup and configure Isotope eCommerce to your needs + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Фильтр товаров + + + Define individual filters for Isotope such as category trees and product attribute filters. + Определите названия отдельных фильтров для Isotope, таких как деревья категроий и фильтры атрибутов товара. + + + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + Список продуктов + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + Общий модуль списоков. Может быть использован для вывода списка товаров или их атрибутов. Может комбинироваться с другими модулями (например Модуль Фильтр) для предоставлени более широких возможностей. + + + Product Variant List + Спиок модификаций товара + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Выводит в список каждую модификацию товара. Удостоверьтесь, что выбраои шаблон iso_list_variants. + + + Product Reader + Средство отображения товара + + + Product reader module. This is used to display product details. + Средство отображения товара. Модкль используемый для отображения дополнительной информации о товаре. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Корзина + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + Полнофункциональный модуль корзины покупателя. Тип отображения может быть установлен выбором шаблона: Блок или Показ целиком. + + + Checkout + Оформить заказ + + + Allow store customers to complete their transactions. + Позволяет покупателям магазина завершить их транзакции. + + + Address Book + Адресная книга + + + Allow customers to manage their address book. + Позволяет покупателям управлять своей адресной книге. + + + Order History + История заказов + + + Order lister that allows customers to view their order history + Позволяет покупателям просматривать свою историю заказов + + + Order Details + Детали заказа + + + Order reader that allows customers to view order history details + Позовляет подробно просматривать покупателям историю заказов. + + + Store Config Switcher + Переключатель конфигураций магазина + + + Switch between store configuration to change currency and other settings. + Переключение между конфигурациями магазина для изменения валюты и других настроек. + + + Related products + Сопутствующие товары + + + List products related to the current one. + Список товаров сопутсвующих текущему товару. + + + Messages + + + Displays all Isotope messages if they have not been displayed elsewhere. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + + + Products + Товары + + + Attributes + Атрибуты + + + Manage and create product attributes such as size, color, etc. + Управляйте и создавайте атрибуты товара, такие как размер, цвет и т.д. + + + Product types + Типы товаров + + + Manage and create product types from sets of attributes. + Управляйте и создавайте типы товаров из наборов атрибутов. + + + Related categories + Связанные категории + + + Define categories for product relations. + Определите категории связанные с товаром. + + + Galleries + + + Define how you want the images in your product to be rendered. + + + Base prices + + + Define base price. + + + Checkout Flow + Процесс оформления заказа + + + Shipping methods + Методы доставки + + + Set up shipping methods. + Настройте спрособы дотсавки, такие как EMS, DHL, Почта России, и т.д. + + + Payment methods + Методы оплаты + + + Set up payment methods. + Настройте способы оплаты, такие как Authorize.net, PayPal Pro, и другие. + + + Tax classes + Классы налогов + + + Set up Tax classes, which contain sets of Tax rates. + Настройте классы налогов, которые состоят из наборов ставок налогов. + + + Tax rates + Ставки налогов + + + Set up tax rates based on things like shipping/billing location and order total. + Настройте ставки налогов основанные на суммах доставки/местоположении выставления счета и общей сумме заказа. + + + General settings + Общие настройки + + + Store configurations + Конфигурации магазинов + + + Configure general settings for this store. + Установить общие настройки для этого магазина. + + + Order status + + + Define order status. + + + Notifications + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + + + Define documents. + + + Miscellaneous + + + Translations + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/subdivisions.php b/system/modules/isotope/languages/ru/subdivisions.php deleted file mode 100644 index fbfe233d84..0000000000 --- a/system/modules/isotope/languages/ru/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + + Badakhshān + Бадахшан + + + Bādghīs + Бадгис + + + Baghlān + Баглан + + + Balkh + Балх + + + Bāmīān + Бамиан + + + Farāh + Фарах + + + Fāryāb + Фарьяб + + + Ghaznī + Газни + + + Ghowr + Гор + + + Helmand + Гильменд + + + Herāt + Герат + + + Jowzjān + Джаузджан + + + Kabul (Kābol) + Кабул + + + Kandahār + Кандагар + + + Kāpīsā + Каписа + + + Konar (Kunar) + Кунар + + + Kondoz (Kunduz) + Кундуз + + + Laghmān + Лагман + + + Lowgar + Логар + + + Nangrahār (Nangarhār) + Нангархар + + + Nīmrūz + Нимроз + + + Orūzgān (Urūzgā + Урузган + + + Paktīā + Пактия + + + Paktīkā + Пактика + + + Parwān + Парван + + + Samangān + Саманган + + + Sar-e Pol + Сари-Пуль + + + Takhār + Тахар + + + Wardak (Wardag) + Вардак + + + Zābol (Zābul) + Забуль + + + Berat + Берат + + + Bulqizë + Булькиза + + + Delvinë + Дельвина + + + Devoll + Девол + + + Dibër + Дибра + + + Durrës + Дуррес + + + Elbasan + Эльбасан + + + Fier + Фиери + + + Gramsh + Грамши + + + Gjirokastër + Гирокастра + + + Has + Хас + + + Kavajë + Кавая + + + Kolonjë + Колёня + + + Korcë + Корча + + + Krujë + Круя + + + Kucovë + Кучова + + + Kukës + Кукес + + + Laç + Ляч + + + Lezhë + Лежа + + + Librazhd + Либражди + + + Lushnjë + Люшня + + + Malësia e Madhe + Мальси э Мади + + + Mallakastër + Малакастра + + + Mat + Мати + + + Mirditë + Мирдита + + + Peqin + Пекини + + + Përmet + Пермети + + + Pogradec + Поградец + + + Pukë + Пука + + + Sarandë + Саранда + + + Skrapar + Скрапари + + + Shkodër + Шкодер + + + Tepelenë + Тепелена + + + Tiranë + Тирана + + + Tropojë + Тропоя + + + Vlorë + Влёра + + + Adrar + Адрар + + + Aïn Defla + Айн-Дефла + + + Aïn Témouchent + Айн-Темушент + + + Alger + Алжир + + + Batna + Батна + + + Béchar + Бешар + + + Béjaïa + Беджая + + + Biskra + Бискра + + + Blida + Блида + + + Bordj Bou Arréridj + Бордж-Бу-Арреридж + + + Bouira + Буира + + + Boumerdès + Бумердес + + + Chlef + Эш-Шелифф + + + Constantine + Константина + + + Djelfa + Джельфа + + + El Bayadh + Эль-Баяд + + + El Oued + Эль-Уэд + + + El Tarf + Эль-Тарф + + + Ghardaïa + Гардая + + + Guelma + Гельма + + + Illizi + Иллизи + + + Jijèl + Джиджель + + + Khenchela + Хеншела + + + Laghouat + Лагуат + + + Mascara + Маскара + + + Médéa + Медеа + + + Mila + Мила + + + Mostaganem + Мостаганем + + + M'Sila + Мсила + + + Naama + Наама + + + Oran + Оран + + + Ouargla + Уаргла + + + Oum el Bouaghi + Ум-эль-Буахи + + + Relizane + Релизан + + + Saïda + Саида + + + Sétif + Сетиф + + + Sidi Bel Abbès + Сиди-Бель-Аббес + + + Skikda + Скикда + + + Souk Ahras + Сук-Ахрас + + + Tamanrhasset + Таманрассет + + + Tébessa + Тебесса + + + Tiaret + Тиарет + + + Tindouf + Тиндуф + + + Tipaza + Типаса + + + Tissemsilt + Тиссемсилт + + + Tizi Ouzou + Тизи-Узу + + + Tlémcèn + Тлемсен + + + American Samoa + Американское Самоа + + + Andorra + Андорра + + + Bengo + Бенго + + + Benguela + Бенгела + + + Bié + Бие + + + Cabinda + Кабинда + + + Cuando-Cubango + Квандо-Кубанго + + + Cuanza Norte + Северная Кванза + + + Cuanza Sul + Южная Кванза + + + Cunene + Кунене + + + Huambo + Уамбо + + + Huíla + Уила + + + Luanda + Луанда + + + Lunda Norte + Северная Лунда + + + Lunda Sul + Южная Лунда + + + Malange + Маланже + + + Moxico + Мошико + + + Namibe + Намибе + + + Uíge + Уиже + + + Zaïre + Заире + + + Anguilla + Ангилья + + + Antarctica + Антарктида + + + Antigua & Barbuda + Антигуа и Барбуда + + + Capital federal + Буэнос-Айрес (Федеральная столица) + + + Buenos Aires + Буэнос-Айрес + + + Catamarca + Катамарка + + + Córdoba + Кордова + + + Corrientes + Корриентес + + + Chaco + Чако + + + Chubut + Чубут + + + Entre Ríos + Энтре-Риос + + + Formosa + Формоса + + + Jujuy + Жужуй + + + La Pampa + Ла-Пампа + + + La Rioja + Ла-Риоха + + + Mendoza + Мендоса + + + Misiones + Мисьонес + + + Neuquén + Неукен + + + Río Negro + Рио-Негро + + + Salta + Сальта + + + San Juan + Сан-Хуан + + + San Luis + Сан-Луис + + + Santa Cruz + Санта-Крус + + + Santa Fe + Санта-Фе + + + Santiago del Estero + Сантьяго-дель-Эстеро + + + Tierra del Fuego + Огненная Земля (архипелаг) + + + Tucumán + Тукуман + + + Erevan + Ереван + + + Aragacotn + Арагацотнская область + + + Ararat + Араратская область + + + Armavir + Армавирская область + + + Geģark'unik' + Гегаркуникская область + + + Kotayk' + Котайкская область + + + Loŕy + Лорийская область + + + Širak + Ширакская область + + + Syunik' + Сюникская область + + + Tavuš + Тавушская область + + + Vayoc Jor + Вайоцдзорская область + + + Aruba + Аруба + + + New South Wales + Новый Южный Уэльс + + + Queensland + Квинсленд + + + South Australia + Южная Австралия + + + Tasmania + Тасмания + + + Victoria + Виктория + + + Western Australia + Западная Австралия + + + Australian Capital Territory + Австралийская столичная территория + + + Northern Territory + Северная территория + + + Burgenland + Бургенланд + + + Kärnten + Каринтия + + + Niederösterreich + Нижняя Австрия + + + Oberösterreich + Верхняя Австрия + + + Salzburg + Зальцбург + + + Steiermark + Штирия + + + Tirol + Тироль + + + Vorarlberg + Форарльберг + + + Wien + Вена + + + Naxçivan + Нахичеванская Автономная Республика + + + Äli Bayramli + Ширван + + + Baki + Баку + + + Gäncä + Гянджа + + + Länkäran + Ленкорань + + + Mingäçevir + Мингечаур + + + Naftalan + Нафталан + + + Şäki + Шеки + + + Sumqayit + Сумгаит + + + Şuşa + Шуша + + + Xankändi + Ханкенди + + + Yevlax + Евлах + + + Abşeron + Абшеронский район + + + Ağcabädi + Агджабединский район + + + Ağdam + Агдамский район + + + Ağdas + Агдашский район + + + Ağstafa + Акстафинский район + + + Ağsu + Ахсуйский район + + + Astara + Астаринский район + + + Babäk + Бабекский район + + + Balakän + Бейлаганский район + + + Bärdä + Бардинский район + + + Beyläqan + Бейлаганский район + + + Biläsuvar + Билясуварский район + + + Cäbrayil + Джебраильский район + + + Cälilabad + Джалилабадский район + + + Culfa + Джульфинский район + + + Daşkäsän + Дашкесанский район + + + Däväçi + Шабранский район + + + Füzuli + Физулинский район + + + Gädäbäy + Кедабекский район + + + Goranboy + Геранбойский район + + + Göyçay + Геокчайский район + + + Haciqabul + Аджикабулский район + + + Imişli + Имишлинский район + + + Ismayilli + Исмаиллинский район + + + Kälbäcär + Кельбаджарский район + + + Kürdämir + Кюрдамирский район + + + Laçin + Лачинский район + + + Länkäran + Ленкорань + + + Lerik + Лерикский район + + + Masalli + Масаллинский район + + + Neftçala + Нефтечалинский район + + + Oğuz + Огузский район + + + Ordubad + Ordubad + + + Qäbälä + Габалинский район + + + Qax + Кахский район + + + Qazax + Казахский район + + + Qobustan + Гобустанский район + + + Quba + Губинский район + + + Qubadlı + Кубатлинский район + + + Qusar + Кусарский район + + + Saatli + Саатлинский район + + + Sabirabad + Сабирабадский район + + + Sädäräk + Sädäräk + + + Şahbuz + Şahbuz + + + Şäki + Шеки + + + Salyan + Сальянский район + + + Şamaxı + Шемахинский район + + + Şämkir + Шамкирский район + + + Samux + Samux + + + Şärur + Şärur + + + Siyäzän + Сиазанский район + + + Şuşa + Шуша + + + Tärtär + Тертерский район + + + Tovuz + Товузский район + + + Ucar + Уджарский район + + + Xaçmaz + Хачмазский район + + + Xanlar + Xanlar район + + + Xizi + Хызынский район + + + Xocalı + Ходжалинский район + + + Xocavänd + Ходжаведский район + + + Yardimli + Ярдымлинский район + + + Yevlax + Евлах + + + Zängılan + Зангиланский район + + + Zaqatala + Закаталинский район + + + Zärdab + Зардабский район + + + Acklins and Crooked Islands + Acklins and Crooked Islands + + + Bimini + Бимини + + + Cat Island + Кэт + + + Exuma + Эксума + + + Freeport + Фрипорт + + + Fresh Creek + Fresh Creek + + + Governor's Harbour + Governor's Harbour + + + Green Turtle Cay + Green Turtle Cay + + + Harbour Island + Остров Харбор + + + High Rock + High Rock + + + Inagua + Инагуа + + + Kemps Bay + Kemps Bay + + + Long Island + Лонг-Айленд + + + Marsh Harbour + Marsh Harbour + + + Mayaguana + Маягуана + + + New Providence + New Providence + + + Nicholls Town and Berry Islands + Nicholls Town and Berry Islands + + + Ragged Island + Рэггид-Айленд + + + Rock Sound + Rock Sound + + + Sandy Point + Sandy Point + + + San Salvador and Rum Cay + San Salvador and Rum Cay + + + Al Ḩadd + Al Ḩadd + + + Al Manāmah + Манама + + + Al Minţaqah al Gharbīyah + Al Minţaqah al Gharbīyah + + + Al Minţaqah al Wusţa + Al Minţaqah al Wusţa + + + Al Minţaqah ash Shamālīyah + v + + + Al Muḩarraq + Мухаррак + + + Ar Rifā‘ + Ar Rifā‘ + + + Jidd Ḩafş + Jidd Ḩafş + + + Madīnat Ḩamad + Madīnat Ḩamad + + + Madīnat ‘Īsá + Madīnat ‘Īsá + + + Minţaqat Juzur Ḩawār + Minţaqat Juzur Ḩawār + + + Sitrah + Sitrah + + + Barisal bibhag + Barisal bibhag + + + Barisal anchal + Barisal anchal + + + Patuakhali anchal + Patuakhali anchal + + + Chittagong bibhag + Chittagong bibhag + + + Bandarban anchal + Bandarban anchal + + + Chittagong anchal + Chittagong anchal + + + Chittagong Hill Tracts + Chittagong Hill Tracts + + + Comilla anchal + Comilla anchal + + + Noakhali anchal + Noakhali anchal + + + Sylhet anchal + Sylhet anchal + + + Dhaka bibhag + Dhaka bibhag + + + Dhaka anchal + Dhaka anchal + + + Faridpur anchal + Faridpur anchal + + + Jamalpur anchal + Jamalpur anchal + + + Mymensingh anchal + Mymensingh anchal + + + Tangail anchal + Tangail anchal + + + Khulna bibhag + Khulna bibhag + + + Jessore anchal + Jessore anchal + + + Khulna anchal + Khulna anchal + + + Khustia anchal + Khustia anchal + + + Rajshahi bibhag + Rajshahi bibhag + + + Bogra anchal + Богра + + + Dinajpur anchal + Динаджпур + + + Pabna anchal + Пабна + + + Rajshahi anchal + Раджшахи + + + Rangpur anchal + Рангпур + + + Barbados + Барбадос + + + Brestskaya voblasts' + Брестская область + + + Homyel'skaya voblasts’ + Гомельская область + + + Hrodnenskaya voblasts' + Гродненская область + + + Mahilyowskaya voblasts' + Могилёвская область + + + Minskaya voblasts' + Минская область + + + Vitsyebskaya voblasts' + Витебская область + + + Bruxelles-Capitale, Region de (fr), Brussels Hoofdstedelijk Gewest (nl) + Брюссель + + + Vlaamse Gewest (nl) + Фландрия () + + + Antwerpen (nl) + Антверпен + + + Limburg (nl) + Лимбург + + + Oost-Vlaanderen (nl) + Восточная Фландрия + + + Vlaams Brabant (nl) + Фламандский Брабант + + + West-Vlaanderen (nl) + Западная Фландрия + + + Wallonne, Region (fr) + Валлония + + + Brabant Wallon (fr) + Валлонский Брабант + + + Hainaut (fr) + Эно + + + Liège (fr) + Льеж + + + Luxembourg (fr) + Люксембург + + + Namur (fr) + Намюр + + + Belize + Белиз + + + Cayo + Кайо + + + Corozal + Коросаль + + + Orange Walk + Ориндж-Уолк + + + Stann Creek + Станн-Крик + + + Toledo + Толедо + + + Atakora + Атакора + + + Atlantique + Атлантик + + + Borgou + Боргу + + + Mono + Моно + + + Ouémé + Уэме + + + Zou + Зу + + + Bermuda + Бермуды + + + Bumthang + Бумтанг + + + Chhukha + Чукха + + + Dagana + Дагана + + + Gasa + Гаса + + + Ha + Хаа + + + Lhuentse + Лхунце + + + Monggar + Монгар + + + Paro + Паро + + + Pemagatshel + Пемагацел + + + Punakha + Пунакха + + + Samdrup Jongkha + Самдруп-Джонгхар + + + Samtse + Самце + + + Sarpang + Сарпанг + + + Thimphu + Тхимпху + + + Trashigang + Трашиганг + + + Trashi Yangtse + Трашиянгце + + + Trongsa + Тонгса + + + Tsirang + Циранг + + + Wangdue Phodrang + Вангди-Пходранг + + + Zhemgang + Жемганг + + + Cochabamba + Кочабамба + + + Chuquisaca + Чукисака + + + El Beni + Бени + + + La Paz + Ла-Пас + + + Oruro + Оруро + + + Pando + Пандо + + + Potosi + Потоси + + + Santa Cruz + Санта-Крус + + + Tarija + Тариха + + + Federacija Bosna i Hercegovina + Федерация Боснии и Герцеговины + + + Republika Srpska + Республика Сербская + + + Central [Serowe-Palapye] + Центральный округ + + + Chobe + Chobe + + + Ghanzi + Ганзи + + + Kgalagadi + Кгалагади + + + Kgatleng + Кгатленг + + + Kweneng + Квененг + + + Ngamiland [North-West] + Ngamiland [North-West] + + + North-East + Северо-Восточный округ + + + South-East + Юго-Восточный округ + + + Southern [Ngwaketse] + Южный округ + + + Bouvet Island + Остров Буве + + + Distrito Federal + Федеральный округ Бразилиа + + + Acre + Акри + + + Alagoas + Алагоас + + + Amapá + Амапа + + + Amazonas + Амазонас + + + Bahia + Баия + + + Ceará + Сеара + + + Espírito Santo + Эспириту-Санту + + + Goiás + Гояс + + + Maranhāo + Мараньян + + + Mato Grosso + Мату-Гросу + + + Mato Grosso do Sul + Mato Grosso do Sul + + + Minas Gerais + Минас-Жерайс + + + Pará + Пара + + + Paraíba + Параиба + + + Paraná + Парана + + + Pernambuco + Пернамбуку + + + Piauí + Пиауи + + + Rio de Janeiro + Рио-де-Жанейро + + + Rio Grande do Norte + Риу-Гранди-ду-Норти + + + Rio Grande do Sul + Риу-Гранди-ду-Сул + + + Rondônia + Рондония + + + Roraima + Рорайма + + + Santa Catarina + Санта-Катарина + + + São Paulo + Сан-Паулу + + + Sergipe + Сержипи + + + Tocantins + Токантинс + + + British Indian Ocean Territory + Британская территория в Индийском океане + + + Belait + Белайт + + + Brunei-Muara + Бруней-Муара + + + Temburong + Тембуронг + + + Tutong + Тутонг + + + Burgas + Бургасская область + + + Haskovo + Хасковская область + + + Loveč + Ловечская область + + + Montana + Монтанская область + + + Plovdiv + Пловдивская область + + + Ruse + Русенская область + + + Sofija + Софийская область + + + Sofija-Grad + Область София (София-град) + + + Varna + Варненская область + + + Balé + Бале + + + Bam + Бам + + + Banwa + Банва + + + Bazèga + Базега + + + Bougouriba + Бугуриба + + + Boulgou + Булгу + + + Boulkiemdé + Булькиемде + + + Comoé + Комоэ + + + Ganzourgou + Ганзургу + + + Gnagna + Нана + + + Gourma + Гурма + + + Houet + Уэ + + + Ioba + Иоба + + + Kadiogo + Кадиого + + + Kénédougou + Кенедугу + + + Komondjari + Комонджари + + + Kompienga + Компиенга + + + Kossi + Коси + + + Koulpélogo + Кульпелого + + + Kouritenga + Куритенга + + + Kourwéogo + Курвеого + + + Léraba + Лераба + + + Loroum + Лорум + + + Mouhoun + Мухун + + + Nahouri + Наури + + + Namentenga + Наментенга + + + Nayala + Наяла + + + Noumbiel + Нумбиель + + + Oubritenga + Убритенга + + + Oudalan + Удалан + + + Passoré + Пасоре + + + Poni + Пони + + + Sanguié + Сангие + + + Sanmatenga + Санматенга + + + Séno + Сено + + + Sissili + Сисили + + + Soum + Сум + + + Sourou + Суру + + + Tapoa + Тапоа + + + Tui + Туй + + + Yagha + Яга + + + Yatenga + Ятенга + + + Ziro + Зиро + + + Zondoma + Зондома + + + Zoundwéogo + Зундвеого + + + Bubanza + Бубанза + + + Bujumbura + Бужумбура + + + Bururi + Бурури + + + Cankuzo + Чанкузо + + + Cibitoke + Чибитоке + + + Gitega + Гитега + + + Karuzi + Карузи + + + Kayanza + Каянза + + + Kirundo + Кирундо + + + Makamba + Макамба + + + Muramvya + Мурамвья + + + Muyinga + Муйинга + + + Ngozi + Нгози + + + Rutana + Рутана + + + Ruyigi + Руйиги + + + Krong Kaeb [Krŏng Kêb] + Каеп + + + Krong Preah Sihanouk [Krŏng Preăh Sihanouk] + Сиануквиль + + + Phnom Penh [Phnum Pénh] + Пномпень + + + Baat Dambang [Bătdâmbâng] + Баттамбанг + + + Banteay Mean Chey [Bântéay Méanchey] + Бантеаймеантьей + + + Kampong Chaam [Kâmpóng Cham] + Кампонгтхом + + + Kampong Chhnang [Kâmpóng Chhnăng] + Кампонгчнанг + + + Kampong Spueu [Kâmpóng Spœ] + Кампонгспы + + + Kampong Thum [Kâmpóng Thum] + Кампонгтям + + + Kampot [Kâmpôt] + Кампот + + + Kandaal [Kândal] + Кандаль + + + Kracheh [Krâchéh] + Кратьэх + + + Mond01 Kiri [Môndól Kiri] + Мондолькири + + + Otdar Mean Chey [Ŏtdâr Méanchey] + Оддармеантьей + + + Pousaat [Poŭthĭsăt] + Поусат + + + Preah Vihear [Preăh Vihéar] + Прэахвихеа + + + Prey Veaeng [Prey Vêng] + Прейвэнг + + + Rotanak Kiri [Rôtânôkiri] + Ратанакири + + + Siem Reab [Siĕmréab] + Сиемреап + + + Stueng Traeng [Stœng Trêng] + Стынгтраенг + + + Svaay Rieng [Svay Riĕng] + Свайриенг + + + Taakaev [Takêv] + Такео + + + Adamaoua + Адамава регион + + + Centre + Центральный регион + + + Est + Восточный регион + + + Far North + Крайнесеверный регион + + + Littoral + Прибрежный регион + + + North + Северный регион + + + North-West + Северо-Западный регион + + + South + Южный регион + + + South-West + Юго-Западный регион + + + West + Западный регион + + + Alberta + Альберта + + + British Columbia (Colombie-Britannique) + Британская Колумбия + + + Manitoba + Манитоба + + + New Brunswick (Nouveau-Brunswick) + Нью-Брансуик + + + Newfoundland (Terre-Neuve) + Newfoundland (Terre-Neuve) + + + Nova Scotia (Nouvelle-Écosse) + Новая Шотландия + + + Ontario + Онтарио + + + Printe Edward Island (Île-du-Prince-Édouard) + Остров Принца Эдуарда + + + Quebec (Québec) + Квебек + + + Saskatchewan + Саскачеван + + + Northwest Territories (Territoires du Nord-Ouest) + Северо-Западные территории + + + Yukon Territory (Teritoire du Yukon) + Юкон + + + Ilhas de Barlavento + Барлавенту + + + Boa Vista + Боавишта + + + Paul + Паул + + + Porto Novo + Порту-Нову + + + Ribeira Grande + Рибейра-Гранде + + + Sal + Сал + + + Sāo Nicolau + Sāo Nicolau + + + Sāo Vicente + Сан-Висенте + + + Brava + Брава + + + Fogo + Fogo + + + Maio + Маю + + + Praia + Прая + + + Santa Catarina + Санта-Катарина + + + Santa Cruz + Санта-Крус + + + Tarrafal + Таррафал + + + Ilhas de Sotavento + Сотавенту + + + Cayman Islands + Острова Кайман + + + Bangui + Банги + + + Bamingui-Bangoran + Бамбинги-Бангоран + + + Basse-Kotto + Нижнее Котто + + + Haute-Kotto + Верхнее Котто + + + Haut-Mbomou + Верхнее Мбому + + + Kémo + Кемо + + + Lobaye + Лобае + + + Mambéré-Kadéï + Мамбере-Кадеи + + + Mbomou + Мбому + + + Nana-Grébizi + Нана-Гребизи + + + Nana-Mambéré + Нана-Мамбере + + + Ombella-Mpoko + Омбелла-Мпоко + + + Ouaka + Уака + + + Ouham + Уам + + + Ouham-Pendé + Уам-Пенде + + + Sangha-Mbaéré + Санга-Мбаере + + + Vakaga + Вакага + + + Batha + Батха + + + Biltine + Biltine + + + Borkou-Ennedi-Tibesti + Borkou-Ennedi-Tibesti + + + Chari-Baguirmi + Шари-Багирми + + + Guéra + Гера + + + Kanem + Канем + + + Lac + Лак + + + Logone-Occidental + Logone-Occidental + + + Logone-Oriental + Восточный Логон + + + Mayo-Kébbi + Mayo-Kébbi + + + Moyen-Chari + Среднее Шари + + + Ouaddaï + Ваддай + + + Salamat + Саламат + + + Tandjilé + Танджиле + + + Aisén del General Carlos Ibáñiez del Campo + Айсен-дель-Хенераль-Карлос-Ибаньес-дель-Кампо + + + Antofagasta + Антофагаста + + + Araucanía + Араукания + + + Atacama + Атакама + + + Bío-Bío + Био-Био + + + Coquimbo + Кокимбо + + + Libertador General Bernardo O'Higgins + Либертадор-Хенераль-Бернардо-О’Хиггинс + + + Los Lagos + Лос-Лагос + + + Magallanes + Магальянес-и-ла-Антарктика-Чилена + + + Maule + Мауле + + + Regíon Metropolitana de Santiago + Столичная область + + + Tarapacá + Тарапака + + + Valparaiso + Вальпараисо + + + Beijing + Пекин + + + Chongqing + Чунцин + + + Shanghai + Шанхай + + + Tianjin + Тяньцзинь + + + Anhui + Аньхой + + + Fujian + Фуцзянь + + + Gansu + Ганьсу + + + Guangdong + Гуандун + + + Guizhou + Гуйчжоу + + + Hainan + Хайнань + + + Hebei + Хэбэй + + + Heilongjiang + Хэйлунцзян + + + Henan + Хэнань + + + Hubei + Хубэй + + + Hunan + Хунань + + + Jiangsu + Цзянсу + + + Jiangxi + Цзянси + + + Jilin + Гирин + + + Liaoning + Ляонин + + + Qinghai + Цинхай + + + Shaanxi + Шэньси + + + Shandong + Шаньдун + + + Shanxi + Шаньси + + + Sichuan + Сычуань + + + Taiwan + Тайвань + + + Yunnan + Юньнань + + + Zhejiang + Чжэцзян + + + Guangxi + Гуанси-Чжуанский + + + Nei Monggol + Внутренняя Монголия + + + Ningxia + Нинся-Хуэйский + + + Xinjiang + Синьцзян-Уйгурский + + + Xizang + Тибетский + + + Hong Kong + Гонконг (Сянган) + + + Christmas Island + Остров Рождества + + + Cocos (Keeling) Islands + Кокосовые острова + + + Distrito Capital de Santa Fe de Bogota + Distrito Capital de Santa Fe de Bogota + + + Amazonas + Амазонас + + + Antioguia + Антьокия + + + Arauca + Араука + + + Atlántico + Атлантико + + + Bolívar + Боливар + + + Boyacá + Бояка + + + Caldas + Кальдас + + + Caquetá + Какета + + + Casanare + Касанаре + + + Cauca + Каука + + + Cesar + Сесар + + + Córdoba + Кордова + + + Cundinamarca + Кундинамарка + + + Chocó + Чоко + + + Guainía + Гуайния + + + Guaviare + Гуавьяре + + + Huila + Уила + + + La Guajira + Гуахира + + + Magdalena + Магдалена + + + Meta + Мета + + + Nariño + Нариньо + + + Norte de Santander + Норте-де-Сантандер + + + Putumayo + Путумайо + + + Quindío + Киндио + + + Risaralda + Рисаральда + + + San Andrés, Providencia y Santa Catalina + Сан-Андрес-и-Провиденсия + + + Santander + Сантандер + + + Sucre + Сукре + + + Tolima + Толима + + + Valle del Cauca + Валье-дель-Каука + + + Vaupés + Ваупес + + + Vichada + Вичада + + + Anjouan (Ndzouani) + Anjouan (Ndzouani) + + + Grande Comore (Ngazidja) + Grande Comore (Ngazidja) + + + Mohéli (Moili) + Mohéli (Moili) + + + Brazzaville + Brazzaville + + + Bouenza + Bouenza + + + Cuvette + Cuvette + + + Cuvette-Ouest + Cuvette-Ouest + + + Kouilou + Kouilou + + + Lékoumou + Lékoumou + + + Likouala + Likouala + + + Niari + Niari + + + Plateaux + Plateaux + + + Pool + Pool + + + Sangha + Sangha + + + Kinshasa + Kinshasa + + + Bandundu + Bandundu + + + Bas-Congo + Bas-Congo + + + Équateur + Équateur + + + Haut-Congo + Haut-Congo + + + Kasai-Occidental + Kasai-Occidental + + + Kasai-Oriental + Kasai-Oriental + + + Katanga + Katanga + + + Maniema + Maniema + + + Nord-Kivu + Nord-Kivu + + + Sud-Kivu + Sud-Kivu + + + Cook Islands + Cook Islands + + + Alajuela + Alajuela + + + Cartago + Cartago + + + Guanacaste + Guanacaste + + + Heredia + Heredia + + + Limón + Limón + + + Puntarenas + Puntarenas + + + San José + San José + + + 18 Montagnes (Région des) + 18 Montagnes (Région des) + + + Agnébi (Région de l') + Agnébi (Région de l') + + + Bas-Sassandra (Région du) + Bas-Sassandra (Région du) + + + Denguélé (Région du) + Denguélé (Région du) + + + Haut-Sassandra (Région du) + Haut-Sassandra (Région du) + + + Lacs (Région des) + Lacs (Région des) + + + Lagunes (Région des) + Lagunes (Région des) + + + Marahoué (Région de la) + Marahoué (Région de la) + + + Moyen-Comoé (Région du) + Moyen-Comoé (Région du) + + + Nzi-Comoé (Région) + Nzi-Comoé (Région) + + + Savanes (Région des) + Savanes (Région des) + + + Sud-Bandama (Région du) + Sud-Bandama (Région du) + + + Sud-Comoé (Région du) + Sud-Comoé (Région du) + + + Vallée du Bandama (Région de la) + Vallée du Bandama (Région de la) + + + Worodougou (Région du) + Worodougou (Région du) + + + Zanzan (Région du) + Zanzan (Région du) + + + Bjelovarsko-bilogorska županija + Bjelovarsko-bilogorska županija + + + Brodsko-posavska županija + Brodsko-posavska županija + + + Dubrovačko-neretvanska županija + Dubrovačko-neretvanska županija + + + Istarska županija + Istarska županija + + + Karlovačka županija + Karlovačka županija + + + Koprivničkco-križevačka županija + Koprivničkco-križevačka županija + + + Krapinsko-zagorska županija + Krapinsko-zagorska županija + + + Ličko-senjska županija + Ličko-senjska županija + + + Medjimurska županija + Medjimurska županija + + + Osječko-baranjska županija + Osječko-baranjska županija + + + Požeško-slavonska županija + Požeško-slavonska županija + + + Primorsko-goranska županija + Primorsko-goranska županija + + + Sisaško-moslavačka županija + Sisaško-moslavačka županija + + + Splitsko-dalmatinska županija + Splitsko-dalmatinska županija + + + Šibensko-kninska županija + Šibensko-kninska županija + + + Varaždinska županija + Varaždinska županija + + + Virovitičko-podravska županija + Virovitičko-podravska županija + + + Vukovarsko-srijemska županija + Vukovarsko-srijemska županija + + + Zadarska županija + Zadarska županija + + + Zagrebačka županija + Zagrebačka županija + + + Camagüey + Camagüey + + + Ciudad de La Habana + Ciudad de La Habana + + + Granma + Granma + + + Guantánamo + Guantánamo + + + Holguín + Holguín + + + La Habana + La Habana + + + Las Tunas + Las Tunas + + + Matanzas + Matanzas + + + Pinar del Río + Pinar del Río + + + Sancti Spíritus + Sancti Spíritus + + + Santiago de Cuba + Santiago de Cuba + + + Villa Clara + Villa Clara + + + Isla de la Juventud + Isla de la Juventud + + + Ammochostos (Mağusa) + Ammochostos (Mağusa) + + + Keryneia (Girne) + Keryneia (Girne) + + + Larnaka + Larnaka + + + Lefkosia (Lefkoşa) + Lefkosia (Lefkoşa) + + + Lemesos (Leymosun) + Lemesos (Leymosun) + + + Pafos (Baf) + Pafos (Baf) + + + Praha + Praha + + + Jihočeský kraj + Jihočeský kraj + + + Jihomoravský kraj + Jihomoravský kraj + + + Severočeský kraj + Severočeský kraj + + + Severomoravský kraj + Severomoravský kraj + + + Středočeský kraj + Středočeský kraj + + + Východočeský kraj + Východočeský kraj + + + Západočeský kraj + Západočeský kraj + + + Frederiksberg + Frederiksberg + + + Kǿbenhavn + Kǿbenhavn + + + Bornholm + Bornholm + + + Frederiksborg + Frederiksborg + + + Fyn + Fyn + + + Kǿbenhavn + Kǿbenhavn + + + Nordjylland + Nordjylland + + + Ribe + Ribe + + + Ringkǿbing + Ringkǿbing + + + Roskilde + Roskilde + + + Storstrǿm + Storstrǿm + + + Sǿnderjylland + Sǿnderjylland + + + Vejle + Vejle + + + Vestsjælland + Vestsjælland + + + Viborg + Viborg + + + Århus + Århus + + + Ali Sabieh + Ali Sabieh + + + Dikhil + Dikhil + + + Djibouti + Djibouti + + + Obock + Obock + + + Tadjoura + Tadjoura + + + Dominica + Dominica + + + Distrito National (Santo Domingo) + Distrito National (Santo Domingo) + + + Azua + Azua + + + Bahoruco + Bahoruco + + + Barahona + Barahona + + + Dajabón + Dajabón + + + Duarte + Duarte + + + El Seibo + El Seibo + + + La Estrelleta [Elías Piña] + La Estrelleta [Elías Piña] + + + Hato Mayor + Hato Mayor + + + Independencia + Independencia + + + La Altagracia + La Altagracia + + + La Romana + La Romana + + + La Vega + La Vega + + + María Trinidad Sánchez + María Trinidad Sánchez + + + Monseñor Nouel + Monseñor Nouel + + + Monte Cristi + Monte Cristi + + + Monte Plata + Monte Plata + + + Pedernales + Pedernales + + + Peravia + Peravia + + + Puerto Plata + Puerto Plata + + + Salcedo + Salcedo + + + Samaná + Samaná + + + Sanchez Ramírez + Sanchez Ramírez + + + San Cristóbal + San Cristóbal + + + San Juan + Сан-Хуан + + + San Pedro de Macorís + San Pedro de Macorís + + + Santiago + Santiago + + + Santiago Rodríguez + Santiago Rodríguez + + + Valverde + Valverde + + + East Timor + East Timor + + + Azuay + Azuay + + + Bolívar + Боливар + + + Cañar + Cañar + + + Carchi + Carchi + + + Cotopaxi + Cotopaxi + + + Chimborazo + Chimborazo + + + El Oro + El Oro + + + Esmeraldas + Esmeraldas + + + Galápagos + Galápagos + + + Guayas + Guayas + + + Imbabura + Imbabura + + + Loja + Loja + + + Los Ríos + Los Ríos + + + Manabí + Manabí + + + Morona-Santiago + Morona-Santiago + + + Napo + Napo + + + Pastaza + Pastaza + + + Pichincha + Pichincha + + + Sucumbíos + Sucumbíos + + + Tungurahua + Tungurahua + + + Zarnora-Chinchipe + Zarnora-Chinchipe + + + Ad Daqahlīyah + Ad Daqahlīyah + + + Al Baḩr al Aḩmar + Al Baḩr al Aḩmar + + + Al Buḩayrah + Al Buḩayrah + + + Al Fayyūm + Al Fayyūm + + + Al Gharbīyah + Al Gharbīyah + + + Al Iskandarīyah + Al Iskandarīyah + + + Al Ismā‘īlīyah + Al Ismā‘īlīyah + + + Al Jīzah + Al Jīzah + + + Al Minūfīyah + Al Minūfīyah + + + Al Minyā + Al Minyā + + + Al Qāhirah + Al Qāhirah + + + Al Qalyūbīyah + Al Qalyūbīyah + + + Al Wādī al Jadīd + Al Wādī al Jadīd + + + Ash Sharqīyah + Ash Sharqīyah + + + As Suways + As Suways + + + Aswān + Aswān + + + Asyūţ + Asyūţ + + + Banī Suwayf + Banī Suwayf + + + Būr Sa‘īd + Būr Sa‘īd + + + Dumyāţ + Dumyāţ + + + Janūb Sīnā' + Janūb Sīnā' + + + Kafr ash Shaykh + Kafr ash Shaykh + + + Maţrūḩ + Maţrūḩ + + + Qinā + Qinā + + + Shamāl Sīnā' + Shamāl Sīnā' + + + Sūhāj + Sūhāj + + + Ahuachapán + Ahuachapán + + + Cabañas + Cabañas + + + Cuscatlán + Cuscatlán + + + Chalatenango + Chalatenango + + + La Libertad + La Libertad + + + La Paz + Ла-Пас + + + La Unión + La Unión + + + Morazán + Morazán + + + San Miguel + San Miguel + + + San Salvador + San Salvador + + + Santa Ana + Santa Ana + + + San Vicente + San Vicente + + + Sonsonate + Sonsonate + + + Usulután + Usulután + + + Región Continental + Región Continental + + + Centro Sur + Centro Sur + + + Kie-Ntem + Kie-Ntem + + + Litoral + Litoral + + + Wele-Nzás + Wele-Nzás + + + Región Insular + Región Insular + + + Annobón + Annobón + + + Bioko Norte + Bioko Norte + + + Bioko Sur + Bioko Sur + + + Akele Guzai [Akalä Guzay] + Akele Guzai [Akalä Guzay] + + + Asmara [Asmära] + Asmara [Asmära] + + + Barka + Barka + + + Denkalia [Dänkali] + Denkalia [Dänkali] + + + Gash-Setit [Gaš enna Sätit] + Gash-Setit [Gaš enna Sätit] + + + Hamasien [Hamasén] + Hamasien [Hamasén] + + + Sahel + Sahel + + + Semhar [Sämhar] + Semhar [Sämhar] + + + Senhit [Sänhet] + Senhit [Sänhet] + + + Seraye [Särayé] + Seraye [Särayé] + + + Harjumaa + Harjumaa + + + Hiiumaa + Hiiumaa + + + Ida-Virumaa + Ida-Virumaa + + + Jōgevamaa + Jōgevamaa + + + Järvamaa + Järvamaa + + + Läänemaa + Läänemaa + + + Lääne-Virumaa + Lääne-Virumaa + + + Pōlvamaa + Pōlvamaa + + + Pärnumaa + Pärnumaa + + + Raplamaa + Raplamaa + + + Saaremaa + Saaremaa + + + Tartumaa + Tartumaa + + + Valgamaa + Valgamaa + + + Viljandimaa + Viljandimaa + + + Vōrumaa + Vōrumaa + + + Addis Ababa [Addis Abeba] + Addis Ababa [Addis Abeba] + + + Afar + Afar + + + Amara [Amhara] + Amara [Amhara] + + + Benshangul-Gumaz [Bénishangul] + Benshangul-Gumaz [Bénishangul] + + + Gambela Peoples [Gambéla] + Gambela Peoples [Gambéla] + + + Harari People [Harer] + Harari People [Harer] + + + Oromia [Oromo] + Oromia [Oromo] + + + Somali + Somali + + + Southern Nations, Nationalities and Peoples + Southern Nations, Nationalities and Peoples + + + Tigrai [Tegré] + Tigrai [Tegré] + + + Falkland Islands (Malvinas) + Falkland Islands (Malvinas) + + + Faroe Islands + Faroe Islands + + + Central + Central + + + Eastern + Eastern + + + Northern + Northern + + + Western + Western + + + Rotuma + Rotuma + + + Ahvenanmaan lääni + Ahvenanmaan lääni + + + Etelä-Suomen lääni + Etelä-Suomen lääni + + + Itä-Suomen lääni + Itä-Suomen lääni + + + Lapin lääni + Lapin lääni + + + Länsi-Suomen lääni + Länsi-Suomen lääni + + + Oulun lääni + Oulun lääni + + + Alsace + Alsace + + + Bas-Rhin + Bas-Rhin + + + Haut-Rhin + Haut-Rhin + + + Aquitaine + Aquitaine + + + Deux-Sèvres + Deux-Sèvres + + + Dordogne + Dordogne + + + Gironde + Gironde + + + Landes + Landes + + + Lot-et-Garonne + Lot-et-Garonne + + + Pyrénées-Atlantiques + Pyrénées-Atlantiques + + + Auvergne + Auvergne + + + Allier + Allier + + + Cantal + Cantal + + + Haute-Loire + Haute-Loire + + + Puy-de-Dôme + Puy-de-Dôme + + + Basse-Normandie + Basse-Normandie + + + Calvados + Calvados + + + Manche + Manche + + + Orne + Orne + + + Bourgogne + Bourgogne + + + Côte-d'Or + Côte-d'Or + + + Nièvre + Nièvre + + + Saône-et-Loire + Saône-et-Loire + + + Yonne + Yonne + + + Bretagne + Bretagne + + + Cotes-d'Armor + Cotes-d'Armor + + + Finistère + Finistère + + + Ille-et-Vilaine + Ille-et-Vilaine + + + Morbihan + Morbihan + + + Centre + Центральный регион + + + Cher + Cher + + + Eure-et-Loir + Eure-et-Loir + + + Indre + Indre + + + Indre-et-Loire + Indre-et-Loire + + + Loir-et-Cher + Loir-et-Cher + + + Loiret + Loiret + + + Champagne-Ardenne + Champagne-Ardenne + + + Ardennes + Ardennes + + + Aube + Aube + + + Haute-Marne + Haute-Marne + + + Marne + Marne + + + Corse + Corse + + + Corse-du-Sud + Corse-du-Sud + + + Haute-Corse + Haute-Corse + + + Franche-Comté + Franche-Comté + + + Doubs + Doubs + + + Haute-Saône + Haute-Saône + + + Jura + Jura + + + Territoire de Belfort + Territoire de Belfort + + + Haute-Normandie + Haute-Normandie + + + Eure + Eure + + + Seine-Maritime + Seine-Maritime + + + Île-de-France + Île-de-France + + + Essonne + Essonne + + + Hauts-de-Seine + Hauts-de-Seine + + + Paris + Paris + + + Seine-et-Marne + Seine-et-Marne + + + Seine-Saint-Denis + Seine-Saint-Denis + + + Val-de-Marne + Val-de-Marne + + + Val-d'Oise + Val-d'Oise + + + Yvelines + Yvelines + + + Languedoc-Roussillon + Languedoc-Roussillon + + + Aude + Aude + + + Gard + Gard + + + Hérault + Hérault + + + Lozère + Lozère + + + Pyrénées-Orientales + Pyrénées-Orientales + + + Limousin + Limousin + + + Corrèze + Corrèze + + + Creuse + Creuse + + + Haute-Vienne + Haute-Vienne + + + Lorraine + Lorraine + + + Meurthe-et-Moselle + Meurthe-et-Moselle + + + Meuse + Meuse + + + Moselle + Moselle + + + Vosges + Vosges + + + Midi-Pyrénées + Midi-Pyrénées + + + Ariège + Ariège + + + Aveyron + Aveyron + + + Gers + Gers + + + Haute-Garonne + Haute-Garonne + + + Hautes-Pyrénées + Hautes-Pyrénées + + + Lot + Lot + + + Tarn + Tarn + + + Tarn-et-Garonne + Tarn-et-Garonne + + + Nord-Pas-de-Calais + Nord-Pas-de-Calais + + + Nord + Nord + + + Pas-de-Calais + Pas-de-Calais + + + Pays de la Loire + Pays de la Loire + + + Loire-Atlantique + Loire-Atlantique + + + Maine-et-Loire + Maine-et-Loire + + + Mayenne + Mayenne + + + Sarthe + Sarthe + + + Vendée + Vendée + + + Picardie + Picardie + + + Aisne + Aisne + + + Oise + Oise + + + Somme + Somme + + + Poitou-Charentes + Poitou-Charentes + + + Charente + Charente + + + Charente-Maritime + Charente-Maritime + + + Vienne + Vienne + + + Provence-Alpes-Côte d'Azur + Provence-Alpes-Côte d'Azur + + + Alpes-de-Haute-Provence + Alpes-de-Haute-Provence + + + Alpes-Maritimes + Alpes-Maritimes + + + Bauches-du-Rhône + Bauches-du-Rhône + + + Hautes-Alpes + Hautes-Alpes + + + Var + Var + + + Vaucluse + Vaucluse + + + Rhône-Alpes + Rhône-Alpes + + + Ain + Ain + + + Ardèche + Ardèche + + + Drôme + Drôme + + + Haute-Savoie + Haute-Savoie + + + Isère + Isère + + + Loire + Loire + + + Rhône + Rhône + + + Savoie + Savoie + + + French Guiana + French Guiana + + + French Polynesia + French Polynesia + + + French Southern Territories + French Southern Territories + + + Estuaire + Estuaire + + + Haut-Ogooué + Haut-Ogooué + + + Moyen-Ogooué + Moyen-Ogooué + + + Ngounié + Ngounié + + + Nyanga + Nyanga + + + Ogooué-Ivindo + Ogooué-Ivindo + + + Ogooué-Lolo + Ogooué-Lolo + + + Ogooué-Maritime + Ogooué-Maritime + + + Woleu-Ntem + Woleu-Ntem + + + Banjul + Banjul + + + Lower River + Lower River + + + MacCarthy Island + MacCarthy Island + + + North Bank + North Bank + + + Upper River + Upper River + + + Western + Western + + + Ap'khazet'is Avtonomiuri Respublika [Abkhazia] + Ap'khazet'is Avtonomiuri Respublika [Abkhazia] + + + Acharis Avtonomiuri Respublika [Ajaria] + Acharis Avtonomiuri Respublika [Ajaria] + + + Bat'umi + Bat'umi + + + Chiat'ura + Chiat'ura + + + Gagra + Gagra + + + Gori + Gori + + + K'ut'aisi + K'ut'aisi + + + P'ot'i + P'ot'i + + + Rust'avi + Rust'avi + + + Sokhumi + Sokhumi + + + T'bilisi + T'bilisi + + + Tqibuli + Tqibuli + + + Tqvarch'eli + Tqvarch'eli + + + Tsqalmbo + Tsqalmbo + + + Zugdidi + Zugdidi + + + Abashis Raioni + Abashis Raioni + + + Adigenis Raioni + Adigenis Raioni + + + Akhalgoris Raioni + Akhalgoris Raioni + + + Akhalk'alak'is Raioni + Akhalk'alak'is Raioni + + + Akhalts'ikhis Raioni + Akhalts'ikhis Raioni + + + Akhmetis Raioni + Akhmetis Raioni + + + Ambrolauris Raioni + Ambrolauris Raioni + + + Aspindzis Raioni + Aspindzis Raioni + + + Baghdat'is Raioni + Baghdat'is Raioni + + + Bolnisis Raioni + Bolnisis Raioni + + + Borjomis Raioni + Borjomis Raioni + + + Ch'khorotsqus Raioni + Ch'khorotsqus Raioni + + + Ch'okhatauris Raioni + Ch'okhatauris Raioni + + + Dedop'listsqaros Raioni + Dedop'listsqaros Raioni + + + Dmanisis Raioni + Dmanisis Raioni + + + Dushet'is Raioni + Dushet'is Raioni + + + Galis Raioni + Galis Raioni + + + Gardabnis Raioni + Gardabnis Raioni + + + Goris Raioni + Goris Raioni + + + Gudaut'is Raioni + Gudaut'is Raioni + + + Gulrip'shis Raioni + Gulrip'shis Raioni + + + Gurjaanis Raioni + Gurjaanis Raioni + + + Javis Raioni + Javis Raioni + + + K'arelis Raioni + K'arelis Raioni + + + Kaspis Raioni + Kaspis Raioni + + + K'edis Raioni + K'edis Raioni + + + Kharagaulis Raioni + Kharagaulis Raioni + + + Khashuris Raioni + Khashuris Raioni + + + Khelvach'auris Raioni + Khelvach'auris Raioni + + + Khobis Raioni + Khobis Raioni + + + Khonis Raioni + Khonis Raioni + + + Khulos Raioni + Khulos Raioni + + + K'obuletis Raioni + K'obuletis Raioni + + + Lagodekhis Raioni + Lagodekhis Raioni + + + Lanch'khut'is Raioni + Lanch'khut'is Raioni + + + Lentekhis Raioni + Lentekhis Raioni + + + Marneulis Raioni + Marneulis Raioni + + + Martvilis Raioni + Martvilis Raioni + + + Mestiis Raioni + Mestiis Raioni + + + Mts'khet'is Raioni + Mts'khet'is Raioni + + + Ninotsmindis Raioni + Ninotsmindis Raioni + + + Och'amch'iris Raioni + Och'amch'iris Raioni + + + Onis Raioni + Onis Raioni + + + Ozurget'is Raioni + Ozurget'is Raioni + + + Qazbegis Raioni + Qazbegis Raioni + + + Qvarlis Raioni + Qvarlis Raioni + + + Sach'kheris Raioni + Sach'kheris Raioni + + + Sagarejos Raioni + Sagarejos Raioni + + + Samtrediis Raioni + Samtrediis Raioni + + + Senakis Raioni + Senakis Raioni + + + Shuakhevis Raioni + Shuakhevis Raioni + + + Sighnaghis Raioni + Sighnaghis Raioni + + + Sokhumis Raioni + Sokhumis Raioni + + + T'elavis Raioni + T'elavis Raioni + + + T'erjolis Raioni + T'erjolis Raioni + + + T'et'ritsqaros Raioni + T'et'ritsqaros Raioni + + + T'ianet'is Raioni + T'ianet'is Raioni + + + Ts'ageris Raioni + Ts'ageris Raioni + + + Tsalenjikhis Raioni + Tsalenjikhis Raioni + + + Tsalkis Raioni + Tsalkis Raioni + + + Vanis Raioni + Vanis Raioni + + + Zestap'onis Raioni + Zestap'onis Raioni + + + Zugdidis Raioni + Zugdidis Raioni + + + Baden-Württemberg + Baden-Württemberg + + + Bayern + Bayern + + + Berlin + Berlin + + + Brandenburg + Brandenburg + + + Bremen + Bremen + + + Hamburg + Hamburg + + + Hessen + Hessen + + + Mecklenburg-Vorpommern + Mecklenburg-Vorpommern + + + Niedersachsen + Niedersachsen + + + Nordrhein-Westfalen + Nordrhein-Westfalen + + + Rheinland-Pfalz + Rheinland-Pfalz + + + Saarland + Saarland + + + Sachsen + Sachsen + + + Sachsen-Anhalt + Sachsen-Anhalt + + + Schleswig-Holstein + Schleswig-Holstein + + + Thüringen + Thüringen + + + Ashanti + Ashanti + + + Brong-Ahafo + Brong-Ahafo + + + Central + Central + + + Eastern + Eastern + + + Greater Accra + Greater Accra + + + Northern + Northern + + + Upper East + Upper East + + + Upper West + Upper West + + + Volta + Volta + + + Western + Western + + + Gibraltar + Gibraltar + + + Channel Islands + Channel Islands + + + Guernsey [Guernesey] + Guernsey [Guernesey] + + + Jersey + Jersey + + + England + England + + + Barking and Dagenham + Barking and Dagenham + + + Barnet + Barnet + + + Barnsley + Barnsley + + + Bath and North East Somerset + Bath and North East Somerset + + + Bedfordshire + Bedfordshire + + + Bexley + Bexley + + + Birmingham (City of) + Birmingham (City of) + + + Blackburn with Darwen + Blackburn with Darwen + + + Blackpool + Blackpool + + + Bolton + Bolton + + + Bournemouth + Bournemouth + + + Bracknell Forest + Bracknell Forest + + + Bradford (City of) + Bradford (City of) + + + Brent + Brent + + + Brighton and Hove + Brighton and Hove + + + Bristol, City of + Bristol, City of + + + Bromley + Bromley + + + Buckinghamshire + Buckinghamshire + + + Bury + Bury + + + Calderdale + Calderdale + + + Cambridgeshire + Cambridgeshire + + + Camden + Camden + + + Cheshire + Cheshire + + + Cornwall + Cornwall + + + Coventry (City of) + Coventry (City of) + + + Croydon + Croydon + + + Cumbria + Cumbria + + + Darlington + Darlington + + + Derby (City of) + Derby (City of) + + + Derbyshire + Derbyshire + + + Devon + Devon + + + Doncaster + Doncaster + + + Dorset + Dorset + + + Dudley + Dudley + + + Durharn + Durharn + + + Ealing + Ealing + + + East Riding of Yorkshire + East Riding of Yorkshire + + + East Sussex + East Sussex + + + Enfield + Enfield + + + Essex + Essex + + + Gateshead + Gateshead + + + Gloucestershire + Gloucestershire + + + Greenwich + Greenwich + + + Hackney + Hackney + + + Haiton + Haiton + + + Hammersmith and Fulham + Hammersmith and Fulham + + + Hampshire + Hampshire + + + Haringey + Haringey + + + Harrow + Harrow + + + Hartlepool + Hartlepool + + + Havering + Havering + + + Herefordshire, County of + Herefordshire, County of + + + Hertfordshire + Hertfordshire + + + Hillingdon + Hillingdon + + + Hounslow + Hounslow + + + Isle of Wight + Isle of Wight + + + Isles of Scilly + Isles of Scilly + + + Islington + Islington + + + Kensington and Chelsea + Kensington and Chelsea + + + Kent + Kent + + + Kingston upon Hull, City of + Kingston upon Hull, City of + + + Kingston upon Thames + Kingston upon Thames + + + Kirklees + Kirklees + + + Knowsley + Knowsley + + + Lambeth + Lambeth + + + Lancashire + Lancashire + + + Leeds (City of) + Leeds (City of) + + + Leitester (City of) + Leitester (City of) + + + Leicestershire + Leicestershire + + + Lewisham + Lewisham + + + Lincolnshire + Lincolnshire + + + Liverpool (City of) + Liverpool (City of) + + + London, City of + London, City of + + + Luton + Luton + + + Manchester (City of) + Manchester (City of) + + + Medway + Medway + + + Merton + Merton + + + Middlesbrough + Middlesbrough + + + Milton Keynes + Milton Keynes + + + Newcastle upon Tyne (City of) + Newcastle upon Tyne (City of) + + + Newham + Newham + + + Norfolk + Norfolk + + + North East Lincolnshire + North East Lincolnshire + + + North Lincolnshire + North Lincolnshire + + + North Somerset + North Somerset + + + North Tyneside + North Tyneside + + + North Yorkshire + North Yorkshire + + + Northamptonshire + Northamptonshire + + + Northumberland + Northumberland + + + Nottingham (City of) + Nottingham (City of) + + + Nottinghamshire + Nottinghamshire + + + Oldham + Oldham + + + Oxfordshire + Oxfordshire + + + Peterborough + Peterborough + + + Plymouth (City of) + Plymouth (City of) + + + Poole + Poole + + + Portsmouth (City of) + Portsmouth (City of) + + + Reading + Reading + + + Redbridge + Redbridge + + + Redcar and Cleveland + Redcar and Cleveland + + + Richmond upon Thames + Richmond upon Thames + + + Rochdale + Rochdale + + + Rotherharn + Rotherharn + + + Rutland + Rutland + + + St. Helens + St. Helens + + + Salford (City of) + Salford (City of) + + + Sandweil + Sandweil + + + Sefton + Sefton + + + Sheffield (City of) + Sheffield (City of) + + + Shropshire + Shropshire + + + Slough + Slough + + + Solihull + Solihull + + + Somerset + Somerset + + + South Gloucestershire + South Gloucestershire + + + South Tyneside + South Tyneside + + + Southampton (City of) + Southampton (City of) + + + Southend-on-Sea + Southend-on-Sea + + + Southwark + Southwark + + + Staffordshire + Staffordshire + + + Stockport + Stockport + + + Stockton-On-Tees + Stockton-On-Tees + + + Stoke-on-Trent (City of) + Stoke-on-Trent (City of) + + + Suffolk + Suffolk + + + Sunderland (City of) + Sunderland (City of) + + + Surrey + Surrey + + + Sutton + Sutton + + + Swindon + Swindon + + + Tameside + Tameside + + + Telford and Wrekin + Telford and Wrekin + + + Thurrock + Thurrock + + + Torbay + Torbay + + + Tower Hamlets + Tower Hamlets + + + Trafford + Trafford + + + Wakefield (City of) + Wakefield (City of) + + + Walsall + Walsall + + + Waltham Forest + Waltham Forest + + + Wandsworth + Wandsworth + + + Warrington + Warrington + + + Warwickshire + Warwickshire + + + West Berkshire + West Berkshire + + + West Sussex + West Sussex + + + Westminster (City of) + Westminster (City of) + + + Wigan + Wigan + + + Wiltshire + Wiltshire + + + Windsor and Maidenhead + Windsor and Maidenhead + + + Wirral + Wirral + + + Wokingham + Wokingham + + + Wolverhampton + Wolverhampton + + + Worcestershire + Worcestershire + + + York (City of) + York (City of) + + + Isle of Man + Isle of Man + + + Northern Ireland + Northern Ireland + + + Antrim + Antrim + + + Ards + Ards + + + Armagh + Armagh + + + Ballymena + Ballymena + + + Ballymoney + Ballymoney + + + Banbridge + Banbridge + + + Belfast (City of) + Belfast (City of) + + + Carrickfergus + Carrickfergus + + + Castlereagh + Castlereagh + + + Coleraine + Coleraine + + + Cookstown + Cookstown + + + Craigavon + Craigavon + + + Derry (City of) + Derry (City of) + + + Down + Down + + + Dungannon + Dungannon + + + Fermanagh + Fermanagh + + + Larne + Larne + + + Limavady + Limavady + + + Lisburn + Lisburn + + + Magherafelt + Magherafelt + + + Moyle + Moyle + + + Newry and Mourne + Newry and Mourne + + + Newtownabbey + Newtownabbey + + + North Down + North Down + + + Omagh + Omagh + + + Strabane + Strabane + + + Scotland + Scotland + + + Aberdeen City + Aberdeen City + + + Aberdeenshire + Aberdeenshire + + + Angus + Angus + + + Argyll and Bute + Argyll and Bute + + + Clackmannanshire + Clackmannanshire + + + Dumfries and Galloway + Dumfries and Galloway + + + Dundee City + Dundee City + + + East Ayrshire + East Ayrshire + + + East Dunbartonshire + East Dunbartonshire + + + East Lothian + East Lothian + + + East Renfrewshire + East Renfrewshire + + + Edinburgh, City of + Edinburgh, City of + + + Eilean Siar + Eilean Siar + + + Falkirk + Falkirk + + + Fife + Fife + + + Glasgow City + Glasgow City + + + Highland + Highland + + + Inverclyde + Inverclyde + + + Midlothian + Midlothian + + + Moray + Moray + + + North Ayrshire + North Ayrshire + + + North Lanarkshire + North Lanarkshire + + + Orkney Islands + Orkney Islands + + + Perth and Kinross + Perth and Kinross + + + Renfrewshire + Renfrewshire + + + Scottish Borders, The + Scottish Borders, The + + + Shetland Islands + Shetland Islands + + + South Ayrshire + South Ayrshire + + + South Lanarkshire + South Lanarkshire + + + Stirling + Stirling + + + West Dunbartonshire + West Dunbartonshire + + + West Lothian + West Lothian + + + Wales [Cymru] + Wales [Cymru] + + + Blaenau Gwent + Blaenau Gwent + + + Bridgend [Pen-y-bont ar Ogwr GB-POG] + Bridgend [Pen-y-bont ar Ogwr GB-POG] + + + Caerphilly [Caerffili GB-CAF] + Caerphilly [Caerffili GB-CAF] + + + Cardiff (City of) [Caerdydd GB-CRD] + Cardiff (City of) [Caerdydd GB-CRD] + + + Carmarthenshire [Sir Gaerfyrddin GB-GFY] + Carmarthenshire [Sir Gaerfyrddin GB-GFY] + + + Ceredigion [Sir Ceredigion] + Ceredigion [Sir Ceredigion] + + + Conwy + Conwy + + + Denbighshire [Sir Ddinbych GB-DDB] + Denbighshire [Sir Ddinbych GB-DDB] + + + Flintshire [Sir y Fflint GB-FFL] + Flintshire [Sir y Fflint GB-FFL] + + + Gwynedd + Gwynedd + + + Isle of Anglesey [Sir Ynys Man GB-YNM] + Isle of Anglesey [Sir Ynys Man GB-YNM] + + + Merthyr Tydfil [Merthyr Tudful GB-MTU] + Merthyr Tydfil [Merthyr Tudful GB-MTU] + + + Monmouthshire [Sir Fynwy GB-FYN] + Monmouthshire [Sir Fynwy GB-FYN] + + + Neath Port Talbot [Castell-nedd Port Talbot GB-CTL] + Neath Port Talbot [Castell-nedd Port Talbot GB-CTL] + + + Newport [Casnewydd GB-CNW] + Newport [Casnewydd GB-CNW] + + + Pembrokeshire [Sir Benfro CB-BNF] + Pembrokeshire [Sir Benfro CB-BNF] + + + Powys + Powys + + + Rhondda, Cynon, Taff [Rhondda, Cynon, Taf] + Rhondda, Cynon, Taff [Rhondda, Cynon, Taf] + + + Swansea (City of) [Abertawe GB-ATA] + Swansea (City of) [Abertawe GB-ATA] + + + Torfaen [Tor-faen] + Torfaen [Tor-faen] + + + Vale of Glamorgan, The [Bro Morgannwg GB-BMG] + Vale of Glamorgan, The [Bro Morgannwg GB-BMG] + + + Wrexham [Wrecsam GB-WRC] + Wrexham [Wrecsam GB-WRC] + + + Anatoliki Makedonia kai Thraki + Anatoliki Makedonia kai Thraki + + + Drama + Drama + + + Evros + Evros + + + Kavalla + Kavalla + + + Rodopi + Rodopi + + + Xanthi + Xanthi + + + Attiki + Attiki + + + Attiki + Attiki + + + Dytiki Ellada + Dytiki Ellada + + + Achaïa + Achaïa + + + Aitolia-Akarnania + Aitolia-Akarnania + + + Ileia + Ileia + + + Dytiki Makedonia + Dytiki Makedonia + + + Florina + Florina + + + Grevena + Grevena + + + Kastoria + Kastoria + + + Kozani + Kozani + + + Ionioi Nisoi + Ionioi Nisoi + + + Kefallinia + Kefallinia + + + Kerkyra + Kerkyra + + + Lefkas + Lefkas + + + Zakynthos + Zakynthos + + + Ipeiros + Ipeiros + + + Arta + Arta + + + Ioannina + Ioannina + + + Preveza + Preveza + + + Thesprotia + Thesprotia + + + Kentriki Makedonia + Kentriki Makedonia + + + Chalkidiki + Chalkidiki + + + Imathia + Imathia + + + Kilkis + Kilkis + + + Pella + Pella + + + Pieria + Pieria + + + Serrai + Serrai + + + Thessaloniki + Thessaloniki + + + Kriti + Kriti + + + Chania + Chania + + + Irakleion + Irakleion + + + Lasithion + Lasithion + + + Rethymnon + Rethymnon + + + Notio Aigaio + Notio Aigaio + + + Dodekanisos + Dodekanisos + + + Kyklades + Kyklades + + + Peloponnisos + Peloponnisos + + + Argolis + Argolis + + + Arkadia + Arkadia + + + Korinthia + Korinthia + + + Lakonia + Lakonia + + + Messinia + Messinia + + + Sterea Ellada + Sterea Ellada + + + Evrytania + Evrytania + + + Evvoia + Evvoia + + + Fokis + Fokis + + + Fthiotis + Fthiotis + + + Voiotia + Voiotia + + + Thessalia + Thessalia + + + Karditsa + Karditsa + + + Larisa + Larisa + + + Magnisia + Magnisia + + + Trikala + Trikala + + + Voreio Aigaio + Voreio Aigaio + + + Chios + Chios + + + Lesvos + Lesvos + + + Samos + Samos + + + Greenland + Greenland + + + Grenada + Grenada + + + Guadeloupe + Guadeloupe + + + Guam + Guam + + + Alta Verapaz + Alta Verapaz + + + Baja Verapaz + Baja Verapaz + + + Chimaltenango + Chimaltenango + + + Chiquimula + Chiquimula + + + El Progreso + El Progreso + + + Escuintla + Escuintla + + + Guatemala + Guatemala + + + Huehuetenango + Huehuetenango + + + Izabal + Izabal + + + Jalapa + Jalapa + + + Jutiapa + Jutiapa + + + Petén + Petén + + + Quezaltenango + Quezaltenango + + + Quiché + Quiché + + + Retalhuleu + Retalhuleu + + + Sacatepéquez + Sacatepéquez + + + San Marcos + San Marcos + + + Santa Rosa + Santa Rosa + + + Sololá + Sololá + + + Suchitepéquez + Suchitepéquez + + + Totonicapán + Totonicapán + + + Zacapa + Zacapa + + + Bake, Gouvernorat de + Bake, Gouvernorat de + + + Boffa + Boffa + + + Boké + Boké + + + Fria + Fria + + + Gaoual + Gaoual + + + Koundara + Koundara + + + Conakry, Gouvernorat de + Conakry, Gouvernorat de + + + Faranah, Gouvernorat de + Faranah, Gouvernorat de + + + Dabola + Dabola + + + Dinguiraye + Dinguiraye + + + Faranah + Faranah + + + Kissidougou + Kissidougou + + + Kankan, Gouvernorat de + Kankan, Gouvernorat de + + + Kankan + Kankan + + + Kérouané + Kérouané + + + Kouroussa + Kouroussa + + + Mandiana + Mandiana + + + Siguiri + Siguiri + + + Kindia, Gouvernorat de + Kindia, Gouvernorat de + + + Coyah + Coyah + + + Dubréka + Dubréka + + + Forécariah + Forécariah + + + Kindia + Kindia + + + Télimélé + Télimélé + + + Labé, Gouvernorat de + Labé, Gouvernorat de + + + Koubia + Koubia + + + Labé + Labé + + + Lélouma + Lélouma + + + Mali + Mali + + + Tougué + Tougué + + + Mamou, Gouvernorat de + Mamou, Gouvernorat de + + + Dalaba + Dalaba + + + Mamou + Mamou + + + Pita + Pita + + + Nzérékoré, Gouvernorat de + Nzérékoré, Gouvernorat de + + + Beyla + Beyla + + + Guékédou + Guékédou + + + Lola + Lola + + + Macenta + Macenta + + + Nzérékoré + Nzérékoré + + + Yomou + Yomou + + + Bissau + Bissau + + + Bafatá + Bafatá + + + Biombo + Biombo + + + Bolama + Bolama + + + Cacheu + Cacheu + + + Gabú + Gabú + + + Oio + Oio + + + Quinara + Quinara + + + Barima-Waini + Barima-Waini + + + Cuyuni-Mazaruni + Cuyuni-Mazaruni + + + Demerara-Mahaica + Demerara-Mahaica + + + East Berbice-Corentyne + East Berbice-Corentyne + + + Essequibo Islands-West Demerara + Essequibo Islands-West Demerara + + + Mahaica-Berbice + Mahaica-Berbice + + + Pomeroon-Supenaam + Pomeroon-Supenaam + + + Potaro-Siparuni + Potaro-Siparuni + + + Upper Demerara-Berbice + Upper Demerara-Berbice + + + Upper Takutu-Upper Essequibo + Upper Takutu-Upper Essequibo + + + Artibonite + Artibonite + + + Centre + Центральный регион + + + Grande-Anse + Grande-Anse + + + Nord + Nord + + + Nord-Est + Nord-Est + + + Nord-Ouest + Nord-Ouest + + + Ouest + Ouest + + + Sud + Sud + + + Sud-Est + Sud-Est + + + Heard & McDonald Islands + Heard & McDonald Islands + + + Vatican City (Holy See) + Vatican City (Holy See) + + + Atlántida + Atlántida + + + Colón + Colón + + + Comayagua + Comayagua + + + Copán + Copán + + + Cortés + Cortés + + + Choluteca + Choluteca + + + El Paraíso + El Paraíso + + + Francisco Morazán + Francisco Morazán + + + Gracias a Dios + Gracias a Dios + + + Intibucá + Intibucá + + + Islas de la Bahía + Islas de la Bahía + + + La Paz + Ла-Пас + + + Lempira + Lempira + + + Ocotepeque + Ocotepeque + + + Olancho + Olancho + + + Santa Bárbara + Santa Bárbara + + + Valle + Valle + + + Yoro + Yoro + + + Hong Kong + Гонконг (Сянган) + + + Budapest + Budapest + + + Bács-Kiskun + Bács-Kiskun + + + + diff --git a/system/modules/isotope/languages/ru/tl_iso_address.php b/system/modules/isotope/languages/ru/tl_iso_address.php deleted file mode 100644 index f6b611000d..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_address.php +++ /dev/null @@ -1,66 +0,0 @@ - + + + + Store ID + ID Магазина + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + Используйте разные идентификаторы магазина, чтобы группировать набор конфигураций магазина. Корзина пользователя и адреса будут совместно использоваться в одинаковых ID магазина. + + + Label + Метка + + + Please enter a custom label for this address. + + + Gender + + + Please choose the gender. + + + Salutation + Обращение + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Пожалуйста, введите обращение (г-н, г-жа, д-р, профессор). + + + First name + Имя + + + Please enter the first name. + Введите имя. + + + Last name + Фамилия + + + Please enter the last name. + Введите фамилию. + + + Date of birth + + + Please enter the date of birth. + + + Company + Компания + + + You can enter a company name here. + Вы можете ввести название компании сюда. + + + VAT No. + + + Please enter a VAT number. + + + Street + Улица + + + Please enter the street name and the street number. + Введите название улицы и номер улицы. + + + Street 2 + Улица 2 + + + Enter a second street info if there's any. + Введитье информацию о улице 2, если есть. + + + Street 3 + Улица 3 + + + Enter a third street info if there's any. + Введитье информацию о улице 3, если есть. + + + Postal code + Почтовый индекс + + + Please enter the postal code. + Пожалуйста, введите почтовый индекс. + + + City + Город + + + Please enter the name of the city. + + + State + Штат + + + Please enter the name of the state. + + + Country + Страна + + + Please select a country. + Выберите страну. + + + Phone number + Номер телефона + + + Please enter the phone number. + Пожалуйста, введите номер телефона. + + + E-mail address + Адрес электронной почты + + + Please enter a valid e-mail address. + Пожалуйста, введите правильный адрес электронной почты. + + + Default billing address + Адрес платежа по-умолчанию + + + Is this your default billing address? + Это ваш адрес платежа по-умолчанию? + + + Default shipping address + Адрес доставки по-умолчанию + + + Is this your default shipping address? + Это ваш адрес доставки по-умолчанию? + + + Store + Магазин + + + Personal data + Личные данные + + + Address details + Полный адрес + + + Contact details + Контактная информация + + + Default address + Адрес по-умолчанию + + + Personal data + Личные данные + + + Address details + Полный адрес + + + Contact details + Контактная информация + + + Default address + Адрес по-умолчанию + + + New address + Новый адрес + + + Create a new address + Создать новый адрес + + + Edit address + Изменить адрес + + + Edit address ID %s + Изменить адрес ID %s + + + Duplicate address + Копировать адрес + + + Duplicate address ID %s + Копировать адрес ID %s + + + Delete address + Удалить адрес + + + Delete address ID %s + Удалить адрес ID %s + + + Address details + Полный адрес + + + Show details of address ID %s + Показать полный адрес ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_attribute.php b/system/modules/isotope/languages/ru/tl_iso_attribute.php deleted file mode 100644 index 79df5d5a6a..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_attribute.php +++ /dev/null @@ -1,42 +0,0 @@ - + + + + Name + Название + + + Please enter a name for this attribute. + Пожалуйста, введите имя для этого атрибута. + + + Internal name + Внутреннее имя + + + Internal name is the database field name and must be unique. + Внутреннее имя представляет собой имя поля базы данных и должно быть уникальным. + + + Type + Тип + + + Please select a type for this attribute. + Пожалуйста, выберите тип этого атрибута. + + + Field Group + Группа полей + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + Добавить в мастер вариантов товара + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + Определено клиентом + + + Please select if this value defined by the customer (frontend). + + + Description + Описание + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + Опции + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + Метка + + + Default + + + Group + + + Options + Опции + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + Обязательное поле + + + The field must be filled when editing a product. + + + Multiple selection + Множественный выбор + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + Использовать редактор HTML + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + Многоязычный + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + Максимальная длинна + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + Родительское поле + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + Номер телефона + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + Адрес электронной почты + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + Цена + + + Checks whether the input is a valid price. + + + Discount + Скидка + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + Случайный порядок + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + ##order_id## + + + Generated document number for the order. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + + + Copy attribute ID %s. + + + Delete attribute + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + + + Show details for attribute ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + + + Description + Описание + + + Options + Опции + + + Attribute configuration + + + Search & Filtering Settings + + + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_attribute_option.php b/system/modules/isotope/languages/ru/tl_iso_attribute_option.php deleted file mode 100644 index a3d91b0bd6..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_attribute_option.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Type + Тип + + + Select a type for this label. + + + Option + + + Group + + + Default + + + Check here if this should be the default option. + + + Label + Метка + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Цена + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_baseprice.php b/system/modules/isotope/languages/ru/tl_iso_baseprice.php deleted file mode 100644 index ce98bf72ff..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_baseprice.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Название + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + Метка + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_config.php b/system/modules/isotope/languages/ru/tl_iso_config.php deleted file mode 100644 index 19a7723788..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_config.php +++ /dev/null @@ -1,43 +0,0 @@ - + + + + Configuration Name + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + Метка + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + Имя + + + Please enter the first name (if applicable). + + + Last name + Фамилия + + + Please enter the last name (if applicable). + + + Company + Компания + + + You can enter a company name here (if applicable). + + + VAT No. + + + Please enter a VAT number. + + + Street + Улица + + + Please enter the street name and the street number. + Введите название улицы и номер улицы. + + + Street 2 + Улица 2 + + + Enter a second street info if there's any. + Введитье информацию о улице 2, если есть. + + + Street 3 + Улица 3 + + + Enter a third street info if there's any. + Введитье информацию о улице 3, если есть. + + + Postal code + Почтовый индекс + + + Please enter the postal code. + Пожалуйста, введите почтовый индекс. + + + City + Город + + + Please enter the name of the city. + + + State + Штат + + + Please enter the name of the state. + + + Country + Страна + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + Номер телефона + + + Please enter the phone number. + Пожалуйста, введите номер телефона. + + + Shipping email address + + + Please enter a valid e-mail address. + Пожалуйста, введите правильный адрес электронной почты. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + Валюта + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + Режим вычисления + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + Папка шаблонов + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + + + Multiply + + + Name + Название + + + Width + + + Height + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + Название + + + Address configuration + + + Configuration + + + Checkout + Оформить заказ + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + Заказы + + + Images + Изображения + + + URL settings + + + Products + Товары + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_document.php b/system/modules/isotope/languages/ru/tl_iso_document.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_document.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_download.php b/system/modules/isotope/languages/ru/tl_iso_download.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_download.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Attachement + + + Select the file or folder content you want to sell. + + + Downloads allowed + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + + + Add a new download to this product + + + Edit download + + + Edit download ID %s + + + Duplicate download + + + Duplicate download ID %s + + + Move download + + + Move download ID %s + + + Delete download + + + Delete download ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + + + Show details of download ID %s + + + Edit product + + + Edit this product + + + Paste at the top + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + + + Limits + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_gallery.php b/system/modules/isotope/languages/ru/tl_iso_gallery.php deleted file mode 100644 index 21e30c15db..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_gallery.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Название + + + Enter a name for this gallery. + + + Type + Тип + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_group.php b/system/modules/isotope/languages/ru/tl_iso_group.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_group.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + + + Paste after group ID %s + + + Paste into + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_integrity.php b/system/modules/isotope/languages/ru/tl_iso_integrity.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_label.php b/system/modules/isotope/languages/ru/tl_iso_label.php deleted file mode 100644 index 03bc82521d..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_label.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Language + Язык + + + Please select a language. + Выберите язык. + + + Label + Метка + + + Enter the source label. + Введите исходную метку. + + + Replacement + Замена + + + Enter the replacement in the specified language. + Введите замену на выбранном языке. + + + New label + Новая метка + + + Create a new label + Создать новую метку + + + Edit label + Изменить метку + + + Edit label ID %s + Изменить ID метки %s + + + Duplicate label + Дублировать метку + + + Duplicate label ID %s + Дублировать ID метки %s + + + Delete label + Удалить метку + + + Delete label ID %s + Удалить метку + + + Label details + Описание метки + + + Show details of label ID %s + Показать описание метки ID %s + + + Label translation + Перевод метки + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_orderstatus.php b/system/modules/isotope/languages/ru/tl_iso_orderstatus.php deleted file mode 100644 index 0adfefa828..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_orderstatus.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Название + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + + + Paste after order status ID %s + + + Paste into + + + Paste into order status ID %s + + + Name + Название + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_payment.php b/system/modules/isotope/languages/ru/tl_iso_payment.php deleted file mode 100644 index 18d6d979a6..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_payment.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + Payment Method Name + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + Методы доставки + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + Типы товаров + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Конфигурации магазинов + + + You can restrict this payment method to certain shop configurations. + + + Price + Цена + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + + + SHA-256 + + + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + + + Please select a payment method for this method. + + + Credit card + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + Методы оплаты + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Описание + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Методы оплаты + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + + + Debit card + + + Prepayment + + + Invoice + Счет + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + + + General configuration + + + Payment gateway configuration + + + Price + Цена + + + Template + + + Expert settings + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_product.php b/system/modules/isotope/languages/ru/tl_iso_product.php deleted file mode 100644 index c013aec449..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_product.php +++ /dev/null @@ -1,32 +0,0 @@ - + + + + Product ID + Идентификатор товара + + + Categories + Категории + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + + + Product type + Тип товара + + + Select your product type. Product types are defined in the store configuration. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + Синоним + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + Название + + + Please enter the name of this product. + + + SKU + Учетная единица + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + Масса груза + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + + + Teaser + + + Please enter the teaser. + + + Description + Описание + + + Please enter the product description. + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + Meta-описание + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + Meta-ключевые слова + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + Цена + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + + + Check if item is not a shipped item (such as downloadable products). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + Изображения + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + + + Hide the product if there is an authenticated user. + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + + + Click here to show this product on your website. + + + Start date + + + Do not show this product before the date specified. + + + Stop date + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + + + Please choose the folder where product assets are located. + + + Preview + + + Alternate text + + + Link target + + + Description + Описание + + + Translate + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + + + Show product variants + + + New product + + + Create new product + + + Add variant + + + Add new variant to a given product + + + Edit product + + + Edit product ID %s + + + Copy product + + + Copy product ID %s + + + Move product + + + Move product ID %s + + + Delete product + + + Delete product ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + + + Show details of product ID %s + + + Advanced filter: + + + Without images + + + Unassigned products + + + New products + + + Added today + + + Added this week + + + Added this month + + + Manually sort products in a page + + + Product groups + + + Manage product groups + + + Import assets + + + Import images and other media from a folder + + + Manage prices + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + + + Generate variants for product ID %s + + + Related products + Сопутствующие товары + + + Manage related products for product ID %s + + + Downloads + + + Edit downloads for product ID %s + + + Currently: %s downloads. + + + Move to group + + + Move product ID %s to a group + + + Group + + + General Settings + + + Meta data + + + Pricing Settings + + + Inventory Settings + + + Shipping Settings + + + Product Options Settings + + + Media Management + + + Expert settings + + + Publishing + + + Quantity + Количество + + + from %s pcs. + + + Price + Цена + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_product_category.php b/system/modules/isotope/languages/ru/tl_iso_product_category.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_product_category.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Move product + + + Move product ID %s + + + Paste at the top + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_product_collection.php b/system/modules/isotope/languages/ru/tl_iso_product_collection.php deleted file mode 100644 index c615e5a135..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_product_collection.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Order ID + + + Member (empty for guests) + + + Unique ID + + + Order status + + + Select the status of this order. + + + Placed + + + Source (Cart ID) + + + Payment date + + + Enter a date when this order has been paid. + + + Shipped date + + + Enter a date when this order has been shipped. + + + Shop configuration + + + Payment method + + + Shipping method + + + Billing address + + + Shipping address + + + Subtotal + Предварительный итог + + + Subtotal without tax + + + Total + + + Total without tax + + + Currency + Валюта + + + Language + Язык + + + Order notes + + + If you would like to convey information to other backend users, please do so here. + + + Edit order + + + Edit order ID %s + + + Copy order + + + Copy order ID %s + + + Delete order + + + Delete order ID %s + + + Order details + + + Show details of order ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + + + Order details + + + Email data + + + Billing address data + + + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_product_price.php b/system/modules/isotope/languages/ru/tl_iso_product_price.php deleted file mode 100644 index 6cfd94f11f..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_product_price.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Price Tiers + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + + + Tax Class + + + Please select a tax class for this price. + + + Store configuration + Конфигурация магазина + + + Select a store configuration for this price. + + + Member group + + + Select a member group for this price. + + + Use from + + + Do not use the price on the website before this day. + + + Use until + + + Do not use the price on the website after this day. + + + Add price + + + Add a new price to this product + + + Edit price + + + Edit price ID %s + + + Duplicate price + + + Duplicate price ID %s + + + Delete price + + + Delete price ID %s + + + Price details + + + Show details of price ID %s + + + Quantity (min) + + + Price + Цена + + + Price + Цена + + + Limitations + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_producttype.php b/system/modules/isotope/languages/ru/tl_iso_producttype.php deleted file mode 100644 index b83a629cdc..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_producttype.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Name + Название + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + + + Check here if this is the default product type. + + + Description + Описание + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Атрибуты + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + Описание + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_related_category.php b/system/modules/isotope/languages/ru/tl_iso_related_category.php deleted file mode 100644 index 278bede547..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_related_category.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Category name + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Name + Название + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_related_product.php b/system/modules/isotope/languages/ru/tl_iso_related_product.php deleted file mode 100644 index 8e7b12a756..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_related_product.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Category + + + Select a category. + + + Products + Товары + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + + + Add a new category with products + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Move category + + + Move category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Edit product + + + Edit this product + + + Category + + + Related products + Сопутствующие товары + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_shipping.php b/system/modules/isotope/languages/ru/tl_iso_shipping.php deleted file mode 100644 index c68ec12c4c..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_shipping.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Shipping Method Name + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + Цена + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + + + Select a tax class that applies to the shipping price. + + + Label + Метка + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Типы товаров + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + Конфигурации магазинов + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Методы доставки + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + + + Hide the module if a member is logged in. + + + Enabled + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_tax_class.php b/system/modules/isotope/languages/ru/tl_iso_tax_class.php deleted file mode 100644 index b3b7554b33..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_tax_class.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + Название + + + Give this tax class a name that explains what it is used for. + + + Default + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + Название + + + Tax rates + Ставки налогов + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_iso_tax_rate.php b/system/modules/isotope/languages/ru/tl_iso_tax_rate.php deleted file mode 100644 index d2b88f9041..0000000000 --- a/system/modules/isotope/languages/ru/tl_iso_tax_rate.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Name + Название + + + Enter a name for this tax rate. + + + Label + Метка + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + Конфигурация магазина + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + + + Shipping Address + + + Name + Название + + + Rate + + + Location + + + Conditions + + + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_maintenance.php b/system/modules/isotope/languages/ru/tl_maintenance.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tl_maintenance.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_member.php b/system/modules/isotope/languages/ru/tl_member.php deleted file mode 100644 index 89f4e676de..0000000000 --- a/system/modules/isotope/languages/ru/tl_member.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Address Book + Адресная книга + + + Manage the address book for member ID %s. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_module.php b/system/modules/isotope/languages/ru/tl_module.php deleted file mode 100644 index 348dcb0ad3..0000000000 --- a/system/modules/isotope/languages/ru/tl_module.php +++ /dev/null @@ -1,33 +0,0 @@ - + + + + Product list template + Шаблон списка товаров + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + Шаблон считывателя товаров + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + Перенаправить на первый товар + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + Метод оформления заказа + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + Колонки + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + Конфигурация магазина + + + Select the store configuration that this module will be used for. + + + Store configurations + Конфигурации магазинов + + + Select the store configurations that this module will be used for. + + + Payment methods + Методы оплаты + + + Select one or more payment methods for this checkout module. + + + Shipping methods + Методы доставки + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + Включить фильтры + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + + + Only show new products + + + Only show old products + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + Исходное поле сортировки + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + Исходное направление сортировки + + + Select a initial sorting direction. + + + Buttons + Кнопки + + + Select the buttons you want to show. + Выберите кнопки для отображения. + + + Related categories + Связанные категории + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + + + Guest checkout only + + + Both allowed + + + All Categories + Все категории + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + Текущая категория + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_nc_notification.php b/system/modules/isotope/languages/ru/tl_nc_notification.php deleted file mode 100644 index e7487459de..0000000000 --- a/system/modules/isotope/languages/ru/tl_nc_notification.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + + + Define in what order the collection items should be listed. + + + Gallery + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_page.php b/system/modules/isotope/languages/ru/tl_page.php deleted file mode 100644 index ce10d07090..0000000000 --- a/system/modules/isotope/languages/ru/tl_page.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Store Configuration + Конфигурация магазина + + + Select a store configuration for this page structure. + Выберите конфигурацию магазина для этой структуры страниц. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + ID Магазина + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_settings.php b/system/modules/isotope/languages/ru/tl_settings.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tl_settings.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Guest cart timeout + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_user.php b/system/modules/isotope/languages/ru/tl_user.php deleted file mode 100644 index 318969986e..0000000000 --- a/system/modules/isotope/languages/ru/tl_user.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Isotope modules + Модули Isotope + + + Select which store configuration modules user of this group can access. + Выберите к каким модулям конфигурации магазина этот пользователь может получить доступ. + + + Allowed product types + Типы товаров + + + Here you can grant access to one or more product types. + Пользователи могут видеть и редактировать только те товары и типы товаров, которые вы включили. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + Конфиурации магазинов + + + Here you can grant access to one or more store configurations. + Пользователи могут видеть товары из этих конфигураций магазинов. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tl_user_group.php b/system/modules/isotope/languages/ru/tl_user_group.php deleted file mode 100644 index 3e0a9d4bf8..0000000000 --- a/system/modules/isotope/languages/ru/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/ru/tokens.php b/system/modules/isotope/languages/ru/tokens.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope/languages/ru/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/default.php b/system/modules/isotope/languages/sl/default.php deleted file mode 100644 index 6a9dd601cc..0000000000 --- a/system/modules/isotope/languages/sl/default.php +++ /dev/null @@ -1,125 +0,0 @@ - + + + + Name "%s" is reserved for system use. Please choose a different name. + + + No store configuration available + + + Please create a default store configuration. + Prosimo, ustvarite privzete nastavitve trgovine. + + + You have not yet placed any orders. + + + The requested order was not found. + Zahtevano naročilo ne obstaja. + + + You must be logged in to checkout. + + + A variant with this attributes is already available. Please select another combination. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + + + Please enter whole numbers or decimals optionally with a percentage. + + + Checkout failed. Please try again or choose another payment method. + + + You have no address book entries. + + + The minimum order amount is %s. Please add more products before checkout. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + + + This image has already been assigned to the fallback language. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + + + The selected folder is empty. + Izbrana mapa je prazna. + + + User checkout not allowed + + + This product is no longer available. + Izdelek ni več na voljo. + + + There are errors in your products. + + + Please resolve the errors in your cart before checking out. + + + You cannot configure the same attribute multiple times. + + + Only show this group + Prikaži samo to skupino + + + Groups + Skupine + + + Pages + Strani + + + Back to the group picker + Nazaj na izbiro skupine + + + Show all groups + Prikaži vse skupine + + + There are no variants for this product. + + + Duplicate Fallback + + + Order no %s / %s + + + Your payment is being processed. Please be patient... + + + No files uploaded. + + + The file could not be uploaded for unknown reason. Please check the system log. + + + Drop files here to upload + Tukaj spustite datoteke za prenos na strežnik + + + Upload files + Naloži datoteke + + + Processing dropped files... + + + Some records could not be deleted. + + + Some records could not be deleted and have been unpublished instead. + + + Quantity + Količina + + + Tax-free + + + search products + poišči izdelek + + + Your downloadable products + + + <span class="from">From</span> %s + <span class="from">od</span> %s + + + View Details + Ogled podrobnosti + + + Reorder + + + Products Per Page + Izdelkov na stran + + + Keywords + Ključne besede + + + Submit + Pošlji + + + Clear Filters + Odstrani filtre + + + Update + Posodobi + + + Add To Cart + Dodaj v košarico + + + Add All To Cart + + + Update Cart + Posodobi košarico + + + Add To Favorites + + + Remove From Favorites + + + Order By: + Uredi po: + + + No products have been found. + Tu žal ni nobenega izdelka. + + + Back + Nazaj + + + Continue + Nadaljuj + + + Order + Naroči + + + No categories are associated with this product. + + + Submit + Pošlji + + + There are no items in your favorites list. + + + There are no items in your cart. + Nakupovalna košarica je še prazna. + + + The selected product has been added to your favorites. + + + The selected product has been removed to your favorites. + + + The selected product has been added to your shopping cart. + Izdelek imate sedaj v nakupovalni košarici. + + + The products from your last visit have been readded. Please review your shopping cart items. + + + The products of the selected order have been added to your shopping cart. + + + Edit %s + + + Edit + Uredi + + + Remove + Odstrani + + + Remove %s from your cart + Odstrani %s iz nakupovalne košarice + + + Order Subtotal: + Delni znesek + + + Shipping (%s) + + + Payment (%s) + + + Order Total: + Skupni znesek + + + No payment options are currently available + + + No shipping options are currently available. + + + No orders emails found. + + + No orders found. + + + <br />%s downloads remaining + + + Shopping Cart + Nakupovalna košarica + + + Proceed to Checkout + + + Continue shopping + Nadaljuj z nakupom + + + Update Cart + Posodobi košarico + + + Order Status: %s + Status naročila: %s + + + Go back to step "%s" + Nazaj na korak "%s" + + + Create New Address + Ustvari nov naslov + + + Use billing address + Uporabi naslov za račun + + + Use customer address + + + Different shipping address + + + Edit + Uredi + + + Delete + Odstrani + + + Do you really want to delete this address? This cannot be undone. + + + Invoice + Račun + + + Status + Status + + + Order date + Datum naročila + + + Order number + Številka naročila + + + Description + Opis + + + Quantity + Količina + + + Price + Cena + + + Total + Skupaj + + + lo to hi + + + hi to lo + + + A to Z + A do Ž + + + Z to A + Ž do A + + + earlier to later + + + later to earlier + + + Processing payment + + + You will be redirected to the payment gateway website. + + + Pay now + Plačaj takoj + + + Please click on the "Pay now" button to continue. + + + Click here to view this PayPal transaction online + + + 1 Product + 1 izdelek + + + %s Products + %s izdelkov + + + Enter your shipping information or select an existing address. + + + Enter your billing information or select an existing address. + + + Enter your billing information + Vnesite podatke za račun + + + Enter your customer information or select an existing address. + Vnesite vaše kontaktne podatke ali izberite obstoječi naslov. + + + Enter your customer information + Vnesite vaše kontaktne podatke + + + Select a shipping method. + Izberite način dostave. + + + Please select a shipping method. + + + Enter your payment information. + + + Please select a payment method. + Izberite način plačila. + + + Review and confirm your order details. + Prosimo, še enkrat preverite vse podatke. + + + Address + Naslov + + + Shipping + Dostava + + + Payment + Plačilo + + + Review + Pregled + + + Billing Address + Naslov za račun + + + Shipping Address + + + Billing & Shipping Address + + + Customer Address + + + Shipping Method + Način dostave + + + Payment Method + Način plačila + + + Order Review + Pregled naročila + + + Change + Spremeni + + + Credit card number + Številka kreditne kartice + + + Credit card type + Vrsta kreditne kartice + + + CCV number (3 or 4 digit code) + + + Expiration month + + + Expiration year + + + Payment module not found! + + + Shipping module not found! + + + This payment module does not provide additional information. + + + This shipping module does not provide additional information. + + + Use default value + + + active step: + trenutni korak: + + + Loading products... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + + + No files in this folder + + + Imported file %s for product "%s" + + + The folder did not contain any files to be imported. + + + Loading product data … + Pridobivanje podatkov o izdelku + + + Store Config "%s" + + + Splitted + + + You have %s order(s) with status "%s" + + + Step %s of %s (%s) - + Korak %s od %s (%s) - + + + Minutes + minut + + + Hours + ur + + + Days + dni + + + Weeks + tednov + + + Months + mesecev + + + Years + let + + + Introduction + + + Welcome to Isotope eCommerce + + + Isotope is the premier open source eCommerce solution for Contao. + + + This is the page where most of the configuration will take place. <strong>You should start from the bottom of this page and work your way upward from right to left.</strong> + + + Visit the official <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> for the latest news, configuration manuals and professional support. Thank you so much for considering giving something back! + + + The Isotope eCommerce Team + Ekipa Isotope eCommerce + + + Isotope is a product of %s in association with <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Team</a>. + + + by date added (ascending) + + + by date added (descending) + + + by date updated (ascending) + + + by date updated (descending) + + + by product name (ascending) + po nazivu izdelka (naraščajoče) + + + by product name (descending) + po nazivu izdelka (padajoče) + + + by price (ascending) + po ceni (naraščajoče) + + + by price (descending) + po ceni (padajoče) + + + Please fill in the shipping address. + + + None of the products in your shopping cart require shipping! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + + + Save address + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-ch#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Mit der &Uuml;bermittlung der für die Abwicklung des Rechnungskaufs und einer Identitäts und Bonitätsprüfung erforderlichen Daten an die <a href="https://billpay.de/endkunden" target="_blank">Billpay GmbH</a> bin ich einverstanden. Es gelten die <a href="https://www.billpay.de/kunden/agb-at#datenschutz" target="_blank">Datenschutzbestimmungen</a> von Billpay. + + + Isotope eCommerce + Isotope eCommerce + + + Flat-price shipping + Enotna cena dostave + + + This is the default shipping method for regular shipping. + + + Shipping group + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + + + Cash + Gotovina + + + Use this for all offline processed payment. + + + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + + + PayPal Standard Checkout + PayPal Standard Checkout + + + This PayPal module supports IPN (Instant Payment Notifications). + + + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + + + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + + + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + + + Innopay + + + A payment module for the swiss payment gateway "Innocard". + + + Sparkasse + Sparkasse + + + Saferpay + Saferpay + + + BillPay (using Saferpay) + + + sofortüberweisung.de + sofortüberweisung.de + + + ExperCash + ExperCash + + + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + + + PayOne + PayOne + + + WorldPay + WorldPay + + + QuickPay + + + Open Payment Platform + + + A payment gateway for various payment providers (e.g. <a href="http://www.payunity.com" target="_blank">PayUnity.PAY</a>). + + + Standard + + + Default gallery + Privzeta galerija + + + <p>Uses the lightbox/mediabox for full size images. Make sure you select the appropriate "moo_" template in your page layout configuration.</p><p>You can supply a "rel" attribute to the link target by using a pipe (e.g. "tl_files/video.mov|lightbox[400 300]"). If no "rel" attribute is supplied, the link will be opened in a new window.</p> + + + Inline gallery + + + Clicking on a gallery image will replace the main image. + + + Elevate Zoom gallery + + + A gallery that zooms on the image on hover. See <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">the script website</a> for more information. + + + Standard product + + + A default product. Select this if nothing else matches. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + + + JCB + + + Diner's Club + Diner's Club + + + EnRoute + + + Carte Blanche + + + JAL + + + Maestro UK + Maestro UK + + + Delta + Delta + + + Solo + + + Visa Electron + Visa Electron + + + Dankort + + + Laser + + + Carte Bleue + + + Carta Si + + + Encoded Account Number + + + Universal Air Travel Program + + + Maestro International + + + GE Money UK + + + Text field + + + A single-line input field for a short or medium text. + Vnosno polje za kratko besedilo (ena vrstica). + + + Textarea + Polje z besedilom + + + A multi-line input field for a medium or long text. + Vnosno polje za srednje dolgo ali dolgo besedilo. + + + Select menu + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + + + Radio button menu + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + + + Checkbox menu + + + A list of multiple options from which any can be selected. + + + Media Manager + Upravljalec datotek + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + + + Conditional Select-Menu + + + show select-options based on another select menu. + + + File tree + + + A file tree for single or multiple files and folders. + + + Downloads + Prenosi + + + Download files from the product, e.g. manuals, data sheets etc. + + + File upload + Nalaganje datotek + + + A single-line input field to upload a local file to the server. + + + Video/Audio + + + Generates a video or audio player. + + + Fine Uploader + + + A javascript file uploader to upload a local file to the server. + + + AED - United Arab Emirates Dirham + + + AFN - Afghani + + + ALL - Lek + + + AMD - Dram + + + ANG - Netherlands Antilles Guilder + + + AOA - Kwanza + + + ARS - Argentinian Nuevo Peso + + + AUD - Australian Dollar + + + AWG - Aruban Guilder + + + AZN - Azerbaijani Manat + + + BAM - Convertible Mark + + + BBD - Barbados Dollar + + + BDT - Taka + + + BGN - Bulgarian Lev + + + BHD - Bahraini Dinar + + + BIF - Burundi Franc + + + BMD - Bermudian Dollar + + + BND - Brunei Dollar + + + BOB - Boliviano + + + BRL - Brazilian real + + + BSD - Bahamian Dollar + + + BTN - Ngultrum + + + BWP - Pula + + + BYR - Belarussian Rouble + + + BZD - Belize Dollar + + + CAD - Canadian Dollar + + + CDF - Congolese Franc + + + CHF - Swiss Franc + CHF - Švicarski franki + + + CLF - Unidades de Fomento + + + CLP - Chilean Peso + + + CNY - Yuan Renminbi + + + COP - Colombian Peso + + + CRC - Costa Rican Colón + + + CUC - Peso Convertible + + + CUP - Cuban Peso + + + CVE - Escudo Caboverdiano + + + CZK - Czech Koruna + CZK - Češke krone + + + DJF - Djibouti Franc + + + DKK - Danish Krone + + + DOP - Dominican Republic Peso + + + DZD - Algerian Dinar + + + EGP - Egyptian Pound + + + ERN - Eritrean Nakfa + + + ETB - Ethiopian Birr + + + EUR - Euro + EUR - evro + + + FJD - Fiji Dollar + + + FKP - Falkland Pound + + + GBP - Pound Sterling + + + GEL - Lari + + + GHS - Ghanaian cedi + + + GIP - Gibraltar Pound + + + GMD - Dalasi + + + GNF - Guinea Franc + + + GTQ - Quetzal + + + GYD - Guyana Dollar + + + HKD - Hong Kong Dollar + + + HNL - Lempira + + + HRD - Croatian Dinar + + + HRK - Croatian Kuna + HRK - Hrvaške kune + + + HTG - Gourde + + + HUF - Forint + + + IDR - Rupiah + + + ILS - Shekel + + + INR - Indian Rupee + + + IQD - Iraqi Dinar + + + IRR - Iranian Rial + + + ISK - Icelandic Króna + ISK - Islandske krone + + + JMD - Jamaican Dollar + + + JOD - Jordanian Dinar + + + JPY - Yen + + + KES - Kenyan Shilling + + + KGS - Kyrgyzstani Som + + + KHR - Riel + + + KMF - Comorian Franc + + + KPW - Democratic People's Republic of Korean Won + + + KRW - Republic of Korean Won + + + KWD - Kuwaiti Dinar + + + KYD - Cayman Islands Dollar + + + KZT - Tenge + + + LAK - Kip + + + LBP - Lebanese Pound + + + LKR - Sri Lankan Rupee + + + LRD - Liberian Dollar + + + LSL - Loti + + + LTL - Litas + + + LVL - Lats + + + LYD - Libyan Dinar + + + MAD - Moroccan Dirham + + + MDL - Moldavian Leu + + + MGA - Malagasy ariary + + + MKD - Macedonian Dinar + + + MMK - Kyat + + + MNT - Tugrik + + + MOP - Pataca + + + MRO - Ouguiya + + + MUR - Mauritius Rupee + + + MVR - Rufiyaa + + + MWK - Malawian Kwacha + + + MXN - Mexican Peso + + + MYR - Ringgit (Malaysian Dollar) + + + MZN - Mozambican metical + + + NAD - Namibia Dollar + + + NGN - Naira + + + NIO - Cordoba Oro + + + NOK - Norwegian Krone + NOK - Norveške krone + + + NPR - Nepalese Rupee + + + NZD - New Zealand Dollar + + + OMR - Omani Rial + + + PAB - Balboa + + + PEN - New Sol + + + PGK - Kina + + + PHP - Philippines Peso + + + PKR - Pakistani Rupee + + + PLN - Zloty + + + PYG - Guarani + + + QAR - Qatari Riyal + + + RON - Romanian New Leu + + + RSD - Serbian Dinar + + + RUB - Russian Federation Rouble + + + RWF - Rwandan Franc + + + SAR - Saudi Riyal + + + SBD - Solomon Islands Dollar + + + SCR - Seychelles Rupee + + + SDG - Sudanese Pound + + + SEK - Swedish Krona + + + SGD - Singapore Dollar + + + SHP - St. Helena Pound + + + SLL - Leone + + + SOS - Somali Shilling + + + SRD - Surinamese Dollar + + + SSP - South Sudanese Pound + + + STD - Dobra + + + SVC - El Salvador Colon + + + SYP - Syrian Pound + + + SZL - Lilangeni + + + THB - Baht + + + TJS - Tajikistani Somoni + + + TMT - Turkmenistani Manat + + + TND - Tunisian Dinar + + + TOP - Pa'anga + + + TRY - New Turkish Lira + + + TTD - Trinidad and Tobago Dollar + + + TWD - Taiwan Dollar + + + TZS - Tanzanian Shilling + + + UAH - Hryvna + + + UGX - Ugandan Shilling + + + USD - United States Dollar + + + UYU - Uruguayan Peso + + + UZS - Uzbekistani Som + + + VEF - Bolivar Fuerte + + + VND - Viet Nam Dông + + + VUV - Vatu + + + WST - Tala + + + XCD - East Caribbean Dollar + + + YER - Yemeni Riyal + + + ZAR - Rand + + + ZMK - Zambian Kwacha + + + ZWL - Zimbabwe Dollar + + + Fr. + Fr. + + + Kr. + Kr. + + + € + + + + £ + £ + + + ¥ + ¥ + + + Kr. + Kr. + + + Kr. + Kr. + + + $ + $ + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/exception.php b/system/modules/isotope/languages/sl/exception.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/exception.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce - data loss protection + + + An old version of Isotope eCommerce has been detected on your installation. If you would update the database now, your existing customer data and configuration might be lost. To prevent this, the database update tools have been locked automatically. + + + There are multiple options to get your installation back: + + + Create a backup, then completely uninstall Isotope and remove all it's database tables and related extensions. Afterwards you can install Isotope eCommerce 2.0 again. + + + We are currently running a fundraising to develop an update tool. The more people that help, the sooner you will be able to update your old installation. <a href="http://isotopeecommerce.com/en/" target="_blank">Please consider participating</a>. + + + Get an experienced Contao developer to migrate your data manually. We suggest to take a look at <a href="http://contao.org/en/" target="_blank">the Contao partner listing</a>. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/explain.php b/system/modules/isotope/languages/sl/explain.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/explain.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + +<p class="tl_help_table"> + Unlike any other Contao module, a user is not redirected to the reader page when viewing the product details. To solve the issue of nice aliases and to know the detail page of a product, we came up with a new solution.<br> + <br> + The reader page (alias) will always be the same page as you selected as a category for the product. There are two options to display the details of a product:<br> + <br> + <strong>Option 1:</strong><br> + Do not set a reader page in the site structure. Place the list and reader module on the same page. Tell the list module to hide if a product alias is found (there's a checkbox in the module settings). The reader will automatically be invisible if no reader is found.<br> + <u>Advantage:</u> Pretty simple to set up<br> + <u>Disadvantage:</u> The layout of reader and list will be identical, and you cannot have different article content for the two cases.<br> + <br> + <strong>Option 2:</strong><br> + Set a reader page for every list page (product category) in the site structure. <i>Be aware that the reader setting is not inherited!</i> Add the reader module to this page as usual.<br> + Isotope will now use this page to generate the site if a product alias is found in the URL. The alias will still be the one from the list page though.<br> + <u>Advantage:</u> You can have different page content and layout (e.g. different columns) for the reader page then the list page.<br> + <u>Disadvantage:</u> You MUST set a reader page for every list page (category) you have. The setting is NOT INHERITED. +</p> + + + <p class="tl_help_table">To upload a new picture, select the file and save the product. After successfully uploading, a preview of the image is displayed and next to it you can enter its alternative text and a description. For multiple pictures, you can click on the arrows to the right and change their order, the top image is used as the main image of each product.</p> + + + To use product variants with Isotope eCommerce, you must first configure the attributes.<br>Please refer to <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline">the manual</a> for more information about attribute setup. + + + Positioning the window can be done in by setting a default position, and then using x and y offset to adjust. You can also position the window into a container - See more at: <a href="http://www.elevateweb.co.uk/image-zoom/examples#window-position" target="_blank">http://www.elevateweb.co.uk/image-zoom/examples#window-position</a><br><br><img src="system/modules/isotope/assets/images/elevatezoom-positions.png" alt=""> + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/iso_upgrade.php b/system/modules/isotope/languages/sl/iso_upgrade.php deleted file mode 100644 index 5c690fa503..0000000000 --- a/system/modules/isotope/languages/sl/iso_upgrade.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Migration Assistant (Version: %s) + + + Update + Posodobi + + + Isotope needs to know which JavaScript template is responsible to render the lightbox for a gallery. Please select the appropriate template for each gallery (usually <i>moo_mediabox</i> or <i>j_colorbox</i>) depending on if you use MooTools or jQuery on your website. You can always change this later in the gallery settings. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/modules.php b/system/modules/isotope/languages/sl/modules.php deleted file mode 100644 index f8f1905ae2..0000000000 --- a/system/modules/isotope/languages/sl/modules.php +++ /dev/null @@ -1,40 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Upravljanje izdelkov + + + Manage products for your Isotope eCommerce shop + Upravljajte izdelke v vaši Isotope eCommerce trgovini + + + Orders + Naročila + + + See and manage orders for your shop + Pregled in upravljanje naročil v vaši trgovini + + + Store configuration + + + Setup and configure Isotope eCommerce to your needs + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Filter izdelkov + + + Define individual filters for Isotope such as category trees and product attribute filters. + + + Cumulative Filter + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + + + Product List + Seznam izdelkov + + + General Listing module. Can be used to list products or values of attributes. May be combined with other modules (i.e. the Filter Module) to provide further drill-down capabilities. + + + Product Variant List + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + + + Product Reader + + + Product reader module. This is used to display product details. + + + Favorites + + + Renders the list of products on the favorites list. + + + Shopping Cart + Nakupovalna košarica + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + + + Checkout + + + Allow store customers to complete their transactions. + + + Address Book + Adresar + + + Allow customers to manage their address book. + + + Order History + Zgodovina naročil + + + Order lister that allows customers to view their order history + + + Order Details + Podrobnosti naročila + + + Order reader that allows customers to view order history details + + + Store Config Switcher + + + Switch between store configuration to change currency and other settings. + + + Related products + Sorodni izdelki + + + List products related to the current one. + + + Messages + Sporočila + + + Displays all Isotope messages if they have not been displayed elsewhere. + + + Shipping cost calculator + + + Displays a module to calculate the shipping costs before going to the checkout page. + + + Cart address + + + Displays a form to enter the cart address data that will be used to calculate prices. + + + Isotope eCommerce configuration (Version: %s) + + + Products + Izdelki + + + Attributes + Lastnosti + + + Manage and create product attributes such as size, color, etc. + + + Product types + Vrste izdelkov + + + Manage and create product types from sets of attributes. + + + Related categories + Sorodni kategorije + + + Define categories for product relations. + + + Galleries + Galerije + + + Define how you want the images in your product to be rendered. + + + Base prices + + + Define base price. + + + Checkout Flow + + + Shipping methods + Načini dostave + + + Set up shipping methods. + + + Payment methods + Načini plačila + + + Set up payment methods. + + + Tax classes + + + Set up Tax classes, which contain sets of Tax rates. + + + Tax rates + + + Set up tax rates based on things like shipping/billing location and order total. + + + General settings + + + Store configurations + + + Configure general settings for this store. + + + Order status + Status naročila + + + Define order status. + + + Notifications + Obvestila + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + + + Documents + Dokumenti + + + Define documents. + + + Miscellaneous + Razno + + + Translations + Prevodi + + + Replace given labels for certain languages. + + + Integrity Check + + + Validate your shop configuration against common errors. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/subdivisions.php b/system/modules/isotope/languages/sl/subdivisions.php deleted file mode 100644 index b7d2fad1da..0000000000 --- a/system/modules/isotope/languages/sl/subdivisions.php +++ /dev/null @@ -1,3820 +0,0 @@ - + + + + Store ID + ID trgovine + + + Different store IDs group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Label + Oznaka + + + Please enter a custom label for this address. + + + Gender + + + Please choose the gender. + + + Salutation + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + + + First name + Ime + + + Please enter the first name. + + + Last name + Priimek + + + Please enter the last name. + + + Date of birth + + + Please enter the date of birth. + + + Company + Podjetje + + + You can enter a company name here. + + + VAT No. + Davčna številka + + + Please enter a VAT number. + + + Street + Ulica + + + Please enter the street name and the street number. + + + Street 2 + Ulica 2 + + + Enter a second street info if there's any. + + + Street 3 + Ulica 3 + + + Enter a third street info if there's any. + + + Postal code + Poštna številka + + + Please enter the postal code. + + + City + Kraj + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + Država + + + Please select a country. + + + Phone number + Telefonska številka + + + Please enter the phone number. + + + E-mail address + + + Please enter a valid e-mail address. + + + Default billing address + + + Is this your default billing address? + + + Default shipping address + + + Is this your default shipping address? + + + Store + + + Personal data + + + Address details + + + Contact details + + + Default address + + + Personal data + + + Address details + + + Contact details + + + Default address + + + New address + + + Create a new address + + + Edit address + + + Edit address ID %s + + + Duplicate address + + + Duplicate address ID %s + + + Delete address + + + Delete address ID %s + + + Address details + + + Show details of address ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_attribute.php b/system/modules/isotope/languages/sl/tl_iso_attribute.php deleted file mode 100644 index e7eec04cf2..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_attribute.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Name + Naziv + + + Please enter a name for this attribute. + + + Internal name + + + Internal name is the database field name and must be unique. + + + Type + Tip + + + Please select a type for this attribute. + + + Field Group + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + + + Add to product variants wizard + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + + + Defined by customer + + + Please select if this value defined by the customer (frontend). + + + Description + Opis + + + The description is shown as a hint to the backend user. + + + Options source + + + Choose where the options for this field should be loaded from. + + + Attribute Name (Single Option) + + + Options Manager + + + Product + Izdelek + + + Custom database table (foreignKey) + + + Options Wizard (deprecated) + + + Options + + + Please enter one or more options. Use the buttons to add, move or delete an option. If you are working without JavaScript assistance, you should save your changes before you modify the order! + + + Value + + + Label + Oznaka + + + Default + + + Group + Skupina + + + Options + + + Use the options manager to add your options to the field. + + + Include blank option + + + Check here to include a blank option in the select menu. + + + Label for blank option + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + + + Mandatory field + + + The field must be filled when editing a product. + + + Multiple selection + + + Allow visitors to select more than one option. + + + Size/Amount + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + + + Allowed file types + + + A comma separated list of valid file extensions. + + + Use HTML editor + + + Select a tinyMCE configuration file to enable the rich text editor. + + + Multilingual + + + Check here if this field should be translated. + + + Input validation + + + Validate the input against a regular expression. + + + Placeholder + + + Show this text as long as the field is empty (requires HTML5). + + + Minimum length + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + + + Maximum length + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + + + Foreign table & field + + + Instead of adding options you can enter a table.field combination to select from database. To use multilingual foreignKeys, enter one per line and specify the language (example: en=tl_table.field) + + + Parent field + + + Please select the parent field, which must be of type "Select-Menu". For parent-child relation to work, define each option of this parent field as group of the conditional select-menu. + + + Show files + + + Show both files and folders. + + + Files only + + + Remove the radio buttons or checkboxes next to folders. + + + Mark as gallery + + + Mark the attribute as image gallery which allows for better display in the backend. + + + Field type + + + Display radio buttons or checkboxes next to folders. + + + Order by + + + Please choose the sort order. + + + Root directory + + + You can limit the file tree by defining a root directory here. + + + Store uploaded files + + + Move the uploaded files to a folder on the server. + + + Target folder + + + Please select the target folder from the files directory. + + + Use home directory + + + Store the file in the home directory if there is an authenticated user. + + + Preserve existing files + + + Add a numeric suffix to the new file if the file name already exists. + + + Move file(s) after checkout + + + Re-organize files after an order has been completed. + + + Target folder + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Target file name + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + + + Add to "Order By" option list + + + This field will be sortable in the listing module provided the attribute is visible to customers. + + + Backend filterable + + + Can this attribute be used in a backend filter? + + + Backend searchable + + + Should the field be available in the backend search? + + + Frontend filterable + + + Can this attribute be used in a frontend filter? + + + Frontend searchable + + + Should the search engine look in this field for search terms? + + + Date picker + + + Show a date picker for this field. + + + Enable chunking + + + Enable the file chunking. It is useful to upload big files. + + + Chunk size in bytes + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + + + Edit options + + + Checkbox + + + Radio + + + Numeric characters + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + + + Alphabetic characters + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + + + Alphanumeric characters + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + + + Extended alphanumeric characters + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + + + Date + + + Checks whether the input matches the global date format. + + + Time + + + Checks whether the input matches the global time format. + + + Date and time + + + Checks whether the input matches the global date and time format. + + + Phone number + Telefonska številka + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + + + E-mail address + + + Checks whether the input is a valid e-mail address. + + + URL format + + + Checks whether the input is a valid URL. + + + Price + Cena + + + Checks whether the input is a valid price. + + + Discount + Popust + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + + + Surcharge + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + + + Custom order + + + File name (ascending) + + + File name (descending) + + + Date (ascending) + + + Date (descending) + + + Random order + + + Use these simple tokens to generate a dynamic folder name. + + + ##document_number## + + + Generated document number for the order. + + + ##order_id## + + + Database ID of the order record. + + + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + + + ##product_id## + + + Database ID of the product. + + + ##product_sku## + + + SKU of the product. + + + ##product_name## + + + Name of the product. + + + ##product_position## + + + Position of the product on the order document, starting from 1. + + + ##attribute_field## + + + Database field name of the attribute. + + + ##attribute_name## + + + Name of the attribute. + + + ##file_name## + + + Full file name and extension as uploaded by the user. + + + ##file_target## + + + Full file name and extension as uploaded by the user, but renamed if "Preserve existing files" is enabled and a file with same name exists in target folder. <br><strong>Only available for the file name, not for the folder!</strong> + + + ##file_extension## + + + The original file extension. + + + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + + + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + + + New attribute + + + Create a new attribute. + + + Edit attribute + + + Edit attribute ID %s. + + + Copy attribute + + + Copy attribute ID %s. + + + Delete attribute + + + Delete attribute ID %s. The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute details + + + Show details for attribute ID %s. + + + Do you really want to delete attribute ID %s? The database column will not be deleted, you need to manually update the database using the install tool or repository manager. + + + Attribute name & type + + + Description + Opis + + + Options + + + Attribute configuration + + + Search & Filtering Settings + + + Store file + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_attribute_option.php b/system/modules/isotope/languages/sl/tl_iso_attribute_option.php deleted file mode 100644 index 04ea6c5e8c..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_attribute_option.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Type + Tip + + + Select a type for this label. + + + Option + + + Group + Skupina + + + Default + + + Check here if this should be the default option. + + + Label + Oznaka + + + Enter the label for this option. + + + Price surcharge or deduction + + + You can enter a positive or negative amount to alter the product price if this option is selected. + + + Price + Cena + + + Published + + + Make this option available in the product. + + + New option + + + Create a new option. + + + Edit option + + + Edit option ID %s. + + + Copy option + + + Copy option ID %s. + + + Delete option + + + Delete option ID %s. + + + Option details + + + Show details for option ID %s. + + + Type &amp; Label + + + Price change + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_baseprice.php b/system/modules/isotope/languages/sl/tl_iso_baseprice.php deleted file mode 100644 index b11ec17696..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_baseprice.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Naziv + + + Enter a name for this base price. + + + Base amount + + + Enter the base amount (e.g. "100"). + + + Label + Oznaka + + + Enter a label for this base price (e.g. "%s per 100g".) + + + New base price + + + Create a new base price + + + Edit base price + + + Edit base price ID %s + + + Duplicate base price + + + Duplicate base price ID %s + + + Delete base price + + + Delete base price ID %s + + + Base price details + + + Show details of base price ID %s + + + Base price + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_config.php b/system/modules/isotope/languages/sl/tl_iso_config.php deleted file mode 100644 index 0d222326fd..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_config.php +++ /dev/null @@ -1,38 +0,0 @@ - + + + + Configuration Name + + + Please enter a name for your configuration. This is only used for back end reference. + + + Label + Oznaka + + + The label is used in frontend, e.g. for config switcher. + + + Set as default store + + + Set this as the default store for back-end currency formatting and other locale-specific information. + + + First name + Ime + + + Please enter the first name (if applicable). + + + Last name + Priimek + + + Please enter the last name (if applicable). + + + Company + Podjetje + + + You can enter a company name here (if applicable). + + + VAT No. + Davčna številka + + + Please enter a VAT number. + + + Street + Ulica + + + Please enter the street name and the street number. + + + Street 2 + Ulica 2 + + + Enter a second street info if there's any. + + + Street 3 + Ulica 3 + + + Enter a third street info if there's any. + + + Postal code + Poštna številka + + + Please enter the postal code. + + + City + Kraj + + + Please enter the name of the city. + + + State + + + Please enter the name of the state. + + + Country + Država + + + Please select a country. This is also the default for custom shipping/billing addresses. + + + Phone number + Telefonska številka + + + Please enter the phone number. + + + Shipping email address + + + Please enter a valid e-mail address. + + + Address fields + + + Select the fields for a billing and shipping address when checking out. + + + Address field + + + For billing address + + + For shipping address + + + Disabled + + + Enabled (not mandatory) + + + Enabled (mandatory) + + + Default billing country + + + Select a default country for new billing addresses. + + + Default shipping country + + + Select a default country for new shipping addresses. + + + Available billing countries + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + + + Available shipping countries + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + + + Limit member countries + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + + + VAT No. validation + + + If you enable one or multiple services, the VAT No. address field will be validated. + + + Price display + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + + + Price formatting + + + Choose a formatting for prices. + + + Rounding precision + + + How much decimal precision to have. You should set something between 0 and 2 for all payment gateways to work correctly. See PHP manual for round(). + + + Rounding increment + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + + + Currency + Valuta + + + Please select a currency for this store. + + + Position of currency code/symbol + + + Select if you want to show currency on the left or right side of the price. + + + Use currency symbol + + + Use a currency symbol ($, €) if available. + + + Include blank space + + + Add space between price and currency symbol. + + + Price factor + + + Defaults should be 1. You can use this to convert between multiple currencies. + + + Calculation mode + + + Divide or multiply using this factor. + + + Automatic currency conversion + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + + + Currency origin + + + Please select the source currency for calculation. + + + Currency Data Provider + + + Select an available online provider of currency calculation data. + + + Order number prefix + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + + + Order number length + + + Select the minimum length of the order number (not including order prefix). + + + Status for new orders + Status novih naročil + + + Choose a matching status for new orders. A payment module can override this. + + + Order status on error + + + Select an order status if something goes wrong (e.g. payment). + + + Module for backend view + + + Select a order details module that is used to show the order in the backend. + + + Invoice Logo + + + Select a logo to show up on the invoices for this store. + + + Templates folder + + + Here you can select a templates folder to search before every other template folder. + + + Minimum subtotal + + + The minimum cart subtotal required to order. Enter 0 to disable. + + + Duration to mark a product as "new" + + + If you would like to highlight new products, you can enter a time period here. It will automatically add a CSS class "new" to every product everywhere within Isotope eCommerce. + + + Enable Google Analytics + + + Enable e-commerce tracking with Google Analytics. + + + Account + + + Please provde the account key (UA-XXXXXXX-X). + + + Track member + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + + + To the left of price + + + To the right of price + + + Divide + Deli + + + Multiply + Množi + + + Name + Naziv + + + Width + Širina + + + Height + Višina + + + Mode + + + Watermark image + + + Position + + + European Central Bank + + + Swiss Federal Department of Finance + + + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + + + Gross (recommended) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + + + Fixed + + + The product price will always be shown as in the product setting. Taxes are always calculated as "included". This means the shop owner's profit varies depending on the applicable taxes. + + + Legacy + + + Price display as in Isotope < 2.3. Prices are shown as gross prices if a tax is included and applicable. Additional taxes are only shown as surcharges. + + + New configuration + + + Create a new store configuration. + + + Edit configuration + + + Edit store configuration ID %s. + + + Copy configuration + + + Copy store configuration ID %s. + + + Delete configuration + + + Delete store configuration ID %s. + + + Show configuration details + + + Show details for store configuration ID %s. + + + Name + Naziv + + + Address configuration + + + Configuration + + + Checkout + + + Pricing + + + Currency formatting + + + Currency conversion + + + Orders + Naročila + + + Images + Slike + + + URL settings + + + Products + Izdelki + + + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_document.php b/system/modules/isotope/languages/sl/tl_iso_document.php deleted file mode 100644 index cb11069909..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_document.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Document name + + + Enter a name for this document. This will only be used in the backend. + + + Type of document + + + Select a particular document rendering class. + + + Logo + + + Select a logo. + + + Document title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "Invoice title ##collection_document_number##"). + + + File title + + + You can use simple tokens ("collection_*" whereas * equals the database column of the collection) to render your file title (e.g. "invoice_##collection_document_number##"). + + + Document template + + + Choose a template you want to render this document with. + + + Gallery + Galerija + + + Select a gallery to render images. + + + Collection template + + + Choose a collection template you want to render the products with. + + + Sorting + Razvrščanje + + + Define in what order the collection items should be listed. + + + New document + + + Create a new document + + + Edit document + + + Edit document ID %s + + + Copy document + + + Copy document ID %s + + + Delete document + + + Delete document ID %s + + + Document details + + + Show details of document ID %s + + + Name & type + + + General configuration + + + Template + Predloga + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_download.php b/system/modules/isotope/languages/sl/tl_iso_download.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_download.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Attachement + + + Select the file or folder content you want to sell. + + + Downloads allowed + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + + + Expiration + + + Define if the download(s) expires after a certain time period. + + + Download available + + + Click here to include this download in new orders. + + + Add download + + + Add a new download to this product + + + Edit download + + + Edit download ID %s + + + Duplicate download + + + Duplicate download ID %s + + + Move download + + + Move download ID %s + + + Delete download + + + Delete download ID %s + + + Publish/unpublish download + + + Publish/unpublish download ID %s + + + Download details + + + Show details of download ID %s + + + Edit product + Uredi izdelek + + + Edit this product + + + Paste at the top + + + Paste after download ID %s + + + Add new at the top + + + Add new after download ID %s + + + Attachement + + + Limits + + + Publishing + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_gallery.php b/system/modules/isotope/languages/sl/tl_iso_gallery.php deleted file mode 100644 index 25b3730d54..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_gallery.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Naziv + + + Enter a name for this gallery. + + + Type + Tip + + + Please select a gallery type. + + + Image anchor + + + Select what anchor type should be generated on the image. + + + Placeholder image + + + This image will be used if an image file cannot be found or none are associated with a product. + + + Main image size + + + Please enter a width and height for the main product image. + + + Gallery image size + + + Please enter a width and height for the additional images. + + + Lightbox template + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + + + Lightbox image size + + + Please enter a width and height for lightbox images. + + + Zoom image size + + + Please enter a width and height for zoom images. + + + Zoom window size + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + + + Zoom window position + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + + + Right Top (Pos. #1) + + + Right Center (Pos. #2) + + + Right Bottom (Pos. #3) + + + Right Bottom Corner (Pos. #4) + + + Bottom Right (Pos. #5) + + + Bottom Center (Pos. #6) + + + Bottom Left (Pos. #7) + + + Left Bottom Corner (Pos. #8) + + + Left Bottom (Pos. #9) + + + Left Center (Pos. #10) + + + Left Top (Pos. #11) + + + Left Top Corner (Pos. #12) + + + Top Left (Pos. #13) + + + Top Center (Pos. #14) + + + Top Right (Pos. #15) + + + Top Right Corner (Pos. #16) + + + Zoom window fade effect + + + Optionally enter miliseconds to fade in and fade out the zoom window. + + + Zoom window border + + + Optionally enter a hex color and size in pixels for the zoom window. + + + Main watermark image + + + Select an image if you want to add a watermark to the main product image. + + + Main watermark position + + + Select the position where to apply the watermark to. + + + Gallery watermark image + + + Select an image if you want to add a watermark to the gallery images. + + + Gallery watermark position + + + Select the position where to apply the watermark to. + + + Lightbox watermark image + + + Select an image if you want to add a watermark to the lightbox images. + + + Lightbox watermark position + + + Select the position where to apply the watermark to. + + + Zoom watermark image + + + Select an image if you want to add a watermark to the zoom images. + + + Zoom watermark position + + + Select the position where to apply the watermark to. + + + Custom gallery template + + + Here you can overwrite the default gallery template. + + + New gallery + + + Create a new gallery + + + Edit gallery + + + Edit gallery ID %s + + + Duplicate gallery + + + Duplicate gallery ID %s + + + Delete gallery + + + Delete gallery ID %s + + + Gallery details + + + Show details of gallery ID %s + + + Name &amp; Type + + + Image sizes + + + Configuration + + + Watermark + + + Lightbox/Mediabox + + + Template settings + + + No link action + + + Link to the product reader + + + Open lightbox/mediabox + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_group.php b/system/modules/isotope/languages/sl/tl_iso_group.php deleted file mode 100644 index ddf1ed6e97..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_group.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Group name + + + Please enter a name for this group. + + + Default product type + + + Here you can specify a default product type for this product group. + + + New group + + + Create a new group + + + Edit group + + + Edit group ID %s + + + Duplicate group + + + Duplicate group ID %s + + + Duplicate with subgroups + + + Duplicate group ID %s with subgroups + + + Move group + + + Move group ID %s + + + Delete group + + + Delete group ID %s + + + Group details + + + Show details of group ID %s + + + Paste after + Vstavi za + + + Paste after group ID %s + + + Paste into + Vstavi v + + + Paste into group ID %s + + + Product group settings + + + Product Groups + + + Manage product groups + Uredi skupine izdelkov + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_integrity.php b/system/modules/isotope/languages/sl/tl_iso_integrity.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_integrity.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Integrity Check + + + Problem + + + Result of the check + + + Please choose the errors to be fixed. + + + Resolve problems + + + Only admin can perform integrity check. + + + Advanced prices + + + %s invalid andvanced prices were found.<br>PIDs: %s. + + + There are no invalid prices in your database. + + + Invalid product variants + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + + + There are no invalid variants in your database. + + + Invalid attribute options + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + + + There are no invalid attribute options in your database. + + + Rules module + + + The rules module should be disabled if you do not use it. + + + The rules module is disabled or in use. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_label.php b/system/modules/isotope/languages/sl/tl_iso_label.php deleted file mode 100644 index 1b22bfc8bb..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_label.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Language + + + Please select a language. + + + Label + Oznaka + + + Enter the source label. + + + Replacement + + + Enter the replacement in the specified language. + + + New label + + + Create a new label + + + Edit label + + + Edit label ID %s + + + Duplicate label + + + Duplicate label ID %s + + + Delete label + + + Delete label ID %s + + + Label details + + + Show details of label ID %s + + + Label translation + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_orderstatus.php b/system/modules/isotope/languages/sl/tl_iso_orderstatus.php deleted file mode 100644 index 7ba13b26b1..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_orderstatus.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Name + Naziv + + + Please enter a name for this status. + + + Color + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + + + Order is paid + Naročilo je plačano + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + + + Show on welcome screen + + + Show number of orders with this status on the backend welcome screen. + + + Notification + Obvestilo + + + Please select a notification. + + + Saferpay transaction + + + Please select an option if you want to automatically update the payment gateway. This only applies if the client has used "Saferpay" or "Billpay for Saferpay" payment method. + + + Capture payment + + + Suggest manual payment cancellation + + + New order status + + + Create a new order status + + + Edit order status + + + Edit order status ID %s + + + Duplicate order status + + + Duplicate order status ID %s + + + Move order status + + + Move order status ID %s + + + Delete order status + + + Delete order status ID %s + + + Order status details + + + Show details of order status ID %s + + + Paste after + Vstavi za + + + Paste after order status ID %s + + + Paste into + Vstavi v + + + Paste into order status ID %s + + + Name + Naziv + + + E-Mail Notification + + + Payment Gateways + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_payment.php b/system/modules/isotope/languages/sl/tl_iso_payment.php deleted file mode 100644 index 3ecc38bea2..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_payment.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Payment Method Name + + + Enter a name for this payment method. This will only be used in the backend. + + + Payment Method Label + + + The label will be shown to customers on checkout. + + + Type of Payment Gateway + + + Select a particular payment gateway + + + Payment Note + + + This note can be sent in confirmation mails (##payment_note##). + + + Status for new orders + Status novih naročil + + + Choose a matching status for new orders. + + + Minimum total + + + Enter a number greater zero to exclude this payment method for lower priced orders. + + + Maximum total + + + Enter a number greater zero to exclude this payment method for higher priced orders. + + + Minimum quantity + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + + + Maximum quantity + Največja dovoljena količina + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + Skupno število izdelkov v košarici + + + Available countries + + + Select the countries where this payment method may be used (customer's billing address). + + + Shipping methods + Načini dostave + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + + + Product types + Vrste izdelkov + + + You can restrict this payment method to certain product types. If the cart contains a product type you have not selected, the payment method is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this payment method to certain shop configurations. + + + Price + Cena + + + Enter a price or percent value (e.g. "10" or "10%"). + + + Tax Class + + + Please select a tax class for the price. + + + Transaction type + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + + + Merchant ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + + + Private Key + Privatni ključ + + + Please enter your Paybyway private key. + + + PayPal Account + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + + + Paypal Payflow Pro username + + + + + + Paypal Payflow Pro vendor + + + An alphanumeric string of about 10 characters. + + + Paypal Payflow Pro partner + + + Case-sensitive! Usual partner Ids are either "PayPal" or "PayPalUK". + + + Paypal Payflow Pro api password + + + An alphanumeric string of about 11 characters + + + Paypal Payflow Pro transaction type + + + Please select a transaction type. + + + PSPID + + + The PSPID is your unique identification for the payment method. + + + HTTP method + + + Type of HTTP data transfer from and to the servers. + + + Hash method + + + Hashing algorithm for data transfer from and to the servers. + + + SHA-1 + SHA-1 + + + SHA-256 + SHA-256 + + + SHA-512 + SHA-512 + + + SHA-IN signature + + + This will be used to validate the server to server communication. + + + SHA-OUT signature + + + This will be used to validate the server to server communication. + + + Dynamic template URL + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + + + Payment method + Način plačila + + + You can select a payment method here. Make sure your PSP contract also includes this payment method! If you don't select anything at all here, the customer will have to choose the preferred payment method on the PSP interface! + + + Require Card Code Verification (CCV) Number + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + + + Allowed Credit Card Types + + + Select which credit cards the payment method accepts. + + + Merchant-ID + + + Please enter your merchant ID. + + + HMAC Key + + + Please enter your HMAC key from the Datatrans control panel. + + + Hash method + + + Please select the hashing method configured in your Datatrans control panel. + + + MD5 (outdated) + + + SHA-256 + SHA-256 + + + Convert hash to binary + + + Check here if the hash key needs to be converted to binary. + + + Site Identifier + + + Please enter your payment site identifier. + + + Certificate + Certifikat + + + Please enter your TEST or PRODUCTION certificate. + + + Payment method + Način plačila + + + Please select a payment method for this method. + + + Credit card + Kreditna kartica + + + Debig card + + + Direct debit + + + Seller ID + + + Please enter your seller ID (Händlerkennung). + + + Password + Geslo + + + Please enter your SSL-Password. + + + Reference + + + A reference that will be shown on the seller details page instead of the cart ID. + + + Customer ID + + + Your customer ID for sofortüberweisung.de + + + Project ID + + + Your project ID for sofortüberweisung.de + + + Projekt password + + + Your project password for sofortüberweisung.de + + + Saferpay Account-ID + + + Please enter your unique Saferpay account id. + + + Checkout description + + + The customer will see this description on the Saferpay checkout page. + + + Payment page configuration (VTCONFIG) + + + You can create different Payment Page configurations. If you want to use a specific one of them, enter its "Parameter for the request" value here. + + + Payment methods + Načini plačila + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + + + ExperCash Popup-ID + + + Geben Sie die Popup-ID aus Ihrem ExperCash Portal ein. + + + ExperCash Profile + + + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + + + Geben Sie den Popup-Key aus Ihrem ExperCash Portal ein. + + + Transaktionsart + + + Sie können eine Transaktionsart vordefinieren oder den Kunden wählen lassen. + + + Auswahl der Zahlart durch den Endkunden + + + Zahlung per Lastschrift (ELV) + + + Prüfung und Speicherung von Kontodaten zum späteren Einzug + + + Kreditkartenzahlung + + + verbindliche Reservierung auf eine Kreditkarte zum späteren Einzug + + + Transaktion über giropay + + + Transaktion über Sofortüberweisung + + + CSS-Vorlage + + + Wählen Sie eine CSS-Datei für die Übergabe an ExperCash. + + + Merchant number + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + + + Integration type + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + + + Secret key + + + The secret key set up in your ePay configuration. + + + Clearing type + + + Please choose a clearing type. + + + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + + + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + + + Secret key + + + Enter the secret key you specified for this portal. + + + Installation ID + + + Please enter your WorldPay Installation ID + + + Transaction Password + + + Enter the same transaction password as in your WorldPay configuration. + + + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + + + MD5 Secret + + + Enter the same MD5 secret value as in your WorldPay configuration. + + + Description + Opis + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + + + Merchant ID + + + Please enter your merchant ID. + + + Agreement ID + + + Please enter your agreement ID. + + + API key + + + Please enter your API key. + + + Private key + + + Please enter your private key. + + + Payment methods + Načini plačila + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + + + User ID + + + Please enter your user ID. + + + Password + Geslo + + + Please enter your user password. + + + Entity/Channel ID + + + Please enter your entity or channel ID + + + Member groups + + + Restrict this payment method to certain member groups. + + + Protect payment method + + + Show the payment method to certain member groups only. + + + Show to guests only + Prikaži le gostom spletnega mesta + + + Hide the payment method if a member is logged in. + + + Debug mode + + + For testing without actually capturing for payment. + + + Enabled + Omogočeno + + + Check here if the payment method should be enabled in the store. + + + New payment method + + + Create a new payment method + + + Edit payment method + + + Edit payment method ID %s + + + Copy payment method + + + Copy payment method ID %s + + + Delete payment method + + + Delete payment method ID %s + + + Enable/disable payment method + + + Enable/disable payment method ID %s + + + Payment method details + + + Show details of payment method ID %s + + + Authorize and Capture + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + + + Authorize Only + + + Transactions of this type are submitted if the merchant wishes to validate the credit card for the amount of the goods sold. If the merchant does not have goods in stock or wishes to review orders before shipping the goods, this transaction type should be submitted. + + + Orders without shipping + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Debit withdrawal + + + Credit card + Kreditna kartica + + + Debit card + + + Prepayment + + + Invoice + Račun + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + + + Full screen + + + Integrated payment form + + + Name &amp; Type + + + Additional notes + Dodatne opombe + + + General configuration + + + Payment gateway configuration + + + Price + Cena + + + Template + Predloga + + + Expert settings + Napredne nastavitve + + + Approval + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_product.php b/system/modules/isotope/languages/sl/tl_iso_product.php deleted file mode 100644 index 838e8e403a..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_product.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Product ID + ID izdelka + + + Categories + Kategorije + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + + + Product type + Vrsta izdelka + + + Select your product type. Product types are defined in the store configuration. + + + Default variant + + + Click here if this variant should be pre-selected by default. + + + Alias + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + + + Name + Naziv + + + Please enter the name of this product. + Vnesite naziv izdelka + + + SKU + + + Please enter a unique stock keeping unit for this product. + + + Shipping weight + Masa pošiljke + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + + + Teaser + Kratek opis (teaser) + + + Please enter the teaser. + + + Description + Opis + + + Please enter the product description. + Opis izdelka + + + Meta title + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + + + Meta description + + + Meta description will be placed in the header on product detail page, for search engine optimization. + + + Meta keywords + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + + + Price &amp; tax class + Cena in davčna stopnja + + + Please enter the price(s) for this product and select the tax class. + + + Exempt from shipping + + + Check if item is not a shipped item (such as downloadable products). + + + Base price amount + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + + + Images + Slike + + + Upload images to this product. Please save the product after selecting a file. + + + Protect product + + + Restrict product access to certain member groups. + + + Allowed member groups + + + These groups will be able to access the product. + + + Show to guests only + Prikaži le gostom spletnega mesta + + + Hide the product if there is an authenticated user. + Izdelka ne prikaži uporabnikom, ki so prijavljeni v spletno mesto + + + CSS ID/class + + + Here you can set an ID and one or more classes. + + + Publish product + Objavi izdelek + + + Click here to show this product on your website. + + + Start date + + + Do not show this product before the date specified. + + + Stop date + + + Do not show this product after the date specified. + + + Inherited attributes + + + Check the fields you want to inherit from base product. + + + Source folder + + + Please choose the folder where product assets are located. + + + Preview + Predogled + + + Alternate text + + + Link target + + + Description + Opis + + + Translate + Prevodi + + + None + + + Do not translate this image. + + + Text + + + Translate alt text and description for this image. + + + All + + + Do not include this image in translated version. + + + Variant + + + Show product variants + + + New product + Nov izdelek + + + Create new product + Vnesi nov izdelek + + + Add variant + + + Add new variant to a given product + + + Edit product + Uredi izdelek + + + Edit product ID %s + + + Copy product + Podvoji izdelek + + + Copy product ID %s + + + Move product + Premakni izdelek + + + Move product ID %s + + + Delete product + Izbriši izdelek + + + Delete product ID %s + + + Publish/unpublish product + + + Publish/unpublish product ID %s + + + Product details + Podrobnosti o izdelku + + + Show details of product ID %s + + + Advanced filter: + Napredni filter: + + + Without images + Brez slik + + + Unassigned products + + + New products + Novi izdelki + + + Added today + Danes vnešeni + + + Added this week + Vnešeni ta teden + + + Added this month + Vnešeni v tem mesecu + + + Manually sort products in a page + + + Product groups + Skupine izdelkov + + + Manage product groups + Uredi skupine izdelkov + + + Import assets + + + Import images and other media from a folder + + + Manage prices + Uredi cene + + + Click the button to manage advanced prices for this product. + + + Apply and close + + + Product variants + + + Show variants for product ID %s + + + Generate variants + + + Generate variants for product ID %s + + + Related products + Sorodni izdelki + + + Manage related products for product ID %s + + + Downloads + Prenosi + + + Edit downloads for product ID %s + + + Currently: %s downloads. + + + Move to group + Premakni v skupino + + + Move product ID %s to a group + + + Group + Skupina + + + General Settings + Splošne nastavitve + + + Meta data + + + Pricing Settings + Nastavitve cene + + + Inventory Settings + + + Shipping Settings + Nastavitve dostave + + + Product Options Settings + + + Media Management + + + Expert settings + Napredne nastavitve + + + Publishing + + + Quantity + Količina + + + from %s pcs. + + + Price + Cena + + + <p>There are two different ways this feature may be used:</p> +<ol> + <li>The source folder you select contains files that either match the product's SKU or name. Isotope eCommerce is going to match all the files against all of your products and import them into the respective product's assets folder.</li> + <li>The source folder you select contains subfolders that either match the product's SKU or name. Isotope eCommerce is going to match all the subfolders against all of your products and import everything within one subfolder into the respective product's asset folder.</li> +</ol> +<p>Hint: Any developer can provide you with other matching rules than just the product's SKU or name.</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_product_category.php b/system/modules/isotope/languages/sl/tl_iso_product_category.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_product_category.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Move product + Premakni izdelek + + + Move product ID %s + + + Paste at the top + + + Paste after product ID %s + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_product_collection.php b/system/modules/isotope/languages/sl/tl_iso_product_collection.php deleted file mode 100644 index e030764869..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_product_collection.php +++ /dev/null @@ -1,20 +0,0 @@ - + + + + Order ID + + + Member (empty for guests) + + + Unique ID + + + Order status + Status naročila + + + Select the status of this order. + + + Placed + + + Source (Cart ID) + + + Payment date + + + Enter a date when this order has been paid. + + + Shipped date + + + Enter a date when this order has been shipped. + + + Shop configuration + + + Payment method + Način plačila + + + Shipping method + + + Billing address + + + Shipping address + + + Subtotal + + + Subtotal without tax + + + Total + Skupaj + + + Total without tax + + + Currency + Valuta + + + Language + + + Order notes + + + If you would like to convey information to other backend users, please do so here. + + + Edit order + + + Edit order ID %s + + + Copy order + + + Copy order ID %s + + + Delete order + + + Delete order ID %s + + + Order details + + + Show details of order ID %s + + + Payment details + + + Show payment details of order ID %s + + + Shipping details + + + Show shipping details of order ID %s + + + Print a document + + + Print order ID %s with a document of your choice + + + Document + + + Choose the document you would like to print the data with. + + + Print + + + The status of your order has been updated. + + + Notifications (e.g. email to client) have been sent. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + + + Saferpay payment was sucessfully captured. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + + + Saferpay payment cannot be canceled automatically. Use <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a> to issue a refund. + + + No additional email data available. + + + Order status + Status naročila + + + Order details + + + Email data + + + Billing address data + + + Shipping address data + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_product_price.php b/system/modules/isotope/languages/sl/tl_iso_product_price.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_product_price.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Price Tiers + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + + + Tax Class + + + Please select a tax class for this price. + + + Store configuration + + + Select a store configuration for this price. + + + Member group + + + Select a member group for this price. + + + Use from + + + Do not use the price on the website before this day. + + + Use until + + + Do not use the price on the website after this day. + + + Add price + + + Add a new price to this product + + + Edit price + + + Edit price ID %s + + + Duplicate price + + + Duplicate price ID %s + + + Delete price + + + Delete price ID %s + + + Price details + + + Show details of price ID %s + + + Quantity (min) + + + Price + Cena + + + Price + Cena + + + Limitations + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_producttype.php b/system/modules/isotope/languages/sl/tl_iso_producttype.php deleted file mode 100644 index ce74c9a3d7..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_producttype.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Naziv + + + Please enter a name for this product type. + + + Product Class + + + Please select a product class. Different product classes will handle products differently. + + + Default + + + Check here if this is the default product type. + + + Description + Opis + + + A hint to product managers what this product type is for. + + + Advanced pricing + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + + + Show price tiers + + + Show highest tier as lowest product price. + + + List template + + + Select a template for product listing. + + + Reader template + + + Select a template for product details. + + + List gallery + + + Select a gallery for product listing. + + + Reader gallery + + + Select a gallery for product details. + + + CSS class + + + The class(es) will be added to the product list and reader templates. + + + Attributes + Lastnosti + + + Select the collection of attributes that should be included for this product type. + + + Grouping + + + Group fields by topic (legends) + + + Alignment + + + Enter a tl_class to override alignment for this attribute. + + + Mandatory + + + You can override the default mandatory-ness here. + + + Default + + + Enable variants + + + Check here if this product type has variants. + + + Variant attributes + + + Select the collection of variant attributes that should be included for this product type. Those that are not selected will be hidden from view and inherited from the parent product. + + + Always show variant attributes + + + Show a variant attribute (select, radio) even if there is only one choice. + + + Exempt from shipping + + + Check if items of this product type are not a shipped item (such as downloadable products). + + + Enable downloads + + + Check here if this product type has downloads. + + + New product type + + + Create new product type. + + + Edit product type + + + Edit product type ID %s + + + Copy product type definiton + + + Copy definition of product type ID %s + + + Delete product type + + + Delete product type ID %s + + + product type details + + + Show details of product type ID %s + + + Product type settings + + + Description + Opis + + + Prices + + + Templates + + + Product attributes + + + Variant attributes + + + Expert settings + Napredne nastavitve + + + You must select at least one variant option (one of those: %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_related_category.php b/system/modules/isotope/languages/sl/tl_iso_related_category.php deleted file mode 100644 index f2c18674ef..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_related_category.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Category name + + + Please enter a name for this category. + + + New category + + + Create a new category + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Name + Naziv + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_related_product.php b/system/modules/isotope/languages/sl/tl_iso_related_product.php deleted file mode 100644 index 8fe1e1a08f..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_related_product.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Category + + + Select a category. + + + Products + Izdelki + + + Enter a comma-separated list of product or variant IDs to show as related products. + + + Add category + + + Add a new category with products + + + Edit category + + + Edit category ID %s + + + Duplicate category + + + Duplicate category ID %s + + + Move category + + + Move category ID %s + + + Delete category + + + Delete category ID %s + + + Category details + + + Show details of category ID %s + + + Edit product + Uredi izdelek + + + Edit this product + + + Category + + + Related products + Sorodni izdelki + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_shipping.php b/system/modules/isotope/languages/sl/tl_iso_shipping.php deleted file mode 100644 index 5fd53d3ea4..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_shipping.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Shipping Method Name + + + Please enter a name for this shipping method. + + + Shipping Method Type + + + Please select the type of this shipping method + + + Price + Cena + + + Optionally enter a price for this shipping method. + + + Shipping Method Notes + + + These will be displayed on the front end in association with this shipping option. + + + Tax Class + + + Select a tax class that applies to the shipping price. + + + Label + Oznaka + + + This is displayed on the front end in association with the shipping option. + + + Flat calculation + + + Select the mode of price calculation. + + + Countries + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + + + State/Regions + + + Select the states/regions this shipping method applies to. If you don't select anything, the shipping method will be applied to all states/regions. + + + Postal codes + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + + + Enter a minimum amount to control availability based on the cart subtotal. + + + Maximum subtotal + + + Enter a maximum amount to control availability based on the cart subtotal. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Total quantity in cart + + + Total products in cart + Skupno število izdelkov v košarici + + + Minimum quantity + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + + + Maximum quantity + Največja dovoljena količina + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + + + Product types + Vrste izdelkov + + + You can restrict this shipping method to certain product types. If the cart contains a product type you have not selected, the shipping module is not available. + + + Product type condition + + + Select how the product type filter should be applied. + + + Store configurations + + + You can restrict this shipping method to certain shop configurations. + + + Shipping methods + Načini dostave + + + Select the shipping methods to group in this method. + + + Group calculation + + + Select how the price of this shipping method should be calculated. + + + Member Groups + + + Restrict this shipping option to certain member groups. + + + Protect module + + + Show the module to certain member groups only. + + + Show to guests only + Prikaži le gostom spletnega mesta + + + Hide the module if a member is logged in. + + + Enabled + Omogočeno + + + Is the module available for use in the store? + + + Title and type + + + Shipping note + + + Configuration + + + Pricing threshold and tax class applicability + + + Expert settings + Napredne nastavitve + + + Approval + + + New shipping method + + + Create a New shipping method + + + Edit shipping method + + + Edit shipping method ID %s + + + Copy shipping method + + + Copy shipping method ID %s + + + Delete shipping method + + + Delete shipping method ID %s + + + Enable/disable shipping method + + + Enable/disable shipping method ID %s + + + Shipping method details + + + Show details of shipping method ID %s + + + Flat + + + Per Product + + + Per Item + + + Price of the first available method + + + Lowest price of available methods + + + Highest price of available methods + + + Summed price of available methods + + + Enable if only these product types are in cart + + + Enable if all these product types are in cart + + + Enable if one of these product types is in cart + + + Calculate price for these product types + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_tax_class.php b/system/modules/isotope/languages/sl/tl_iso_tax_class.php deleted file mode 100644 index f8fe338204..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_tax_class.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Name + Naziv + + + Give this tax class a name that explains what it is used for. + + + Default + + + Check here if this is the default tax class. + + + Tax rate included with product price + + + Select if prices of products with this tax class contain a tax rate. This tax rate will be subtracted from product price if it does not match. + + + Include label + + + A label for orders to present for subtracted taxes (if included tax does not match). Default tax rate label will be used if this is blank. + + + Apply tax rates + + + Add these tax rates to products with this tax class. + + + Apply rounding increment + + + Check here if you want to apply the rounding increment of your shop config. + + + Not negative + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + + + New tax class + + + Create a new tax class + + + Edit tax class + + + Edit tax class ID %s + + + Copy tax class + + + Copy tax class ID %s + + + Delete tax class + + + Delete tax class ID %s + + + Tax class details + + + Show details of tax class ID %s + + + Name + Naziv + + + Tax rates + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_iso_tax_rate.php b/system/modules/isotope/languages/sl/tl_iso_tax_rate.php deleted file mode 100644 index 7af3af1368..0000000000 --- a/system/modules/isotope/languages/sl/tl_iso_tax_rate.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Name + Naziv + + + Enter a name for this tax rate. + + + Label + Oznaka + + + This label will be used on the front end in the checkout process. + + + Address to use for calculation + + + Select to which address this rate should use to apply its calculation. Be aware that for non-shippable products, the shipping address will equal to billing address. + + + Countries + + + Select the countries this tax class applies to. + + + States/Regions + + + Select the states or regions this tax class applies to. + + + Postal codes + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + + + Tax rate + + + A rate in percent this tax is set at. + + + Store configuration + + + Select the store configuration that the tax rate applies to. + + + Exempt on valid VAT number + + + Do not apply tax if the VAT number is valid. + + + Stop calculations on trigger? + + + Stop other calculations if this tax rate is triggered. + + + Member groups + + + Restrict this tax rate to certain member groups. + + + Protect tax rate + + + Apply the tax rate to certain member groups only. + + + Apply to guests only + + + Do not apply tax rate if a member is logged in. + + + New tax rate + + + Create a new tax rate + + + Edit tax rate + + + Edit tax rate ID %s + + + Copy tax rate + + + Copy tax rate ID %s + + + Delete tax rate + + + Delete tax rate ID %s + + + Tax rate details + + + Show details of tax rate ID %s + + + Billing Address + Naslov za račun + + + Shipping Address + + + Name + Naziv + + + Rate + + + Location + + + Conditions + + + Configuration + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_maintenance.php b/system/modules/isotope/languages/sl/tl_maintenance.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/tl_maintenance.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Purge Isotope product cache + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + + + Purge Isotope request cache + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_member.php b/system/modules/isotope/languages/sl/tl_member.php deleted file mode 100644 index 76400f5b0e..0000000000 --- a/system/modules/isotope/languages/sl/tl_member.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Address Book + Adresar + + + Manage the address book for member ID %s. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_module.php b/system/modules/isotope/languages/sl/tl_module.php deleted file mode 100644 index 440068521e..0000000000 --- a/system/modules/isotope/languages/sl/tl_module.php +++ /dev/null @@ -1,31 +0,0 @@ - + + + + Product list template + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + + + Product reader template + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + + + Gallery + Galerija + + + Select a gallery to render images (overrides the product type config). + + + Product collection template + + + Please choose a template to render the products. You can add custom collection templates to folder <em>templates</em>. Collection template files start with <em>iso_collection_</em>. + + + Filter template + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + + + Redirect to first product + + + Check here if users are redirected to the first product of the list. + + + Hide in reader mode + + + Hide product list when a product alias is found in the URL. + + + Enable quantity + Omogoči količino + + + Allow users to specify 1 or more of a product to be purchased. + + + Display a 404 page + + + Display the 404 not found page if no product alias is in the URL. Use this if your reader module is on a separate page that should not be available otherwise. + + + Checkout method + + + Choose your checkout method. + + + Require login + + + A member login is required to view this page (e.g. if the order belongs to a member). + + + Login page + + + Select the page where a member can login. + + + Add product jump to page + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + + + Columns + Stolpci + + + Enter a number of columns to display width-wise in the listing template. + + + Store configuration + + + Select the store configuration that this module will be used for. + + + Store configurations + + + Select the store configurations that this module will be used for. + + + Payment methods + Načini plačila + + + Select one or more payment methods for this checkout module. + + + Shipping methods + Načini dostave + + + Select one or more shipping methods for this checkout module. + + + Completed order jump to page + + + Select a page the customer will be referred to after their order is complete. + + + Forward to review page + + + Forward the user to the review page if no data is required on any step. + + + Skip checkout steps + + + Enable individual options to skip certain checkout steps if possible + + + Use member address as billing address if user is logged in + + + Always use billing address as shipping address + + + Skip shipping step if only one shippig method is available + + + Skip payment step if only one payment method is available + + + Order conditions form + + + Choose a custom form that is used to display your order terms and conditions (optional). + + + Position of order conditions form + + + Define if the order condition form should be shown before or after the products list. + + + On top (before address) + + + Before products list + + + After products list + + + Add to address book + + + Add new addresses to members address book (if logged in). + + + Sorting + Razvrščanje + + + Define in what order the collection items should be listed. + + + Define empty message + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + + + Message when empty + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + + + Define a message if no filter is set + + + Set a custom message when there is no filter set. + + + Message when no filter is set + + + Enter a custom message if there is no filter set. + + + Category Scope + + + Specify the scope of a product lister. + + + Condition + Pogoj + + + Here you can enter a SQL condition to filter the products. You must prefix the fields with "tl_iso_product." (e.g. <em>tl_iso_product.featured=1</em> or <em>tl_iso_product.color!='red'</em>)! + + + Filter modules + + + Select the filter modules you want to consider for this product list. + + + Enabled filters + Omogočeni filtri + + + Please select filters to enable. + + + Filter configuration + + + Please configure the cumulative filter fields. + + + Attribute + + + Query Type + + + AND + + + OR + + + Number of results + + + Do not show + + + Show total + + + Show difference + + + Hide single options + + + Hide filter field if there is just one option. + + + Enabled search fields + + + Please select search fields to enable. + + + Autocomplete search field + + + If you select a field here, the search will be autocompleted by the values of that field. + + + Enabled sorting fields + + + Please select orderable fields to enable. + + + Filtering for new products + + + If you have configured marking products as "new" in your shop configuration, you can either filter for old ones, new ones or just display all products. + + + Show all products + Prikaži vse izdelke + + + Only show new products + Prikaži samo nove izdelke + + + Only show old products + Prikaži samo stare izdelke + + + Enable per-page limiting + + + Allow the user to select the number of records to show per page. + + + Per page options + + + Enter a comma separated list for the limit dropdown. The first option will be used as the default value. Values will automatically sort by number. + + + Shopping Cart Jump to page + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + + + Checkout Jump to page + + + This setting defines to which page a user will be redirected when completing their transaction. + + + Initial sorting field + Privzeto polje za razvrščanje + + + Select a sorting field to sort the listing by on first page load. + + + Initial sorting direction + + + Select a initial sorting direction. + + + Buttons + Gumbi + + + Select the buttons you want to show. + + + Related categories + Sorodni kategorije + + + Select the categories to show products of. + + + Include messaging + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + + + Enable "Continue shopping" button + + + Add a link to the currently added product to the cart. + + + Address types + + + Please choose the address types. + + + Billing address + + + Shipping address + + + Available address fields + + + Choose the available address fields you would like to display. + + + Order conditions form + + + Login/Registration required + Zahtevana prijava/registracija + + + Guest checkout only + + + Both allowed + + + All Categories + Vse kategorije + + + Show all products that are assigned to a page of the active page tree (based on the root page). + + + Current Category and First Child Category + + + Show all products that are assigned to the active page or child pages on the first sublevel. + + + Current Category and All Child Categories + + + Show all products that are assigned to the active page or any child page of it. + + + Current Category + Trenutna kategorija + + + Show all products that are assigned to the active page (default). + + + Parent Category + + + Show all products that are assigned to the parent page of the active page. + + + Current Product's Categories + + + Show all products that are assigned to the same pages the currently active product is assigned to. + + + Category of article + + + If you place the module in an article, it will show products assigned to the artilce's partent page, even though if you place the article in another page (e.g. using insert tag). + + + ASC + + + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_nc_notification.php b/system/modules/isotope/languages/sl/tl_nc_notification.php deleted file mode 100644 index 30cbc4b4e1..0000000000 --- a/system/modules/isotope/languages/sl/tl_nc_notification.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Product collection template + + + Please choose a template to render the products for the notification content. + + + Sorting + Razvrščanje + + + Define in what order the collection items should be listed. + + + Gallery + Galerija + + + Select a gallery to render images. + + + Document + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + + + This notification type can be sent when the order status changes. + + + Addressbook change + + + This notification type can be sent when the customer makes changes in his addressbook. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_page.php b/system/modules/isotope/languages/sl/tl_page.php deleted file mode 100644 index 299ddf86aa..0000000000 --- a/system/modules/isotope/languages/sl/tl_page.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Store Configuration + + + Select a store configuration for this page structure. + + + Use reader page + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + + + Reader page + + + Select a page for your page reader. + + + Store ID + ID trgovine + + + Use different store IDs to group a store on multiple root sites. A members's cart and addresses will be shared across the same store IDs. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_settings.php b/system/modules/isotope/languages/sl/tl_settings.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/tl_settings.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Guest cart timeout + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + + + Order timeout + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_user.php b/system/modules/isotope/languages/sl/tl_user.php deleted file mode 100644 index 20d3866efa..0000000000 --- a/system/modules/isotope/languages/sl/tl_user.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Isotope modules + + + Select which store configuration modules user of this group can access. + + + Allowed product types + Dovoljene vrste izdelkov + + + Here you can grant access to one or more product types. + + + Product type permissions + + + Here you can define the product type permissions. + + + Allowed payment modules + Dovoljeni plačilni moduli + + + Here you can grant access to one or more payment modules. + + + Payment module permissions + + + Here you can define the payment module permissions. + + + Allowed shipping modules + Dovoljeni moduli dostave + + + Here you can grant access to one or more shipping modules. + + + Shipping module permissions + + + Here you can define the shipping module permissions. + + + Allowed tax classes + + + Here you can grant access to one or more tax classes. + + + Tax class permissions + + + Here you can define the tax class permissions. + + + Allowed tax rates + + + Here you can grant access to one or more tax rates. + + + Tax rate permissions + + + Here you can define the tax rate permissions. + + + Allowed store configurations + + + Here you can grant access to one or more store configurations. + + + Store configuration permissions + + + Her you can define the store configuration permissions. + + + Allowed product groups + Dovoljene skupine izdelkov + + + Limit access to product groups for this user group. Gets inherited. + + + Product group permissions + + + Here you can define the product group permissions. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tl_user_group.php b/system/modules/isotope/languages/sl/tl_user_group.php deleted file mode 100644 index b2d4b64223..0000000000 --- a/system/modules/isotope/languages/sl/tl_user_group.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/sl/tokens.php b/system/modules/isotope/languages/sl/tokens.php deleted file mode 100644 index 30e44236e2..0000000000 --- a/system/modules/isotope/languages/sl/tokens.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + The order's unique ID. + + + The label of the order's current status. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + + + The ID of the order's current status. + + + The ID of the order's previous status. + + + The email address of the recipient. + + + The ID of the order. + + + The number of items (quantities summed up) in the order. + + + The number of individual products in the order. + + + The order's subtotal. + + + The order's total. + + + The order document number. + + + Order/Cart as text. + + + Order/Cart as HTML. + + + The document that should be attached (e.g. an invoice). + + + All the collection/order column fields as stored in the database + + + Formatted billing address. + + + All the billing address model fields. + + + Formatted shipping address. + + + All the shipping address model fields. + + + All the order condition form fields. + + + Payment method ID. + + + Payment method label. + + + Payment method note. + + + Shipping method ID. + + + Shipping method label. + + + Shipping method note. + + + All the store configuration fields. + + + All the member fields if it was a member checkout. + + + + \ No newline at end of file diff --git a/system/modules/isotope/library/Isotope/Analytics.php b/system/modules/isotope/library/Isotope/Analytics.php index 794009b6ab..738c1e2253 100644 --- a/system/modules/isotope/library/Isotope/Analytics.php +++ b/system/modules/isotope/library/Isotope/Analytics.php @@ -3,17 +3,23 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2012 Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://www.isotopeecommerce.com - * @license http://opensource.org/licenses/lgpl-3.0.html LGPL + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; +use Isotope\Interfaces\IsotopeOrderableCollection; +use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Model\Config; use Isotope\Model\ProductCollection\Order; +use UnitedPrototype\GoogleAnalytics\CustomVariable; +use UnitedPrototype\GoogleAnalytics\Session; +use UnitedPrototype\GoogleAnalytics\Tracker; +use UnitedPrototype\GoogleAnalytics\Transaction; +use UnitedPrototype\GoogleAnalytics\Visitor; class Analytics extends Frontend @@ -28,13 +34,10 @@ class Analytics extends Frontend */ public function trackOrder(Order $objOrder) { - $objConfig = Config::findByPk($objOrder->config_id); + $objConfig = $objOrder->getConfig(); - if (null !== $objConfig) { - - if ($objConfig->ga_enable) { - $this->trackGATransaction($objConfig, $objOrder); - } + if (null !== $objConfig && $objConfig->ga_enable) { + $this->trackGATransaction($objConfig, $objOrder); } return true; @@ -42,26 +45,31 @@ public function trackOrder(Order $objOrder) /** * Actually execute the GoogleAnalytics tracking - * @param Database_Result + * + * @param Config $objConfig * @param IsotopeProductCollection $objOrder */ - protected function trackGATransaction($objConfig, $objOrder) + protected function trackGATransaction(Config $objConfig, IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopeOrderableCollection) { + return; + } + // Initilize GA Tracker - $tracker = new \UnitedPrototype\GoogleAnalytics\Tracker($objConfig->ga_account, \Environment::get('base')); + $tracker = new Tracker($objConfig->ga_account, \Environment::get('base')); // Assemble Visitor information // (could also get unserialized from database) - $visitor = new \UnitedPrototype\GoogleAnalytics\Visitor(); + $visitor = new Visitor(); $visitor->setIpAddress(\Environment::get('ip')); $visitor->setUserAgent(\Environment::get('httpUserAgent')); - $transaction = new \UnitedPrototype\GoogleAnalytics\Transaction(); + $transaction = new Transaction(); - $transaction->setOrderId($objOrder->document_number); + $transaction->setOrderId($objOrder->getDocumentNumber()); $transaction->setAffiliation($objConfig->name); $transaction->setTotal($objOrder->getTotal()); - $transaction->setTax(($objOrder->getTotal() - $objOrder->getTaxFreeTotal())); + $transaction->setTax($objOrder->getTotal() - $objOrder->getTaxFreeTotal()); // $transaction->setShipping($objOrder->shippingTotal); $objAddress = $objOrder->getBillingAddress(); @@ -103,16 +111,24 @@ protected function trackGATransaction($objConfig, $objOrder) } // Track logged-in member as custom variable - if ($objConfig->ga_member != '' && $objOrder->member > 0 && ($objMember = \MemberModel::findByPk($objOrder->member)) !== null) + if ($objConfig->ga_member != '' && null !== $objOrder->getMember()) { - $customVar = new \UnitedPrototype\GoogleAnalytics\CustomVariable(1, 'Member', $this->parseSimpleTokens($objConfig->ga_member, $objMember->row()), \UnitedPrototype\GoogleAnalytics\CustomVariable::SCOPE_VISITOR); + $customVar = new CustomVariable( + 1, + 'Member', + \StringUtil::parseSimpleTokens( + $objConfig->ga_member, + $objOrder->getMember()->row() + ), + CustomVariable::SCOPE_VISITOR + ); $tracker->addCustomVariable($customVar); } // Assemble Session information // (could also get unserialized from PHP session) - $session = new \UnitedPrototype\GoogleAnalytics\Session(); + $session = new Session(); $tracker->trackTransaction($transaction, $session, $visitor); } diff --git a/system/modules/isotope/library/Isotope/Automator.php b/system/modules/isotope/library/Isotope/Automator.php index 896a1f023b..1128b905e2 100644 --- a/system/modules/isotope/library/Isotope/Automator.php +++ b/system/modules/isotope/library/Isotope/Automator.php @@ -3,31 +3,24 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; use Isotope\Model\Config; +use Isotope\Model\ProductCollection; use Isotope\Model\ProductCollection\Cart; use Isotope\Model\ProductCollection\Order; - -/** - * Class Isotope\Automator - * - * Provide methods to run Isotope automated jobs. - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss - */ class Automator extends \Controller { - + /** + * Make the constructor public. + */ public function __construct() { parent::__construct(); @@ -40,8 +33,8 @@ public function deleteOldCarts() { $t = Cart::getTable(); $objCarts = Cart::findBy( - array("($t.member=0 AND $t.tstamp 0 AND $t.member NOT IN (SELECT id FROM tl_member))"], + [time() - $GLOBALS['TL_CONFIG']['iso_cartTimeout']] ); if (($intPurged = $this->deleteOldCollections($objCarts)) > 0) { @@ -56,13 +49,13 @@ public function deleteOldOrders() { $t = Order::getTable(); $objOrders = Order::findBy( - array( + [ "$t.order_status=0", "$t.tstampdeleteOldCollections($objOrders)) > 0) { @@ -72,29 +65,31 @@ public function deleteOldOrders() /** * Update the store configs with latest currency conversion data - * @param int Config id (optional, if none given, all will be taken) + * + * @param int $intId Config id (optional, if none given, all will be taken) */ public function convertCurrencies($intId = 0) { - $arrColumns = array(Config::getTable() . '.currencyAutomator=?'); - $arrValues = array('1'); + $arrColumns = [Config::getTable() . '.currencyAutomator=?']; + $arrValues = ['1']; if ($intId > 0) { $arrColumns[] = Config::getTable() . '.id=?'; $arrValues[] = $intId; } - $objConfigs = Config::findBy($arrColumns, $arrValues); + /** @var Config[] $configs */ + $configs = Config::findBy($arrColumns, $arrValues); - if (null === $objConfigs) { + if (null === $configs) { return; } - while ($objConfigs->next()) { - switch ($objConfigs->currencyProvider) { + foreach ($configs as $config) { + switch ($config->currencyProvider) { case 'ecb.int': - $fltCourse = ($objConfigs->currency == 'EUR') ? 1 : 0; - $fltCourseOrigin = ($objConfigs->currencyOrigin == 'EUR') ? 1 : 0; + $fltCourse = ('EUR' === $config->currency) ? 1 : 0; + $fltCourseOrigin = ('EUR' === $config->currencyOrigin) ? 1 : 0; $objRequest = new \Request(); $objRequest->send('http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml'); @@ -108,12 +103,12 @@ public function convertCurrencies($intId = 0) $objXml = new \SimpleXMLElement($objRequest->response); foreach ($objXml->Cube->Cube->Cube as $currency) { - if (!$fltCourse && strtolower($currency['currency']) == strtolower($objConfigs->currency)) { + if (!$fltCourse && strtolower($currency['currency']) == strtolower($config->currency)) { $fltCourse = (float) $currency['rate']; } if (!$fltCourseOrigin - && strtolower($currency['currency']) == strtolower($objConfigs->currencyOrigin) + && strtolower($currency['currency']) == strtolower($config->currencyOrigin) ) { $fltCourseOrigin = (float) $currency['rate']; } @@ -126,13 +121,13 @@ public function convertCurrencies($intId = 0) return; } - $objConfigs->priceCalculateFactor = ($fltCourse / $fltCourseOrigin); - $objConfigs->save(); + $config->priceCalculateFactor = ($fltCourse / $fltCourseOrigin); + $config->save(); break; case 'admin.ch': - $fltCourse = ($objConfigs->currency == 'CHF') ? 1 : 0; - $fltCourseOrigin = ($objConfigs->currencyOrigin == 'CHF') ? 1 : 0; + $fltCourse = ('CHF' === $config->currency) ? 1 : 0; + $fltCourseOrigin = ('CHF' === $config->currencyOrigin) ? 1 : 0; $objRequest = new \Request(); $objRequest->send('http://www.afd.admin.ch/publicdb/newdb/mwst_kurse/wechselkurse.php'); @@ -146,11 +141,11 @@ public function convertCurrencies($intId = 0) $objXml = new \SimpleXMLElement($objRequest->response); foreach ($objXml->devise as $currency) { - if (!$fltCourse && $currency['code'] == strtolower($objConfigs->currency)) { + if (!$fltCourse && $currency['code'] == strtolower($config->currency)) { $fltCourse = (float) $currency->kurs; } - if (!$fltCourseOrigin && $currency['code'] == strtolower($objConfigs->currencyOrigin)) { + if (!$fltCourseOrigin && $currency['code'] == strtolower($config->currencyOrigin)) { $fltCourseOrigin = (float) $currency->kurs; } } @@ -162,8 +157,8 @@ public function convertCurrencies($intId = 0) return; } - $objConfigs->priceCalculateFactor = ($fltCourse / $fltCourseOrigin); - $objConfigs->save(); + $config->priceCalculateFactor = ($fltCourse / $fltCourseOrigin); + $config->save(); break; default: @@ -173,7 +168,7 @@ public function convertCurrencies($intId = 0) ) { foreach ($GLOBALS['ISO_HOOKS']['convertCurrency'] as $callback) { $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objConfigs->current()); + $objCallback->{$callback[1]}($config); } } } @@ -183,20 +178,20 @@ public function convertCurrencies($intId = 0) /** * Delete product collections if they are older than given seconds and not locked - * @param string - * @return int + * + * @param ProductCollection[] $objCollections + * + * @return int */ protected function deleteOldCollections($objCollections) { $intPurged = 0; if (null !== $objCollections) { - - /** @var \Isotope\Model\ProductCollection $objCollection */ foreach ($objCollections as $objCollection) { if (!$objCollection->isLocked()) { $objCollection->delete(); - $intPurged += 1; + ++$intPurged; } } } diff --git a/system/modules/isotope/library/Isotope/Backend.php b/system/modules/isotope/library/Isotope/Backend.php index 96178bfde5..dc2c808cf2 100644 --- a/system/modules/isotope/library/Isotope/Backend.php +++ b/system/modules/isotope/library/Isotope/Backend.php @@ -3,23 +3,22 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; use Backend as Contao_Backend; +use Isotope\Backend\Product\Permission; use Isotope\Model\Config; use Isotope\Model\Group; use Isotope\Model\OrderStatus; use Isotope\Model\ProductCache; use Isotope\Model\RequestCache; - /** * Class Isotope\Backend * @@ -48,7 +47,6 @@ public static function truncateProductCache($varValue = null) return $varValue; } - /** * Truncate the request cache table */ @@ -57,7 +55,6 @@ public static function truncateRequestCache() RequestCache::purge(); } - /** * Get array of subdivisions, delay loading of file if not necessary * @@ -90,11 +87,38 @@ public static function getSubdivisions() return $arrSubdivisions; } + /** + * Returns the label for a subdivision of a country. + * + * @param string $country + * @param string $subdivision + * + * @return string + */ + public static function getLabelForSubdivision($country, $subdivision) + { + $country = strtolower($country); + $arrSubdivisions = Backend::getSubdivisions(); + + if (isset($arrSubdivisions[$country][$subdivision])) { + return $arrSubdivisions[$country][$subdivision]; + } else { + foreach ($arrSubdivisions[$country] as $groupCode => $regionGroup) { + foreach ($regionGroup as $groupLabel => $regions) { + if (isset($regions[$subdivision])) { + return $regions[$subdivision]; + } + } + } + } + + return ''; + } /** * DCA for setup module tables is "closed" to hide the "new" button. Re-enable it when clicking on a button * - * @param object $dc + * @param \DataContainer $dc */ public function initializeSetupModule($dc) { @@ -103,7 +127,6 @@ public function initializeSetupModule($dc) } } - /** * Return all Isotope modules * @@ -120,7 +143,6 @@ public function getIsotopeModules() return $arrModules; } - /** * List template from all themes, show theme name * @@ -164,7 +186,6 @@ public static function getTemplates($strPrefix) return $arrTemplates; } - /** * Get order status and return it as array * @@ -176,7 +197,7 @@ public static function getOrderStatus() if (($objStatus = OrderStatus::findAll(array('order' => 'sorting'))) !== null) { - /** @type OrderStatus $status */ + /** @var OrderStatus $status */ foreach ($objStatus as $status) { $arrStatus[$status->id] = $status->getName(); } @@ -185,7 +206,6 @@ public static function getOrderStatus() return $arrStatus; } - /** * Show messages for new order status * @@ -193,10 +213,10 @@ public static function getOrderStatus() */ public function getOrderMessages() { - /** @type \BackendUser $objUser */ + /** @var \BackendUser $objUser */ $objUser = \BackendUser::getInstance(); - if (!\Database::getInstance()->tableExists(\Isotope\Model\OrderStatus::getTable()) + if (!\Database::getInstance()->tableExists(OrderStatus::getTable()) || !$objUser->hasAccess('iso_orders', 'modules') ) { return ''; @@ -217,8 +237,8 @@ public function getOrderMessages() $arrMessages = array(); $objOrders = \Database::getInstance()->query(" SELECT COUNT(*) AS total, s.name - FROM " . \Isotope\Model\ProductCollection::getTable() . " c - LEFT JOIN " . \Isotope\Model\OrderStatus::getTable() . " s ON c.order_status=s.id + FROM tl_iso_product_collection c + LEFT JOIN tl_iso_orderstatus s ON c.order_status=s.id WHERE c.type='order' AND s.welcomescreen='1' $strConfig GROUP BY s.id" ); @@ -230,19 +250,18 @@ public function getOrderMessages() return implode("\n", $arrMessages); } - /** * Returns an array of all allowed product IDs and variant IDs for the current backend user * * @return array|bool + * * @deprecated will be removed in Isotope 3.0 */ public static function getAllowedProductIds() { - return \Isotope\Backend\Product\Permission::getAllowedIds(); + return Permission::getAllowedIds(); } - /** * Check the Ajax pre actions * @@ -255,20 +274,20 @@ public function executePreActions($action) switch ($action) { // Move the product case 'moveProduct': - \Session::getInstance()->set('iso_products_gid', intval(\Input::post('value'))); + \Session::getInstance()->set('iso_products_gid', (int) \Input::post('value')); \Controller::redirect(html_entity_decode(\Input::post('redirect'))); break; // Move multiple products case 'moveProducts': - \Session::getInstance()->set('iso_products_gid', intval(\Input::post('value'))); + \Session::getInstance()->set('iso_products_gid', (int) \Input::post('value')); exit; break; // Filter the groups case 'filterGroups': - \Session::getInstance()->set('iso_products_gid', intval(\Input::post('value'))); - $this->reload(); + \Session::getInstance()->set('iso_products_gid', (int) \Input::post('value')); + \Controller::reload(); break; // Filter the pages @@ -276,7 +295,7 @@ public function executePreActions($action) $filter = \Session::getInstance()->get('filter'); $filter['tl_iso_product']['iso_page'] = (int) \Input::post('value'); \Session::getInstance()->set('filter', $filter); - $this->reload(); + \Controller::reload(); break; // Sorty products by page @@ -293,8 +312,8 @@ public function executePreActions($action) /** * Check the Ajax post actions * - * @param string $action - * @param object $dc + * @param string $action + * @param \DataContainer $dc * * @return string */ @@ -304,11 +323,11 @@ public function executePostActions($action, $dc) case 'uploadMediaManager': $arrData = array( 'strTable' => $dc->table, - 'id' => ($this->strAjaxName ?: $dc->id), + 'id' => $this->strAjaxName ?: $dc->id, 'name' => \Input::post('name'), ); - /** @type \Isotope\Widget\MediaManager $objWidget */ + /** @var \Isotope\Widget\MediaManager $objWidget */ $objWidget = new $GLOBALS['BE_FFL']['mediaManager']($arrData, $dc); $objWidget->ajaxUpload(); exit; @@ -319,7 +338,7 @@ public function executePostActions($action, $dc) $this->import('Database'); // Handle the keys in "edit multiple" mode - if (\Input::get('act') == 'editAll') { + if ('editAll' === \Input::get('act')) { $intId = preg_replace('/.*_([0-9a-zA-Z]+)$/', '$1', $strField); $strField = preg_replace('/(.*)_[0-9a-zA-Z]+$/', '$1', $strField); } @@ -361,7 +380,7 @@ public function executePostActions($action, $dc) $arrAttribs['strField'] = $strField; $arrAttribs['activeRecord'] = $dc->activeRecord; - /** @type \Isotope\Widget\MediaManager $objWidget */ + /** @var \Isotope\Widget\MediaManager $objWidget */ $objWidget = new $GLOBALS['BE_FFL']['mediaManager']($arrAttribs); echo $objWidget->generate(); exit; @@ -382,7 +401,7 @@ public function loadTypeAgentHelp($strTable) return; } - if ($strKey == 'tl_iso_producttype') { + if ('tl_iso_producttype' === $strKey) { $strKey = 'tl_iso_product'; } @@ -421,7 +440,7 @@ public function loadTypeAgentHelp($strTable) // try to load a type agent model help description $arrField['explanation'] = 'type'; foreach ($arrFieldComplete['options'] as $arrOption) { - $arrLabel = $GLOBALS['TL_LANG']['MODEL'][$strKey . '.' . $arrOption['value']]; + $arrLabel = $GLOBALS['TL_LANG']['MODEL'][$strKey][$arrOption['value']]; if ($arrLabel) { $GLOBALS['TL_LANG']['XPL']['type'][] = $arrLabel; } @@ -432,14 +451,14 @@ public function loadTypeAgentHelp($strTable) /** * Adjust the product groups manager view * - * @param \Template $objTemplate + * @param \Template|\stdClass $objTemplate */ public function adjustGroupsManager($objTemplate) { if (\Input::get('popup') - && \Input::get('do') == 'iso_products' - && \Input::get('table') == Group::getTable() - && $objTemplate->getName() == 'be_main' + && 'iso_products' === \Input::get('do') + && Group::getTable() === \Input::get('table') + && 'be_main' === $objTemplate->getName() ) { $objTemplate->managerHref = ampersand($this->Session->get('groupPickerRef')); $objTemplate->manager = $GLOBALS['TL_LANG']['MSC']['groupPickerHome']; diff --git a/system/modules/isotope/library/Isotope/Backend/Address/Callback.php b/system/modules/isotope/library/Isotope/Backend/Address/Callback.php index b53eff3a4f..62e146f23c 100755 --- a/system/modules/isotope/library/Isotope/Backend/Address/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Address/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Address; @@ -24,7 +23,7 @@ class Callback extends \Backend */ public function renderLabel($arrAddress) { - $objAddress = new \Isotope\Model\Address(); + $objAddress = new Address(); $objAddress->setRow($arrAddress); $strBuffer = $objAddress->generate(); @@ -54,9 +53,10 @@ public function renderLabel($arrAddress) public function updateDefault($varValue, $dc) { if ($varValue == '1' && $dc->activeRecord->{$dc->field} != $varValue) { - \Database::getInstance()->prepare(" - UPDATE " . Address::getTable() . " SET {$dc->field}='' WHERE pid=? AND ptable=? AND store_id=? - ")->execute($dc->activeRecord->pid, $dc->activeRecord->ptable, $dc->activeRecord->store_id); + \Database::getInstance() + ->prepare("UPDATE tl_iso_address SET {$dc->field}='' WHERE pid=? AND ptable=? AND store_id=?") + ->execute($dc->activeRecord->pid, $dc->activeRecord->ptable, $dc->activeRecord->store_id) + ; } return $varValue; diff --git a/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php b/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php index 7c049aabec..4bbce730b5 100755 --- a/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Attribute; @@ -26,8 +25,10 @@ class Callback extends \Backend */ public function disableFieldName($dc) { + $act = \Input::get('act'); + // Hide the field in editAll & overrideAll mode (Thanks to Yanick Witschi) - if (\Input::get('act') == 'editAll' || \Input::get('act') == 'overrideAll') { + if ('editAll' === $act || 'overrideAll' === $act) { $GLOBALS['TL_DCA']['tl_iso_attribute']['fields']['field_name']['eval']['doNotShow'] = true; } elseif ($dc->id) { $objAttribute = \Database::getInstance()->execute("SELECT * FROM tl_iso_attribute WHERE id={$dc->id}"); @@ -48,9 +49,9 @@ public function disableFieldName($dc) */ public function initializeTableOptions(\Widget $objWidget) { - /** @type Attribute $objAttribute */ + /** @var Attribute $objAttribute */ - if (\Input::get('do') == 'iso_products') { + if ('iso_products' === \Input::get('do')) { $objAttribute = Attribute::findByFieldName($objWidget->name); } else { $objAttribute = Attribute::findByPk(\Input::get('id')); @@ -73,11 +74,13 @@ public function initializeTableOptions(\Widget $objWidget) */ public function validateFieldName($varValue) { - $this->loadDataContainer('tl_iso_product'); + \Controller::loadDataContainer('tl_iso_product'); $varValue = str_replace('-', '_', standardize($varValue)); - if (isset($GLOBALS['TL_DCA']['tl_iso_product']['fields'][$varValue]) && $GLOBALS['TL_DCA']['tl_iso_product']['fields'][$varValue]['attributes']['systemColumn']) { + if (isset($GLOBALS['TL_DCA']['tl_iso_product']['fields'][$varValue]) + && $GLOBALS['TL_DCA']['tl_iso_product']['fields'][$varValue]['attributes']['systemColumn'] + ) { throw new \InvalidArgumentException(sprintf($GLOBALS['TL_LANG']['ERR']['systemColumn'], $varValue)); } @@ -97,7 +100,7 @@ public function updateDatabase($dc) // Make sure the latest SQL definitions are written to the DCA $GLOBALS['TL_CONFIG']['bypassCache'] = true; - $this->loadDataContainer('tl_iso_product', true); + \Controller::loadDataContainer('tl_iso_product', true); $objUpdater = new DatabaseUpdater(); $objUpdater->autoUpdateTables(array('tl_iso_product')); @@ -110,11 +113,13 @@ public function updateDatabase($dc) */ public function getConditionFields($dc) { - $this->loadDataContainer('tl_iso_product'); + \Controller::loadDataContainer('tl_iso_product'); $arrFields = array(); foreach ($GLOBALS['TL_DCA']['tl_iso_product']['fields'] as $field => $arrData) { - if ($arrData['inputType'] == 'select' || ($arrData['inputType'] == 'conditionalselect' && $field != $dc->activeRecord->field_name)) { + if ('select' === $arrData['inputType'] + || ('conditionalselect' === $arrData['inputType'] && $field != $dc->activeRecord->field_name) + ) { $arrFields[$field] = strlen($arrData['label'][0]) ? $arrData['label'][0] : $field; } } @@ -176,10 +181,12 @@ public function validateForeignKey($varValue) * @param object $dc * * @return mixed + * + * @throws \UnexpectedValueException if rgxp is not valid for a datepicker */ public function validateDatepicker($varValue, $dc) { - if ($varValue && !in_array($dc->activeRecord->rgxp, array('date', 'time', 'datim'))) { + if ($varValue && !in_array($dc->activeRecord->rgxp, ['date', 'time', 'datim'], true)) { throw new \UnexpectedValueException($GLOBALS['TL_LANG']['ERR']['datepickerRgxp']); } diff --git a/system/modules/isotope/library/Isotope/Backend/Attribute/OptionsWizard.php b/system/modules/isotope/library/Isotope/Backend/Attribute/OptionsWizard.php index 8005a9c62e..f4667acfac 100755 --- a/system/modules/isotope/library/Isotope/Backend/Attribute/OptionsWizard.php +++ b/system/modules/isotope/library/Isotope/Backend/Attribute/OptionsWizard.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Attribute; diff --git a/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php b/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php index c7ee3c1960..79863ec991 100755 --- a/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\AttributeOption; @@ -23,7 +22,9 @@ class Callback extends \Backend */ public function initWrappers() { - if (\Input::get('act') == '' || \Input::get('act') == 'select') { + $act = \Input::get('act'); + + if ('' == $act || 'select' === $act) { $GLOBALS['TL_WRAPPERS'] = array( 'start' => array('group'), 'separator' => array(), @@ -39,9 +40,9 @@ public function initWrappers() public function checkPermission() { // Attribute options for products can always have a price - if (\Input::get('do') != 'iso_products') { + if ('iso_products' !== \Input::get('do')) { - /** @type Attribute $objAttribute */ + /** @var Attribute $objAttribute */ $objAttribute = null; switch (\Input::get('act')) { @@ -75,12 +76,12 @@ public function checkPermission() */ public function storeFieldName($dc) { - if (\Input::get('do') == 'iso_products' && $dc->activeRecord->field_name == '') { - \Database::getInstance()->prepare(" + if ('iso_products' === \Input::get('do') && $dc->activeRecord->field_name == '') { + \Database::getInstance()->prepare(' UPDATE tl_iso_attribute_option SET field_name=? WHERE id=? - ")->execute(\Input::get('field'), $dc->id); + ')->execute(\Input::get('field'), $dc->id); } } @@ -93,7 +94,7 @@ public function storeFieldName($dc) */ public function listRecords($row) { - if ($row['type'] == 'group') { + if ('group' === $row['type']) { $GLOBALS['TL_WRAPPERS']['stop'][] = 'group'; } @@ -120,12 +121,11 @@ public function listRecords($row) */ public function saveType($varValue, $dc) { - if ($varValue == 'group') { - \Database::getInstance()->prepare(" - UPDATE tl_iso_attribute_option - SET isDefault='' - WHERE id=? - ")->execute($dc->id); + if ('group' === $varValue) { + \Database::getInstance() + ->prepare("UPDATE tl_iso_attribute_option SET isDefault='' WHERE id=?") + ->execute($dc->id) + ; } return $varValue; @@ -143,9 +143,9 @@ public function saveType($varValue, $dc) */ public function toggleIcon($row, $href, $label, $title, $icon, $attributes) { - if (strlen(\Input::get('tid'))) { - $this->toggleVisibility(\Input::get('tid'), (\Input::get('state') == 1)); - $this->redirect($this->getReferer()); + if ('' != \Input::get('tid')) { + $this->toggleVisibility(\Input::get('tid'), \Input::get('state') == 1); + \Controller::redirect(\System::getReferer()); } // Check permissions AFTER checking the tid, so hacking attempts are logged @@ -159,7 +159,7 @@ public function toggleIcon($row, $href, $label, $title, $icon, $attributes) $icon = 'invisible.gif'; } - return ''.\Image::getHtml($icon, $label).' '; + return ''.\Image::getHtml($icon, $label).' '; } @@ -177,8 +177,8 @@ public function toggleVisibility($intId, $blnVisible) // Check permissions to publish if (!\BackendUser::getInstance()->hasAccess('tl_iso_attribute_option::published', 'alexf')) { - $this->log('Not enough permissions to publish/unpublish attribute option ID "'.$intId.'"', __METHOD__, TL_ERROR); - $this->redirect('contao/main.php?act=error'); + \System::log('Not enough permissions to publish/unpublish attribute option ID "'.$intId.'"', __METHOD__, TL_ERROR); + \Controller::redirect('contao/main.php?act=error'); } $objVersions = new \Versions('tl_iso_attribute_option', $intId); @@ -197,13 +197,13 @@ public function toggleVisibility($intId, $blnVisible) } // Update the database - \Database::getInstance()->prepare(" + \Database::getInstance()->prepare(' UPDATE tl_iso_attribute_option - SET tstamp=". time() .", published='" . ($blnVisible ? 1 : '') . "' + SET tstamp='. time() .", published='" . ($blnVisible ? 1 : '') . "' WHERE id=? ")->execute($intId); $objVersions->create(); - $this->log('A new version of record "tl_iso_attribute_option.id='.$intId.'" has been created'.$this->getParentEntries('tl_iso_attribute_option', $intId), __METHOD__, TL_GENERAL); + \System::log('A new version of record "tl_iso_attribute_option.id='.$intId.'" has been created'.$this->getParentEntries('tl_iso_attribute_option', $intId), __METHOD__, TL_GENERAL); } } diff --git a/system/modules/isotope/library/Isotope/Backend/Config/AddressFieldsWizard.php b/system/modules/isotope/library/Isotope/Backend/Config/AddressFieldsWizard.php index 3c82ab4d19..48a6f2de6a 100755 --- a/system/modules/isotope/library/Isotope/Backend/Config/AddressFieldsWizard.php +++ b/system/modules/isotope/library/Isotope/Backend/Config/AddressFieldsWizard.php @@ -3,15 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Config; +use Isotope\Model\Address; class AddressFieldsWizard extends \Backend { @@ -29,7 +29,7 @@ public function getNextName($objWidget) static $i = 0; if (empty($arrValues)) { - \System::loadLanguageFile(\Isotope\Model\Address::getTable()); + \System::loadLanguageFile(Address::getTable()); $arrValues = $objWidget->value; $i = 0; } @@ -44,7 +44,7 @@ public function getNextName($objWidget) $objWidget->name, $i++, $strName, - $GLOBALS['TL_DCA'][\Isotope\Model\Address::getTable()]['fields'][$strName]['label'][0] ? : $strName, + $GLOBALS['TL_DCA'][Address::getTable()]['fields'][$strName]['label'][0] ? : $strName, $strName ); } @@ -58,9 +58,9 @@ public function getNextName($objWidget) */ public function load($varValue) { - $this->loadDataContainer(\Isotope\Model\Address::getTable()); + \Controller::loadDataContainer(Address::getTable()); - $arrDCA = &$GLOBALS['TL_DCA'][\Isotope\Model\Address::getTable()]['fields']; + $arrDCA = &$GLOBALS['TL_DCA'][Address::getTable()]['fields']; $arrFields = array(); $arrValues = deserialize($varValue); @@ -87,8 +87,8 @@ public function load($varValue) $arrFields[$strName] = array( 'name' => $strName, - 'billing' => ($arrField['eval']['mandatory'] === true ? 'mandatory' : ($arrField['eval']['mandatory'] === false ? 'enabled' : 'disabled')), - 'shipping' => ($arrField['eval']['mandatory'] === true ? 'mandatory' : ($arrField['eval']['mandatory'] === false ? 'enabled' : 'disabled')), + 'billing' => $arrField['eval']['mandatory'] === true ? 'mandatory' : ($arrField['eval']['mandatory'] === false ? 'enabled' : 'disabled'), + 'shipping' => $arrField['eval']['mandatory'] === true ? 'mandatory' : ($arrField['eval']['mandatory'] === false ? 'enabled' : 'disabled'), ); } @@ -104,7 +104,7 @@ public function load($varValue) */ public function save($varValue) { - $this->loadDataContainer(\Isotope\Model\Address::getTable()); + \Controller::loadDataContainer(Address::getTable()); $arrFields = deserialize($varValue); diff --git a/system/modules/isotope/library/Isotope/Backend/Config/Callback.php b/system/modules/isotope/library/Isotope/Backend/Config/Callback.php index d41c4e2e11..54e30a7589 100755 --- a/system/modules/isotope/library/Isotope/Backend/Config/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Config/Callback.php @@ -3,31 +3,27 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Config; - use Isotope\Automator; use Isotope\Backend\Permission; use Isotope\Model\Config; class Callback extends Permission { - /** * Check permissions to edit table tl_iso_config - * @return void */ public function checkPermission() { // Do not run the permission check on other Isotope modules - if (\Input::get('mod') != 'configs') { + if ('configs' !== \Input::get('mod')) { return; } @@ -46,8 +42,7 @@ public function checkPermission() } // Set root IDs - if (!is_array($this->User->iso_configs) || count($this->User->iso_configs) < 1) // Can't use empty() because its an object property (using __get) - { + if (!is_array($this->User->iso_configs) || count($this->User->iso_configs) < 1) { $root = array(0); } else { $root = $this->User->iso_configs; @@ -78,12 +73,12 @@ public function checkPermission() $root[] = \Input::get('id'); $this->User->iso_configs = $root; } - // No break; + // No break; case 'copy': case 'delete': case 'show': - if (!in_array(\Input::get('id'), $root) || (\Input::get('act') == 'delete' && !$this->User->hasAccess('delete', 'iso_configp'))) { + if (!in_array(\Input::get('id'), $root) || ('delete' === \Input::get('act') && !$this->User->hasAccess('delete', 'iso_configp'))) { \System::log('Not enough permissions to ' . \Input::get('act') . ' store configuration ID "' . \Input::get('id') . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -93,7 +88,7 @@ public function checkPermission() case 'deleteAll': case 'overrideAll': $session = $this->Session->getData(); - if (\Input::get('act') == 'deleteAll' && !$this->User->hasAccess('delete', 'iso_configp')) { + if ('deleteAll' === \Input::get('act') && !$this->User->hasAccess('delete', 'iso_configp')) { $session['CURRENT']['IDS'] = array(); } else { $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $root); @@ -110,11 +105,12 @@ public function checkPermission() } } - /** * Add an image to each record - * @param array - * @param string + * + * @param array $row + * @param string $label + * * @return string */ public function addIcon($row, $label) @@ -191,54 +187,57 @@ public function addIcon($row, $label) return sprintf('
%s
', $style, $GLOBALS['TL_LANG']['CUR'][$row['currency']], $label); } - /** * Return the copy config button - * @param array - * @param string - * @param string - * @param string - * @param string - * @param string + * + * @param array $row + * @param string $href + * @param string $label + * @param string $title + * @param string $icon + * @param string $attributes + * * @return string */ public function copyConfig($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('create', 'iso_configp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($this->User->isAdmin || $this->User->hasAccess('create', 'iso_configp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } - /** * Return the delete config button - * @param array - * @param string - * @param string - * @param string - * @param string - * @param string + * + * @param array $row + * @param string $href + * @param string $label + * @param string $title + * @param string $icon + * @param string $attributes + * * @return string */ public function deleteConfig($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('delete', 'iso_configp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($this->User->isAdmin || $this->User->hasAccess('delete', 'iso_configp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } - /** * Return the file picker wizard - * @param DataContainer + * + * @param \DataContainer $dc + * * @return string */ public function filePicker(\DataContainer $dc) { - $strField = 'ctrl_' . $dc->field . ((\Input::get('act') == 'editAll') ? '_' . $dc->id : ''); + $strField = 'ctrl_' . $dc->field . (('editAll' === \Input::get('act')) ? '_' . $dc->id : ''); return ' ' . \Image::getHtml('pickfile.gif', $GLOBALS['TL_LANG']['MSC']['filepicker'], 'style="vertical-align:top;cursor:pointer" onclick="Backend.pickFile(\'' . $strField . '\')"'); } - /** * Return all template folders as array + * * @return array */ public function getTemplateFolders() @@ -246,11 +245,35 @@ public function getTemplateFolders() return $this->doGetTemplateFolders('templates'); } + /** + * Generate an options list of order details frontend modules + * + * @return array + */ + public function getOrderDetailsModules() + { + $modules = []; + $result = \Database::getInstance()->query(" + SELECT m.id, m.name, t.name AS theme + FROM tl_module m + JOIN tl_theme t ON t.id=m.pid + WHERE m.type='iso_orderdetails' + ORDER BY theme, name + "); + + while ($result->next()) { + $modules[$result->theme][$result->id] = $result->name; + } + + return $modules; + } /** * Return all template folders as array - * @param string - * @param integer + * + * @param string $path + * @param int $level + * * @return array */ protected function doGetTemplateFolders($path, $level = 0) @@ -269,8 +292,11 @@ protected function doGetTemplateFolders($path, $level = 0) /** * Store if we need to update the currencies - * @param mixed - * @param \DataContainer + * + * @param mixed $varValue + * @param \DataContainer $dc + * + * @return mixed */ public function checkNeedToConvertCurrencies($varValue, \DataContainer $dc) { @@ -284,7 +310,8 @@ public function checkNeedToConvertCurrencies($varValue, \DataContainer $dc) /** * Convert currencies if the settings have changed - * @param \DataContainer + * + * @param \DataContainer $dc */ public function convertCurrencies(\DataContainer $dc) { diff --git a/system/modules/isotope/library/Isotope/Backend/Download/Callback.php b/system/modules/isotope/library/Isotope/Backend/Download/Callback.php index e85754d953..1730adf823 100644 --- a/system/modules/isotope/library/Isotope/Backend/Download/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Download/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Download; @@ -24,9 +23,12 @@ class Callback extends \Backend /** * List download files - * @param array + * + * @param array $row + * * @return string - * @see https://contao.org/de/manual/3.1/data-container-arrays.html#label_callback + * + * @see https://contao.org/de/manual/3.1/data-container-arrays.html#label_callback */ public function listRows($row) { @@ -39,7 +41,7 @@ public function listRows($row) $path = $objDownload->getRelated('singleSRC')->path; - if ($objDownload->getRelated('singleSRC')->type == 'folder') { + if ('folder' === $objDownload->getRelated('singleSRC')->type) { $arrDownloads = array(); foreach (scan(TL_ROOT . '/' . $path) as $file) { @@ -50,7 +52,7 @@ public function listRows($row) } } - if (empty($arrDownloads)) { + if (0 === count($arrDownloads)) { return $GLOBALS['TL_LANG']['ERR']['emptyDownloadsFolder']; } @@ -67,13 +69,16 @@ public function listRows($row) /** * Generate header fields for product or variant - * @param array - * @param \Contao\DataContainer + * + * @param array $arrFields + * @param \Contao\DataContainer $dc + * + * @return array */ public function headerFields($arrFields, $dc) { - $t = Product::getTable(); - $arrNew = array(); + $t = Product::getTable(); + $arrNew = array(); $objProduct = Product::findByPk($dc->id); if (null === $objProduct) { @@ -86,7 +91,7 @@ public function headerFields($arrFields, $dc) $arrAttributes = array_merge( $arrAttributes, array_intersect( - array_merge($objProduct->getAttributes(), $objProduct->getVariantAttributes()), + array_merge($objProduct->getType()->getAttributes(), $objProduct->getType()->getVariantAttributes()), Attribute::getVariantOptionFields() ) ); @@ -121,7 +126,7 @@ public function deleteButton($row, $href, $label, $title, $icon, $attributes) return \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } - return '' . \Image::getHtml($icon, $label) . ' '; + return '' . \Image::getHtml($icon, $label) . ' '; } @@ -138,8 +143,8 @@ public function deleteButton($row, $href, $label, $title, $icon, $attributes) public function toggleIcon($row, $href, $label, $title, $icon, $attributes) { if (strlen(\Input::get('tid'))) { - $this->toggleVisibility(\Input::get('tid'), (\Input::get('state') == 1)); - \Controller::redirect($this->getReferer()); + $this->toggleVisibility(\Input::get('tid'), \Input::get('state') == 1); + \Controller::redirect(\System::getReferer()); } // Check permissions AFTER checking the tid, so hacking attempts are logged @@ -153,7 +158,7 @@ public function toggleIcon($row, $href, $label, $title, $icon, $attributes) $href .= '&tid=' . $row['id'] . '&state=' . ($row['published'] ? '' : 1); - return '' . \Image::getHtml($icon, $label) . ' '; + return '' . \Image::getHtml($icon, $label) . ' '; } @@ -190,6 +195,6 @@ public function toggleVisibility($intId, $blnVisible) \Database::getInstance()->prepare("UPDATE tl_iso_download SET published='" . ($blnVisible ? 1 : '') . "' WHERE id=?")->execute($intId); $objVersions->create(); - $this->log('A new version of record "tl_iso_download.id='.$intId.'" has been created'.$this->getParentEntries('tl_iso_download', $intId), __METHOD__, TL_GENERAL); + \System::log('A new version of record "tl_iso_download.id='.$intId.'" has been created'.$this->getParentEntries('tl_iso_download', $intId), __METHOD__, TL_GENERAL); } } diff --git a/system/modules/isotope/library/Isotope/Backend/Gallery/Callback.php b/system/modules/isotope/library/Isotope/Backend/Gallery/Callback.php index 37c1c412ca..d734624ef7 100644 --- a/system/modules/isotope/library/Isotope/Backend/Gallery/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Gallery/Callback.php @@ -3,18 +3,17 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Gallery; use Isotope\Model\Gallery; -class Callback extends \Backend +class Callback { public function showJsLibraryHint() diff --git a/system/modules/isotope/library/Isotope/Backend/Group/Breadcrumb.php b/system/modules/isotope/library/Isotope/Backend/Group/Breadcrumb.php index 28fee37779..53763b0494 100644 --- a/system/modules/isotope/library/Isotope/Backend/Group/Breadcrumb.php +++ b/system/modules/isotope/library/Isotope/Backend/Group/Breadcrumb.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Group; diff --git a/system/modules/isotope/library/Isotope/Backend/Group/Callback.php b/system/modules/isotope/library/Isotope/Backend/Group/Callback.php index 44e8deb963..ceeb0c4703 100644 --- a/system/modules/isotope/library/Isotope/Backend/Group/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Group/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Group; @@ -18,7 +17,9 @@ class Callback extends Permission { - + /** + * Make the constructor public + */ public function __construct() { parent::__construct(); @@ -31,7 +32,7 @@ public function __construct() */ public function checkPermission($dc) { - /** @type \BackendUser $user */ + /** @var \BackendUser $user */ $user = \BackendUser::getInstance(); $session = \Session::getInstance(); @@ -40,7 +41,7 @@ public function checkPermission($dc) } // Load permissions in tl_iso_product - if ($dc->table == 'tl_iso_product' || stripos(\Environment::get('request'), 'group.php') !== false) { + if ('tl_iso_product' === $dc->table || stripos(\Environment::get('request'), 'group.php') !== false) { $arrGroups = $user->iso_groups; if (!is_array($arrGroups) || empty($arrGroups)) { @@ -70,12 +71,12 @@ public function checkPermission($dc) $GLOBALS['TL_DCA']['tl_iso_group']['list']['sorting']['root'] = (empty($root) ? true : $root); - if (in_array('rootPaste', $user->iso_groupp)) { + if (in_array('rootPaste', $user->iso_groupp, true)) { $GLOBALS['TL_DCA']['tl_iso_group']['list']['sorting']['rootPaste'] = true; } // Check permissions to add product group - if (!in_array('create', $user->iso_groupp)) { + if (!in_array('create', $user->iso_groupp, true)) { $GLOBALS['TL_DCA']['tl_iso_group']['config']['closed'] = true; } @@ -107,7 +108,7 @@ public function checkPermission($dc) case 'cut': if (!in_array(\Input::get('id'), $root) || ( - \Input::get('act') == 'delete' + 'delete' === \Input::get('act') && !$user->hasAccess('delete', 'iso_groupp') ) ) { @@ -120,7 +121,7 @@ public function checkPermission($dc) case 'deleteAll': case 'overrideAll': $sessionData = $session->getData(); - if (\Input::get('act') == 'deleteAll' && !$user->hasAccess('delete', 'iso_groupp')) { + if ('deleteAll' === \Input::get('act') && !$user->hasAccess('delete', 'iso_groupp')) { $sessionData['CURRENT']['IDS'] = array(); } else { $sessionData['CURRENT']['IDS'] = array_intersect($sessionData['CURRENT']['IDS'], $root); @@ -151,7 +152,7 @@ public function addIcon($row, $label, \DataContainer $dc = null, $imageAttribute { $image = \Image::getHtml('system/modules/isotope/assets/images/folder-network.png', '', $imageAttribute); - if ($dc->table == 'tl_iso_product') { + if ('tl_iso_product' === $dc->table) { return $image . ' ' . $label . ''; } else { $strProductType = ''; @@ -174,7 +175,9 @@ public function deleteGroup($dc) $arrGroups = \Database::getInstance()->getChildRecords($dc->id, 'tl_iso_group'); $arrGroups[] = $dc->id; - \Database::getInstance()->query("UPDATE tl_iso_product SET gid=0 WHERE gid IN (" . implode(',', $arrGroups) . ")"); + \Database::getInstance()->query( + 'UPDATE tl_iso_product SET gid=0 WHERE gid IN (' . implode(',', $arrGroups) . ')' + ); } /** @@ -194,13 +197,13 @@ public function copyButton($row, $href, $label, $title, $icon, $attributes) if (!\BackendUser::getInstance()->isAdmin && ( !is_array(\BackendUser::getInstance()->iso_groupp) - || !in_array('create', \BackendUser::getInstance()->iso_groupp) + || !in_array('create', \BackendUser::getInstance()->iso_groupp, true) ) ) { return \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } - return '' . \Image::getHtml($icon, $label) . ' '; + return '' . \Image::getHtml($icon, $label) . ' '; } /** @@ -220,12 +223,12 @@ public function deleteButton($row, $href, $label, $title, $icon, $attributes) if (!\BackendUser::getInstance()->isAdmin && ( !is_array(\BackendUser::getInstance()->iso_groupp) - || !in_array('delete', \BackendUser::getInstance()->iso_groupp) + || !in_array('delete', \BackendUser::getInstance()->iso_groupp, true) ) ) { return \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } - return '' . \Image::getHtml($icon, $label) . ' '; + return '' . \Image::getHtml($icon, $label) . ' '; } } diff --git a/system/modules/isotope/library/Isotope/Backend/Member/Callback.php b/system/modules/isotope/library/Isotope/Backend/Member/Callback.php index 15aa1ceb5b..49ceb5e009 100644 --- a/system/modules/isotope/library/Isotope/Backend/Member/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Member/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Member; diff --git a/system/modules/isotope/library/Isotope/Backend/Module/Callback.php b/system/modules/isotope/library/Isotope/Backend/Module/Callback.php index 897f7f948c..23a2299957 100755 --- a/system/modules/isotope/library/Isotope/Backend/Module/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Module/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Module; @@ -26,7 +25,7 @@ public function __construct() { parent::__construct(); - $this->loadDataContainer('tl_iso_product'); + \Controller::loadDataContainer('tl_iso_product'); \System::loadLanguageFile('tl_iso_product'); } diff --git a/system/modules/isotope/library/Isotope/Backend/Module/CumulativeFields.php b/system/modules/isotope/library/Isotope/Backend/Module/CumulativeFields.php index eac9011d06..1cc9b093c5 100755 --- a/system/modules/isotope/library/Isotope/Backend/Module/CumulativeFields.php +++ b/system/modules/isotope/library/Isotope/Backend/Module/CumulativeFields.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Module; @@ -21,37 +20,34 @@ class CumulativeFields extends \Backend */ public function getColumns() { - return array( - 'attribute' => array( + return [ + 'attribute' => [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['attribute'], 'inputType' => 'select', - 'options_callback' => array( - 'Isotope\Backend\Module\CumulativeFields', - 'getAttributes' - ), - 'eval' => array( + 'options_callback' => ['Isotope\Backend\Module\CumulativeFields', 'getAttributes'], + 'eval' => [ 'mandatory' => true, 'includeBlankOption' => true, 'style' => 'width:300px' - ), - ), - 'queryType' => array( + ], + ], + 'queryType' => [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType'], 'default' => 'and', 'inputType' => 'select', - 'options' => array('and', 'or'), + 'options' => ['and', 'or'], 'reference' => &$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['queryType'], - 'eval' => array('style' => 'width:100px'), - ), - 'matchCount' => array( + 'eval' => ['style' => 'width:100px'], + ], + 'matchCount' => [ 'label' => &$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount'], 'default' => 'and', 'inputType' => 'select', - 'options' => array('none', 'all', 'new'), + 'options' => ['none', 'all', 'new'], 'reference' => &$GLOBALS['TL_LANG']['tl_module']['iso_cumulativeFields']['matchCount'], - 'eval' => array('style' => 'width:150px'), - ), - ); + 'eval' => ['style' => 'width:150px'], + ], + ]; } /** @@ -61,10 +57,10 @@ public function getColumns() */ public function getAttributes() { - $this->loadDataContainer('tl_iso_product'); + \Controller::loadDataContainer('tl_iso_product'); \System::loadLanguageFile('tl_iso_product'); - $arrAttributes = array(); + $arrAttributes = []; foreach ($GLOBALS['TL_DCA']['tl_iso_product']['fields'] as $field => $arrData) { if ($arrData['attributes']['fe_filter']) { @@ -97,7 +93,7 @@ public function validateConfiguration($value) return ''; } - $attributes = array(); + $attributes = []; foreach ($value as $option) { if ($option['attribute'] == '') { @@ -109,7 +105,7 @@ public function validateConfiguration($value) ); } - if (in_array($option['attribute'], $attributes)) { + if (in_array($option['attribute'], $attributes, true)) { throw new \InvalidArgumentException($GLOBALS['TL_LANG']['ERR']['cumulativeDuplicateAttribute']); } diff --git a/system/modules/isotope/library/Isotope/Backend/OrderStatus/Callback.php b/system/modules/isotope/library/Isotope/Backend/OrderStatus/Callback.php index 9984868da6..fb5123240d 100644 --- a/system/modules/isotope/library/Isotope/Backend/OrderStatus/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/OrderStatus/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\OrderStatus; @@ -38,11 +37,13 @@ public function addIcon($row, $label) /** * Return the paste button - * @param object - * @param array - * @param string - * @param boolean - * @param array + * + * @param \DataContainer $dc + * @param array $row + * @param string $table + * @param boolean $cr + * @param array|bool $arrClipboard + * * @return string */ public function pasteButton(\DataContainer $dc, $row, $table, $cr, $arrClipboard = false) @@ -50,12 +51,12 @@ public function pasteButton(\DataContainer $dc, $row, $table, $cr, $arrClipboard if ($row['id'] == 0) { $imagePasteInto = \Image::getHtml('pasteinto.gif', sprintf($GLOBALS['TL_LANG'][$dc->table]['pasteinto'][1], $row['id'])); - return $cr ? \Image::getHtml('pasteinto_.gif') . ' ' : '' . $imagePasteInto . ' '; + return $cr ? \Image::getHtml('pasteinto_.gif') . ' ' : '' . $imagePasteInto . ' '; } $imagePasteAfter = \Image::getHtml('pasteafter.gif', sprintf($GLOBALS['TL_LANG'][$dc->table]['pasteafter'][1], $row['id'])); - return (($arrClipboard['mode'] == 'cut' && $arrClipboard['id'] == $row['id']) || $cr) ? \Image::getHtml('pasteafter_.gif') . ' ' : '' . $imagePasteAfter . ' '; + return (('cut' === $arrClipboard['mode'] && $arrClipboard['id'] == $row['id']) || $cr) ? \Image::getHtml('pasteafter_.gif') . ' ' : '' . $imagePasteAfter . ' '; } /** diff --git a/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php b/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php index bc9b8b10fc..7e649117f7 100644 --- a/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Payment; @@ -26,29 +25,29 @@ class Callback extends Permission public function checkPermission() { // Do not run the permission check on other Isotope modules - if (\Input::get('mod') != 'payment') { + if ('payment' !== \Input::get('mod')) { return; } - $this->import('BackendUser', 'User'); + $user = \BackendUser::getInstance(); // Return if user is admin - if ($this->User->isAdmin) { + if ($user->isAdmin) { return; } // Set root IDs - if (!is_array($this->User->iso_payment_modules) || count($this->User->iso_payment_modules) < 1) // Can't use empty() because its an object property (using __get) + if (!is_array($user->iso_payment_modules) || count($user->iso_payment_modules) < 1) // Can't use empty() because its an object property (using __get) { $root = array(0); } else { - $root = $this->User->iso_payment_modules; + $root = $user->iso_payment_modules; } $GLOBALS['TL_DCA']['tl_iso_payment']['list']['sorting']['root'] = $root; // Check permissions to add payment modules - if (!$this->User->hasAccess('create', 'iso_payment_modulep')) { + if (!$user->hasAccess('create', 'iso_payment_modulep')) { $GLOBALS['TL_DCA']['tl_iso_payment']['config']['closed'] = true; unset($GLOBALS['TL_DCA']['tl_iso_payment']['list']['global_operations']['new']); } @@ -67,7 +66,7 @@ public function checkPermission() && $this->addNewRecordPermissions(\Input::get('id'), 'tl_iso_payment', 'iso_payment_modules', 'iso_payment_modulep') ) { $root[] = \Input::get('id'); - $this->User->iso_payment_modules = $root; + $user->iso_payment_modules = $root; } // No break; @@ -75,7 +74,7 @@ public function checkPermission() case 'copy': case 'delete': case 'show': - if (!in_array(\Input::get('id'), $root) || (\Input::get('act') == 'delete' && !$this->User->hasAccess('delete', 'iso_payment_modulep'))) { + if (!in_array(\Input::get('id'), $root) || ('delete' === \Input::get('act') && !$user->hasAccess('delete', 'iso_payment_modulep'))) { \System::log('Not enough permissions to ' . \Input::get('act') . ' payment module ID "' . \Input::get('id') . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -85,7 +84,7 @@ public function checkPermission() case 'deleteAll': case 'overrideAll': $session = $this->Session->getData(); - if (\Input::get('act') == 'deleteAll' && !$this->User->hasAccess('delete', 'iso_payment_modulep')) { + if ('deleteAll' === \Input::get('act') && !$user->hasAccess('delete', 'iso_payment_modulep')) { $session['CURRENT']['IDS'] = array(); } else { $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $root); @@ -115,7 +114,7 @@ public function getAllowedCCTypes(\DataContainer $dc) { $arrCCTypes = array(); - /** @type Payment $objPayment */ + /** @var Payment $objPayment */ if (($objPayment = Payment::findByPk($dc->id)) !== null) { try { @@ -168,7 +167,7 @@ public function loadShippingModules($dc) */ public function copyPaymentModule($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('create', 'iso_payment_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return (\BackendUser::getInstance()->isAdmin || \BackendUser::getInstance()->hasAccess('create', 'iso_payment_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } @@ -186,7 +185,7 @@ public function copyPaymentModule($row, $href, $label, $title, $icon, $attribute */ public function deletePaymentModule($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('delete', 'iso_payment_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return (\BackendUser::getInstance()->isAdmin || \BackendUser::getInstance()->hasAccess('delete', 'iso_payment_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } @@ -205,8 +204,8 @@ public function deletePaymentModule($row, $href, $label, $title, $icon, $attribu public function toggleIcon($row, $href, $label, $title, $icon, $attributes) { if (strlen(\Input::get('tid'))) { - $this->toggleVisibility(\Input::get('tid'), (\Input::get('state') == 1)); - \Controller::redirect($this->getReferer()); + $this->toggleVisibility(\Input::get('tid'), \Input::get('state') == 1); + \Controller::redirect(\System::getReferer()); } if (!$row['enabled']) { @@ -219,13 +218,13 @@ public function toggleIcon($row, $href, $label, $title, $icon, $attributes) $href .= '&tid=' . $row['id'] . '&state=' . ($row['enabled'] ? '' : 1); - return '' . \Image::getHtml($icon, $label) . ' '; + return '' . \Image::getHtml($icon, $label) . ' '; } /** * Disable/enable a user group - * + * * @param int $intId * @param bool $blnVisible */ diff --git a/system/modules/isotope/library/Isotope/Backend/Permission.php b/system/modules/isotope/library/Isotope/Backend/Permission.php index e51990a35e..e29bbbc304 100644 --- a/system/modules/isotope/library/Isotope/Backend/Permission.php +++ b/system/modules/isotope/library/Isotope/Backend/Permission.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend; @@ -26,7 +25,7 @@ class Permission extends \Backend */ protected function addNewRecordPermissions($id, $table, $accessField, $permissionField) { - /** @type \BackendUser|object $user */ + /** @var \BackendUser|object $user */ $user = \BackendUser::getInstance(); $session = \Session::getInstance(); $db = \Database::getInstance(); @@ -36,7 +35,7 @@ protected function addNewRecordPermissions($id, $table, $accessField, $permissio if (is_array($newRecords[$table]) && in_array($id, $newRecords[$table])) { - if ($user->inherit == 'custom' || empty($groups)) { + if ('custom' === $user->inherit || empty($groups)) { // Add permissions on user level $objUser = $db->prepare( @@ -81,7 +80,7 @@ private function addCreatePermission($id, $permissionField, $accessField, $table { $arrPermissions = deserialize($record->$permissionField); - if (is_array($arrPermissions) && in_array('create', $arrPermissions)) { + if (is_array($arrPermissions) && in_array('create', $arrPermissions, true)) { $arrAccess = deserialize($record->$accessField); $arrAccess[] = $id; $arrAccess = array_unique($arrAccess); @@ -95,4 +94,4 @@ private function addCreatePermission($id, $permissionField, $accessField, $table return false; } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Alias.php b/system/modules/isotope/library/Isotope/Backend/Product/Alias.php index 95368a75e7..ad4dcda7b9 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/Alias.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Alias.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -31,7 +30,7 @@ public function save($varValue, \DataContainer $dc) // Generate alias if there is none if ('' === $varValue) { $autoAlias = true; - $act = \Input::get('mode'); + $act = \Input::get('act'); if ('edit' === $act || 'overrideAll' === $act) { $varValue = (string) (\Input::post('name') ?: \Input::post('sku')); @@ -50,8 +49,10 @@ public function save($varValue, \DataContainer $dc) $varValue = standardize(strip_tags($varValue)); - $objAlias = \Database::getInstance()->prepare("SELECT id FROM tl_iso_product WHERE id=? OR alias=?") - ->execute($dc->id, $varValue); + $objAlias = \Database::getInstance() + ->prepare('SELECT id FROM tl_iso_product WHERE id=? OR alias=?') + ->execute($dc->id, $varValue) + ; // Check whether the product alias exists if ($objAlias->numRows > 1) { diff --git a/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php b/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php index 56b4738355..527b3d2023 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -85,7 +84,7 @@ protected function importFromPath($strPath) $blnEmpty = true; $arrDelete = array(); - $objProducts = \Database::getInstance()->prepare("SELECT * FROM tl_iso_product WHERE pid=0")->execute(); + $objProducts = \Database::getInstance()->prepare('SELECT * FROM tl_iso_product WHERE pid=0')->execute(); while ($objProducts->next()) { $arrImageNames = array(); @@ -103,7 +102,7 @@ protected function importFromPath($strPath) $arrPattern = array(); $arrPattern[] = $objProducts->alias ? standardize($objProducts->alias) : null; - $arrPattern[] = $objProducts->sku ? $objProducts->sku : null; + $arrPattern[] = $objProducts->sku ?: null; $arrPattern[] = $objProducts->sku ? standardize($objProducts->sku) : null; $arrPattern[] = !empty($arrImageNames) ? implode('|', $arrImageNames) : null; @@ -128,7 +127,7 @@ protected function importFromPath($strPath) if (!empty($arrSubfiles)) { foreach ($arrSubfiles as $subfile) { - if (is_file($strPath . '/' . $file . '/' . $subfile)) { + if (is_file(TL_ROOT . '/' . $strPath . '/' . $file . '/' . $subfile)) { $objFile = new \File($strPath . '/' . $file . '/' . $subfile); if ($objFile->isGdImage) { @@ -148,10 +147,10 @@ protected function importFromPath($strPath) if (!empty($arrNewImages)) { foreach ($arrNewImages as $strFile) { - $pathinfo = pathinfo(TL_ROOT . '/' . $strFile); + $pathinfo = pathinfo(TL_ROOT . '/' . strtolower($strFile)); // Will recursively create the folder - $objFolder = new \Folder('isotope/' . strtolower(substr($pathinfo['filename'], 0, 1))); + $objFolder = new \Folder('isotope/' . substr($pathinfo['filename'], 0, 1)); $strCacheName = $pathinfo['filename'] . '-' . substr(md5_file(TL_ROOT . '/' . $strFile), 0, 8) . '.' . $pathinfo['extension']; @@ -163,7 +162,7 @@ protected function importFromPath($strPath) $blnEmpty = false; } - \Database::getInstance()->prepare("UPDATE tl_iso_product SET images=? WHERE id=?")->execute(serialize($arrImages), $objProducts->id); + \Database::getInstance()->prepare('UPDATE tl_iso_product SET images=? WHERE id=?')->execute(serialize($arrImages), $objProducts->id); } } } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Button.php b/system/modules/isotope/library/Isotope/Backend/Product/Button.php index 2e2d58b616..069fb6d7e5 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/Button.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Button.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -118,7 +117,7 @@ public function forDelete($row, $href, $label, $title, $icon, $attributes) public function forVisibilityToggle($row, $href, $label, $title, $icon, $attributes) { if (strlen(\Input::get('tid'))) { - $this->toggleVisibility(\Input::get('tid'), (\Input::get('state') == 1)); + $this->toggleVisibility(\Input::get('tid'), \Input::get('state') == 1); \Controller::redirect(\System::getReferer()); } @@ -148,6 +147,29 @@ public function forVisibilityToggle($row, $href, $label, $title, $icon, $attribu return '' . \Image::getHtml($icon, $label) . ' '; } + /** + * Return the "toggle fallback" button + * + * @param array $row + * @param string $href + * @param string $label + * @param string $title + * @param string $icon + * @param string $attributes + * + * @return string + */ + public function forFallbackToggle($row, $href, $label, $title, $icon, $attributes) + { + if ($row['pid'] < 1) { + return ''; + } + + $icon = $row['fallback'] ? 'featured.gif' : 'featured_.gif'; + + return '' . \Image::getHtml($icon, $label) . ' '; + } + /** * Hide variant buttons for product types without variant support * @@ -267,7 +289,7 @@ public function forSelect($arrButtons) Isotope.openModalGroupSelector({ 'width': 765, 'title': '" . specialchars($GLOBALS['TL_LANG']['tl_iso_product']['product_groups'][0]) . "', - 'url': 'system/modules/isotope/group.php?do=" . \Input::get('do') . "&table=" . Group::getTable() . "&field=gid&value=" . \Session::getInstance()->get('iso_products_gid') . "', + 'url': 'system/modules/isotope/group.php?do=" . \Input::get('do') . '&table=' . Group::getTable() . '&field=gid&value=' . \Session::getInstance()->get('iso_products_gid') . "', 'action': 'moveProducts', 'trigger': $(this) }); @@ -323,7 +345,7 @@ protected function toggleVisibility($intId, $blnVisible) \Database::getInstance()->prepare("UPDATE tl_iso_product SET published='" . ($blnVisible ? 1 : '') . "' WHERE id=?")->execute($intId); $objVersions->create(); - $this->log('A new version of record "tl_iso_product.id='.$intId.'" has been created'.$this->getParentEntries('tl_iso_product', $intId), __METHOD__, TL_GENERAL); + \System::log('A new version of record "tl_iso_product.id='.$intId.'" has been created'.$this->getParentEntries('tl_iso_product', $intId), __METHOD__, TL_GENERAL); } @@ -340,9 +362,9 @@ protected function getNumberOfDownloadsForProduct($intProduct) static $arrDownloads; if (null === $arrDownloads) { - $objDownloads = \Database::getInstance()->query(" - SELECT pid, COUNT(id) AS total FROM " . Download::getTable() . " GROUP BY pid - "); + $objDownloads = \Database::getInstance()->query( + 'SELECT pid, COUNT(id) AS total FROM tl_iso_download GROUP BY pid' + ); while ($objDownloads->next()) { $arrDownloads[$objDownloads->pid] = $objDownloads->total; diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Category.php b/system/modules/isotope/library/Isotope/Backend/Product/Category.php index 5b3cb2971d..666c2cd455 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/Category.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Category.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -29,12 +28,20 @@ class Category extends \Backend */ public function updateSorting($insertId) { - $table = ProductCategory::getTable(); - - $objCategories = \Database::getInstance()->query("SELECT c1.*, MAX(c2.sorting) AS max_sorting FROM $table c1 LEFT JOIN $table c2 ON c1.page_id=c2.page_id WHERE c1.pid=" . (int) $insertId . " GROUP BY c1.page_id"); + $objCategories = \Database::getInstance()->query(' + SELECT c1.*, MAX(c2.sorting) AS max_sorting + FROM tl_iso_product_category c1 + LEFT JOIN tl_iso_product_category c2 ON c1.page_id=c2.page_id + WHERE c1.pid=' . (int) $insertId . ' + GROUP BY c1.page_id' + ); while ($objCategories->next()) { - \Database::getInstance()->query("UPDATE $table SET sorting=" . ($objCategories->max_sorting + 128) . " WHERE id=" . $objCategories->id); + \Database::getInstance()->query(' + UPDATE tl_iso_product_category + SET sorting=' . ($objCategories->max_sorting + 128) . ' + WHERE id=' . $objCategories->id + ); } } @@ -67,7 +74,7 @@ public function createVersion($strTable, $intId) }, $arrCategories); \Database::getInstance() - ->prepare("UPDATE tl_version SET data=? WHERE id=?") + ->prepare('UPDATE tl_version SET data=? WHERE id=?') ->execute(serialize($data), $current->id) ; } @@ -90,9 +97,9 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) $arrData = SubtableVersion::find('tl_iso_product_category', $intId, $intVersion); if (null !== $arrData) { - \Database::getInstance()->query("DELETE FROM tl_iso_product_category WHERE pid=" . (int) $intId); + \Database::getInstance()->query('DELETE FROM tl_iso_product_category WHERE pid=' . (int) $intId); - $tableFields = array_flip(\Database::getInstance()->getFieldnames('tl_iso_product_category')); + $tableFields = array_flip(\Database::getInstance()->getFieldNames('tl_iso_product_category')); \Controller::loadDataContainer('tl_iso_product_category'); @@ -104,7 +111,7 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) $data[$k] = \Widget::getEmptyValueByFieldType($GLOBALS['TL_DCA']['tl_iso_product_category']['fields'][$k]['sql']); } - \Database::getInstance()->prepare("INSERT INTO tl_iso_product_category %s")->set($data)->execute(); + \Database::getInstance()->prepare('INSERT INTO tl_iso_product_category %s')->set($data)->execute(); } \Database::getInstance() @@ -113,7 +120,7 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) ; \Database::getInstance() - ->prepare("UPDATE tl_version SET active=1 WHERE pid=? AND fromTable=? AND version=?") + ->prepare('UPDATE tl_version SET active=1 WHERE pid=? AND fromTable=? AND version=?') ->execute($intId, 'tl_iso_product_category', $intVersion) ; } @@ -146,29 +153,37 @@ public function load($varValue, \DataContainer $dc) */ public function save($varValue, \DataContainer $dc) { + $db = \Database::getInstance(); $arrIds = deserialize($varValue); - $table = ProductCategory::getTable(); if (is_array($arrIds) && !empty($arrIds)) { $time = time(); - if (\Database::getInstance()->query("DELETE FROM $table WHERE pid={$dc->id} AND page_id NOT IN (" . implode(',', $arrIds) . ")")->affectedRows > 0) { + if ($db->query("DELETE FROM tl_iso_product_category WHERE pid={$dc->id} AND page_id NOT IN (" . implode(',', $arrIds) . ')')->affectedRows > 0) { $dc->createNewVersion = true; } - $objPages = \Database::getInstance()->execute("SELECT page_id FROM $table WHERE pid={$dc->id}"); + $objPages = $db->execute("SELECT page_id FROM tl_iso_product_category WHERE pid={$dc->id}"); $arrIds = array_diff($arrIds, $objPages->fetchEach('page_id')); if (!empty($arrIds)) { foreach ($arrIds as $id) { - $sorting = (int) \Database::getInstance()->execute("SELECT MAX(sorting) AS sorting FROM $table WHERE page_id=$id")->sorting + 128; - \Database::getInstance()->query("INSERT INTO $table (pid,tstamp,page_id,sorting) VALUES ({$dc->id}, $time, $id, $sorting)"); + $sorting = (int) $db->execute(" + SELECT MAX(sorting) AS sorting + FROM tl_iso_product_category + WHERE page_id=$id + ")->sorting + 128; + + $db->query(" + INSERT INTO tl_iso_product_category (pid,tstamp,page_id,sorting) + VALUES ({$dc->id}, $time, $id, $sorting) + "); } $dc->createNewVersion = true; } } else { - if (\Database::getInstance()->query("DELETE FROM $table WHERE pid={$dc->id}")->affectedRows > 0) { + if ($db->query("DELETE FROM tl_iso_product_category WHERE pid={$dc->id}")->affectedRows > 0) { $dc->createNewVersion = true; } } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/DcaManager.php b/system/modules/isotope/library/Isotope/Backend/Product/DcaManager.php index afea16b367..83282ecc40 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/DcaManager.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/DcaManager.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -15,7 +14,6 @@ use Haste\Util\Format; use Isotope\Backend\Group\Breadcrumb; use Isotope\Interfaces\IsotopeAttribute; -use Isotope\Interfaces\IsotopeAttributeForVariants; use Isotope\Interfaces\IsotopeAttributeWithOptions; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; @@ -70,7 +68,7 @@ public function updateNewRecord($strTable, $insertID, $arrSet) $intGroup = (int) \Session::getInstance()->get('iso_products_gid'); if (!$intGroup) { - $intGroup = \BackendUser::getInstance()->isAdmin ? 0 : intval(\BackendUser::getInstance()->iso_groups[0]); + $intGroup = \BackendUser::getInstance()->isAdmin ? 0 : (int) \BackendUser::getInstance()->iso_groups[0]; } $objGroup = Group::findByPk($intGroup); @@ -97,8 +95,10 @@ public function updateNewRecord($strTable, $insertID, $arrSet) */ public function updateDateAdded($insertId) { - $strTable = Product::getTable(); - \Database::getInstance()->prepare("UPDATE $strTable SET dateAdded=? WHERE id=?")->execute(time(), $insertId); + \Database::getInstance() + ->prepare("UPDATE tl_iso_product SET dateAdded=? WHERE id=?") + ->execute(time(), $insertId) + ; } /** @@ -133,7 +133,7 @@ protected function addAttributes() if ($strClass != '') { - /** @type Attribute $objAttribute */ + /** @var Attribute $objAttribute */ $objAttribute = new $strClass(); $objAttribute->loadFromDCA($arrData, $strName); $arrData['attributes'][$strName] = $objAttribute; @@ -170,11 +170,11 @@ protected function checkFeatures() $blnAdvancedPrices = true; } - if (in_array('sku', $objType->getAttributes())) { + if (in_array('sku', $objType->getAttributes(), true)) { $blnShowSku = true; } - if (in_array('price', $objType->getAttributes())) { + if (in_array('price', $objType->getAttributes(), true)) { $blnShowPrice = true; } @@ -232,6 +232,11 @@ protected function checkFeatures() */ public function addBreadcrumb() { + // Avoid the page node trap (#1701) + if (defined('TL_SCRIPT') && TL_SCRIPT === 'contao/page.php') { + return; + } + $strBreadcrumb = Breadcrumb::generate(\Session::getInstance()->get('iso_products_gid')); $strBreadcrumb .= static::getPagesBreadcrumb(); @@ -260,7 +265,7 @@ public function buildPaletteString() if (\Input::get('id') > 0) { - /** @type object $objProduct */ + /** @var object $objProduct */ $objProduct = \Database::getInstance()->prepare("SELECT p1.pid, p1.type, p2.type AS parent_type FROM tl_iso_product p1 LEFT JOIN tl_iso_product p2 ON p1.pid=p2.id WHERE p1.id=?")->execute(\Input::get('id')); if ($objProduct->numRows) { @@ -345,7 +350,7 @@ public function buildPaletteString() && null !== $arrAttributes[$name] && /* @todo in 3.0: $arrAttributes[$name] instanceof IsotopeAttributeForVariants && */!$arrAttributes[$name]->isVariantOption() - && !in_array($name, array('price', 'published', 'start', 'stop')) + && !in_array($name, ['price', 'published', 'start', 'stop'], true) ) { $arrInherit[$name] = Format::dcaLabel('tl_iso_product', $name); } @@ -401,44 +406,44 @@ public function changeVariantColumns() } - $GLOBALS['TL_DCA'][$objProduct->getTable()]['list']['sorting']['mode'] = 4; - $GLOBALS['TL_DCA'][$objProduct->getTable()]['list']['sorting']['fields'] = array('id'); - $GLOBALS['TL_DCA'][$objProduct->getTable()]['fields']['alias']['sorting'] = false; + $GLOBALS['TL_DCA']['tl_iso_product']['list']['sorting']['mode'] = 4; + $GLOBALS['TL_DCA']['tl_iso_product']['list']['sorting']['fields'] = ['id']; + $GLOBALS['TL_DCA']['tl_iso_product']['fields']['alias']['sorting'] = false; $arrFields = array(); - /** @type ProductType $objType */ + /** @var ProductType $objType */ $objType = $objProduct->getRelated('type'); $arrVariantFields = $objType->getVariantAttributes(); $arrVariantOptions = array_intersect($arrVariantFields, Attribute::getVariantOptionFields()); - if (in_array('images', $arrVariantFields)) { + if (in_array('images', $arrVariantFields, true)) { $arrFields[] = 'images'; } - if (in_array('name', $arrVariantFields)) { + if (in_array('name', $arrVariantFields, true)) { $arrFields[] = 'name'; - $GLOBALS['TL_DCA'][$objProduct->getTable()]['list']['sorting']['fields'] = array('name'); + $GLOBALS['TL_DCA']['tl_iso_product']['list']['sorting']['fields'] = array('name'); } - if (in_array('sku', $arrVariantFields)) { + if (in_array('sku', $arrVariantFields, true)) { $arrFields[] = 'sku'; - $GLOBALS['TL_DCA'][$objProduct->getTable()]['list']['sorting']['fields'] = array('sku'); + $GLOBALS['TL_DCA']['tl_iso_product']['list']['sorting']['fields'] = array('sku'); } - if (in_array('price', $arrVariantFields)) { + if (in_array('price', $arrVariantFields, true)) { $arrFields[] = 'price'; } // Limit the number of columns if there are more than 2 if (count($arrVariantOptions) > 2) { $arrFields[] = 'variantFields'; - $GLOBALS['TL_DCA'][$objProduct->getTable()]['list']['label']['variantFields'] = $arrVariantOptions; + $GLOBALS['TL_DCA']['tl_iso_product']['list']['label']['variantFields'] = $arrVariantOptions; } else { foreach (array_merge($arrVariantOptions) as $name) { - /** @type Attribute $objAttribute */ + /** @var Attribute $objAttribute */ $objAttribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$name]; if ($objAttribute instanceof IsotopeAttributeWithOptions @@ -451,10 +456,10 @@ public function changeVariantColumns() } } - $GLOBALS['TL_DCA'][$objProduct->getTable()]['list']['label']['fields'] = $arrFields; + $GLOBALS['TL_DCA']['tl_iso_product']['list']['label']['fields'] = $arrFields; // Make all column fields sortable - foreach ($GLOBALS['TL_DCA'][$objProduct->getTable()]['fields'] as $name => $arrField) { + foreach ($GLOBALS['TL_DCA']['tl_iso_product']['fields'] as $name => $arrField) { $GLOBALS['TL_DCA']['tl_iso_product']['fields'][$name]['sorting'] = ('price' !== $name && 'variantFields' !== $name && in_array($name, $arrFields)); $objAttribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$name]; @@ -594,9 +599,6 @@ protected static function getPagesBreadcrumb() \Controller::redirect('contao/main.php?act=error'); } - // Limit tree - $GLOBALS['TL_DCA']['tl_page']['list']['sorting']['root'] = array($intNode); - // Add root link $arrLinks[] = ' ' . $GLOBALS['TL_LANG']['MSC']['filterAll'] . ''; $arrLinks = array_reverse($arrLinks); diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Fallback.php b/system/modules/isotope/library/Isotope/Backend/Product/Fallback.php new file mode 100755 index 0000000000..2cb7e108c5 --- /dev/null +++ b/system/modules/isotope/library/Isotope/Backend/Product/Fallback.php @@ -0,0 +1,70 @@ +activeRecord->pid) { + return $varValue; + } + + \Database::getInstance() + ->prepare("UPDATE tl_iso_product SET fallback='' WHERE pid=? AND id!=?") + ->execute($dc->activeRecord->pid, $dc->activeRecord->id) + ; + + return $varValue; + } + + /** + * @param \DataContainer $dc + */ + public function setFromUrl($dc) + { + $product = \Database::getInstance()->prepare('SELECT * FROM tl_iso_product WHERE id=?')->execute($dc->id); + $dc->activeRecord = $product; + + if ($product->numRows) { + $value = $product->fallback ? '' : '1'; + $dca = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']['fallback']; + + if (!empty($dca['save_callback']) && is_array($dca['save_callback'])) { + foreach ($dca['save_callback'] as $callback) { + if (is_array($callback)) { + $value = \System::importStatic($callback[0])->{$callback[1]}($value, $dc); + } else { + $value = $callback($value, $dc); + } + } + } + + \Database::getInstance() + ->prepare('UPDATE tl_iso_product SET fallback=? WHERE id=?') + ->execute($value, $product->id) + ; + } + + \Controller::redirect(\System::getReferer()); + } +} diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Label.php b/system/modules/isotope/library/Isotope/Backend/Product/Label.php index 7627633e93..65fc1a0fb5 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/Label.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Label.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -17,16 +16,17 @@ use Isotope\Model\ProductPrice; use Isotope\Model\ProductType; - -class Label extends \Backend +class Label { /** * Generate a product label and return it as HTML string - * @param array - * @param string - * @param object - * @param array + * + * @param array $row + * @param string $label + * @param \DataContainer $dc + * @param array $args + * * @return string */ public function generate($row, $label, $dc, $args) @@ -35,70 +35,143 @@ public function generate($row, $label, $dc, $args) foreach ($GLOBALS['TL_DCA'][$dc->table]['list']['label']['fields'] as $i => $field) { switch ($field) { - - // Add an image case 'images': - $arrImages = deserialize($objProduct->images); - $args[$i] = ' '; - - if (is_array($arrImages) && !empty($arrImages)) { - foreach ($arrImages as $image) { - $strImage = 'isotope/' . strtolower(substr($image['src'], 0, 1)) . '/' . $image['src']; - - if (!is_file(TL_ROOT . '/' . $strImage)) { - continue; - } - - $size = @getimagesize(TL_ROOT . '/' . $strImage); - - $args[$i] = sprintf( - '%s', - TL_FILES_URL . $strImage, - $size[0], - str_replace("'", "\\'", $objProduct->name), - TL_FILES_URL . $strImage, - TL_ASSETS_URL . \Image::get($strImage, 50, 50, 'proportional'), - $image['alt'] - ); - break; - } - } + $args[$i] = static::generateImage($objProduct); break; case 'name': - $args[$i] = $objProduct->name; - - /** @var \Isotope\Model\ProductType $objProductType */ - if ($row['pid'] == 0 && ($objProductType = ProductType::findByPk($row['type'])) !== null && $objProductType->hasVariants()) { - // Add a variants link - $args[$i] = sprintf('%s', ampersand(\Environment::get('request')) . '&id=' . $row['id'], specialchars($GLOBALS['TL_LANG'][$dc->table]['showVariants']), $args[$i]); - } + $args[$i] = $this->generateName($row, $objProduct, $dc); break; case 'price': - $objPrice = ProductPrice::findPrimaryByProductId($row['id']); - - if (null !== $objPrice) { - /** @var \Isotope\Model\TaxClass $objTax */ - $objTax = $objPrice->getRelated('tax_class'); - $strTax = (null === $objTax ? '' : ' (' . $objTax->getName() . ')'); - - $args[$i] = $objPrice->getValueForTier(1) . $strTax; - } + $args[$i] = $this->generatePrice($row); break; case 'variantFields': - $attributes = array(); - - foreach ($GLOBALS['TL_DCA'][$dc->table]['list']['label']['variantFields'] as $variantField) { - $attributes[] = '' . Format::dcaLabel($dc->table, $variantField) . ': ' . Format::dcaValue($dc->table, $variantField, $objProduct->$variantField); - } - - $args[$i] = ($args[$i] ? $args[$i] . '
' : '') . implode(', ', $attributes); + $args[$i] = $this->generateVariantFields($args[$i], $objProduct, $dc); break; } } return $args; } + + /** + * Generate image label for product. + * + * @param Product $objProduct + * + * @return string + */ + public static function generateImage($objProduct) + { + $arrImages = deserialize($objProduct->images); + + if (!empty($arrImages) && is_array($arrImages)) { + foreach ($arrImages as $image) { + $strImage = 'isotope/' . strtolower(substr($image['src'], 0, 1)) . '/' . $image['src']; + + if (is_file(TL_ROOT . '/' . $strImage)) { + $size = @getimagesize(TL_ROOT . '/' . $strImage); + + $script = sprintf( + "Backend.openModalImage({'width':%s,'title':'%s','url':'%s'});return false", + $size[0], + str_replace("'", "\\'", $objProduct->name), + TL_FILES_URL . $strImage + ); + + /** @noinspection BadExpressionStatementJS */ + /** @noinspection HtmlUnknownTarget */ + return sprintf( + '%s', + TL_FILES_URL . $strImage, + $script, + TL_ASSETS_URL . \Image::get($strImage, 50, 50, 'proportional'), + $image['alt'] + ); + } + } + } + + return ' '; + } + + /** + * Generate name label for product with link to variants if enabled. + * + * @param array $row + * @param Product $objProduct + * @param \DataContainer $dc + * + * @return string + */ + private function generateName($row, $objProduct, $dc) + { + // Add a variants link + if ($row['pid'] == 0 + && ($objProductType = ProductType::findByPk($row['type'])) !== null + && $objProductType->hasVariants() + ) { + /** @noinspection HtmlUnknownTarget */ + return sprintf( + '%s', + ampersand(\Environment::get('request')) . '&id=' . $row['id'], + specialchars($GLOBALS['TL_LANG'][$dc->table]['showVariants']), + $objProduct->name + ); + } + + return $objProduct->name; + } + + /** + * Generate price label for product. + * + * @param array $row + * + * @return string + */ + private function generatePrice($row) + { + $objPrice = ProductPrice::findPrimaryByProductId($row['id']); + + if (null !== $objPrice) { + try { + /** @var \Isotope\Model\TaxClass $objTax */ + $objTax = $objPrice->getRelated('tax_class'); + $strTax = (null === $objTax ? '' : ' (' . $objTax->getName() . ')'); + + return $objPrice->getValueForTier(1) . $strTax; + } catch (\Exception $e) { + return ''; + } + } + + return ''; + } + + /** + * Generate variant fields for product. + * + * @param string $label + * @param Product $objProduct + * @param \DataContainer $dc + * + * @return string + */ + private function generateVariantFields($label, $objProduct, $dc) + { + $attributes = []; + + foreach ($GLOBALS['TL_DCA'][$dc->table]['list']['label']['variantFields'] as $variantField) { + $attributes[] = sprintf( + '%s: %s', + Format::dcaLabel($dc->table, $variantField), + Format::dcaValue($dc->table, $variantField, $objProduct->$variantField) + ); + } + + return ($label ? $label . '
' : '') . implode(', ', $attributes); + } } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Panel.php b/system/modules/isotope/library/Isotope/Backend/Product/Panel.php index 7c56360251..8c608da23f 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/Panel.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Panel.php @@ -3,17 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; -use Isotope\Model\ProductCategory; - +use Isotope\Model\Group; class Panel extends \Backend { @@ -28,28 +26,48 @@ public static function generateFilterButtons() return ''; } + $user = \BackendUser::getInstance(); $session = \Session::getInstance()->getData(); $intPage = $session['filter']['tl_iso_product']['iso_page']; - $blnGroups = true; - - // Check permission - if (!\BackendUser::getInstance()->isAdmin) { - $groups = deserialize(\BackendUser::getInstance()->iso_groups); - - if (!is_array($groups) || empty($groups)) { - $blnGroups = false; - } - - // Allow to manage groups - if (is_array(\BackendUser::getInstance()->iso_groupp) && !empty(\BackendUser::getInstance()->iso_groupp)) { - $blnGroups = true; - } + $buttons = []; + + // Check if user can manage groups + if ($user->isAdmin + || (is_array($user->iso_groups) + && 0 !== count($user->iso_groups) + && is_array($user->iso_groupp) + && 0 !== count($user->iso_groupp) + ) + ) { + $buttons[] = sprintf( + '', + ($session['iso_products_gid'] ? ' active' : ''), + sprintf( + "Backend.getScrollOffset();Isotope.openModalGroupSelector({'width':765,'title':'%s','url':'system/modules/isotope/group.php?do=%s&table=%s&field=gid&value=%s','action':'filterGroups'});return false", + specialchars($GLOBALS['TL_LANG']['tl_iso_product']['product_groups'][0]), + \Input::get('do'), + Group::getTable(), + $session['iso_products_gid'] + ), + specialchars($GLOBALS['TL_LANG']['MSC']['filterByGroups']) + ); } + $buttons[] = sprintf( + '', + ($intPage > 0 ? ' active' : ''), + sprintf( + "Backend.getScrollOffset();Isotope.openModalPageSelector({'width':765,'title':'%s','url':'contao/page.php?do=%s&table=tl_iso_product_category&field=page_id&value=%s','action':'filterPages'});return false", + specialchars($GLOBALS['TL_LANG']['MOD']['page'][0]), + \Input::get('do'), + $intPage + ), + specialchars($GLOBALS['TL_LANG']['MSC']['filterByPages']) + ); + return '
-' . ($blnGroups ? '' : '') . ' - +' . implode("\n", $buttons) . '
'; } @@ -66,27 +84,27 @@ public static function generateAdvancedFilters() $session = \Session::getInstance()->getData(); // Filters - $arrFilters = array - ( - 'iso_noimages' => array - ( + $arrFilters = [ + 'iso_noimages' => [ 'name' => 'iso_noimages', 'label' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_noimages'], - 'options' => array('' => $GLOBALS['TL_LANG']['MSC']['no'], 1 => $GLOBALS['TL_LANG']['MSC']['yes']) - ), - 'iso_nocategory' => array - ( + 'options' => ['' => $GLOBALS['TL_LANG']['MSC']['no'], 1 => $GLOBALS['TL_LANG']['MSC']['yes']], + ], + 'iso_nocategory' => [ 'name' => 'iso_nocategory', 'label' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_nocategory'], - 'options' => array('' => $GLOBALS['TL_LANG']['MSC']['no'], 1 => $GLOBALS['TL_LANG']['MSC']['yes']) - ), - 'iso_new' => array - ( + 'options' => ['' => $GLOBALS['TL_LANG']['MSC']['no'], 1 => $GLOBALS['TL_LANG']['MSC']['yes']], + ], + 'iso_new' => [ 'name' => 'iso_new', 'label' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_new'], - 'options' => array('new_today' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_new_today'], 'new_week' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_new_week'], 'new_month' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_new_month']) - ) - ); + 'options' => [ + 'new_today' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_new_today'], + 'new_week' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_new_week'], + 'new_month' => $GLOBALS['TL_LANG']['tl_iso_product']['filter_new_month'], + ], + ], + ]; $strBuffer = '
@@ -121,7 +139,7 @@ public function generateSortingIcon() } return ' -
+'; } @@ -132,7 +150,7 @@ public function generateSortingIcon() */ public function applyAdvancedFilters() { - $session = $this->Session->getData(); + $session = \Session::getInstance()->getData(); // Store filter values in the session foreach ($_POST as $k => $v) { @@ -149,7 +167,7 @@ public function applyAdvancedFilters() } } - $this->Session->setData($session); + \Session::getInstance()->setData($session); if (\Input::get('id') > 0 || !isset($session['filter']['tl_iso_product'])) { return; @@ -166,13 +184,13 @@ public function applyAdvancedFilters() switch ($k) { // Show products with or without images case 'iso_noimages': - $objProducts = \Database::getInstance()->execute("SELECT id FROM tl_iso_product WHERE language='' AND images " . ($v ? "IS NULL" : "IS NOT NULL")); + $objProducts = \Database::getInstance()->execute("SELECT id FROM tl_iso_product WHERE language='' AND images " . ($v ? 'IS NULL' : 'IS NOT NULL')); $arrProducts = is_array($arrProducts) ? array_intersect($arrProducts, $objProducts->fetchEach('id')) : $objProducts->fetchEach('id'); break; // Show products with or without category case 'iso_nocategory': - $objProducts = \Database::getInstance()->execute("SELECT id FROM tl_iso_product p WHERE pid=0 AND language='' AND (SELECT COUNT(*) FROM " . ProductCategory::getTable() . " c WHERE c.pid=p.id)" . ($v ? "=0" : ">0")); + $objProducts = \Database::getInstance()->execute("SELECT id FROM tl_iso_product p WHERE pid=0 AND language='' AND (SELECT COUNT(*) FROM tl_iso_product_category c WHERE c.pid=p.id)" . ($v ? '=0' : '>0')); $arrProducts = is_array($arrProducts) ? array_intersect($arrProducts, $objProducts->fetchEach('id')) : $objProducts->fetchEach('id'); break; @@ -201,7 +219,7 @@ public function applyAdvancedFilters() case 'iso_page': // Filter the products by pages if ($v > 0) { - $objProducts = \Database::getInstance()->execute("SELECT id FROM tl_iso_product p WHERE pid=0 AND language='' AND id IN (SELECT pid FROM " . ProductCategory::getTable() . " c WHERE c.pid=p.id AND c.page_id=" . (int) $v . ")"); + $objProducts = \Database::getInstance()->execute("SELECT id FROM tl_iso_product p WHERE pid=0 AND language='' AND id IN (SELECT pid FROM tl_iso_product_category c WHERE c.pid=p.id AND c.page_id=" . (int) $v . ')'); $arrProducts = is_array($arrProducts) ? array_intersect($arrProducts, $objProducts->fetchEach('id')) : $objProducts->fetchEach('id'); } break; diff --git a/system/modules/isotope/library/Isotope/Backend/Product/PasteButton.php b/system/modules/isotope/library/Isotope/Backend/Product/PasteButton.php index 1cc9c1340d..d46460bec7 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/PasteButton.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/PasteButton.php @@ -3,15 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend; +use Database\Result; use Isotope\Model\ProductType; @@ -27,28 +27,31 @@ class PasteButton extends \Backend /** * Handle the paste button callback for tl_iso_product - * @param DataContainer - * @param array - * @param string - * @param bool - * @param array + * + * @param \DataContainer $dc + * @param array $row + * @param string $table + * @param bool $cr + * @param array|bool $arrClipboard + * * @return string + * * @link http://www.contao.org/callbacks.html#paste_button_callback */ public function generate(\DataContainer $dc, $row, $table, $cr, $arrClipboard = false) { // Disable all buttons if there is a circular reference - if ($arrClipboard !== false && ($arrClipboard['mode'] == 'cut' && ($cr == 1 || $arrClipboard['id'] == $row['id']) || $arrClipboard['mode'] == 'cutAll' && ($cr == 1 || in_array($row['id'], $arrClipboard['id'])))) { + if ($arrClipboard !== false && ('cut' === $arrClipboard['mode'] && ($cr == 1 || $arrClipboard['id'] == $row['id']) || 'cutAll' === $arrClipboard['mode'] && ($cr == 1 || in_array($row['id'], $arrClipboard['id'])))) { return ''; } - $objProduct = \Database::getInstance()->prepare("SELECT p.*, t.variants FROM " . \Isotope\Model\Product::getTable() . " p LEFT JOIN " . ProductType::getTable() . " t ON p.type=t.id WHERE p.id=?")->execute($arrClipboard['id']); + $objProduct = \Database::getInstance()->prepare("SELECT p.*, t.variants FROM tl_iso_product p LEFT JOIN tl_iso_producttype t ON p.type=t.id WHERE p.id=?")->execute($arrClipboard['id']); // Copy or cut a single product or variant - if ($arrClipboard['mode'] == 'cut' || $arrClipboard['mode'] == 'copy') { + if ('cut' === $arrClipboard['mode'] || 'copy' === $arrClipboard['mode']) { return $this->pasteVariant($objProduct, $table, $row, $arrClipboard); } // Cut or copy multiple variants - elseif ($arrClipboard['mode'] == 'cutAll' || $arrClipboard['mode'] == 'copyAll') { + elseif ('cutAll' === $arrClipboard['mode'] || 'copyAll' === $arrClipboard['mode']) { return $this->pasteAll($objProduct, $table, $row, $arrClipboard); } @@ -59,15 +62,21 @@ public function generate(\DataContainer $dc, $row, $table, $cr, $arrClipboard = /** * Copy or paste a single variant + * + * @param Result $objProduct + * @param string $table + * @param array $row + * @param array $arrClipboard + * * @return string */ protected function pasteVariant($objProduct, $table, $row, $arrClipboard) { // Can't copy variant into it's current product - if ($table == 'tl_iso_product' && $objProduct->pid == $row['id'] && $arrClipboard['mode'] == 'copy') { + if ('tl_iso_product' === $table && $objProduct->pid == $row['id'] && 'copy' === $arrClipboard['mode']) { return $this->getPasteButton(false); } // Disable paste button for products without variant data - elseif ($table == 'tl_iso_product' && $row['id'] > 0) { + elseif ('tl_iso_product' === $table && $row['id'] > 0) { $objType = ProductType::findByPk($row['type']); if (null === $objType || !$objType->hasVariants()) { @@ -75,7 +84,7 @@ protected function pasteVariant($objProduct, $table, $row, $arrClipboard) } } - return $this->getPasteButton(true, $this->addToUrl('act=' . $arrClipboard['mode'] . '&mode=2&pid=' . $row['id']), $table, $row['id']); + return $this->getPasteButton(true, \Backend::addToUrl('act=' . $arrClipboard['mode'] . '&mode=2&pid=' . $row['id']), $table, $row['id']); } @@ -86,11 +95,11 @@ protected function pasteVariant($objProduct, $table, $row, $arrClipboard) protected function pasteAll($objProduct, $table, $row, $arrClipboard) { // Can't paste products in product or variant - if ($table == 'tl_iso_product' && $row['id'] > 0) { + if ('tl_iso_product' === $table && $row['id'] > 0) { return ''; } - return $this->getPasteButton(true, $this->addToUrl('act=' . $arrClipboard['mode'] . '&mode=1&childs=1&gid=' . $row['id']), $table, $row['id']); + return $this->getPasteButton(true, \Backend::addToUrl('act=' . $arrClipboard['mode'] . '&mode=1&childs=1&gid=' . $row['id']), $table, $row['id']); } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Permission.php b/system/modules/isotope/library/Isotope/Backend/Product/Permission.php index c512591bfe..a3110cb72a 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/Permission.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Permission.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -15,8 +14,6 @@ use Isotope\Model\Group; use Isotope\Model\Product; use Isotope\Model\ProductCollection; -use Isotope\Model\ProductCollectionItem; - class Permission extends \Backend { @@ -29,11 +26,11 @@ public static function check() { $session = \Session::getInstance()->getData(); - if (\Input::get('act') == 'delete' && in_array(\Input::get('id'), static::getUndeletableIds())) { + if ('delete' === \Input::get('act') && in_array(\Input::get('id'), static::getUndeletableIds())) { \System::log('Product ID '.\Input::get('id').' is used in an order and can\'t be deleted', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); - } elseif (\Input::get('act') == 'deleteAll' && is_array($session['CURRENT']['IDS'])) { + } elseif ('deleteAll' === \Input::get('act') && is_array($session['CURRENT']['IDS'])) { $arrDeletable = array_diff($session['CURRENT']['IDS'], static::getUndeletableIds()); if (count($arrDeletable) != count($session['CURRENT']['IDS'])) { @@ -119,13 +116,13 @@ public static function getUndeletableIds() if (null === $arrProducts) { $arrProducts = \Database::getInstance()->query(" - SELECT i.product_id AS id FROM " . ProductCollectionItem::getTable() . " i - INNER JOIN " . ProductCollection::getTable() . " c ON i.pid=c.id + SELECT i.product_id AS id FROM tl_iso_product_collection_item i + INNER JOIN tl_iso_product_collection c ON i.pid=c.id WHERE c.type='order' UNION - SELECT p.pid AS id FROM " . Product::getTable() . " p - INNER JOIN " . ProductCollectionItem::getTable() . " i ON i.product_id=p.id - INNER JOIN " . ProductCollection::getTable() . " c ON i.pid=c.id + SELECT p.pid AS id FROM tl_iso_product p + INNER JOIN tl_iso_product_collection_item i ON i.product_id=p.id + INNER JOIN tl_iso_product_collection c ON i.pid=c.id WHERE p.pid>0 AND c.type='order' ")->fetchEach('id'); } @@ -166,9 +163,9 @@ public static function getAllowedIds() SELECT id FROM tl_iso_product WHERE pid=0 AND language='' - " . (empty($arrGroups) ? '' : "AND gid IN (" . implode(',', $arrGroups) . ")") . " + " . (empty($arrGroups) ? '' : 'AND gid IN (' . implode(',', $arrGroups) . ')') . " AND ( - type IN (" . implode(',', $arrProductTypes) . ")" . + type IN (" . implode(',', $arrProductTypes) . ')' . ((is_array($arrNewRecords) && !empty($arrNewRecords)) ? " OR id IN (".implode(',', $arrNewRecords).")" : '') . ") "); diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Price.php b/system/modules/isotope/library/Isotope/Backend/Product/Price.php index d586e4e7ac..2a725d47b4 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/Price.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Price.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -38,7 +37,9 @@ public function createVersion($strTable, $intId) $objPrices = ProductPrice::findBy('pid', $intId); if (null !== $objPrices) { - $objTiers = \Database::getInstance()->query("SELECT * FROM tl_iso_product_pricetier WHERE pid IN (" . implode(',', $objPrices->fetchEach('id')) . ")"); + $objTiers = \Database::getInstance()->query( + 'SELECT * FROM tl_iso_product_pricetier WHERE pid IN (' . implode(',', $objPrices->fetchEach('id')) . ')' + ); $arrData['prices'] = $objPrices->fetchAll(); $arrData['tiers'] = $objTiers->fetchAllAssoc(); @@ -89,13 +90,19 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) $arrData = SubtableVersion::find('tl_iso_product_price', $intId, $intVersion); if (null !== $arrData) { - \Database::getInstance()->query("DELETE FROM tl_iso_product_pricetier WHERE pid IN (SELECT id FROM tl_iso_product_price WHERE pid=" . $intId . ")"); - \Database::getInstance()->query("DELETE FROM tl_iso_product_price WHERE pid=" . $intId); + \Database::getInstance()->query(' + DELETE FROM tl_iso_product_pricetier + WHERE pid IN ( + SELECT id FROM tl_iso_product_price WHERE pid=' . $intId . ' + ) + '); + + \Database::getInstance()->query('DELETE FROM tl_iso_product_price WHERE pid=' . $intId); \Controller::loadDataContainer('tl_iso_product_price'); \Controller::loadDataContainer('tl_iso_product_pricetier'); - $tableFields = array_flip(\Database::getInstance()->getFieldnames('tl_iso_product_price')); + $tableFields = array_flip(\Database::getInstance()->getFieldNames('tl_iso_product_price')); foreach ($arrData['prices'] as $data) { $data = array_intersect_key($data, $tableFields); @@ -105,10 +112,10 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) $data[$k] = \Widget::getEmptyValueByFieldType($GLOBALS['TL_DCA']['tl_iso_product_price']['fields'][$k]['sql']); } - \Database::getInstance()->prepare("INSERT INTO " . ProductPrice::getTable() . " %s")->set($data)->execute(); + \Database::getInstance()->prepare('INSERT INTO tl_iso_product_price %s')->set($data)->execute(); } - $tableFields = array_flip(\Database::getInstance()->getFieldnames('tl_iso_product_pricetier')); + $tableFields = array_flip(\Database::getInstance()->getFieldNames('tl_iso_product_pricetier')); foreach ($arrData['tiers'] as $data) { $data = array_intersect_key($data, $tableFields); @@ -118,7 +125,7 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) $data[$k] = \Widget::getEmptyValueByFieldType($GLOBALS['TL_DCA']['tl_iso_product_pricetier']['fields'][$k]['sql']); } - \Database::getInstance()->prepare("INSERT INTO tl_iso_product_pricetier %s")->set($data)->execute(); + \Database::getInstance()->prepare('INSERT INTO tl_iso_product_pricetier %s')->set($data)->execute(); } \Database::getInstance() @@ -127,7 +134,7 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) ; \Database::getInstance() - ->prepare("UPDATE tl_version SET active=1 WHERE pid=? AND fromTable=? AND version=?") + ->prepare('UPDATE tl_version SET active=1 WHERE pid=? AND fromTable=? AND version=?') ->execute($intId, 'tl_iso_product_price', $intVersion) ; } @@ -141,14 +148,19 @@ public function restoreVersion($intId, $strTable, $arrData, $intVersion) */ public function load($varValue, \DataContainer $dc) { - $objPrice = \Database::getInstance()->query("SELECT t.id, p.id AS pid, p.tax_class, t.price FROM " . ProductPrice::getTable() . " p LEFT JOIN tl_iso_product_pricetier t ON p.id=t.pid AND t.min=1 WHERE p.pid={$dc->id} AND p.config_id=0 AND p.member_group=0 AND p.start='' AND p.stop=''"); + $objPrice = \Database::getInstance()->query(" + SELECT t.id, p.id AS pid, p.tax_class, t.price + FROM tl_iso_product_price p + LEFT JOIN tl_iso_product_pricetier t ON p.id=t.pid AND t.min=1 + WHERE p.pid={$dc->id} AND p.config_id=0 AND p.member_group=0 AND p.start='' AND p.stop='' + "); if (!$objPrice->numRows) { $objTax = TaxClass::findFallback(); return array( 'value' => '0.00', - 'unit' => (null === $objTax ? 0 : $objTax->id), + 'unit' => null === $objTax ? 0 : $objTax->id, ); } @@ -170,21 +182,30 @@ public function save($varValue, \DataContainer $dc) $strPrice = (string) $arrValue['value']; $intTax = (int) $arrValue['unit']; - $objPrice = \Database::getInstance()->query("SELECT t.id, p.id AS pid, p.tax_class, t.price FROM " . ProductPrice::getTable() . " p LEFT JOIN tl_iso_product_pricetier t ON p.id=t.pid AND t.min=1 WHERE p.pid={$dc->id} AND p.config_id=0 AND p.member_group=0 AND p.start='' AND p.stop=''"); + $objPrice = \Database::getInstance()->query(" + SELECT t.id, p.id AS pid, p.tax_class, t.price + FROM tl_iso_product_price p + LEFT JOIN tl_iso_product_pricetier t ON p.id=t.pid AND t.min=1 + WHERE p.pid={$dc->id} AND p.config_id=0 AND p.member_group=0 AND p.start='' AND p.stop='' + "); // Price tier record already exists, update it if ($objPrice->numRows && $objPrice->id > 0) { if ($objPrice->price != $strPrice) { - \Database::getInstance()->prepare("UPDATE tl_iso_product_pricetier SET tstamp=$time, price=? WHERE id=?")->execute($strPrice, $objPrice->id); + \Database::getInstance() + ->prepare("UPDATE tl_iso_product_pricetier SET tstamp=$time, price=? WHERE id=?") + ->execute($strPrice, $objPrice->id) + ; $dc->createNewVersion = true; } if ($objPrice->tax_class != $intTax) { - \Database::getInstance()->prepare( - "UPDATE " . ProductPrice::getTable() . " SET tstamp=$time, tax_class=? WHERE id=? - ")->execute($intTax, $objPrice->pid); + \Database::getInstance() + ->prepare("UPDATE tl_iso_product_price SET tstamp=$time, tax_class=? WHERE id=?") + ->execute($intTax, $objPrice->pid) + ; $dc->createNewVersion = true; } @@ -195,19 +216,23 @@ public function save($varValue, \DataContainer $dc) // Neither price tier nor price record exist, must add both if (!$objPrice->numRows) { - $intPrice = \Database::getInstance()->prepare(" - INSERT INTO " . ProductPrice::getTable() . " (pid,tstamp,tax_class) VALUES (?,?,?) - ")->execute($dc->id, $time, $intTax)->insertId; + $intPrice = \Database::getInstance() + ->prepare("INSERT INTO tl_iso_product_price (pid,tstamp,tax_class) VALUES (?,?,?)") + ->execute($dc->id, $time, $intTax) + ->insertId + ; } elseif ($objPrice->tax_class != $intTax) { - \Database::getInstance()->prepare(" - UPDATE " . ProductPrice::getTable() . " SET tstamp=?, tax_class=? WHERE id=? - ")->execute($time, $intTax, $intPrice); + \Database::getInstance() + ->prepare('UPDATE tl_iso_product_price SET tstamp=?, tax_class=? WHERE id=?') + ->execute($time, $intTax, $intPrice) + ; } - \Database::getInstance()->prepare(" - INSERT INTO tl_iso_product_pricetier (pid,tstamp,min,price) VALUES (?,?,1,?) - ")->execute($intPrice, $time, $strPrice); + \Database::getInstance() + ->prepare('INSERT INTO tl_iso_product_pricetier (pid,tstamp,min,price) VALUES (?,?,1,?)') + ->execute($intPrice, $time, $strPrice) + ; $dc->createNewVersion = true; } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php b/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php index 04e2a49f89..a45b767e3e 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; @@ -33,7 +32,7 @@ public function generate($dc) $strBuffer = ''; $arrOptions = array(); - foreach ($objProduct->getRelated('type')->getVariantAttributes() as $attribute) { + foreach ($objProduct->getType()->getVariantAttributes() as $attribute) { if ($GLOBALS['TL_DCA'][$table]['fields'][$attribute]['attributes']['variant_option']) { $GLOBALS['TL_DCA'][$table]['fields'][$attribute]['eval']['mandatory'] = true; @@ -86,14 +85,14 @@ public function generate($dc) foreach ($arrCombinations as $combination) { - $objVariant = \Database::getInstance()->prepare(" - SELECT * FROM $table WHERE pid=? AND " . implode('=? AND ', array_keys($combination)) . "=?" + $objVariant = \Database::getInstance()->prepare(' + SELECT * FROM tl_iso_product WHERE pid=? AND ' . implode('=? AND ', array_keys($combination)) . '=?' )->execute(array_merge(array($objProduct->id), $combination)); if (!$objVariant->numRows) { $arrInherit = array_diff( - $objProduct->getRelated('type')->getVariantAttributes(), + $objProduct->getType()->getVariantAttributes(), Attribute::getVariantOptionFields(), Attribute::getCustomerDefinedFields(), Attribute::getSystemColumnsFields() diff --git a/system/modules/isotope/library/Isotope/Backend/Product/XmlSitemap.php b/system/modules/isotope/library/Isotope/Backend/Product/XmlSitemap.php index e497c39e7f..8f96c483aa 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/XmlSitemap.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/XmlSitemap.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Product; diff --git a/system/modules/isotope/library/Isotope/Backend/ProductCategory/Callback.php b/system/modules/isotope/library/Isotope/Backend/ProductCategory/Callback.php index 66034a3525..ec7c12537d 100644 --- a/system/modules/isotope/library/Isotope/Backend/ProductCategory/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductCategory/Callback.php @@ -3,15 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductCategory; +use Isotope\Backend\Product\Label; use Isotope\Model\Product; @@ -27,16 +27,13 @@ public function listRows($row) { $objProduct = Product::findByPk($row['pid']); - $label = $objProduct->name; - - if ($objProduct->sku != '') { - $label .= ' [' . $objProduct->sku . ']'; - } - - return $label; + return sprintf( + '%s%s', + Label::generateImage($objProduct), + $objProduct->name + ); } - /** * Return the page view button * @param string diff --git a/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php b/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php index 7be3982bb3..8f1067eec2 100755 --- a/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php @@ -3,16 +3,14 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductCollection; -use \Haste\Haste; use Haste\Util\Debug; use Haste\Util\Format; use Isotope\Frontend; @@ -85,17 +83,19 @@ public function generateOrderDetails($dc) $GLOBALS['TL_CSS'][] = Debug::uncompressedFile('system/modules/isotope/assets/css/print.min.css|print'); // Try to find a order details module or create a dummy FE module model - if (($objModuleModel = \ModuleModel::findOneBy('type', 'iso_orderdetails')) === null) { - $objModuleModel = new \ModuleModel(); - $objModuleModel->type = 'iso_orderdetails'; - $objModuleModel->iso_collectionTpl = 'iso_collection_default'; + if (($config = $objOrder->getRelated('config_id')) === null + || ($moduleModel = $config->getRelated('orderDetailsModule')) === null + ) { + $moduleModel = new \ModuleModel(); + $moduleModel->type = 'iso_orderdetails'; + $moduleModel->iso_collectionTpl = 'iso_collection_default'; } // Generate a regular order details module \Input::setGet('uid', $objOrder->uniqid); - $objModule = new OrderDetails($objModuleModel); + $objModule = new OrderDetails($moduleModel); - return Haste::getInstance()->call('replaceInsertTags', $objModule->generate(true)); + return \Controller::replaceInsertTags($objModule->generate(true)); } /** @@ -104,6 +104,7 @@ public function generateOrderDetails($dc) * @param object $dc * * @return string + * * @deprecated we should probably remove this in 3.0 as it does no longer make sense */ public function generateEmailData($dc) @@ -138,7 +139,7 @@ public function generateEmailData($dc) $strBuffer .= ' - ' . $k . ': + ' . ($GLOBALS['TL_LANG']['tl_iso_product_collection']['emailData'][$k] ?: $k) . ': ' . $strValue . ' '; } @@ -193,8 +194,8 @@ protected function generateAddressData(Address $objAddress = null) return '
No address data available.
'; } - \System::loadLanguageFile($objAddress->getTable()); - $this->loadDataContainer($objAddress->getTable()); + \System::loadLanguageFile(Address::getTable()); + \Controller::loadDataContainer(Address::getTable()); $strBuffer = '
@@ -203,7 +204,7 @@ protected function generateAddressData(Address $objAddress = null) $i = 0; - foreach ($GLOBALS['TL_DCA'][$objAddress->getTable()]['fields'] as $k => $v) { + foreach ($GLOBALS['TL_DCA'][Address::getTable()]['fields'] as $k => $v) { if (!isset($objAddress->$k)) { continue; } @@ -213,8 +214,8 @@ protected function generateAddressData(Address $objAddress = null) $strBuffer .= ' - ' . Format::dcaLabel($objAddress->getTable(), $k) . ': - ' . Format::dcaValue($objAddress->getTable(), $k, $v) . ' + ' . Format::dcaLabel(Address::getTable(), $k) . ': + ' . Format::dcaValue(Address::getTable(), $k, $v) . ' '; } @@ -238,7 +239,7 @@ public function checkPermission() // Only admins can delete orders. Others should set the order_status to cancelled. unset($GLOBALS['TL_DCA']['tl_iso_product_collection']['list']['operations']['delete']); - if (\Input::get('act') == 'delete' || \Input::get('act') == 'deleteAll') { + if ('delete' === \Input::get('act') || 'deleteAll' === \Input::get('act')) { \System::log('Only admin can delete orders!', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -247,7 +248,9 @@ public function checkPermission() $arrConfigs = $this->User->iso_configs; if (is_array($arrConfigs) && !empty($arrConfigs)) { - $objOrders = \Database::getInstance()->query("SELECT id FROM tl_iso_product_collection WHERE config_id IN (" . implode(',', $arrConfigs) . ")"); + $objOrders = \Database::getInstance()->query( + 'SELECT id FROM tl_iso_product_collection WHERE config_id IN (' . implode(',', $arrConfigs) . ')' + ); if ($objOrders->numRows) { $arrIds = $objOrders->fetchEach('id'); @@ -276,7 +279,7 @@ public function checkPermission() */ public function paymentButton($row, $href, $label, $title, $icon, $attributes) { - return $row['payment_id'] > 0 ? '' . \Image::getHtml($icon, $label) . ' ' : ''; + return $row['payment_id'] > 0 ? '' . \Image::getHtml($icon, $label) . ' ' : ''; } /** @@ -317,7 +320,7 @@ public function paymentInterface($dc) */ public function shippingButton($row, $href, $label, $title, $icon, $attributes) { - return $row['shipping_id'] > 0 ? '' . \Image::getHtml($icon, $label) . ' ' : ''; + return $row['shipping_id'] > 0 ? '' . \Image::getHtml($icon, $label) . ' ' : ''; } /** @@ -357,7 +360,7 @@ public function printDocument(\DataContainer $dc) { $strRedirectUrl = str_replace('&key=print_document', '', \Environment::get('request')); - if (\Input::post('FORM_SUBMIT') == 'tl_iso_print_document') { + if ('tl_iso_print_document' === \Input::post('FORM_SUBMIT')) { if (($objOrder = Order::findByPk($dc->id)) === null) { \Message::addError('Could not find order id.'); \Controller::redirect($strRedirectUrl); diff --git a/system/modules/isotope/library/Isotope/Backend/ProductPrice/Callback.php b/system/modules/isotope/library/Isotope/Backend/ProductPrice/Callback.php index cc34ccdc5b..45cb87d7a2 100644 --- a/system/modules/isotope/library/Isotope/Backend/ProductPrice/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductPrice/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductPrice; @@ -81,20 +80,24 @@ public function generateWizardList($objRecords, $strId, \DcaWizard $objWidget) $strReturn = ' - - - - - - - + + + + + + + + + '; while ($objRecords->next()) { $arrTiers = array(); - $objTiers = \Database::getInstance()->execute("SELECT * FROM tl_iso_product_pricetier WHERE pid={$objRecords->id} ORDER BY min"); + $objTiers = \Database::getInstance()->execute( + "SELECT * FROM tl_iso_product_pricetier WHERE pid={$objRecords->id} ORDER BY min" + ); while ($objTiers->next()) { $arrTiers[] = "{$objTiers->min}={$objTiers->price}"; @@ -160,7 +163,10 @@ public function saveTiers($varValue, $dc) $time = time(); $arrInsert = array(); $arrUpdate = array(); - $arrDelete = \Database::getInstance()->execute("SELECT min FROM tl_iso_product_pricetier WHERE pid={$dc->id}")->fetchEach('min'); + $arrDelete = \Database::getInstance() + ->execute("SELECT min FROM tl_iso_product_pricetier WHERE pid={$dc->id}") + ->fetchEach('min') + ; foreach ($arrNew as $new) { $pos = array_search($new['min'], $arrDelete); @@ -174,18 +180,25 @@ public function saveTiers($varValue, $dc) } if (!empty($arrDelete)) { - \Database::getInstance()->query("DELETE FROM tl_iso_product_pricetier WHERE pid={$dc->id} AND min IN (" . implode(',', $arrDelete) . ")"); + \Database::getInstance()->query( + "DELETE FROM tl_iso_product_pricetier WHERE pid={$dc->id} AND min IN (" . implode(',', $arrDelete) . ")" + ); } if (!empty($arrUpdate)) { foreach ($arrUpdate as $min => $price) { - \Database::getInstance()->prepare("UPDATE tl_iso_product_pricetier SET tstamp=$time, price=? WHERE pid={$dc->id} AND min=?")->execute($price, $min); + \Database::getInstance() + ->prepare("UPDATE tl_iso_product_pricetier SET tstamp=$time, price=? WHERE pid=? AND min=?") + ->execute($price, $dc->id, $min) + ; } } if (!empty($arrInsert)) { foreach ($arrInsert as $min => $price) { - \Database::getInstance()->prepare("INSERT INTO tl_iso_product_pricetier (pid,tstamp,min,price) VALUES ({$dc->id}, $time, ?, ?)")->execute($min, $price); + \Database::getInstance() + ->prepare("INSERT INTO tl_iso_product_pricetier (pid,tstamp,min,price) VALUES (?, $time, ?, ?)") + ->execute($dc->id, $min, $price); } } } diff --git a/system/modules/isotope/library/Isotope/Backend/ProductType/AttributeWizard.php b/system/modules/isotope/library/Isotope/Backend/ProductType/AttributeWizard.php index 88c30abfb6..46c3637db0 100755 --- a/system/modules/isotope/library/Isotope/Backend/ProductType/AttributeWizard.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductType/AttributeWizard.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductType; @@ -30,21 +29,24 @@ class AttributeWizard extends \Backend */ public function getColumns(\MultiColumnWizard $objWidget) { - $this->loadDataContainer(Product::getTable()); + \Controller::loadDataContainer(Product::getTable()); $arrValues = $objWidget->value; - $blnVariants = ($objWidget->name != 'attributes'); + $blnVariants = $this->isVariants($objWidget->name); if (!empty($arrValues) && is_array($arrValues)) { - $arrFixed = $blnVariants ? Attribute::getVariantFixedFields() : Attribute::getFixedFields(); + if ($blnVariants) { + $arrFixed = Attribute::getVariantFixedFields($objWidget->dataContainer->activeRecord->class); + } else { + $arrFixed = Attribute::getFixedFields($objWidget->dataContainer->activeRecord->class); + } foreach ($arrValues as $i => $attribute) { - - if (in_array($attribute['name'], $arrFixed)) { + if (in_array($attribute['name'], $arrFixed, true)) { $objWidget->addDataToFieldAtIndex($i, 'enabled', array('eval' => array('disabled' => true))); } - /** @type IsotopeAttribute|IsotopeAttributeForVariants $objAttribute */ + /** @var IsotopeAttribute|IsotopeAttributeForVariants $objAttribute */ $objAttribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$attribute['name']]; if (null !== $objAttribute && /* @todo in 3.0: $objAttribute instanceof IsotopeAttributeForVariants && */$objAttribute->isVariantOption()) { $objWidget->addDataToFieldAtIndex($i, 'mandatory', array('eval' => array('hideBody' => true))); @@ -101,7 +103,7 @@ public function getNextName($objWidget) static $strWidget; static $i = 0; - if ($strWidget != $objWidget->name) { + if ($objWidget->name !== $strWidget) { $strWidget = $objWidget->name; $arrValues = $objWidget->value; $i = 0; @@ -111,7 +113,7 @@ public function getNextName($objWidget) $strName = $arrField['name']; $style = ''; - /** @type IsotopeAttribute|IsotopeAttributeForVariants $objAttribute */ + /** @var IsotopeAttribute|IsotopeAttributeForVariants $objAttribute */ $objAttribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$strName]; if (null !== $objAttribute && $objAttribute->isVariantOption()) { @@ -140,7 +142,7 @@ public function getNextName($objWidget) */ public function getLegends($objWidget) { - $this->loadDataContainer(Attribute::getTable()); + \Controller::loadDataContainer(Attribute::getTable()); \System::loadLanguageFile(Product::getTable()); $arrLegends = $GLOBALS['TL_DCA'][Attribute::getTable()]['fields']['legend']['options']; @@ -162,19 +164,25 @@ public function getLegends($objWidget) /** * Generate list of fields and add missing ones from DCA * - * @param mixed $varValue The widget value - * @param object $dc The DataContainer object + * @param mixed $varValue + * @param \DataContainer $dc * * @return array */ public function load($varValue, $dc) { - $this->loadDataContainer('tl_iso_product'); + \Controller::loadDataContainer('tl_iso_product'); $arrDCA = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']; $arrFields = array(); $arrValues = deserialize($varValue); - $blnVariants = ($dc->field != 'attributes'); + $blnVariants = $this->isVariants($dc->field); + + if ($blnVariants) { + $arrFixed = Attribute::getVariantFixedFields($dc->activeRecord->class); + } else { + $arrFixed = Attribute::getFixedFields($dc->activeRecord->class); + } if (!is_array($arrValues)) { $arrValues = array(); @@ -184,7 +192,13 @@ public function load($varValue, $dc) $strName = $arrField['name']; - if ($strName == '' || !isset($arrDCA[$strName]) || $arrDCA[$strName]['attributes']['legend'] == '' || ($blnVariants && $arrDCA[$strName]['attributes']['inherit']) || (!$blnVariants && $arrDCA[$strName]['attributes']['variant_option'])) { + if ($strName == '' + || !isset($arrDCA[$strName]) + || $arrDCA[$strName]['attributes']['legend'] == '' + || $this->isExcluded($strName, $blnVariants) + || ($blnVariants && $arrDCA[$strName]['attributes']['inherit']) + || (!$blnVariants && $arrDCA[$strName]['attributes']['variant_option']) + ) { continue; } @@ -197,12 +211,17 @@ public function load($varValue, $dc) foreach (array_diff_key($arrDCA, $arrFields) as $strName => $arrField) { - if (!is_array($arrField['attributes']) || $arrField['attributes']['legend'] == '' || ($blnVariants && $arrField['attributes']['inherit']) || (!$blnVariants && $arrField['attributes']['variant_option'])) { + if (!is_array($arrField['attributes']) + || $arrField['attributes']['legend'] == '' + || $this->isExcluded($strName, $blnVariants) + || ($blnVariants && $arrField['attributes']['inherit']) + || (!$blnVariants && $arrField['attributes']['variant_option']) + ) { continue; } $arrFields[$strName] = array( - 'enabled' => ($arrField['attributes'][($blnVariants ? 'variant_' : '') . 'fixed'] ? '1' : ''), + 'enabled' => in_array($strName, $arrFixed, true) ? '1' : '', 'name' => $strName, 'legend' => $arrField['attributes']['legend'], ); @@ -221,22 +240,26 @@ public function load($varValue, $dc) */ public function save($varValue, $dc) { - $arrDCA = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']; - $arrLegends = array(); $arrFields = deserialize($varValue); - $blnVariants = ($dc->field != 'attributes'); + $blnVariants = $this->isVariants($dc->field); if (empty($arrFields) || !is_array($arrFields)) { return $varValue; } + if ($blnVariants) { + $arrFixed = Attribute::getVariantFixedFields($dc->activeRecord->class); + } else { + $arrFixed = Attribute::getFixedFields($dc->activeRecord->class); + } + foreach ($arrFields as $k => $arrField) { - if ($arrDCA[$arrField['name']]['attributes'][($blnVariants ? 'variant_' : '') . 'fixed']) { + if (in_array($arrField['name'], $arrFixed, true)) { $arrFields[$k]['enabled'] = '1'; } - if (!in_array($arrField['legend'], $arrLegends)) { + if (!in_array($arrField['legend'], $arrLegends, true)) { $arrLegends[] = $arrField['legend']; } } @@ -246,10 +269,13 @@ public function save($varValue, $dc) return -1; } elseif ($arrFields[$b]['enabled'] && !$arrFields[$a]['enabled']) { return 1; - } elseif ($arrFields[$a]['legend'] == $arrFields[$b]['legend']) { + } elseif ($arrFields[$a]['legend'] === $arrFields[$b]['legend']) { return ($a > $b) ? +1 : -1; } else { - return (array_search($arrFields[$a]['legend'], $arrLegends) > array_search($arrFields[$b]['legend'], $arrLegends)) ? +1 : -1; + $posA = array_search($arrFields[$a]['legend'], $arrLegends, true); + $posB = array_search($arrFields[$b]['legend'], $arrLegends, true); + + return ($posA > $posB) ? +1 : -1; } }); @@ -261,4 +287,31 @@ public function save($varValue, $dc) return serialize($arrValues); } + + /** + * Returns whether we're currently handling variant attributes. + * + * @param string $widgetName + * + * @return bool + */ + private function isVariants($widgetName) + { + return 'attributes' !== $widgetName; + } + + /** + * Returns whether an attribute is excluded. + * + * @param string $attributeName + * @param bool $forVariants + * + * @return bool + */ + private function isExcluded($attributeName, $forVariants) + { + $excludedFields = $forVariants ? Attribute::getVariantExcludedFields() : Attribute::getExcludedFields(); + + return in_array($attributeName, $excludedFields, true); + } } diff --git a/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php b/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php index fc57b0b933..d9e90ebc24 100755 --- a/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php @@ -3,15 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductType; +use Haste\Util\Format; use Isotope\Backend\Permission; use Isotope\Interfaces\IsotopeAttributeForVariants; use Isotope\Model\Attribute; @@ -28,11 +28,11 @@ class Callback extends Permission public function checkPermission() { // Do not run the permission check on other Isotope modules - if (\Input::get('mod') != 'producttypes') { + if ('producttypes' !== \Input::get('mod')) { return; } - /** @type \BackendUser $objBackendUser */ + /** @var \BackendUser $objBackendUser */ $objBackendUser = \BackendUser::getInstance(); if ($objBackendUser->isAdmin) { @@ -76,7 +76,7 @@ public function checkPermission() case 'copy': case 'delete': case 'show': - if (!in_array(\Input::get('id'), $root) || (\Input::get('act') == 'delete' && !$objBackendUser->hasAccess('delete', 'iso_product_typep'))) { + if (!in_array(\Input::get('id'), $root) || ('delete' === \Input::get('act') && !$objBackendUser->hasAccess('delete', 'iso_product_typep'))) { \System::log('Not enough permissions to ' . \Input::get('act') . ' product type ID "' . \Input::get('id') . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -86,7 +86,7 @@ public function checkPermission() case 'deleteAll': case 'overrideAll': $session = $this->Session->getData(); - if (\Input::get('act') == 'deleteAll' && !$this->User->hasAccess('delete', 'iso_product_typep')) { + if ('deleteAll' === \Input::get('act') && !$this->User->hasAccess('delete', 'iso_product_typep')) { $session['CURRENT']['IDS'] = array(); } else { $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $root); @@ -118,10 +118,10 @@ public function checkPermission() */ public function copyProductType($row, $href, $label, $title, $icon, $attributes) { - /** @type \BackendUser $objUser */ + /** @var \BackendUser $objUser */ $objUser = \BackendUser::getInstance(); - return ($objUser->isAdmin || $objUser->hasAccess('create', 'iso_product_typep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($objUser->isAdmin || $objUser->hasAccess('create', 'iso_product_typep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } @@ -143,10 +143,10 @@ public function deleteProductType($row, $href, $label, $title, $icon, $attribute return \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } - /** @type \BackendUser $objUser */ + /** @var \BackendUser $objUser */ $objUser = \BackendUser::getInstance(); - return ($objUser->isAdmin || $objUser->hasAccess('delete', 'iso_product_typep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($objUser->isAdmin || $objUser->hasAccess('delete', 'iso_product_typep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } /** @@ -156,7 +156,7 @@ public function deleteProductType($row, $href, $label, $title, $icon, $attribute */ public function getOptions() { - /** @type \BackendUser $objUser */ + /** @var \BackendUser $objUser */ $objUser = \BackendUser::getInstance(); $arrTypes = $objUser->iso_product_types; @@ -165,13 +165,12 @@ public function getOptions() $arrTypes = array(0); } - $t = ProductType::getTable(); $arrProductTypes = array(); - $objProductTypes = \Database::getInstance()->execute(" - SELECT id,name FROM $t - WHERE tstamp>0" . ($objUser->isAdmin ? '' : (" AND id IN (" . implode(',', $arrTypes) . ")")) . " + $objProductTypes = \Database::getInstance()->execute(' + SELECT id,name FROM tl_iso_producttype + WHERE tstamp>0' . ($objUser->isAdmin ? '' : (' AND id IN (' . implode(',', $arrTypes) . ')')) . ' ORDER BY name - "); + '); while ($objProductTypes->next()) { $arrProductTypes[$objProductTypes->id] = $objProductTypes->name; @@ -183,12 +182,15 @@ public function getOptions() /** * Make sure at least one variant attribute is enabled * - * @param mixed $varValue + * @param mixed $varValue + * @param \DataContainer $dc * * @return mixed + * * @throws \UnderflowException + * @throws \LogicException */ - public function validateVariantAttributes($varValue) + public function validateVariantAttributes($varValue, \DataContainer $dc) { \Controller::loadDataContainer('tl_iso_product'); @@ -199,7 +201,7 @@ public function validateVariantAttributes($varValue) if (!empty($arrAttributes) && is_array($arrAttributes)) { foreach ($arrAttributes as $arrAttribute) { - /** @type IsotopeAttributeForVariants|Attribute $objAttribute */ + /** @var IsotopeAttributeForVariants|Attribute $objAttribute */ $objAttribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$arrAttribute['name']]; if (null !== $objAttribute && /* @todo in 3.0: $objAttribute instanceof IsotopeAttributeForVariants && */$objAttribute->isVariantOption()) { @@ -223,4 +225,56 @@ public function validateVariantAttributes($varValue) return $varValue; } + + /** + * Check if singular attributes appear in the both product type attributes and variant attributes + * + * @param mixed $value + * @param \DataContainer $dc + * + * @return mixed + * + * @throws \LogicException + */ + public function validateSingularAttributes($value, \DataContainer $dc) + { + $productFields = deserialize($dc->activeRecord->attributes); + $variantFields = deserialize($value); + $singularFields = Attribute::getSingularFields(); + + if (!is_array($productFields) || !is_array($variantFields) || 0 === count($singularFields)) { + return $value; + } + + $error = []; + + foreach ($singularFields as $singular) { + foreach ($productFields as $product) { + if ($product['name'] === $singular) { + if ($product['enabled']) { + foreach ($variantFields as $variant) { + if ($variant['name'] === $singular) { + if ($variant['enabled']) { + $error[] = Format::dcaLabel('tl_iso_product', $singular); + } + + break; + } + } + } + + break; + } + } + } + + if (count($error) > 0) { + throw new \LogicException(sprintf( + $GLOBALS['TL_LANG']['tl_iso_producttype']['singularAttributes'], + implode(', ', $error) + )); + } + + return $value; + } } diff --git a/system/modules/isotope/library/Isotope/Backend/ProductType/Help.php b/system/modules/isotope/library/Isotope/Backend/ProductType/Help.php index 09e796607f..4a22addf2e 100644 --- a/system/modules/isotope/library/Isotope/Backend/ProductType/Help.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductType/Help.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductType; @@ -19,7 +18,8 @@ class Help extends \Backend public function initializeWizard($strName, $strLanguage) { - if ($strName == 'explain') { + if ('explain' === $strName) { + /** @var ProductType[] $objTypes */ $objTypes = ProductType::findAll(); if (null !== $objTypes) { diff --git a/system/modules/isotope/library/Isotope/Backend/ProductType/Label.php b/system/modules/isotope/library/Isotope/Backend/ProductType/Label.php index fd4f18b1a8..c3498fabd2 100644 --- a/system/modules/isotope/library/Isotope/Backend/ProductType/Label.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductType/Label.php @@ -3,20 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductType; use Haste\Util\Format; use Isotope\Model\Product; -use Isotope\Model\ProductPrice; -use Isotope\Model\ProductType; - class Label extends \Backend { diff --git a/system/modules/isotope/library/Isotope/Backend/ProductType/Permission.php b/system/modules/isotope/library/Isotope/Backend/ProductType/Permission.php index 698721dc15..e860144dcd 100755 --- a/system/modules/isotope/library/Isotope/Backend/ProductType/Permission.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductType/Permission.php @@ -3,20 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\ProductType; -use Isotope\Interfaces\IsotopeAttributeForVariants; use Isotope\Model\Product; use Isotope\Model\ProductCollection; -use Isotope\Model\ProductCollectionItem; - class Permission extends \Backend { @@ -29,11 +25,11 @@ public static function check() { $session = \Session::getInstance()->getData(); - if (\Input::get('act') == 'delete' && in_array(\Input::get('id'), static::getUndeletableIds())) { + if ('delete' === \Input::get('act') && in_array(\Input::get('id'), static::getUndeletableIds())) { \System::log('Product type ID '.\Input::get('id').' is used in an order and can\'t be deleted', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); - } elseif (\Input::get('act') == 'deleteAll' && is_array($session['CURRENT']['IDS'])) { + } elseif ('deleteAll' === \Input::get('act') && is_array($session['CURRENT']['IDS'])) { $arrDeletable = array_diff($session['CURRENT']['IDS'], static::getUndeletableIds()); if (count($arrDeletable) != count($session['CURRENT']['IDS'])) { @@ -63,7 +59,7 @@ public static function check() $GLOBALS['TL_DCA']['tl_iso_producttype']['fields']['variants']['input_field_callback'] = function($dc) { // Make sure variants are disabled in this product type (see #1114) - \Database::getInstance()->prepare("UPDATE " . $dc->table . " SET variants='' WHERE id=?")->execute($dc->id); + \Database::getInstance()->prepare("UPDATE tl_iso_producttype SET variants='' WHERE id=?")->execute($dc->id); return '

'.$GLOBALS['TL_LANG']['XPL']['noVariantAttributes'].'

'; }; @@ -81,15 +77,15 @@ public static function getUndeletableIds() if (null === $arrProducts) { $arrProducts = \Database::getInstance()->query(" - SELECT p.type AS type FROM " . Product::getTable() . " p - INNER JOIN " . ProductCollectionItem::getTable() . " i ON i.product_id=p.id - INNER JOIN " . ProductCollection::getTable() . " c ON i.pid=c.id + SELECT p.type AS type FROM tl_iso_product p + INNER JOIN tl_iso_product_collection_item i ON i.product_id=p.id + INNER JOIN tl_iso_product_collection c ON i.pid=c.id WHERE p.type>0 AND c.type='order' UNION - SELECT p.type AS type FROM " . Product::getTable() . " p - INNER JOIN " . Product::getTable() . " p2 ON p2.pid=p.pid - INNER JOIN " . ProductCollectionItem::getTable() . " i ON i.product_id=p2.id - INNER JOIN " . ProductCollection::getTable() . " c ON i.pid=c.id + SELECT p.type AS type FROM tl_iso_product p + INNER JOIN tl_iso_product p2 ON p2.pid=p.pid + INNER JOIN tl_iso_product_collection_item i ON i.product_id=p2.id + INNER JOIN tl_iso_product_collection c ON i.pid=c.id WHERE c.type='order' ")->fetchEach('type'); } diff --git a/system/modules/isotope/library/Isotope/Backend/RelatedProduct/Callback.php b/system/modules/isotope/library/Isotope/Backend/RelatedProduct/Callback.php index 076c84b39f..eac1e4a111 100644 --- a/system/modules/isotope/library/Isotope/Backend/RelatedProduct/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/RelatedProduct/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\RelatedProduct; @@ -55,7 +54,16 @@ public function listRows($row) public function initDCA($dc) { $arrCategories = array(); - $objCategories = \Database::getInstance()->prepare("SELECT * FROM " . \Isotope\Model\RelatedCategory::getTable() . " WHERE id NOT IN (SELECT category FROM " . $dc->table . " WHERE pid=" . (strlen(\Input::get('act')) ? "(SELECT pid FROM " . $dc->table . " WHERE id=?) AND id!=?" : '?') . ")")->execute($dc->id, $dc->id); + $objCategories = \Database::getInstance() + ->prepare(' + SELECT * FROM tl_iso_related_category + WHERE id NOT IN ( + SELECT category FROM tl_iso_related_product + WHERE pid=' . (strlen(\Input::get('act')) ? "(SELECT pid FROM tl_iso_related_product WHERE id=?) AND id!=?" : '?') . ' + ) + ') + ->execute($dc->id, $dc->id) + ; while ($objCategories->next()) { $arrCategories[$objCategories->id] = $objCategories->name; @@ -65,7 +73,7 @@ public function initDCA($dc) $GLOBALS['TL_DCA']['tl_iso_related_product']['config']['closed'] = true; } - if (\Input::get('act') == 'edit') { + if ('edit' === \Input::get('act')) { unset($GLOBALS['TL_DCA']['tl_iso_related_product']['fields']['category']['foreignKey']); $GLOBALS['TL_DCA']['tl_iso_related_product']['fields']['category']['options'] = $arrCategories; $GLOBALS['TL_DCA']['tl_iso_related_product']['fields']['products']['eval']['allowedIds'] = \Database::getInstance()->prepare("SELECT id FROM tl_iso_product WHERE pid=0 AND id!=(SELECT pid FROM tl_iso_related_product WHERE id=?)")->execute($dc->id)->fetchEach('id'); diff --git a/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php b/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php index c4c4118dfc..4e88974725 100755 --- a/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Shipping; @@ -25,7 +24,7 @@ class Callback extends Permission public function checkPermission() { // Do not run the permission check on other Isotope modules - if (\Input::get('mod') != 'shipping') { + if ('shipping' !== \Input::get('mod')) { return; } @@ -34,8 +33,9 @@ public function checkPermission() } // Set root IDs - if (!is_array(\BackendUser::getInstance()->iso_shipping_modules) || count(\BackendUser::getInstance()->iso_shipping_modules) < 1) // Can't use empty() because its an object property (using __get) - { + if (!is_array(\BackendUser::getInstance()->iso_shipping_modules) + || 0 === count(\BackendUser::getInstance()->iso_shipping_modules) + ) { $root = array(0); } else { $root = \BackendUser::getInstance()->iso_shipping_modules; @@ -71,7 +71,11 @@ public function checkPermission() case 'copy': case 'delete': case 'show': - if (!in_array(\Input::get('id'), $root) || (\Input::get('act') == 'delete' && !\BackendUser::getInstance()->hasAccess('delete', 'iso_shipping_modulep'))) { + if (!in_array(\Input::get('id'), $root) + || ('delete' === \Input::get('act') + && !\BackendUser::getInstance()->hasAccess('delete', 'iso_shipping_modulep') + ) + ) { \System::log('Not enough permissions to ' . \Input::get('act') . ' shipping module ID "' . \Input::get('id') . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -81,7 +85,7 @@ public function checkPermission() case 'deleteAll': case 'overrideAll': $session = $this->Session->getData(); - if (\Input::get('act') == 'deleteAll' && !\BackendUser::getInstance()->hasAccess('delete', 'iso_shipping_modulep')) { + if ('deleteAll' === \Input::get('act') && !\BackendUser::getInstance()->hasAccess('delete', 'iso_shipping_modulep')) { $session['CURRENT']['IDS'] = array(); } else { $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $root); @@ -111,7 +115,7 @@ public function checkPermission() */ public function copyShippingModule($row, $href, $label, $title, $icon, $attributes) { - return (\BackendUser::getInstance()->isAdmin || \BackendUser::getInstance()->hasAccess('create', 'iso_shipping_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return (\BackendUser::getInstance()->isAdmin || \BackendUser::getInstance()->hasAccess('create', 'iso_shipping_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } @@ -127,7 +131,7 @@ public function copyShippingModule($row, $href, $label, $title, $icon, $attribut */ public function deleteShippingModule($row, $href, $label, $title, $icon, $attributes) { - return (\BackendUser::getInstance()->isAdmin || \BackendUser::getInstance()->hasAccess('delete', 'iso_shipping_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return (\BackendUser::getInstance()->isAdmin || \BackendUser::getInstance()->hasAccess('delete', 'iso_shipping_modulep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } @@ -144,21 +148,23 @@ public function deleteShippingModule($row, $href, $label, $title, $icon, $attrib public function toggleIcon($row, $href, $label, $title, $icon, $attributes) { if (strlen(\Input::get('tid'))) { - $this->toggleVisibility(\Input::get('tid'), (\Input::get('state') == 1)); - \Controller::redirect($this->getReferer()); + $this->toggleVisibility(\Input::get('tid'), \Input::get('state') == 1); + \Controller::redirect(\System::getReferer()); } if (!$row['enabled']) { $icon = 'invisible.gif'; } - if (!\BackendUser::getInstance()->isAdmin && !\BackendUser::getInstance()->hasAccess('tl_iso_shipping::enabled', 'alexf')) { + if (!\BackendUser::getInstance()->isAdmin + && !\BackendUser::getInstance()->hasAccess('tl_iso_shipping::enabled', 'alexf') + ) { return \Image::getHtml($icon) . ' '; } $href .= '&tid=' . $row['id'] . '&state=' . ($row['enabled'] ? '' : 1); - return '' . \Image::getHtml($icon, $label) . ' '; + return '' . \Image::getHtml($icon, $label) . ' '; } @@ -175,7 +181,9 @@ public function toggleVisibility($intId, $blnVisible) $this->checkPermission(); // Check permissions to publish - if (!\BackendUser::getInstance()->isAdmin && !\BackendUser::getInstance()->hasAccess('tl_iso_shipping::enabled', 'alexf')) { + if (!\BackendUser::getInstance()->isAdmin + && !\BackendUser::getInstance()->hasAccess('tl_iso_shipping::enabled', 'alexf') + ) { \System::log('Not enough permissions to enable/disable shipping method ID "' . $intId . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -192,7 +200,7 @@ public function toggleVisibility($intId, $blnVisible) } // Update the database - \Database::getInstance()->prepare("UPDATE tl_iso_shipping SET tstamp=" . time() . ", enabled='" . ($blnVisible ? 1 : '') . "' WHERE id=?")->execute($intId); + \Database::getInstance()->prepare('UPDATE tl_iso_shipping SET tstamp=' . time() . ", enabled='" . ($blnVisible ? 1 : '') . "' WHERE id=?")->execute($intId); $objVersions->create(); \System::log('A new version of record "tl_iso_shipping.id=' . $intId . '" has been created' . $this->getParentEntries('tl_iso_shipping', $intId), __METHOD__, TL_GENERAL); diff --git a/system/modules/isotope/library/Isotope/Backend/SubtableVersion.php b/system/modules/isotope/library/Isotope/Backend/SubtableVersion.php index 0769387f0d..909ddf5c0e 100644 --- a/system/modules/isotope/library/Isotope/Backend/SubtableVersion.php +++ b/system/modules/isotope/library/Isotope/Backend/SubtableVersion.php @@ -3,31 +3,57 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend; +use Contao\Template; -class SubtableVersion extends \Backend +class SubtableVersion { + private static $hiddenTables = [ + 'tl_iso_product_category', + 'tl_iso_product_price', + ]; + + /** + * Remove subtable versions from backend welcome screen. + * + * @param Template $template + */ + public function removeFromWelcomeScreen(Template $template) + { + if ('be_welcome' !== $template->getName()) { + return; + } + + $template->versions = array_filter( + $template->versions, + function ($version) { + return !in_array($version['fromTable'], static::$hiddenTables, true); + } + ); + } /** * Create initial version record if it does not exist - * @param string - * @param int - * @param string - * @param array + * + * @param string $strTable + * @param int $intId + * @param string $strSubtable + * @param array $arrData */ public static function initialize($strTable, $intId, $strSubtable, $arrData) { - $objVersion = \Database::getInstance()->prepare("SELECT COUNT(*) AS count FROM tl_version WHERE fromTable=? AND pid=?") - ->limit(1) - ->execute($strSubtable, $intId); + $objVersion = \Database::getInstance() + ->prepare('SELECT COUNT(*) AS count FROM tl_version WHERE fromTable=? AND pid=?') + ->limit(1) + ->execute($strSubtable, $intId) + ; if ($objVersion->count < 1) { static::create($strTable, $intId, $strSubtable, $arrData); @@ -36,16 +62,19 @@ public static function initialize($strTable, $intId, $strSubtable, $arrData) /** * Create a new subtable version record - * @param string - * @param int - * @param string - * @param array + * + * @param string $strTable + * @param int $intId + * @param string $strSubtable + * @param array $arrData */ public static function create($strTable, $intId, $strSubtable, $arrData) { - $objVersion = \Database::getInstance()->prepare("SELECT * FROM tl_version WHERE pid=? AND fromTable=? ORDER BY version DESC") - ->limit(1) - ->execute($intId, $strTable); + $objVersion = \Database::getInstance() + ->prepare('SELECT * FROM tl_version WHERE pid=? AND fromTable=? ORDER BY version DESC') + ->limit(1) + ->execute($intId, $strTable) + ; // Parent table must have a version if ($objVersion->numRows == 0) { @@ -55,21 +84,42 @@ public static function create($strTable, $intId, $strSubtable, $arrData) \Database::getInstance()->prepare("UPDATE tl_version SET active='' WHERE pid=? AND fromTable=?") ->execute($intId, $strSubtable); - \Database::getInstance()->prepare("INSERT INTO tl_version (pid, tstamp, version, fromTable, username, userid, description, editUrl, active, data) VALUES (?, ?, ?, ?, ?, ?, ?, ?, 1, ?)") - ->execute($objVersion->pid, $objVersion->tstamp, $objVersion->version, $strSubtable, $objVersion->username, $objVersion->userid, $objVersion->description, $objVersion->editUrl, serialize($arrData)); + \Database::getInstance() + ->prepare(/** @lang text */ 'INSERT INTO tl_version %s') + ->set( + [ + 'pid' => $objVersion->pid, + 'tstamp' => $objVersion->tstamp, + 'version' => $objVersion->version, + 'fromTable' => $strSubtable, + 'username' => $objVersion->username, + 'userid' => $objVersion->userid, + 'description' => $objVersion->description, + 'editUrl' => $objVersion->editUrl, + 'active' => '1', + 'data' => serialize($arrData), + ] + ) + ->execute() + ; } /** * Find a subtable version record - * @param string - * @param int - * @param string + * + * @param string $strTable + * @param int $intPid + * @param string $intVersion + * + * @return array|null */ public static function find($strTable, $intPid, $intVersion) { - $objVersion = \Database::getInstance()->prepare("SELECT data FROM tl_version WHERE fromTable=? AND pid=? AND version=?") - ->limit(1) - ->execute($strTable, $intPid, $intVersion); + $objVersion = \Database::getInstance() + ->prepare('SELECT data FROM tl_version WHERE fromTable=? AND pid=? AND version=?') + ->limit(1) + ->execute($strTable, $intPid, $intVersion) + ; if (!$objVersion->numRows) { return null; diff --git a/system/modules/isotope/library/Isotope/Backend/TaxClass/Callback.php b/system/modules/isotope/library/Isotope/Backend/TaxClass/Callback.php index 91bdbf4395..ce45793b82 100755 --- a/system/modules/isotope/library/Isotope/Backend/TaxClass/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/TaxClass/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\TaxClass; @@ -72,7 +71,7 @@ public function checkPermission() case 'copy': case 'delete': case 'show': - if (!in_array(\Input::get('id'), $root) || (\Input::get('act') == 'delete' && !$this->User->hasAccess('delete', 'iso_tax_classp'))) { + if (!in_array(\Input::get('id'), $root) || ('delete' === \Input::get('act') && !$this->User->hasAccess('delete', 'iso_tax_classp'))) { \System::log('Not enough permissions to ' . \Input::get('act') . ' tax class ID "' . \Input::get('id') . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -82,7 +81,7 @@ public function checkPermission() case 'deleteAll': case 'overrideAll': $session = $this->Session->getData(); - if (\Input::get('act') == 'deleteAll' && !$this->User->hasAccess('delete', 'iso_tax_classp')) { + if ('deleteAll' === \Input::get('act') && !$this->User->hasAccess('delete', 'iso_tax_classp')) { $session['CURRENT']['IDS'] = array(); } else { $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $root); @@ -112,7 +111,7 @@ public function checkPermission() */ public function copyTaxClass($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('create', 'iso_tax_classp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($this->User->isAdmin || $this->User->hasAccess('create', 'iso_tax_classp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } @@ -128,6 +127,6 @@ public function copyTaxClass($row, $href, $label, $title, $icon, $attributes) */ public function deleteTaxClass($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('delete', 'iso_tax_classp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($this->User->isAdmin || $this->User->hasAccess('delete', 'iso_tax_classp')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } } diff --git a/system/modules/isotope/library/Isotope/Backend/TaxRate/Callback.php b/system/modules/isotope/library/Isotope/Backend/TaxRate/Callback.php index 6a93662f75..c69955c41f 100755 --- a/system/modules/isotope/library/Isotope/Backend/TaxRate/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/TaxRate/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\TaxRate; @@ -28,7 +27,7 @@ class Callback extends Permission public function checkPermission() { // Do not run the permission check on other Isotope modules - if (\Input::get('mod') != 'tax_rate') { + if ('tax_rate' !== \Input::get('mod')) { return; } @@ -75,7 +74,9 @@ public function checkPermission() case 'copy': case 'delete': case 'show': - if (!in_array(\Input::get('id'), $root) || (\Input::get('act') == 'delete' && !$this->User->hasAccess('delete', 'iso_tax_ratep'))) { + if (!in_array(\Input::get('id'), $root) + || ('delete' === \Input::get('act') && !$this->User->hasAccess('delete', 'iso_tax_ratep')) + ) { \System::log('Not enough permissions to ' . \Input::get('act') . ' tax rate ID "' . \Input::get('id') . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } @@ -85,7 +86,7 @@ public function checkPermission() case 'deleteAll': case 'overrideAll': $session = $this->Session->getData(); - if (\Input::get('act') == 'deleteAll' && !$this->User->hasAccess('delete', 'iso_tax_ratep')) { + if ('deleteAll' === \Input::get('act') && !$this->User->hasAccess('delete', 'iso_tax_ratep')) { $session['CURRENT']['IDS'] = array(); } else { $session['CURRENT']['IDS'] = array_intersect($session['CURRENT']['IDS'], $root); @@ -150,7 +151,7 @@ public function addCurrencyRate($dc) */ public function copyTaxRate($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('create', 'iso_tax_ratep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($this->User->isAdmin || $this->User->hasAccess('create', 'iso_tax_ratep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } @@ -166,6 +167,6 @@ public function copyTaxRate($row, $href, $label, $title, $icon, $attributes) */ public function deleteTaxRate($row, $href, $label, $title, $icon, $attributes) { - return ($this->User->isAdmin || $this->User->hasAccess('delete', 'iso_tax_ratep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; + return ($this->User->isAdmin || $this->User->hasAccess('delete', 'iso_tax_ratep')) ? '' . \Image::getHtml($icon, $label) . ' ' : \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } } diff --git a/system/modules/isotope/library/Isotope/Backend/User/Callback.php b/system/modules/isotope/library/Isotope/Backend/User/Callback.php index ba2ccc3b6f..d277d2080d 100755 --- a/system/modules/isotope/library/Isotope/Backend/User/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/User/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\User; diff --git a/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php b/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php index 8c3d4a0e68..ee5cfb1a6e 100644 --- a/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php +++ b/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\BackendModule; @@ -57,7 +56,7 @@ public function generate() if (isset($session['iso_be_overview_legend'][$k])) { $arrGroup['collapse'] = !$session['iso_be_overview_legend'][$k]; - } elseif ($hide == 'hide') { + } elseif ('hide' === $hide) { $arrGroup['collapse'] = true; } @@ -72,8 +71,10 @@ public function generate() foreach ($this->arrModules as $arrGroup) { if (isset($arrGroup['modules'])) { foreach ($arrGroup['modules'] as $strModule => $arrConfig) { - if (is_array($arrConfig['tables']) && in_array(\Input::get('table'), $arrConfig['tables'])) { - \Controller::redirect($this->addToUrl('mod=' . $strModule)); + if (is_array($arrConfig['tables']) + && in_array(\Input::get('table'), $arrConfig['tables'], true) + ) { + \Controller::redirect(\Backend::addToUrl('mod=' . $strModule)); } } } @@ -104,7 +105,7 @@ protected function getModule($module) $dc = null; foreach ($this->arrModules as $arrGroup) { - if (!empty($arrGroup['modules']) && in_array($module, array_keys($arrGroup['modules']))) { + if (!empty($arrGroup['modules']) && array_key_exists($module, $arrGroup['modules'])) { $arrModule =& $arrGroup['modules'][$module]; } } @@ -123,7 +124,7 @@ protected function getModule($module) $strTable = \Input::get('table'); if ($strTable == '' && $arrModule['callback'] == '') { - \Controller::redirect($this->addToUrl('table=' . $arrModule['tables'][0])); + \Controller::redirect(\Backend::addToUrl('table=' . $arrModule['tables'][0])); } // Add module style sheet @@ -138,22 +139,20 @@ protected function getModule($module) // Redirect if the current table does not belong to the current module if ($strTable != '') { - if (!in_array($strTable, (array) $arrModule['tables'])) { + if (!in_array($strTable, (array) $arrModule['tables'], true)) { \System::log('Table "' . $strTable . '" is not allowed in module "' . $module . '"', __METHOD__, TL_ERROR); \Controller::redirect('contao/main.php?act=error'); } // Load the language and DCA file \System::loadLanguageFile($strTable); - $this->loadDataContainer($strTable); + \Controller::loadDataContainer($strTable); // Include all excluded fields which are allowed for the current user if ($GLOBALS['TL_DCA'][$strTable]['fields']) { foreach ($GLOBALS['TL_DCA'][$strTable]['fields'] as $k => $v) { - if ($v['exclude']) { - if (\BackendUser::getInstance()->hasAccess($strTable . '::' . $k, 'alexf')) { - $GLOBALS['TL_DCA'][$strTable]['fields'][$k]['exclude'] = false; - } + if ($v['exclude'] && \BackendUser::getInstance()->hasAccess($strTable . '::' . $k, 'alexf')) { + $GLOBALS['TL_DCA'][$strTable]['fields'][$k]['exclude'] = false; } } } @@ -176,7 +175,7 @@ protected function getModule($module) // Call module callback elseif (class_exists($arrModule['callback'])) { - /** @type \BackendModule $objCallback */ + /** @var \BackendModule $objCallback */ $objCallback = new $arrModule['callback']($dc, $arrModule); return $objCallback->generate(); @@ -189,9 +188,9 @@ protected function getModule($module) return $objCallback->$arrModule[\Input::get('key')][1]($dc, $strTable, $arrModule); } // Default action elseif (is_object($dc)) { - $act = \Input::get('act'); + $act = (string) \Input::get('act'); - if (!strlen($act) || $act == 'paste' || $act == 'select') { + if ('' === $act || 'paste' === $act || 'select' === $act) { $act = ($dc instanceof \listable) ? 'showAll' : 'edit'; } @@ -225,4 +224,4 @@ protected function getModule($module) return null; } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/BackendModule/InitializeListener.php b/system/modules/isotope/library/Isotope/BackendModule/InitializeListener.php new file mode 100644 index 0000000000..8fdcacfcef --- /dev/null +++ b/system/modules/isotope/library/Isotope/BackendModule/InitializeListener.php @@ -0,0 +1,39 @@ + $arrModules) { + foreach ($arrModules as $strModule => $arrConfig) { + if (is_array($arrConfig['tables'])) { + $GLOBALS['BE_MOD']['isotope']['iso_setup']['tables'] = array_merge( + $GLOBALS['BE_MOD']['isotope']['iso_setup']['tables'], + $arrConfig['tables'] + ); + } + } + } + } +} diff --git a/system/modules/isotope/library/Isotope/BackendModule/Integrity.php b/system/modules/isotope/library/Isotope/BackendModule/Integrity.php index 6bcb1f6935..dfd645b9da 100644 --- a/system/modules/isotope/library/Isotope/BackendModule/Integrity.php +++ b/system/modules/isotope/library/Isotope/BackendModule/Integrity.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\BackendModule; @@ -54,7 +53,7 @@ protected function compile() $arrTasks = array(); $blnReload = false; - if (\Input::post('FORM_SUBMIT') == 'tl_iso_integrity') { + if ('tl_iso_integrity' === \Input::post('FORM_SUBMIT')) { $arrTasks = (array) \Input::post('tasks'); } @@ -79,13 +78,13 @@ protected function compile() $blnError = $objCheck->hasError(); $blnRepair = $objCheck->canRepair(); - $arrChecks[] = array( - 'id' => $objCheck->getId(), - 'name' => $objCheck->getName(), + $arrChecks[] = [ + 'id' => $objCheck->getId(), + 'name' => $objCheck->getName(), 'description' => $objCheck->getDescription(), - 'error' => $blnError, - 'repair' => ($blnError && $blnRepair), - ); + 'error' => $blnError, + 'repair' => $blnError && $blnRepair, + ]; if ($blnError && $blnRepair) { $this->Template->hasFixes = true; diff --git a/system/modules/isotope/library/Isotope/BackendModule/Setup.php b/system/modules/isotope/library/Isotope/BackendModule/Setup.php index 3dfd30f7bd..b8cc2ec93d 100644 --- a/system/modules/isotope/library/Isotope/BackendModule/Setup.php +++ b/system/modules/isotope/library/Isotope/BackendModule/Setup.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\BackendModule; @@ -30,7 +29,7 @@ class Setup extends BackendOverview */ protected function getModules() { - $return = array(); + $return = []; $this->addIntroduction($return); @@ -73,7 +72,7 @@ protected function checkUserAccess($module) */ protected function compile() { - $this->Template->before = '

' . sprintf($GLOBALS['TL_LANG']['IMD']['config_module'], Isotope::VERSION) . '

'; + $this->Template->before = '

' . sprintf($GLOBALS['TL_LANG']['IMD']['config_module'], Isotope::VERSION) . '

'; parent::compile(); } @@ -81,8 +80,10 @@ protected function compile() /** * Adds first steps and fundraising hints + * + * @param array $return */ - protected function addIntroduction(&$return) + protected function addIntroduction(array &$return) { if (\BackendUser::getInstance()->isAdmin) { $objTemplate = new \BackendTemplate('be_iso_introduction'); diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/Address.php b/system/modules/isotope/library/Isotope/CheckoutStep/Address.php index d099b2b35b..eb459e17fa 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/Address.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/Address.php @@ -3,17 +3,19 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; use Haste\Generator\RowClass; use Isotope\Model\Address as AddressModel; +use Isotope\Module\Checkout; +use Isotope\Template; +use Model\Registry; abstract class Address extends CheckoutStep { @@ -26,35 +28,36 @@ abstract class Address extends CheckoutStep /** * Frontend template instance - * @var object + * @var Template|\stdClass */ protected $Template; - /** * Load data container and create template - * @param object + * + * @param Checkout $objModule */ - public function __construct($objModule) + public function __construct(Checkout $objModule) { parent::__construct($objModule); - \System::loadLanguageFile(\Isotope\Model\Address::getTable()); - $this->loadDataContainer(\Isotope\Model\Address::getTable()); + \System::loadLanguageFile(AddressModel::getTable()); + \Controller::loadDataContainer(AddressModel::getTable()); - $this->Template = new \Isotope\Template('iso_checkout_address'); + $this->Template = new Template('iso_checkout_address'); } /** * Generate the checkout step - * @return string + * + * @return string */ public function generate() { - $blnValidate = \Input::post('FORM_SUBMIT') == $this->objModule->getFormId(); + $blnValidate = \Input::post('FORM_SUBMIT') === $this->objModule->getFormId(); $this->Template->class = $this->getStepClass(); - $this->Template->tableless = $this->objModule->tableless; + $this->Template->tableless = isset($this->objModule->tableless) ? $this->objModule->tableless : true; $this->Template->options = $this->generateOptions($blnValidate); $this->Template->fields = $this->generateFields($blnValidate); @@ -63,7 +66,9 @@ public function generate() /** * Generate address options and return it as HTML string - * @param string + * + * @param bool $blnValidate + * * @return string */ protected function generateOptions($blnValidate = false) @@ -72,8 +77,7 @@ protected function generateOptions($blnValidate = false) $varValue = '0'; $arrOptions = $this->getAddressOptions(); - if (!empty($arrOptions)) { - + if (0 !== count($arrOptions)) { foreach ($arrOptions as $option) { if ($option['default']) { $varValue = $option['value']; @@ -82,17 +86,19 @@ protected function generateOptions($blnValidate = false) $strClass = $GLOBALS['TL_FFL']['radio']; - /** @type \Widget $objWidget */ - $objWidget = new $strClass(array( - 'id' => $this->getStepClass(), - 'name' => $this->getStepClass(), - 'mandatory' => true, - 'options' => $arrOptions, - 'value' => $varValue, - 'onclick' => "Isotope.toggleAddressFields(this, '" . $this->getStepClass() . "_new');", - 'storeValues' => true, - 'tableless' => true, - )); + /** @var \Widget $objWidget */ + $objWidget = new $strClass( + [ + 'id' => $this->getStepClass(), + 'name' => $this->getStepClass(), + 'mandatory' => true, + 'options' => $arrOptions, + 'value' => $varValue, + 'onclick' => "Isotope.toggleAddressFields(this, '" . $this->getStepClass() . "_new');", + 'storeValues' => true, + 'tableless' => true, + ] + ); // Validate input if ($blnValidate) { @@ -123,10 +129,7 @@ protected function generateOptions($blnValidate = false) $objAddress = $this->getAddressForOption($varValue, $blnValidate); - /** @type \Model\Registry $objModelRegistry */ - $objModelRegistry = \Model\Registry::getInstance(); - - if (null === $objAddress || !$objModelRegistry->isRegistered($objAddress)) { + if (null === $objAddress || !Registry::getInstance()->isRegistered($objAddress)) { $this->blnError = true; } elseif ($blnValidate) { $this->setAddress($objAddress); @@ -135,11 +138,12 @@ protected function generateOptions($blnValidate = false) return $strBuffer; } - /** * Generate the current step widgets. - * @param bool - * @return string|array + * + * @param bool $blnValidate + * + * @return string|array */ protected function generateFields($blnValidate = false) { @@ -157,7 +161,10 @@ protected function generateFields($blnValidate = false) /** * Validate input and return address data - * @return array + * + * @param bool $blnValidate + * + * @return array */ protected function validateFields($blnValidate) { @@ -165,21 +172,25 @@ protected function validateFields($blnValidate) $arrWidgets = $this->getWidgets(); foreach ($arrWidgets as $strName => $objWidget) { - $arrData = &$GLOBALS['TL_DCA'][\Isotope\Model\Address::getTable()]['fields'][$strName]; // Validate input if ($blnValidate) { $objWidget->validate(); - $varValue = $objWidget->value; + $varValue = (string) $objWidget->value; // Convert date formats into timestamps - if (strlen($varValue) && in_array($arrData['eval']['rgxp'], array('date', 'time', 'datim'))) { + if ('' !== $varValue && in_array($objWidget->dca_config['eval']['rgxp'], array('date', 'time', 'datim'), true)) { try { - $objDate = new \Date($varValue, $GLOBALS['TL_CONFIG'][$arrData['eval']['rgxp'] . 'Format']); + $objDate = new \Date($varValue, $GLOBALS['TL_CONFIG'][$objWidget->dca_config['eval']['rgxp'] . 'Format']); $varValue = $objDate->tstamp; } catch (\OutOfBoundsException $e) { - $objWidget->addError(sprintf($GLOBALS['TL_LANG']['ERR'][$arrData['eval']['rgxp']], $GLOBALS['TL_CONFIG'][$arrData['eval']['rgxp'] . 'Format'])); + $objWidget->addError( + sprintf( + $GLOBALS['TL_LANG']['ERR'][$objWidget->dca_config['eval']['rgxp']], + $GLOBALS['TL_CONFIG'][$objWidget->dca_config['eval']['rgxp'] . 'Format'] + ) + ); } } @@ -216,40 +227,61 @@ protected function getWidgets() if (null === $this->arrWidgets) { $this->arrWidgets = array(); $objAddress = $this->getDefaultAddress(); + $arrFields = $this->mergeFieldsWithDca($this->getAddressFields()); + + // !HOOK: modify address fields in checkout process + if (isset($GLOBALS['ISO_HOOKS']['modifyAddressFields']) + && is_array($GLOBALS['ISO_HOOKS']['modifyAddressFields']) + ) { + foreach ($GLOBALS['ISO_HOOKS']['modifyAddressFields'] as $callback) { + $this->import($callback[0]); + $arrFields = $this->$callback[0]->$callback[1]($arrFields, $objAddress, $this->getStepClass()); + } + } - foreach ($this->getAddressFields() as $field) { - - // Do not use reference, otherwise the billing address fields would affect shipping address fields - $arrData = $GLOBALS['TL_DCA'][\Isotope\Model\Address::getTable()]['fields'][$field['value']]; + foreach ($arrFields as $field) { - if (!is_array($arrData) || !$arrData['eval']['feEditable'] || !$field['enabled'] || ($arrData['eval']['membersOnly'] && FE_USER_LOGGED_IN !== true)) { + if (!is_array($field['dca']) + || !$field['enabled'] + || !$field['dca']['eval']['feEditable'] + || ($field['dca']['eval']['membersOnly'] && FE_USER_LOGGED_IN !== true) + ) { continue; } - /** @type \Widget $strClass */ - $strClass = $GLOBALS['TL_FFL'][$arrData['inputType']]; - // Continue if the class is not defined - if ($strClass == '' || !class_exists($strClass)) { + if (!array_key_exists($field['dca']['inputType'], $GLOBALS['TL_FFL']) + || !class_exists($GLOBALS['TL_FFL'][$field['dca']['inputType']]) + ) { continue; } - // Special field "country" - if ($field['value'] == 'country') { + /** @var \Widget $strClass */ + $strClass = $GLOBALS['TL_FFL'][$field['dca']['inputType']]; + + if ('country' === $field['value']) { + // Special field "country" $arrCountries = $this->getAddressCountries(); - $arrData['reference'] = $arrData['options']; - $arrData['options'] = array_values(array_intersect(array_keys($arrData['options']), $arrCountries)); - } // Special field type "conditionalselect" - elseif (strlen($arrData['eval']['conditionField'])) { - $arrData['eval']['conditionField'] = $this->getStepClass() . '_' . $arrData['eval']['conditionField']; + $field['dca']['reference'] = $field['dca']['options']; + $field['dca']['options'] = array_values(array_intersect(array_keys($field['dca']['options']), $arrCountries)); + } elseif (strlen($field['dca']['eval']['conditionField'])) { + // Special field type "conditionalselect" + $field['dca']['eval']['conditionField'] = $this->getStepClass() . '_' . $field['dca']['eval']['conditionField']; } - $objWidget = new $strClass($strClass::getAttributesFromDca($arrData, $this->getStepClass() . '_' . $field['value'], $objAddress->{$field['value']})); + $objWidget = new $strClass( + $strClass::getAttributesFromDca( + $field['dca'], + $this->getStepClass() . '_' . $field['value'], + $objAddress->{$field['value']} + ) + ); $objWidget->mandatory = $field['mandatory'] ? true : false; $objWidget->required = $objWidget->mandatory; - $objWidget->tableless = $this->objModule->tableless; + $objWidget->tableless = isset($this->objModule->tableless) ? $this->objModule->tableless : true; $objWidget->storeValues = true; + $objWidget->dca_config = $field['dca']; $this->arrWidgets[$field['value']] = $objWidget; } @@ -271,24 +303,24 @@ protected function getAddressOptions($arrFields = null) if (FE_USER_LOGGED_IN === true) { - /** @type AddressModel[] $arrAddresses */ + /** @var AddressModel[] $arrAddresses */ $arrAddresses = $this->getAddresses(); $arrCountries = $this->getAddressCountries(); - if (!empty($arrAddresses) && !empty($arrCountries)) { + if (0 !== count($arrAddresses) && 0 !== count($arrCountries)) { $objDefault = $this->getAddress(); foreach ($arrAddresses as $objAddress) { - if (!in_array($objAddress->country, $arrCountries)) { + if (!in_array($objAddress->country, $arrCountries, true)) { continue; } - $arrOptions[] = array( + $arrOptions[] = [ 'value' => $objAddress->id, 'label' => $objAddress->generate($arrFields), - 'default' => ($objAddress->id == $objDefault->id ? '1' : ''), - ); + 'default' => $objAddress->id == $objDefault->id ? '1' : '', + ]; } } } @@ -368,4 +400,29 @@ abstract protected function getAddress(); * @param AddressModel $objAddress */ abstract protected function setAddress(AddressModel $objAddress); + + /** + * Append DCA configuration to fields so it can be changed in hook. + * + * @param array $fieldConfig + * + * @return array + */ + private function mergeFieldsWithDca(array $fieldConfig) + { + $fields = []; + + foreach ($fieldConfig as $field) { + // Do not use reference, otherwise the billing address fields would affect shipping address fields + $dca = $GLOBALS['TL_DCA'][AddressModel::getTable()]['fields'][$field['value']]; + + if (is_array($dca)) { + $field['dca'] = $dca; + } + + $fields[$field['value']] = $field; + } + + return $fields; + } } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/BillingAddress.php b/system/modules/isotope/library/Isotope/CheckoutStep/BillingAddress.php index 7c00dd0495..8f02063882 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/BillingAddress.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/BillingAddress.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; @@ -16,15 +15,14 @@ use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; use Isotope\Model\Address as AddressModel; +use Isotope\Module\Checkout; class BillingAddress extends Address implements IsotopeCheckoutStep { /** - * Returns true to enable the module - * - * @return bool + * @inheritdoc */ public function isAvailable() { @@ -32,24 +30,39 @@ public function isAvailable() } /** - * Generate the checkout step - * - * @return string + * @inheritdoc + */ + public function isSkippable() + { + return true === FE_USER_LOGGED_IN && $this->objModule->canSkipStep('billing_address'); + } + + /** + * @inheritdoc */ public function generate() { - $blnRequiresPayment = Isotope::getCart()->requiresPayment(); + $requiresPayment = Isotope::getCart()->requiresPayment(); + + $this->Template->headline = $requiresPayment ? $GLOBALS['TL_LANG']['MSC']['billing_address'] : $GLOBALS['TL_LANG']['MSC']['customer_address']; + + if ($this->isSkippable()) { + $address = $this->getDefaultMemberAddress(); + $address->save(); - $this->Template->headline = $blnRequiresPayment ? $GLOBALS['TL_LANG']['MSC']['billing_address'] : $GLOBALS['TL_LANG']['MSC']['customer_address']; - $this->Template->message = (FE_USER_LOGGED_IN === true ? $GLOBALS['TL_LANG']['MSC'][($blnRequiresPayment ? 'billing' : 'customer') . '_address_message'] : $GLOBALS['TL_LANG']['MSC'][($blnRequiresPayment ? 'billing' : 'customer') . '_address_guest_message']); + Isotope::getCart()->setBillingAddress($address); + $this->Template->options = $address->generate(); + + return $this->Template->parse(); + } + + $this->Template->message = (FE_USER_LOGGED_IN === true ? $GLOBALS['TL_LANG']['MSC'][($requiresPayment ? 'billing' : 'customer') . '_address_message'] : $GLOBALS['TL_LANG']['MSC'][($requiresPayment ? 'billing' : 'customer') . '_address_guest_message']); return parent::generate(); } /** - * Return review information for last page of checkout - * - * @return string + * @inheritdoc */ public function review() { @@ -59,12 +72,15 @@ public function review() $objBillingAddress = $draftOrder->getBillingAddress(); $objShippingAddress = $draftOrder->getShippingAddress(); + $canEdit = !$this->isSkippable(); $strHeadline = $GLOBALS['TL_LANG']['MSC']['billing_address']; if ($blnRequiresPayment && $blnRequiresShipping && $objBillingAddress->id == $objShippingAddress->id) { $strHeadline = $GLOBALS['TL_LANG']['MSC']['billing_shipping_address']; + $canEdit = $canEdit || !$this->objModule->canSkipStep('shipping_address'); } elseif ($blnRequiresShipping && $objBillingAddress->id == $objShippingAddress->id) { $strHeadline = $GLOBALS['TL_LANG']['MSC']['shipping_address']; + $canEdit = $canEdit || !$this->objModule->canSkipStep('shipping_address'); } elseif (!$blnRequiresPayment && !$blnRequiresShipping) { $strHeadline = $GLOBALS['TL_LANG']['MSC']['customer_address']; } @@ -73,16 +89,12 @@ public function review() ( 'headline' => $strHeadline, 'info' => $objBillingAddress->generate(Isotope::getConfig()->getBillingFieldsConfig()), - 'edit' => \Isotope\Module\Checkout::generateUrlForStep('address'), + 'edit' => $canEdit ? Checkout::generateUrlForStep('address') : '', )); } /** - * Return array of tokens for notification - * - * @param IsotopeProductCollection $objCollection - * - * @return array + * @inheritdoc */ public function getNotificationTokens(IsotopeProductCollection $objCollection) { @@ -90,34 +102,25 @@ public function getNotificationTokens(IsotopeProductCollection $objCollection) } /** - * Get available address options - * - * @param array $arrFields - * - * @return array + * @inheritdoc */ protected function getAddressOptions($arrFields = null) { $arrOptions = parent::getAddressOptions(Isotope::getConfig()->getBillingFieldsConfig()); - if (!empty($arrOptions)) { - $arrOptions[] = array( + if (0 !== count($arrOptions)) { + $arrOptions[] = [ 'value' => '0', 'label' => &$GLOBALS['TL_LANG']['MSC']['createNewAddressLabel'], - 'default' => ($this->getDefaultAddress()->id == Isotope::getCart()->billing_address_id), - ); + 'default' => $this->getDefaultAddress()->id == Isotope::getCart()->billing_address_id, + ]; } return $arrOptions; } /** - * Get address object for a selected option - * - * @param string $varValue - * @param bool $blnValidate - * - * @return AddressModel + * @inheritdoc */ protected function getAddressForOption($varValue, $blnValidate) { @@ -140,9 +143,7 @@ protected function getAddressForOption($varValue, $blnValidate) } /** - * Get default address for this collection and address type - * - * @return Address + * @return AddressModel */ protected function getDefaultAddress() { @@ -160,9 +161,7 @@ protected function getDefaultAddress() } /** - * Get field configuration for this address type - * - * @return array + * @inheritdoc */ protected function getAddressFields() { @@ -170,9 +169,7 @@ protected function getAddressFields() } /** - * Get allowed countries for this address type - * - * @return array + * @inheritdoc */ protected function getAddressCountries() { @@ -180,9 +177,7 @@ protected function getAddressCountries() } /** - * Get the current address (from Cart) for this address type - * - * @return Address + * @inheritdoc */ protected function getAddress() { @@ -196,12 +191,31 @@ protected function getAddress() } /** - * Set new address in cart - * - * @param AddressModel $objAddress + * @inheritdoc */ protected function setAddress(AddressModel $objAddress) { Isotope::getCart()->setBillingAddress($objAddress); } + + /** + * @return AddressModel + */ + private function getDefaultMemberAddress() + { + $address = $this->getDefaultAddress(); + + if ($address->id > 0 && true === FE_USER_LOGGED_IN) { + $data = AddressModel::getAddressDataForMember( + Isotope::getCart()->getMember(), + Isotope::getConfig()->getBillingFields() + ); + + foreach ($data as $k => $v) { + $address->{$k} = $v; + } + } + + return $address; + } } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/CheckoutStep.php b/system/modules/isotope/library/Isotope/CheckoutStep/CheckoutStep.php index 781ca89043..1696bddb8e 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/CheckoutStep.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/CheckoutStep.php @@ -3,22 +3,22 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; +use Isotope\Module\Checkout; abstract class CheckoutStep extends \Controller { /** * Checkout module instance - * @var \Isotope\Module\Checkout + * @var Checkout */ protected $objModule; @@ -28,8 +28,12 @@ abstract class CheckoutStep extends \Controller */ protected $blnError = false; - - public function __construct(\Isotope\Module\Checkout $objModule) + /** + * Constructor. + * + * @param Checkout $objModule + */ + public function __construct(Checkout $objModule) { parent::__construct(); @@ -45,6 +49,15 @@ public function hasError() return $this->blnError; } + /** + * Check if the checkout step is skippable + * @return bool + */ + public function isSkippable() + { + return false; + } + /** * Return short name of current class (e.g. for CSS) * @return string diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php index 44a16023b7..85c9f21794 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; @@ -40,8 +39,8 @@ public function isAvailable() */ public function generate() { - $this->objForm = new Form($this->objModule->getFormId(), 'POST', function ($haste) { - return \Input::post('FORM_SUBMIT') === $haste->getFormId(); + $this->objForm = new Form($this->objModule->getFormId(), 'POST', function (Form $form) { + return \Input::post('FORM_SUBMIT') === $form->getFormId(); }); @@ -52,7 +51,9 @@ public function generate() throw new \InvalidArgumentException('Order condition form "' . $this->objModule->iso_order_conditions . '" not found.'); } - $this->objForm->setTableless($objFormConfig->tableless); + if (isset($objFormConfig->tableless)) { + $this->objForm->setTableless($objFormConfig->tableless); + } $this->objForm->addFieldsFromFormGenerator( $this->objModule->iso_order_conditions, @@ -129,8 +130,10 @@ public function review() /** * Return array of tokens for notification - * @param IsotopeProductCollection - * @return array + * + * @param IsotopeProductCollection $objCollection + * + * @return array */ public function getNotificationTokens(IsotopeProductCollection $objCollection) { diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsAfterProducts.php b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsAfterProducts.php index d00cfcd360..1d8664774f 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsAfterProducts.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsAfterProducts.php @@ -3,28 +3,27 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; use Isotope\Interfaces\IsotopeCheckoutStep; - +/** + * OrderConditionsAfterProducts checkout step shows conditions form after the product list. + */ class OrderConditionsAfterProducts extends OrderConditions implements IsotopeCheckoutStep { - /** - * Returns true if order conditions should be after products - * @return bool + * @inheritdoc */ public function isAvailable() { - if ($this->objModule->iso_order_conditions_position != 'after') { + if ('after' !== $this->objModule->iso_order_conditions_position) { return false; } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsBeforeProducts.php b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsBeforeProducts.php index d2137b37f4..12386036d4 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsBeforeProducts.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsBeforeProducts.php @@ -3,28 +3,27 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; use Isotope\Interfaces\IsotopeCheckoutStep; - +/** + * OrderConditionsBeforeProducts checkout step shows conditions form before the product list. + */ class OrderConditionsBeforeProducts extends OrderConditions implements IsotopeCheckoutStep { - /** - * Returns true if order conditions should be before products - * @return bool + * @inheritdoc */ public function isAvailable() { - if ($this->objModule->iso_order_conditions_position != 'before') { + if ('before' !== $this->objModule->iso_order_conditions_position) { return false; } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsOnTop.php b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsOnTop.php index 54b28cbdb6..e65b0483d8 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsOnTop.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditionsOnTop.php @@ -3,28 +3,27 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; use Isotope\Interfaces\IsotopeCheckoutStep; - +/** + * OrderConditionsOnTop checkout step shows conditions form before info like address and payment/shipping methods. + */ class OrderConditionsOnTop extends OrderConditions implements IsotopeCheckoutStep { - /** - * Returns true if order conditions should be above everything - * @return bool + * @inheritdoc */ public function isAvailable() { - if ($this->objModule->iso_order_conditions_position != 'top') { + if ('top' !== $this->objModule->iso_order_conditions_position) { return false; } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/OrderInfo.php b/system/modules/isotope/library/Isotope/CheckoutStep/OrderInfo.php index dc0f27c823..d9d453a1f6 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/OrderInfo.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/OrderInfo.php @@ -3,25 +3,25 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; use Isotope\Interfaces\IsotopeCheckoutStep; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Template; - +/** + * OrderInfo checkout steps shows a summary of all other checkout steps (e.g. addresses, payment and shipping method). + */ class OrderInfo extends CheckoutStep implements IsotopeCheckoutStep { - /** - * Returns true to enable the module - * @return bool + * @inheritdoc */ public function isAvailable() { @@ -29,12 +29,12 @@ public function isAvailable() } /** - * Generate the checkout step - * @return string + * @inheritdoc */ public function generate() { - $objTemplate = new \Isotope\Template('iso_checkout_order_info'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_checkout_order_info'); $objTemplate->headline = $GLOBALS['TL_LANG']['MSC']['order_review']; $objTemplate->message = $GLOBALS['TL_LANG']['MSC']['order_review_message']; $objTemplate->summary = $GLOBALS['TL_LANG']['MSC']['cartSummary']; @@ -45,8 +45,7 @@ public function generate() } /** - * Return review information for last page of checkout - * @return string + * @inheritdoc */ public function review() { @@ -54,12 +53,10 @@ public function review() } /** - * Return array of tokens for notification - * @param IsotopeProductCollection - * @return array + * @inheritdoc */ public function getNotificationTokens(IsotopeProductCollection $objCollection) { - return array(); + return []; } } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/OrderProducts.php b/system/modules/isotope/library/Isotope/CheckoutStep/OrderProducts.php index 61da09ee30..2d15c595e7 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/OrderProducts.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/OrderProducts.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; @@ -15,16 +14,14 @@ use Isotope\Interfaces\IsotopeCheckoutStep; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; +use Isotope\Model\ProductCollection; use Isotope\Template; class OrderProducts extends CheckoutStep implements IsotopeCheckoutStep { - /** - * Returns true to enable the module - * - * @return bool + * @inheritdoc */ public function isAvailable() { @@ -32,9 +29,7 @@ public function isAvailable() } /** - * Generate the checkout step - * - * @return string + * @inheritdoc */ public function generate() { @@ -45,7 +40,7 @@ public function generate() $objTemplate, array( 'gallery' => $this->objModule->iso_gallery, - 'sorting' => $objOrder->getItemsSortingCallable($this->objModule->iso_orderCollectionBy), + 'sorting' => ProductCollection::getItemsSortingCallable($this->objModule->iso_orderCollectionBy), ) ); @@ -55,7 +50,7 @@ public function generate() /** * Cart product view does not have review information * - * @return string + * @inheritdoc */ public function review() { @@ -63,14 +58,10 @@ public function review() } /** - * Return array of tokens for notification - * - * @param IsotopeProductCollection $objCollection - * - * @return array + * @inheritdoc */ public function getNotificationTokens(IsotopeProductCollection $objCollection) { - return array(); + return []; } } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/PaymentMethod.php b/system/modules/isotope/library/Isotope/CheckoutStep/PaymentMethod.php index afbb2e0e32..0093d77b74 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/PaymentMethod.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/PaymentMethod.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; @@ -16,14 +15,30 @@ use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; use Isotope\Model\Payment; +use Isotope\Module\Checkout; +use Isotope\Template; - +/** + * PaymentMethod checkout step lets the user choose a payment method + */ class PaymentMethod extends CheckoutStep implements IsotopeCheckoutStep { + /** + * Payment modules + * @var array + */ + private $modules; + + /** + * Payment options + * @var array + */ + private $options; /** * Returns true if the current cart has payment - * @return bool + * + * @inheritdoc */ public function isAvailable() { @@ -31,64 +46,33 @@ public function isAvailable() } /** - * Generate the checkout step - * @return string + * @inheritdoc */ - public function generate() + public function isSkippable() { - $arrModules = array(); - $arrOptions = array(); - - $arrIds = deserialize($this->objModule->iso_payment_modules); - - if (!empty($arrIds) && is_array($arrIds)) { - $arrColumns = array('id IN (' . implode(',', $arrIds) . ')'); - - if (BE_USER_LOGGED_IN !== true) { - $arrColumns[] = "enabled='1'"; - } - - /** @type Payment[] $objModules */ - $objModules = Payment::findBy($arrColumns, null, array('order' => \Database::getInstance()->findInSet('id', $arrIds))); - - if (null !== $objModules) { - foreach ($objModules as $objModule) { - - if (!$objModule->isAvailable()) { - continue; - } - - $strLabel = $objModule->getLabel(); - $fltPrice = $objModule->getPrice(); - - if ($fltPrice != 0) { - if ($objModule->isPercentage()) { - $strLabel .= ' (' . $objModule->getPercentageLabel() . ')'; - } - - $strLabel .= ': ' . Isotope::formatPriceWithCurrency($fltPrice); - } + if (!$this->objModule->canSkipStep('payment_method')) { + return false; + } - if ($objModule->note != '') { - $strLabel .= '' . $objModule->note . ''; - } + $this->initializeModules(); - $arrOptions[] = array( - 'value' => $objModule->id, - 'label' => $strLabel, - ); + return 1 === count($this->options); + } - $arrModules[$objModule->id] = $objModule; - } - } - } + /** + * @inheritdoc + */ + public function generate() + { + $this->initializeModules(); - if (empty($arrModules)) { + if (empty($this->modules)) { $this->blnError = true; \System::log('No payment methods available for cart ID ' . Isotope::getCart()->id, __METHOD__, TL_ERROR); - $objTemplate = new \Isotope\Template('mod_message'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('mod_message'); $objTemplate->class = 'payment_method'; $objTemplate->hl = 'h2'; $objTemplate->headline = $GLOBALS['TL_LANG']['MSC']['payment_method']; @@ -100,20 +84,20 @@ public function generate() $strClass = $GLOBALS['TL_FFL']['radio']; - /** @type \Widget $objWidget */ + /** @var \Widget $objWidget */ $objWidget = new $strClass(array( 'id' => $this->getStepClass(), 'name' => $this->getStepClass(), 'mandatory' => true, - 'options' => $arrOptions, + 'options' => $this->options, 'value' => Isotope::getCart()->payment_id, 'storeValues' => true, 'tableless' => true, )); // If there is only one payment method, mark it as selected by default - if (count($arrModules) == 1) { - $objModule = reset($arrModules); + if (count($this->modules) == 1) { + $objModule = reset($this->modules); $objWidget->value = $objModule->id; Isotope::getCart()->setPaymentMethod($objModule); } @@ -122,20 +106,21 @@ public function generate() $objWidget->validate(); if (!$objWidget->hasErrors()) { - Isotope::getCart()->setPaymentMethod($arrModules[$objWidget->value]); + Isotope::getCart()->setPaymentMethod($this->modules[$objWidget->value]); } } - $objTemplate = new \Isotope\Template('iso_checkout_payment_method'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_checkout_payment_method'); - if (!Isotope::getCart()->hasPayment() || !isset($arrModules[Isotope::getCart()->payment_id])) { + if (!Isotope::getCart()->hasPayment() || !isset($this->modules[Isotope::getCart()->payment_id])) { $this->blnError = true; } $objTemplate->headline = $GLOBALS['TL_LANG']['MSC']['payment_method']; $objTemplate->message = $GLOBALS['TL_LANG']['MSC']['payment_method_message']; $objTemplate->options = $objWidget->parse(); - $objTemplate->paymentMethods = $arrModules; + $objTemplate->paymentMethods = $this->modules; return $objTemplate->parse(); } @@ -150,19 +135,74 @@ public function review() 'payment_method' => array( 'headline' => $GLOBALS['TL_LANG']['MSC']['payment_method'], 'info' => Isotope::getCart()->getDraftOrder()->getPaymentMethod()->checkoutReview(), - 'note' => Isotope::getCart()->getDraftOrder()->getPaymentMethod()->note, - 'edit' => \Isotope\Module\Checkout::generateUrlForStep('payment'), + 'note' => Isotope::getCart()->getDraftOrder()->getPaymentMethod()->getNote(), + 'edit' => $this->isSkippable() ? '' : Checkout::generateUrlForStep('payment'), ), ); } /** - * Return array of tokens for notification - * @param IsotopeProductCollection - * @return array + * @inheritdoc */ public function getNotificationTokens(IsotopeProductCollection $objCollection) { return array(); } + + /** + * Initialize modules and options + */ + private function initializeModules() + { + if (null !== $this->modules && null !== $this->options) { + return; + } + + $this->modules = array(); + $this->options = array(); + + $arrIds = deserialize($this->objModule->iso_payment_modules); + + if (!empty($arrIds) && is_array($arrIds)) { + $arrColumns = array('id IN (' . implode(',', $arrIds) . ')'); + + if (BE_USER_LOGGED_IN !== true) { + $arrColumns[] = "enabled='1'"; + } + + /** @var Payment[] $objModules */ + $objModules = Payment::findBy($arrColumns, null, array('order' => \Database::getInstance()->findInSet('id', $arrIds))); + + if (null !== $objModules) { + foreach ($objModules as $objModule) { + + if (!$objModule->isAvailable()) { + continue; + } + + $strLabel = $objModule->getLabel(); + $fltPrice = $objModule->getPrice(); + + if ($fltPrice != 0) { + if ($objModule->isPercentage()) { + $strLabel .= ' (' . $objModule->getPercentageLabel() . ')'; + } + + $strLabel .= ': ' . Isotope::formatPriceWithCurrency($fltPrice); + } + + if ($objModule->note != '') { + $strLabel .= '' . $objModule->note . ''; + } + + $this->options[] = array( + 'value' => $objModule->id, + 'label' => $strLabel, + ); + + $this->modules[$objModule->id] = $objModule; + } + } + } + } } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/ShippingAddress.php b/system/modules/isotope/library/Isotope/CheckoutStep/ShippingAddress.php index d79ac6c95c..9d54889cc6 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/ShippingAddress.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/ShippingAddress.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; @@ -16,32 +15,43 @@ use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; use Isotope\Model\Address as AddressModel; +use Isotope\Module\Checkout; - +/** + * ShippingAddress checkout step lets the user enter a shipping address + */ class ShippingAddress extends Address implements IsotopeCheckoutStep { /** * Returns true if the current cart has shipping * - * @return bool + * @inheritdoc */ public function isAvailable() { - if (!Isotope::getCart()->requiresShipping() || count(Isotope::getConfig()->getShippingFields()) == 0) { - return false; - } + return Isotope::getCart()->requiresShipping() && count(Isotope::getConfig()->getShippingFields()) > 0; + } - return true; + /** + * @inheritdoc + */ + public function isSkippable() + { + return $this->objModule->canSkipStep('shipping_address'); } /** - * Generate the checkout step - * - * @return string + * @inheritdoc */ public function generate() { + if ($this->isSkippable()) { + Isotope::getCart()->setShippingAddress(Isotope::getCart()->getBillingAddress()); + + return ''; + } + $this->Template->headline = $GLOBALS['TL_LANG']['MSC']['shipping_address']; $this->Template->message = $GLOBALS['TL_LANG']['MSC']['shipping_address_message']; @@ -49,9 +59,7 @@ public function generate() } /** - * Return review information for last page of checkout - * - * @return string + * @inheritdoc */ public function review() { @@ -65,16 +73,12 @@ public function review() ( 'headline' => $GLOBALS['TL_LANG']['MSC']['shipping_address'], 'info' => $objAddress->generate(Isotope::getConfig()->getShippingFieldsConfig()), - 'edit' => \Isotope\Module\Checkout::generateUrlForStep('address'), + 'edit' => $this->isSkippable() ? '' : Checkout::generateUrlForStep('address'), )); } /** - * Return array of tokens for notification - * - * @param IsotopeProductCollection $objCollection - * - * @return array + * @inheritdoc */ public function getNotificationTokens(IsotopeProductCollection $objCollection) { @@ -92,17 +96,20 @@ protected function getAddressOptions($arrFields = null) { $arrOptions = parent::getAddressOptions(Isotope::getConfig()->getShippingFieldsConfig()); - array_insert($arrOptions, 0, array(array( - 'value' => '-1', - 'label' => (Isotope::getCart()->requiresPayment() ? $GLOBALS['TL_LANG']['MSC']['useBillingAddress'] : $GLOBALS['TL_LANG']['MSC']['useCustomerAddress']), - 'default' => '1', - ))); + array_unshift( + $arrOptions, + [ + 'value' => '-1', + 'label' => Isotope::getCart()->requiresPayment() ? $GLOBALS['TL_LANG']['MSC']['useBillingAddress'] : $GLOBALS['TL_LANG']['MSC']['useCustomerAddress'], + 'default' => '1', + ] + ); - $arrOptions[] = array( + $arrOptions[] = [ 'value' => '0', 'label' => $GLOBALS['TL_LANG']['MSC']['differentShippingAddress'], - 'default' => ($this->getDefaultAddress()->id == Isotope::getCart()->shipping_address_id), - ); + 'default' => $this->getDefaultAddress()->id == Isotope::getCart()->shipping_address_id, + ]; return $arrOptions; } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/ShippingMethod.php b/system/modules/isotope/library/Isotope/CheckoutStep/ShippingMethod.php index 513d0c52f6..60b5fee654 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/ShippingMethod.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/ShippingMethod.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\CheckoutStep; @@ -16,14 +15,30 @@ use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; use Isotope\Model\Shipping; +use Isotope\Module\Checkout; +use Isotope\Template; - +/** + * ShippingMethod checkout step lets the user choose a shipping method. + */ class ShippingMethod extends CheckoutStep implements IsotopeCheckoutStep { + /** + * Shipping modules. + * @var array + */ + private $modules; + + /** + * Shipping options. + * @var array + */ + private $options; /** * Returns true if the current cart has shipping - * @return bool + * + * @inheritdoc */ public function isAvailable() { @@ -31,63 +46,35 @@ public function isAvailable() } /** - * Generate the checkout step - * @return string + * Skip the checkout step if only one option is available + * + * @inheritdoc */ - public function generate() + public function isSkippable() { - $arrModules = array(); - $arrOptions = array(); - - $arrIds = deserialize($this->objModule->iso_shipping_modules); - - if (!empty($arrIds) && is_array($arrIds)) { - $arrColumns = array('id IN (' . implode(',', $arrIds) . ')'); - - if (BE_USER_LOGGED_IN !== true) { - $arrColumns[] = "enabled='1'"; - } - - $objModules = Shipping::findBy($arrColumns, null, array('order' => \Database::getInstance()->findInSet('id', $arrIds))); - - if (null !== $objModules) { - foreach ($objModules as $objModule) { - - if (!$objModule->isAvailable()) { - continue; - } - - $strLabel = $objModule->getLabel(); - $fltPrice = $objModule->getPrice(); - - if ($fltPrice != 0) { - if ($objModule->isPercentage()) { - $strLabel .= ' (' . $objModule->getPercentageLabel() . ')'; - } + if (!$this->objModule->canSkipStep('shipping_method')) { + return false; + } - $strLabel .= ': ' . Isotope::formatPriceWithCurrency($fltPrice); - } + $this->initializeModules(); - if ($objModule->note != '') { - $strLabel .= '' . $objModule->note . ''; - } - - $arrOptions[] = array( - 'value' => $objModule->id, - 'label' => $strLabel, - ); + return 1 === count($this->options); + } - $arrModules[$objModule->id] = $objModule; - } - } - } + /** + * @inheritdoc + */ + public function generate() + { + $this->initializeModules(); - if (empty($arrModules)) { + if (empty($this->modules)) { $this->blnError = true; \System::log('No shipping methods available for cart ID ' . Isotope::getCart()->id, __METHOD__, TL_ERROR); - $objTemplate = new \Isotope\Template('mod_message'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('mod_message'); $objTemplate->class = 'shipping_method'; $objTemplate->hl = 'h2'; $objTemplate->headline = $GLOBALS['TL_LANG']['MSC']['shipping_method']; @@ -97,20 +84,22 @@ public function generate() return $objTemplate->parse(); } - $strClass = $GLOBALS['TL_FFL']['radio']; - $objWidget = new $strClass(array( - 'id' => $this->getStepClass(), - 'name' => $this->getStepClass(), - 'mandatory' => true, - 'options' => $arrOptions, - 'value' => Isotope::getCart()->shipping_id, - 'storeValues' => true, - 'tableless' => true, - )); + /** @var \Widget $objWidget */ + $objWidget = new $GLOBALS['TL_FFL']['radio']( + [ + 'id' => $this->getStepClass(), + 'name' => $this->getStepClass(), + 'mandatory' => true, + 'options' => $this->options, + 'value' => Isotope::getCart()->shipping_id, + 'storeValues' => true, + 'tableless' => true, + ] + ); // If there is only one shipping method, mark it as selected by default - if (count($arrModules) == 1) { - $objModule = reset($arrModules); + if (count($this->modules) === 1) { + $objModule = reset($this->modules); $objWidget->value = $objModule->id; Isotope::getCart()->setShippingMethod($objModule); } @@ -119,27 +108,26 @@ public function generate() $objWidget->validate(); if (!$objWidget->hasErrors()) { - Isotope::getCart()->setShippingMethod($arrModules[$objWidget->value]); + Isotope::getCart()->setShippingMethod($this->modules[$objWidget->value]); } } - $objTemplate = new \Isotope\Template('iso_checkout_shipping_method'); - - if (!Isotope::getCart()->hasShipping() || !isset($arrModules[Isotope::getCart()->shipping_id])) { + if (!Isotope::getCart()->hasShipping() || !isset($this->modules[Isotope::getCart()->shipping_id])) { $this->blnError = true; } + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_checkout_shipping_method'); $objTemplate->headline = $GLOBALS['TL_LANG']['MSC']['shipping_method']; $objTemplate->message = $GLOBALS['TL_LANG']['MSC']['shipping_method_message']; $objTemplate->options = $objWidget->parse(); - $objTemplate->shippingMethods = $arrModules; + $objTemplate->shippingMethods = $this->modules; return $objTemplate->parse(); } /** - * Return review information for last page of checkout - * @return string + * @inheritdoc */ public function review() { @@ -147,19 +135,76 @@ public function review() 'shipping_method' => array( 'headline' => $GLOBALS['TL_LANG']['MSC']['shipping_method'], 'info' => Isotope::getCart()->getDraftOrder()->getShippingMethod()->checkoutReview(), - 'note' => Isotope::getCart()->getDraftOrder()->getShippingMethod()->note, - 'edit' => \Isotope\Module\Checkout::generateUrlForStep('shipping'), + 'note' => Isotope::getCart()->getDraftOrder()->getShippingMethod()->getNote(), + 'edit' => $this->isSkippable() ? '' : Checkout::generateUrlForStep('shipping'), ), ); } /** - * Return array of tokens for notification - * @param IsotopeProductCollection - * @return array + * @inheritdoc */ public function getNotificationTokens(IsotopeProductCollection $objCollection) { return array(); } + + /** + * Initialize modules and options + */ + private function initializeModules() + { + if (null !== $this->modules && null !== $this->options) { + return; + } + + $this->modules = array(); + $this->options = array(); + + $arrIds = deserialize($this->objModule->iso_shipping_modules); + + if (!empty($arrIds) && is_array($arrIds)) { + $arrColumns = array('id IN (' . implode(',', $arrIds) . ')'); + + if (true !== BE_USER_LOGGED_IN) { + $arrColumns[] = "enabled='1'"; + } + + /** @var Shipping[] $objModules */ + $objModules = Shipping::findBy( + $arrColumns, null, array('order' => \Database::getInstance()->findInSet('id', $arrIds)) + ); + + if (null !== $objModules) { + foreach ($objModules as $objModule) { + + if (!$objModule->isAvailable()) { + continue; + } + + $strLabel = $objModule->getLabel(); + $fltPrice = $objModule->getPrice(); + + if ($fltPrice != 0) { + if ($objModule->isPercentage()) { + $strLabel .= ' (' . $objModule->getPercentageLabel() . ')'; + } + + $strLabel .= ': ' . Isotope::formatPriceWithCurrency($fltPrice); + } + + if ($objModule->note != '') { + $strLabel .= '' . $objModule->note . ''; + } + + $this->options[] = array( + 'value' => $objModule->id, + 'label' => $strLabel, + ); + + $this->modules[$objModule->id] = $objModule; + } + } + } + } } diff --git a/system/modules/isotope/library/Isotope/Collection/AttributeOption.php b/system/modules/isotope/library/Isotope/Collection/AttributeOption.php index b66a32ae65..a2727df0bf 100644 --- a/system/modules/isotope/library/Isotope/Collection/AttributeOption.php +++ b/system/modules/isotope/library/Isotope/Collection/AttributeOption.php @@ -3,16 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Collection; use Isotope\Interfaces\IsotopeProduct; +use Model\Collection; /** @@ -21,7 +21,7 @@ * @method \Isotope\Model\AttributeOption[] getModels() * @method \Isotope\Model\AttributeOption current() */ -class AttributeOption extends \Model\Collection +class AttributeOption extends Collection { /** diff --git a/system/modules/isotope/library/Isotope/Collection/ProductPrice.php b/system/modules/isotope/library/Isotope/Collection/ProductPrice.php index e0ce9f087d..951a20ceb2 100644 --- a/system/modules/isotope/library/Isotope/Collection/ProductPrice.php +++ b/system/modules/isotope/library/Isotope/Collection/ProductPrice.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Collection; diff --git a/system/modules/isotope/library/Isotope/ContaoManager/Plugin.php b/system/modules/isotope/library/Isotope/ContaoManager/Plugin.php new file mode 100644 index 0000000000..3cf553f115 --- /dev/null +++ b/system/modules/isotope/library/Isotope/ContaoManager/Plugin.php @@ -0,0 +1,26 @@ + + */ +class Plugin implements BundlePluginInterface +{ + /** + * @inheritdoc + */ + public function getBundles(ParserInterface $parser) + { + return array_merge( + $parser->parse('isotope', 'ini'), + $parser->parse('isotope_reports', 'ini'), + $parser->parse('isotope_rules', 'ini') + ); + } +} diff --git a/system/modules/isotope/library/Isotope/ContentElement/ContentElement.php b/system/modules/isotope/library/Isotope/ContentElement/ContentElement.php index 808b6bec5b..d2ef38ff05 100755 --- a/system/modules/isotope/library/Isotope/ContentElement/ContentElement.php +++ b/system/modules/isotope/library/Isotope/ContentElement/ContentElement.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\ContentElement; diff --git a/system/modules/isotope/library/Isotope/Currency.php b/system/modules/isotope/library/Isotope/Currency.php index 1696f0277f..82ac777c8f 100644 --- a/system/modules/isotope/library/Isotope/Currency.php +++ b/system/modules/isotope/library/Isotope/Currency.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; diff --git a/system/modules/isotope/library/Isotope/DatabaseUpdater.php b/system/modules/isotope/library/Isotope/DatabaseUpdater.php index 3bec344161..190d4fc44f 100644 --- a/system/modules/isotope/library/Isotope/DatabaseUpdater.php +++ b/system/modules/isotope/library/Isotope/DatabaseUpdater.php @@ -3,25 +3,21 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; +use Database\Installer; /** - * Class Isotope\DatabaseUpdater - * - * Provide methods to send Isotope e-mails. - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss + * DatabaseUpdater automatically performs safe or necessary database updates on config changes. + * Safe changes include adding new fields, altering field config and dropping indexes. */ -class DatabaseUpdater extends \Database\Installer +class DatabaseUpdater extends Installer { /** diff --git a/system/modules/isotope/library/Isotope/EventListener/ChangeLanguageListener.php b/system/modules/isotope/library/Isotope/EventListener/ChangeLanguageListener.php new file mode 100644 index 0000000000..5758f64d3c --- /dev/null +++ b/system/modules/isotope/library/Isotope/EventListener/ChangeLanguageListener.php @@ -0,0 +1,88 @@ +getUid()) !== null) { + $event->getUrlParameterBag()->setQueryParameter('uid', $uid); + } else if (($step = $this->getCheckoutStep()) !== null) { + $event->getUrlParameterBag()->setUrlAttribute('step', $step); + } else if (($product = $this->getProductAlias()) !== null) { + $event->getUrlParameterBag()->setUrlAttribute('product', $product); + } + } + + /** + * Hook callback for ChangeLanguage extension version 2 to support language switching on product reader page + * + * @param array $arrGet + * + * @return array + */ + public function onTranslateUrlParameters($arrGet) + { + if (($uid = $this->getUid()) !== null) { + $arrGet['get']['uid'] = $uid; + } else if (($step = $this->getCheckoutStep()) !== null) { + $arrGet['url']['step'] = $step; + } else if (($product = $this->getProductAlias()) !== null) { + $arrGet['url']['product'] = $product; + } + + return $arrGet; + } + + /** + * @return null|string + */ + private function getUid() + { + $uid = (string) Input::get('uid', false, true); + + return '' === $uid ? null : $uid; + } + + /** + * @return null|string + */ + private function getCheckoutStep() + { + if (!is_array($GLOBALS['ISO_CHECKOUT_STEPS'])) { + return null; + } + + $step = (string) Input::getAutoItem('step', false, true); + + return ('' !== $step && array_key_exists($step, $GLOBALS['ISO_CHECKOUT_STEPS'])) ? $step : null; + } + + /** + * @return null|string + */ + private function getProductAlias() + { + $alias = (string) Input::getAutoItem('product', false, true); + + return '' !== $alias && null !== Product::findAvailableByIdOrAlias($alias) ? $alias : null; + } +} diff --git a/system/modules/isotope/library/Isotope/EventListener/PostCheckoutUploads.php b/system/modules/isotope/library/Isotope/EventListener/PostCheckoutUploads.php new file mode 100644 index 0000000000..630e567177 --- /dev/null +++ b/system/modules/isotope/library/Isotope/EventListener/PostCheckoutUploads.php @@ -0,0 +1,155 @@ +getItems(); + $total = count($items); + $position = 0; + + foreach ($items as $item) { + ++$position; + + foreach ($item->getConfiguration() as $attributeName => $config) { + /** @var Attribute $attribute */ + $attribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$attributeName]; + + if (!$attribute instanceof \uploadable || !$attribute->checkoutRelocate) { + continue; + } + + $sources = $this->getSources($attribute, $config['value']); + + foreach ($sources as $source) { + $tokens = $this->generateTokens($order, $item, $position, $total, $attribute, $source); + + $targetFolder = StringUtil::recursiveReplaceTokensAndTags( + $attribute->checkoutTargetFolder, + $tokens, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS + ); + + if ($attribute->doNotOverwrite) { + $tokens['file_target'] = FileUpload::getFileName($tokens['file_name'], $targetFolder); + } else { + $tokens['file_target'] = $tokens['file_name']; + } + + $targetFile = StringUtil::recursiveReplaceTokensAndTags( + $attribute->checkoutTargetFile, + $tokens, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS + ); + + $file = new File($source); + $file->renameTo($targetFolder . '/' . $targetFile); + } + } + } + } + + /** + * @param Attribute $attribute + * @param string|array $files + * + * @return array + * @throws \UnderflowException if upload folder does not exist + */ + private function getSources(Attribute $attribute, $files) + { + $sources = []; + $folder = $attribute->uploadFolder; + + // Overwrite the upload folder with user's home directory + if ($attribute->useHomeDir && FE_USER_LOGGED_IN) { + $user = FrontendUser::getInstance(); + + if ($user->assignDir && $user->homeDir) { + $folder = $user->homeDir; + } + } + + $filesModel = FilesModel::findByPk($folder); + + // The upload folder could not be found + if (null === $filesModel) { + throw new \UnderflowException("Invalid upload folder ID $folder"); + } + + foreach ((array) $files as $file) { + $sources[] = $filesModel->path . '/' . $file; + } + + return $sources; + } + + /** + * @param IsotopeOrderableCollection $order + * @param ProductCollectionItem $item + * @param int $position + * @param int $total + * @param Attribute $attribute + * @param string $source + * + * @return array + */ + private function generateTokens(IsotopeOrderableCollection $order, $item, $position, $total, $attribute, $source) + { + $tokens = [ + 'document_number' => $order->getDocumentNumber() ?: $order->getId(), + 'order_id' => $order->getId(), + 'order_date' => $order->getLockTime(), + 'product_id' => $item->product_id, + 'product_sku' => $item->sku, + 'product_name' => $item->name, + 'product_position' => str_pad($position, max(3, strlen((string) $total)), '0', STR_PAD_LEFT), + 'attribute_field' => $attribute->field_name, + 'attribute_name' => $attribute->name, + 'file_name' => basename($source), + 'file_extension' => pathinfo($source, PATHINFO_EXTENSION), + 'has_member' => true === FE_USER_LOGGED_IN ? '1' : '0' + ]; + + if (true === FE_USER_LOGGED_IN) { + $userData = FrontendUser::getInstance()->getData(); + unset($userData['password']); + + StringUtil::flatten( + $userData, + 'member', + $tokens + ); + + if ($userData['assignDir']) { + $homeDir = FilesModel::findByPk($userData['homeDir']); + $tokens['member_homeDir'] = null === $homeDir ? $homeDir->path : ''; + } + } + + return $tokens; + } +} diff --git a/system/modules/isotope/library/Isotope/Frontend.php b/system/modules/isotope/library/Isotope/Frontend.php index 75c9a23e55..bc203d9538 100644 --- a/system/modules/isotope/library/Isotope/Frontend.php +++ b/system/modules/isotope/library/Isotope/Frontend.php @@ -3,16 +3,19 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; +use Haste\Input\Input; +use Haste\Util\Url; +use Isotope\EventListener\ChangeLanguageListener; use Isotope\Interfaces\IsotopeAttributeWithOptions; +use Isotope\Interfaces\IsotopeOrderableCollection; use Isotope\Interfaces\IsotopePrice; use Isotope\Interfaces\IsotopeProduct; use Isotope\Interfaces\IsotopeProductCollection; @@ -22,6 +25,7 @@ use Isotope\Model\Product\Standard; use Isotope\Model\ProductCollection\Cart; use Isotope\Model\ProductCollection\Order; +use Isotope\Model\ProductCollectionItem; use Isotope\Model\ProductCollectionSurcharge; /** @@ -47,12 +51,17 @@ class Frontend extends \Frontend /** * Get shipping and payment surcharges for given collection * - * @param IsotopeProductCollection|Order $objCollection + * @param IsotopeProductCollection $objCollection * * @return ProductCollectionSurcharge[] */ public function findShippingAndPaymentSurcharges(IsotopeProductCollection $objCollection) { + if (!$objCollection instanceof IsotopeOrderableCollection) { + \System::log('Product collection ID "' . $objCollection->getId() . '" is not orderable', __METHOD__, TL_ERROR); + return false; + } + // Do not add shipping and payment surcharge to cart, // they should only appear in the order review if ($objCollection instanceof Cart) { @@ -97,7 +106,7 @@ public function addToCart(IsotopeProduct $objProduct, array $arrConfig = array() } \Controller::redirect( - \Haste\Util\Url::addQueryString( + Url::addQueryString( 'continue=' . base64_encode(\Environment::get('request')), $objModule->iso_addProductJumpTo ) @@ -105,6 +114,57 @@ public function addToCart(IsotopeProduct $objProduct, array $arrConfig = array() } } + /** + * Callback for add_to_cart button if a product is being edited. + * + * @param IsotopeProduct $objProduct + * @param array $arrConfig + */ + public function updateCart(IsotopeProduct $objProduct, array $arrConfig = array()) + { + if (\Input::get('collection_item') < 1 + || ($item = ProductCollectionItem::findByPk(\Input::get('collection_item'))) === null + || $item->pid != Isotope::getCart()->id + || !$item->hasProduct() + || $item->getProduct()->getProductId() != $objProduct->getProductId() + ) { + return; + } + + Isotope::getCart()->updateProduct($objProduct, $item); + + if (!$arrConfig['module']->iso_addProductJumpTo) { + \Controller::reload(); + } + + \Controller::redirect( + Url::addQueryString( + 'continue=' . base64_encode(\Environment::get('request')), + $arrConfig['module']->iso_addProductJumpTo + ) + ); + } + + /** + * Callback for toggle_favorites button + * + * @param IsotopeProduct $objProduct + * @param array $arrConfig + */ + public function toggleFavorites(IsotopeProduct $objProduct, array $arrConfig = array()) + { + $favorites = Isotope::getFavorites(); + + if ($favorites->hasProduct($objProduct)) { + $favorites->deleteItem($favorites->getItemForProduct($objProduct)); + Message::addConfirmation($GLOBALS['TL_LANG']['MSC']['removedFromFavorites']); + } elseif ($favorites->addProduct($objProduct, 1, $arrConfig) !== false) { + Message::addConfirmation($GLOBALS['TL_LANG']['MSC']['addedToFavorites']); + } + + \Controller::reload(); + } + /** * Replace the current page with a reader page if applicable * @@ -118,7 +178,7 @@ public function loadReaderPageFromUrl($arrFragments) $strAlias = ''; // Find products alias. Can't use Input because they're not yet initialized - if ($GLOBALS['TL_CONFIG']['useAutoItem'] && in_array($strKey, $GLOBALS['TL_AUTO_ITEM'])) { + if ($GLOBALS['TL_CONFIG']['useAutoItem'] && in_array($strKey, $GLOBALS['TL_AUTO_ITEM'], true)) { $strKey = 'auto_item'; } @@ -231,18 +291,13 @@ public function replaceIsotopeTags($strTag) * @param array $arrGet * * @return array + * + * @deprecated Deprecated since Isotope 2.4. See Isotope\EventListener\ChangeLanguageListener */ public function translateProductUrls($arrGet) { - if (\Haste\Input\Input::getAutoItem('product', false, true) != '') { - $arrGet['url']['product'] = \Haste\Input\Input::getAutoItem('product', false, true); - } elseif (\Haste\Input\Input::getAutoItem('step', false, true) != '') { - $arrGet['url']['step'] = \Haste\Input\Input::getAutoItem('step', false, true); - } elseif (\Input::get('uid', false, true) != '') { - $arrGet['get']['uid'] = \Input::get('uid', false, true); - } - - return $arrGet; + $listener = new ChangeLanguageListener(); + return $listener->onTranslateUrlParameters($arrGet); } @@ -424,6 +479,8 @@ public function addProductsToSearchIndex($arrPages, $intRoot = 0, $blnIsSitemap * @param \Widget $objWidget * * @return mixed + * + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3.0. */ public function saveUpload($varValue, IsotopeProduct $objProduct, \Widget $objWidget) { @@ -491,10 +548,11 @@ public function storeCurrentArticle($objRow) */ public static function getPagesInCurrentRoot(array $arrPages, $objMember = null) { - if (empty($arrPages)) { + if (0 === count($arrPages)) { return $arrPages; } + /** @var \PageModel $objPage */ global $objPage; // $objPage not available, we don't know if the page is allowed @@ -506,6 +564,8 @@ public static function getPagesInCurrentRoot(array $arrPages, $objMember = null) static $arrUnavailable = array(); $intMember = 0; + $arrGroups = []; + if (null !== $objMember) { $intMember = $objMember->id; $arrGroups = deserialize($objMember->groups, true); @@ -570,37 +630,36 @@ public static function getPagesInCurrentRoot(array $arrPages, $objMember = null) */ public function addProductToBreadcrumb($arrItems) { - if (\Haste\Input\Input::getAutoItem('product', false, true) != '') { - $objProduct = Product::findAvailableByIdOrAlias(\Haste\Input\Input::getAutoItem('product', false, true)); - - if (null !== $objProduct) { - - /** @var \PageModel $objPage */ - global $objPage; - global $objIsotopeListPage; - - $last = count($arrItems) - 1; - - // If we have a reader page, rename the last item (the reader) to the product title - if (null !== $objIsotopeListPage) { - $arrItems[$last]['title'] = $this->prepareMetaDescription($objProduct->meta_title ? : $objProduct->name); - $arrItems[$last]['link'] = $objProduct->name; - } // Otherwise we add a new item for the product at the last position - else { - $arrItems[$last]['href'] = \Controller::generateFrontendUrl($arrItems[$last]['data']); - $arrItems[$last]['isActive'] = false; - - $arrItems[] = array - ( - 'isRoot' => false, - 'isActive' => true, - 'href' => $objProduct->generateUrl($objPage), - 'title' => $this->prepareMetaDescription($objProduct->meta_title ? : $objProduct->name), - 'link' => $objProduct->name, - 'data' => $objPage->row(), - ); - } - } + /** @var \PageModel $objPage */ + global $objPage; + + if (!($objPage->type instanceof \PageRegular) + || !($alias = Input::getAutoItem('product', false, true)) + || ($objProduct = Product::findAvailableByIdOrAlias($alias)) === null + ) { + return $arrItems; + } + + global $objIsotopeListPage; + $last = count($arrItems) - 1; + + // If we have a reader page, rename the last item (the reader) to the product title + if (null !== $objIsotopeListPage) { + $arrItems[$last]['title'] = $this->prepareMetaDescription($objProduct->meta_title ? : $objProduct->name); + $arrItems[$last]['link'] = $objProduct->name; + } // Otherwise we add a new item for the product at the last position + else { + $arrItems[$last]['href'] = \Controller::generateFrontendUrl($arrItems[$last]['data']); + $arrItems[$last]['isActive'] = false; + + $arrItems[] = array( + 'isRoot' => false, + 'isActive' => true, + 'href' => $objProduct->generateUrl($objPage), + 'title' => $this->prepareMetaDescription($objProduct->meta_title ? : $objProduct->name), + 'link' => $objProduct->name, + 'data' => $objPage->row(), + ); } return $arrItems; @@ -728,13 +787,13 @@ public function addOptionsPrice($fltPrice, $objSource, $strField, $intTaxClass, $fltAmount = $fltPrice; if ($objSource instanceof IsotopePrice && ($objProduct = $objSource->getRelated('pid')) !== null) { - /** @type IsotopeProduct|Standard $objProduct */ + /** @var IsotopeProduct|Standard $objProduct */ $arrAttributes = array_intersect( Attribute::getPricedFields(), array_merge( - $objProduct->getAttributes(), - $objProduct->getVariantAttributes() + $objProduct->getType()->getAttributes(), + $objProduct->getType()->getVariantAttributes() ) ); @@ -747,7 +806,7 @@ public function addOptionsPrice($fltPrice, $objSource, $strField, $intTaxClass, $value = $objAttribute->isCustomerDefined() ? $arrOptions[$field] : $objProduct->$field; $value = deserialize($value, true); - /** @type AttributeOption $objOption */ + /** @var AttributeOption $objOption */ foreach ($objOptions as $objOption) { if (in_array($objOption->id, $value)) { $fltAmount += $objOption->getAmount($fltPrice, 0); diff --git a/system/modules/isotope/library/Isotope/InsertTag.php b/system/modules/isotope/library/Isotope/InsertTag.php index bbcd764071..444d71406f 100644 --- a/system/modules/isotope/library/Isotope/InsertTag.php +++ b/system/modules/isotope/library/Isotope/InsertTag.php @@ -3,10 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2015 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; @@ -89,7 +89,7 @@ private function getValueForCollectionTag(IsotopeProductCollection $collection, if ($intCount == 1) { return '(' . $GLOBALS['TL_LANG']['MSC']['productSingle'] . ')'; } else { - return sprintf(('(' . $GLOBALS['TL_LANG']['MSC']['productMultiple'] . ')'), $intCount); + return sprintf('(' . $GLOBALS['TL_LANG']['MSC']['productMultiple'] . ')', $intCount); } break; @@ -103,7 +103,7 @@ private function getValueForCollectionTag(IsotopeProductCollection $collection, if ($intCount == 1) { return '(' . $GLOBALS['TL_LANG']['MSC']['productSingle'] . ')'; } else { - return sprintf(('(' . $GLOBALS['TL_LANG']['MSC']['productMultiple'] . ')'), $intCount); + return sprintf('(' . $GLOBALS['TL_LANG']['MSC']['productMultiple'] . ')', $intCount); } break; @@ -138,6 +138,9 @@ private function getValueForCollectionTag(IsotopeProductCollection $collection, return $this->getValueForAddressTag($address, $tokens[2]); + case 'weight': + return Isotope::formatPrice($collection->addToScale()->amountIn($tokens[2]), false); + default: return $collection->{$tokens[1]}; } @@ -171,6 +174,7 @@ private function getValueForAddressTag(Address $address, $attribute = null) * {{product::attribute::product_id}} - gets the data of the specified product ID * * @param IsotopeProduct $product + * @param string $attribute * * @return string */ diff --git a/system/modules/isotope/library/Isotope/IntegrityCheck/AbstractIntegrityCheck.php b/system/modules/isotope/library/Isotope/IntegrityCheck/AbstractIntegrityCheck.php index 1548d9c4de..41e90c5256 100644 --- a/system/modules/isotope/library/Isotope/IntegrityCheck/AbstractIntegrityCheck.php +++ b/system/modules/isotope/library/Isotope/IntegrityCheck/AbstractIntegrityCheck.php @@ -1,4 +1,12 @@ getId()][0]; } + /** + * @inheritdoc + */ public function getDescription() { - if ($this->hasError()) { - return $GLOBALS['TL_LANG']['tl_iso_integrity'][$this->getId()][1]; - } else { - return $GLOBALS['TL_LANG']['tl_iso_integrity'][$this->getId()][2]; - } + $key = $this->hasError() ? 1 : 2; + + return $GLOBALS['TL_LANG']['tl_iso_integrity'][$this->getId()][$key]; } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/IntegrityCheck/AttributeOptionOrphans.php b/system/modules/isotope/library/Isotope/IntegrityCheck/AttributeOptionOrphans.php index 3cbdfbc8e0..f6f00dd47b 100644 --- a/system/modules/isotope/library/Isotope/IntegrityCheck/AttributeOptionOrphans.php +++ b/system/modules/isotope/library/Isotope/IntegrityCheck/AttributeOptionOrphans.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\IntegrityCheck; @@ -130,4 +129,4 @@ public function repair() "); } } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/IntegrityCheck/PriceTable.php b/system/modules/isotope/library/Isotope/IntegrityCheck/PriceTable.php index 176fba5c37..4040b64bc3 100644 --- a/system/modules/isotope/library/Isotope/IntegrityCheck/PriceTable.php +++ b/system/modules/isotope/library/Isotope/IntegrityCheck/PriceTable.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\IntegrityCheck; @@ -98,10 +97,10 @@ public function repair() if ($this->hasError()) { foreach ($this->arrErrors as $productId) { - $objPrices = \Database::getInstance()->prepare(" - SELECT * FROM tl_iso_product_price - WHERE pid=? - ")->execute($productId); + $objPrices = \Database::getInstance() + ->prepare('SELECT * FROM tl_iso_product_price WHERE pid=?') + ->execute($productId) + ; if ($objPrices->numRows > 0) { $keep = array(); @@ -138,30 +137,26 @@ public function repair() } // Make sure the price we keep does not have config etc. assigned - \Database::getInstance()->prepare(" - UPDATE tl_iso_product_price - SET - config_id=0, - member_group=0, - start='', - stop='' - WHERE id=? - ")->execute($keep); + \Database::getInstance() + ->prepare(" + UPDATE tl_iso_product_price + SET config_id=0, member_group=0, start='', stop='' + WHERE id=? + ") + ->execute($keep) + ; // Now delete the additional prices and price tiers if (!empty($delete)) { - \Database::getInstance()->prepare(" - DELETE FROM tl_iso_product_price - WHERE id IN (" . implode(',', $delete) . ") - "); - - \Database::getInstance()->prepare(" - DELETE FROM tl_iso_product_price_tier - WHERE pid IN (" . implode(',', $delete) . ") - "); + \Database::getInstance()->query( + 'DELETE FROM tl_iso_product_price WHERE id IN (' . implode(',', $delete) . ')'); + + \Database::getInstance()->query( + "DELETE FROM tl_iso_product_pricetier WHERE pid IN (" . implode(',', $delete) . ")" + ); } } } } } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php b/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php index 652ced3946..6ae6c1ddef 100644 --- a/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php +++ b/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\IntegrityCheck; @@ -58,4 +57,4 @@ public function repair() \System::disableModule('isotope_rules'); } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/IntegrityCheck/VariantOrphans.php b/system/modules/isotope/library/Isotope/IntegrityCheck/VariantOrphans.php index bfb541e763..689c813694 100644 --- a/system/modules/isotope/library/Isotope/IntegrityCheck/VariantOrphans.php +++ b/system/modules/isotope/library/Isotope/IntegrityCheck/VariantOrphans.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\IntegrityCheck; @@ -88,4 +87,4 @@ public function repair() "); } } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttribute.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttribute.php index 852fca811c..040ca34b2a 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttribute.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttribute.php @@ -3,61 +3,86 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; - /** * IsotopeAttribute is a product attribute for Isotope eCommerce * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * @author Andreas Schempp */ interface IsotopeAttribute { - /** - * Return true if attribute is customer defined - * @return bool + * Returns true if attribute is customer defined + * + * @return bool */ public function isCustomerDefined(); + /** + * Returns the database field name + * + * @return string + */ + public function getFieldName(); + /** * Return class name for the backend widget or empty if none should be available - * @return string + * + * @return string */ public function getBackendWidget(); /** * Return class name for the frontend widget or empty if none should be available - * @return string + * + * @return string */ public function getFrontendWidget(); /** * Load attribute configuration from given DCA array + * * @param array */ public function loadFromDCA(array &$arrData, $strName); /** * Save attribute configuration into the given DCA array - * @param array + * + * @param array $arrData */ public function saveToDCA(array &$arrData); + /** + * Gets attribute value from given product. + * + * @param IsotopeProduct $product + * + * @return mixed + */ + public function getValue(IsotopeProduct $product); + + /** + * Gets attribute label. + * + * @return string + */ + public function getLabel(); + /** * Generate attribute for given product - * @param IsotopeProduct - * @param array - * @return string + * + * @param IsotopeProduct $objProduct + * @param array $arrOptions + * + * @return string */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()); - } diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeForVariants.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeForVariants.php index 164e80a045..361fd049f3 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeForVariants.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeForVariants.php @@ -3,29 +3,30 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; interface IsotopeAttributeForVariants { - /** * Return true if attribute is a variant option - * @return bool + * + * @return bool */ public function isVariantOption(); /** * Get available variant options for a product - * @param array - * @param array - * @return array + * + * @param array $arrIds + * @param array $arrOptions + * + * @return array */ public function getOptionsForVariants(array $arrIds, array $arrOptions = array()); } diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeWithOptions.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeWithOptions.php index 8d0e3937a2..25bff2a40b 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeWithOptions.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeAttributeWithOptions.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; @@ -16,6 +15,18 @@ interface IsotopeAttributeWithOptions extends IsotopeAttribute { + const SOURCE_NAME = 'name'; + const SOURCE_TABLE = 'table'; + const SOURCE_FOREIGNKEY = 'foreignKey'; + const SOURCE_ATTRIBUTE = 'attribute'; + const SOURCE_PRODUCT = 'product'; + + /** + * Returns the options source + * + * @return string + */ + public function getOptionsSource(); /** * Adjust the attribute option wizard for this widget diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeCheckoutStep.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeCheckoutStep.php index c6cd09f515..36dcd54960 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeCheckoutStep.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeCheckoutStep.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; @@ -25,6 +24,12 @@ interface IsotopeCheckoutStep */ public function isAvailable(); + /** + * Return true if the checkout step can be skipped if no error. + * @return bool + */ + public function isSkippable(); + /** * Return true if the step has an error and forwarding should be cancelled * @return bool diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeDocument.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeDocument.php index 12adaa8f2e..f297e282cb 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeDocument.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeDocument.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeFilterModule.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeFilterModule.php index d5fa0a7725..37ecaf735a 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeFilterModule.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeFilterModule.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeGallery.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeGallery.php index 70f93b8468..7dac14578b 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeGallery.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeGallery.php @@ -3,16 +3,14 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; - /** * IsotopeGallery interface describes an Isotope gallery object */ @@ -21,15 +19,16 @@ interface IsotopeGallery /** * Generate main image and return it as HTML string - * @param string + * * @return string */ public function generateMainImage(); /** * Generate gallery and return it as HTML string - * @param string - * @param integer + * + * @param int $intSkip Number of pictures that should not be shown in the gallery. + * * @return string */ public function generateGallery($intSkip = 1); diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeIntegrityCheck.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeIntegrityCheck.php index 35045c022b..9cd31a1e6a 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeIntegrityCheck.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeIntegrityCheck.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderStatusAware.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderStatusAware.php index 3ea3c4b071..3bdcbaafa3 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderStatusAware.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderStatusAware.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderableCollection.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderableCollection.php index 5d8244d43f..caafbabcd4 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderableCollection.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeOrderableCollection.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; @@ -15,9 +14,11 @@ use Isotope\Model\Address; use Isotope\Model\ProductCollectionSurcharge; -interface IsotopeOrderableCollection +/** + * IsotopeOrderableCollection describes a product collection that can have order information. + */ +interface IsotopeOrderableCollection extends IsotopeProductCollection { - /** * Return boolean whether collection has payment * @@ -115,4 +116,11 @@ public function getShippingAddress(); * @param Address $objAddress */ public function setShippingAddress(Address $objAddress = null); + + /** + * Returns the generated document number or empty string if not available. + * + * @return string + */ + public function getDocumentNumber(); } diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopePayment.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopePayment.php index be509a11ec..5fbddc57ea 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopePayment.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopePayment.php @@ -3,79 +3,103 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; +use Isotope\Model\ProductCollectionSurcharge\Payment; /** * IsotopePayment interface describes an Isotope payment method */ interface IsotopePayment { + /** + * Returns the ID of this payment method. + * + * @return int + */ + public function getId(); /** - * Return boolean flag if the payment method is available + * Returns whether the payment method is available + * * @return bool */ public function isAvailable(); /** * Return true if payment price is not a fixed amount + * * @return bool */ public function isPercentage(); /** * Get the percentage amount (if applicable) + * * @return float */ public function getPercentage(); /** * Return label for the payment method + * * @return string */ public function getLabel(); + /** + * Returns the payment note. + * + * @return string + */ + public function getNote(); + /** * Return the calculated total price for payment + * * @return float */ public function getPrice(); /** * Return percentage label if price is percentage + * * @return string */ public function getPercentageLabel(); /** * Process payment on checkout confirmation page. - * @param IsotopeProductCollection $objOrder The order being places - * @param \Module $objModule The checkout module instance - * @return mixed + * + * @param IsotopeProductCollection $objOrder The order being places + * @param \Module $objModule The checkout module instance + * + * @return mixed */ public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule); /** * Return a html form for checkout or false - * @param IsotopeProductCollection $objOrder The order being places - * @param \Module $objModule The checkout module instance - * @return mixed + * + * @param IsotopeProductCollection $objOrder The order being places + * @param \Module $objModule The checkout module instance + * + * @return mixed */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule); /** * Return information or advanced features in the backend. - * * Use this function to present advanced features or basic payment information for an order in the backend. - * @param integer $orderId Order ID + * + * @param int $orderId Order ID + * * @return string */ public function backendInterface($orderId); @@ -92,6 +116,10 @@ public function checkoutReview(); /** * Get the checkout surcharge for this shipping method + * + * @param IsotopeProductCollection $objCollection + * + * @return Payment|null */ - public function getSurcharge($objCollection); + public function getSurcharge(IsotopeProductCollection $objCollection); } diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopePostsale.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopePostsale.php index eff2a682b8..294563a2f1 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopePostsale.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopePostsale.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; @@ -24,13 +23,15 @@ interface IsotopePostsale * * This function can be called from the postsale.php file when the payment server is requestion/posting a status change. * You can see an implementation example in Isotope\Payment\Postsale + * + * @param IsotopeProductCollection $objOrder */ public function processPostsale(IsotopeProductCollection $objOrder); /** * Get the order object in a postsale request - * @return IsotopeProductCollection + * + * @return IsotopeOrderableCollection */ public function getPostsaleOrder(); - } diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopePrice.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopePrice.php index ef4bd82df5..680fc43964 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopePrice.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopePrice.php @@ -3,16 +3,14 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; - /** * IsotopePrice is the interface for a product price */ @@ -21,41 +19,56 @@ interface IsotopePrice /** * Return true if more than one price is available - * @return bool + * + * @return bool */ public function hasTiers(); /** * Return price - * @param int - * @return float + * + * @param int $intQuantity + * @param array $arrOptions + * + * @return float */ - public function getAmount($intQuantity = 1); + public function getAmount($intQuantity = 1, array $arrOptions = array()); /** * Return original price - * @param int - * @return float + * + * @param int $intQuantity + * + * @return float */ public function getOriginalAmount($intQuantity = 1); /** * Return net price (without taxes) - * @param int - * @return float + * + * @param int $intQuantity + * + * @return float */ public function getNetAmount($intQuantity = 1); /** * Return gross price (with all taxes) - * @param int - * @return float + * + * @param int $intQuantity + * + * @return float */ public function getGrossAmount($intQuantity = 1); /** * Generate price for HTML rendering - * @return string + * + * @param bool $blnShowTiers + * @param int $intQuantity + * @param array $arrOptions + * + * @return string */ - public function generate(); + public function generate($blnShowTiers = false, $intQuantity = 1, array $arrOptions = array()); } diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeProduct.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProduct.php index f89ae1d704..e196e24750 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeProduct.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProduct.php @@ -3,125 +3,173 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; +use Isotope\Model\ProductType; + /** * IsotopeProduct is the interface for a product object */ interface IsotopeProduct { + /** + * Returns the ID for the product or variant. + * + * @return int + */ + public function getId(); /** - * Get the product id (variant INDEPENDENT id) - * @return int + * Returns the ID for this product or the parent of a variant. + * + * @return int */ public function getProductId(); /** * Return the unique form ID for the product - * @return string + * + * @return string */ public function getFormId(); + /** + * Returns the product type for this product, or null if not applicable or not found. + * + * @return ProductType|null + */ + public function getType(); + + /** + * Returns the product name, necessary to store as fallback in the product collection. + * + * @return string + */ + public function getName(); + + /** + * Returns the product SKU, necessary to store as fallback in the product collection. + * + * @return string + */ + public function getSku(); + /** * Returns true if the product is available in the frontend + * * @return bool */ public function isAvailableInFrontend(); /** * Returns true if the product is available in the given collection + * + * @param IsotopeProductCollection $objCollection + * * @return bool */ public function isAvailableForCollection(IsotopeProductCollection $objCollection); /** * Returns true if the product is published, otherwise returns false - * @bool + * + * @return bool */ public function isPublished(); /** * Checks whether a product is new according to the current store config - * @return boolean + * + * @return bool */ public function isNew(); /** * Checks whether a product is exempt from shipping - * @return boolean + * + * @return bool */ public function isExemptFromShipping(); /** * Returns true if variants are enabled in the product, otherwise returns false + * * @return bool */ public function hasVariants(); + /** + * Returns an array of variant IDs + * + * @return array + */ + public function getVariantIds(); + /** * Returns true if this product is a variant + * * @return bool */ public function isVariant(); /** * Returns true if product has variants, and the price is a variant attribute + * * @return bool */ public function hasVariantPrices(); /** * Returns true if advanced prices are enabled in the product type, otherwise returns false + * * @return bool */ public function hasAdvancedPrices(); /** * Get product price model - * @param IsotopeProductCollection - * @return IsotopePrice + * + * @param IsotopeProductCollection $objCollection + * + * @return IsotopePrice */ public function getPrice(IsotopeProductCollection $objCollection = null); /** * Return minimum quantity for the product (from advanced price tiers) - * @return int + * + * @return int */ public function getMinimumQuantity(); /** - * Return the product's options - * @return array - * @deprecated implement getConfiguration + * See IsotopeProductWithOptions interface! + * + * @return array */ public function getOptions(); - /** - * Return the product's options - * @return array - * @todo add in Isotope 3.0 - */ - //public function getConfiguration(); - /** * Generate a product template - * @param array - * @return string + * + * @param array $arrConfig + * + * @return string */ public function generate(array $arrConfig); /** - * Return the unique form ID for the product - * @param \PageModel + * Returns URL with product alias to given page. + * + * @param \PageModel $objJumpTo + * * @return string */ public function generateUrl(\PageModel $objJumpTo = null); diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollection.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollection.php index 39d0ec101b..1f498868c4 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollection.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollection.php @@ -3,15 +3,17 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; +use Contao\MemberModel; +use Haste\Units\Mass\Scale; +use Isotope\Model\Config; use Isotope\Model\ProductCollectionItem; use Isotope\Model\ProductCollectionSurcharge; @@ -21,6 +23,41 @@ */ interface IsotopeProductCollection { + /** + * Returns the ID of the product collection. + * + * @return int + */ + public function getId(); + + /** + * Returns an unguessable unique string to represent this collection (e.g. for secure URLs). + * + * @return string + */ + public function getUniqueId(); + + /** + * Gets the member association with this collection, or null if it belongs to a guest. + * + * @return MemberModel|null + */ + public function getMember(); + + /** + * Returns the store ID. + * The store ID is used to share or separate collections (e.g. the cart) across multiple shops or root pages. + * + * @return int + */ + public function getStoreId(); + + /** + * Returns the shop config associated with this collection. + * + * @return Config|null + */ + public function getConfig(); /** * Return true if collection is locked @@ -29,6 +66,13 @@ interface IsotopeProductCollection */ public function isLocked(); + /** + * Returns timestamp when the collection was locked + * + * @return int|null + */ + public function getLockTime(); + /** * Return true if collection has no items * @@ -56,10 +100,15 @@ public function sumItemsQuantity(); public function purge(); /** - * Lock collection from begin modified + * Lock collection from being modified */ public function lock(); + /** + * Save changes to the collection. + */ + public function save(); + /** * Sum price of all items in the collection * @@ -88,6 +137,13 @@ public function getTotal(); */ public function getTaxFreeTotal(); + /** + * Returns the ISO 4217 3-character currency code + * + * @return string + */ + public function getCurrency(); + /** * Return the item with the latest timestamp (e.g. the latest added item) * @@ -133,7 +189,7 @@ public function hasProduct(IsotopeProduct $objProduct, $blnIdentical = true); * * @return ProductCollectionItem */ - public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrConfig = array()); + public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrConfig = []); /** * Update a product collection item @@ -181,14 +237,38 @@ public function deleteItemById($intId); public function getSurcharges(); /** - * Check if minimum order amount is reached + * Add all products in the collection to the given scale + * + * @param Scale $objScale + * + * @return Scale + */ + public function addToScale(Scale $objScale = null); + + /** + * Add the collection to a template + * + * @param \Template $objTemplate + * @param array $arrConfig + */ + public function addToTemplate(\Template $objTemplate, array $arrConfig = []); + + /** + * Add an error message + * + * @param string + */ + public function addError($message); + + /** + * Check if collection or any item has errors * * @return bool */ public function hasErrors(); /** - * Get error messages for the cart + * Return the errors array * * @return array */ diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollectionSurcharge.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollectionSurcharge.php index d46b9ce1c5..73a0dbf5fd 100644 --- a/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollectionSurcharge.php +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductCollectionSurcharge.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Interfaces; diff --git a/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductWithOptions.php b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductWithOptions.php new file mode 100644 index 0000000000..d901c27be4 --- /dev/null +++ b/system/modules/isotope/library/Isotope/Interfaces/IsotopeProductWithOptions.php @@ -0,0 +1,42 @@ + Isotope::getCart()->getBillingAddress(), - 'shipping' => ($product->isExemptFromShipping() ? Isotope::getCart()->getBillingAddress() : Isotope::getCart()->getShippingAddress()), + 'shipping' => $product->isExemptFromShipping() ? Isotope::getCart()->getBillingAddress() : Isotope::getCart()->getShippingAddress(), ); } @@ -256,9 +266,9 @@ public static function calculatePrice( $fltPrice = $objTaxClass->calculatePrice($fltPrice, $arrAddresses); } - return $fltPrice; + return static::roundPrice($fltPrice); } - + /** * Rounds a price according to store config settings * @@ -271,8 +281,8 @@ public static function roundPrice($fltValue, $blnApplyRoundingIncrement = true) { $objConfig = static::getConfig(); - if ($blnApplyRoundingIncrement && $objConfig->priceRoundIncrement == '0.05') { - $fltValue = (round(20 * $fltValue)) / 20; + if ($blnApplyRoundingIncrement && '0.05' === $objConfig->priceRoundIncrement) { + $fltValue = round(20 * $fltValue) / 20; } return round($fltValue, $objConfig->priceRoundPrecision); @@ -354,7 +364,7 @@ public static function formatPriceWithCurrency($fltPrice, $blnHtml = true, $strC public static function formatItemsString($intItems) { if ($intItems == 1) { - return $GLOBALS['TL_LANG']['ISO']['productSingle']; + return $GLOBALS['TL_LANG']['MSC']['productSingle']; } else { $arrFormat = $GLOBALS['ISO_NUM'][static::getConfig()->currencyFormat]; @@ -362,27 +372,51 @@ public static function formatItemsString($intItems) $intItems = number_format($intItems, 0, $arrFormat[1], $arrFormat[2]); } - return sprintf($GLOBALS['TL_LANG']['ISO']['productMultiple'], $intItems); + return sprintf($GLOBALS['TL_LANG']['MSC']['productMultiple'], $intItems); } } /** * Callback for isoButton Hook * - * @param array $arrButtons + * @param array $arrButtons + * @param IsotopeProduct $objProduct * * @return array */ - public static function defaultButtons($arrButtons) + public static function defaultButtons($arrButtons, IsotopeProduct $objProduct = null) { $arrButtons['update'] = array( 'label' => $GLOBALS['TL_LANG']['MSC']['buttonLabel']['update'] ); - $arrButtons['add_to_cart'] = array( - 'label' => $GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'], - 'callback' => array('\Isotope\Frontend', 'addToCart') - ); + if (null !== $objProduct + && \Input::get('collection_item') > 0 + && ($item = ProductCollectionItem::findByPk(\Input::get('collection_item'))) !== null + && $item->pid == Isotope::getCart()->id + && $item->hasProduct() + && $item->getProduct()->getProductId() == $objProduct->getProductId() + ) { + $arrButtons['add_to_cart'] = array( + 'label' => $GLOBALS['TL_LANG']['MSC']['buttonLabel']['update_cart'], + 'callback' => array('\Isotope\Frontend', 'updateCart') + ); + } else { + $arrButtons['add_to_cart'] = array( + 'label' => $GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_to_cart'], + 'callback' => array('\Isotope\Frontend', 'addToCart') + ); + } + + if (true === FE_USER_LOGGED_IN || 'BE' === TL_MODE) { + $isFavorited = ($favorites = Isotope::getFavorites()) !== null && $favorites->hasProduct($objProduct); + + $arrButtons['toggle_favorites'] = array( + 'label' => $GLOBALS['TL_LANG']['MSC']['buttonLabel'][$isFavorited ? 'remove_from_favorites' : 'add_to_favorites'], + 'callback' => array('\Isotope\Frontend', 'toggleFavorites'), + 'class' => $isFavorited ? 'active' : '', + ); + } return $arrButtons; } @@ -435,19 +469,22 @@ public static function validateRegexp($strRegexp, $varValue, \Widget $objWidget) * @param bool $blnSkipEmpty * * @return array + * + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3.0 */ public static function formatOptions(array $arrData, $strTable = 'tl_iso_product', $blnSkipEmpty = true) { $arrOptions = array(); foreach ($arrData as $field => $value) { - if ($blnSkipEmpty && ($value == '' || $value == '-')) + if ($blnSkipEmpty && ($value == '' || $value == '-')) { continue; + } $arrOptions[$field] = array ( 'label' => Format::dcaLabel($strTable, $field), - 'value' => Haste::getInstance()->call('replaceInsertTags', Format::dcaValue($strTable, $field, $value)), + 'value' => \Controller::replaceInsertTags(Format::dcaValue($strTable, $field, $value)), ); } @@ -461,21 +498,23 @@ public static function formatOptions(array $arrData, $strTable = 'tl_iso_product * @param IsotopeProduct|Product $objProduct * * @return array + * + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3.0 */ public static function formatProductConfiguration(array $arrConfig, IsotopeProduct $objProduct) { Product::setActive($objProduct); - $strTable = $objProduct->getTable(); + $strTable = Product::getTable(); foreach ($arrConfig as $k => $v) { - /** @type \Isotope\Model\Attribute $objAttribute */ + /** @var \Isotope\Model\Attribute $objAttribute */ if (($objAttribute = $GLOBALS['TL_DCA'][$strTable]['attributes'][$k]) !== null && $objAttribute instanceof IsotopeAttributeWithOptions ) { - /** @type \Widget $strClass */ + /** @var \Widget $strClass */ $strClass = $objAttribute->getFrontendWidget(); $arrField = $strClass::getAttributesFromDca( $GLOBALS['TL_DCA'][$strTable]['fields'][$k], @@ -524,7 +563,7 @@ function(&$option) use (&$values) { $v, Format::dcaLabel($strTable, $k), array ( - 'formatted' => Haste::getInstance()->call('replaceInsertTags', array($formatted)) + 'formatted' => \Controller::replaceInsertTags($formatted) ) ); } diff --git a/system/modules/isotope/library/Isotope/Message.php b/system/modules/isotope/library/Isotope/Message.php index d15d9064ac..f8ec4a3116 100644 --- a/system/modules/isotope/library/Isotope/Message.php +++ b/system/modules/isotope/library/Isotope/Message.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; diff --git a/system/modules/isotope/library/Isotope/Model/Address.php b/system/modules/isotope/library/Isotope/Model/Address.php index 02c6ba6fff..c47c791b1e 100644 --- a/system/modules/isotope/library/Isotope/Model/Address.php +++ b/system/modules/isotope/library/Isotope/Model/Address.php @@ -3,17 +3,18 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; +use Contao\MemberModel; use Database\Result; use Haste\Util\Format; +use Isotope\Backend; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Interfaces\IsotopeVatNoValidator; use Isotope\Isotope; @@ -75,7 +76,11 @@ public function __construct(Result $objResult = null) */ public function __toString() { - return $this->generate(); + try { + return $this->generate(); + } catch (\Exception $e) { + return ''; + } } /** @@ -84,6 +89,7 @@ public function __toString() * @param Config $config * * @return bool + * * @throws \LogicException if a validator does not implement the correct interface * @throws \RuntimeException if a validators reports an error about the VAT number */ @@ -96,7 +102,7 @@ public function hasValidVatNo(Config $config = null) $validators = deserialize($config->vatNoValidators); // if no validators are enabled, the VAT No is always valid - if (empty($validators) || !is_array($validators)) { + if (!is_array($validators) || 0 === count($validators)) { return true; } @@ -123,6 +129,8 @@ public function hasValidVatNo(Config $config = null) * @param array $arrFields * * @return string + * + * @throws \Exception on error parsing simple tokens */ public function generate($arrFields = null) { @@ -133,9 +141,8 @@ public function generate($arrFields = null) $strFormat = $GLOBALS['ISO_ADR'][$strCountry] ?: $GLOBALS['ISO_ADR']['generic']; $arrTokens = $this->getTokens($arrFields); - $strAddress = \StringUtil::parseSimpleTokens($strFormat, $arrTokens); - return $strAddress; + return \StringUtil::parseSimpleTokens($strFormat, $arrTokens); } /** @@ -144,7 +151,9 @@ public function generate($arrFields = null) * @param array $arrFields * * @return string + * * @deprecated use Address::generate() and strip_tags + * @throws \Exception on invalid simple tokens */ public function generateText($arrFields = null) { @@ -157,7 +166,9 @@ public function generateText($arrFields = null) * @param array $arrFields * * @return string + * * @deprecated use Address::generate() + * @throws \Exception on invalid simple tokens */ public function generateHtml($arrFields = null) { @@ -173,13 +184,11 @@ public function generateHtml($arrFields = null) */ public function getTokens($arrFields = null) { - global $objPage; - if (!is_array($arrFields)) { $arrFields = Isotope::getConfig()->getBillingFieldsConfig(); } - $arrTokens = array('outputFormat' => $objPage->outputFormat); + $arrTokens = array('outputFormat' => 'html'); foreach ($arrFields as $arrField) { $strField = $arrField['value']; @@ -190,13 +199,11 @@ public function getTokens($arrFields = null) continue; } - if ($strField == 'subdivision' && $this->subdivision != '') { - $arrSubdivisions = \Isotope\Backend::getSubdivisions(); + if ('subdivision' === $strField && $this->subdivision != '') { + list($country, $subdivision) = explode('-', $this->subdivision); - list($country, $subdivion) = explode('-', $this->subdivision); - - $arrTokens['subdivision'] = $arrSubdivisions[strtolower($country)][$this->subdivision]; - $arrTokens['subdivision_abbr'] = $subdivion; + $arrTokens['subdivision_abbr'] = $subdivision; + $arrTokens['subdivision'] = Backend::getLabelForSubdivision($country, $subdivision); continue; } @@ -219,26 +226,25 @@ public function getTokens($arrFields = null) $fnCompany = ''; } - $street = implode(($objPage->outputFormat == 'html' ? '
' : '
'), array_filter(array($this->street_1, $this->street_2, $this->street_3))); - - $arrTokens += array - ( - 'hcard_fn' => ($fn ? '' . $fn . '' : ''), - 'hcard_n' => (($arrTokens['firstname'] || $arrTokens['lastname']) ? '1' : ''), - 'hcard_honorific_prefix' => ($arrTokens['salutation'] ? '' . $arrTokens['salutation'] . '' : ''), - 'hcard_given_name' => ($arrTokens['firstname'] ? '' . $arrTokens['firstname'] . '' : ''), - 'hcard_family_name' => ($arrTokens['lastname'] ? '' . $arrTokens['lastname'] . '' : ''), - 'hcard_org' => ($arrTokens['company'] ? '
' . $arrTokens['company'] . '
' : ''), - 'hcard_email' => ($arrTokens['email'] ? '' . $arrTokens['email'] . '' : ''), - 'hcard_tel' => ($arrTokens['phone'] ? '
' . $arrTokens['phone'] . '
' : ''), - 'hcard_adr' => (($street | $arrTokens['city'] || $arrTokens['postal'] || $arrTokens['subdivision'] || $arrTokens['country']) ? '1' : ''), - 'hcard_street_address' => ($street ? '
' . $street . '
' : ''), - 'hcard_locality' => ($arrTokens['city'] ? '' . $arrTokens['city'] . '' : ''), - 'hcard_region' => ($arrTokens['subdivision'] ? '' . $arrTokens['subdivision'] . '' : ''), - 'hcard_region_abbr' => ($arrTokens['subdivision_abbr'] ? '' . $arrTokens['subdivision_abbr'] . '' : ''), - 'hcard_postal_code' => ($arrTokens['postal'] ? '' . $arrTokens['postal'] . '' : ''), - 'hcard_country_name' => ($arrTokens['country'] ? '
' . $arrTokens['country'] . '
' : ''), - ); + $street = implode('
', array_filter([$this->street_1, $this->street_2, $this->street_3])); + + $arrTokens += [ + 'hcard_fn' => $fn ? '' . $fn . '' : '', + 'hcard_n' => ($arrTokens['firstname'] || $arrTokens['lastname']) ? '1' : '', + 'hcard_honorific_prefix' => $arrTokens['salutation'] ? '' . $arrTokens['salutation'] . '' : '', + 'hcard_given_name' => $arrTokens['firstname'] ? '' . $arrTokens['firstname'] . '' : '', + 'hcard_family_name' => $arrTokens['lastname'] ? '' . $arrTokens['lastname'] . '' : '', + 'hcard_org' => $arrTokens['company'] ? '
' . $arrTokens['company'] . '
' : '', + 'hcard_email' => $arrTokens['email'] ? '' . $arrTokens['email'] . '' : '', + 'hcard_tel' => $arrTokens['phone'] ? '
' . $arrTokens['phone'] . '
' : '', + 'hcard_adr' => ($street | $arrTokens['city'] || $arrTokens['postal'] || $arrTokens['subdivision'] || $arrTokens['country']) ? '1' : '', + 'hcard_street_address' => $street ? '
' . $street . '
' : '', + 'hcard_locality' => $arrTokens['city'] ? '' . $arrTokens['city'] . '' : '', + 'hcard_region' => $arrTokens['subdivision'] ? '' . $arrTokens['subdivision'] . '' : '', + 'hcard_region_abbr' => $arrTokens['subdivision_abbr'] ? '' . $arrTokens['subdivision_abbr'] . '' : '', + 'hcard_postal_code' => $arrTokens['postal'] ? '' . $arrTokens['postal'] . '' : '', + 'hcard_country_name' => $arrTokens['country'] ? '
' . $arrTokens['country'] . '
' : '', + ]; return $arrTokens; } @@ -358,22 +364,7 @@ public static function createForMember($intMember, $arrFill = null) ); if (!empty($arrFill) && is_array($arrFill) && ($objMember = \MemberModel::findByPk($intMember)) !== null) { - - // Generate address data from tl_member, limit to fields enabled in the shop configuration - $arrMember = array_intersect_key( - array_merge( - $objMember->row(), - array( - 'street_1' => $objMember->street, - - // Trying to guess subdivision by country and state - 'subdivision' => strtoupper($objMember->country . '-' . $objMember->state) - ) - ), - array_flip($arrFill) - ); - - $arrData = array_merge($arrMember, $arrData); + $arrData = array_merge(static::getAddressDataForMember($objMember, $arrFill), $arrData); } $objAddress->setRow($arrData); @@ -400,37 +391,19 @@ public static function createForProductCollection( $objAddress = new static(); $arrData = array( - 'pid' => (int) $objCollection->id, + 'pid' => $objCollection->getId(), 'ptable' => 'tl_iso_product_collection', 'tstamp' => time(), - 'store_id' => (int) $objCollection->store_id, - 'isDefaultBilling' => ($blnDefaultBilling ? '1' : ''), - 'isDefaultShipping' => ($blnDefaultShipping ? '1' : ''), + 'store_id' => $objCollection->getStoreId(), + 'isDefaultBilling' => $blnDefaultBilling ? '1' : '', + 'isDefaultShipping' => $blnDefaultShipping ? '1' : '', ); - if ($objCollection->member > 0 - && !empty($arrFill) - && is_array($arrFill) - && ($objMember = \MemberModel::findByPk($objCollection->member)) !== null - ) { - // Generate address data from tl_member, limit to fields enabled in the shop configuration - $arrMember = array_intersect_key( - array_merge( - $objMember->row(), - array( - 'street_1' => $objMember->street, - - // Trying to guess subdivision by country and state - 'subdivision' => strtoupper($objMember->country . '-' . $objMember->state) - ) - ), - array_flip($arrFill) - ); - - $arrData = array_merge($arrMember, $arrData); + if (!empty($arrFill) && is_array($arrFill) && ($objMember = $objCollection->getMember()) !== null) { + $arrData = array_merge(static::getAddressDataForMember($objMember, $arrFill), $arrData); } - if ($arrData['country'] == '' && ($objConfig = $objCollection->getRelated('config_id')) !== null) { + if ($arrData['country'] == '' && null !== ($objConfig = $objCollection->getConfig())) { if ($blnDefaultBilling) { $arrData['country'] = $objConfig->billing_country ?: $objConfig->country; } elseif ($blnDefaultShipping) { @@ -442,4 +415,23 @@ public static function createForProductCollection( return $objAddress; } + + /** + * Generate address data from tl_member, limit to fields enabled in the shop configuration + */ + public static function getAddressDataForMember(MemberModel $member, array $fields) + { + return array_intersect_key( + array_merge( + $member->row(), + array( + 'street_1' => $member->street, + + // Trying to guess subdivision by country and state + 'subdivision' => strtoupper($member->country . '-' . $member->state) + ) + ), + array_flip($fields) + ); + } } diff --git a/system/modules/isotope/library/Isotope/Model/Attribute.php b/system/modules/isotope/library/Isotope/Model/Attribute.php index 812d6e9336..db4022ee37 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute.php @@ -3,16 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; use Haste\Util\Format; +use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeAttributeWithOptions; use Isotope\Interfaces\IsotopeProduct; use Isotope\Isotope; @@ -61,9 +61,12 @@ * @property string $uploadFolder * @property bool $useHomeDir * @property bool $doNotOverwrite + * @property bool $checkoutRelocate + * @property string $checkoutTargetFolder + * @property string $checkoutTargetFile * @property bool $datepicker */ -abstract class Attribute extends TypeAgent +abstract class Attribute extends TypeAgent implements IsotopeAttribute { /** @@ -86,7 +89,7 @@ abstract class Attribute extends TypeAgent /** * Holds a map for field name to ID - * @type array + * @var array */ protected static $arrFieldNameMap = array(); @@ -109,8 +112,15 @@ public function isVariantOption() } /** - * Return true if attribute is customer defined - * @return bool + * @inheritdoc + */ + public function getFieldName() + { + return $this->field_name; + } + + /** + * @inheritdoc */ public function isCustomerDefined() { @@ -123,8 +133,7 @@ public function isCustomerDefined() } /** - * Return class name for the backend widget or false if none should be available - * @return string + * @inheritdoc */ public function getBackendWidget() { @@ -136,8 +145,7 @@ public function getBackendWidget() } /** - * Return class name for the frontend widget or false if none should be available - * @return string + * @inheritdoc */ public function getFrontendWidget() { @@ -149,10 +157,7 @@ public function getFrontendWidget() } /** - * Load attribute configuration from given DCA array - * - * @param array $arrData - * @param string $strName + * @inheritdoc */ public function loadFromDCA(array &$arrData, $strName) { @@ -165,7 +170,7 @@ public function loadFromDCA(array &$arrData, $strName) } $this->field_name = $strName; - $this->type = array_search(get_called_class(), static::getModelTypes()); + $this->type = array_search(get_called_class(), static::getModelTypes(), true); $this->name = is_array($arrField['label']) ? $arrField['label'][0] : ($arrField['label'] ?: $strName); $this->description = is_array($arrField['label']) ? $arrField['label'][1] : ''; $this->be_filter = $arrField['filter'] ? '1' : ''; @@ -175,22 +180,25 @@ public function loadFromDCA(array &$arrData, $strName) } /** - * Save attribute configuration into the given DCA array - * @param array + * @inheritdoc */ public function saveToDCA(array &$arrData) { // Keep field settings made through DCA code - $arrField = is_array($arrData['fields'][$this->field_name]) ? $arrData['fields'][$this->field_name] : array(); + $arrField = is_array($arrData['fields'][$this->field_name]) ? $arrData['fields'][$this->field_name] : []; $arrField['label'] = Translation::get(array($this->name, $this->description)); $arrField['exclude'] = true; $arrField['inputType'] = ''; $arrField['attributes'] = $this->row(); - $arrField['attributes']['variant_option'] = ($this->isVariantOption()); /* @todo in 3.0: $this instanceof IsotopeAttributeForVariants */ + $arrField['attributes']['variant_option'] = $this->isVariantOption(); /* @todo in 3.0: $this instanceof IsotopeAttributeForVariants */ $arrField['attributes']['customer_defined'] = $this->isCustomerDefined(); $arrField['eval'] = is_array($arrField['eval']) ? array_merge($arrField['eval'], $arrField['attributes']) : $arrField['attributes']; + if ('' !== (string) $this->placeholder) { + $arrField['eval']['placeholder'] = Translation::get($this->placeholder); + } + if (!$this->isCustomerDefined()) { $arrField['inputType'] = (string) array_search($this->getBackendWidget(), $GLOBALS['BE_FFL'], true); } @@ -225,7 +233,7 @@ public function saveToDCA(array &$arrData) } // Prepare options - if ('foreignKey' === $this->optionsSource && !$this->isVariantOption()) { + if (IsotopeAttributeWithOptions::SOURCE_FOREIGNKEY === $this->optionsSource && !$this->isVariantOption()) { $arrField['foreignKey'] = $this->parseForeignKey($this->foreignKey, $GLOBALS['TL_LANGUAGE']); unset($arrField['options'], $arrField['reference']); @@ -233,20 +241,23 @@ public function saveToDCA(array &$arrData) $arrOptions = null; switch ($this->optionsSource) { - case 'attribute': + case IsotopeAttributeWithOptions::SOURCE_ATTRIBUTE: $arrOptions = deserialize($this->options); break; - case 'foreignKey': + case IsotopeAttributeWithOptions::SOURCE_FOREIGNKEY: $foreignKey = $this->parseForeignKey($this->foreignKey, $GLOBALS['TL_LANGUAGE']); $arrKey = explode('.', $foreignKey, 2); - $arrOptions = \Database::getInstance() - ->execute("SELECT id AS value, {$arrKey[1]} AS label FROM {$arrKey[0]} ORDER BY label") - ->fetchAllAssoc() - ; + + if ('' !== (string) $arrKey[0] && '' !== $arrKey[1]) { + $arrOptions = \Database::getInstance() + ->execute("SELECT id AS value, {$arrKey[1]} AS label FROM {$arrKey[0]} ORDER BY label") + ->fetchAllAssoc() + ; + } break; - case 'table': + case IsotopeAttributeWithOptions::SOURCE_TABLE: $query = new \DC_Multilingual_Query(AttributeOption::getTable()); $arrOptions = $query ->addField('t1.id AS value') @@ -258,7 +269,7 @@ public function saveToDCA(array &$arrData) ; break; - case 'product': + case IsotopeAttributeWithOptions::SOURCE_PRODUCT: $query = new \DC_Multilingual_Query(AttributeOption::getTable()); $arrOptions = $query ->addField('t1.id AS value') @@ -336,7 +347,7 @@ public function getOptions() public function getOptionsForVariants(array $arrIds, array $arrOptions = array()) { if (0 === count($arrIds)) { - return array(); + return []; } sort($arrIds); @@ -360,17 +371,21 @@ public function getOptionsForVariants(array $arrIds, array $arrOptions = array() } /** - * Gets attribute value from given product. - * - * @param IsotopeProduct $product - * - * @return mixed + * @inheritdoc */ public function getValue(IsotopeProduct $product) { return $product->{$this->field_name}; } + /** + * @inheritdoc + */ + public function getLabel() + { + return Format::dcaLabel('tl_iso_product', $this->field_name); + } + /** * Generate HTML markup of product data for this attribute * @@ -384,7 +399,7 @@ public function generate(IsotopeProduct $objProduct, array $arrOptions = array() $varValue = $this->getValue($objProduct); if (!is_array($varValue)) { - return Format::dcaValue('tl_iso_product', $this->field_name, $varValue); + return $this->generateValue($varValue, $arrOptions); } // Generate a HTML table for associative arrays @@ -396,7 +411,7 @@ public function generate(IsotopeProduct $objProduct, array $arrOptions = array() $result = array(); foreach ($varValue as $v1) { - $result[$v1] = Format::dcaValue('tl_iso_product', $this->field_name, $v1); + $result[$v1] = $this->generateValue($v1, $arrOptions); } return $result; @@ -404,12 +419,23 @@ public function generate(IsotopeProduct $objProduct, array $arrOptions = array() // Generate ul/li listing for simple arrays foreach ($varValue as &$v2) { - $v2 = Format::dcaValue('tl_iso_product', $this->field_name, $v2); + $v2 = $this->generateValue($v2, $arrOptions); } return $this->generateList($varValue); } + /** + * @param mixed $value + * @param array $options + * + * @return string + */ + public function generateValue($value, array $options = []) + { + return Format::dcaValue('tl_iso_product', $this->field_name, $value); + } + /** * Returns the foreign key for a certain language with a fallback option * @@ -477,7 +503,7 @@ protected function generateTable(array $arrValues, IsotopeProduct $objProduct) continue; } - $label = $arrFormat[$name]['label'] ? $arrFormat[$name]['label'] : $name; + $label = $arrFormat[$name]['label'] ?: $name; $strBuffer .= '
'; @@ -540,7 +566,7 @@ protected function generateList(array $arrValues) $strBuffer .= "\n' . $value . ''; - $current += 1; + ++$current; } $strBuffer .= "\n"; @@ -743,9 +769,63 @@ public static function getDynamicAttributeFields() * Return list of fixed fields * Fixed fields cannot be disabled in product type config * + * @param string|null $class + * + * @return array + */ + public static function getFixedFields($class = null) + { + \Controller::loadDataContainer('tl_iso_product'); + + $arrFields = array(); + $arrDCA = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']; + + foreach ($arrDCA as $field => $config) { + $fixed = $config['attributes']['fixed']; + $isArray = is_array($fixed); + + if ((!$isArray && $fixed) || (null !== $class && $isArray && in_array($class, $fixed, true))) { + $arrFields[] = $field; + } + } + + return $arrFields; + } + + /** + * Return list of variant fixed fields + * Fixed fields cannot be disabled in product type config + * + * @param string|null $class + * * @return array */ - public static function getFixedFields() + public static function getVariantFixedFields($class = null) + { + \Controller::loadDataContainer('tl_iso_product'); + + $arrFields = array(); + $arrDCA = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']; + + foreach ($arrDCA as $field => $config) { + $fixed = $config['attributes']['variant_fixed']; + $isArray = is_array($fixed); + + if ((!$isArray && $fixed) || (null !== $class && $isArray && in_array($class, $fixed, true))) { + $arrFields[] = $field; + } + } + + return $arrFields; + } + + /** + * Return list of excluded fields + * Excluded fields cannot be enabled in product type config + * + * @return array + */ + public static function getExcludedFields() { static $arrFields; @@ -756,7 +836,7 @@ public static function getFixedFields() $arrDCA = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']; foreach ($arrDCA as $field => $config) { - if ($config['attributes']['fixed']) { + if ($config['attributes']['excluded']) { $arrFields[] = $field; } } @@ -766,12 +846,38 @@ public static function getFixedFields() } /** - * Return list of fixed fields - * Fixed fields cannot be disabled in product type config + * Return list of variant excluded fields + * Excluded fields cannot be disabled in product type config + * + * @return array + */ + public static function getVariantExcludedFields() + { + static $arrFields; + + if (null === $arrFields) { + \Controller::loadDataContainer('tl_iso_product'); + + $arrFields = array(); + $arrDCA = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']; + + foreach ($arrDCA as $field => $config) { + if ($config['attributes']['variant_excluded']) { + $arrFields[] = $field; + } + } + } + + return $arrFields; + } + + /** + * Return list of singular fields + * Singular fields must not be enabled in product AND variant configuration. * * @return array */ - public static function getVariantFixedFields() + public static function getSingularFields() { static $arrFields; @@ -782,7 +888,7 @@ public static function getVariantFixedFields() $arrDCA = &$GLOBALS['TL_DCA']['tl_iso_product']['fields']; foreach ($arrDCA as $field => $config) { - if ($config['attributes']['variant_fixed']) { + if ($config['attributes']['singular']) { $arrFields[] = $field; } } diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/AbstractAttributeWithOptions.php b/system/modules/isotope/library/Isotope/Model/Attribute/AbstractAttributeWithOptions.php index 5b63e0a828..92656f6dd2 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/AbstractAttributeWithOptions.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/AbstractAttributeWithOptions.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; @@ -18,6 +17,7 @@ use Isotope\Model\Attribute; use Isotope\Model\AttributeOption; use Isotope\Model\Product; +use Isotope\Model\ProductCollectionItem; use Isotope\Translation; abstract class AbstractAttributeWithOptions extends Attribute implements IsotopeAttributeWithOptions @@ -25,14 +25,12 @@ abstract class AbstractAttributeWithOptions extends Attribute implements Isotope /** * Cache product options for attribute * "false" as long as the cache is not built - * @type \Isotope\Collection\AttributeOption|array + * @var \Isotope\Collection\AttributeOption|array */ protected $varOptionsCache = false; /** - * Return true if attribute can have prices - * - * @return bool + * @inheritdoc */ public function canHavePrices() { @@ -40,9 +38,18 @@ public function canHavePrices() return false; } - return in_array($this->field_name, Attribute::getPricedFields()); + return in_array($this->field_name, Attribute::getPricedFields(), true); + } + + /** + * @inheritdoc + */ + public function getOptionsSource() + { + return $this->optionsSource; } + /** * Get options of attribute from database * @@ -59,8 +66,12 @@ public function getOptionsForWidget(IsotopeProduct $objProduct = null) switch ($this->optionsSource) { + // Single checkbox in the backend does not have options + case IsotopeAttributeWithOptions::SOURCE_NAME: + return [['value' => 1, 'label' => $this->name]]; + // @deprecated remove in Isotope 3.0 - case 'attribute': + case IsotopeAttributeWithOptions::SOURCE_ATTRIBUTE: $options = deserialize($this->options); if (!empty($options) && is_array($options)) { @@ -95,21 +106,21 @@ public function getOptionsForWidget(IsotopeProduct $objProduct = null) } break; - case 'table': + case IsotopeAttributeWithOptions::SOURCE_TABLE: $objOptions = $this->getOptionsFromManager(); if (null === $objOptions) { $arrOptions = array(); } elseif ($this->isCustomerDefined()) { - $arrOptions = $objOptions->getArrayForFrontendWidget($objProduct, (TL_MODE == 'FE')); + $arrOptions = $objOptions->getArrayForFrontendWidget($objProduct, 'FE' === TL_MODE); } else { $arrOptions = $objOptions->getArrayForBackendWidget(); } break; - case 'product': + case IsotopeAttributeWithOptions::SOURCE_PRODUCT: if ('FE' === TL_MODE && !($objProduct instanceof IsotopeProduct)) { throw new \InvalidArgumentException( 'Must pass IsotopeProduct to Attribute::getOptions if optionsSource is "product"' @@ -122,7 +133,7 @@ public function getOptionsForWidget(IsotopeProduct $objProduct = null) return array(); } else { - return $objOptions->getArrayForFrontendWidget($objProduct, (TL_MODE == 'FE')); + return $objOptions->getArrayForFrontendWidget($objProduct, 'FE' === TL_MODE); } break; @@ -157,25 +168,25 @@ public function getOptionsFromManager(IsotopeProduct $objProduct = null) { switch ($this->optionsSource) { - case 'table': + case IsotopeAttributeWithOptions::SOURCE_TABLE: if (false === $this->varOptionsCache) { $this->varOptionsCache = AttributeOption::findByAttribute($this); } return $this->varOptionsCache; - case 'product': - /** @type IsotopeProduct|Product|Product\Standard $objProduct */ + case IsotopeAttributeWithOptions::SOURCE_PRODUCT: if ('FE' === TL_MODE && !($objProduct instanceof IsotopeProduct)) { throw new \InvalidArgumentException( 'Must pass IsotopeProduct to Attribute::getOptionsFromManager if optionsSource is "product"' ); - } - $productId = $objProduct->id; + $productId = $objProduct->getId(); - if ($objProduct->isVariant() && !in_array($this->field_name, $objProduct->getVariantAttributes())) { + if ($objProduct->isVariant() + && !in_array($this->field_name, $objProduct->getVariantAttributes(), true) + ) { $productId = $objProduct->getProductId(); } @@ -203,13 +214,28 @@ public function getOptionsFromManager(IsotopeProduct $objProduct = null) * @param array $arrValues * * @return array + * + * @throws \UnexpectedValueException on invalid options source */ public function getOptionsForProductFilter(array $arrValues) { switch ($this->optionsSource) { + case IsotopeAttributeWithOptions::SOURCE_NAME: + $arrOptions = []; + + if (array_key_exists('1', $arrValues)) { + $arrOptions['1'] = $GLOBALS['TL_LANG']['MSC']['yes']; + } + + if (array_key_exists('', $arrValues)) { + $arrOptions[''] = $GLOBALS['TL_LANG']['MSC']['no']; + } + + return $arrOptions; + // @deprecated remove in Isotope 3.0 - case 'attribute': + case IsotopeAttributeWithOptions::SOURCE_ATTRIBUTE: $arrOptions = array(); $options = deserialize($this->options); @@ -223,9 +249,8 @@ public function getOptionsForProductFilter(array $arrValues) } return $arrOptions; - break; - case 'foreignKey': + case IsotopeAttributeWithOptions::SOURCE_FOREIGNKEY: list($table, $field) = explode('.', $this->foreignKey, 2); $result = \Database::getInstance()->execute(" SELECT id AS value, $field AS label @@ -234,15 +259,13 @@ public function getOptionsForProductFilter(array $arrValues) "); return $result->fetchAllAssoc(); - break; - case 'table': - case 'product': - /** @type \Isotope\Collection\AttributeOption $objOptions */ + case IsotopeAttributeWithOptions::SOURCE_TABLE: + case IsotopeAttributeWithOptions::SOURCE_PRODUCT: + /** @var \Isotope\Collection\AttributeOption $objOptions */ $objOptions = AttributeOption::findPublishedByIds($arrValues); return (null === $objOptions) ? array() : $objOptions->getArrayForFrontendWidget(null, false); - break; default: throw new \UnexpectedValueException( @@ -263,7 +286,9 @@ public function getValue(IsotopeProduct $product) $value = parent::getValue($product); if ($this->multiple) { - if ($this->optionsSource == 'table' || $this->optionsSource == 'foreignKey') { + if (IsotopeAttributeWithOptions::SOURCE_TABLE === $this->optionsSource + || IsotopeAttributeWithOptions::SOURCE_FOREIGNKEY === $this->optionsSource + ) { $value = explode(',', $value); } else { $value = deserialize($value); @@ -273,6 +298,59 @@ public function getValue(IsotopeProduct $product) return $value; } + /** + * @inheritdoc + */ + public function generateValue($value, array $options = []) + { + $product = null; + + if ($options['product'] instanceof IsotopeProduct) { + $product = $options['product']; + } elseif (($item = $options['item']) instanceof ProductCollectionItem && $item->hasProduct()) { + $product = $item->getProduct(); + } + + if (null === $product) { + return parent::generateValue($value, $options); + } + + /** @var \Widget $strClass */ + $strClass = $this->getFrontendWidget(); + $arrField = $strClass::getAttributesFromDca( + $GLOBALS['TL_DCA']['tl_iso_product']['fields'][$this->field_name], + $this->field_name, + $value, + $this->field_name, + 'tl_iso_product', + $product + ); + + if (empty($arrField['options']) && is_array($arrField['options'])) { + return parent::generateValue($value, $options); + } + + $values = (array) $value; + $arrOptions = []; + + foreach ($arrField['options'] as $k => &$option) { + if (($pos = array_search($option['value'], $values)) !== false) { + $arrOptions[$k] = $option['label']; + unset($values[$pos]); + + if (0 === count($values)) { + break; + } + } + } + unset($option); + + if (0 !== count($values)) { + $arrOptions = array_merge($arrOptions, $values); + } + + return implode(', ', $arrOptions); + } /** * Adjust DCA field for this attribute @@ -283,23 +361,30 @@ public function saveToDCA(array &$arrData) { $this->fe_search = false; - if ($this->isCustomerDefined() && $this->optionsSource == 'product') { + if ($this->isCustomerDefined() && IsotopeAttributeWithOptions::SOURCE_PRODUCT === $this->optionsSource) { $this->be_filter = false; $this->fe_filter = false; } - if ($this->multiple && ($this->optionsSource == 'table' || $this->optionsSource == 'foreignKey')) { + if ($this->multiple + && (IsotopeAttributeWithOptions::SOURCE_TABLE === $this->optionsSource + || IsotopeAttributeWithOptions::SOURCE_FOREIGNKEY === $this->optionsSource + ) + ) { $this->csv = ','; } parent::saveToDCA($arrData); - if (TL_MODE == 'BE') { - if ($this->be_filter && \Input::get('act') == '') { + if ('BE' === TL_MODE) { + if ($this->be_filter + && \Input::get('act') == '' + && IsotopeAttributeWithOptions::SOURCE_TABLE === $this->optionsSource + ) { $arrData['fields'][$this->field_name]['foreignKey'] = 'tl_iso_attribute_option.label'; } - if ($this->isCustomerDefined() && $this->optionsSource == 'product') { + if ($this->isCustomerDefined() && IsotopeAttributeWithOptions::SOURCE_PRODUCT === $this->optionsSource) { \Controller::loadDataContainer(static::$strTable); \System::loadLanguageFile(static::$strTable); @@ -314,7 +399,7 @@ public function saveToDCA(array &$arrData) $arrField['attributes']['dynamic'] = true; $arrField['foreignKey'] = 'tl_iso_attribute_option.label'; - if (\Input::get('do') == 'iso_products') { + if ('iso_products' === \Input::get('do')) { $arrField['eval']['whereCondition'] = "field_name='{$this->field_name}'"; } diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/BasePrice.php b/system/modules/isotope/library/Isotope/Model/Attribute/BasePrice.php index 81f954ce58..cf1c7eae72 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/BasePrice.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/BasePrice.php @@ -3,30 +3,29 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Isotope; use Isotope\Model\Attribute; - /** - * Attribute to impelement base price calculation + * Attribute to implement base price calculation * * @copyright Isotope eCommerce Workgroup 2009-2012 * @author Andreas Schempp */ -class BasePrice extends Attribute implements IsotopeAttribute +class BasePrice extends Attribute { - + /** + * @inheritdoc + */ public function __construct(\Database\Result $objResult = null) { // This class should not be registered @@ -36,6 +35,9 @@ public function __construct(\Database\Result $objResult = null) parent::__construct($objResult); } + /** + * @inheritdoc + */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); @@ -43,6 +45,9 @@ public function saveToDCA(array &$arrData) $arrData['fields'][$this->field_name]['sql'] = "varchar(255) NOT NULL default ''"; } + /** + * @inheritdoc + */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) { $arrData = deserialize($objProduct->{$this->field_name}); diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/CheckboxMenu.php b/system/modules/isotope/library/Isotope/Model/Attribute/CheckboxMenu.php index dd64f45d59..c87ede2c48 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/CheckboxMenu.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/CheckboxMenu.php @@ -3,17 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; - +use Isotope\Interfaces\IsotopeAttributeWithOptions; /** * Attribute to implement CheckboxMenu widget @@ -21,12 +19,10 @@ * @copyright Isotope eCommerce Workgroup 2009-2012 * @author Andreas Schempp */ -class CheckboxMenu extends AbstractAttributeWithOptions implements IsotopeAttribute +class CheckboxMenu extends AbstractAttributeWithOptions { - /** - * Adjust the options wizard for this attribute - * @return array + * @inheritdoc */ public function prepareOptionsWizard($objWidget, $arrColumns) { @@ -36,17 +32,19 @@ public function prepareOptionsWizard($objWidget, $arrColumns) } /** - * Set SQL field for this attribute - * @param array + * @inheritdoc */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); - if ($this->multiple) { - $arrData['fields'][$this->field_name]['sql'] = "blob NULL"; - } else { + if (!$this->variant_option && $this->optionsSource === IsotopeAttributeWithOptions::SOURCE_NAME) { + $arrData['fields'][$this->field_name]['eval']['multiple'] = false; $arrData['fields'][$this->field_name]['sql'] = "char(1) NOT NULL default ''"; + $arrData['fields'][$this->field_name]['options']; + } else { + $arrData['fields'][$this->field_name]['eval']['multiple'] = true; + $arrData['fields'][$this->field_name]['sql'] = 'blob NULL'; } } } diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/Downloads.php b/system/modules/isotope/library/Isotope/Model/Attribute/Downloads.php index d644ef7d8f..8cd7acbc6f 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/Downloads.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/Downloads.php @@ -3,86 +3,35 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; - /** * Attribute to provide downloads in the product details * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Christoph Wiechert + * @author Andreas Schempp + * @author Christoph Wiechert */ -class Downloads extends Attribute implements IsotopeAttribute +class Downloads extends FileTree { - public function saveToDCA(array &$arrData) - { - parent::saveToDCA($arrData); - - $arrData['fields'][$this->field_name]['sql'] = "blob NULL"; - - if ($this->fieldType == 'checkbox') { - $arrData['fields'][$this->field_name]['sql'] = "blob NULL"; - $arrData['fields'][$this->field_name]['eval']['multiple'] = true; - - // Custom sorting - if ($this->sortBy == 'custom') { - $strOrderField = $this->field_name . '_order'; - $arrData['fields'][$this->field_name]['eval']['orderField'] = $strOrderField; - $arrData['fields'][$strOrderField]['sql'] = "blob NULL"; - } - } else { - $arrData['fields'][$this->field_name]['sql'] = "binary(16) NULL"; - $arrData['fields'][$this->field_name]['eval']['multiple'] = false; - } - } - /** - * Return class name for the backend widget or false if none should be available - * @return string + * @inheritdoc */ public function getBackendWidget() { return $GLOBALS['BE_FFL']['fileTree']; } - - /** - * Make sure array values are unserialized. - * - * @param IsotopeProduct $product - * - * @return mixed - */ - public function getValue(IsotopeProduct $product) - { - $value = parent::getValue($product); - - if ('checkbox' === $this->fieldType) { - $value = deserialize($value); - } - - return (array) $value; - } - - /** - * Generate download attributes - * - * @param \Isotope\Interfaces\IsotopeProduct $objProduct - * @param array $arrOptions - * @return string + * @inheritdoc */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) { diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/FileTree.php b/system/modules/isotope/library/Isotope/Model/Attribute/FileTree.php index e400ac2103..a8bd5b4069 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/FileTree.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/FileTree.php @@ -3,55 +3,193 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; - /** - * Attribute to impelement FileTree widget + * Attribute to implement FileTree widget * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * @author Andreas Schempp */ -class FileTree extends Attribute implements IsotopeAttribute +class FileTree extends Attribute { - + /** + * @inheritdoc + */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); - $arrData['fields'][$this->field_name]['sql'] = "binary(16) NULL"; - - if ($this->fieldType == 'checkbox') { + if ('checkbox' === $this->fieldType) { + $arrData['fields'][$this->field_name]['sql'] = 'blob NULL'; $arrData['fields'][$this->field_name]['eval']['multiple'] = true; - $arrData['fields'][$this->field_name]['sql'] = "blob NULL"; + + // Custom sorting + if ('custom' === $this->sortBy) { + $arrData['fields'][$this->field_name]['eval']['orderField'] = $this->getOrderFieldName(); + $arrData['fields'][$this->getOrderFieldName()]['sql'] = 'blob NULL'; + } + } else { + $arrData['fields'][$this->field_name]['sql'] = 'binary(16) NULL'; + $arrData['fields'][$this->field_name]['eval']['multiple'] = false; } } - public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) + /** + * Make sure array values are unserialized. + * + * @param IsotopeProduct $product + * + * @return mixed + */ + public function getValue(IsotopeProduct $product) { - $varValue = $objProduct->{$this->field_name}; + $value = parent::getValue($product); - if ($this->fieldType == 'checkbox') { - $varValue = deserialize($varValue, true); + if ('checkbox' === $this->fieldType) { + $value = deserialize($value); } - $objFiles = \FilesModel::findMultipleByIds((array) $varValue); + return (array) $value; + } + + /** + * @inheritdoc + */ + public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) + { + $varValue = $this->getValue($objProduct); + + /** @var \FilesModel[] $objFiles */ + $objFiles = \FilesModel::findMultipleByUuids((array) $varValue); if (null !== $objFiles) { - return $this->generateList($objFiles->fetchEach('path')); + $files = []; + + foreach ($objFiles as $objFile) { + if (!is_file(TL_ROOT.'/'.$objFile->path)) { + continue; + } + + $files[$objFile->path] = $objFile; + } + + // Sort the files + $files = $this->sortFiles($files, $objProduct); + + // Convert the file models to paths + foreach ($files as $k => $v) { + $files[$k] = $v->path; + } + + return $this->generateList($files); } return ''; } + + /** + * Sort the files + * + * @param \FilesModel[] $files + * @param IsotopeProduct $product + * + * @return array + */ + private function sortFiles(array $files, IsotopeProduct $product) + { + switch ($this->sortBy) { + default: + case 'name_asc': + uksort($files, 'basename_natcasecmp'); + break; + + case 'name_desc': + uksort($files, 'basename_natcasercmp'); + break; + + case 'date_asc': + array_multisort($files, SORT_NUMERIC, $this->getSortDateHelper($files), SORT_ASC); + break; + + case 'date_desc': + array_multisort($files, SORT_NUMERIC, $this->getSortDateHelper($files), SORT_DESC); + break; + + case 'random': + shuffle($files); + break; + + case 'custom': + if (($orderSource = $product->{$this->getOrderFieldName()}) != '') { + $tmp = deserialize($orderSource); + + if (!empty($tmp) && is_array($tmp)) { + // Remove all values + $order = array_map( + function () { + }, + array_flip($tmp) + ); + + // Move the matching elements to their position in $order + foreach ($files as $k => $file) { + if (array_key_exists($file->uuid, $order)) { + $order[$file->uuid] = $file; + unset($files[$k]); + } + } + + // Append the left-over images at the end + if (count($files) > 0) { + $order = array_merge($order, array_values($files)); + } + + // Remove empty (unreplaced) entries + $files = array_filter($order); + unset($order); + } + } + break; + } + + return array_values($files); + } + + /** + * Get the sort date helper + * + * @param \FilesModel[] $files + * + * @return array + */ + private function getSortDateHelper(array $files) + { + $helper = []; + + foreach ($files as $fileModel) { + $file = new \File($fileModel->path); + $helper[] = $file->mtime; + } + + return $helper; + } + + /** + * Get the order field name + * + * @return string + */ + private function getOrderFieldName() + { + return $this->field_name . '_order'; + } } diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/FineUploader.php b/system/modules/isotope/library/Isotope/Model/Attribute/FineUploader.php new file mode 100644 index 0000000000..fe71acfcf9 --- /dev/null +++ b/system/modules/isotope/library/Isotope/Model/Attribute/FineUploader.php @@ -0,0 +1,124 @@ + + */ +class FineUploader extends Attribute implements IsotopeAttribute, \uploadable +{ + + /** + * Upload widget is always customer defined + * @return bool + */ + public function isCustomerDefined() + { + return true; + } + + /** + * @inheritdoc + */ + public function getBackendWidget() + { + return false; + } + + /** + * @inheritdoc + */ + public function saveToDCA(array &$arrData) + { + parent::saveToDCA($arrData); + + unset($arrData['fields'][$this->field_name]['sql']); + + // An upload field is always customer defined + $arrData['fields'][$this->field_name]['attributes']['customer_defined'] = true; + + $arrData['fields'][$this->field_name]['eval']['storeFile'] = false; + $arrData['fields'][$this->field_name]['save_callback'][] = 'processFiles'; + $arrData['fields'][$this->field_name]['eval']['doNotOverwrite'] = true; + $arrData['fields'][$this->field_name]['eval']['useHomeDir'] = false; + $arrData['fields'][$this->field_name]['eval']['addToDbafs'] = false; + + if ($this->multiple) { + $arrData['fields'][$this->field_name]['eval']['multiple'] = true; + $arrData['fields'][$this->field_name]['eval']['uploaderLimit'] = (int) $this->size; + } else { + $arrData['fields'][$this->field_name]['eval']['multiple'] = false; + $arrData['fields'][$this->field_name]['eval']['uploaderLimit'] = 1; + } + } + + /** + * @inheritdoc + */ + public function generateValue($value, array $options = []) + { + if (empty($value)) { + return ''; + } + + /** @var ProductCollectionItem $item */ + if (($item = $options['item']) instanceof ProductCollectionItem && !is_file(TL_ROOT . '/' . $value)) { + $item->addError('File does not exist.'); // TODO add real error message + } + + return substr(basename($value), 9); + } + + /** + * @param mixed $value + * @param IsotopeProduct $product + * @param Widget $widget + * + * @return mixed + */ + public function processFiles($value, IsotopeProduct $product, Widget $widget) + { + $files = []; + + foreach ((array) $value as $temp) { + $file = basename($temp); + + // Make sure the upload folder exists and is protected + $folder = new Folder('isotope/uploads'); + $folder->protect(); + + $file = substr(md5_file(TL_ROOT . '/' . $temp), 0, 8) . '-' . $file; + $file = FileUpload::getFileName($file, $folder->path); + $file = $folder->path . '/' . $file; + + Files::getInstance()->rename($temp, $file); + Files::getInstance()->chmod($file, \Config::get('defaultFileChmod')); + + $files[] = $file; + } + + return is_array($value) ? $files : $files[0]; + } +} diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/Media.php b/system/modules/isotope/library/Isotope/Model/Attribute/Media.php index 5ef1e18588..84e02b9d75 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/Media.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/Media.php @@ -3,28 +3,28 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; - /** * Attribute to provide an audio/video player in the product details * * @copyright Isotope eCommerce Workgroup 2009-2014 * @author Christoph Wiechert */ -class Media extends Attribute implements IsotopeAttribute +class Media extends Attribute { + /** + * @inheritdoc + */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); @@ -38,21 +38,15 @@ public function saveToDCA(array &$arrData) } /** - * Return class name for the backend widget or false if none should be available - * @return string + * @inheritdoc */ public function getBackendWidget() { return $GLOBALS['BE_FFL']['fileTree']; } - /** - * Generate media attribute - * - * @param \Isotope\Interfaces\IsotopeProduct $objProduct - * @param array $arrOptions - * @return string + * @inheritdoc */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) { diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/MediaManager.php b/system/modules/isotope/library/Isotope/Model/Attribute/MediaManager.php index 3e46515173..37e915679f 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/MediaManager.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/MediaManager.php @@ -3,30 +3,26 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; use Isotope\Model\Gallery; - /** - * Attribute to impelement additional image galleries - * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * Attribute to implement additional image galleries */ -class MediaManager extends Attribute implements IsotopeAttribute +class MediaManager extends Attribute { - + /** + * @inheritdoc + */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); @@ -37,6 +33,11 @@ public function saveToDCA(array &$arrData) $arrData['fields'][$this->field_name]['attributes']['fetch_fallback'] = true; } + /** + * @inheritdoc + * + * @throws \BadMethodCallException because the MediaManager cannot be generated for frontend. + */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) { throw new \BadMethodCallException('MediaManager attribute cannot be generated'); diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/Price.php b/system/modules/isotope/library/Isotope/Model/Attribute/Price.php index 8b5bf5da18..4254664aa9 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/Price.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/Price.php @@ -3,29 +3,25 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; - /** - * Attribute to impelement base price calculation - * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * Attribute to implement base price calculation */ -class Price extends Attribute implements IsotopeAttribute +class Price extends Attribute { - + /** + * @inheritdoc + */ public function __construct(\Database\Result $objResult = null) { // This class should not be registered @@ -35,16 +31,25 @@ public function __construct(\Database\Result $objResult = null) parent::__construct($objResult); } + /** + * @inheritdoc + */ public function getBackendWidget() { return $GLOBALS['BE_FFL']['timePeriod']; } + /** + * @inheritdoc + */ public function getFrontendWidget() { return false; } + /** + * @inheritdoc + */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) { $objPrice = $objProduct->getPrice(); @@ -53,6 +58,6 @@ public function generate(IsotopeProduct $objProduct, array $arrOptions = array() return ''; } - return $objPrice->generate($objProduct->getRelated('type')->showPriceTiers()); + return $objPrice->generate($objProduct->getType()->showPriceTiers()); } } diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/PriceTiers.php b/system/modules/isotope/library/Isotope/Model/Attribute/PriceTiers.php index 1aee3f6752..92a6658c65 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/PriceTiers.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/PriceTiers.php @@ -3,29 +3,25 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; - /** - * Attribute to impelement base price calculation - * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * Attribute to implement base price calculation */ -class PriceTiers extends Attribute implements IsotopeAttribute +class PriceTiers extends Attribute { - + /** + * @inheritdoc + */ public function __construct(\Database\Result $objResult = null) { // This class should not be registered @@ -35,6 +31,9 @@ public function __construct(\Database\Result $objResult = null) parent::__construct($objResult); } + /** + * @inheritdoc + */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) { $objPrice = $objProduct->getPrice(); diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/RadioButton.php b/system/modules/isotope/library/Isotope/Model/Attribute/RadioButton.php index a330f2ed73..ba76ad57da 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/RadioButton.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/RadioButton.php @@ -3,31 +3,26 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeAttributeForVariants; - /** * Attribute to impelement RadioButton widget * * @copyright Isotope eCommerce Workgroup 2009-2012 * @author Andreas Schempp */ -class RadioButton extends AbstractAttributeWithOptions implements IsotopeAttribute, IsotopeAttributeForVariants +class RadioButton extends AbstractAttributeWithOptions implements IsotopeAttributeForVariants { - /** - * Adjust the options wizard for this attribute - * @return array + * @inheritdoc */ public function prepareOptionsWizard($objWidget, $arrColumns) { @@ -41,8 +36,7 @@ public function prepareOptionsWizard($objWidget, $arrColumns) } /** - * Set SQL field for this attribute - * @param arary + * @inheritdoc */ public function saveToDCA(array &$arrData) { diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/SelectMenu.php b/system/modules/isotope/library/Isotope/Model/Attribute/SelectMenu.php index d59121222b..b6782f5caf 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/SelectMenu.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/SelectMenu.php @@ -3,45 +3,38 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeAttributeForVariants; - /** * Attribute to impelement SelectMenu widget * * @copyright Isotope eCommerce Workgroup 2009-2012 * @author Andreas Schempp */ -class SelectMenu extends AbstractAttributeWithOptions implements IsotopeAttribute, IsotopeAttributeForVariants +class SelectMenu extends AbstractAttributeWithOptions implements IsotopeAttributeForVariants { - /** - * Adjust the options wizard for this attribute - * @return array + * @inheritdoc */ public function prepareOptionsWizard($objWidget, $arrColumns) { if ($this->isVariantOption()) { - unset($arrColumns['default']); - unset($arrColumns['group']); + unset($arrColumns['default'], $arrColumns['group']); } return $arrColumns; } /** - * Adjust DCA field for this attribute - * @param arary + * @inheritdoc */ public function saveToDCA(array &$arrData) { @@ -53,8 +46,12 @@ public function saveToDCA(array &$arrData) parent::saveToDCA($arrData); + if ($this->isVariantOption()) { + $arrData['fields'][$this->field_name]['eval']['includeBlankOption'] = true; + } + if ($this->multiple) { - $arrData['fields'][$this->field_name]['sql'] = "blob NULL"; + $arrData['fields'][$this->field_name]['sql'] = 'blob NULL'; } else { if ('attribute' === $this->optionsSource) { $arrData['fields'][$this->field_name]['sql'] = "varchar(255) NOT NULL default ''"; diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/TextArea.php b/system/modules/isotope/library/Isotope/Model/Attribute/TextArea.php index eefb475b1a..e270eaf850 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/TextArea.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/TextArea.php @@ -3,34 +3,30 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; - /** * Attribute to implement TextArea widget - * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp */ -class TextArea extends Attribute implements IsotopeAttribute +class TextArea extends Attribute { - + /** + * @inheritdoc + */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); - $arrData['fields'][$this->field_name]['sql'] = "text NULL"; + $arrData['fields'][$this->field_name]['sql'] = 'text NULL'; // Textarea cannot be w50 if ($this->rte != '') { @@ -38,6 +34,9 @@ public function saveToDCA(array &$arrData) } } + /** + * @inheritdoc + */ public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) { if ($this->rte == '') { diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/TextField.php b/system/modules/isotope/library/Isotope/Model/Attribute/TextField.php index 420eb0097e..4ed157e517 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/TextField.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/TextField.php @@ -3,28 +3,24 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; use Isotope\Model\Attribute; - /** - * Attribute to impelement TextField widget - * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * Attribute to implement TextField widget */ -class TextField extends Attribute implements IsotopeAttribute +class TextField extends Attribute { - + /** + * @inheritdoc + */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/Upload.php b/system/modules/isotope/library/Isotope/Model/Attribute/Upload.php index 83b39be5a2..8dfbce42e6 100644 --- a/system/modules/isotope/library/Isotope/Model/Attribute/Upload.php +++ b/system/modules/isotope/library/Isotope/Model/Attribute/Upload.php @@ -3,18 +3,20 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Attribute; -use Isotope\Interfaces\IsotopeAttribute; +use Contao\Files; +use Contao\Folder; +use Haste\Util\FileUpload; +use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; - +use Isotope\Model\ProductCollectionItem; /** * Attribute to implement frontend uploads @@ -22,7 +24,7 @@ * @copyright Isotope eCommerce Workgroup 2009-2012 * @author Andreas Schempp */ -class Upload extends Attribute implements IsotopeAttribute +class Upload extends Attribute implements \uploadable { /** @@ -34,11 +36,17 @@ public function isCustomerDefined() return true; } + /** + * @inheritdoc + */ public function getBackendWidget() { return false; } + /** + * @inheritdoc + */ public function saveToDCA(array &$arrData) { parent::saveToDCA($arrData); @@ -48,7 +56,57 @@ public function saveToDCA(array &$arrData) // An upload field is always customer defined $arrData['fields'][$this->field_name]['attributes']['customer_defined'] = true; - // Install save_callback for upload widgets - $arrData['fields'][$this->field_name]['save_callback'][] = array('Isotope\Frontend', 'saveUpload'); + // Files are stored by Isotope + $arrData['fields'][$this->field_name]['eval']['storeFile'] = false; + unset($arrData['fields'][$this->field_name]['attributes']['storeFile']); + $arrData['fields'][$this->field_name]['save_callback'][] = 'processFiles'; + } + + /** + * @inheritdoc + */ + public function generateValue($value, array $options = []) + { + if (empty($value)) { + return ''; + } + + /** @var ProductCollectionItem $item */ + if (($item = $options['item']) instanceof ProductCollectionItem && !is_file(TL_ROOT . '/' . $value)) { + $item->addError('File does not exist.'); // TODO add real error message + } + + return substr(basename($value), 9); + } + + /** + * @param mixed $value + * @param IsotopeProduct $product + * @param \Widget $widget + * + * @return mixed + */ + public function processFiles($value, IsotopeProduct $product, \Widget $widget) + { + if (!isset($_SESSION['FILES'][$this->field_name]) || empty($_SESSION['FILES'][$this->field_name]['name'])) { + return $value; + } + + $file = $_SESSION['FILES'][$this->field_name]['name']; + $temp = $_SESSION['FILES'][$this->field_name]['tmp_name']; + unset($_SESSION['FILES'][$this->field_name]); + + // Make sure the upload folder exists and is protected + $folder = new Folder('isotope/uploads'); + $folder->protect(); + + $file = substr(md5_file($temp), 0, 8) . '-' . $file; + $file = FileUpload::getFileName($file, $folder->path); + $file = $folder->path . '/' . $file; + + Files::getInstance()->move_uploaded_file($temp, $file); + Files::getInstance()->chmod($file, \Config::get('defaultFileChmod')); + + return $file; } } diff --git a/system/modules/isotope/library/Isotope/Model/Attribute/Weight.php b/system/modules/isotope/library/Isotope/Model/Attribute/Weight.php new file mode 100644 index 0000000000..4fdcb97406 --- /dev/null +++ b/system/modules/isotope/library/Isotope/Model/Attribute/Weight.php @@ -0,0 +1,67 @@ +arrData['type'] = 'weight'; + + parent::__construct($objResult); + } + + /** + * @inheritdoc + */ + public function getBackendWidget() + { + return $GLOBALS['BE_FFL']['timePeriod']; + } + + /** + * @inheritdoc + */ + public function getFrontendWidget() + { + return false; + } + + /** + * @inheritdoc + */ + public function generate(IsotopeProduct $objProduct, array $arrOptions = array()) + { + if (!$objProduct instanceof WeightAggregate || ($weight = $objProduct->getWeight()) === null) { + return ''; + } + + return sprintf( + $arrOptions['format'] ?: '%s %s', + Isotope::formatPrice($weight->getWeightValue(), false), + $weight->getWeightUnit() + ); + } +} diff --git a/system/modules/isotope/library/Isotope/Model/AttributeOption.php b/system/modules/isotope/library/Isotope/Model/AttributeOption.php index 8f514faa7b..0b64e8e13c 100644 --- a/system/modules/isotope/library/Isotope/Model/AttributeOption.php +++ b/system/modules/isotope/library/Isotope/Model/AttributeOption.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -55,9 +54,9 @@ public function getAsArray(IsotopeProduct $objProduct = null, $blnPriceInLabel = { return array( 'value' => $this->id, - 'label' => ($blnPriceInLabel ? $this->getLabel($objProduct) : $this->label), - 'group' => ($this->type == 'group' ? '1' : ''), - 'default' => ($this->isDefault ? '1' : ''), + 'label' => $blnPriceInLabel ? $this->getLabel($objProduct) : $this->label, + 'group' => 'group' === $this->type ? '1' : '', + 'default' => $this->isDefault ? '1' : '', 'model' => $this ); } @@ -69,10 +68,10 @@ public function getAsArray(IsotopeProduct $objProduct = null, $blnPriceInLabel = */ public function getAttribute() { - if ($this->ptable == 'tl_iso_attribute') { + if ('tl_iso_attribute' === $this->ptable) { return Attribute::findByPk($this->pid); - } elseif ($this->ptable == 'tl_iso_product') { + } elseif ('tl_iso_product' === $this->ptable) { return Attribute::findByFieldName($this->field_name); } else { @@ -87,7 +86,7 @@ public function getAttribute() */ public function isPercentage() { - return substr($this->arrData['price'], -1) == '%' ? true : false; + return '%' === substr($this->arrData['price'], -1) ? true : false; } /** @@ -101,7 +100,7 @@ public function isFromPrice(IsotopeProduct $objProduct = null) { if ($this->isPercentage() && null !== $objProduct) { - /** @type ProductPrice[] $objPrice */ + /** @var ProductPrice[] $objPrice */ $objPrice = $objProduct->getPrice(); if (null !== $objPrice && $objPrice instanceof ProductPriceCollection) { @@ -147,7 +146,7 @@ public function getPrice(IsotopeProduct $objProduct = null) { if ($this->isPercentage() && null !== $objProduct) { - /** @type ProductPrice|ProductPrice[] $objPrice */ + /** @var ProductPrice|ProductPrice[] $objPrice */ $objPrice = $objProduct->getPrice(); if (null !== $objPrice) { @@ -170,7 +169,7 @@ public function getPrice(IsotopeProduct $objProduct = null) } } else { - /** @type ProductPrice|ProductPrice[] $objPrice */ + /** @var ProductPrice|ProductPrice[] $objPrice */ if (null !== $objProduct && ($objPrice = $objProduct->getPrice()) !== null) { return Isotope::calculatePrice($this->price, $this, 'price', $objPrice->tax_class); } else { @@ -210,7 +209,7 @@ public function getLabel(IsotopeProduct $objProduct = null) $strLabel = $this->label; $priceFormat = '%s (%s)'; - /** @type Attribute $objAttribute */ + /** @var Attribute $objAttribute */ $objAttribute = null; switch ($this->ptable) { @@ -246,27 +245,25 @@ public function getLabel(IsotopeProduct $objProduct = null) * @param IsotopeAttributeWithOptions|Attribute $objAttribute * * @return \Isotope\Collection\AttributeOption|null + * + * @throws \LogicException if attribute option source is not the database table */ public static function findByAttribute(IsotopeAttributeWithOptions $objAttribute) { - if ($objAttribute->optionsSource != 'table') { + if (IsotopeAttributeWithOptions::SOURCE_TABLE !== $objAttribute->getOptionsSource()) { throw new \LogicException('Options source for attribute "' . $objAttribute->field_name . '" is not the database table'); } $t = static::getTable(); return static::findBy( - array( + [ "$t.pid=?", "$t.ptable='tl_iso_attribute'", "$t.published='1'" - ), - array( - $objAttribute->id - ), - array( - 'order' => "$t.sorting" - ) + ], + [$objAttribute->id], + ['order' => "$t.sorting"] ); } @@ -277,11 +274,13 @@ public static function findByAttribute(IsotopeAttributeWithOptions $objAttribute * @param IsotopeAttributeWithOptions $objAttribute * * @return \Isotope\Collection\AttributeOption|null + * + * @throws \LogicException if attribute options source is not the product */ public static function findByProductAndAttribute(IsotopeProduct $objProduct, IsotopeAttributeWithOptions $objAttribute) { - if ($objAttribute->optionsSource != 'product') { - throw new \LogicException('Options source for attribute "' . $objAttribute->field_name . '" is not the product'); + if (IsotopeAttributeWithOptions::SOURCE_PRODUCT !== $objAttribute->getOptionsSource()) { + throw new \LogicException('Options source for attribute "' . $objAttribute->getFieldName() . '" is not the product'); } $t = static::getTable(); @@ -300,11 +299,9 @@ public static function findByProductAndAttribute(IsotopeProduct $objProduct, Iso ), array( $productId, - $objAttribute->field_name + $objAttribute->getFieldName() ), - array( - 'order' => "$t.sorting" - ) + ['order' => "$t.sorting"] ); } diff --git a/system/modules/isotope/library/Isotope/Model/BasePrice.php b/system/modules/isotope/library/Isotope/Model/BasePrice.php index 90f7b6db8d..5e7eb389cd 100644 --- a/system/modules/isotope/library/Isotope/Model/BasePrice.php +++ b/system/modules/isotope/library/Isotope/Model/BasePrice.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/Config.php b/system/modules/isotope/library/Isotope/Model/Config.php index 9a2375ea8e..245f46826b 100644 --- a/system/modules/isotope/library/Isotope/Model/Config.php +++ b/system/modules/isotope/library/Isotope/Model/Config.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -117,7 +116,7 @@ public function getOwnerAddress() $address->phone = $this->phone; $address->vat_no = $this->vat_no; - $address->preventSaving(); + $address->preventSaving(false); return $address; } @@ -144,7 +143,8 @@ function($field) { /** * Return raw billing field data - * @return array + * + * @return array */ public function getBillingFieldsConfig() { @@ -154,11 +154,11 @@ public function getBillingFieldsConfig() if (is_array($arrFields)) { foreach ($arrFields as $arrField) { - $this->arrCache['billingFieldsConfig'][] = array( + $this->arrCache['billingFieldsConfig'][] = [ 'value' => $arrField['name'], - 'enabled' => ($arrField['billing'] != 'disabled'), - 'mandatory' => ($arrField['billing'] == 'mandatory'), - ); + 'enabled' => 'disabled' !== $arrField['billing'], + 'mandatory' => 'mandatory' === $arrField['billing'], + ]; } } } @@ -198,11 +198,11 @@ public function getShippingFieldsConfig() if (is_array($arrFields)) { foreach ($arrFields as $arrField) { - $this->arrCache['shippingFieldsConfig'][] = array( + $this->arrCache['shippingFieldsConfig'][] = [ 'value' => $arrField['name'], - 'enabled' => ($arrField['shipping'] != 'disabled'), - 'mandatory' => ($arrField['shipping'] == 'mandatory'), - ); + 'enabled' => 'disabled' !== $arrField['shipping'], + 'mandatory' => 'mandatory' === $arrField['shipping'], + ]; } } } @@ -284,7 +284,7 @@ public function getNewProductLimit() '-' . $arrPeriod['value'] . ' ' . $arrPeriod['unit'] . ' 00:00:00' ); } else { - $this->arrCache['newProductLimit'] = time(); + $this->arrCache['newProductLimit'] = \Date::floorToMinute(); } } diff --git a/system/modules/isotope/library/Isotope/Model/Document.php b/system/modules/isotope/library/Isotope/Model/Document.php index 5d0c598ccc..6ebbdc0907 100644 --- a/system/modules/isotope/library/Isotope/Model/Document.php +++ b/system/modules/isotope/library/Isotope/Model/Document.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/Document/Standard.php b/system/modules/isotope/library/Isotope/Model/Document/Standard.php index 121da3ff58..120ea23099 100644 --- a/system/modules/isotope/library/Isotope/Model/Document/Standard.php +++ b/system/modules/isotope/library/Isotope/Model/Document/Standard.php @@ -3,19 +3,19 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Document; -use Haste\Haste; use Isotope\Interfaces\IsotopeDocument; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Model\Document; +use Isotope\Model\ProductCollection; +use Isotope\Template; class Standard extends Document implements IsotopeDocument { @@ -128,25 +128,26 @@ protected function generateTemplate(IsotopeProductCollection $objCollection, arr { $objPage = \PageModel::findWithDetails($objCollection->page_id); - $objTemplate = new \Isotope\Template($this->documentTpl); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template($this->documentTpl); $objTemplate->setData($this->arrData); $objTemplate->title = \StringUtil::parseSimpleTokens($this->documentTitle, $arrTokens); $objTemplate->collection = $objCollection; - $objTemplate->config = $objCollection->getRelated('config_id'); + $objTemplate->config = $objCollection->getConfig(); $objTemplate->page = $objPage; $objTemplate->dateFormat = $objPage->dateFormat ?: $GLOBALS['TL_CONFIG']['dateFormat']; $objTemplate->timeFormat = $objPage->timeFormat ?: $GLOBALS['TL_CONFIG']['timeFormat']; $objTemplate->datimFormat = $objPage->datimFormat ?: $GLOBALS['TL_CONFIG']['datimFormat']; // Render the collection - $objCollectionTemplate = new \Isotope\Template($this->collectionTpl); + $objCollectionTemplate = new Template($this->collectionTpl); $objCollection->addToTemplate( $objCollectionTemplate, array( 'gallery' => $this->gallery, - 'sorting' => $objCollection->getItemsSortingCallable($this->orderCollectionBy), + 'sorting' => ProductCollection::getItemsSortingCallable($this->orderCollectionBy), ) ); @@ -160,7 +161,7 @@ protected function generateTemplate(IsotopeProductCollection $objCollection, arr } // Generate template and fix PDF issues, see Contao's ModuleArticle - $strBuffer = Haste::getInstance()->call('replaceInsertTags', array($objTemplate->parse(), false)); + $strBuffer = \Controller::replaceInsertTags($objTemplate->parse(), false); $strBuffer = html_entity_decode($strBuffer, ENT_QUOTES, $GLOBALS['TL_CONFIG']['characterSet']); $strBuffer = \Controller::convertRelativeUrls($strBuffer, '', true); diff --git a/system/modules/isotope/library/Isotope/Model/Download.php b/system/modules/isotope/library/Isotope/Model/Download.php index 80511a4a8c..c0505a0a12 100644 --- a/system/modules/isotope/library/Isotope/Model/Download.php +++ b/system/modules/isotope/library/Isotope/Model/Download.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/Gallery.php b/system/modules/isotope/library/Isotope/Model/Gallery.php index be38bc7ed8..f0fb5c3277 100644 --- a/system/modules/isotope/library/Isotope/Model/Gallery.php +++ b/system/modules/isotope/library/Isotope/Model/Gallery.php @@ -3,16 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; use Isotope\Interfaces\IsotopeProduct; +use Isotope\Model\Gallery\Standard as StandardGallery; /** * Gallery is the parent class for all gallery types @@ -67,7 +67,7 @@ public static function createForProductAttribute(IsotopeProduct $objProduct, $st $objGallery = static::findByPk((int) $arrConfig['gallery']); if (null === $objGallery) { - $objGallery = new \Isotope\Model\Gallery\Standard(); + $objGallery = new StandardGallery(); } $objGallery->setName($objProduct->getFormId() . '_' . $strAttribute); @@ -75,7 +75,7 @@ public static function createForProductAttribute(IsotopeProduct $objProduct, $st deserialize($objProduct->$strAttribute, true), deserialize($objProduct->{$strAttribute . '_fallback'}, true) )); - $objGallery->product_id = ($objProduct->pid ? $objProduct->pid : $objProduct->id); + $objGallery->product_id = $objProduct->getProductId(); $objGallery->href = $objProduct->generateUrl($arrConfig['jumpTo']); return $objGallery; @@ -93,21 +93,21 @@ public static function mergeMediaData($arrCurrent, $arrParent) { $arrTranslate = array(); - if (!empty($arrParent) && is_array($arrParent)) { + if (is_array($arrParent) && 0 !== count($arrParent)) { // Create an array of images where key = image name foreach ($arrParent as $image) { - if ($image['translate'] != 'all') { + if ('all' !== $image['translate']) { $arrTranslate[$image['src']] = $image; } } } - if (!empty($arrCurrent) && is_array($arrCurrent)) { + if (is_array($arrCurrent) && 0 !== count($arrCurrent)) { foreach ($arrCurrent as $i => $image) { if (isset($arrTranslate[$image['src']])) { - if ($arrTranslate[$image['src']]['translate'] == 'none') { + if ('none' === $arrTranslate[$image['src']]['translate']) { $arrCurrent[$i] = $arrTranslate[$image['src']]; } else { $arrCurrent[$i]['link'] = $arrTranslate[$image['src']]['link']; @@ -116,7 +116,7 @@ public static function mergeMediaData($arrCurrent, $arrParent) unset($arrTranslate[$image['src']]); - } elseif ($arrCurrent[$i]['translate'] != 'all') { + } elseif ('all' !== $arrCurrent[$i]['translate']) { unset($arrCurrent[$i]); } } diff --git a/system/modules/isotope/library/Isotope/Model/Gallery/ElevateZoom.php b/system/modules/isotope/library/Isotope/Model/Gallery/ElevateZoom.php index a0e8a2b1bc..4d341342a2 100644 --- a/system/modules/isotope/library/Isotope/Model/Gallery/ElevateZoom.php +++ b/system/modules/isotope/library/Isotope/Model/Gallery/ElevateZoom.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Gallery; diff --git a/system/modules/isotope/library/Isotope/Model/Gallery/Inline.php b/system/modules/isotope/library/Isotope/Model/Gallery/Inline.php index f08ad30244..d4699f995c 100644 --- a/system/modules/isotope/library/Isotope/Model/Gallery/Inline.php +++ b/system/modules/isotope/library/Isotope/Model/Gallery/Inline.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Gallery; @@ -68,9 +67,10 @@ protected function addImageToTemplate(Template $objTemplate, $strType, array $ar { parent::addImageToTemplate($objTemplate, $strType, $arrFile, $blnWatermark); - $objTemplate->uid = spl_object_hash($this); + // Backwards compatibility + $objTemplate->uid = $this->getName(); - if ($strType == 'gallery') { + if ('gallery' === $strType) { $image = $this->getImageForType('main', $arrFile, $blnWatermark); $objTemplate->link = $image['main']; diff --git a/system/modules/isotope/library/Isotope/Model/Gallery/Standard.php b/system/modules/isotope/library/Isotope/Model/Gallery/Standard.php index 48e0cd31c4..afe22975b1 100644 --- a/system/modules/isotope/library/Isotope/Model/Gallery/Standard.php +++ b/system/modules/isotope/library/Isotope/Model/Gallery/Standard.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Gallery; @@ -61,7 +60,7 @@ class Standard extends Gallery implements IsotopeGallery */ public function setRow(array $arrData) { - if ($arrData['customTpl'] != '' && TL_MODE == 'FE') { + if ($arrData['customTpl'] != '' && 'FE' === TL_MODE) { $this->strTemplate = $arrData['customTpl']; } @@ -89,6 +88,26 @@ public function getName() return $this->strName; } + /** + * Set gallery template + * + * @param string $strTemplate + */ + public function setTemplate($strTemplate) + { + $this->strTemplate = $strTemplate; + } + + /** + * Get gallery template + * + * @return string + */ + public function getTemplate() + { + return $this->strTemplate; + } + /** * Set image files * @@ -128,9 +147,8 @@ public function size() */ public function hasImages() { - // Check files array here because we don't need to generate an image - // just to know if there are images - return !empty($this->arrFiles); + // Check files array here because we don't need to generate an image just to know if there are images + return count($this->arrFiles) > 0; } /** @@ -204,7 +222,7 @@ public function generateGallery($intSkip = 1) $arrFiles = array_slice($this->arrFiles, $intSkip); // Add placeholder for the gallery - if (empty($arrFiles) && $intSkip < 1) { + if (0 === count($arrFiles) && $intSkip < 1) { $arrFiles[] = $this->getPlaceholderImage(); $watermark = false; } @@ -246,6 +264,7 @@ protected function addImageToTemplate(Template $objTemplate, $strType, array $ar $objTemplate->setData($this->arrData); $objTemplate->type = $strType; + $objTemplate->name = $this->getName(); $objTemplate->product_id = $this->product_id; $objTemplate->file = $arrFile; $objTemplate->src = $arrFile[$strType]; @@ -254,6 +273,13 @@ protected function addImageToTemplate(Template $objTemplate, $strType, array $ar $objTemplate->title = $arrFile['desc']; $objTemplate->class = trim($this->arrData['class'] . ' ' . $arrFile['class']); + // Add the missing data to the picture + $arrFile['picture']['alt'] = $objTemplate->alt; + $arrFile['picture']['title'] = $objTemplate->title; + $arrFile['picture']['class'] = $objTemplate->class; + + $objTemplate->picture = $arrFile['picture']; + switch ($this->anchor) { case 'reader': $objTemplate->hasLink = ($this->href != ''); @@ -328,12 +354,15 @@ protected function getImageForType($strType, array $arrFile, $blnWatermark = tru $size = deserialize($this->{$strType . '_size'}, true); - $objImage = new \Image($objFile); - $objImage->setTargetWidth($size[0]) - ->setTargetHeight($size[1]) - ->setResizeMode($size[2]); + try { + $strImage = \Image::create($strFile, $size)->executeResize()->getResizedPath(); + $picture = \Picture::create($strFile, $size)->getTemplateData(); + } catch (\Exception $e) { + \System::log('Image "' . $strFile . '" could not be processed: ' . $e->getMessage(), __METHOD__, TL_ERROR); - $strImage = $objImage->executeResize()->getResizedPath(); + $strImage = ''; + $picture = array('img'=>array('src'=>'', 'srcset'=>''), 'sources'=>array()); + } // Watermark if ($blnWatermark @@ -341,6 +370,16 @@ protected function getImageForType($strType, array $arrFile, $blnWatermark = tru && ($objWatermark = \FilesModel::findByUuid($this->{$strType . '_watermark_image'})) !== null ) { $strImage = Image::addWatermark($strImage, $objWatermark->path, $this->{$strType . '_watermark_position'}); + + // Apply watermark to the picture image source + if ($picture['img']['src']) { + $picture['img']['src'] = Image::addWatermark($picture['img']['src'], $objWatermark->path, $this->{$strType . '_watermark_position'}); + } + + // Apply watermark to the picture sources + foreach ($picture['sources'] as $k => $v) { + $picture['sources'][$k]['src'] = Image::addWatermark($v['src'], $objWatermark->path, $this->{$strType . '_watermark_position'}); + } } $arrSize = getimagesize(TL_ROOT . '/' . rawurldecode($strImage)); @@ -350,8 +389,9 @@ protected function getImageForType($strType, array $arrFile, $blnWatermark = tru $arrFile[$strType . '_imageSize'] = $arrSize; } - $arrFile['alt'] = specialchars($arrFile['alt'], true); - $arrFile['desc'] = specialchars($arrFile['desc'], true); + $arrFile['alt'] = specialchars($arrFile['alt'], true); + $arrFile['desc'] = specialchars($arrFile['desc'], true); + $arrFile['picture'] = $picture; $arrFile[$strType] = TL_ASSETS_URL . $strImage; diff --git a/system/modules/isotope/library/Isotope/Model/Group.php b/system/modules/isotope/library/Isotope/Model/Group.php index c0e11b0b5b..3b2907ab2a 100644 --- a/system/modules/isotope/library/Isotope/Model/Group.php +++ b/system/modules/isotope/library/Isotope/Model/Group.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/Label.php b/system/modules/isotope/library/Isotope/Model/Label.php index 295932b4fe..257d2451ce 100644 --- a/system/modules/isotope/library/Isotope/Model/Label.php +++ b/system/modules/isotope/library/Isotope/Model/Label.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/OrderStatus.php b/system/modules/isotope/library/Isotope/Model/OrderStatus.php index dda35e9dd4..9859918565 100644 --- a/system/modules/isotope/library/Isotope/Model/OrderStatus.php +++ b/system/modules/isotope/library/Isotope/Model/OrderStatus.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -16,10 +15,16 @@ /** - * ProductType defines a product configuration - * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * @property int $id + * @property int $pid + * @property int $tstamp + * @property int $sorting + * @property string $name + * @property string $color + * @property bool $paid + * @property bool $welcomescreen + * @property int $notification + * @property string $saferpay_status */ class OrderStatus extends \Model { diff --git a/system/modules/isotope/library/Isotope/Model/Payment.php b/system/modules/isotope/library/Isotope/Model/Payment.php index 223543314b..0e8b04ffa5 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment.php +++ b/system/modules/isotope/library/Isotope/Model/Payment.php @@ -3,21 +3,19 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; +use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; -use Isotope\Model\ProductCollectionSurcharge; use Isotope\Translation; - /** * Class Payment * Parent class for all payment gateway modules. @@ -48,8 +46,10 @@ * @property bool $debug * @property bool $enabled */ -abstract class Payment extends TypeAgent +abstract class Payment extends TypeAgent implements IsotopePayment { + const QUANTITY_MODE_ITEMS = 'cart_items'; + const QUANTITY_MODE_PRODUCTS = 'cart_products'; /** * Table name @@ -75,10 +75,8 @@ abstract class Payment extends TypeAgent */ protected $strTemplate; - /** - * Initialize the object - * @param array + * @inheritdoc */ public function __construct(\Database\Result $objResult = null) { @@ -91,19 +89,31 @@ public function __construct(\Database\Result $objResult = null) } } + /** + * @inheritdoc + */ + public function getId() + { + return (int) $this->id; + } /** * Return true or false depending on availability of the payment method + * * @return bool + * * @todo must check availability for a specific product collection (and not hardcoded to the current cart) + * + * @throws \InvalidArgumentException on unknown quantity mode + * @throws \UnexpectedValueException on unknown product types condition */ public function isAvailable() { - if (!$this->enabled && BE_USER_LOGGED_IN !== true) { + if (!$this->enabled && true !== BE_USER_LOGGED_IN) { return false; } - if (($this->guests && FE_USER_LOGGED_IN === true) || ($this->protected && FE_USER_LOGGED_IN !== true)) { + if (($this->guests && true === FE_USER_LOGGED_IN) || ($this->protected && true !== FE_USER_LOGGED_IN)) { return false; } @@ -111,8 +121,8 @@ public function isAvailable() $arrGroups = deserialize($this->groups); if (!is_array($arrGroups) - || empty($arrGroups) - || !count(array_intersect($arrGroups, \FrontendUser::getInstance()->groups)) // Can't use empty() because its an object property (using __get) + || 0 === count($arrGroups) + || 0 === count(array_intersect($arrGroups, \FrontendUser::getInstance()->groups)) ) { return false; } @@ -126,11 +136,11 @@ public function isAvailable() if ($this->minimum_quantity > 0 || $this->maximum_quantity > 0) { switch ($this->quantity_mode) { - case 'cart_items': + case static::QUANTITY_MODE_ITEMS: $quantity = Isotope::getCart()->sumItemsQuantity(); break; - case 'cart_products': + case static::QUANTITY_MODE_PRODUCTS: $quantity = Isotope::getCart()->countItems(); break; @@ -146,14 +156,14 @@ public function isAvailable() } $arrConfigs = deserialize($this->config_ids); - if (is_array($arrConfigs) && !empty($arrConfigs) && !in_array(Isotope::getConfig()->id, $arrConfigs)) { + if (is_array($arrConfigs) && count($arrConfigs) > 0 && !in_array(Isotope::getConfig()->id, $arrConfigs)) { return false; } $arrCountries = deserialize($this->countries); - if (is_array($arrCountries) && !empty($arrCountries) - && !in_array(Isotope::getCart()->getBillingAddress()->country, $arrCountries) + if (is_array($arrCountries) && count($arrCountries) > 0 + && !in_array(Isotope::getCart()->getBillingAddress()->country, $arrCountries, true) ) { return false; } @@ -161,12 +171,10 @@ public function isAvailable() $arrShippings = deserialize($this->shipping_modules); if (is_array($arrShippings) - && !empty($arrShippings) - && ((!Isotope::getCart()->hasShipping() - && !in_array(-1, $arrShippings) - ) + && count($arrShippings) > 0 + && ((!Isotope::getCart()->hasShipping() && !in_array(-1, $arrShippings)) || (Isotope::getCart()->hasShipping() && - !in_array(Isotope::getCart()->getShippingMethod()->id, $arrShippings) + !in_array(Isotope::getCart()->getShippingMethod()->getId(), $arrShippings) ) ) ) { @@ -175,15 +183,16 @@ public function isAvailable() $arrConfigTypes = deserialize($this->product_types); - if (is_array($arrConfigTypes) && !empty($arrConfigTypes)) { + if (is_array($arrConfigTypes) && count($arrConfigTypes) > 0) { $arrItems = Isotope::getCart()->getItems(); $arrItemTypes = array(); foreach ($arrItems as $objItem) { if ($objItem->hasProduct()) { - $arrItemTypes[] = $objItem->getProduct()->type; + $productType = $objItem->getProduct()->getType(); + $arrItemTypes[] = null === $productType ? 0 : $productType->id; - } elseif ($this->product_types_condition == 'onlyAvailable') { + } elseif ('onlyAvailable' === $this->product_types_condition) { // If one product in cart is not of given type, shipping method is not available return false; } @@ -222,17 +231,20 @@ public function isAvailable() /** * Return true if the payment has a percentage (not fixed) amount + * * @return bool */ public function isPercentage() { - return substr($this->arrData['price'], -1) == '%' ? true : false; + return '%' === substr($this->arrData['price'], -1); } /** * Return percentage amount (if applicable) + * * @return float - * @throws \UnexpectedValueException + * + * @throws \UnexpectedValueException if the surcharge is not a percentage amount. */ public function getPercentage() { @@ -245,7 +257,8 @@ public function getPercentage() /** * Return percentage label if price is percentage - * @return string + * + * @return string */ public function getPercentageLabel() { @@ -254,6 +267,9 @@ public function getPercentageLabel() /** * Return calculated price for this payment method + * + * @param IsotopeProductCollection $objCollection + * * @return float */ public function getPrice(IsotopeProductCollection $objCollection = null) @@ -271,9 +287,9 @@ public function getPrice(IsotopeProductCollection $objCollection = null) return Isotope::calculatePrice($fltPrice, $this, 'price', $this->arrData['tax_class']); } - /** * Return translated label for this payment method + * * @return string */ public function getLabel() @@ -281,24 +297,33 @@ public function getLabel() return Translation::get($this->label ? : $this->name); } + /** + * @inheritdoc + */ + public function getNote() + { + return $this->note; + } /** * Return a html form for checkout or false - * @param IsotopeProductCollection $objOrder The order being places - * @param \Module $objModule The checkout module instance - * @return bool + * + * @param IsotopeProductCollection $objOrder The order being places + * @param \Module $objModule The checkout module instance + * + * @return bool */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { return false; } - /** * Return information or advanced features in the backend. - * * Use this function to present advanced features or basic payment information for an order in the backend. - * @param integer $orderId Order ID + * + * @param int $orderId + * * @return string */ public function backendInterface($orderId) @@ -308,7 +333,7 @@ public function backendInterface($orderId) ' . $GLOBALS['TL_LANG']['MSC']['backBT'] . ' -

' . $this->name . ' (' . $GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.'.$this->type][0] . ')' . '

+

' . $this->name . ' (' . $GLOBALS['TL_LANG']['MODEL']['tl_iso_payment'][$this->type][0] . ')' . '

@@ -317,7 +342,6 @@ public function backendInterface($orderId)
'; } - /** * Return the checkout review information. * @@ -331,13 +355,10 @@ public function checkoutReview() return $this->getLabel(); } - /** - * Get the checkout surcharge for this payment method - * - * @return \Isotope\Model\ProductCollectionSurcharge\Payment|null + * @inheritdoc */ - public function getSurcharge($objCollection) + public function getSurcharge(IsotopeProductCollection $objCollection) { if ($this->getPrice() == 0) { return null; @@ -346,7 +367,6 @@ public function getSurcharge($objCollection) return ProductCollectionSurcharge::createForPaymentInCollection($this, $objCollection); } - /** * Validate a credit card number and return the card type. * http://regexlib.com/UserPatterns.aspx?authorid=7128ecda-5ab1-451d-98d9-f94d2a453b37 @@ -388,11 +408,11 @@ protected static function validateCreditCard($strNumber) return false; } - /** * Return a list of valid credit card types for this payment module * * @return array + * * @deprecated Deprecated since 2.2, to be removed in 3.0. Create your own DCA field instead. */ public static function getAllowedCCTypes() diff --git a/system/modules/isotope/library/Isotope/Model/Payment/BillpayWithSaferpay.php b/system/modules/isotope/library/Isotope/Model/Payment/BillpayWithSaferpay.php index 46445101f4..9060268790 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/BillpayWithSaferpay.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/BillpayWithSaferpay.php @@ -3,33 +3,35 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; use Haste\Form\Form; -use Isotope\Interfaces\IsotopeDocument; +use Haste\Util\StringUtil; +use Isotope\Interfaces\IsotopeOrderableCollection; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; +use Isotope\Model\Address; use Isotope\Model\ProductCollection\Order; use Isotope\Model\ProductCollectionSurcharge\Shipping; use Isotope\Model\ProductCollectionSurcharge\Tax; - class BillpayWithSaferpay extends Saferpay { - + /** + * @inheritdoc + */ public function isAvailable() { $objBillingAddress = Isotope::getCart()->getBillingAddress(); $objShippingAddress = Isotope::getCart()->getShippingAddress(); - if (null === $objBillingAddress || !in_array($objBillingAddress->country, array('de', 'ch', 'at'))) { + if (null === $objBillingAddress || !in_array($objBillingAddress->country, array('de', 'ch', 'at'), true)) { return false; } @@ -44,10 +46,9 @@ public function isAvailable() /** * Automatically add Billpay conditions to checkout form * - * @param Form $objForm - * @param \Module $objModule + * @param Form $objForm */ - public static function addOrderCondition(Form $objForm, \Module $objModule) + public static function addOrderCondition(Form $objForm) { if (Isotope::getCart()->hasPayment() && Isotope::getCart()->getPaymentMethod() instanceof BillpayWithSaferpay) { @@ -73,13 +74,12 @@ public static function addOrderCondition(Form $objForm, \Module $objModule) * * @param \Template $objTemplate * @param IsotopeProductCollection $objCollection - * @param IsotopeDocument $objDocument */ - public function addToDocumentTemplate(\Template $objTemplate, IsotopeProductCollection $objCollection, IsotopeDocument $objDocument) + public function addToDocumentTemplate(\Template $objTemplate, IsotopeProductCollection $objCollection) { $objTemplate->billpay = false; - /** @type Order $objCollection */ + /** @var Order $objCollection */ if ($objCollection instanceof Order && $objCollection->hasPayment() && $objCollection->getPaymentMethod() instanceof BillpayWithSaferpay @@ -105,42 +105,27 @@ public function addToDocumentTemplate(\Template $objTemplate, IsotopeProductColl * Add BillPay-specific data to POST values * * @param IsotopeProductCollection $objOrder - * @param \Module $objModule * * @return array */ - protected function generatePaymentPostData(IsotopeProductCollection $objOrder, \Module $objModule) + protected function generatePaymentPostData(IsotopeProductCollection $objOrder) { - /** @type \Isotope\Model\ProductCollection\Order $objOrder */ + $arrData = parent::generatePaymentPostData($objOrder); - $arrData = parent::generatePaymentPostData($objOrder, $objModule); + if (!$objOrder instanceof IsotopeOrderableCollection) { + return $arrData; + } // Billing address $objBillingAddress = $objOrder->getBillingAddress(); - $arrData['GENDER'] = (string) substr((string) $objBillingAddress->gender, 0, 1); - $arrData['FIRSTNAME'] = (string) $objBillingAddress->firstname; - $arrData['LASTNAME'] = (string) $objBillingAddress->lastname; - $arrData['STREET'] = (string) $objBillingAddress->street_1; - $arrData['ADDRESSADDITION'] = (string) $objBillingAddress->street_2; - $arrData['ZIP'] = (string) $objBillingAddress->postal; - $arrData['CITY'] = (string) $objBillingAddress->city; - $arrData['COUNTRY'] = strtoupper((string) $objBillingAddress->country); - $arrData['EMAIL'] = (string) $objBillingAddress->email; - $arrData['PHONE'] = (string) $objBillingAddress->phone; + $this->addAddress($arrData, $objBillingAddress); + $arrData['EMAIL'] = (string) $objBillingAddress->email; $arrData['DATEOFBIRTH'] = ($objBillingAddress->dateOfBirth ? date('Ymd', $objBillingAddress->dateOfBirth) : ''); - $arrData['COMPANY'] = (string) $objBillingAddress->company; + $arrData['COMPANY'] = (string) $objBillingAddress->company; // Shipping address $objShippingAddress = $objOrder->getShippingAddress(); - $arrData['DELIVERY_GENDER'] = (string) substr((string) $objShippingAddress->gender, 0, 1); - $arrData['DELIVERY_FIRSTNAME'] = (string) $objShippingAddress->firstname; - $arrData['DELIVERY_LASTNAME'] = (string) $objShippingAddress->lastname; - $arrData['DELIVERY_STREET'] = (string) $objShippingAddress->street_1; - $arrData['DELIVERY_ADDRESSADDITION'] = (string) $objShippingAddress->street_2; - $arrData['DELIVERY_ZIP'] = (string) $objShippingAddress->postal; - $arrData['DELIVERY_CITY'] = (string) $objShippingAddress->city; - $arrData['DELIVERY_COUNTRY'] = strtoupper((string) $objShippingAddress->country); - $arrData['DELIVERY_PHONE'] = (string) $objShippingAddress->phone; + $this->addAddress($arrData, $objShippingAddress, 'DELIVERY_'); // Cart items and total $arrData['BASKETDATA'] = $this->getCollectionItemsAsXML($objOrder); @@ -155,11 +140,11 @@ protected function generatePaymentPostData(IsotopeProductCollection $objOrder, \ /** * Generate XML data for collection items * - * @param IsotopeProductCollection $objCollection + * @param IsotopeOrderableCollection $objCollection * * @return string */ - private function getCollectionItemsAsXML(IsotopeProductCollection $objCollection) + private function getCollectionItemsAsXML(IsotopeOrderableCollection $objCollection) { $xml = new \DOMDocument(); $articleData = $xml->createElement('article_data'); @@ -176,7 +161,10 @@ private function getCollectionItemsAsXML(IsotopeProductCollection $objCollection $article->appendChild($quantity); $name = $xml->createAttribute('articlename'); - $name->value = $objItem->getName(); + $name->value = StringUtil::convertToText( + $objItem->getName(), + StringUtil::NO_TAGS | StringUtil::NO_BREAKS | StringUtil::NO_INSERTTAGS | StringUtil::NO_ENTITIES + ); $article->appendChild($name); $price = $xml->createAttribute('articleprice'); @@ -201,7 +189,10 @@ private function getCollectionItemsAsXML(IsotopeProductCollection $objCollection $article->appendChild($quantity); $name = $xml->createAttribute('articlename'); - $name->value = $objSurcharge->label; + $name->value = StringUtil::convertToText( + $objSurcharge->label, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS | StringUtil::NO_INSERTTAGS | StringUtil::NO_ENTITIES + ); $article->appendChild($name); $price = $xml->createAttribute('articleprice'); @@ -222,7 +213,12 @@ private function getCollectionItemsAsXML(IsotopeProductCollection $objCollection } - private function getCollectionTotalAsXML(IsotopeProductCollection $objCollection) + /** + * @param IsotopeOrderableCollection $objCollection + * + * @return string + */ + private function getCollectionTotalAsXML(IsotopeOrderableCollection $objCollection) { $intRebate = 0; $intRebateGross = 0; @@ -246,7 +242,10 @@ private function getCollectionTotalAsXML(IsotopeProductCollection $objCollection if ($intShippingPrice != 0 || $intShippingPriceGross != 0) { $shippingName = $xml->createAttribute('shippingname'); - $shippingName->value = $strShippingName; + $shippingName->value = StringUtil::convertToText( + $strShippingName, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS | StringUtil::NO_INSERTTAGS | StringUtil::NO_ENTITIES + ); $total->appendChild($shippingName); $shippingPrice = $xml->createAttribute('shippingprice'); @@ -277,11 +276,24 @@ private function getCollectionTotalAsXML(IsotopeProductCollection $objCollection $total->appendChild($cartTotalPriceGross); $currency = $xml->createAttribute('currency'); - $currency->value = $objCollection->currency; + $currency->value = $objCollection->getCurrency(); $total->appendChild($currency); $xml->appendChild($total); return $xml->saveXML($xml->documentElement); } + + private function addAddress(&$data, Address $address, $prefix = '') + { + $data[$prefix . 'GENDER'] = substr((string) $address->gender, 0, 1); + $data[$prefix . 'FIRSTNAME'] = (string) $address->firstname; + $data[$prefix . 'LASTNAME'] = (string) $address->lastname; + $data[$prefix . 'STREET'] = (string) $address->street_1; + $data[$prefix . 'ADDRESSADDITION'] = (string) $address->street_2; + $data[$prefix . 'ZIP'] = (string) $address->postal; + $data[$prefix . 'CITY'] = (string) $address->city; + $data[$prefix . 'COUNTRY'] = strtoupper((string) $address->country); + $data[$prefix . 'PHONE'] = (string) $address->phone; + } } diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Cash.php b/system/modules/isotope/library/Isotope/Model/Payment/Cash.php index ede9aa77d5..af0341944b 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Cash.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Cash.php @@ -3,17 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\Payment; @@ -25,17 +24,17 @@ * @author Andreas Schempp * @author Fred Bliss */ -class Cash extends Payment implements IsotopePayment +class Cash extends Payment { - /** - * Process payment on checkout page. - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return mixed + * @inheritdoc */ public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + return false; + } + $objOrder->checkout(); $objOrder->updateOrderStatus($this->new_order_status); diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Datatrans.php b/system/modules/isotope/library/Isotope/Model/Payment/Datatrans.php index 471e18b1ad..c4cc6d0fc3 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Datatrans.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Datatrans.php @@ -3,50 +3,50 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\ProductCollection\Order; - +use Isotope\Module\Checkout; /** - * Class Datatrans + * Datatrans payment method * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Leo Unglaub + * @property string $datatrans_id + * @property string $datatrans_sign + * @property string $datatrans_hash_method + * @property string $datatrans_hash_convert */ -class Datatrans extends Postsale implements IsotopePayment +class Datatrans extends Postsale { - /** * Perform server to server data check * - * @param IsotopeProductCollection|Order $objOrder + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + // Verify payment status - if (\Input::post('status') != 'success') { + if (\Input::post('status') !== 'success') { \System::log('Payment for order ID "' . \Input::post('refno') . '" failed.', __METHOD__, TL_ERROR); return; } // Validate HMAC sign - $hash = hash_hmac( - 'md5', - $this->datatrans_id . \Input::post('amount') . \Input::post('currency') . \Input::post('uppTransactionId'), - $this->datatrans_sign - ); + $hash = $this->createHash($this->datatrans_id . \Input::post('amount') . \Input::post('currency') . \Input::post('uppTransactionId')); if (\Input::post('sign2') != $hash) { \System::log('Invalid HMAC signature for Order ID ' . \Input::post('refno'), __METHOD__, TL_ERROR); @@ -55,12 +55,14 @@ public function processPostsale(IsotopeProductCollection $objOrder) } // For maximum security, also validate individual parameters - if (!$this->validateParameters(array( - 'refno' => $objOrder->id, - 'currency' => $objOrder->currency, - 'amount' => round($objOrder->getTotal() * 100), - 'reqtype' => ($this->trans_type == 'auth' ? 'NOA' : 'CAA'), - ))) { + if (!$this->validateParameters( + [ + 'refno' => $objOrder->getId(), + 'currency' => $objOrder->getCurrency(), + 'amount' => round($objOrder->getTotal() * 100), + 'reqtype' => 'auth' === $this->trans_type ? 'NOA' : 'CAA', + ] + )) { return; } @@ -70,15 +72,14 @@ public function processPostsale(IsotopeProductCollection $objOrder) return; } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); } /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -86,25 +87,25 @@ public function getPostsaleOrder() } /** - * Generate the submit form for datatrans and if javascript is enabled redirect automaticly - * - * @param IsotopeProductCollection|Order $objOrder The order being places - * @param \Module|\Isotope\Module\Checkout $objModule The checkout module instance - * - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + $objAddress = $objOrder->getBillingAddress(); $arrParams = array ( 'merchantId' => $this->datatrans_id, 'amount' => round($objOrder->getTotal() * 100), - 'currency' => $objOrder->currency, - 'refno' => $objOrder->id, + 'currency' => $objOrder->getCurrency(), + 'refno' => $objOrder->getId(), 'language' => $objOrder->language, - 'reqtype' => ($this->trans_type == 'auth' ? 'NOA' : 'CAA'), + 'reqtype' => 'auth' === $this->trans_type ? 'NOA' : 'CAA', 'uppCustomerDetails' => 'yes', 'uppCustomerTitle' => $objAddress->salutation, 'uppCustomerFirstName' => $objAddress->firstname, @@ -116,15 +117,15 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod 'uppCustomerZipCode' => $objAddress->postal, 'uppCustomerPhone' => $objAddress->phone, 'uppCustomerEmail' => $objAddress->email, - 'successUrl' => ampersand(\Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder)), - 'errorUrl' => ampersand(\Environment::get('base') . $objModule->generateUrlForStep('failed')), - 'cancelUrl' => ampersand(\Environment::get('base') . $objModule->generateUrlForStep('failed')), + 'successUrl' => ampersand(\Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder)), + 'errorUrl' => ampersand(\Environment::get('base') . Checkout::generateUrlForStep('failed')), + 'cancelUrl' => ampersand(\Environment::get('base') . Checkout::generateUrlForStep('failed')), 'mod' => 'pay', 'id' => $this->id, ); // Security signature (see Security Level 2) - $arrParams['sign'] = hash_hmac('md5', $arrParams['merchantId'] . $arrParams['amount'] . $arrParams['currency'] . $arrParams['refno'], $this->datatrans_sign); + $arrParams['sign'] = $this->createHash($arrParams['merchantId'] . $arrParams['amount'] . $arrParams['currency'] . $arrParams['refno']); $objTemplate = new \Isotope\Template('iso_payment_datatrans'); $objTemplate->id = $this->id; @@ -160,4 +161,22 @@ private function validateParameters(array $arrData) return true; } + + /** + * Create hash based on module config for given value. + * + * @param string $value + * + * @return string + */ + private function createHash($value) + { + $algo = 'sha256' === $this->datatrans_hash_method ? 'sha256' : 'md5'; + + return hash_hmac( + $algo, + $value, + $this->datatrans_hash_convert ? hex2bin($this->datatrans_sign) : $this->datatrans_sign + ); + } } diff --git a/system/modules/isotope/library/Isotope/Model/Payment/EPay.php b/system/modules/isotope/library/Isotope/Model/Payment/EPay.php index 933fdbc1e6..16c1ccd8d1 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/EPay.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/EPay.php @@ -3,26 +3,33 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; use Isotope\Currency; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopePostsale; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Isotope; use Isotope\Model\Payment; use Isotope\Model\Product; use Isotope\Model\ProductCollection\Order; +use Isotope\Module\Checkout; +use Isotope\Template; - -class EPay extends Payment implements IsotopePayment, IsotopePostsale +/** + * EPay payment method + * + * @property string $epay_windowstate + * @property string $epay_merchantnumber + * @property string $epay_secretkey + */ +class EPay extends Payment implements IsotopePostsale { /** @@ -59,25 +66,25 @@ public function isAvailable() } /** - * Process payment on the confirmation page - * - * @param IsotopeProductCollection|Order $objOrder - * @param \Module $objModule - * - * @return bool|mixed + * @inheritdoc */ public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + if (!$this->validatePayment($objOrder)) { return false; } if (!$objOrder->checkout()) { - \System::log('Checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); return false; } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); @@ -85,21 +92,25 @@ public function processPayment(IsotopeProductCollection $objOrder, \Module $objM return true; } - /** * Process ePay callback * - * @param IsotopeProductCollection|Order $objOrder + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + if ($this->validatePayment($objOrder)) { if (!$objOrder->checkout()) { - \System::log('Postsale checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Postsale checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); return; } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); @@ -107,9 +118,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) } /** - * Get the order object in a postsale request - * - * @return IsotopeProductCollection|null + * @inheritdoc */ public function getPostsaleOrder() { @@ -117,26 +126,22 @@ public function getPostsaleOrder() } /** - * Return the ePay form - * - * @param IsotopeProductCollection|Order $objOrder - * @param \Module|\Isotope\Module\Checkout $objModule - * - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { - $objTemplate = new \Isotope\Template('iso_payment_epay'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_payment_epay'); $objTemplate->setData($this->arrData); - $objTemplate->currency = $objOrder->currency; - $objTemplate->amount = Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->currency); - $objTemplate->orderid = $objOrder->id; - $objTemplate->instantcapture = ($this->trans_type == 'capture' ? '1' : '0'); - $objTemplate->callbackurl = \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id; - $objTemplate->accepturl = \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder); - $objTemplate->cancelurl = \Environment::get('base') . $objModule->generateUrlForStep('failed'); - $objTemplate->language = (int) static::$arrLanguages[substr($GLOBALS['TL_LANGUAGE'], 0, 2)]; + $objTemplate->currency = $objOrder->getCurrency(); + $objTemplate->amount = Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->getCurrency()); + $objTemplate->orderid = $objOrder->getId(); + $objTemplate->instantcapture = 'capture' === $this->trans_type ? '1' : '0'; + $objTemplate->callbackurl = \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id; + $objTemplate->accepturl = \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder); + $objTemplate->cancelurl = \Environment::get('base') . Checkout::generateUrlForStep('failed'); + $objTemplate->language = (int) static::$arrLanguages[substr($GLOBALS['TL_LANGUAGE'], 0, 2)]; return $objTemplate->parse(); } @@ -144,19 +149,23 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod /** * Validate input parameters and hash * - * @param IsotopeProductCollection|Order $objOrder + * @param IsotopeProductCollection $objOrder * * @return bool */ protected function validatePayment(IsotopeProductCollection $objOrder) { $arrValues = $_GET; - unset($arrValues['hash']); - unset($arrValues['auto_item']); - unset($arrValues['step']); - $strHash = md5(implode('', $arrValues) . $this->epay_secretkey); - $intAmount = Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->currency); + unset( + $arrValues['hash'], + $arrValues['auto_item'], + $arrValues['step'] + ); + + $strHash = md5(implode('', $arrValues) . $this->epay_secretkey); + $orderCurrency = $objOrder->getCurrency(); + $orderAmount = Currency::getAmountInMinorUnits($objOrder->getTotal(), $orderCurrency); if ($strHash != \Input::get('hash')) { \System::log('Invalid hash for ePay payment. See system/logs/isotope_epay.log for more details.', __METHOD__, TL_ERROR); @@ -174,17 +183,19 @@ protected function validatePayment(IsotopeProductCollection $objOrder) return false; } - if (Currency::getIsoNumber($objOrder->currency) != \Input::get('currency') || $intAmount != \Input::get('amount')) { + if (Currency::getIsoNumber($orderCurrency) != \Input::get('currency') + || $orderAmount != \Input::get('amount') + ) { \System::log('Currency or amount does not match order. See system/logs/isotope_epay.log for more details.', __METHOD__, TL_ERROR); log_message( sprintf( "Currency or amount does not match order:\nCurrency: got %s (%s), expected %s\nAmount: got %s, expected %s\n\n", \Input::get('currency'), - Currency::getIsoNumber($objOrder->currency), - $objOrder->currency, + Currency::getIsoNumber($orderCurrency), + $orderCurrency, \Input::get('amount'), - $intAmount + $orderAmount ), 'isotope_epay.log' ); diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Expercash.php b/system/modules/isotope/library/Isotope/Model/Payment/Expercash.php index c609ad1287..f26547299c 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Expercash.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Expercash.php @@ -3,40 +3,43 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; use Haste\Http\Response\Response; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopePostsale; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\Payment; use Isotope\Model\ProductCollection\Order; - +use Isotope\Module\Checkout; /** - * Class Expercash + * Expercash payment method. * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * @property string $expercash_popupId + * @property string $expercash_profile + * @property string $expercash_popupKey + * @property string $expercash_paymentMethod + * @property string $expercash_css */ -class Expercash extends Payment implements IsotopePayment, IsotopePostsale +class Expercash extends Payment implements IsotopePostsale { - /** - * Process payment on checkout page. - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return boolean + * @inheritdoc */ public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + // @todo this can't be the only validation if ($this->validateUrlParams($objOrder)) { $objOrder->checkout(); @@ -48,25 +51,26 @@ public function processPayment(IsotopeProductCollection $objOrder, \Module $objM return false; } - /** - * Process PayPal Instant Payment Notifications (IPN) - * - * @param IsotopeProductCollection + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + if (!$this->validateUrlParams($objOrder)) { \System::log('ExperCash: data rejected' . print_r($_POST, true), __METHOD__, TL_GENERAL); } if (!$objOrder->checkout()) { - \System::log('Postsale checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); - + \System::log('Postsale checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); return; } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); @@ -77,8 +81,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) } /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -86,11 +89,7 @@ public function getPostsaleOrder() } /** - * Return the PayPal form. - * - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { @@ -98,13 +97,13 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod ( 'popupId' => $this->expercash_popupId, 'jobId' => microtime(), - 'functionId' => ($objOrder->member ?: $objOrder->uniqid), - 'transactionId' => $objOrder->id, - 'amount' => (round($objOrder->getTotal(), 2) * 100), - 'currency' => $objOrder->currency, + 'functionId' => null !== $objOrder->getMember() ? $objOrder->getMember()->id : $objOrder->getUniqueId(), + 'transactionId' => $objOrder->getId(), + 'amount' => round($objOrder->getTotal(), 2) * 100, + 'currency' => $objOrder->getCurrency(), 'paymentMethod' => $this->expercash_paymentMethod, - 'returnUrl' => \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder), - 'errorUrl' => \Environment::get('base') . $objModule->generateUrlForStep('failed'), + 'returnUrl' => \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder), + 'errorUrl' => \Environment::get('base') . Checkout::generateUrlForStep('failed'), 'notifyUrl' => \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id, 'profile' => $this->expercash_profile, ); @@ -136,14 +135,27 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod return $strBuffer; } - - private function validateUrlParams($objOrder) + /** + * Validate URL parameters against payment hacking. + * + * @param IsotopeProductCollection $objOrder + * + * @return bool + */ + private function validateUrlParams(IsotopeProductCollection $objOrder) { if ($objOrder === null) { return false; } - $strKey = md5(\Input::get('amount') . \Input::get('currency') . \Input::get('paymentMethod') . \Input::get('transactionId') . \Input::get('GuTID') . $this->expercash_popupKey); + $strKey = md5( + \Input::get('amount') + . \Input::get('currency') + . \Input::get('paymentMethod') + . \Input::get('transactionId') + . \Input::get('GuTID') + . $this->expercash_popupKey + ); if (\Input::get('exportKey') != $strKey) { \System::log('ExperCash: exportKey was incorrect. Possible data manipulation!', __METHOD__, TL_ERROR); @@ -157,13 +169,13 @@ private function validateUrlParams($objOrder) return false; } - if (\Input::get('currency') != $objOrder->currency) { + if (\Input::get('currency') != $objOrder->getCurrency()) { \System::log('ExperCash: currency is incorrect. Possible data manipulation!', __METHOD__, TL_ERROR); return false; } - if (\Input::get('transactionId') != $objOrder->id) { + if (\Input::get('transactionId') != $objOrder->getId()) { \System::log('ExperCash: transactionId is incorrect. Possible data manipulation!', __METHOD__, TL_ERROR); return false; diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Innopay.php b/system/modules/isotope/library/Isotope/Model/Payment/Innopay.php index 1f0f373626..262fb42dcc 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Innopay.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Innopay.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; diff --git a/system/modules/isotope/library/Isotope/Model/Payment/OpenPaymentPlatform.php b/system/modules/isotope/library/Isotope/Model/Payment/OpenPaymentPlatform.php new file mode 100644 index 0000000000..5f28d01442 --- /dev/null +++ b/system/modules/isotope/library/Isotope/Model/Payment/OpenPaymentPlatform.php @@ -0,0 +1,174 @@ +getBaseUrl(); + $request = $this->prepareRequest('PA', $objOrder); + $request->send($base . '/v1/checkouts'); + + $response = json_decode($request->response, true); + $this->storeApiResponse($response, $objOrder); + + if ('000.200.100' !== $response['result']['code']) { + \System::log( + sprintf( + 'Payment for order ID %s could not be initialized. See log files for more information.', + $objOrder->getId() + ), + __METHOD__, + TL_ERROR + ); + + log_message(print_r($response, true), 'open_payment.log'); + + Checkout::redirectToStep('failed'); + } + + /** @var Template|object $template */ + $template = new Template('iso_payment_opp'); + $template->base = $base; + $template->action = Checkout::generateUrlForStep('complete', $objOrder); + $template->checkoutId = $response['id']; + + return $template->parse(); + } + + /** + * @inheritdoc + */ + public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule) + { + $ndc = \Input::get('id'); + + $request = new Request(); + $request->send($this->getBaseUrl() . '/v1/checkouts/' . $ndc . '/payment'); + + $response = json_decode($request->response, true); + $this->storeApiResponse($response, $objOrder); + + if (!preg_match('/^(000\.000\.|000\.100\.1|000\.[36])/', $response['result']['code']) + || 'PA' !== $response['paymentType'] + || $ndc !== $response['ndc'] + || $objOrder->getTotal() != $response['amount'] + || $objOrder->getCurrency() != $response['currency'] + ) { + \System::log( + sprintf( + 'Payment data for order ID %s could not be verified. See log files for more information.', + $objOrder->getId() + ), + __METHOD__, + TL_ERROR + ); + + log_message(\Environment::get('request'), 'open_payment.log'); + log_message(print_r($response, true), 'open_payment.log'); + + return false; + } + + // Capture payment + if ('capture' === $this->trans_type) { + $request = $this->prepareRequest('CP', $objOrder); + $request->send($this->getBaseUrl() . '/v1/payments/' . $response['id']); + + $response = json_decode($request->response, true); + $this->storeApiResponse($response, $objOrder); + + if ('000.100.110' !== $response['result']['code'] + || 'CP' !== $response['paymentType'] + || $objOrder->getTotal() != $response['amount'] + || $objOrder->getCurrency() != $response['currency'] + ) { + \System::log( + sprintf( + 'Payment for order ID %s could not be captured. See log files for more information.', + $objOrder->getId() + ), + __METHOD__, + TL_ERROR + ); + + log_message(print_r($response, true), 'open_payment.log'); + } + } + + return true; + } + + private function getBaseUrl() + { + return 'https://' . ($this->debug ? 'test.' : '') . 'oppwa.com'; + } + + /** + * @param string $type + * @param IsotopeProductCollection $objOrder + * + * @return Request + */ + private function prepareRequest($type, IsotopeProductCollection $objOrder) + { + $params = [ + 'authentication.userId' => $this->opp_user_id, + 'authentication.password' => $this->opp_password, + 'authentication.entityId' => $this->opp_entity_id, + 'amount' => number_format($objOrder->getTotal(), 2, '.', ''), + 'currency' => $objOrder->getCurrency(), + 'paymentType' => $type + ]; + + $request = new Request(); + $request->setHeader('Content-Type', 'application/x-www-form-urlencoded'); + $request->method = 'post'; + $request->data = http_build_query($params); + + return $request; + } + + /** + * @param array $data + * @param IsotopeProductCollection $objOrder + */ + private function storeApiResponse(array $data, IsotopeProductCollection $objOrder) + { + $payments = deserialize($objOrder->payment_data, true); + + if (!is_array($payments['OPP'])) { + $payments['OPP'] = array(); + } + + $payments['OPP'][] = $data; + + $objOrder->payment_data = $payments; + $objOrder->save(); + } +} diff --git a/system/modules/isotope/library/Isotope/Model/Payment/PSP.php b/system/modules/isotope/library/Isotope/Model/Payment/PSP.php index cb63b0cd2e..d996daee9e 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/PSP.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/PSP.php @@ -3,20 +3,21 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopePostsale; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\Payment; use Isotope\Model\ProductCollection\Order; +use Isotope\Module\Checkout; +use Isotope\Template; /** @@ -24,26 +25,26 @@ * * Handle PSP payments * - * @property string psp_pspid - * @property string psp_http_method - * @property string psp_hash_method - * @property string psp_hash_in - * @property string psp_hash_out - * @property string psp_dynamic_template + * @property string $psp_pspid + * @property string $psp_http_method + * @property string $psp_hash_method + * @property string $psp_hash_in + * @property string $psp_hash_out + * @property string $psp_dynamic_template + * @property string $psp_payment_method */ -abstract class PSP extends Payment implements IsotopePayment, IsotopePostsale +abstract class PSP extends Payment implements IsotopePostsale { - /** - * Process payment on checkout page. - * - * @param IsotopeProductCollection|Order $objOrder The order being places - * @param \Module $objModule The checkout module instance - * - * @return bool + * @inheritdoc */ public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + // If the order has already been placed through postsale if ($objOrder->isCheckoutComplete()) { return true; @@ -55,27 +56,28 @@ public function processPayment(IsotopeProductCollection $objOrder, \Module $objM return $this->processPostsale($objOrder); } - /** * Process post-sale request from the PSP payment server. * - * @param IsotopeProductCollection $objOrder - * - * @return boolean Not needed when called by postsale.php but when called internally by processPayment - * @return bool + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { - /** @type Order $objOrder */ + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } if (!$this->validateSHASign()) { - \System::log('Received invalid postsale data for order ID "' . $objOrder->id . '"', __METHOD__, TL_ERROR); + \System::log('Received invalid postsale data for order ID "' . $objOrder->getId() . '"', __METHOD__, TL_ERROR); return false; } // Validate payment data - if ($objOrder->currency != $this->getRequestData('currency') || $objOrder->getTotal() != $this->getRequestData('amount')) { - \System::log('Postsale checkout manipulation in payment for Order ID ' . $objOrder->id . '!', __METHOD__, TL_ERROR); + if ($objOrder->getCurrency() !== $this->getRequestData('currency') + || $objOrder->getTotal() != $this->getRequestData('amount') + ) { + \System::log('Postsale checkout manipulation in payment for Order ID ' . $objOrder->getId() . '!', __METHOD__, TL_ERROR); return false; } @@ -84,7 +86,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) /** @noinspection PhpMissingBreakStatementInspection */ case 9: // Zahlung beantragt (Authorize & Capture) - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); // no break case 5: // Genehmigt (Authorize ohne Capture) @@ -97,9 +99,9 @@ public function processPostsale(IsotopeProductCollection $objOrder) case 52: // Genehmigung nicht bekannt case 92: // Zahlung unsicher - /** @type \Isotope\Model\Config $objConfig */ - if (($objConfig = $objOrder->getRelated('config_id')) === null) { - \System::log('Config for Order ID ' . $objOrder->id . ' not found', __METHOD__, TL_ERROR); + /** @var \Isotope\Model\Config $objConfig */ + if (($objConfig = $objOrder->getConfig()) === null) { + \System::log('Config for Order ID ' . $objOrder->getId() . ' not found', __METHOD__, TL_ERROR); return false; } @@ -116,10 +118,10 @@ public function processPostsale(IsotopeProductCollection $objOrder) } if (!$objOrder->checkout()) { - \System::log('Post-Sale checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Post-Sale checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); return false; } - + $objOrder->payment_data = json_encode($this->getRawRequestData()); $objOrder->updateOrderStatus($intStatus); @@ -128,10 +130,8 @@ public function processPostsale(IsotopeProductCollection $objOrder) return true; } - /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -143,15 +143,15 @@ public function getPostsaleOrder() } /** - * Return the payment form - * - * @param IsotopeProductCollection $objOrder The order being places - * @param \Module $objModule The checkout module instance - * - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + $arrParams = $this->preparePSPParams($objOrder, $objModule); // SHA-1 must be generated on alphabetically sorted keys. @@ -161,15 +161,17 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod $strSHASign = ''; foreach ($arrParams as $k => $v) { - if ($v == '') + if ($v == '') { continue; + } $strSHASign .= $k . '=' . htmlspecialchars_decode($v) . $this->psp_hash_in; } $arrParams['SHASIGN'] = strtoupper(hash($this->psp_hash_method, $strSHASign)); - $objTemplate = new \Isotope\Template($this->strTemplate); + /** @var Template|object $objTemplate */ + $objTemplate = new Template($this->strTemplate); $objTemplate->setData($this->arrData); $objTemplate->params = $arrParams; @@ -184,32 +186,28 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod /** * Gets the available payment methods * - * @param Order $objOrder - * @param \Isotope\Module\Checkout $objModule - * * @return array */ - public function getPaymentMethods() - { - return array(); - } + abstract public function getPaymentMethods(); /** * Prepare PSP params - * @param Order - * @param Module + * + * @param IsotopePurchasableCollection $objOrder + * @param \Module $objModule + * * @return array */ - protected function preparePSPParams($objOrder, $objModule) + protected function preparePSPParams(IsotopePurchasableCollection $objOrder, $objModule) { $objBillingAddress = $objOrder->getBillingAddress(); return array ( 'PSPID' => $this->psp_pspid, - 'ORDERID' => $objOrder->id, - 'AMOUNT' => round(($objOrder->getTotal() * 100)), - 'CURRENCY' => $objOrder->currency, + 'ORDERID' => $objOrder->getId(), + 'AMOUNT' => round($objOrder->getTotal() * 100), + 'CURRENCY' => $objOrder->getCurrency(), 'LANGUAGE' => $GLOBALS['TL_LANGUAGE'] . '_' . strtoupper($GLOBALS['TL_LANGUAGE']), 'CN' => $objBillingAddress->firstname . ' ' . $objBillingAddress->lastname, 'EMAIL' => $objBillingAddress->email, @@ -218,10 +216,10 @@ protected function preparePSPParams($objOrder, $objModule) 'OWNERADDRESS2' => substr($objBillingAddress->street_2, 0, 35), 'OWNERCTY' => strtoupper($objBillingAddress->country), 'OWNERTOWN' => substr($objBillingAddress->city, 0, 35), - 'OWNERTELNO' => $objBillingAddress->phone, - 'ACCEPTURL' => \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder), - 'DECLINEURL' => \Environment::get('base') . $objModule->generateUrlForStep('failed'), - 'BACKURL' => \Environment::get('base') . $objModule->generateUrlForStep('review'), + 'OWNERTELNO' => preg_replace('/[^- +\/0-9]/','', $objBillingAddress->phone), + 'ACCEPTURL' => \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder), + 'DECLINEURL' => \Environment::get('base') . Checkout::generateUrlForStep('failed'), + 'BACKURL' => \Environment::get('base') . Checkout::generateUrlForStep('review'), 'PARAMPLUS' => 'mod=pay&id=' . $this->id, 'TP' => $this->psp_dynamic_template ? : '' ); @@ -236,7 +234,7 @@ protected function preparePSPParams($objOrder, $objModule) */ private function getRequestData($strKey) { - if ($this->psp_http_method == 'GET') { + if ('GET' === $this->psp_http_method) { return $_GET[$strKey]; } @@ -250,7 +248,7 @@ private function getRequestData($strKey) */ private function getRawRequestData() { - if ($this->psp_http_method == 'GET') { + if ('GET' === $this->psp_http_method) { return $_GET; } @@ -303,4 +301,59 @@ private function validateSHASign() return false; } + + /** + * Return information or advanced features in the backend. + * + * @param int $orderId + * + * @return string + */ + public function backendInterface($orderId) + { + if (null === ($objOrder = Order::findByPk($orderId))) { + + return parent::backendInterface($orderId); + } + + $paymentData = json_decode($objOrder->payment_data, true); + + if (0 === count($paymentData)) { + + return parent::backendInterface($orderId); + } + + $i = 0; + + + $buffer = ' + + +

' . $this->name . ' (' . $GLOBALS['TL_LANG']['MODEL']['tl_iso_payment'][$this->type][0] . ')' . '

+ +
' . Format::dcaLabel('tl_iso_product_price', 'price_tiers') . '' . Format::dcaLabel('tl_iso_product_price', 'tax_class') . '' . Format::dcaLabel('tl_iso_product_price', 'config_id') . '' . Format::dcaLabel('tl_iso_product_price', 'member_group') . '' . Format::dcaLabel('tl_iso_product_price', 'start') . '' . Format::dcaLabel('tl_iso_product_price', 'stop') . ' 
' . Format::dcaLabel('tl_iso_product_price', 'price_tiers') . '' . Format::dcaLabel('tl_iso_product_price', 'tax_class') . '' . Format::dcaLabel('tl_iso_product_price', 'config_id') . '' . Format::dcaLabel('tl_iso_product_price', 'member_group') . '' . Format::dcaLabel('tl_iso_product_price', 'start') . '' . Format::dcaLabel('tl_iso_product_price', 'stop') . ' 
' . $label . '
+ '; + + foreach ($paymentData as $k => $v) { + if (is_array($v)) { + continue; + } + + $buffer .= ' + + ' . $k . ': + ' . $v . ' + '; + + ++$i; + } + + $buffer .= ' +
+
'; + + return $buffer; + } } diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Paybyway.php b/system/modules/isotope/library/Isotope/Model/Payment/Paybyway.php index 42f9b8a136..fff2dcdf74 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Paybyway.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Paybyway.php @@ -3,35 +3,35 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2013 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopePostsale; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Isotope; use Isotope\Model\Payment; use Isotope\Model\ProductCollection\Order; +use Isotope\Module\Checkout; +use Isotope\Template; - -class Paybyway extends Payment implements IsotopePayment, IsotopePostsale +class Paybyway extends Payment implements IsotopePostsale { - /** * Paybyway only supports EUR currency - * @return bool + * + * @inheritdoc */ public function isAvailable() { $objConfig = Isotope::getConfig(); - if (null === $objConfig || $objConfig->currency != 'EUR') { + if (null === $objConfig || 'EUR' !== $objConfig->currency) { return false; } @@ -39,14 +39,12 @@ public function isAvailable() } /** - * Return the redirect form. - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { - $objTemplate = new \Isotope\Template('iso_payment_paybyway'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_payment_paybyway'); $objTemplate->action = 'https://www.paybyway.com/e-payments/pay'; $objTemplate->headline = specialchars($GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0]); @@ -57,8 +55,8 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod $objTemplate->merchant_id = (int) $this->paybyway_merchant_id; $objTemplate->amount = round($objOrder->getTotal() * 100); $objTemplate->currency = 'EUR'; - $objTemplate->order_number = $objOrder->id; - $objTemplate->lang = ($GLOBALS['TL_LANGUAGE'] == 'fi' ? 'FI' : 'EN'); + $objTemplate->order_number = $objOrder->getId(); + $objTemplate->lang = ('fi' === $GLOBALS['TL_LANGUAGE'] ? 'FI' : 'EN'); $objTemplate->return_address = \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id; $objTemplate->cancel_address = \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id; @@ -82,10 +80,7 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod } /** - * Process payment on checkout page. - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return mixed + * @inheritdoc */ public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule) { @@ -96,13 +91,16 @@ public function processPayment(IsotopeProductCollection $objOrder, \Module $objM return false; } - /** - * Process post-sale requestion from the PSP payment server. - * @param IsotopeProductCollection + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + if ($this->debug) { $this->paybyway_private_key = 'private_key'; } @@ -116,27 +114,27 @@ public function processPostsale(IsotopeProductCollection $objOrder) )); if (\Input::post('AUTHCODE') != $strChecksum) { - \System::log('Postsale manipulation for order ID ' . $objOrder->id, __METHOD__, TL_ERROR); - \Isotope\Module\Checkout::redirectToStep('failed'); + \System::log('Postsale manipulation for order ID ' . $objOrder->getId(), __METHOD__, TL_ERROR); + Checkout::redirectToStep('failed'); } switch (\Input::post('RETURN_CODE')) { case 0: // Payment completed successfully. if ($objOrder->checkout()) { - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); - \Isotope\Module\Checkout::redirectToStep('complete', $objOrder); + Checkout::redirectToStep('complete', $objOrder); } break; case 4: // Transaction status could not be updated after customer returned from the web page of a bank. Please use the merchant UI to resolve the payment status. - if (($objConfig = $objOrder->getRelated('config_id')) === null) { - \System::log('Config for Order ID ' . $objOrder->id . ' not found', __METHOD__, TL_ERROR); + if (null === $objOrder->getConfig()) { + \System::log('Config for Order ID ' . $objOrder->getId() . ' not found', __METHOD__, TL_ERROR); } elseif ($objOrder->checkout()) { - $objOrder->updateOrderStatus($objConfig->orderstatus_error); - \Isotope\Module\Checkout::redirectToStep('complete', $objOrder); + $objOrder->updateOrderStatus($objOrder->getConfig()->orderstatus_error); + Checkout::redirectToStep('complete', $objOrder); } break; @@ -148,15 +146,13 @@ public function processPostsale(IsotopeProductCollection $objOrder) break; } - \System::log('Paybyway checkout failed for order ID ' . $objOrder->id, __METHOD__, TL_ERROR); + \System::log('Paybyway checkout failed for order ID ' . $objOrder->getId(), __METHOD__, TL_ERROR); - \Isotope\Module\Checkout::redirectToStep('failed'); + Checkout::redirectToStep('failed'); } - /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Payone.php b/system/modules/isotope/library/Isotope/Model/Payment/Payone.php index 3bd0f12398..0797f96af7 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Payone.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Payone.php @@ -3,50 +3,61 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Interfaces\IsotopePayment; +use Haste\Util\StringUtil; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\Product; use Isotope\Model\ProductCollection\Order; use Isotope\Module\Checkout; +use Isotope\Template; - -class Payone extends Postsale implements IsotopePayment +/** + * PayOne payment method + * + * @property string $payone_clearingtype + * @property string $payone_aid + * @property string $payone_portalid + * @property string $payone_key + */ +class Payone extends Postsale { /** - * Process Transaction URL notification - * - * @param IsotopeProductCollection|Order $objOrder + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + + $mode = (string) \Input::post('mode'); + $txaction = (string) \Input::post('txaction'); + if (\Input::post('aid') != $this->payone_aid || \Input::post('portalid') != $this->payone_portalid - || (\Input::post('mode') == 'test' && !$this->debug) - || (\Input::post('mode') == 'live' && $this->debug) + || (!$this->debug && 'test' === $mode) + || ($this->debug && 'live' === $mode) ) { \System::log('PayOne configuration mismatch', __METHOD__, TL_ERROR); die('TSOK'); } - // Ignore all except these actions - if (\Input::post('txaction') != 'appointed' - && \Input::post('txaction') != 'capture' - && \Input::post('txaction') != 'paid' - ) { + // Ignore all except these actions + if ('appointed' !== $txaction && 'capture' !== $txaction && 'paid' !== $txaction) { die('TSOK'); } - if (\Input::post('currency') != $objOrder->currency || $objOrder->getTotal() != \Input::post('price')) { + if (\Input::post('currency') != $objOrder->getCurrency() || $objOrder->getTotal() != \Input::post('price')) { \System::log('PayOne order data mismatch for Order ID "' . \Input::post('reference') . '"', __METHOD__, TL_ERROR); die('TSOK'); } @@ -56,8 +67,8 @@ public function processPostsale(IsotopeProductCollection $objOrder) die('TSOK'); } - if (\Input::post('txaction') == 'paid' && \Input::post('balance') == 0) { - $objOrder->date_paid = time(); + if ('paid' === \Input::post('txaction') && \Input::post('balance') == 0) { + $objOrder->setDatePaid(time()); } $objOrder->updateOrderStatus($this->new_order_status); @@ -69,8 +80,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) } /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -78,36 +88,35 @@ public function getPostsaleOrder() } /** - * HTML form for checkout - * - * @param IsotopeProductCollection|Order $objOrder The order being places - * @param \Module|Checkout $objModule The checkout module instance - * - * @return mixed + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + $i = 0; - $arrData = array - ( + $arrData = [ 'aid' => $this->payone_aid, 'portalid' => $this->payone_portalid, - 'mode' => ($this->debug ? 'test' : 'live'), - 'request' => ($this->trans_type=='auth' ? 'preauthorization' : 'authorization'), + 'mode' => $this->debug ? 'test' : 'live', + 'request' => 'auth' === $this->trans_type ? 'preauthorization' : 'authorization', 'encoding' => 'UTF-8', 'clearingtype' => $this->payone_clearingtype, - 'reference' => $objOrder->id, + 'reference' => $objOrder->getId(), 'display_name' => 'no', 'display_address' => 'no', - 'successurl' => \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder), - 'backurl' => \Environment::get('base') . $objModule->generateUrlForStep('failed'), - 'amount' => ($objOrder->getTotal() * 100), - 'currency' => $objOrder->currency, + 'successurl' => \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder), + 'backurl' => \Environment::get('base') . Checkout::generateUrlForStep('failed'), + 'amount' => $objOrder->getTotal() * 100, + 'currency' => $objOrder->getCurrency(), // Custom parameter to recognize payone in postsale request (only alphanumeric is allowed) 'param' => 'paymentMethodPayone' . $this->id - ); + ]; foreach ($objOrder->getItems() as $objItem) { @@ -134,29 +143,33 @@ function(&$option) { $arrData['id[' . ++$i . ']'] = $objItem->getSku(); $arrData['pr[' . $i . ']'] = round($objItem->getPrice(), 2) * 100; $arrData['no[' . $i . ']'] = $objItem->quantity; - $arrData['de[' . $i . ']'] = specialchars( - \StringUtil::restoreBasicEntities($objItem->getName() . $strConfig), - true + $arrData['de[' . $i . ']'] = StringUtil::convertToText( + $objItem->getName() . $strConfig, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS | StringUtil::NO_INSERTTAGS | StringUtil::NO_ENTITIES ); } foreach ($objOrder->getSurcharges() as $k => $objSurcharge) { - if (!$objSurcharge->addToTotal) + if (!$objSurcharge->addToTotal) { continue; + } $arrData['id[' . ++$i . ']'] = 'surcharge' . $k; $arrData['pr[' . $i . ']'] = $objSurcharge->total_price * 100; $arrData['no[' . $i . ']'] = '1'; - $arrData['de[' . $i . ']'] = $objSurcharge->label; + $arrData['de[' . $i . ']'] = StringUtil::convertToText( + $objSurcharge->label, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS | StringUtil::NO_INSERTTAGS | StringUtil::NO_ENTITIES + ); } - ksort($arrData); // Do not urlencode values because Payone does not properly decode POST values (whatever...) $strHash = md5(implode('', $arrData) . $this->payone_key); - $objTemplate = new \Isotope\Template('iso_payment_payone'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_payment_payone'); $objTemplate->id = $this->id; $objTemplate->data = $arrData; $objTemplate->hash = $strHash; diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Paypal.php b/system/modules/isotope/library/Isotope/Model/Payment/Paypal.php index 8f1502e5fc..620cf79837 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Paypal.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Paypal.php @@ -3,70 +3,65 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; +use GuzzleHttp\Client; +use GuzzleHttp\RequestOptions; use Haste\Http\Response\Response; -use Isotope\Interfaces\IsotopePayment; +use Haste\Util\StringUtil; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\Product; use Isotope\Model\ProductCollection\Order; use Isotope\Module\Checkout; - +use Isotope\Template; /** - * Class Paypal + * PayPal Standard payment method * - * Handle Paypal payments - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss - * @author Christian de la Haye + * @property string $paypal_account * * @see https://www.paypalobjects.com/webstatic/en_US/developer/docs/pdf/ipnguide.pdf */ -class Paypal extends Postsale implements IsotopePayment +class Paypal extends Postsale { /** * Process PayPal Instant Payment Notifications (IPN) * - * @param IsotopeProductCollection|Order $objOrder + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { - if (\Input::post('payment_status') != 'Completed') { - \System::log('PayPal IPN: payment status "' . \Input::post('payment_status') . '" not implemented', __METHOD__, TL_GENERAL); + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); return; } - $objRequest = new \Request(); - $objRequest->send(('https://www.' . ($this->debug ? 'sandbox.' : '') . 'paypal.com/cgi-bin/webscr?cmd=_notify-validate'), file_get_contents("php://input"), 'post'); - - if ($objRequest->hasError()) { - \System::log('PayPal IPN: Request Error (' . $objRequest->error . ')', __METHOD__, TL_ERROR); - $response = new Response('', 500); - $response->send(); + if ('Completed' !== \Input::post('payment_status')) { + \System::log('PayPal IPN: payment status "' . \Input::post('payment_status') . '" not implemented', __METHOD__, TL_GENERAL); + return; } - if ($objRequest->response != 'VERIFIED') { - \System::log('PayPal IPN: data rejected (' . $objRequest->response . ')', __METHOD__, TL_ERROR); + if (!$this->validateInput()) { return; } - if ((\Input::post('receiver_email', true) != $this->paypal_account && !$this->debug)) { + if (!$this->debug && \Input::post('receiver_email', true) != $this->paypal_account) { \System::log('PayPal IPN: Account email does not match (got ' . \Input::post('receiver_email', true) . ', expected ' . $this->paypal_account . ')', __METHOD__, TL_ERROR); return; } // Validate payment data (see #2221) - if ($objOrder->currency != \Input::post('mc_currency') || $objOrder->getTotal() != \Input::post('mc_gross')) { + if ($objOrder->getCurrency() !== \Input::post('mc_currency') + || $objOrder->getTotal() != \Input::post('mc_gross') + ) { \System::log('PayPal IPN: manipulation in payment from "' . \Input::post('payer_email') . '" !', __METHOD__, TL_ERROR); return; } @@ -81,7 +76,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) $arrPayment['POSTSALE'][] = $_POST; $objOrder->payment_data = $arrPayment; - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); @@ -101,13 +96,18 @@ public function getPostsaleOrder() /** * Return the PayPal form. * - * @param IsotopeProductCollection|Order $objOrder The order being places - * @param \Module|Checkout $objModule The checkout module instance + * @param IsotopeProductCollection $objOrder The order being places + * @param \Module $objModule The checkout module instance * - * @return string + * @return string */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + $arrData = array(); $fltDiscount = 0; $i = 0; @@ -135,8 +135,9 @@ function(&$option) { } $arrData['item_number_' . ++$i] = $objItem->getSku(); - $arrData['item_name_' . $i] = \StringUtil::restoreBasicEntities( - $objItem->getName() . $strConfig + $arrData['item_name_' . $i] = StringUtil::convertToText( + $objItem->getName() . $strConfig, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS | StringUtil::NO_INSERTTAGS | StringUtil::NO_ENTITIES ); $arrData['amount_' . $i] = $objItem->getPrice(); $arrData['quantity_' . $i] = $objItem->quantity; @@ -154,22 +155,26 @@ function(&$option) { continue; } - $arrData['item_name_' . ++$i] = $objSurcharge->label; + $arrData['item_name_' . ++$i] = StringUtil::convertToText( + $objSurcharge->label, + StringUtil::NO_TAGS | StringUtil::NO_BREAKS | StringUtil::NO_INSERTTAGS | StringUtil::NO_ENTITIES + ); $arrData['amount_' . $i] = $objSurcharge->total_price; } - $objTemplate = new \Isotope\Template('iso_payment_paypal'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_payment_paypal'); $objTemplate->setData($this->arrData); $objTemplate->id = $this->id; $objTemplate->action = ('https://www.' . ($this->debug ? 'sandbox.' : '') . 'paypal.com/cgi-bin/webscr'); - $objTemplate->invoice = $objOrder->id; + $objTemplate->invoice = $objOrder->getId(); $objTemplate->data = array_map('specialchars', $arrData); $objTemplate->discount = $fltDiscount; $objTemplate->address = $objOrder->getBillingAddress(); - $objTemplate->currency = $objOrder->currency; - $objTemplate->return = \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder); - $objTemplate->cancel_return = \Environment::get('base') . $objModule->generateUrlForStep('failed'); + $objTemplate->currency = $objOrder->getCurrency(); + $objTemplate->return = \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder); + $objTemplate->cancel_return = \Environment::get('base') . Checkout::generateUrlForStep('failed'); $objTemplate->notify_url = \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id; $objTemplate->headline = specialchars($GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0]); $objTemplate->message = specialchars($GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][1]); @@ -207,7 +212,7 @@ public function backendInterface($orderId) ' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '
-

' . $this->name . ' (' . $GLOBALS['TL_LANG']['MODEL']['tl_iso_payment.paypal'][0] . ')' . '

+

' . $this->name . ' (' . $GLOBALS['TL_LANG']['MODEL']['tl_iso_payment']['paypal'][0] . ')' . '

@@ -219,8 +224,9 @@ public function backendInterface($orderId) '; foreach ($arrPayment as $k => $v) { - if (is_array($v)) + if (is_array($v)) { continue; + } $strBuffer .= ' @@ -237,4 +243,58 @@ public function backendInterface($orderId) return $strBuffer; } + + /** + * Validate PayPal request data by sending it back to the PayPal servers. + * + * @return bool + */ + private function validateInput() + { + try { + $body = file_get_contents('php://input'); + $url = 'https://ipnpb.'.($this->debug ? 'sandbox.' : '').'paypal.com/cgi-bin/webscr?cmd=_notify-validate'; + + if (class_exists('GuzzleHttp\Client')) { + $request = new Client( + [ + RequestOptions::TIMEOUT => 5, + RequestOptions::CONNECT_TIMEOUT => 5, + RequestOptions::HTTP_ERRORS => false, + ] + ); + + $response = $request->post($url, [RequestOptions::BODY => $body]); + + if ($response->getStatusCode() != 200) { + throw new \RuntimeException($response->getReasonPhrase()); + } + + if ('VERIFIED' !== $response->getBody()->getContents()) { + throw new \UnexpectedValueException($response->getBody()->getContents()); + } + + } else { + $request = new \RequestExtended(); + $request->send($url, $body, 'post'); + + if ($request->hasError()) { + throw new \RuntimeException($request->error); + } + + if ('VERIFIED' !== $request->response) { + throw new \UnexpectedValueException($request->response); + } + } + } catch (\UnexpectedValueException $e) { + \System::log('PayPal IPN: data rejected (' . $e->getMessage() . ')', __METHOD__, TL_ERROR); + return false; + } catch (\RuntimeException $e) { + \System::log('PayPal IPN: Request Error (' . $e->getMessage() . ')', __METHOD__, TL_ERROR); + $response = new Response('', 500); + $response->send(); + } + + return true; + } } diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Postfinance.php b/system/modules/isotope/library/Isotope/Model/Payment/Postfinance.php index 9c8c7feb7f..c661b9ae3e 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Postfinance.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Postfinance.php @@ -3,26 +3,18 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Isotope; -use Isotope\Model\Payment; - +use Isotope\Interfaces\IsotopePurchasableCollection; /** - * Class Postfinance - * * Handle Postfinance (Swiss Post) payments - * @copyright Isotope eCommerce Workgroup 2009-2013 - * @author Andreas Schempp - * @author Yanick Witschi */ class Postfinance extends PSP { @@ -122,11 +114,13 @@ public function getPaymentMethods() /** * Prepare PSP params - * @param Order - * @param Module - * @return array + * + * @param IsotopePurchasableCollection $objOrder + * @param \Module $objModule + * + * @return array */ - protected function preparePSPParams($objOrder, $objModule) + protected function preparePSPParams(IsotopePurchasableCollection $objOrder, $objModule) { $arrParams = parent::preparePSPParams($objOrder, $objModule); @@ -142,67 +136,6 @@ protected function preparePSPParams($objOrder, $objModule) ); } - // @todo: Activate this as soon as PostFinance has fixed the issues with FIS - // integration on their side - //$arrParams = array_merge($arrParams, $this->prepareFISParams($objOrder)); - return $arrParams; } - - /** - * Prepare FIS params - * @param Order - * @return array - */ - private function prepareFISParams($objOrder) - { - $objBillingAddress = $objOrder->getBillingAddress(); - $objShippingAddress = $objOrder->getShippingAddress(); - - $arrInvoice = array - ( - // Mandatory fields - 'ECOM_BILLTO_POSTAL_NAME_FIRST' => substr($objBillingAddress->firstname, 0, 50), - 'ECOM_BILLTO_POSTAL_NAME_LAST' => substr($objBillingAddress->lastname, 0, 50), - 'ECOM_SHIPTO_POSTAL_STREET_LINE1' => $objShippingAddress->street_1, - 'ECOM_SHIPTO_POSTAL_POSTALCODE' => $objShippingAddress->postal, - 'ECOM_SHIPTO_POSTAL_CITY' => $objShippingAddress->city, - 'ECOM_SHIPTO_POSTAL_COUNTRYCODE' => strtoupper($objShippingAddress->country), - 'ECOM_SHIPTO_DOB' => date('d/m/Y', $objShippingAddress->dateOfBirth), - // This key is mandatory and just has to be unique (17 chars) - 'REF_CUSTOMERID' => substr('psp_' . $this->id . '_' . $objOrder->id . '_' . $objOrder->uniqid, 0, 17), - - // Additional fields, not mandatory - 'ECOM_CONSUMER_GENDER' => $objBillingAddress->gender == 'male' ? 'M' : 'F', - - // We do not add "ECOM_SHIPTO_COMPANY" here because B2B sometimes may require up to 24 hours - // to check solvency which is not acceptable for an online shop - ); - - $arrOrder = array(); - $i = 1; - - // Need to take the items from the cart as they're not transferred to the order here yet - // @todo this is no longer true, and the price should probably be taken from the collection item ($objItem->getPrice()) - foreach (Isotope::getCart()->getItems() as $objItem) { - - $objPrice = $objItem->getProduct()->getPrice(); - $fltVat = Isotope::roundPrice((100 / $objPrice->getNetAmount() * $objPrice->getGrossAmount()) - 100, false); - - $arrOrder['ITEMID' . $i] = $objItem->id; - $arrOrder['ITEMNAME' . $i] = substr(\StringUtil::restoreBasicEntities( - $objItem->getName() - ), 40); - $arrOrder['ITEMPRICE' . $i] = $objPrice->getNetAmount(); - $arrOrder['ITEMQUANT' . $i] = $objItem->quantity; - $arrOrder['ITEMVATCODE' . $i] = $fltVat . '%'; - $arrOrder['ITEMVAT' . $i] = Isotope::roundPrice($objPrice->getGrossAmount() - $objPrice->getNetAmount(), false); - $arrOrder['FACEXCL' . $i] = $objPrice->getNetAmount(); - $arrOrder['FACTOTAL' . $i] = $objPrice->getGrossAmount(); - - ++$i; - } - - return array_merge($arrInvoice, $arrOrder); - } } diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Postsale.php b/system/modules/isotope/library/Isotope/Model/Payment/Postsale.php index fd3952d6c6..4de0d3a05b 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Postsale.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Postsale.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; @@ -15,6 +14,7 @@ use Isotope\Interfaces\IsotopePostsale; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Model\Payment; +use Isotope\Template; /** @@ -24,14 +24,10 @@ */ abstract class Postsale extends Payment implements IsotopePostsale { - /** * Show message while we are waiting for server-to-server order confirmation * - * @param IsotopeProductCollection $objOrder The order being places - * @param \Module $objModule The checkout module instance - * - * @return bool + * @inheritdoc */ public function processPayment(IsotopeProductCollection $objOrder, \Module $objModule) { @@ -57,7 +53,8 @@ public function processPayment(IsotopeProductCollection $objOrder, \Module $objM $objPage->noSearch = 1; $objPage->cache = 0; - $objTemplate = new \Isotope\Template('mod_message'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('mod_message'); $objTemplate->type = 'processing'; $objTemplate->message = $GLOBALS['TL_LANG']['MSC']['payment_processing']; diff --git a/system/modules/isotope/library/Isotope/Model/Payment/QuickPay.php b/system/modules/isotope/library/Isotope/Model/Payment/QuickPay.php index 84fbc77338..ae738a8db2 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/QuickPay.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/QuickPay.php @@ -3,21 +3,22 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; use Isotope\Currency; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\Payment; use Isotope\Model\Product; use Isotope\Model\ProductCollection\Order; +use Isotope\Module\Checkout; +use Isotope\Template; /** * Class QuickPay @@ -28,27 +29,29 @@ * @property string $quickpay_privateKey * @property string $quickpay_paymentMethods */ -class QuickPay extends Postsale implements IsotopePayment +class QuickPay extends Postsale { - /** - * Process postsale callback - * - * @param IsotopeProductCollection|Order $objOrder + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + if ($this->validatePayment($objOrder)) { if ($objOrder->isCheckoutComplete()) { return; } if (!$objOrder->checkout()) { - \System::log('Postsale checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Postsale checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); return; } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); @@ -56,9 +59,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) } /** - * Get the order object in a postsale request - * - * @return IsotopeProductCollection|null + * @inheritdoc */ public function getPostsaleOrder() { @@ -72,30 +73,25 @@ public function getPostsaleOrder() } /** - * Return the payment form - * - * @param IsotopeProductCollection|Order $objOrder - * @param \Module|\Isotope\Module\Checkout $objModule - * - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { - $objTemplate = new \Isotope\Template('iso_payment_quickpay'); + $objTemplate = new Template('iso_payment_quickpay'); $objTemplate->setData($this->arrData); $params = array( 'version' => 'v10', 'merchant_id' => $this->quickpay_merchantId, 'agreement_id' => $this->quickpay_agreementId, - 'order_id' => str_pad($objOrder->id, 4, '0', STR_PAD_LEFT), + 'order_id' => str_pad($objOrder->getId(), 4, '0', STR_PAD_LEFT), 'language' => substr($GLOBALS['TL_LANGUAGE'], 0, 2), - 'amount' => Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->currency), - 'currency' => $objOrder->currency, - 'continueurl' => \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder), - 'cancelurl' => \Environment::get('base') . $objModule->generateUrlForStep('failed'), + 'amount' => Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->getCurrency()), + 'currency' => $objOrder->getCurrency(), + 'continueurl' => \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder), + 'cancelurl' => \Environment::get('base') . Checkout::generateUrlForStep('failed'), 'callbackurl' => \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id, - 'autocapture' => ($this->trans_type == 'capture' ? '1' : '0'), + 'autocapture' => 'capture' === $this->trans_type ? '1' : '0', ); if ('' !== $this->quickpay_paymentMethods) { @@ -117,7 +113,7 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod /** * Validate input parameters and hash * - * @param IsotopeProductCollection|Order $objOrder + * @param IsotopeProductCollection $objOrder * * @return bool */ @@ -151,9 +147,9 @@ private function validatePayment(IsotopeProductCollection $objOrder) return false; } - $amount = Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->currency); + $amount = Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->getCurrency()); - if ($objOrder->currency != $data['currency'] + if ($objOrder->getCurrency() != $data['currency'] || $amount != $data['operations'][0]['amount'] || 0 != $data['balance'] || $data['test_mode'] != $this->debug @@ -173,7 +169,7 @@ private function validatePayment(IsotopeProductCollection $objOrder) "Accepted: got \"%s\", expected \"yes\"\n\n" . "Test Mode: got \"%s\", expected \"%s\"\n\n", $data['currency'], - $objOrder->currency, + $objOrder->getCurrency(), $data['operations'][0]['amount'], $amount, $data['balance'], diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Saferpay.php b/system/modules/isotope/library/Isotope/Model/Payment/Saferpay.php index b1c6d0ee84..7a38bf6c12 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Saferpay.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Saferpay.php @@ -3,25 +3,31 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; use Isotope\Interfaces\IsotopeOrderStatusAware; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\OrderStatus; use Isotope\Model\ProductCollection\Order; +use Isotope\Module\Checkout; - -class Saferpay extends Postsale implements IsotopePayment, IsotopeOrderStatusAware +/** + * Saferpay payment method + * + * @property string $saferpay_accountid + * @property string $saferpay_description + * @property string $saferpay_vtconfig + * @property array $saferpay_paymentmethods + */ +class Saferpay extends Postsale implements IsotopeOrderStatusAware { - /** * CreatePayInit URI * @var string @@ -43,14 +49,16 @@ class Saferpay extends Postsale implements IsotopePayment, IsotopeOrderStatusAwa protected $objXML; - /** - * Process Saferpay server to server notification - * - * @param IsotopeProductCollection $objOrder + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + if (!$this->validateXML($objOrder)) { return; } @@ -60,7 +68,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) $objRequest->send(static::verifyPayConfirmURI . "?DATA=" . urlencode($this->getPostData()) . "&SIGNATURE=" . urlencode(\Input::post('SIGNATURE'))); // Stop if verification is not working - if (strtoupper(substr($objRequest->response, 0, 3)) != 'OK:') { + if (0 !== strpos(strtoupper($objRequest->response), 'OK:')) { \System::log(sprintf('Payment not successfull. See log files for further details.'), __METHOD__, TL_ERROR); log_message(sprintf('Payment not successfull. Message was: "%s".', $objRequest->response), 'isotope_saferpay.log'); @@ -76,7 +84,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) $arrPayment['PAYCONFIRM'] = $arrResponse; if (!$objOrder->checkout()) { - \System::log('Postsale checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Postsale checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); return; } @@ -85,18 +93,16 @@ public function processPostsale(IsotopeProductCollection $objOrder) $objOrder->save(); // everything has been okay so far and the debit has been authorized. We capture it now if this is requested (usually it is). - if ($this->trans_type != 'auth') { + if ('auth' !== $this->trans_type) { $this->sendPayComplete($arrPayment['PAYCONFIRM']['ID'], $arrPayment['PAYCONFIRM']['TOKEN']); - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); } $objOrder->updateOrderStatus($this->new_order_status); } /** - * Get the order object in a postsale request - * - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -104,25 +110,20 @@ public function getPostsaleOrder() } /** - * HTML form for checkout - * - * @param IsotopeProductCollection $objOrder The order being places - * @param \Module $objModule The checkout module instance - * - * @return mixed + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { // Get redirect url $objRequest = new \Request(); $objRequest->setHeader('Content-Type', 'application/x-www-form-urlencoded'); - $objRequest->send(static::createPayInitURI, http_build_query($this->generatePaymentPostData($objOrder, $objModule), null, '&'), 'POST'); + $objRequest->send(static::createPayInitURI, http_build_query($this->generatePaymentPostData($objOrder), null, '&'), 'POST'); - if ((int) $objRequest->code !== 200 || substr($objRequest->response, 0, 6) === 'ERROR:') { + if ((int) $objRequest->code !== 200 || 0 !== strpos($objRequest->response, 'ERROR:')) { \System::log(sprintf('Could not get the redirect URI from Saferpay. See log files for further details.'), __METHOD__, TL_ERROR); log_message(sprintf('Could not get the redirect URI from Saferpay. Response was: "%s".', $objRequest->response), 'isotope_saferpay.log'); - $objModule->redirectToStep('failed'); + Checkout::redirectToStep('failed'); } $GLOBALS['TL_HEAD'][] = ''; @@ -142,12 +143,12 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod */ public function onOrderStatusUpdate(Order $objOrder, $intOldStatus, OrderStatus $objNewStatus) { - if ($objNewStatus->saferpay_status == 'capture') { + if ('capture' === $objNewStatus->saferpay_status) { $arrPayment = deserialize($objOrder->payment_data, true); $blnResult = $this->sendPayComplete($arrPayment['PAYCONFIRM']['ID'], $arrPayment['PAYCONFIRM']['TOKEN']); - if (TL_MODE == 'BE') { + if ('BE' === TL_MODE) { if ($blnResult) { \Message::addInfo($GLOBALS['TL_LANG']['tl_iso_product_collection']['saferpayStatusSuccess']); } else { @@ -155,7 +156,7 @@ public function onOrderStatusUpdate(Order $objOrder, $intOldStatus, OrderStatus } } - } elseif ($objNewStatus->saferpay_status == 'cancel' && TL_MODE == 'BE') { + } elseif ('cancel' === $objNewStatus->saferpay_status && 'BE' === TL_MODE) { \Message::addInfo($GLOBALS['TL_LANG']['tl_iso_product_collection']['saferpayStatusCancel']); } } @@ -164,23 +165,22 @@ public function onOrderStatusUpdate(Order $objOrder, $intOldStatus, OrderStatus * Generate POST data to initialize payment * * @param IsotopeProductCollection $objOrder - * @param \Module $objModule * * @return array */ - protected function generatePaymentPostData(IsotopeProductCollection $objOrder, \Module $objModule) + protected function generatePaymentPostData(IsotopeProductCollection $objOrder) { $arrData = array(); - $arrData['ACCOUNTID'] = $this->saferpay_accountid; - $arrData['AMOUNT'] = (round(($objOrder->getTotal() * 100), 0)); - $arrData['CURRENCY'] = $objOrder->currency; - $arrData['SUCCESSLINK'] = \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder); - $arrData['FAILLINK'] = \Environment::get('base') . $objModule->generateUrlForStep('failed'); - $arrData['BACKLINK'] = $arrData['FAILLINK']; - $arrData['NOTIFYURL'] = \Environment::get('base') . '/system/modules/isotope/postsale.php?mod=pay&id=' . $this->id; + $arrData['ACCOUNTID'] = $this->saferpay_accountid; + $arrData['AMOUNT'] = round($objOrder->getTotal() * 100, 0); + $arrData['CURRENCY'] = $objOrder->getCurrency(); + $arrData['SUCCESSLINK'] = \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder); + $arrData['FAILLINK'] = \Environment::get('base') . Checkout::generateUrlForStep('failed'); + $arrData['BACKLINK'] = $arrData['FAILLINK']; + $arrData['NOTIFYURL'] = \Environment::get('base') . '/system/modules/isotope/postsale.php?mod=pay&id=' . $this->id; $arrData['DESCRIPTION'] = $this->saferpay_description; - $arrData['ORDERID'] = $objOrder->id; // order id + $arrData['ORDERID'] = $objOrder->getId(); // Additional attributes if ($this->saferpay_vtconfig) { @@ -204,7 +204,7 @@ protected function getPostData() $strData = $_POST['DATA']; // catch magic_quotes_gpc is set to yes in php.ini (can be removed when PHP 5.4 is compulsory) - if (substr($strData, 0, 15) == ' $strId, 'ACCOUNTID' => $this->saferpay_accountid, - 'ACTION' => ($blnCancel ? 'Cancel' : 'Settlement'), + 'ACTION' => $blnCancel ? 'Cancel' : 'Settlement', 'TOKEN' => $strToken ); // This is only for the sandbox mode where a password is required - if (substr($this->saferpay_accountid, 0, 6) == '99867-') { + if (0 === strpos($this->saferpay_accountid, '99867-')) { $params['spPassword'] = 'XAjc3Kna'; } @@ -257,7 +257,7 @@ protected function sendPayComplete($strId, $strToken, $blnCancel = false) $objRequest->send(static::payCompleteURI, http_build_query($params, null, '&'), 'POST'); // Stop if capture was not successful - if ($objRequest->hasError() || strtoupper(substr($objRequest->response, 0, 3)) != 'OK:') { + if ($objRequest->hasError() || 0 !== strpos(strtoupper($objRequest->response), 'OK:')) { \System::log(sprintf('Saferpay PayComplete failed. See log files for further details.'), __METHOD__, TL_ERROR); log_message(sprintf('Saferpay PayComplete failed. Message was: "%s".', $objRequest->response), 'isotope_saferpay.log'); @@ -267,15 +267,14 @@ protected function sendPayComplete($strId, $strToken, $blnCancel = false) return true; } - /** * Check XML data, add to log if debugging is enabled * - * @param Order $objOrder + * @param IsotopeProductCollection $objOrder * * @return bool */ - private function validateXML(Order $objOrder) + private function validateXML(IsotopeProductCollection $objOrder) { if ($this->getPostValue('ACCOUNTID') != $this->saferpay_accountid) { \System::log('XML data wrong, possible manipulation (accountId validation failed)! See log files for further details.', __METHOD__, TL_ERROR); @@ -283,13 +282,13 @@ private function validateXML(Order $objOrder) return false; - } elseif ($this->getPostValue('AMOUNT') != round(($objOrder->getTotal() * 100), 0)) { + } elseif ($this->getPostValue('AMOUNT') != round($objOrder->getTotal() * 100, 0)) { \System::log('XML data wrong, possible manipulation (amount validation failed)! See log files for further details.', __METHOD__, TL_ERROR); log_message(sprintf('XML data wrong, possible manipulation (amount validation failed)! XML was: "%s". Order was: "%s"', $this->getPostValue('AMOUNT'), $objOrder->getTotal()), 'isotope_saferpay.log'); return false; - } elseif ($this->getPostValue('CURRENCY') != $objOrder->currency) { + } elseif ($this->getPostValue('CURRENCY') !== $objOrder->getCurrency()) { \System::log('XML data wrong, possible manipulation (currency validation failed)! See log files for further details.', __METHOD__, TL_ERROR); log_message(sprintf('XML data wrong, possible manipulation (currency validation failed)! XML was: "%s". Order was: "%s"', $this->getPostValue('CURRENCY'), $this->currency), 'isotope_saferpay.log'); diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Sofortueberweisung.php b/system/modules/isotope/library/Isotope/Model/Payment/Sofortueberweisung.php index d5e76e4cfb..e92a747d26 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Sofortueberweisung.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Sofortueberweisung.php @@ -3,44 +3,57 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Isotope; use Isotope\Model\ProductCollection\Order; +use Isotope\Template; - -class Sofortueberweisung extends Postsale implements IsotopePayment +/** + * Sofortueberweisung payment method + * + * @property string $sofortueberweisung_user_id + * @property string $sofortueberweisung_project_id + * @property string sofortueberweisung_project_password + */ +class Sofortueberweisung extends Postsale { - /** * sofortueberweisung.de only supports these currencies - * @return true + * + * @inheritdoc */ public function isAvailable() { - if (!in_array(Isotope::getConfig()->currency, array('EUR', 'CHF', 'GBP'))) { + if (!in_array(Isotope::getConfig()->currency, array('EUR', 'CHF', 'GBP'), true)) { return false; } - return parent::isAvailable(); + try { + return parent::isAvailable(); + } catch (\Exception $e) { + return false; + } } - /** - * Handle the server to server postsale request - * @param IsotopeProductCollection + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + $arrHash = array( 'transaction' => \Input::post('transaction'), 'user_id' => \Input::post('user_id'), @@ -88,15 +101,14 @@ public function processPostsale(IsotopeProductCollection $objOrder) return; } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); } /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -104,14 +116,16 @@ public function getPostsaleOrder() } /** - * Return the payment form - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { - $strCountry = in_array($objOrder->getBillingAddress()->country, array('de', 'ch', 'at')) ? $objOrder->getBillingAddress()->country : 'de'; + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + + $strCountry = in_array($objOrder->getBillingAddress()->country, ['de', 'ch', 'at'], true) ? $objOrder->getBillingAddress()->country : 'de'; $strUrl = 'https://www.sofortueberweisung.' . $strCountry . '/payment/start'; $arrParams = array @@ -123,12 +137,12 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod 'sender_bank_code' => '', 'sender_country_id' => strtoupper($objOrder->getBillingAddress()->country), 'amount' => number_format($objOrder->getTotal(), 2, '.', ''), - 'currency_id' => $objOrder->currency, + 'currency_id' => $objOrder->getCurrency(), 'reason_1' => \Environment::get('host'), 'reason_2' => '', - 'user_variable_0' => $objOrder->id, + 'user_variable_0' => $objOrder->getId(), 'user_variable_1' => $this->id, - 'user_variable_2' => $objOrder->uniqid, + 'user_variable_2' => $objOrder->getUniqueId(), 'user_variable_3' => '', 'user_variable_4' => '', 'user_variable_5' => '', @@ -138,7 +152,8 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod $arrParams['hash'] = sha1(implode('|', $arrParams)); $arrParams['language_id'] = $GLOBALS['TL_LANGUAGE']; - $objTemplate = new \Isotope\Template('iso_payment_sofortueberweisung'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_payment_sofortueberweisung'); $objTemplate->setData($this->arrData); $objTemplate->action = $strUrl; $objTemplate->params = array_filter(array_diff_key($arrParams, array('project_password' => ''))); @@ -150,4 +165,3 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod return $objTemplate->parse(); } } - diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Sparkasse.php b/system/modules/isotope/library/Isotope/Model/Payment/Sparkasse.php index 8a4dc276aa..e16304c39d 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Sparkasse.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Sparkasse.php @@ -3,37 +3,41 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; use Haste\Http\Response\Response; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\ProductCollection\Order; use Isotope\Module\Checkout; use Isotope\Template; /** - * Class Sparkasse + * Sparkasse payment method. * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * @property string $sparkasse_paymentmethod + * @property string $sparkasse_sslmerchant + * @property string $sparkasse_sslpassword + * @property string $sparkasse_merchantref */ -class Sparkasse extends Postsale implements IsotopePayment +class Sparkasse extends Postsale { - /** - * Server to server communication - * @param IsotopeProductCollection + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + $arrData = array(); foreach (array('aid', 'amount', 'basketid', 'currency', 'directPosErrorCode', 'directPosErrorMessage', 'orderid', 'rc', 'retrefnum', 'sessionid', 'trefnum') as $strKey) { @@ -55,8 +59,8 @@ public function processPostsale(IsotopeProductCollection $objOrder) $arrData['amount'] = str_replace(',', '.', preg_replace('/[^0-9,]/', '', $arrData['amount'])); // Validate payment data - if ($objOrder->currency != $arrData['currency']) { - \System::log(sprintf('Data manipulation: currency mismatch ("%s" != "%s")', $objOrder->currency, $arrData['currency']), __METHOD__, TL_ERROR); + if ($objOrder->getCurrency() !== $arrData['currency']) { + \System::log(sprintf('Data manipulation: currency mismatch ("%s" != "%s")', $objOrder->getCurrency(), $arrData['currency']), __METHOD__, TL_ERROR); $this->redirectError($arrData); } elseif ($objOrder->getTotal() != $arrData['amount']) { \System::log(sprintf('Data manipulation: amount mismatch ("%s" != "%s")', $objOrder->getTotal(), $arrData['amount']), __METHOD__, TL_ERROR); @@ -64,7 +68,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) } if (!$objOrder->checkout()) { - \System::log('Postsale checkout for order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Postsale checkout for order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); $this->redirectError($arrData); } @@ -73,7 +77,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) $arrPayment['POSTSALE'][] = $_POST; $objOrder->payment_data = $arrPayment; - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); @@ -86,8 +90,7 @@ public function processPostsale(IsotopeProductCollection $objOrder) } /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -95,33 +98,31 @@ public function getPostsaleOrder() } /** - * Return the payment form. - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { global $objPage; + /** @var Template|\stdClass $objTemplate */ $objTemplate = new Template('iso_payment_sparkasse'); $objTemplate->amount = number_format($objOrder->getTotal(), 2, ',', ''); $objTemplate->basketid = $objOrder->source_collection_id; - $objTemplate->currency = $objOrder->currency; + $objTemplate->currency = $objOrder->getCurrency(); $objTemplate->locale = $objOrder->language; - $objTemplate->orderid = $objOrder->id; + $objTemplate->orderid = $objOrder->getId(); $objTemplate->sessionid = $objPage->id; - $objTemplate->transactiontype = ($this->trans_type == 'auth' ? 'preauthorization' : 'authorization'); + $objTemplate->transactiontype = ('auth' === $this->trans_type ? 'preauthorization' : 'authorization'); $objTemplate->merchantref = ''; if ($this->sparkasse_merchantref != '') { - $objTemplate->merchantref = substr($this->replaceInsertTags($this->sparkasse_merchantref), 0, 30); + $objTemplate->merchantref = substr(\Controller::replaceInsertTags($this->sparkasse_merchantref), 0, 30); } $objTemplate->headline = $GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0]; - $objTemplate->message = $GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][1]; - $objTemplate->link = $GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2]; + $objTemplate->message = $GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][1]; + $objTemplate->link = $GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][2]; // Unfortunately we can't use the class method for this // @todo change when PHP 5.4 is compulsory @@ -134,10 +135,11 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod return $objTemplate->parse(); } - /** * Calculate hash - * @param array + * + * @param array $arrData + * * @return string */ private function calculateHash($arrData) @@ -147,10 +149,10 @@ private function calculateHash($arrData) return hash_hmac('sha1', implode('', $arrData), $this->sparkasse_sslpassword); } - /** * Redirect the Sparkasse server to our error page - * @param array + * + * @param array $arrData */ private function redirectError($arrData) { diff --git a/system/modules/isotope/library/Isotope/Model/Payment/VADS.php b/system/modules/isotope/library/Isotope/Model/Payment/VADS.php index e2ef63ad7a..21a1e6b080 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/VADS.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/VADS.php @@ -3,33 +3,34 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; use Haste\DateTime\DateTime; use Isotope\Currency; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Isotope; use Isotope\Model\ProductCollection\Order; +use Isotope\Module\Checkout; +use Isotope\Template; /** * Class VADS * - * @property string vads_site_id - * @property string vads_certificate + * @property string $vads_site_id + * @property string $vads_certificate */ -abstract class VADS extends Postsale implements IsotopePayment +abstract class VADS extends Postsale { /** * List of parameters to validate on inbound data - * @type array + * @var array */ protected $inboundParameters = array( 'vads_action_mode', @@ -45,45 +46,47 @@ abstract class VADS extends Postsale implements IsotopePayment ); /** - * Perform server to server data check - * - * @param IsotopeProductCollection|Order $objOrder + * @inheritdoc */ public function processPostsale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return; + } + // Verify payment status if (\Input::post('vads_result') != '00') { - \System::log('Payment for order ID "' . $objOrder->id . '" failed.', __METHOD__, TL_ERROR); + \System::log('Payment for order ID "' . $objOrder->getId() . '" failed.', __METHOD__, TL_ERROR); return; } // Validate HMAC sign if (\Input::post('signature') != $this->calculateSignature($_POST, $this->vads_certificate)) { - \System::log('Invalid signature for Order ID ' . $objOrder->id, __METHOD__, TL_ERROR); + \System::log('Invalid signature for Order ID ' . $objOrder->getId(), __METHOD__, TL_ERROR); return; } // For maximum security, also validate individual parameters if (!$this->validateInboundParameters($objOrder)) { - \System::log('Parameter mismatch for Order ID ' . $objOrder->id, __METHOD__, TL_ERROR); + \System::log('Parameter mismatch for Order ID ' . $objOrder->getId(), __METHOD__, TL_ERROR); return; } if (!$objOrder->checkout()) { - \System::log('Postsale checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Postsale checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); return; } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); $objOrder->save(); } /** - * Get the order object in a postsale request - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -93,17 +96,20 @@ public function getPostsaleOrder() /** * Generate the submit form for Innopay and if javascript is enabled redirect automatically * - * @param IsotopeProductCollection|Order $objOrder The order being placed - * @param \Module|\Isotope\Module\Checkout $objModule The checkout module instance - * - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { - $parameters = $this->getOutboundParameters($objOrder, $objModule); + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + + $parameters = $this->getOutboundParameters($objOrder); $parameters['signature'] = $this->calculateSignature($parameters, $this->vads_certificate); - $objTemplate = new \Isotope\Template($this->strTemplate); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template($this->strTemplate); $objTemplate->id = $this->id; $objTemplate->params = $parameters; $objTemplate->headline = specialchars($GLOBALS['TL_LANG']['MSC']['pay_with_redirect'][0]); @@ -115,47 +121,42 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod } /** - * @param IsotopeProductCollection|Order $objOrder - * @param \Module|\Isotope\Module\Checkout $objModule + * @param IsotopePurchasableCollection $objOrder * * @return array */ - protected function getOutboundParameters(IsotopeProductCollection $objOrder, \Module $objModule = null) + protected function getOutboundParameters(IsotopePurchasableCollection $objOrder) { $objAddress = $objOrder->getBillingAddress(); - $successUrl = ''; - $failureUrl = ''; + $successUrl = \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder); + $failureUrl = \Environment::get('base') . Checkout::generateUrlForStep('failed'); + $transDate = new DateTime(); $transDate->setTimezone(new \DateTimeZone('UTC')); - if (null !== $objModule) { - $successUrl = \Environment::get('base') . $objModule->generateUrlForStep('complete', $objOrder); - $failureUrl = \Environment::get('base') . $objModule->generateUrlForStep('failed'); - } - return array( 'vads_action_mode' => 'INTERACTIVE', - 'vads_amount' => Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->currency), + 'vads_amount' => Currency::getAmountInMinorUnits($objOrder->getTotal(), $objOrder->getCurrency()), 'vads_contrib' => 'Isotope eCommerce ' . Isotope::VERSION, - 'vads_ctx_mode' => ($this->debug ? 'TEST' : 'PRODUCTION'), - 'vads_currency' => Currency::getIsoNumber($objOrder->currency), + 'vads_ctx_mode' => $this->debug ? 'TEST' : 'PRODUCTION', + 'vads_currency' => Currency::getIsoNumber($objOrder->getCurrency()), 'vads_cust_address' => $objAddress->street_1, 'vads_cust_city' => $objAddress->city, 'vads_cust_country' => $objAddress->country, 'vads_cust_email' => $objAddress->email, - 'vads_cust_id' => ($objOrder->member ?: ''), - 'vads_cust_name' => ($objAddress->firstname . ' ' . $objAddress->lastname), + 'vads_cust_id' => null === $objOrder->getMember() ? 0 : $objOrder->getMember()->id, + 'vads_cust_name' => $objAddress->firstname . ' ' . $objAddress->lastname, 'vads_cust_phone' => $objAddress->phone, 'vads_cust_title' => $objAddress->salutation, 'vads_cust_zip' => $objAddress->postal, 'vads_language' => $objOrder->language, - 'vads_order_id' => $objOrder->id, + 'vads_order_id' => $objOrder->getId(), 'vads_page_action' => 'PAYMENT', 'vads_payment_config' => 'SINGLE', 'vads_return_mode' => 'NONE', 'vads_site_id' => $this->vads_site_id, 'vads_trans_date' => $transDate->format('YmdHis'), - 'vads_trans_id' => str_pad($objOrder->id, 6, '0', STR_PAD_LEFT), + 'vads_trans_id' => str_pad($objOrder->getId(), 6, '0', STR_PAD_LEFT), 'vads_url_cancel' => $failureUrl, 'vads_url_check' => \Environment::get('base') . 'system/modules/isotope/postsale.php?mod=pay&id=' . $this->id, 'vads_url_error' => $failureUrl, @@ -194,11 +195,11 @@ protected function calculateSignature(array $parameters, $certificate) /** * Validate input parameters to prevent payment manipulation * - * @param IsotopeProductCollection $objOrder + * @param IsotopePurchasableCollection $objOrder * * @return bool */ - protected function validateInboundParameters(IsotopeProductCollection $objOrder) + protected function validateInboundParameters(IsotopePurchasableCollection $objOrder) { $parameters = $this->getOutboundParameters($objOrder); diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Viveum.php b/system/modules/isotope/library/Isotope/Model/Payment/Viveum.php index 2147f73e92..1e086421e6 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Viveum.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Viveum.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; @@ -83,4 +82,12 @@ class Viveum extends PSP 'TRXDATE', 'VC' ); + + /** + * @inheritdoc + */ + public function getPaymentMethods() + { + return []; + } } diff --git a/system/modules/isotope/library/Isotope/Model/Payment/Worldpay.php b/system/modules/isotope/library/Isotope/Model/Payment/Worldpay.php index 258f391e2e..30ef32c888 100644 --- a/system/modules/isotope/library/Isotope/Model/Payment/Worldpay.php +++ b/system/modules/isotope/library/Isotope/Model/Payment/Worldpay.php @@ -3,37 +3,42 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Payment; -use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Model\ProductCollection\Order; use Isotope\Module\Checkout; +use Isotope\Template; use Isotope\Translation; - /** * Isotope payment method for www.worldpay.com - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * + * @property int $worldpay_instId + * @property string $worldpay_callbackPW + * @property string $worldpay_signatureFields + * @property string $worldpay_md5secret + * @property string $worldpay_description */ -class Worldpay extends Postsale implements IsotopePayment +class Worldpay extends Postsale { - /** - * Process Instant Payment Notifications (IPN) - * - * @param IsotopeProductCollection $objOrder + * @inheritdoc */ public function processPostSale(IsotopeProductCollection $objOrder) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + $this->postsaleError(); + } + if (\Input::post('instId') != $this->worldpay_instId) { \System::log('Installation ID does not match', __METHOD__, TL_ERROR); $this->postsaleError(); @@ -41,7 +46,7 @@ public function processPostSale(IsotopeProductCollection $objOrder) // Validate payment data if ( - $objOrder->currency != \Input::post('currency') || + $objOrder->getCurrency() != \Input::post('currency') || $objOrder->getTotal() != \Input::post('amount') || $this->worldpay_callbackPW != \Input::post('callbackPW') || (!$this->debug && \Input::post('testMode') == '100') @@ -51,17 +56,17 @@ public function processPostSale(IsotopeProductCollection $objOrder) } // Order status cancelled and order not yet completed, do nothing - if (\Input::post('transStatus') != 'Y' && $objOrder->status == 0) { + if ('Y' !== \Input::post('transStatus') && $objOrder->status == 0) { $this->postsaleError(); } - if (\Input::post('transStatus') == 'Y') { + if ('Y' === \Input::post('transStatus')) { if (!$objOrder->checkout()) { - \System::log('Checkout for Order ID "' . $objOrder->id . '" failed', __METHOD__, TL_ERROR); + \System::log('Checkout for Order ID "' . $objOrder->getId() . '" failed', __METHOD__, TL_ERROR); $this->postsaleError(); } - $objOrder->date_paid = time(); + $objOrder->setDatePaid(time()); $objOrder->updateOrderStatus($this->new_order_status); } @@ -76,9 +81,7 @@ public function processPostSale(IsotopeProductCollection $objOrder) } /** - * Get the order object in a postsale request - * - * @return IsotopeProductCollection + * @inheritdoc */ public function getPostsaleOrder() { @@ -86,21 +89,23 @@ public function getPostsaleOrder() } /** - * Return the checkout form. - * @param IsotopeProductCollection The order being places - * @param Module The checkout module instance - * @return string + * @inheritdoc */ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objModule) { + if (!$objOrder instanceof IsotopePurchasableCollection) { + \System::log('Product collection ID "' . $objOrder->getId() . '" is not purchasable', __METHOD__, TL_ERROR); + return false; + } + global $objPage; $objAddress = $objOrder->getBillingAddress(); $arrData = array(); $arrData['instId'] = $this->worldpay_instId; - $arrData['cartId'] = $objOrder->id; + $arrData['cartId'] = $objOrder->getId(); $arrData['amount'] = number_format($objOrder->getTotal(), 2); - $arrData['currency'] = $objOrder->currency; + $arrData['currency'] = $objOrder->getCurrency(); $arrData['description'] = Translation::get($this->worldpay_description); $arrData['name'] = substr($objAddress->firstname . ' ' . $objAddress->lastname, 0, 40); @@ -124,7 +129,8 @@ public function checkoutForm(IsotopeProductCollection $objOrder, \Module $objMod // Generate MD5 secret hash $arrData['signature'] = md5($this->worldpay_md5secret . ':' . implode(':', array_intersect_key($arrData, array_flip(trimsplit(':', $this->worldpay_signatureFields))))); - $objTemplate = new \Isotope\Template('iso_payment_worldpay'); + /** @var Template|\stdClass $objTemplate */ + $objTemplate = new Template('iso_payment_worldpay'); $objTemplate->setData($arrData); $objTemplate->id = $this->id; @@ -169,7 +175,7 @@ protected function postsaleError() * * @param IsotopeProductCollection $objOrder */ - protected function postsaleSuccess($objOrder) + protected function postsaleSuccess(IsotopeProductCollection $objOrder) { $objPage = \PageModel::findWithDetails((int) \Input::post('M_pageId')); $strUrl = \Environment::get('base') . Checkout::generateUrlForStep('complete', $objOrder, $objPage); diff --git a/system/modules/isotope/library/Isotope/Model/Product.php b/system/modules/isotope/library/Isotope/Model/Product.php index 0b46328a55..a7991f33fe 100644 --- a/system/modules/isotope/library/Isotope/Model/Product.php +++ b/system/modules/isotope/library/Isotope/Model/Product.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -15,7 +14,7 @@ use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Attribute; use Isotope\RequestCache\Filter; - +use Model\Collection; /** * The basic Isotope product model @@ -25,10 +24,31 @@ * @property int $gid * @property int $tstamp * @property string $language - * @proeprty int $dateAdded + * @property int $dateAdded * @property int $type + * @property array $pages + * @property array $orderPages + * @property array $inherit + * @property bool $fallback + * @property string $alias + * @property string $sku + * @property string $name + * @property string $teaser + * @property string $description + * @property string $meta_title + * @property string $meta_description + * @property string $meta_keywords + * @property bool $shipping_exempt + * @property array $images + * @property bool $protected + * @property array $groups + * @property bool $guests + * @property array $cssID + * @property bool $published + * @property string $start + * @property string $stop */ -abstract class Product extends TypeAgent +abstract class Product extends TypeAgent implements IsotopeProduct { /** @@ -55,6 +75,15 @@ abstract class Product extends TypeAgent */ protected static $arrActive = array(); + /** + * Get categories (pages) assigned to this product + * + * @param bool $blnPublished Only return published categories (pages) + * + * @return array + */ + abstract public function getCategories($blnPublished = false); + /** * Get product that is currently active (needed e.g. for insert tag replacement) * @@ -62,7 +91,7 @@ abstract class Product extends TypeAgent */ public static function getActive() { - return empty(static::$arrActive) ? null : end(static::$arrActive); + return 0 === count(static::$arrActive) ? null : end(static::$arrActive); } /** @@ -72,7 +101,7 @@ public static function getActive() */ public static function setActive(IsotopeProduct $objProduct) { - array_push(static::$arrActive, $objProduct); + static::$arrActive[] = $objProduct; } /** @@ -88,7 +117,7 @@ public static function unsetActive() * * @param array $arrOptions * - * @return \Model\Collection + * @return Collection|Product[]|null */ public static function findPublished(array $arrOptions = array()) { @@ -102,7 +131,7 @@ public static function findPublished(array $arrOptions = array()) * @param mixed $arrValues * @param array $arrOptions * - * @return \Model\Collection + * @return Collection|Product[]|null */ public static function findPublishedBy($arrColumns, $arrValues, array $arrOptions = array()) { @@ -132,7 +161,7 @@ public static function findPublishedBy($arrColumns, $arrValues, array $arrOption * @param int $intId * @param array $arrOptions * - * @return \Model + * @return static|null */ public static function findPublishedByPk($intId, array $arrOptions = array()) { @@ -152,14 +181,14 @@ public static function findPublishedByPk($intId, array $arrOptions = array()) * @param mixed $varId The ID or alias * @param array $arrOptions An optional options array * - * @return \Model|null The model or null if the result is empty + * @return static|null The model or null if the result is empty */ public static function findPublishedByIdOrAlias($varId, array $arrOptions = array()) { $t = static::$strTable; $arrColumns = array("($t.id=? OR $t.alias=?)"); - $arrValues = array((is_numeric($varId) ? $varId : 0), $varId); + $arrValues = array(is_numeric($varId) ? $varId : 0, $varId); $arrOptions = array_merge( array( @@ -178,11 +207,11 @@ public static function findPublishedByIdOrAlias($varId, array $arrOptions = arra * @param array $arrIds * @param array $arrOptions * - * @return \Model\Collection + * @return Product[]|Collection */ public static function findPublishedByIds(array $arrIds, array $arrOptions = array()) { - if (empty($arrIds) || !is_array($arrIds)) { + if (0 === count($arrIds)) { return null; } @@ -199,7 +228,7 @@ public static function findPublishedByIds(array $arrIds, array $arrOptions = arr * @param int $intPid * @param array $arrOptions * - * @return \Model\Collection + * @return Collection|Product[]|null */ public static function findPublishedByPid($intPid, array $arrOptions = array()) { @@ -212,12 +241,12 @@ public static function findPublishedByPid($intPid, array $arrOptions = array()) * @param array $arrCategories * @param array $arrOptions * - * @return \Model\Collection + * @return Collection|Product[]|null */ public static function findPublishedByCategories(array $arrCategories, array $arrOptions = array()) { return static::findPublishedBy( - array("c.page_id IN (" . implode(',', array_map('intval', $arrCategories)) . ")"), + array('c.page_id IN (' . implode(',', array_map('intval', $arrCategories)) . ')'), null, $arrOptions ); @@ -229,7 +258,7 @@ public static function findPublishedByCategories(array $arrCategories, array $ar * @param int $intId * @param array $arrOptions * - * @return \Model + * @return static|null */ public static function findAvailableByPk($intId, array $arrOptions = array()) { @@ -267,7 +296,7 @@ public static function findAvailableByIdOrAlias($varId, array $arrOptions = arra * @param array $arrIds * @param array $arrOptions * - * @return \Model\Collection + * @return Collection|Product[]|null */ public static function findAvailableByIds(array $arrIds, array $arrOptions = array()) { @@ -277,18 +306,18 @@ public static function findAvailableByIds(array $arrIds, array $arrOptions = arr return null; } - $arrProducts = array(); + $arrProducts = []; foreach ($objProducts as $objProduct) { if ($objProduct->isAvailableInFrontend()) { $arrProducts[] = $objProduct; } } - if (empty($arrProducts)) { + if (0 === count($arrProducts)) { return null; } - return new \Model\Collection($arrProducts, static::$strTable); + return new Collection($arrProducts, static::$strTable); } /** @@ -298,7 +327,7 @@ public static function findAvailableByIds(array $arrIds, array $arrOptions = arr * @param mixed $arrValues * @param array $arrOptions * - * @return \Model\Collection + * @return Collection */ public static function findAvailableBy($arrColumns, $arrValues, array $arrOptions = array()) { @@ -308,18 +337,18 @@ public static function findAvailableBy($arrColumns, $arrValues, array $arrOption return null; } - $arrProducts = array(); + $arrProducts = []; foreach ($objProducts as $objProduct) { if ($objProduct->isAvailableInFrontend()) { $arrProducts[] = $objProduct; } } - if (empty($arrProducts)) { + if (0 === count($arrProducts)) { return null; } - return new \Model\Collection($arrProducts, static::$strTable); + return new Collection($arrProducts, static::$strTable); } /** @@ -339,8 +368,8 @@ public static function findVariantOfProduct( $t = static::$strTable; $arrColumns = array( - "$t.id IN (" . implode(',', $objProduct->getVariantIds()) . ")", - "$t." . implode("=? AND $t.", array_keys($arrVariant)) . "=?" + "$t.id IN (" . implode(',', $objProduct->getVariantIds()) . ')', + "$t." . implode("=? AND $t.", array_keys($arrVariant)) . '=?' ); $arrOptions = array_merge( @@ -356,6 +385,38 @@ public static function findVariantOfProduct( return static::find($arrOptions); } + /** + * Finds the default variant of a product. + * + * @param IsotopeProduct $objProduct + * @param array $arrOptions + * + * @return static|null + */ + public static function findDefaultVariantOfProduct(IsotopeProduct $objProduct, array $arrOptions = array()) + { + static $cache; + + if (null === $cache) { + $cache = []; + $data = \Database::getInstance()->execute( + "SELECT id, pid FROM tl_iso_product WHERE pid>0 AND language='' AND fallback='1'" + ); + + while ($data->next()) { + $cache[$data->pid] = $data->id; + } + } + + $defaultId = $cache[$objProduct->getProductId()]; + + if ($defaultId < 1 || !in_array($defaultId, $objProduct->getVariantIds())) { + return null; + } + + return static::findByPk($defaultId, $arrOptions); + } + /** * Returns the number of published products. * @@ -427,7 +488,7 @@ public static function countTranslatedProducts() * * @param array $arrOptions * - * @return \Model|\Model\Collection|null + * @return Product|Product[]|Collection|null */ protected static function find(array $arrOptions) { @@ -443,14 +504,17 @@ protected static function find(array $arrOptions) $arrFilters = $arrOptions['filters']; $arrSorting = $arrOptions['sorting']; - if (!empty($arrFilters) || !empty($arrSorting)) { + $hasFilters = is_array($arrFilters) && 0 !== count($arrFilters); + $hasSorting = is_array($arrSorting) && 0 !== count($arrSorting); - /** @var IsotopeProduct[]|Product[] $arrProducts */ + if ($hasFilters || $hasSorting) { + + /** @var static[] $arrProducts */ $arrProducts = $objProducts->getModels(); - if (!empty($arrFilters)) { + if ($hasFilters) { $arrProducts = array_filter($arrProducts, function ($objProduct) use ($arrFilters) { - $arrGroups = array(); + $arrGroups = []; foreach ($arrFilters as $objFilter) { $blnMatch = $objFilter->matches($objProduct); @@ -462,16 +526,12 @@ protected static function find(array $arrOptions) } } - if (!empty($arrGroups) && in_array(false, $arrGroups)) { - return false; - } - - return true; + return !in_array(false, $arrGroups, true); }); } // $arrProducts can be empty if the filter removed all records - if (!empty($arrSorting) && !empty($arrProducts)) { + if ($hasSorting && 0 !== count($arrProducts)) { $arrParam = array(); $arrData = array(); @@ -483,8 +543,8 @@ protected static function find(array $arrOptions) // search, force the sorting order to be determined by a lowercase copy of the original value. // Temporary fix for price attribute (see #945) - if ($strField == 'price') { - if (($objProduct->getPrice() !== null)) { + if ('price' === $strField) { + if (null !== $objProduct->getPrice()) { $arrData[$strField][$objProduct->id] = $objProduct->getPrice()->getAmount(); } else { $arrData[$strField][$objProduct->id] = 0; @@ -507,7 +567,7 @@ protected static function find(array $arrOptions) call_user_func_array('array_multisort', $arrParam); } - $objProducts = new \Model\Collection($arrProducts, static::$strTable); + $objProducts = new Collection($arrProducts, static::$strTable); } return $objProducts; @@ -528,13 +588,13 @@ protected static function buildFindQuery(array $arrOptions) $arrJoins = array(); $arrFields = array( - $arrOptions['table'] . ".*", + $arrOptions['table'] . '.*', "'" . str_replace('-', '_', $GLOBALS['TL_LANGUAGE']) . "' AS language", ); if ($hasVariants) { $arrFields[] = sprintf( - "IF(%s.pid>0, parent.type, %s.type) AS type", + 'IF(%s.pid>0, parent.type, %s.type) AS type', $arrOptions['table'], $arrOptions['table'] ); @@ -550,10 +610,10 @@ protected static function buildFindQuery(array $arrOptions) $arrFields[] = "{$arrOptions['table']}.$attribute AS {$attribute}_fallback"; } - $arrFields[] = "c.sorting"; + $arrFields[] = 'c.sorting'; $arrJoins[] = sprintf( - " LEFT OUTER JOIN %s c ON %s.id=c.pid", + ' LEFT OUTER JOIN %s c ON %s.id=c.pid', ProductCategory::getTable(), $arrOptions['table'] ); @@ -569,7 +629,7 @@ protected static function buildFindQuery(array $arrOptions) if ($hasVariants) { $arrJoins[] = sprintf( - " LEFT OUTER JOIN %s parent ON %s.pid=parent.id", + ' LEFT OUTER JOIN %s parent ON %s.pid=parent.id', $arrOptions['table'], $arrOptions['table'] ); @@ -581,11 +641,11 @@ protected static function buildFindQuery(array $arrOptions) foreach ($objBase->getRelations() as $strKey => $arrConfig) { // Automatically join the single-relation records - if (($arrConfig['load'] == 'eager' || $arrOptions['eager']) - && ($arrConfig['type'] == 'hasOne' || $arrConfig['type'] == 'belongsTo') + if (('eager' === $arrConfig['load'] || $arrOptions['eager']) + && ('hasOne' === $arrConfig['type'] || 'belongsTo' === $arrConfig['type']) ) { if (is_array($arrOptions['joinAliases']) - && ($key = array_search($arrConfig['table'], $arrOptions['joinAliases'])) !== false + && ($key = array_search($arrConfig['table'], $arrOptions['joinAliases'], true)) !== false ) { $strJoinAlias = $key; unset($arrOptions['joinAliases'][$key]); @@ -596,12 +656,12 @@ protected static function buildFindQuery(array $arrOptions) $objRelated = \DcaExtractor::getInstance($arrConfig['table']); - foreach (array_keys($objRelated->getFields()) as $strField) { + foreach ($objRelated->getFields() as $strField => $config) { $arrFields[] = $strJoinAlias . '.' . $strField . ' AS ' . $strKey . '__' . $strField; } $arrJoins[] = sprintf( - " LEFT JOIN %s %s ON %s.%s=%s.id", + ' LEFT JOIN %s %s ON %s.%s=%s.id', $arrConfig['table'], $strJoinAlias, $arrOptions['table'], @@ -613,7 +673,7 @@ protected static function buildFindQuery(array $arrOptions) } // Generate the query - $strQuery = "SELECT " . implode(', ', $arrFields) . " FROM " . $arrOptions['table'] . implode("", $arrJoins); + $strQuery = 'SELECT ' . implode(', ', $arrFields) . ' FROM ' . $arrOptions['table'] . implode('', $arrJoins); // Where condition if (!is_array($arrOptions['column'])) { @@ -621,16 +681,16 @@ protected static function buildFindQuery(array $arrOptions) } // The model must never find a language record - $strQuery .= " WHERE {$arrOptions['table']}.language='' AND " . implode(" AND ", $arrOptions['column']); + $strQuery .= " WHERE {$arrOptions['table']}.language='' AND " . implode(' AND ', $arrOptions['column']); // Group by if ($arrOptions['group'] !== null) { - $strQuery .= " GROUP BY " . $arrOptions['group']; + $strQuery .= ' GROUP BY ' . $arrOptions['group']; } // Order by if ($arrOptions['order'] !== null) { - $strQuery .= " ORDER BY " . $arrOptions['order']; + $strQuery .= ' ORDER BY ' . $arrOptions['order']; } return $strQuery; @@ -650,13 +710,13 @@ protected static function buildCountQuery(array $arrOptions) $arrJoins = array(); $arrFields = array( - $arrOptions['table'] . ".*", + $arrOptions['table'] . '.*', "'" . str_replace('-', '_', $GLOBALS['TL_LANGUAGE']) . "' AS language", ); if ($hasVariants) { $arrFields[] = sprintf( - "IF(%s.pid>0, parent.type, %s.type) AS type", + 'IF(%s.pid>0, parent.type, %s.type) AS type', $arrOptions['table'], $arrOptions['table'] ); @@ -669,7 +729,7 @@ protected static function buildCountQuery(array $arrOptions) } $arrJoins[] = sprintf( - " LEFT OUTER JOIN %s c ON %s.id=c.pid", + ' LEFT OUTER JOIN %s c ON %s.id=c.pid', ProductCategory::getTable(), $arrOptions['table'] ); @@ -685,7 +745,7 @@ protected static function buildCountQuery(array $arrOptions) if ($hasVariants) { $arrJoins[] = sprintf( - " LEFT OUTER JOIN %s parent ON %s.pid=parent.id", + ' LEFT OUTER JOIN %s parent ON %s.pid=parent.id', $arrOptions['table'], $arrOptions['table'] ); @@ -693,11 +753,11 @@ protected static function buildCountQuery(array $arrOptions) // Generate the query $strWhere = ''; - $strQuery = " + $strQuery = ' SELECT - " . implode(', ', $arrFields) . ", - COUNT(DISTINCT " . $arrOptions['table'] . ".id) AS count - FROM " . $arrOptions['table'] . implode("", $arrJoins); + ' . implode(', ', $arrFields) . ', + COUNT(DISTINCT ' . $arrOptions['table'] . '.id) AS count + FROM ' . $arrOptions['table'] . implode('', $arrJoins); // Where condition if (!empty($arrOptions['column'])) { @@ -705,7 +765,7 @@ protected static function buildCountQuery(array $arrOptions) $arrOptions['column'] = array($arrOptions['table'] . '.' . $arrOptions['column'] . '=?'); } - $strWhere = " AND " . implode(" AND ", $arrOptions['column']); + $strWhere = ' AND ' . implode(' AND ', $arrOptions['column']); } // The model must never find a language record @@ -713,7 +773,7 @@ protected static function buildCountQuery(array $arrOptions) // Group by if ($arrOptions['group'] !== null) { - $strQuery .= " GROUP BY " . $arrOptions['group']; + $strQuery .= ' GROUP BY ' . $arrOptions['group']; } return $strQuery; diff --git a/system/modules/isotope/library/Isotope/Model/Product/AbstractProduct.php b/system/modules/isotope/library/Isotope/Model/Product/AbstractProduct.php new file mode 100644 index 0000000000..f0846b74bf --- /dev/null +++ b/system/modules/isotope/library/Isotope/Model/Product/AbstractProduct.php @@ -0,0 +1,287 @@ +id; + } + + /** + * @inheritdoc + */ + public function getProductId() + { + return (int) $this->pid ?: $this->id; + } + + /** + * @inheritdoc + * + * @return ProductType|null + */ + public function getType() + { + try { + return $this->getRelated('type'); + } catch (\Exception $e) { + return null; + } + } + + /** + * @inheritdoc + */ + public function getName() + { + return $this->name; + } + + /** + * @inheritdoc + */ + public function getSku() + { + return $this->sku; + } + + /** + * Returns true if the product is available to show on the website + * + * @return bool + */ + public function isAvailableInFrontend() + { + $objCollection = Isotope::getCart(); + + if (null === $objCollection) { + return false; + } + + return $this->isAvailableForCollection($objCollection); + } + + /** + * @inheritdoc + */ + public function isAvailableForCollection(IsotopeProductCollection $objCollection) + { + if ($objCollection->isLocked()) { + return true; + } + + if (isset($GLOBALS['ISO_HOOKS']['productIsAvailable']) + && is_array($GLOBALS['ISO_HOOKS']['productIsAvailable']) + ) { + foreach ($GLOBALS['ISO_HOOKS']['productIsAvailable'] as $callback) { + $objCallback = \System::importStatic($callback[0]); + $available = $objCallback->{$callback[1]}($this, $objCollection); + + // If return value is boolean then we accept it as result + if (true === $available || false === $available) { + return $available; + } + } + } + + if (BE_USER_LOGGED_IN !== true && !$this->isPublished()) { + return false; + } + + $member = $objCollection->getMember(); + + // Show to guests only + if ($this->guests + && null !== $member + && BE_USER_LOGGED_IN !== true + && !$this->protected + ) { + return false; + } + + // Protected product + if (BE_USER_LOGGED_IN !== true && $this->protected) { + if (null === $member) { + return false; + } + + $groups = deserialize($this->groups); + $memberGroups = deserialize($member->groups); + + if (!is_array($groups) + || empty($groups) + || !is_array($memberGroups) + || empty($memberGroups) + || !count(array_intersect($groups, $memberGroups)) + ) { + return false; + } + } + + return true; + } + + /** + * @inheritdoc + */ + public function isPublished() + { + $time = \Date::floorToMinute(); + + if (!$this->published) { + return false; + } elseif ($this->start != '' && $this->start > $time) { + return false; + } elseif ($this->stop != '' && $this->stop < ($time + 60)) { + return false; + } + + return true; + } + + /** + * Checks whether a product is new according to the current store config + * + * @return bool + */ + public function isNew() + { + return $this->dateAdded >= Isotope::getConfig()->getNewProductLimit(); + } + + /** + * @inheritdoc + */ + public function isExemptFromShipping() + { + if ($this->shipping_exempt) { + return true; + } + + return null !== $this->getType() && $this->getType()->shipping_exempt; + } + + /** + * @inheritdoc + */ + public function isVariant() + { + return ($this->pid > 0 && $this->hasVariants()); + } + + /** + * @inheritdoc + */ + public function hasVariants() + { + try { + /** @var ProductType $type */ + $type = $this->getRelated('type'); + } catch (\Exception $e) { + return false; + } + + return $type->hasVariants(); + } + + /** + * @inheritdoc + */ + public function hasVariantPrices() + { + return $this->hasVariants() && in_array('price', $this->getVariantAttributes(), true); + } + + /** + * @inheritdoc + */ + public function hasAdvancedPrices() + { + /** @var ProductType $objType */ + $objType = $this->getRelated('type'); + + return $objType->hasAdvancedPrices(); + } + + /** + * @inheritdoc + */ + public function getCategories($blnPublished = false) + { + $key = ($blnPublished ? 'published' : 'all'); + + if (null === $this->arrCategories || !isset($this->arrCategories[$key])) { + if ($blnPublished) { + $options = ProductCategory::getFindByPidForPublishedPagesOptions($this->getProductId()); + $options['table'] = ProductCategory::getTable(); + $query = QueryBuilder::find($options); + $values = (array) $options['value']; + } else { + $query = 'SELECT page_id FROM tl_iso_product_category WHERE pid=?'; + $values = array($this->getProductId()); + } + + $objCategories = \Database::getInstance()->prepare($query)->execute($values); + + $this->arrCategories[$key] = $objCategories->fetchEach('page_id'); + + // Sort categories by the backend drag&drop + $arrOrder = deserialize($this->orderPages); + if (!empty($arrOrder) && is_array($arrOrder)) { + $this->arrCategories[$key] = array_unique( + array_merge( + array_intersect( + $arrOrder, + $this->arrCategories[$key] + ), + $this->arrCategories[$key] + ) + ); + } + } + + return $this->arrCategories[$key]; + } + + /** + * @inheritDoc + */ + public function setRow(array $arrData) + { + $this->arrCategories = null; + + return parent::setRow($arrData); + } +} diff --git a/system/modules/isotope/library/Isotope/Model/Product/Standard.php b/system/modules/isotope/library/Isotope/Model/Product/Standard.php index bbb5ac5ba0..9036a6dc3c 100644 --- a/system/modules/isotope/library/Isotope/Model/Product/Standard.php +++ b/system/modules/isotope/library/Isotope/Model/Product/Standard.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Product; @@ -15,32 +14,27 @@ use Haste\Generator\RowClass; use Haste\Units\Mass\Weight; use Haste\Units\Mass\WeightAggregate; +use Haste\Util\Url; use Isotope\Interfaces\IsotopeAttribute; use Isotope\Interfaces\IsotopeAttributeForVariants; use Isotope\Interfaces\IsotopeAttributeWithOptions; use Isotope\Interfaces\IsotopeProduct; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopeProductWithOptions; use Isotope\Isotope; use Isotope\Model\Attribute; use Isotope\Model\Gallery; use Isotope\Model\Gallery\Standard as StandardGallery; use Isotope\Model\Product; -use Isotope\Model\ProductCategory; +use Isotope\Model\ProductCollectionItem; use Isotope\Model\ProductPrice; use Isotope\Model\ProductType; use Isotope\Template; - /** - * Class Product - * - * Provide methods to handle Isotope products. - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss - * @author Christian de la Haye + * Standard implementation of an Isotope product. */ -class Standard extends Product implements IsotopeProduct, WeightAggregate +class Standard extends AbstractProduct implements WeightAggregate, IsotopeProductWithOptions { /** @@ -52,12 +46,14 @@ class Standard extends Product implements IsotopeProduct, WeightAggregate /** * Attributes assigned to this product type * @var array + * @deprecated */ protected $arrAttributes; /** * Variant attributes assigned to this product type * @var array + * @deprecated */ protected $arrVariantAttributes; @@ -74,10 +70,10 @@ class Standard extends Product implements IsotopeProduct, WeightAggregate protected $arrCustomerConfig = array(); /** - * Assigned categories (pages) + * Default configuration (to predefine variant or customer editable attributes) * @var array */ - protected $arrCategories; + protected $arrDefaults = array(); /** * Unique form ID @@ -97,174 +93,37 @@ class Standard extends Product implements IsotopeProduct, WeightAggregate */ protected $doNotSubmit = false; - - /** - * Returns true if the product is published, otherwise returns false - * - * @return bool - */ - public function isPublished() - { - $time = \Date::floorToMinute(); - - if (!$this->arrData['published']) { - return false; - } elseif ($this->arrData['start'] != '' && $this->arrData['start'] > $time) { - return false; - } elseif ($this->arrData['stop'] != '' && $this->arrData['stop'] < ($time + 60)) { - return false; - } - - return true; - } - /** - * Returns true if the product is available to show on the website - * - * @return bool + * True if the collection item will be updated. + * @var bool */ - public function isAvailableInFrontend() - { - $objCollection = Isotope::getCart(); - - if (null === $objCollection) { - return false; - } - - return $this->isAvailableForCollection($objCollection); - } + protected $blnUpdate = false; /** - * Returns true if the product is available - * - * @param IsotopeProductCollection|\Isotope\Model\ProductCollection $objCollection - * - * @return bool + * @inheritdoc */ public function isAvailableForCollection(IsotopeProductCollection $objCollection) { - if ($objCollection->isLocked()) { - return true; - } - - if (isset($GLOBALS['ISO_HOOKS']['productIsAvailable']) && is_array($GLOBALS['ISO_HOOKS']['productIsAvailable'])) { - foreach ($GLOBALS['ISO_HOOKS']['productIsAvailable'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $available = $objCallback->{$callback[1]}($this, $objCollection); - - // If return value is boolean then we accept it as result - if (true === $available || false === $available) { - return $available; - } - } - } - - if (BE_USER_LOGGED_IN !== true && !$this->isPublished()) { + if (false === parent::isAvailableForCollection($objCollection)) { return false; } - // Show to guests only - if ($this->arrData['guests'] && $objCollection->member > 0 && BE_USER_LOGGED_IN !== true && !$this->arrData['protected']) { - return false; - } - - // Protected product - if (BE_USER_LOGGED_IN !== true && $this->arrData['protected']) { - if ($objCollection->member == 0) { - return false; - } - - $groups = deserialize($this->arrData['groups']); - $memberGroups = deserialize($objCollection->getRelated('member')->groups); - - if (!is_array($groups) || empty($groups) || !is_array($memberGroups) || empty($memberGroups) || !count(array_intersect($groups, $memberGroups))) { - return false; - } - } - // Check that the product is in any page of the current site - if (count(\Isotope\Frontend::getPagesInCurrentRoot($this->getCategories(), $objCollection->getRelated('member'))) == 0) { + if (count(\Isotope\Frontend::getPagesInCurrentRoot($this->getCategories(), $objCollection->getMember())) == 0) { return false; } // Check if "advanced price" is available - if (null === $this->getPrice($objCollection) && (in_array('price', $this->getAttributes()) || $this->hasVariantPrices())) { + if ($this->getType()->hasAdvancedPrices() + && (in_array('price', $this->getType()->getAttributes(), true) || $this->hasVariantPrices()) + && null === $this->getPrice($objCollection) + ) { return false; } return true; } - /** - * Checks whether a product is new according to the current store config - * - * @return bool - */ - public function isNew() - { - return $this->dateAdded >= Isotope::getConfig()->getNewProductLimit(); - } - - /** - * Return true if the product or product type has shipping exempt activated - * - * @return bool - */ - public function isExemptFromShipping() - { - return ($this->arrData['shipping_exempt'] || $this->getRelated('type')->shipping_exempt) ? true : false; - } - - /** - * Returns true if a variant is loaded - * - * @return bool - */ - public function isVariant() - { - return ($this->pid > 0 && $this->hasVariants()); - } - - /** - * Returns true if variants are enabled in the product type, otherwise returns false - * - * @return bool - */ - public function hasVariants() - { - /** @type ProductType $objType */ - $objType = $this->getRelated('type'); - - return (bool) $objType->hasVariants(); - } - - /** - * Returns true if product has variants, and the price is a variant attribute - * - * @return bool - */ - public function hasVariantPrices() - { - if ($this->hasVariants() && in_array('price', $this->getVariantAttributes())) { - return true; - } - - return false; - } - - /** - * Returns true if advanced prices are enabled in the product type, otherwise returns false - * - * @return bool - */ - public function hasAdvancedPrices() - { - /** @type ProductType $objType */ - $objType = $this->getRelated('type'); - - return (bool) $objType->hasAdvancedPrices(); - } - /** * Return true if the user should see lowest price tier as lowest price * @@ -272,7 +131,7 @@ public function hasAdvancedPrices() */ public function canSeePriceTiers() { - return $this->hasAdvancedPrices() && $this->getRelated('type')->show_price_tiers; + return $this->hasAdvancedPrices() && $this->getType()->show_price_tiers; } /** @@ -285,16 +144,6 @@ public function getFormId() return $this->strFormId; } - /** - * Get the product id (NOT variant id) - * - * @return int - */ - public function getProductId() - { - return (int) $this->pid ? : $this->id; - } - /** * Get product price model * @@ -344,15 +193,13 @@ public function getMinimumQuantity() * Return the product attributes * * @return array + * + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3. Use ProductType::getAttributes() */ public function getAttributes() { if (null === $this->arrAttributes) { - - /** @type ProductType $objType */ - $objType = $this->getRelated('type'); - - $this->arrAttributes = $objType->getAttributes(); + $this->arrAttributes = $this->getType()->getAttributes(); } return $this->arrAttributes; @@ -363,15 +210,13 @@ public function getAttributes() * Return the product variant attributes * * @return array + * + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3. Use ProductType::getVariantAttributes() */ public function getVariantAttributes() { if (null === $this->arrVariantAttributes) { - - /** @type ProductType $objType */ - $objType = $this->getRelated('type'); - - $this->arrVariantAttributes = $objType->getVariantAttributes(); + $this->arrVariantAttributes = $this->getType()->getVariantAttributes(); } return $this->arrVariantAttributes; @@ -380,13 +225,12 @@ public function getVariantAttributes() /** * Return all available variant IDs of this product * - * @return int[]|false + * @return int[] */ public function getVariantIds() { if (null === $this->arrVariantIds) { - - $this->arrVariantIds = array(); + $this->arrVariantIds = []; // Nothing to do if we have no variants if (!$this->hasVariants()) { @@ -395,22 +239,31 @@ public function getVariantIds() $time = \Date::floorToMinute(); $blnHasProtected = false; - $strQuery = "SELECT id, protected, groups FROM tl_iso_product WHERE pid=" . $this->getProductId() . " AND language='' AND published='1' AND (start='' OR start<'$time') AND (stop='' OR stop>'" . ($time + 60) . "')"; + $strQuery = ' + SELECT id, protected, groups + FROM tl_iso_product + WHERE + pid=' . $this->getProductId() . " + AND language='' + AND published='1' + AND (start='' OR start<'$time') + AND (stop='' OR stop>'" . ($time + 60) . "') + "; if (BE_USER_LOGGED_IN !== true) { - $arrAttributes = $this->getVariantAttributes(); - $blnHasProtected = in_array('protected', $arrAttributes); + $arrAttributes = $this->getType()->getVariantAttributes(); + $blnHasProtected = in_array('protected', $arrAttributes, true); // Hide guests-only products when logged in - if (FE_USER_LOGGED_IN === true && in_array('guests', $arrAttributes)) { - $strQuery .= " AND (guests=''" . ($blnHasProtected ? " OR protected='1'" : '') . ")"; + if (FE_USER_LOGGED_IN === true && in_array('guests', $arrAttributes, true)) { + $strQuery .= " AND (guests=''" . ($blnHasProtected ? " OR protected='1'" : '') . ')'; } // Hide protected if no user is logged in elseif (FE_USER_LOGGED_IN !== true && $blnHasProtected) { $strQuery .= " AND protected=''"; } } - /** @type object $objVariants */ + /** @var object $objVariants */ $objVariants = \Database::getInstance()->query($strQuery); while ($objVariants->next()) { @@ -426,7 +279,7 @@ public function getVariantIds() } // Only show variants where a price is available - if (!empty($this->arrVariantIds) && $this->hasVariantPrices()) { + if (0 !== count($this->arrVariantIds) && $this->hasVariantPrices()) { if ($this->hasAdvancedPrices()) { $objPrices = ProductPrice::findAdvancedByProductIdsAndCollection($this->arrVariantIds, Isotope::getCart()); } else { @@ -434,7 +287,7 @@ public function getVariantIds() } if (null === $objPrices) { - $this->arrVariantIds = array(); + $this->arrVariantIds = []; } else { $this->arrVariantIds = $objPrices->fetchEach('pid'); } @@ -444,50 +297,6 @@ public function getVariantIds() return $this->arrVariantIds; } - /** - * Get categories (pages) assigned to this product - * - * @param bool $blnPublished Only return published categories (pages) - * - * @return array - */ - public function getCategories($blnPublished = false) - { - $key = ($blnPublished ? 'published' : 'all'); - - if (null === $this->arrCategories || !isset($this->arrCategories[$key])) { - if ($blnPublished) { - $options = ProductCategory::getFindByPidForPublishedPagesOptions($this->getProductId()); - $options['table'] = ProductCategory::getTable(); - $query = \Model\QueryBuilder::find($options); - $values = (array) $options['value']; - } else { - $query = 'SELECT page_id FROM ' . ProductCategory::getTable() . ' WHERE pid=?'; - $values = array($this->getProductId()); - } - - $objCategories = \Database::getInstance()->prepare($query)->execute($values); - - $this->arrCategories[$key] = $objCategories->fetchEach('page_id'); - - // Sort categories by the backend drag&drop - $arrOrder = deserialize($this->orderPages); - if (!empty($arrOrder) && is_array($arrOrder)) { - $this->arrCategories[$key] = array_unique( - array_merge( - array_intersect( - $arrOrder, - $this->arrCategories[$key] - ), - $this->arrCategories[$key] - ) - ); - } - } - - return $this->arrCategories[$key]; - } - /** * Get the weight of the product (as object) * @@ -503,27 +312,57 @@ public function getWeight() } /** - * Return all product options - * - * @return array - * @deprecated use getConfiguration + * @inheritdoc */ public function getOptions() { return array_merge($this->getVariantConfig(), $this->getCustomerConfig()); } + /** + * @inheritdoc + */ + public function setOptions(array $options) + { + if (!$this->blnPreventSaving) { + throw new \RuntimeException('Do not modify a product object that is in the model registry!'); + } + + if (!$this->isVariant()) { + $this->arrCustomerConfig = $options; + return; + } + + $attributes = array_intersect($this->getType()->getVariantAttributes(), Attribute::getVariantOptionFields()); + $this->arrCustomerConfig = []; + + foreach ($options as $k => $v) { + if (in_array($k, $attributes, true)) { + if ($this->arrData[$k] != $v) { + throw new \RuntimeException( + sprintf('"%s" for attribute "%s" does not match current variant.', $v, $k) + ); + } + + // Ignore variant data, that's already stored + continue; + } + + $this->arrCustomerConfig[$k] = $v; + } + } + /** * Get the product configuration * This includes customer defined fields and variant options * * @return array + * + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3.0. Use getOptions() instead. */ public function getConfiguration() { - $arrConfig = array_merge($this->getVariantConfig(), $this->getCustomerConfig()); - - return Isotope::formatProductConfiguration($arrConfig, $this); + return Isotope::formatProductConfiguration($this->getOptions(), $this); } /** @@ -543,12 +382,12 @@ public function getCustomerConfig() */ public function getVariantConfig() { - if (!$this->hasVariants()) { + if (!$this->isVariant()) { return array(); } $arrVariantConfig = array(); - $arrAttributes = array_intersect($this->getVariantAttributes(), Attribute::getVariantOptionFields()); + $arrAttributes = array_intersect($this->getType()->getVariantAttributes(), Attribute::getVariantOptionFields()); foreach (array_unique($arrAttributes) as $attribute) { $arrVariantConfig[$attribute] = $this->arrData[$attribute]; @@ -563,9 +402,13 @@ public function getVariantConfig() * @param array $arrConfig * * @return string + * + * @throws \InvalidArgumentException */ public function generate(array $arrConfig) { + $this->loadDefaults(); + $this->strFormId = (($arrConfig['module'] instanceof \ContentElement) ? 'cte' : 'fmd') . $arrConfig['module']->id . '_product_' . $this->getProductId(); $objProduct = $this->validateVariant(); @@ -574,15 +417,15 @@ public function generate(array $arrConfig) return $objProduct->generate($arrConfig); } - /** @type Template|object $objTemplate */ + /** @var Template|\stdClass $objTemplate */ $objTemplate = new Template($arrConfig['template']); $objTemplate->setData($this->arrData); $objTemplate->product = $this; $objTemplate->config = $arrConfig; $objTemplate->hasAttribute = function ($strAttribute) use ($objProduct) { - return in_array($strAttribute, $objProduct->getAttributes()) - || in_array($strAttribute, $objProduct->getVariantAttributes()); + return in_array($strAttribute, $objProduct->getType()->getAttributes(), true) + || in_array($strAttribute, $objProduct->getType()->getVariantAttributes(), true); }; $objTemplate->generateAttribute = function ($strAttribute, array $arrOptions = array()) use ($objProduct) { @@ -599,7 +442,7 @@ public function generate(array $arrConfig) $objTemplate->generatePrice = function() use ($objProduct) { $objPrice = $objProduct->getPrice(); - /** @type ProductType $objType */ + /** @var ProductType $objType */ $objType = $objProduct->getRelated('type'); if (null === $objPrice) { @@ -631,7 +474,7 @@ public function generate(array $arrConfig) $arrProductOptions = array(); $arrAjaxOptions = array(); - foreach (array_unique(array_merge($this->getAttributes(), $this->getVariantAttributes())) as $attribute) { + foreach (array_unique(array_merge($this->getType()->getAttributes(), $this->getType()->getVariantAttributes())) as $attribute) { $arrData = $GLOBALS['TL_DCA']['tl_iso_product']['fields'][$attribute]; if ($arrData['attributes']['customer_defined'] || $arrData['attributes']['variant_option']) { @@ -652,10 +495,13 @@ public function generate(array $arrConfig) $arrButtons = array(); // !HOOK: retrieve buttons - if (isset($GLOBALS['ISO_HOOKS']['buttons']) && is_array($GLOBALS['ISO_HOOKS']['buttons'])) { + if (isset($arrConfig['buttons'], $GLOBALS['ISO_HOOKS']['buttons']) + && is_array($arrConfig['buttons']) + && is_array($GLOBALS['ISO_HOOKS']['buttons']) + ) { foreach ($GLOBALS['ISO_HOOKS']['buttons'] as $callback) { $objCallback = \System::importStatic($callback[0]); - $arrButtons = $objCallback->{$callback[1]}($arrButtons); + $arrButtons = $objCallback->{$callback[1]}($arrButtons, $this); } $arrButtons = array_intersect_key($arrButtons, array_flip($arrConfig['buttons'])); @@ -676,7 +522,7 @@ public function generate(array $arrConfig) RowClass::withKey('rowClass')->addCustom('product_option')->addFirstLast()->addEvenOdd()->applyTo($arrProductOptions); $objTemplate->buttons = $arrButtons; - $objTemplate->useQuantity = $arrConfig['useQuantity']; + $objTemplate->useQuantity = $arrConfig['useQuantity'] && !$this->blnUpdate; $objTemplate->minimum_quantity = $this->getMinimumQuantity(); $objTemplate->raw = $this->arrData; $objTemplate->raw_options = $this->getConfiguration(); @@ -684,10 +530,10 @@ public function generate(array $arrConfig) $objTemplate->href = $this->generateUrl($arrConfig['jumpTo']); $objTemplate->label_detail = $GLOBALS['TL_LANG']['MSC']['detailLabel']; $objTemplate->options = $arrProductOptions; - $objTemplate->hasOptions = !empty($arrProductOptions); + $objTemplate->hasOptions = count($arrProductOptions) > 0; $objTemplate->enctype = $this->hasUpload ? 'multipart/form-data' : 'application/x-www-form-urlencoded'; $objTemplate->formId = $this->getFormId(); - $objTemplate->action = ampersand(\Environment::get('request'), true); + $objTemplate->action = ampersand(\Environment::get('request') ?: \Environment::get('base'), true); $objTemplate->formSubmit = $this->getFormId(); $objTemplate->product_id = $this->getProductId(); $objTemplate->module_id = $arrConfig['module']->id; @@ -727,8 +573,8 @@ protected function generateProductOptionWidget($strField, &$arrVariantOptions, & $arrData['eval']['required'] = $arrData['eval']['mandatory']; // Value can be predefined in the URL, e.g. to preselect a variant - if (\Input::get($strField) != '') { - $arrData['default'] = \Input::get($strField); + if (!empty($this->arrDefaults[$strField])) { + $arrData['default'] = $this->arrDefaults[$strField]; } $arrField = $strClass::getAttributesFromDca($arrData, $strField, $arrData['default'], $strField, static::$strTable, $this); @@ -750,10 +596,19 @@ protected function generateProductOptionWidget($strField, &$arrVariantOptions, & // Remove options not available in any product variant if (is_array($arrField['options'])) { - foreach ($arrField['options'] as $k => $option) { + $blankOption = null; + foreach ($arrField['options'] as $k => $option) { // Keep groups and blankOptionLabels - if (!in_array($option['value'], $arrOptions) && !$option['group'] && $option['value'] != '') { + if ($option['value'] == '') { + if (null !== $blankOption) { + // Last blank option wins + $arrField['options'][$blankOption] = $option; + unset($arrField['options'][$k]); + } else { + $blankOption = $k; + } + } elseif (!in_array($option['value'], $arrOptions) && !$option['group']) { unset($arrField['options'][$k]); } } @@ -761,18 +616,16 @@ protected function generateProductOptionWidget($strField, &$arrVariantOptions, & $arrField['options'] = array_values($arrField['options']); } - $arrField['value'] = $this->$strField; + $arrField['value'] = $this->$strField; } elseif ($objAttribute instanceof IsotopeAttributeWithOptions && empty($arrField['options'])) { return ''; } if ($objAttribute->isVariantOption() - || ( - $objAttribute instanceof IsotopeAttributeWithOptions - && $objAttribute->canHavePrices() - ) - || $arrField['attributes']['ajax_option']) { + || ($objAttribute instanceof IsotopeAttributeWithOptions && $objAttribute->canHavePrices()) + || $arrField['attributes']['ajax_option'] + ) { $arrAjaxOptions[] = $strField; } @@ -809,12 +662,12 @@ protected function generateProductOptionWidget($strField, &$arrVariantOptions, & } } - /** @var \Widget|object $objWidget */ + /** @var \Widget|\stdClass $objWidget */ $objWidget = new $strClass($arrField); $objWidget->storeValues = true; $objWidget->tableless = true; - $objWidget->id .= "_" . $this->getFormId(); + $objWidget->id .= '_' . $this->getFormId(); // Validate input if (\Input::post('FORM_SUBMIT') == $this->getFormId()) { @@ -822,31 +675,31 @@ protected function generateProductOptionWidget($strField, &$arrVariantOptions, & if ($objWidget->hasErrors()) { $this->doNotSubmit = true; - } // Store current value - elseif ($objWidget->submitInput() || $objWidget instanceof \uploadable) { + } elseif ($objWidget->submitInput() || $objWidget instanceof \uploadable) { $varValue = $objWidget->value; // Convert date formats into timestamps - if ($varValue != '' && in_array($arrData['eval']['rgxp'], array('date', 'time', 'datim'))) { + if ($varValue != '' && in_array($arrData['eval']['rgxp'], ['date', 'time', 'datim'], true)) { try { - /** @type \Date|object $objDate */ + /** @var \Date|object $objDate */ $objDate = new \Date($varValue, $GLOBALS['TL_CONFIG'][$arrData['eval']['rgxp'] . 'Format']); $varValue = $objDate->tstamp; } catch (\OutOfBoundsException $e) { $objWidget->addError(sprintf($GLOBALS['TL_LANG']['ERR'][$arrData['eval']['rgxp']], $GLOBALS['TL_CONFIG'][$arrData['eval']['rgxp'] . 'Format'])); } - } // Trigger the save_callback if (is_array($arrData['save_callback'])) { foreach ($arrData['save_callback'] as $callback) { - - $objCallback = \System::importStatic($callback[0]); - try { - $varValue = $objCallback->{$callback[1]}($varValue, $this, $objWidget); + if (is_array($callback)) { + $objCallback = \System::importStatic($callback[0]); + $varValue = $objCallback->{$callback[1]}($varValue, $this, $objWidget); + } else { + $varValue = $objAttribute->{$callback}($varValue, $this, $objWidget); + } } catch (\Exception $e) { $objWidget->class = 'error'; $objWidget->addError($e->getMessage()); @@ -935,29 +788,36 @@ protected function validateVariant() return $this; } + $hasOptions = null; $arrOptions = array(); // We don't need to validate IsotopeAttributeForVariants interface here, because Attribute::getVariantOptionFields will check it - foreach (array_intersect($this->getVariantAttributes(), Attribute::getVariantOptionFields()) as $attribute) { + foreach (array_intersect($this->getType()->getVariantAttributes(), Attribute::getVariantOptionFields()) as $attribute) { - /** @type IsotopeAttribute|Attribute $objAttribute */ + /** @var IsotopeAttribute|Attribute $objAttribute */ $objAttribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$attribute]; $arrValues = $objAttribute->getOptionsForVariants($this->getVariantIds(), $arrOptions); if (\Input::post('FORM_SUBMIT') == $this->getFormId() && in_array(\Input::post($attribute), $arrValues)) { $arrOptions[$attribute] = \Input::post($attribute); - } elseif (\Input::post('FORM_SUBMIT') == '' && in_array(\Input::get($attribute), $arrValues)) { - $arrOptions[$attribute] = \Input::get($attribute); + } elseif (\Input::post('FORM_SUBMIT') == '' && in_array($this->arrDefaults[$attribute], $arrValues)) { + $arrOptions[$attribute] = $this->arrDefaults[$attribute]; } elseif (count($arrValues) == 1) { $arrOptions[$attribute] = $arrValues[0]; } else { // Abort if any attribute does not have a value, we can't find a variant - return $this; + $hasOptions = false; + break; } } - if (!empty($arrOptions) && ($objVariant = static::findVariantOfProduct($this, $arrOptions)) !== null) { + $hasOptions = false !== $hasOptions && count($arrOptions) > 0; + + if ($hasOptions && ($objVariant = static::findVariantOfProduct($this, $arrOptions)) !== null) { + return $objVariant; + + } elseif (!$hasOptions && ($objVariant = static::findDefaultVariantOfProduct($this)) !== null) { return $objVariant; } @@ -976,7 +836,7 @@ public function setRow(array $arrData) if ($arrData['pid'] > 0) { // Do not use the model, it would trigger setRow and generate too much // @deprecated use static::buildFindQuery once we drop BC support for buildQueryString - /** @type object $objParent */ + /** @var object $objParent */ $objParent = \Database::getInstance()->prepare(static::buildQueryString(array('table' => static::$strTable, 'column' => 'id')))->execute($arrData['pid']); if (null === $objParent) { @@ -992,16 +852,16 @@ public function setRow(array $arrData) // Set all variant attributes, except if they are inherited $arrFallbackFields = Attribute::getFetchFallbackFields(); - $arrVariantFields = array_diff($this->getVariantAttributes(), $this->getInheritedFields()); + $arrVariantFields = array_diff($this->getType()->getVariantAttributes(), $this->getInheritedFields()); foreach ($arrData as $attribute => $value) { if ( - in_array($attribute, $arrVariantFields) + in_array($attribute, $arrVariantFields, true) || ($GLOBALS['TL_DCA']['tl_iso_product']['fields'][$attribute]['attributes']['legend'] == '' - && !in_array(str_replace('_fallback', '', $attribute), $arrFallbackFields)) + && !in_array(str_replace('_fallback', '', $attribute), $arrFallbackFields, true)) ) { $this->arrData[$attribute] = $arrData[$attribute]; - if (in_array($attribute, $arrFallbackFields)) { + if (in_array($attribute, $arrFallbackFields, true)) { $this->arrData[$attribute . '_fallback'] = $arrData[$attribute . '_fallback']; } } @@ -1020,8 +880,7 @@ public function setRow(array $arrData) $this->arrAttributes = null; $this->arrVariantAttributes = null; $this->arrVariantIds = null; - $this->arrCategories = null; - $this->arrRelated = array(); + $this->arrRelated = []; // Must initialize product type to have attributes etc. if (($this->arrRelated['type'] = ProductType::findByPk($arrData['type'])) === null) { @@ -1033,12 +892,12 @@ public function setRow(array $arrData) // Remove attributes not in this product type foreach ($arrData as $attribute => $value) { if (( - !in_array($attribute, $this->getAttributes()) - && !in_array($attribute, $this->getVariantAttributes()) + !in_array($attribute, $this->getType()->getAttributes(), true) + && !in_array($attribute, $this->getType()->getVariantAttributes(), true) && isset($GLOBALS['TL_DCA']['tl_iso_product']['fields'][$attribute]['attributes']['legend']) && $GLOBALS['TL_DCA']['tl_iso_product']['fields'][$attribute]['attributes']['legend'] != '' ) - || in_array($attribute, Attribute::getVariantOptionFields()) + || in_array($attribute, Attribute::getVariantOptionFields(), true) ) { unset($arrData[$attribute]); } @@ -1073,12 +932,18 @@ public function mergeRow(array $arrData) public function markModified($strKey) { if ($this->isVariant()) { - $arrAttributes = array_diff($this->getVariantAttributes(), $this->getInheritedFields(), Attribute::getCustomerDefinedFields()); + $arrAttributes = array_diff( + $this->getType()->getVariantAttributes(), + $this->getInheritedFields(), + Attribute::getCustomerDefinedFields() + ); } else { - $arrAttributes = array_diff($this->getAttributes(), Attribute::getCustomerDefinedFields()); + $arrAttributes = array_diff($this->getType()->getAttributes(), Attribute::getCustomerDefinedFields()); } - if (!in_array($strKey, $arrAttributes) && $GLOBALS['TL_DCA'][static::$strTable]['fields'][$strKey]['attributes']['legend'] != '') { + if (!in_array($strKey, $arrAttributes, true) + && '' !== (string) $GLOBALS['TL_DCA'][static::$strTable]['fields'][$strKey]['attributes']['legend'] + ) { return; } @@ -1091,6 +956,8 @@ public function markModified($strKey) * @param \PageModel $objJumpTo A PageModel instance * * @return string + * + * @throws \InvalidArgumentException */ public function generateUrl(\PageModel $objJumpTo = null) { @@ -1098,20 +965,20 @@ public function generateUrl(\PageModel $objJumpTo = null) global $objPage; global $objIsotopeListPage; - $objJumpTo = $objIsotopeListPage ? : $objPage; + $objJumpTo = $objIsotopeListPage ?: $objPage; + } - if (null === $objJumpTo) { - return ''; - } + if (null === $objJumpTo) { + return ''; } - $strUrl = '/' . $this->arrData['alias'] ? : $this->getProductId(); + $strUrl = '/' . ($this->arrData['alias'] ?: $this->getProductId()); - if (!$GLOBALS['TL_CONFIG']['useAutoItem'] || !in_array('product', $GLOBALS['TL_AUTO_ITEM'])) { + if (!$GLOBALS['TL_CONFIG']['useAutoItem'] || !in_array('product', $GLOBALS['TL_AUTO_ITEM'], true)) { $strUrl = '/product' . $strUrl; } - return \Haste\Util\Url::addQueryString( + return Url::addQueryString( http_build_query($this->getOptions()), \Controller::generateFrontendUrl($objJumpTo->row(), $strUrl, $objJumpTo->language) ); @@ -1131,4 +998,28 @@ protected function getInheritedFields() return array_merge(deserialize($this->arrData['inherit'], true), Attribute::getInheritFields()); } + + /** + * Load default values from URL + */ + private function loadDefaults() + { + $this->arrDefaults = array(); + $this->blnUpdate = false; + + if (\Input::get('collection_item') > 0) { + $item = ProductCollectionItem::findByPk(\Input::get('collection_item')); + if (null !== $item + && $item->hasProduct() + && $item->getProduct()->getProductId() == $this->getProductId() + ) { + $this->arrDefaults = $item->getOptions(); + $this->blnUpdate = true; + } + } else { + foreach ($_GET as $k => $v) { + $this->arrDefaults[$k] = \Input::get($k); + } + } + } } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCache.php b/system/modules/isotope/library/Isotope/Model/ProductCache.php index 45393d1141..9fb8b0fead 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCache.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCache.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -121,7 +120,7 @@ public static function deleteByUniqidOrExpired($uniqid) $time = time(); \Database::getInstance()->prepare(" - DELETE FROM " . static::$strTable . " + DELETE FROM tl_iso_productcache WHERE (uniqid=? AND groups=? AND (keywords='' OR keywords=?)) OR (expires>0 AND expires<$time) @@ -208,7 +207,7 @@ public static function deleteForPageAndModuleOrExpired($intPage, $intModule) $time = time(); \Database::getInstance()->prepare(" - DELETE FROM " . static::$strTable . " + DELETE FROM tl_iso_productcache WHERE (page_id=? AND module_id=? AND requestcache_id=? AND keywords=? AND groups=?) OR (expires>0 AND expires<$time) @@ -265,8 +264,8 @@ public static function getCacheableGroups() */ public static function isWritable() { - return \Database::getInstance()->query(" - SHOW OPEN TABLES FROM `" . $GLOBALS['TL_CONFIG']['dbDatabase'] . "` LIKE '" . static::$strTable . "' + return \Database::getInstance()->query(' + SHOW OPEN TABLES FROM `' . $GLOBALS['TL_CONFIG']['dbDatabase'] . "` LIKE '" . static::$strTable . "' ")->In_use == 0; } } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCategory.php b/system/modules/isotope/library/Isotope/Model/ProductCategory.php index 7fa0cd2354..756d21c6f0 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCategory.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCategory.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection.php b/system/modules/isotope/library/Isotope/Model/ProductCollection.php index b3275f977b..eb517ea5f7 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection.php @@ -3,29 +3,31 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; use Haste\Generator\RowClass; -use Haste\Haste; use Haste\Units\Mass\Scale; use Haste\Units\Mass\Weighable; use Haste\Units\Mass\WeightAggregate; +use Haste\Util\Format; +use Isotope\Frontend; use Isotope\Interfaces\IsotopeAttribute; +use Isotope\Interfaces\IsotopeOrderableCollection; use Isotope\Interfaces\IsotopePayment; use Isotope\Interfaces\IsotopeProduct; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Interfaces\IsotopeShipping; use Isotope\Isotope; use Isotope\Message; -use Isotope\Model\Payment; -use Isotope\Model\Shipping; +use Isotope\Model\Gallery\Standard as StandardGallery; +use Isotope\Model\ProductCollectionSurcharge\Tax; +use Model\Registry; /** * Class ProductCollection @@ -35,6 +37,7 @@ * @property string $type * @property int $member * @property int $store_id + * @property int $locked * @property mixed $settings * @property int $source_collection_id * @property string $uniqid @@ -50,7 +53,7 @@ * @property string $currency * @property string $language */ -abstract class ProductCollection extends TypeAgent +abstract class ProductCollection extends TypeAgent implements IsotopeProductCollection { /** @@ -128,6 +131,8 @@ public function __construct(\Database\Result $objResult = null) /** * Prevent cloning because we can't copy items etc. + * + * @throws \LogicException because ProductCollection cannot be cloned */ public function __clone() { @@ -143,9 +148,9 @@ public function __clone() */ public function updateDatabase($blnCreate = true) { - if (!$this->isLocked() - && !$this->blnPreventSaving - && (\Model\Registry::getInstance()->isRegistered($this) || $blnCreate) + if (!$this->blnPreventSaving + && !$this->isLocked() + && (Registry::getInstance()->isRegistered($this) || $blnCreate) ) { foreach ($this->getItems() as $objItem) { @@ -164,7 +169,7 @@ public function updateDatabase($blnCreate = true) $this->tax_free_subtotal = $this->getTaxFreeSubtotal(); $this->total = $this->getTotal(); $this->tax_free_total = $this->getTaxFreeTotal(); - $this->currency = (string) $this->getRelated('config_id')->currency; + $this->currency = (string) $this->getConfig()->currency; $this->save(); } @@ -193,24 +198,76 @@ public function markModified($strKey) } /** - * Return true if collection is locked - * - * @return bool + * @inheritdoc + */ + public function getId() + { + return (int) $this->id; + } + + /** + * @inheritdoc + */ + public function getUniqueId() + { + return $this->uniqid; + } + + /** + * @inheritdoc + */ + public function getMember() + { + if (0 === (int) $this->member) { + return null; + } + + return \MemberModel::findByPk($this->member); + } + + /** + * @inheritdoc + */ + public function getStoreId() + { + return (int) $this->store_id; + } + + /** + * @inheritdoc + */ + public function getConfig() + { + try { + return $this->getRelated('config_id'); + } catch (\Exception $e) { + return null; + } + } + + /** + * @inheritdoc */ public function isLocked() { - return (isset($this->locked) && $this->locked !== ''); + return null !== $this->locked; } /** - * Return true if collection has no items - * @return bool + * @inheritdoc */ - public function isEmpty() + public function getLockTime() { - $arrItems = $this->getItems(); + return $this->locked; + } + - return empty($arrItems); + /** + * @inheritdoc + */ + public function isEmpty() + { + return 0 === count($this->getItems()); } /** @@ -221,7 +278,11 @@ public function isEmpty() public function getPaymentMethod() { if (false === $this->objPayment) { - $this->objPayment = $this->getRelated('payment_id'); + try { + $this->objPayment = $this->getRelated('payment_id'); + } catch (\Exception $e) { + $this->objPayment = null; + } } return $this->objPayment; @@ -234,7 +295,7 @@ public function getPaymentMethod() */ public function setPaymentMethod(IsotopePayment $objPayment = null) { - $this->payment_id = (null === $objPayment ? 0 : $objPayment->id); + $this->payment_id = (null === $objPayment ? 0 : $objPayment->getId()); $this->objPayment = $objPayment; } @@ -245,7 +306,7 @@ public function setPaymentMethod(IsotopePayment $objPayment = null) */ public function getPaymentSurcharge() { - return ($this->hasPayment()) ? $this->getPaymentMethod()->getSurcharge($this) : null; + return $this->hasPayment() ? $this->getPaymentMethod()->getSurcharge($this) : null; } /** @@ -255,7 +316,7 @@ public function getPaymentSurcharge() */ public function hasPayment() { - return (null === $this->getPaymentMethod()) ? false : true; + return null !== $this->getPaymentMethod(); } /** @@ -265,7 +326,7 @@ public function hasPayment() */ public function requiresPayment() { - return $this->getTotal() > 0 ? true : false; + return $this->getTotal() > 0; } /** @@ -276,7 +337,11 @@ public function requiresPayment() public function getShippingMethod() { if (false === $this->objShipping) { - $this->objShipping = $this->getRelated('shipping_id'); + try { + $this->objShipping = $this->getRelated('shipping_id'); + } catch (\Exception $e) { + $this->objShipping = null; + } } return $this->objShipping; @@ -289,7 +354,7 @@ public function getShippingMethod() */ public function setShippingMethod(IsotopeShipping $objShipping = null) { - $this->shipping_id = (null === $objShipping ? 0 : $objShipping->id); + $this->shipping_id = (null === $objShipping ? 0 : $objShipping->getId()); $this->objShipping = $objShipping; } @@ -300,7 +365,7 @@ public function setShippingMethod(IsotopeShipping $objShipping = null) */ public function getShippingSurcharge() { - return ($this->hasShipping()) ? $this->getShippingMethod()->getSurcharge($this) : null; + return $this->hasShipping() ? $this->getShippingMethod()->getSurcharge($this) : null; } /** @@ -310,7 +375,7 @@ public function getShippingSurcharge() */ public function hasShipping() { - return (null === $this->getShippingMethod()) ? false : true; + return null !== $this->getShippingMethod(); } /** @@ -382,6 +447,16 @@ public function setShippingAddress(Address $objAddress = null) } } + /** + * Returns the generated document number or empty string if not available. + * + * @return string + */ + public function getDocumentNumber() + { + return (string) $this->arrData['document_number']; + } + /** * Return customer email address for the collection * @@ -515,6 +590,8 @@ public function save() * @param bool $blnForce Force to delete the collection even if it's locked * * @return int Number of rows affected + * + * @throws \BadMethodCallException if the product collection is locked. */ public function delete($blnForce = false) { @@ -541,17 +618,17 @@ public function delete($blnForce = false) if ($intAffectedRows > 0 && $intPid > 0) { \Database::getInstance()->query(" - DELETE FROM " . ProductCollectionDownload::getTable() . " - WHERE pid IN (SELECT id FROM " . ProductCollectionItem::getTable() . " WHERE pid=$intPid) + DELETE FROM tl_iso_product_collection_download + WHERE pid IN (SELECT id FROM tl_iso_product_collection_item WHERE pid=$intPid) "); \Database::getInstance()->query( - "DELETE FROM " . ProductCollectionItem::getTable() . " WHERE pid=$intPid" + "DELETE FROM tl_iso_product_collection_item WHERE pid=$intPid" ); \Database::getInstance()->query( - "DELETE FROM " . ProductCollectionSurcharge::getTable() . " WHERE pid=$intPid" + "DELETE FROM tl_iso_product_collection_surcharge WHERE pid=$intPid" ); \Database::getInstance()->query( - "DELETE FROM " . Address::getTable() . " WHERE ptable='" . static::$strTable . "' AND pid=$intPid" + "DELETE FROM tl_iso_address WHERE ptable='" . static::$strTable . "' AND pid=$intPid" ); } @@ -574,6 +651,8 @@ public function delete($blnForce = false) /** * Delete all products in the collection + * + * @throws \BadMethodCallException if the product collection is locked. */ public function purge() { @@ -594,6 +673,8 @@ public function purge() /** * Lock collection from begin modified + * + * @throws \BadMethodCallException if the product collection is locked. */ public function lock() { @@ -626,7 +707,7 @@ public function lock() // Can't use model, it would not save as soon as it's locked \Database::getInstance()->query( - "UPDATE " . static::$strTable . " SET locked=" . $time . " WHERE id=" . $this->id + "UPDATE tl_iso_product_collection SET locked=$time WHERE id=" . $this->id ); $this->arrData['locked'] = $time; @@ -656,7 +737,7 @@ public function getSubtotal() $arrItems = $this->getItems(); foreach ($arrItems as $objItem) { - $varPrice = $objItem->getPrice() * $objItem->quantity; + $varPrice = $objItem->getTotalPrice(); if ($varPrice !== null) { $fltAmount += $varPrice; @@ -685,7 +766,7 @@ public function getTaxFreeSubtotal() $arrItems = $this->getItems(); foreach ($arrItems as $objItem) { - $varPrice = $objItem->getTaxFreePrice() * $objItem->quantity; + $varPrice = $objItem->getTaxFreeTotalPrice(); if ($varPrice !== null) { $fltAmount += $varPrice; @@ -737,21 +818,40 @@ public function getTaxFreeTotal() } if (!isset($this->arrCache['taxFreeTotal'])) { - $fltAmount = $this->getTaxFreeSubtotal(); $arrSurcharges = $this->getSurcharges(); - foreach ($arrSurcharges as $objSurcharge) { - if ($objSurcharge->addToTotal) { - $fltAmount += $objSurcharge->tax_free_total_price; + if (Config::PRICE_DISPLAY_GROSS === $this->getConfig()->priceDisplay) { + $fltAmount = $this->getTotal(); + + foreach ($arrSurcharges as $objSurcharge) { + if ($objSurcharge instanceof Tax) { + $fltAmount -= $objSurcharge->total_price; + } + } + } else { + $fltAmount = $this->getTaxFreeSubtotal(); + + foreach ($arrSurcharges as $objSurcharge) { + if ($objSurcharge->addToTotal) { + $fltAmount += $objSurcharge->tax_free_total_price; + } } } - $this->arrCache['taxFreeTotal'] = $fltAmount > 0 ? $fltAmount : 0; + $this->arrCache['taxFreeTotal'] = $fltAmount > 0 ? Isotope::roundPrice($fltAmount) : 0; } return $this->arrCache['taxFreeTotal']; } + /** + * @inheritdoc + */ + public function getCurrency() + { + return $this->currency; + } + /** * Return the item with the latest timestamp (e.g. the latest added item) * @@ -810,7 +910,7 @@ public function getItems($varCallable = null, $blnNoCache = false) } // Add error message for items no longer available - if (!$objItem->isAvailable()) { + if (!$objItem->isAvailable() && !$objItem->hasErrors()) { $objItem->addError($GLOBALS['TL_LANG']['ERR']['collectionItemNotAvailable']); } @@ -838,16 +938,34 @@ public function getItems($varCallable = null, $blnNoCache = false) */ public function getItemForProduct(IsotopeProduct $objProduct) { - $strClass = array_search(get_class($objProduct), Product::getModelTypes()); + $strClass = array_search(get_class($objProduct), Product::getModelTypes(), true); $objItem = ProductCollectionItem::findOneBy( array('pid=?', 'type=?', 'product_id=?', 'configuration=?'), - array($this->id, $strClass, $objProduct->{$objProduct->getPk()}, serialize($objProduct->getOptions())) + array($this->id, $strClass, $objProduct->getId(), serialize($objProduct->getOptions())) ); return $objItem; } + /** + * Gets the product collection with given ID if it belongs to this collection. + * + * @param int $id + * + * @return ProductCollectionItem|null + */ + public function getItemById($id) + { + $items = $this->getItems(); + + if (!isset($items[$id])) { + return null; + } + + return $items[$id]; + } + /** * Check if a given product is already in the collection * @@ -859,23 +977,20 @@ public function getItemForProduct(IsotopeProduct $objProduct) public function hasProduct(IsotopeProduct $objProduct, $blnIdentical = true) { if (true === $blnIdentical) { - $objItem = $this->getItemForProduct($objProduct); - - return (null === $objItem) ? false : true; + return null !== $this->getItemForProduct($objProduct); + } - } else { - $intId = $objProduct->pid ? : $objProduct->id; + $intId = $objProduct->getProductId(); - foreach ($this->getItems() as $objItem) { - if ($objItem->hasProduct() - && ($objItem->getProduct()->id == $intId || $objItem->getProduct()->pid == $intId) - ) { - return true; - } + foreach ($this->getItems() as $objItem) { + if ($objItem->hasProduct() + && ($objItem->getProduct()->getId() == $intId || $objItem->getProduct()->getProductId() == $intId) + ) { + return true; } - - return false; } + + return false; } /** @@ -885,7 +1000,7 @@ public function hasProduct(IsotopeProduct $objProduct, $blnIdentical = true) * @param int $intQuantity * @param array $arrConfig * - * @return ProductCollectionItem + * @return ProductCollectionItem|false */ public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrConfig = array()) { @@ -907,7 +1022,7 @@ public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrC $this->tstamp = $time; // Make sure collection is in DB before adding product - if (!\Model\Registry::getInstance()->isRegistered($this)) { + if (!Registry::getInstance()->isRegistered($this)) { $this->save(); } @@ -921,7 +1036,7 @@ public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrC if (($objItem->quantity + $intQuantity) < $intMinimumQuantity) { Message::addInfo(sprintf( $GLOBALS['TL_LANG']['ERR']['productMinimumQuantity'], - $objProduct->name, + $objProduct->getName(), $intMinimumQuantity )); $intQuantity = $intMinimumQuantity - $objItem->quantity; @@ -932,30 +1047,21 @@ public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrC if ($intQuantity < $intMinimumQuantity) { Message::addInfo(sprintf( $GLOBALS['TL_LANG']['ERR']['productMinimumQuantity'], - $objProduct->name, + $objProduct->getName(), $intMinimumQuantity )); $intQuantity = $intMinimumQuantity; } - $objItem = new ProductCollectionItem(); - $objItem->pid = $this->id; - $objItem->tstamp = $time; - $objItem->type = array_search(get_class($objProduct), Product::getModelTypes()); - $objItem->product_id = $objProduct->{$objProduct->getPk()}; - $objItem->sku = (string) $objProduct->sku; - $objItem->name = (string) $objProduct->name; - $objItem->configuration = $objProduct->getOptions(); - $objItem->quantity = (int) $intQuantity; - $objItem->price = (float) ($objProduct->getPrice($this) ? $objProduct->getPrice($this)->getAmount((int) $intQuantity) : 0); - $objItem->tax_free_price = (float) ($objProduct->getPrice($this) ? $objProduct->getPrice($this)->getNetAmount((int) $intQuantity) : 0); - $objItem->jumpTo = (int) $arrConfig['jumpTo']->id; + $objItem = new ProductCollectionItem(); + $objItem->pid = $this->id; + $objItem->jumpTo = (int) $arrConfig['jumpTo']->id; + $this->setProductForItem($objProduct, $objItem, $intQuantity); $objItem->save(); // Add the new item to our cache $this->arrItems[$objItem->id] = $objItem; - } // !HOOK: additional functionality when adding product to collection @@ -971,6 +1077,48 @@ public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrC return $objItem; } + /** + * Update product details for a collection item. + * + * @param IsotopeProduct $objProduct + * @param ProductCollectionItem $objItem + * + * @return bool + */ + public function updateProduct(IsotopeProduct $objProduct, ProductCollectionItem $objItem) + { + if ($objItem->pid != $this->id) { + throw new \InvalidArgumentException('Item does not belong to this collection'); + } + + // !HOOK: additional functionality when updating product in collection + if (isset($GLOBALS['ISO_HOOKS']['updateProductInCollection']) + && is_array($GLOBALS['ISO_HOOKS']['updateProductInCollection']) + ) { + foreach ($GLOBALS['ISO_HOOKS']['updateProductInCollection'] as $callback) { + $objCallback = \System::importStatic($callback[0]); + if (false === $objCallback->{$callback[1]}($objProduct, $objItem, $this)) { + return false; + } + } + } + + $this->setProductForItem($objProduct, $objItem, $objItem->quantity); + $objItem->save(); + + // !HOOK: additional functionality when adding product to collection + if (isset($GLOBALS['ISO_HOOKS']['postUpdateProductInCollection']) + && is_array($GLOBALS['ISO_HOOKS']['postUpdateProductInCollection']) + ) { + foreach ($GLOBALS['ISO_HOOKS']['postUpdateProductInCollection'] as $callback) { + $objCallback = \System::importStatic($callback[0]); + $objCallback->{$callback[1]}($objProduct, $objItem, $this); + } + } + + return true; + } + /** * Update a product collection item * @@ -1013,7 +1161,7 @@ public function updateItemById($intId, $arrSet) $objCallback = \System::importStatic($callback[0]); $arrSet = $objCallback->{$callback[1]}($objItem, $arrSet, $this); - if (empty($arrSet) && is_array($arrSet)) { + if (!is_array($arrSet) || 0 === count($arrSet)) { return false; } } @@ -1033,7 +1181,7 @@ public function updateItemById($intId, $arrSet) if ($arrSet['quantity'] < $intMinimumQuantity) { Message::addInfo(sprintf( $GLOBALS['TL_LANG']['ERR']['productMinimumQuantity'], - $objProduct->name, + $objProduct->getName(), $intMinimumQuantity )); $arrSet['quantity'] = $intMinimumQuantity; @@ -1080,6 +1228,8 @@ public function deleteItem(ProductCollectionItem $objItem) * @param int $intId * * @return bool + * + * @throws \BadMethodCallException if the product collection is locked. */ public function deleteItemById($intId) { @@ -1135,7 +1285,7 @@ public function getSurcharges() { if (null === $this->arrSurcharges) { if ($this->isLocked()) { - $this->arrSurcharges = array(); + $this->arrSurcharges = []; if (($objSurcharges = ProductCollectionSurcharge::findBy('pid', $this->id)) !== null) { $this->arrSurcharges = $objSurcharges->getModels(); @@ -1154,6 +1304,8 @@ public function getSurcharges() * @param IsotopeProductCollection $objSource * * @return int[] + * + * @throws \BadMethodCallException if the product collection is locked. */ public function copyItemsFrom(IsotopeProductCollection $objSource) { @@ -1165,7 +1317,7 @@ public function copyItemsFrom(IsotopeProductCollection $objSource) $objSource->updateDatabase(); $time = time(); - $arrIds = array(); + $arrIds = []; $arrOldItems = $objSource->getItems(); foreach ($arrOldItems as $objOldItem) { @@ -1199,7 +1351,7 @@ public function copyItemsFrom(IsotopeProductCollection $objSource) $arrIds[$objOldItem->id] = $objNewItem->id; } - if (!empty($arrIds)) { + if (count($arrIds) > 0) { $this->tstamp = $time; } @@ -1228,6 +1380,8 @@ public function copyItemsFrom(IsotopeProductCollection $objSource) * * @deprecated Deprecated since version 2.2, to be removed in 3.0. * Surcharges are calculated on the fly, so it does not make sense to copy them from another one. + * + * @throws \BadMethodCallException if the product collection is locked. */ public function copySurchargesFrom(IsotopeProductCollection $objSource, array $arrItemMap = array()) { @@ -1261,11 +1415,7 @@ public function copySurchargesFrom(IsotopeProductCollection $objSource, array $a } /** - * Add all products in the collection to the given scale - * - * @param Scale $objScale - * - * @return Scale + * @inheritdoc */ public function addToScale(Scale $objScale = null) { @@ -1300,12 +1450,9 @@ public function addToScale(Scale $objScale = null) } /** - * Add the collection to a template - * - * @param \Template $objTemplate - * @param array $arrConfig + * @inheritdoc */ - public function addToTemplate(\Template $objTemplate, array $arrConfig = array()) + public function addToTemplate(\Template $objTemplate, array $arrConfig = []) { $arrGalleries = array(); $objConfig = $this->getRelated('config_id') ?: Isotope::getConfig(); @@ -1314,7 +1461,7 @@ public function addToTemplate(\Template $objTemplate, array $arrConfig = array() $objTemplate->id = $this->id; $objTemplate->collection = $this; $objTemplate->config = $objConfig; - $objTemplate->surcharges = \Isotope\Frontend::formatSurcharges($this->getSurcharges(), $objConfig->currency); + $objTemplate->surcharges = Frontend::formatSurcharges($this->getSurcharges(), $objConfig->currency); $objTemplate->subtotal = Isotope::formatPriceWithCurrency($this->getSubtotal(), true, $objConfig->currency); $objTemplate->total = Isotope::formatPriceWithCurrency($this->getTotal(), true, $objConfig->currency); $objTemplate->tax_free_subtotal = Isotope::formatPriceWithCurrency($this->getTaxFreeSubtotal(), true, $objConfig->currency); @@ -1327,8 +1474,8 @@ public function addToTemplate(\Template $objTemplate, array $arrConfig = array() $objProduct = $objItem->getProduct(); - return in_array($strAttribute, $objProduct->getAttributes()) - || in_array($strAttribute, $objProduct->getVariantAttributes()); + return in_array($strAttribute, $objProduct->getAttributes(), true) + || in_array($strAttribute, $objProduct->getVariantAttributes(), true); }; $objTemplate->generateAttribute = function ( @@ -1357,7 +1504,7 @@ public function addToTemplate(\Template $objTemplate, array $arrConfig = array() &$arrGalleries ) { if (!$objItem->hasProduct()) { - return new \Isotope\Model\Gallery\Standard(); + return new StandardGallery(); } $strCacheKey = 'product' . $objItem->product_id . '_' . $strAttribute; @@ -1374,6 +1521,28 @@ public function addToTemplate(\Template $objTemplate, array $arrConfig = array() return $arrGalleries[$strCacheKey]; }; + $objTemplate->attributeLabel = function ($name, array $options = []) { + /** @var Attribute $attribute */ + $attribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$name]; + + if (!$attribute instanceof IsotopeAttribute) { + return Format::dcaLabel('tl_iso_product', $name); + } + + return $attribute->getLabel($options); + }; + + $objTemplate->attributeValue = function ($name, $value, array $options = []) { + /** @var Attribute $attribute */ + $attribute = $GLOBALS['TL_DCA']['tl_iso_product']['attributes'][$name]; + + if (!$attribute instanceof IsotopeAttribute) { + return Format::dcaValue('tl_iso_product', $name, $value); + } + + return $attribute->generateValue($value, $options); + }; + // !HOOK: allow overriding of the template if (isset($GLOBALS['ISO_HOOKS']['addCollectionToTemplate']) && is_array($GLOBALS['ISO_HOOKS']['addCollectionToTemplate']) @@ -1386,23 +1555,19 @@ public function addToTemplate(\Template $objTemplate, array $arrConfig = array() } /** - * Add an error message - * - * @param string + * @inheritdoc */ - public function addError($strError) + public function addError($message) { - $this->arrErrors[] = $strError; + $this->arrErrors[] = $message; } /** - * Check if collection or any item has errors - * - * @return bool + * @inheritdoc */ public function hasErrors() { - if (!empty($this->arrErrors)) { + if (count($this->arrErrors) > 0) { return true; } @@ -1416,9 +1581,7 @@ public function hasErrors() } /** - * Return the errors array - * - * @return array + * @inheritdoc */ public function getErrors() { @@ -1487,6 +1650,7 @@ protected function generateItem(ProductCollectionItem $objItem) 'name' => $objItem->getName(), 'options' => Isotope::formatOptions($objItem->getOptions()), 'configuration' => $objItem->getConfiguration(), + 'attributes' => $objItem->getAttributes(), 'quantity' => $objItem->quantity, 'price' => Isotope::formatPriceWithCurrency($objItem->getPrice(), true, $objConfig->currency), 'tax_free_price' => Isotope::formatPriceWithCurrency($objItem->getTaxFreePrice(), true, $objConfig->currency), @@ -1501,7 +1665,7 @@ protected function generateItem(ProductCollectionItem $objItem) 'rowClass' => trim('product ' . (($blnHasProduct && $objProduct->isNew()) ? 'new ' : '') . $arrCSS[1]), ); - if (null !== $objItem->getRelated('jumpTo') && $blnHasProduct && $objProduct->isAvailableInFrontend()) { + if ($blnHasProduct && null !== $objItem->getRelated('jumpTo') && $objProduct->isAvailableInFrontend()) { $arrItem['href'] = $objProduct->generateUrl($objItem->getRelated('jumpTo')); } @@ -1552,36 +1716,41 @@ protected function generateDocumentNumber($strPrefix, $intDigits) try { if ($this->arrData['document_number'] == '') { - $strPrefix = Haste::getInstance()->call('replaceInsertTags', array($strPrefix, false)); + $strPrefix = \Controller::replaceInsertTags($strPrefix, false); $intPrefix = utf8_strlen($strPrefix); // Lock tables so no other order can get the same ID \Database::getInstance()->lockTables(array(static::$strTable => 'WRITE')); + $prefixCondition = ($strPrefix != '' ? " AND document_number LIKE '$strPrefix%'" : ''); + // Retrieve the highest available order ID - $objMax = \Database::getInstance()->prepare(" + $objMax = \Database::getInstance() + ->prepare(" SELECT document_number FROM tl_iso_product_collection WHERE type=? - " . ($strPrefix != '' ? " AND document_number LIKE '$strPrefix%'" : '') . " + $prefixCondition AND store_id=? - ORDER BY CAST(" . ($strPrefix != '' ? "SUBSTRING(document_number, " . ($intPrefix + 1) . ")" : 'document_number') . " AS UNSIGNED) DESC - ") + ORDER BY CAST(" . ($strPrefix != '' ? 'SUBSTRING(document_number, ' . ($intPrefix + 1) . ')' : 'document_number') . ' AS UNSIGNED) DESC + ') ->limit(1) ->execute( - array_search(get_called_class(), static::getModelTypes()), + array_search(get_called_class(), static::getModelTypes(), true), $this->store_id - ); + ) + ; $intMax = (int) substr($objMax->document_number, $intPrefix); $this->arrData['document_number'] = $strPrefix . str_pad($intMax + 1, $intDigits, '0', STR_PAD_LEFT); } - \Database::getInstance()->prepare(" - UPDATE " . static::$strTable . " SET document_number=? WHERE id=? - ")->execute($this->arrData['document_number'], $this->id); + \Database::getInstance() + ->prepare('UPDATE tl_iso_product_collection SET document_number=? WHERE id=?') + ->execute($this->arrData['document_number'], $this->id) + ; \Database::getInstance()->unlockTables(); @@ -1612,7 +1781,7 @@ protected function generateUniqueId() /** * Prevent modifying a locked collection * - * @throws \BadMethodCallException + * @throws \BadMethodCallException if the collection is locked. */ protected function ensureNotLocked() { @@ -1623,6 +1792,9 @@ protected function ensureNotLocked() /** * Make sure the addresses belong to this collection only, so they will never be modified + * + * @throws \UnderflowException if collection is not saved (not in DB) + * @throws \BadMethodCallException if the product collection is locked. */ protected function createPrivateAddresses() { @@ -1664,7 +1836,7 @@ protected function createPrivateAddresses() } } - /** @type Config $config */ + /** @var Config $config */ $config = $this->getRelated('config_id'); $billingFields = (null === $config) ? array() : $config->getBillingFields(); $shippingFields = (null === $config) ? array() : $config->getShippingFields(); @@ -1734,11 +1906,12 @@ protected function updateDefaultAddress(Address $objAddress) $arrSet['isDefaultShipping'] = ''; } - if (!empty($arrSet)) { - // @todo restore foratting when #6623 is fixed in Contao core - \Database::getInstance()->prepare( - "UPDATE " . $objAddress->getTable() . " %s WHERE pid=? AND ptable=? AND store_id=? AND id!=?" - )->set($arrSet)->execute($this->member, \MemberModel::getTable(), $this->store_id, $objAddress->id); + if (count($arrSet) > 0) { + \Database::getInstance() + ->prepare('UPDATE tl_iso_address %s WHERE pid=? AND ptable=? AND store_id=? AND id!=?') + ->set($arrSet) + ->execute($this->member, \MemberModel::getTable(), $this->store_id, $objAddress->id) + ; } } @@ -1765,22 +1938,28 @@ protected function clearCache() public static function createFromCollection(IsotopeProductCollection $objSource) { $objCollection = new static(); - $objConfig = $objSource->getRelated('config_id'); + $objConfig = $objSource->getConfig(); if (null === $objConfig) { $objConfig = Isotope::getConfig(); } - $objCollection->source_collection_id = (int) $objSource->id; + $member = $objSource->getMember(); + + $objCollection->source_collection_id = $objSource->getId(); $objCollection->config_id = (int) $objConfig->id; - $objCollection->store_id = (int) $objSource->store_id; - $objCollection->member = (int) $objSource->member; + $objCollection->store_id = (int) $objSource->getStoreId(); + $objCollection->member = (null === $member ? 0 : $member->id); - $objCollection->setShippingMethod($objSource->getShippingMethod()); - $objCollection->setPaymentMethod($objSource->getPaymentMethod()); + if ($objCollection instanceof IsotopeOrderableCollection + && $objSource instanceof IsotopeOrderableCollection) + { + $objCollection->setShippingMethod($objSource->getShippingMethod()); + $objCollection->setPaymentMethod($objSource->getPaymentMethod()); - $objCollection->setShippingAddress($objSource->getShippingAddress()); - $objCollection->setBillingAddress($objSource->getBillingAddress()); + $objCollection->setShippingAddress($objSource->getShippingAddress()); + $objCollection->setBillingAddress($objSource->getBillingAddress()); + } $arrItemIds = $objCollection->copyItemsFrom($objSource); @@ -1839,4 +2018,22 @@ public static function getItemsSortingCallable($strOrderBy = 'asc_id') return null; } + + /** + * @param IsotopeProduct $product + * @param ProductCollectionItem $item + * @param int $quantity + */ + private function setProductForItem(IsotopeProduct $product, ProductCollectionItem $item, $quantity) + { + $item->tstamp = time(); + $item->type = array_search(get_class($product), Product::getModelTypes(), true); + $item->product_id = $product->getId(); + $item->sku = $product->getSku(); + $item->name = $product->getName(); + $item->configuration = $product->getOptions(); + $item->quantity = (int) $quantity; + $item->price = (float) ($product->getPrice($this) ? $product->getPrice($this)->getAmount((int) $quantity) : 0); + $item->tax_free_price = (float) ($product->getPrice($this) ? $product->getPrice($this)->getNetAmount((int) $quantity) : 0); + } } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php b/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php index 33b27a565c..daeef19dec 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php @@ -3,36 +3,26 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\ProductCollection; use Isotope\Interfaces\IsotopeOrderableCollection; -use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; use Isotope\Message; use Isotope\Model\Address; use Isotope\Model\Config; use Isotope\Model\ProductCollection; - /** - * Class Cart - - * Provide methods to handle Isotope cart. - * - * @property mixed id + * Class Cart provides methods to handle Isotope cart. */ -class Cart extends ProductCollection implements - IsotopeProductCollection, - IsotopeOrderableCollection +class Cart extends ProductCollection implements IsotopeOrderableCollection { - /** * Cookie hash value * @var string @@ -117,22 +107,24 @@ public function getShippingAddress() /** * Merge guest cart if necessary + * + * @throws \BadMethodCallException if the product collection is locked. */ public function mergeGuestCart() { $this->ensureNotLocked(); - $strHash = \Input::cookie(static::$strCookie); + $strHash = (string) \Input::cookie(static::$strCookie); // Temporary cart available, move to this cart. Must be after creating a new cart! - if (FE_USER_LOGGED_IN === true && $strHash != '' && $this->member > 0) { - $blnMerge = $this->countItems() > 0 ? true : false; + if (FE_USER_LOGGED_IN === true && '' !== $strHash && $this->member > 0) { + $blnMerge = $this->countItems() > 0; $objTemp = static::findOneBy(array('uniqid=?', 'store_id=?'), array($strHash, $this->store_id)); if (null !== $objTemp) { $arrIds = $this->copyItemsFrom($objTemp); - if ($blnMerge && !empty($arrIds)) { + if ($blnMerge && count($arrIds) > 0) { Message::addConfirmation($GLOBALS['TL_LANG']['MSC']['cartMerged']); } @@ -140,7 +132,7 @@ public function mergeGuestCart() } // Delete cookie - \System::setCookie(static::$strCookie, '', (time() - 3600), $GLOBALS['TL_CONFIG']['websitePath']); + \System::setCookie(static::$strCookie, '', time() - 3600, $GLOBALS['TL_CONFIG']['websitePath']); \Controller::reload(); } } @@ -158,40 +150,46 @@ public function getDraftOrder() $objOrder = Order::findOneBy( array( "$t.source_collection_id=?", - "$t.locked=''" + "$t.locked IS NULL" ), array($this->id) ); - if ($objOrder === null) { - $objOrder = Order::createFromCollection($this); - } else { - $objOrder->config_id = (int) $this->config_id; - $objOrder->store_id = (int) $this->store_id; - $objOrder->member = (int) $this->member; + if (null !== $objOrder) { + try { + $objOrder->config_id = (int) $this->config_id; + $objOrder->store_id = (int) $this->store_id; + $objOrder->member = (int) $this->member; - $objOrder->setShippingMethod($this->getShippingMethod()); - $objOrder->setPaymentMethod($this->getPaymentMethod()); + $objOrder->setShippingMethod($this->getShippingMethod()); + $objOrder->setPaymentMethod($this->getPaymentMethod()); - $objOrder->setShippingAddress($this->getShippingAddress()); - $objOrder->setBillingAddress($this->getBillingAddress()); + $objOrder->setShippingAddress($this->getShippingAddress()); + $objOrder->setBillingAddress($this->getBillingAddress()); - $objOrder->purge(); - $arrItemIds = $objOrder->copyItemsFrom($this); + $objOrder->purge(); + $arrItemIds = $objOrder->copyItemsFrom($this); - $objOrder->updateDatabase(); + $objOrder->updateDatabase(); - // HOOK: order status has been updated - if (isset($GLOBALS['ISO_HOOKS']['updateDraftOrder']) - && is_array($GLOBALS['ISO_HOOKS']['updateDraftOrder']) - ) { - foreach ($GLOBALS['ISO_HOOKS']['updateDraftOrder'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objOrder, $this, $arrItemIds); + // HOOK: order status has been updated + if (isset($GLOBALS['ISO_HOOKS']['updateDraftOrder']) + && is_array($GLOBALS['ISO_HOOKS']['updateDraftOrder']) + ) { + foreach ($GLOBALS['ISO_HOOKS']['updateDraftOrder'] as $callback) { + $objCallback = \System::importStatic($callback[0]); + $objCallback->{$callback[1]}($objOrder, $this, $arrItemIds); + } } + } catch (\Exception $e) { + $objOrder = null; } } + if (null === $objOrder) { + $objOrder = Order::createFromCollection($this); + } + $this->objDraftOrder = $objOrder; } @@ -258,24 +256,40 @@ protected function clearCache() */ public static function findForCurrentStore() { + /** @var \PageModel $objPage */ global $objPage; - if (TL_MODE != 'FE' || null === $objPage || $objPage->rootId == 0) { + if ('FE' !== TL_MODE || null === $objPage || 0 === (int) $objPage->rootId) { return null; } + /** @var \PageModel|\stdClass $rootPage */ + $rootPage = \PageModel::findByPk($objPage->rootId); + $time = time(); $objCart = null; - $cookieHash = \Input::cookie(static::$strCookie); - $storeId = (int) \PageModel::findByPk($objPage->rootId)->iso_store_id; + $storeId = (int) $rootPage->iso_store_id; + + if (true === FE_USER_LOGGED_IN) { + $cookieHash = null; - // Check to see if the user is logged in. - if (FE_USER_LOGGED_IN === true) { $objCart = static::findOneBy( array('member=?', 'store_id=?'), array(\FrontendUser::getInstance()->id, $storeId) ); - } elseif ($cookieHash != '') { + + } else { + $cookieHash = (string) \Input::cookie(static::$strCookie); + + if ('' === $cookieHash) { + $cookieHash = sha1( + session_id() + . (!$GLOBALS['TL_CONFIG']['disableIpCheck'] ? \Environment::get('ip') : '') + . $storeId + . static::$strCookie + ); + } + $objCart = static::findOneBy(array('uniqid=?', 'store_id=?'), array($cookieHash, $storeId)); } @@ -284,17 +298,10 @@ public static function findForCurrentStore() $objConfig = Config::findByRootPageOrFallback($objPage->rootId); $objCart = new static(); - $cookieHash = FE_USER_LOGGED_IN === true ? null : sha1( - session_id() - . (!$GLOBALS['TL_CONFIG']['disableIpCheck'] ? \Environment::get('ip') : '') - . $storeId - . static::$strCookie - ); - // Can't call the individual rows here, it would trigger markModified and a save() $objCart->setRow(array_merge($objCart->row(), array( 'tstamp' => $time, - 'member' => (FE_USER_LOGGED_IN === true ? \FrontendUser::getInstance()->id : 0), + 'member' => FE_USER_LOGGED_IN === true ? \FrontendUser::getInstance()->id : 0, 'uniqid' => $cookieHash, 'config_id' => $objConfig->id, 'store_id' => $storeId, @@ -304,7 +311,7 @@ public static function findForCurrentStore() $objCart->tstamp = $time; } - if (FE_USER_LOGGED_IN !== true) { + if (true !== FE_USER_LOGGED_IN) { \System::setCookie( static::$strCookie, $cookieHash, diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection/Favorites.php b/system/modules/isotope/library/Isotope/Model/ProductCollection/Favorites.php new file mode 100644 index 0000000000..0f4ab9bc29 --- /dev/null +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection/Favorites.php @@ -0,0 +1,68 @@ +rootId) { + return null; + } + + /** @var \PageModel|\stdClass $rootPage */ + $rootPage = \PageModel::findByPk($objPage->rootId); + $storeId = (int) $rootPage->iso_store_id; + + $collection = static::findOneBy( + array('member=?', 'store_id=?'), + array(\FrontendUser::getInstance()->id, $storeId) + ); + + // Create new collection + if (null === $collection) { + $collection = new static(); + + // Can't call the individual rows here, it would trigger markModified and a save() + $collection->setRow(array_merge($collection->row(), array( + 'member' => \FrontendUser::getInstance()->id, + 'config_id' => Isotope::getConfig()->id, + 'store_id' => $storeId, + ))); + } + + return $collection; + } +} diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php b/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php index e756d27524..42f60504c6 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php @@ -3,29 +3,24 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\ProductCollection; use Haste\Generator\RowClass; -use Haste\Haste; use Haste\Util\Format; -use Isotope\Interfaces\IsotopeOrderableCollection; use Isotope\Interfaces\IsotopeOrderStatusAware; -use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Interfaces\IsotopePurchasableCollection; use Isotope\Isotope; +use Isotope\Model\Address; use Isotope\Model\Document; use Isotope\Model\OrderStatus; -use Isotope\Model\Payment; use Isotope\Model\ProductCollection; -use Isotope\Model\ProductCollectionSurcharge; -use Isotope\Model\Shipping; +use Isotope\Template; use NotificationCenter\Model\Notification; @@ -36,7 +31,6 @@ * * @method static Order findOneBy(string $strColumn, $varValue, array $arrOptions=array()) * - * @property int $locked * @property array $checkout_info * @property array $payment_data * @property array $shipping_data @@ -46,32 +40,68 @@ * @property int $date_shipped * @property string $notes */ -class Order extends ProductCollection implements - IsotopeProductCollection, - IsotopeOrderableCollection, - IsotopePurchasableCollection +class Order extends ProductCollection implements IsotopePurchasableCollection { /** - * Return true if order has been paid. - * This is the case if either payment date is set or order status has the paid flag - * - * @return bool + * @inheritdoc */ public function isPaid() { // Order is paid if a payment date is set - $paid = (int) $this->date_paid; - - if ($paid > 0 && $paid <= time()) { + if (null !== $this->date_paid > 0 && $this->date_paid <= time()) { return true; } // Otherwise we check the orderstatus checkbox - /** @var OrderStatus $objStatus */ - $objStatus = $this->getRelated('order_status'); + try { + /** @var OrderStatus $objStatus */ + $objStatus = $this->getRelated('order_status'); - return (null !== $objStatus && $objStatus->isPaid()) ? true : false; + return (null !== $objStatus && $objStatus->isPaid()); + } catch (\Exception $e) { + return false; + } + } + + /** + * @inheritdoc + */ + public function getDatePaid() + { + return $this->date_paid; + } + + /** + * @inheritdoc + */ + public function setDatePaid($timestamp = null) + { + $this->date_paid = $timestamp; + } + + /** + * @inheritdoc + */ + public function isShipped() + { + return null !== $this->date_shipped; + } + + /** + * @inheritdoc + */ + public function getDateShipped() + { + return $this->date_shipped; + } + + /** + * @inheritdoc + */ + public function setDateShipped($timestamp = null) + { + $this->date_shipped = $timestamp; } /** @@ -91,10 +121,14 @@ public function isCheckoutComplete() */ public function getStatusLabel() { - /** @var OrderStatus $objStatus */ - $objStatus = $this->getRelated('order_status'); + try { + /** @var OrderStatus $objStatus */ + $objStatus = $this->getRelated('order_status'); - return (null === $objStatus) ? '' : $objStatus->getName(); + return (null === $objStatus) ? '' : $objStatus->getName(); + } catch (\Exception $e) { + return ''; + } } /** @@ -104,10 +138,14 @@ public function getStatusLabel() */ public function getStatusAlias() { - /** @var OrderStatus $objStatus */ - $objStatus = $this->getRelated('order_status'); + try { + /** @var OrderStatus $objStatus */ + $objStatus = $this->getRelated('order_status'); - return (null === $objStatus) ? $this->order_status : $objStatus->getAlias(); + return null === $objStatus ? $this->order_status : $objStatus->getAlias(); + } catch (\Exception $e) { + return $this->order_status; + } } /** @@ -125,8 +163,8 @@ public function checkout() // (do this now, because otherwise surcharges etc. will not be loaded form the database) $this->checkout_complete = true; $this->generateDocumentNumber( - $this->getRelated('config_id')->orderPrefix, - (int) $this->getRelated('config_id')->orderDigits + $this->getConfig()->orderPrefix, + (int) $this->getConfig()->orderDigits ); if (!$this->isLocked()) { @@ -158,11 +196,11 @@ public function checkout() if ($this->nc_notification) { $blnNotificationError = true; - /** @type Notification $objNotification */ + /** @var Notification $objNotification */ if (($objNotification = Notification::findByPk($this->nc_notification)) !== null) { $arrResult = $objNotification->send($arrTokens, $this->language); - if (!empty($arrResult) && !in_array(false, $arrResult)) { + if (count($arrResult) > 0 && !in_array(false, $arrResult, true)) { $blnNotificationError = false; } } @@ -270,14 +308,14 @@ public function updateOrderStatus($intNewStatus) if (($objNotification = Notification::findByPk($objNewStatus->notification)) !== null) { $arrResult = $objNotification->send($arrTokens, $this->language); - if (in_array(false, $arrResult)) { + if (in_array(false, $arrResult, true)) { $blnNotificationError = true; \System::log( 'Error sending status update notification for order ID ' . $this->id, __METHOD__, TL_ERROR ); - } elseif (!empty($arrResult)) { + } elseif (count($arrResult) > 0) { $blnNotificationError = false; } } else { @@ -355,7 +393,7 @@ public function getNotificationTokens($intNotification) // Add billing/customer address fields if (($objAddress = $this->getBillingAddress()) !== null) { foreach ($objAddress->row() as $k => $v) { - $arrTokens['billing_address_' . $k] = Format::dcaValue($objAddress->getTable(), $k, $v); + $arrTokens['billing_address_' . $k] = Format::dcaValue(Address::getTable(), $k, $v); // @deprecated (use ##billing_address_*##) $arrTokens['billing_' . $k] = $arrTokens['billing_address_' . $k]; @@ -370,7 +408,7 @@ public function getNotificationTokens($intNotification) // Add shipping address fields if (($objAddress = $this->getShippingAddress()) !== null) { foreach ($objAddress->row() as $k => $v) { - $arrTokens['shipping_address_' . $k] = Format::dcaValue($objAddress->getTable(), $k, $v); + $arrTokens['shipping_address_' . $k] = Format::dcaValue(Address::getTable(), $k, $v); // @deprecated (use ##billing_address_*##) $arrTokens['shipping_' . $k] = $arrTokens['shipping_address_' . $k]; @@ -389,16 +427,16 @@ public function getNotificationTokens($intNotification) // Add payment method info if ($this->hasPayment() && ($objPayment = $this->getPaymentMethod()) !== null) { - $arrTokens['payment_id'] = $objPayment->id; + $arrTokens['payment_id'] = $objPayment->getId(); $arrTokens['payment_label'] = $objPayment->getLabel(); - $arrTokens['payment_note'] = $objPayment->note; + $arrTokens['payment_note'] = $objPayment->getNote(); } // Add shipping method info if ($this->hasShipping() && ($objShipping = $this->getShippingMethod()) !== null) { - $arrTokens['shipping_id'] = $objShipping->id; + $arrTokens['shipping_id'] = $objShipping->getId(); $arrTokens['shipping_label'] = $objShipping->getLabel(); - $arrTokens['shipping_note'] = $objShipping->note; + $arrTokens['shipping_note'] = $objShipping->getNote(); } // Add config fields @@ -415,21 +453,23 @@ public function getNotificationTokens($intNotification) } } + /** @var Notification|object $objNotification */ if ($intNotification > 0 && ($objNotification = Notification::findByPk($intNotification)) !== null) { - $objTemplate = new \Isotope\Template($objNotification->iso_collectionTpl); + /** @var Template|object $objTemplate */ + $objTemplate = new Template($objNotification->iso_collectionTpl); $objTemplate->isNotification = true; $this->addToTemplate( $objTemplate, array( - 'gallery' => $objNotification->iso_gallery, - 'sorting' => $this->getItemsSortingCallable($objNotification->iso_orderCollectionBy), + 'gallery' => $objNotification->iso_gallery, + 'sorting' => static::getItemsSortingCallable($objNotification->iso_orderCollectionBy), ) ); - $arrTokens['cart_html'] = Haste::getInstance()->call('replaceInsertTags', array($objTemplate->parse(), false)); + $arrTokens['cart_html'] = \Controller::replaceInsertTags($objTemplate->parse(), false); $objTemplate->textOnly = true; - $arrTokens['cart_text'] = strip_tags(Haste::getInstance()->call('replaceInsertTags', array($objTemplate->parse(), true))); + $arrTokens['cart_text'] = strip_tags(\Controller::replaceInsertTags($objTemplate->parse(), true)); // Generate and "attach" document /** @var \Isotope\Interfaces\IsotopeDocument $objDocument */ @@ -464,12 +504,12 @@ public function getNotificationTokens($intNotification) */ protected function addItemsToTemplate(\Template $objTemplate, $varCallable = null) { - $taxIds = array(); - $arrItems = array(); - $arrAllDownloads = array(); + $taxIds = []; + $arrItems = []; + $arrAllDownloads = []; foreach ($this->getItems($varCallable) as $objItem) { - $arrDownloads = array(); + $arrDownloads = []; $arrItem = $this->generateItem($objItem); foreach ($objItem->getDownloads() as $objDownload) { @@ -487,7 +527,7 @@ protected function addItemsToTemplate(\Template $objTemplate, $varCallable = nul $objTemplate->items = $arrItems; $objTemplate->downloads = $arrAllDownloads; - $objTemplate->total_tax_ids = count(array_unique($taxIds)); + $objTemplate->total_tax_ids = count(array_count_values($taxIds)); return $arrItems; } @@ -503,14 +543,14 @@ protected function generateUniqueId() return $this->arrData['uniqid']; } - $objConfig = $this->getRelated('config_id'); + $objConfig = $this->getConfig(); if (null === $objConfig) { $objConfig = Isotope::getConfig(); } return uniqid( - Haste::getInstance()->call('replaceInsertTags', array((string) $objConfig->orderPrefix, false)), + \Controller::replaceInsertTags((string) $objConfig->orderPrefix, false), true ); } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php index a30f1c22cb..dde8488ec9 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php @@ -3,23 +3,20 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; +use Haste\Util\Url; use Isotope\Interfaces\IsotopeProductCollection; - /** * ProductCollectionDownload model represents a download in a collection (usually an order) * - * @method \Isotope\Model\Download getRelated() - * * @property int $pid * @property int $tstamp * @property int $download_id @@ -55,7 +52,7 @@ public function canDownload() */ protected function download($strFile) { - if (TL_MODE == 'FE' && $this->downloads_remaining !== '') { + if ('FE' === TL_MODE && $this->downloads_remaining !== '') { \Database::getInstance()->prepare("UPDATE " . static::$strTable . " SET downloads_remaining=(downloads_remaining-1) WHERE id=?")->execute($this->id); } @@ -71,7 +68,10 @@ protected function download($strFile) */ public function getForTemplate($blnOrderPaid = false) { + /** @var \PageModel $objPage */ global $objPage; + + /** @var Download $objDownload */ $objDownload = $this->getRelated('download_id'); if (null === $objDownload) { @@ -118,8 +118,8 @@ public function getForTemplate($blnOrderPaid = false) } $strHref = ''; - if (TL_MODE == 'FE') { - $strHref = \Haste\Util\Url::addQueryString('download=' . $objDownload->id . '&file=' . $objFileModel->path); + if ('FE' === TL_MODE) { + $strHref = Url::addQueryString('download=' . $objDownload->id . '&file=' . $objFileModel->path); } // Add the image @@ -136,8 +136,8 @@ public function getForTemplate($blnOrderPaid = false) 'meta' => $arrMeta, 'extension' => $objFile->extension, 'path' => $objFile->dirname, - 'remaining' => ($objDownload->downloads_allowed > 0 ? sprintf($GLOBALS['TL_LANG']['MSC']['downloadsRemaining'], intval($this->downloads_remaining)) : ''), - 'downloadable' => ($blnOrderPaid && $this->canDownload()), + 'remaining' => $objDownload->downloads_allowed > 0 ? sprintf($GLOBALS['TL_LANG']['MSC']['downloadsRemaining'], (int) $this->downloads_remaining) : '', + 'downloadable' => $blnOrderPaid && $this->canDownload(), ); } @@ -156,8 +156,8 @@ public static function findByCollection(IsotopeProductCollection $objCollection, { $arrOptions = array_merge( array( - 'column' => ("pid IN (SELECT id FROM tl_iso_product_collection_item WHERE pid=?)"), - 'value' => $objCollection->id, + 'column' => 'pid IN (SELECT id FROM tl_iso_product_collection_item WHERE pid=?)', + 'value' => $objCollection->getId(), 'return' => 'Collection' ), $arrOptions @@ -177,13 +177,13 @@ public static function createForProductsInCollection(IsotopeProductCollection $o { $arrDownloads = array(); $t = Download::getTable(); - $time = ($objCollection->locked ?: ($objCollection->tstamp ?: time())); + $time = $objCollection->isLocked() ? $objCollection->getLockTime(): time(); foreach ($objCollection->getItems() as $objItem) { if ($objItem->hasProduct()) { $objDownloads = Download::findBy( array("($t.pid=? OR $t.pid=?)", "$t.published='1'"), - array($objItem->getProduct()->id, $objItem->getProduct()->pid) + array($objItem->getProduct()->getId(), $objItem->getProduct()->getProductId()) ); if (null !== $objDownloads) { diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php index ed2dd426f5..7d1c598985 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php @@ -3,16 +3,17 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; use Haste\Data\Plain; +use Isotope\Interfaces\IsotopeProduct; +use Isotope\Interfaces\IsotopeProductWithOptions; use Isotope\Isotope; @@ -44,7 +45,7 @@ class ProductCollectionItem extends \Model /** * Cache the current product - * @var \Isotope\Interfaces\IsotopeProduct|false + * @var IsotopeProduct|IsotopeProductWithOptions|false */ protected $objProduct = false; @@ -58,7 +59,7 @@ class ProductCollectionItem extends \Model * Errors * @var array */ - protected $arrErrors = array(); + protected $arrErrors = []; /** * True if product collection is locked @@ -143,7 +144,7 @@ public function delete() * * @param bool $blnNoCache * - * @return \Isotope\Interfaces\IsotopeProduct|null + * @return IsotopeProduct|null */ public function getProduct($blnNoCache = false) { @@ -151,7 +152,7 @@ public function getProduct($blnNoCache = false) $this->objProduct = null; - /** @var \Isotope\Model\Product $strClass */ + /** @var string|\Isotope\Model\Product $strClass */ $strClass = Product::getClassForModelType($this->type); if ($strClass == '' || !class_exists($strClass)) { @@ -160,7 +161,26 @@ public function getProduct($blnNoCache = false) return null; } - $this->objProduct = $strClass::findByPk($this->product_id); + try { + $this->objProduct = $strClass::findByPk($this->product_id); + } catch (\Exception $e) { + $this->objProduct = null; + $this->addError($e->getMessage()); + } + + if (null !== $this->objProduct && $this->objProduct instanceof IsotopeProductWithOptions) { + try { + if ($this->objProduct instanceof \Model) { + $this->objProduct = clone $this->objProduct; + $this->objProduct->preventSaving(false); + $this->objProduct->id = $this->product_id; + } + + $this->objProduct->setOptions($this->getOptions()); + } catch (\RuntimeException $e) { + $this->addError($GLOBALS['TL_LANG']['ERR']['collectionItemNotAvailable']); + } + } } return $this->objProduct; @@ -183,7 +203,7 @@ public function hasProduct() */ public function getSku() { - return (string) ($this->isLocked() || !$this->hasProduct()) ? $this->sku : $this->getProduct()->sku; + return (string) ($this->isLocked() || !$this->hasProduct()) ? $this->sku : $this->getProduct()->getSku(); } /** @@ -193,25 +213,39 @@ public function getSku() */ public function getName() { - return (string) ($this->isLocked() || !$this->hasProduct()) ? $this->name : $this->getProduct()->name; + return (string) ($this->isLocked() || !$this->hasProduct()) ? $this->name : $this->getProduct()->getName(); + } + + /** + * Returns key-value array for variant-enabled and customer editable attributes. + * + * @return array + * + * @deprecated Use getOptions() + */ + public function getAttributes() + { + return $this->getOptions(); } /** - * Get product options + * Returns key-value array for variant-enabled and customer editable attributes. + * * @return array - * @deprecated use getConfiguration */ public function getOptions() { $arrConfig = deserialize($this->configuration); - return is_array($arrConfig) ? $arrConfig : array(); + return is_array($arrConfig) ? $arrConfig : []; } /** * Get product configuration * * @return array + * + * @deprecated Deprecated since Isotope 2.4, to be removed in Isotope 3.0. Use getOptions() instead. */ public function getConfiguration() { @@ -326,10 +360,17 @@ public function increaseQuantityBy($intQuantity) { $time = time(); - \Database::getInstance()->query("UPDATE " . static::$strTable . " SET tstamp=$time, quantity=(quantity+" . (int) $intQuantity . ") WHERE " . static::$strPk . "=" . $this->{static::$strPk}); + \Database::getInstance()->query(" + UPDATE tl_iso_product_collection_item + SET tstamp=$time, quantity=(quantity+" . (int) $intQuantity . ') + WHERE id=' . $this->id + ); $this->tstamp = $time; - $this->quantity = \Database::getInstance()->query("SELECT quantity FROM " . static::$strTable . " WHERE " . static::$strPk . "=" . $this->{static::$strPk})->quantity; + $this->quantity = \Database::getInstance() + ->query("SELECT quantity FROM tl_iso_product_collection_item WHERE id=" . $this->id) + ->quantity + ; return $this; } @@ -349,10 +390,17 @@ public function decreaseQuantityBy($intQuantity) $time = time(); - \Database::getInstance()->query("UPDATE " . static::$strTable . " SET tstamp=$time, quantity=(quantity-" . (int) $intQuantity . ") WHERE " . static::$strPk . "=" . $this->{static::$strPk}); + \Database::getInstance()->query(" + UPDATE tl_iso_product_collection_item + SET tstamp=$time, quantity=(quantity-" . (int) $intQuantity . ') + WHERE id=' . $this->id + ); $this->tstamp = $time; - $this->quantity = \Database::getInstance()->query("SELECT quantity FROM " . static::$strTable . " WHERE " . static::$strPk . "=" . $this->{static::$strPk})->quantity; + $this->quantity = \Database::getInstance() + ->query('SELECT quantity FROM tl_iso_product_collection_item WHERE id=' . $this->id) + ->quantity + ; return $this; } @@ -368,14 +416,10 @@ public function decreaseQuantityBy($intQuantity) */ public static function sumBy($strField, $strColumn = null, $varValue = null) { - if (static::$strTable == '') { - return 0; - } - - $strQuery = "SELECT SUM(" . $strField . ") AS sum FROM " . static::$strTable; + $strQuery = "SELECT SUM($strField) AS sum FROM tl_iso_product_collection_item"; if ($strColumn !== null) { - $strQuery .= " WHERE " . (is_array($strColumn) ? implode(" AND ", $strColumn) : static::$strTable . '.' . $strColumn . "=?"); + $strQuery .= ' WHERE ' . (is_array($strColumn) ? implode(' AND ', $strColumn) : static::$strTable . '.' . $strColumn . "=?"); } return (int) \Database::getInstance()->prepare($strQuery)->execute($varValue)->sum; @@ -398,7 +442,7 @@ public function addError($strError) */ public function hasErrors() { - return !empty($this->arrErrors); + return 0 !== count($this->arrErrors); } /** diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php index a5eec44c9e..f45e754c60 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -250,8 +249,9 @@ protected function preSave(array $arrSet) */ public static function findForCollection(IsotopeProductCollection $objCollection) { - $arrPreTax = array(); - $arrPostTax = array(); + $arrPreTax = []; + $arrPostTax = []; + $arrTaxes = []; // !HOOK: get collection surcharges if (isset($GLOBALS['ISO_HOOKS']['findSurchargesForCollection']) && is_array($GLOBALS['ISO_HOOKS']['findSurchargesForCollection'])) { @@ -274,17 +274,15 @@ public static function findForCollection(IsotopeProductCollection $objCollection } } - $arrTaxes = array(); - static::addTaxesForItems($arrTaxes, $objCollection, $arrPreTax); static::addTaxesForSurcharges( $arrTaxes, $arrPreTax, - array( + [ 'billing' => $objCollection->getBillingAddress(), - 'shipping' => $objCollection->getShippingAddress() - ) + 'shipping' => $objCollection->getShippingAddress(), + ] ); return array_merge($arrPreTax, $arrTaxes, $arrPostTax); @@ -334,20 +332,20 @@ protected static function buildSurcharge($strClass, $strLabel, $objSource, Isoto /** @var \Isotope\Model\ProductCollectionSurcharge $objSurcharge */ $objSurcharge = new $strClass(); - $objSurcharge->label = ($strLabel . ' (' . $objSource->getLabel() . ')'); + $objSurcharge->label = sprintf($strLabel, $objSource->getLabel()); $objSurcharge->price = ($objSource->isPercentage() ? $objSource->getPercentage() . '%' : ' '); $objSurcharge->total_price = $objSource->getPrice(); - $objSurcharge->tax_free_total_price = $objSource->total_price; + $objSurcharge->tax_free_total_price = $objSurcharge->total_price; $objSurcharge->tax_class = $intTaxClass; $objSurcharge->before_tax = ($intTaxClass ? true : false); $objSurcharge->addToTotal = true; if ($intTaxClass == -1) { $objSurcharge->applySplittedTax($objCollection, $objSource); - } elseif ($objSurcharge->tax_class > 0) { + } elseif ($intTaxClass > 0) { /** @var \Isotope\Model\TaxClass $objTaxClass */ - if (($objTaxClass = TaxClass::findByPk($objSurcharge->tax_class)) !== null) { + if (($objTaxClass = TaxClass::findByPk($intTaxClass)) !== null) { /** @var \Isotope\Model\TaxRate $objIncludes */ if (($objIncludes = $objTaxClass->getRelated('includes')) !== null) { @@ -396,7 +394,7 @@ private static function addTaxesForItems(array &$arrTaxes, IsotopeProductCollect continue; } - $arrTaxIds = array(); + $arrTaxIds = []; $fltPrice = $objItem->getTotalPrice(); /** @var \Isotope\Model\ProductCollectionSurcharge $objSurcharge */ @@ -409,33 +407,32 @@ private static function addTaxesForItems(array &$arrTaxes, IsotopeProductCollect if (null === $productAddresses) { $productAddresses = array( 'billing' => $objCollection->getBillingAddress(), - 'shipping' => ($objProduct->isExemptFromShipping() ? $objCollection->getBillingAddress() : $objCollection->getShippingAddress()), + 'shipping' => $objProduct->isExemptFromShipping() ? $objCollection->getBillingAddress() : $objCollection->getShippingAddress(), ); } /** @var \Isotope\Model\TaxRate $objIncludes */ - if (($objIncludes = $objTaxClass->getRelated('includes')) !== null) { - if ($objIncludes->isApplicable($fltPrice, $productAddresses)) { - $addToTotal = static::getTaxAddState(false); - $total = $addToTotal ? $objIncludes->calculateAmountAddedToPrice($fltPrice) : $objIncludes->calculateAmountIncludedInPrice($fltPrice); - - $arrTaxIds[] = static::addTax( - $arrTaxes, - $objTaxClass->id . '_' . $objIncludes->id, - ($objTaxClass->getLabel() ?: $objIncludes->getLabel()), - $objIncludes->getAmount(), - $objIncludes->isPercentage(), - $total, - $objTaxClass->applyRoundingIncrement, - $addToTotal, - false - ); - } + if (($objIncludes = $objTaxClass->getRelated('includes')) !== null + && $objIncludes->isApplicable($fltPrice, $productAddresses) + ) { + $addToTotal = static::getTaxAddState(false); + $total = $addToTotal ? $objIncludes->calculateAmountAddedToPrice($fltPrice) : $objIncludes->calculateAmountIncludedInPrice($fltPrice); + + $arrTaxIds[] = static::addTax( + $arrTaxes, + $objTaxClass->id . '_' . $objIncludes->id, + ($objTaxClass->getLabel() ?: $objIncludes->getLabel()), + $objIncludes->getAmount(), + $objIncludes->isPercentage(), + $total, + $objTaxClass->applyRoundingIncrement, + $addToTotal, + false + ); } + /** @var \Isotope\Model\TaxRate[] $objRates */ if (($objRates = $objTaxClass->getRelated('rates')) !== null) { - - /** @var \Isotope\Model\TaxRate $objTaxRate */ foreach ($objRates as $objTaxRate) { if ($objTaxRate->isApplicable($fltPrice, $productAddresses)) { @@ -499,30 +496,29 @@ private static function addTaxesForSurcharges(array &$arrTaxes, array $arrSurcha $fltPrice = $objSurcharge->total_price; /** @var \Isotope\Model\TaxRate $objIncludes */ - if (($objIncludes = $objTaxClass->getRelated('includes')) !== null) { - if ($objIncludes->isApplicable($fltPrice, $arrAddresses)) { - $addToTotal = static::getTaxAddState(false); - $fltPrice = $addToTotal ? $objIncludes->calculateAmountAddedToPrice($fltPrice) : $objIncludes->calculateAmountIncludedInPrice($fltPrice); - - $taxId = static::addTax( - $arrTaxes, - $objTaxClass->id . '_' . $objIncludes->id, - ($objTaxClass->getLabel() ?: $objIncludes->getLabel()), - $objIncludes->getAmount(), - $objIncludes->isPercentage(), - $fltPrice, - $objTaxClass->applyRoundingIncrement, - $addToTotal, - $objTaxClass->notNegative - ); + if (($objIncludes = $objTaxClass->getRelated('includes')) !== null + && $objIncludes->isApplicable($fltPrice, $arrAddresses) + ) { + $addToTotal = static::getTaxAddState(false); + $fltPrice = $addToTotal ? $objIncludes->calculateAmountAddedToPrice($fltPrice) : $objIncludes->calculateAmountIncludedInPrice($fltPrice); + + $taxId = static::addTax( + $arrTaxes, + $objTaxClass->id . '_' . $objIncludes->id, + ($objTaxClass->getLabel() ?: $objIncludes->getLabel()), + $objIncludes->getAmount(), + $objIncludes->isPercentage(), + $fltPrice, + $objTaxClass->applyRoundingIncrement, + $addToTotal, + $objTaxClass->notNegative + ); - $objSurcharge->addTaxNumber($taxId); - } + $objSurcharge->addTaxNumber($taxId); } + /** @var \Isotope\Model\TaxRate[] $objRates */ if (($objRates = $objTaxClass->getRelated('rates')) !== null) { - - /** @var \Isotope\Model\TaxRate $objTaxRate */ foreach ($objRates as $objTaxRate) { if ($objTaxRate->isApplicable($fltPrice, $arrAddresses)) { diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Payment.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Payment.php index bf9a1b854a..a6d47b9de2 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Payment.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Payment.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\ProductCollectionSurcharge; diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Shipping.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Shipping.php index d7c8d6d378..7626418a33 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Shipping.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Shipping.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\ProductCollectionSurcharge; diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Tax.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Tax.php index d48ec68f07..03edbb0d12 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Tax.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge/Tax.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\ProductCollectionSurcharge; diff --git a/system/modules/isotope/library/Isotope/Model/ProductPrice.php b/system/modules/isotope/library/Isotope/Model/ProductPrice.php index 65ce0fc14b..ee9e924cf9 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductPrice.php +++ b/system/modules/isotope/library/Isotope/Model/ProductPrice.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -22,8 +21,6 @@ /** * ProductPrice defines an advanced price of a product - * - * @method static|ProductPriceCollection find() */ class ProductPrice extends \Model implements IsotopePrice { @@ -185,7 +182,7 @@ public function getValueForTier($intTier) return $this->arrTiers[$intTier]; } - $intTier -= 1; + --$intTier; } while ($intTier > 0); @@ -237,7 +234,7 @@ public function generate($blnShowTiers = false, $intQuantity = 1, array $arrOpti /** * Find prices for a given product and collection * - * @param IsotopeProduct|Standard $objProduct + * @param IsotopeProduct $objProduct * @param IsotopeProductCollection|ProductCollection $objCollection * @param array $arrOptions * @@ -274,9 +271,10 @@ public static function findByProductAndCollection(IsotopeProduct $objProduct, Is $arrIds = $objProduct->getVariantIds() ?: array(0); $arrOptions['column'][] = "$t.pid IN (" . implode(',', $arrIds) . ")"; } else { - $arrOptions['column'][] = "$t.pid=" . ($objProduct->hasVariantPrices() ? $objProduct->id : $objProduct->getProductId()); + $arrOptions['column'][] = "$t.pid=" . ($objProduct->hasVariantPrices() ? $objProduct->getId() : $objProduct->getProductId()); } + /** @var ProductPriceCollection $objResult */ $objResult = static::find($arrOptions); return (null === $objResult) ? null : $objResult->filterDuplicatesBy('pid'); diff --git a/system/modules/isotope/library/Isotope/Model/ProductType.php b/system/modules/isotope/library/Isotope/Model/ProductType.php index 27e624a373..9f5a613879 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductType.php +++ b/system/modules/isotope/library/Isotope/Model/ProductType.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -16,24 +15,24 @@ /** * ProductType defines a product configuration * - * @property int id - * @property int tstamp - * @property string name - * @property string class - * @property bool fallback - * @property string description - * @property bool prices - * @property bool show_price_tiers - * @property string list_template - * @property string reader_template - * @property int list_gallery - * @property int reader_gallery - * @property array attributes - * @property bool variants - * @property array variant_attributes - * @property bool force_variant_options - * @property bool shipping_exempt - * @property bool downloads + * @property int $id + * @property int $tstamp + * @property string $name + * @property string $class + * @property bool $fallback + * @property string $description + * @property bool $prices + * @property bool $show_price_tiers + * @property string $list_template + * @property string $reader_template + * @property int $list_gallery + * @property int $reader_gallery + * @property array $attributes + * @property bool $variants + * @property array $variant_attributes + * @property bool $force_variant_options + * @property bool $shipping_exempt + * @property bool $downloads */ class ProductType extends \Model { @@ -144,7 +143,7 @@ public function getVariantAttributes() { if (null === $this->arrVariantAttributes) { if (!$this->hasVariants()) { - $this->arrVariantAttributes = array(); + $this->arrVariantAttributes = []; } else { $this->arrVariantAttributes = $this->getEnabledAttributesByPosition($this->variant_attributes); } @@ -166,14 +165,10 @@ protected function getEnabledAttributesByPosition($varValue) $arrAttributes = deserialize($varValue, true); $arrAttributes = array_filter($arrAttributes, function ($a) use ($arrFields) { - if ($a['enabled'] + return ($a['enabled'] && is_array($arrFields[$a['name']]) && $arrFields[$a['name']]['attributes']['legend'] != '' - ) { - return true; - } - - return false; + ); }); uasort($arrAttributes, function ($a, $b) { diff --git a/system/modules/isotope/library/Isotope/Model/RelatedCategory.php b/system/modules/isotope/library/Isotope/Model/RelatedCategory.php index 9ce9c5b1a8..84f1a14f8c 100644 --- a/system/modules/isotope/library/Isotope/Model/RelatedCategory.php +++ b/system/modules/isotope/library/Isotope/Model/RelatedCategory.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/RelatedProduct.php b/system/modules/isotope/library/Isotope/Model/RelatedProduct.php index 8c782ffc5c..fe71df5b37 100644 --- a/system/modules/isotope/library/Isotope/Model/RelatedProduct.php +++ b/system/modules/isotope/library/Isotope/Model/RelatedProduct.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -18,8 +17,11 @@ /** * RelatedProduct holds array of related products * - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp + * @property int $pid + * @property int $tstamp + * @property int $sorting + * @property int $category + * @property string $products */ class RelatedProduct extends \Model { @@ -30,13 +32,14 @@ class RelatedProduct extends \Model */ protected static $strTable = 'tl_iso_related_product'; - /** * Find related products of a product - * @param IsotopeProduct - * @param array - * @param array - * @return \Model\Collection|null + * + * @param IsotopeProduct $objProduct + * @param array $arrCategories + * @param array $arrOptions + * + * @return \Model\Collection|null */ public static function findByProductAndCategories(IsotopeProduct $objProduct, array $arrCategories, array $arrOptions = array()) { @@ -44,7 +47,7 @@ public static function findByProductAndCategories(IsotopeProduct $objProduct, ar $arrOptions = array_merge( array( - 'column' => array("$t.pid=?", "$t.category IN (" . implode(',', $arrCategories) . ")"), + 'column' => array("$t.pid=?", "$t.category IN (" . implode(',', $arrCategories) . ')'), 'value' => array($objProduct->getProductId()), 'order' => \Database::getInstance()->findInSet("$t.category", $arrCategories), 'return' => 'Collection' diff --git a/system/modules/isotope/library/Isotope/Model/RequestCache.php b/system/modules/isotope/library/Isotope/Model/RequestCache.php index 3255771940..8f30d93c2c 100644 --- a/system/modules/isotope/library/Isotope/Model/RequestCache.php +++ b/system/modules/isotope/library/Isotope/Model/RequestCache.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -16,6 +15,7 @@ use Isotope\RequestCache\Limit; use Isotope\RequestCache\FilterQueryBuilder; use Isotope\RequestCache\Sort; +use Model\Registry; /** * Isotope\Model\RequestCache represents an Isotope request cache model @@ -398,7 +398,7 @@ public function getFirstLimitForModules(array $arrIds, $intDefault = 0) */ public function save() { - if ($this->isModified() && \Model\Registry::getInstance()->isRegistered($this)) { + if ($this->isModified() && Registry::getInstance()->isRegistered($this)) { throw new \BadMethodCallException('Can\'t save a modified cache'); } @@ -464,9 +464,9 @@ public function setRow(array $arrData) protected function preSave(array $arrSet) { $arrSet['config'] = array( - 'filters' => (empty($this->arrFilters) ? null : $this->arrFilters), - 'sortings' => (empty($this->arrSortings) ? null : $this->arrSortings), - 'limits' => (empty($this->arrLimits) ? null : $this->arrLimits) + 'filters' => empty($this->arrFilters) ? null : $this->arrFilters, + 'sortings' => empty($this->arrSortings) ? null : $this->arrSortings, + 'limits' => empty($this->arrLimits) ? null : $this->arrLimits ); return $arrSet; @@ -528,4 +528,4 @@ public static function buildSqlFilters(array $arrFilters) return array($queryBuilder->getFilters(), $queryBuilder->getSqlWhere(), $queryBuilder->getSqlValues()); } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/Model/Shipping.php b/system/modules/isotope/library/Isotope/Model/Shipping.php index dde517c171..c86384d87d 100644 --- a/system/modules/isotope/library/Isotope/Model/Shipping.php +++ b/system/modules/isotope/library/Isotope/Model/Shipping.php @@ -3,19 +3,19 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; use Haste\Units\Mass\Weight; +use Isotope\Frontend; use Isotope\Interfaces\IsotopeProductCollection; +use Isotope\Interfaces\IsotopeShipping; use Isotope\Isotope; -use Isotope\Model\ProductCollectionSurcharge; use Isotope\Translation; @@ -48,8 +48,10 @@ * @property array $groups * @property bool $enabled */ -abstract class Shipping extends TypeAgent +abstract class Shipping extends TypeAgent implements IsotopeShipping { + const QUANTITY_MODE_ITEMS = 'cart_items'; + const QUANTITY_MODE_PRODUCTS = 'cart_products'; /** * Table name @@ -77,9 +79,18 @@ abstract class Shipping extends TypeAgent /** - * Return true or false depending on if shipping method is available - * @return bool - * @todo must check availability for a specific product collection (and not hardcoded to the current cart) + * @inheritdoc + */ + public function getId() + { + return (int) $this->id; + } + + /** + * @inheritdoc + * + * @throws \InvalidArgumentException on unknown quantity mode + * @throws \UnexpectedValueException on unknown product type condition */ public function isAvailable() { @@ -123,16 +134,17 @@ public function isAvailable() } if ($this->minimum_quantity > 0 || $this->maximum_quantity > 0) { - $quantity = 0; + switch ($this->quantity_mode) { + case static::QUANTITY_MODE_ITEMS: + $quantity = Isotope::getCart()->sumItemsQuantity(); + break; - if ('cart_items' !== $this->quantity_mode && 'cart_products' !== $this->quantity_mode) { - throw new \InvalidArgumentException(sprintf('Unknown quantity mode "%s"', $this->quantity_mode)); - } + case static::QUANTITY_MODE_PRODUCTS: + $quantity = Isotope::getCart()->countItems(); + break; - foreach (Isotope::getCart()->getItems() as $item) { - if (!$item->hasProduct() || !$item->getProduct()->isExemptFromShipping()) { - $quantity += ('cart_items' === $this->quantity_mode ? $item->quantity : 1); - } + default: + throw new \InvalidArgumentException(sprintf('Unknown quantity mode "%s"', $this->quantity_mode)); } if (($this->minimum_quantity > 0 && $this->minimum_quantity > $quantity) @@ -151,14 +163,14 @@ public function isAvailable() $arrCountries = deserialize($this->countries); if (is_array($arrCountries) && !empty($arrCountries)) { - if (!in_array($objAddress->country, $arrCountries)) { + if (!in_array($objAddress->country, $arrCountries, true)) { return false; } $arrSubdivisions = deserialize($this->subdivisions); if (is_array($arrSubdivisions) && !empty($arrSubdivisions) - && !in_array($objAddress->subdivision, $arrSubdivisions) + && !in_array($objAddress->subdivision, $arrSubdivisions, true) ) { return false; } @@ -166,25 +178,26 @@ public function isAvailable() // Check if address has a valid postal code if ($this->postalCodes != '') { - $arrCodes = \Isotope\Frontend::parsePostalCodes($this->postalCodes); + $arrCodes = Frontend::parsePostalCodes($this->postalCodes); if (!in_array($objAddress->postal, $arrCodes)) { return false; } } - if ($this->product_types_condition != 'calculation') { + if ('calculation' !== $this->product_types_condition) { $arrConfigTypes = deserialize($this->product_types); - if (is_array($arrConfigTypes) && !empty($arrConfigTypes)) { + if (is_array($arrConfigTypes) && count($arrConfigTypes) > 0) { $arrItems = Isotope::getCart()->getItems(); $arrItemTypes = array(); foreach ($arrItems as $objItem) { if ($objItem->hasProduct()) { - $arrItemTypes[] = $objItem->getProduct()->type; + $productType = $objItem->getProduct()->getType(); + $arrItemTypes[] = null === $productType ? 0 : (int) $productType->id; - } elseif ($this->product_types_condition == 'onlyAvailable') { + } elseif ('onlyAvailable' === $this->product_types_condition) { // If one product in cart is not of given type, shipping method is not available return false; } @@ -194,22 +207,13 @@ public function isAvailable() switch ($this->product_types_condition) { case 'onlyAvailable': - if (count(array_diff($arrItemTypes, $arrConfigTypes)) > 0) { - return false; - } - break; + return 0 === count(array_diff($arrItemTypes, $arrConfigTypes)); case 'oneAvailable': - if (count(array_intersect($arrConfigTypes, $arrItemTypes)) == 0) { - return false; - } - break; + return count(array_intersect($arrConfigTypes, $arrItemTypes)) > 0; case 'allAvailable': - if (count(array_intersect($arrConfigTypes, $arrItemTypes)) != count($arrConfigTypes)) { - return false; - } - break; + return count(array_intersect($arrConfigTypes, $arrItemTypes)) === count($arrConfigTypes); default: throw new \UnexpectedValueException( @@ -223,18 +227,17 @@ public function isAvailable() } /** - * Return true if the shipping has a percentage (not fixed) amount - * @return bool + * @inheritdoc */ public function isPercentage() { - return (substr($this->arrData['price'], -1) == '%') ? true : false; + return '%' === substr($this->arrData['price'], -1); } /** - * Return percentage amount (if applicable) - * @return float - * @throws \UnexpectedValueException + * @inheritdoc + * + * @throws \UnexpectedValueException if the shipping methods does not have a percentage amount. */ public function getPercentage() { @@ -246,18 +249,15 @@ public function getPercentage() } /** - * Return percentage label if price is percentage - * @return string + * @inheritdoc */ public function getPercentageLabel() { return $this->isPercentage() ? $this->arrData['price'] : ''; } - /** - * Return calculated price for this shipping method - * @return float + * @inheritdoc */ public function getPrice(IsotopeProductCollection $objCollection = null) { @@ -274,22 +274,24 @@ public function getPrice(IsotopeProductCollection $objCollection = null) return Isotope::calculatePrice($fltPrice, $this, 'price', $this->arrData['tax_class']); } - /** - * Return translated label for this shipping method - * @return string + * @inheritdoc */ public function getLabel() { return Translation::get($this->label ? : $this->name); } + /** + * @inheritdoc + */ + public function getNote() + { + return $this->note; + } /** - * Return information or advanced features in the backend. - * Use this function to present advanced features or basic shipping information for an order in the backend. - * @param integer - * @return string + * @inheritdoc */ public function backendInterface($orderId) { @@ -298,7 +300,7 @@ public function backendInterface($orderId) ' . $GLOBALS['TL_LANG']['MSC']['backBT'] . '
-

' . $this->name . ' (' . $GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping.'.$this->type][0] . ')' . '

+

' . $this->name . ' (' . $GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping'][$this->type][0] . ')' . '

@@ -307,22 +309,16 @@ public function backendInterface($orderId)
'; } - /** - * Return the checkout review information. - * - * Use this to return custom checkout information about this shipping module. - * Example: Information about tracking codes. - * @return string + * @inheritdoc */ public function checkoutReview() { return $this->getLabel(); } - /** - * Get the checkout surcharge for this shipping method + * @inheritdoc */ public function getSurcharge(IsotopeProductCollection $objCollection) { diff --git a/system/modules/isotope/library/Isotope/Model/Shipping/Flat.php b/system/modules/isotope/library/Isotope/Model/Shipping/Flat.php index f7f5f6bc26..1a63b64c83 100644 --- a/system/modules/isotope/library/Isotope/Model/Shipping/Flat.php +++ b/system/modules/isotope/library/Isotope/Model/Shipping/Flat.php @@ -3,32 +3,27 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Shipping; use Isotope\Interfaces\IsotopeProductCollection; -use Isotope\Interfaces\IsotopeShipping; use Isotope\Isotope; use Isotope\Model\Shipping; - /** * Class Flat * * @property string flatCalculation */ -class Flat extends Shipping implements IsotopeShipping +class Flat extends Shipping { - /** - * Return calculated price for this shipping method - * @return float + * @inheritdoc */ public function getPrice(IsotopeProductCollection $objCollection = null) { @@ -42,23 +37,28 @@ public function getPrice(IsotopeProductCollection $objCollection = null) $fltPrice = (float) $this->arrData['price']; } - if ($this->flatCalculation == 'perProduct' || $this->flatCalculation == 'perItem') { - $arrItems = $objCollection->getItems(); - $arrProductTypes = deserialize($this->product_types); + if ('perProduct' === $this->flatCalculation || 'perItem' === $this->flatCalculation) { + $arrItems = $objCollection->getItems(); $intMultiplier = 0; foreach ($arrItems as $objItem) { - if (!$objItem->hasProduct() - || $objItem->getProduct()->isExemptFromShipping() - || ($this->product_types_condition == 'calculation' && !in_array($objItem->getProduct()->type, $arrProductTypes)) - ) { + if (!$objItem->hasProduct() || $objItem->getProduct()->isExemptFromShipping()) { continue; } - $intMultiplier += ($this->flatCalculation == 'perProduct') ? 1 : $objItem->quantity; + if ('calculation' === $this->product_types_condition) { + $allowedTypes = deserialize($this->product_types); + $productType = $objItem->getProduct()->getType(); + + if (is_array($allowedTypes) || !in_array($productType->id, $allowedTypes, false)) { + continue; + } + } + + $intMultiplier += ('perProduct' === $this->flatCalculation) ? 1 : $objItem->quantity; } - $fltPrice = ($fltPrice * $intMultiplier); + $fltPrice *= $intMultiplier; } return Isotope::calculatePrice($fltPrice, $this, 'price', $this->arrData['tax_class']); diff --git a/system/modules/isotope/library/Isotope/Model/Shipping/Group.php b/system/modules/isotope/library/Isotope/Model/Shipping/Group.php index 6a1bc9c247..75ac1dfdf3 100644 --- a/system/modules/isotope/library/Isotope/Model/Shipping/Group.php +++ b/system/modules/isotope/library/Isotope/Model/Shipping/Group.php @@ -3,17 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\Shipping; use Isotope\Interfaces\IsotopeProductCollection; -use Isotope\Interfaces\IsotopeShipping; use Isotope\Model\Shipping; /** @@ -22,8 +20,12 @@ * @property array group_methods * @property string group_calculation */ -class Group extends Shipping implements IsotopeShipping +class Group extends Shipping { + const CALCULATE_FIRST = 'first'; + const CALCULATE_LOWEST = 'lowest'; + const CALCULATE_HIGHEST = 'highest'; + const CALCULATE_SUM = 'summarize'; /** * Shipping methods we're using @@ -73,10 +75,10 @@ public function getPrice(IsotopeProductCollection $objCollection = null) switch ($this->group_calculation) { default: - case 'first': + case self::CALCULATE_FIRST: return $this->arrMethods[0]->getPrice(); - case 'lowest': + case self::CALCULATE_LOWEST: $fltReturn = null; foreach ($this->arrMethods as $objMethod) { $fltPrice = $objMethod->getPrice(); @@ -87,7 +89,7 @@ public function getPrice(IsotopeProductCollection $objCollection = null) return ($fltReturn === null) ? 0 : $fltReturn; - case 'highest': + case self::CALCULATE_HIGHEST: $fltReturn = null; foreach ($this->arrMethods as $objMethod) { $fltPrice = $objMethod->getPrice(); @@ -98,7 +100,7 @@ public function getPrice(IsotopeProductCollection $objCollection = null) return ($fltReturn === null) ? 0 : $fltReturn; - case 'summarize': + case self::CALCULATE_SUM: $fltTotal = 0; foreach ($this->arrMethods as $objMethod) { $fltTotal += $objMethod->getPrice(); @@ -124,6 +126,7 @@ protected function getGroupMethods() unset($arrMethods[$key]); } + /** @var Shipping[] $objMethods */ if (($objMethods = Shipping::findMultipleByIds($arrMethods)) !== null) { foreach ($objMethods as $objMethod) { if ($objMethod->isAvailable()) { diff --git a/system/modules/isotope/library/Isotope/Model/TaxClass.php b/system/modules/isotope/library/Isotope/Model/TaxClass.php index fe16c20489..84d762ecfd 100644 --- a/system/modules/isotope/library/Isotope/Model/TaxClass.php +++ b/system/modules/isotope/library/Isotope/Model/TaxClass.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; diff --git a/system/modules/isotope/library/Isotope/Model/TaxRate.php b/system/modules/isotope/library/Isotope/Model/TaxRate.php index 2da70d745c..44ec477efe 100644 --- a/system/modules/isotope/library/Isotope/Model/TaxRate.php +++ b/system/modules/isotope/library/Isotope/Model/TaxRate.php @@ -3,15 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; +use Isotope\Frontend; use Isotope\Interfaces\IsotopeVatNoValidator; use Isotope\Isotope; use Isotope\Translation; @@ -110,7 +110,7 @@ public function isApplicable($fltPrice, $arrAddresses) // Check if address has a valid postal code if ($this->postalCodes != '') { - $arrCodes = \Isotope\Frontend::parsePostalCodes($this->postalCodes); + $arrCodes = Frontend::parsePostalCodes($this->postalCodes); if (!in_array($objAddress->postal, $arrCodes)) { continue; @@ -136,11 +136,11 @@ public function isApplicable($fltPrice, $arrAddresses) if (!empty($validators) && is_array($validators)) { foreach ($validators as $type) { - /** @type IsotopeVatNoValidator $service */ + /** @var IsotopeVatNoValidator $service */ $service = new $GLOBALS['ISO_VAT'][$type](); if ($service->exemptTax($objAddress, $this)) { - continue(2); + continue 2; } } } diff --git a/system/modules/isotope/library/Isotope/Model/TypeAgent.php b/system/modules/isotope/library/Isotope/Model/TypeAgent.php index 61f3aadd43..6032c48e81 100644 --- a/system/modules/isotope/library/Isotope/Model/TypeAgent.php +++ b/system/modules/isotope/library/Isotope/Model/TypeAgent.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -37,7 +36,11 @@ abstract class TypeAgent extends \Model */ protected static $strInterface; - + /** + * @inheritdoc + * + * @throws \RuntimeException if model does not have a valid type + */ public function __construct(\Database\Result $objResult = null) { parent::__construct($objResult); @@ -59,8 +62,10 @@ public function __construct(\Database\Result $objResult = null) /** * Register a model type * - * @param string $strName - * @param string $strClass + * @param string $strName + * @param string $strClass + * + * @throws \LogicException when called on the TypeAgent class */ public static function registerModelType($strName, $strClass) { @@ -74,7 +79,9 @@ public static function registerModelType($strName, $strClass) /** * Unregister a model type * - * @param string $strName + * @param string $strName + * + * @throws \LogicException when called on the TypeAgent class */ public static function unregisterModelType($strName) { @@ -87,7 +94,8 @@ public static function unregisterModelType($strName) /** * Get list of model types - * @return array + * + * @return array */ public static function getModelTypes() { @@ -97,9 +105,9 @@ public static function getModelTypes() /** * Get class name for given model type * - * @param string $strName + * @param string $strName * - * @return string + * @return string */ public static function getClassForModelType($strName) { @@ -109,14 +117,14 @@ public static function getClassForModelType($strName) /** * Return options list of model types * - * @return array + * @return array */ public static function getModelTypeOptions() { $arrOptions = array(); foreach (static::getModelTypes() as $strName => $strClass) { - $arrOptions[$strName] = $GLOBALS['TL_LANG']['MODEL'][static::$strTable . '.' . $strName][0] ? : $strName; + $arrOptions[$strName] = $GLOBALS['TL_LANG']['MODEL'][static::$strTable][$strName][0] ? : $strName; } return $arrOptions; @@ -125,9 +133,9 @@ public static function getModelTypeOptions() /** * Find sibling records by a column value * - * @param string - * @param \Model - * @param array + * @param string $strColumn + * @param \Model $objModel + * @param array $arrOptions * * @return \Model|\Model\Collection|null */ @@ -224,12 +232,12 @@ protected static function find(array $arrOptions) $objResult = static::postFind($objResult); - if ($arrOptions['return'] == 'Model') { + if ('Model' === $arrOptions['return']) { // @deprecated use static::createModelFromDbResult once we drop BC support for buildModelType return static::buildModelType($objResult); - } else { + } else { return static::createCollectionFromDbResult($objResult, static::$strTable); } } @@ -250,6 +258,7 @@ public static function createModelFromDbResult(\Database\Result $objResult) $arrRelations = $objRelations->getRelations(); if (isset($arrRelations['type'])) { + /** @var static $strTypeClass */ $strTypeClass = static::getClassFromTable($arrRelations['type']['table']); $objType = $strTypeClass::findOneBy($arrRelations['type']['field'], $objResult->type); @@ -283,10 +292,10 @@ public static function createModelFromDbResult(\Database\Result $objResult) /** * Create array of models and return a collection of them * - * @param \Database\Result $objResult - * @param string $strTable + * @param \Database\Result $objResult + * @param string $strTable * - * @return \Model\Collection + * @return \Model\Collection */ protected static function createCollectionFromDbResult(\Database\Result $objResult, $strTable = null) { @@ -316,7 +325,8 @@ protected static function createCollectionFromDbResult(\Database\Result $objResu * @param \Database\Result $objResult * * @return \Model - * @deprecated use createModelFromDbResult in Contao 3.3 + * + * @deprecated use createModelFromDbResult in Contao 3.3 */ public static function buildModelType(\Database\Result $objResult = null) { @@ -342,10 +352,11 @@ public static function buildModelType(\Database\Result $objResult = null) /** * Allow to override the query builder * - * @param array + * @param array $arrOptions + * + * @return string * - * @return string - * @deprecated use buildFindQuery introduced in Contao 3.3 + * @deprecated use buildFindQuery introduced in Contao 3.3 */ protected static function buildQueryString($arrOptions) { diff --git a/system/modules/isotope/library/Isotope/Module/AbstractProductCollection.php b/system/modules/isotope/library/Isotope/Module/AbstractProductCollection.php new file mode 100644 index 0000000000..0082cf1e3a --- /dev/null +++ b/system/modules/isotope/library/Isotope/Module/AbstractProductCollection.php @@ -0,0 +1,261 @@ +strFormId .= $this->id; + + return parent::generate(); + } + + /** + * @inheritdoc + */ + protected function compile() + { + $collection = $this->getCollection(); + + if (null === $collection) { + return; + } + + if ($collection->isEmpty()) { + $this->Template->empty = true; + $this->Template->type = 'empty'; + $this->Template->message = $this->iso_emptyMessage ? $this->iso_noProducts : $this->getEmptyMessage(); + + return; + } + + Isotope::setConfig($collection->getConfig()); + + $objTemplate = $this->getCollectionTemplate(); + + $collection->addToTemplate( + $objTemplate, + array( + 'module' => $this, + 'gallery' => $this->iso_gallery, + 'sorting' => ProductCollection::getItemsSortingCallable($this->iso_orderCollectionBy), + ) + ); + + $blnReload = false; + $arrQuantity = \Input::post('quantity'); + $arrItems = $objTemplate->items; + + if (!is_array($arrQuantity)) { + $arrQuantity = []; + } else { + $arrQuantity = array_filter( + $arrQuantity, + function ($v) { + return '' !== $v; + } + ); + } + + + foreach ($arrItems as $k => $data) { + /** @var ProductCollectionItem $item */ + $item = $data['item']; + + $arrItems[$k] = $this->updateItemTemplate($collection, $item, $data, $arrQuantity, $blnReload); + } + + // Must be before the reload because buttons can have actions + $buttons = $this->generateButtons(); + + // Reload the page if no button has handled it + if ($blnReload) { + if ($collection instanceof ProductCollection\Cart) { + // Unset payment and shipping method because they could get invalid due to the change + if (($objShipping = $collection->getShippingMethod()) !== null && !$objShipping->isAvailable()) { + $collection->setShippingMethod(null); + } + + if (($objPayment = $collection->getPaymentMethod()) !== null && !$objPayment->isAvailable()) { + $collection->setPaymentMethod(null); + } + } + + \Controller::reload(); + } + + $objTemplate->items = $arrItems; + $objTemplate->buttons = $buttons; + + $this->Template->empty = false; + $this->Template->collection = $collection; + $this->Template->products = $objTemplate->parse(); + } + + /** + * @return IsotopeProductCollection|null + */ + abstract protected function getCollection(); + + /** + * @return string + */ + abstract protected function getEmptyMessage(); + + /** + * @return bool + */ + abstract protected function canEditQuantity(); + + /** + * @return bool + */ + abstract protected function canRemoveProducts(); + + /** + * @return Template + */ + protected function getCollectionTemplate() + { + $template = new Template($this->iso_collectionTpl); + + $template->isEditable = $this->canEditQuantity(); + $template->linkProducts = true; + $template->formId = $this->strFormId; + $template->formSubmit = $this->strFormId; + $template->action = \Environment::get('request'); + + return $template; + } + + /** + * @param IsotopeProductCollection $collection + * @param array $data + * @param array $quantity + * @param bool $hasChanges + * + * @return array + */ + protected function updateItemTemplate( + IsotopeProductCollection $collection, + ProductCollectionItem $item, + array $data, + array $quantity, + &$hasChanges + ) { + // Update cart data if form has been submitted + if ($this->canEditQuantity() + && \Input::post('FORM_SUBMIT') === $this->strFormId + && array_key_exists($item->id, $quantity) + ) { + $hasChanges = true; + $collection->updateItemById($item->id, array('quantity' => $quantity[$item->id])); + + return $data; // no need to do anything else, we reload anyway + } + + if ($this->canRemoveProducts()) { + if ((int) \Input::get('remove') === (int) $item->id) { + $collection->deleteItemById($item->id); + \Controller::redirect(Url::removeQueryString(['remove'])); + } + + $data['remove_href'] = Url::addQueryString('remove=' . $item->id); + $data['remove_title'] = specialchars(sprintf($GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'], $data['name'])); + $data['remove_link'] = $GLOBALS['TL_LANG']['MSC']['removeProductLinkText']; + } + + return $data; + } + + /** + * Generate buttons for collection view template + * + * @param array $buttons + * + * @return array + */ + protected function generateButtons(array $buttons = []) + { + return $buttons; + } + + /** + * @param array $buttons + * @param string $name + * @param string $label + * @param \Closure|string $action + * @param array $additional + */ + protected function addButton(array &$buttons, $name, $label, $action = null, array $additional = []) + { + $button = array_merge( + [ + 'type' => 'submit', + 'name' => 'button_' . $name, + 'label' => $label, + ], + $additional + ); + + if (is_string($action)) { + $button['href'] = $action; + } + + if (null !== $action + && \Input::post('FORM_SUBMIT') === $this->strFormId + && '' !== (string) \Input::post('button_' . $name) + ) { + if (is_string($action)) { + \Controller::redirect($action); + } + + call_user_func($action, $button); + } + + $buttons[$name] = $button; + } +} diff --git a/system/modules/isotope/library/Isotope/Module/AbstractProductFilter.php b/system/modules/isotope/library/Isotope/Module/AbstractProductFilter.php index 4dbfa28b1d..b7e2bba0b0 100755 --- a/system/modules/isotope/library/Isotope/Module/AbstractProductFilter.php +++ b/system/modules/isotope/library/Isotope/Module/AbstractProductFilter.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -47,22 +46,20 @@ public function __construct($objModule, $strColumn = 'main') \Controller::loadDataContainer('tl_iso_product'); \System::loadLanguageFile('tl_iso_product'); + } - $this->iso_filterFields = deserialize($this->iso_filterFields); - $this->iso_sortingFields = deserialize($this->iso_sortingFields); - $this->iso_searchFields = deserialize($this->iso_searchFields); - - if (!is_array($this->iso_filterFields)) { - $this->iso_filterFields = array(); - } + /** + * @inheritdoc + */ + protected function getSerializedProperties() + { + $props = parent::getSerializedProperties(); - if (!is_array($this->iso_sortingFields)) { - $this->iso_sortingFields = array(); - } + $props[] = 'iso_filterFields'; + $props[] = 'iso_sortingFields'; + $props[] = 'iso_searchFields'; - if (!is_array($this->iso_searchFields)) { - $this->iso_searchFields = array(); - } + return $props; } /** @@ -232,7 +229,7 @@ private function getProductTypeIdsByAttribute($attributeName, $forVariants = fal static $cache; if (null === $cache) { - /** @type ProductType[] $productTypes */ + /** @var ProductType[] $productTypes */ $productTypes = ProductType::findAll(); $cache = array(); diff --git a/system/modules/isotope/library/Isotope/Module/AddressBook.php b/system/modules/isotope/library/Isotope/Module/AddressBook.php index 38ab6c8a49..dd1f62eb11 100755 --- a/system/modules/isotope/library/Isotope/Module/AddressBook.php +++ b/system/modules/isotope/library/Isotope/Module/AddressBook.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -17,6 +16,7 @@ use Isotope\Isotope; use Isotope\Model\Address; use Isotope\Model\Config; +use Isotope\Template; use NotificationCenter\Model\Notification; /** @@ -56,16 +56,8 @@ class AddressBook extends Module */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: ADDRESS BOOK ###'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } if (FE_USER_LOGGED_IN !== true) { @@ -75,7 +67,7 @@ public function generate() $this->arrFields = array_unique(array_merge(Isotope::getConfig()->getBillingFields(), Isotope::getConfig()->getShippingFields())); // Return if there are not editable fields - if (empty($this->arrFields)) { + if (0 === count($this->arrFields)) { return ''; } @@ -91,7 +83,7 @@ protected function compile() $table = Address::getTable(); \System::loadLanguageFile($table); - $this->loadDataContainer($table); + \Controller::loadDataContainer($table); // Call onload_callback (e.g. to check permissions) if (is_array($GLOBALS['TL_DCA'][$table]['config']['onload_callback'])) { @@ -134,30 +126,30 @@ protected function compile() */ protected function show() { - /** @type \PageModel $objPage */ + /** @var \PageModel $objPage */ global $objPage; - $arrAddresses = array(); + $arrAddresses = []; $strUrl = \Controller::generateFrontendUrl($objPage->row()) . ($GLOBALS['TL_CONFIG']['disableAlias'] ? '&' : '?'); - /** @type Address[] $objAddresses */ + /** @var Address[] $objAddresses */ $objAddresses = Address::findForMember(\FrontendUser::getInstance()->id); if (null !== $objAddresses) { foreach ($objAddresses as $objAddress) { $arrAddresses[] = array_merge($objAddress->row(), array( 'id' => $objAddress->id, - 'class' => (($objAddress->isDefaultBilling ? 'default_billing' : '') . ($objAddress->isDefaultShipping ? ' default_shipping' : '')), + 'class' => ($objAddress->isDefaultBilling ? 'default_billing' : '') . ($objAddress->isDefaultShipping ? ' default_shipping' : ''), 'text' => $objAddress->generate(), 'edit_url' => ampersand($strUrl . 'act=edit&address=' . $objAddress->id), 'delete_url' => ampersand($strUrl . 'act=delete&address=' . $objAddress->id), - 'default_billing' => ($objAddress->isDefaultBilling ? true : false), - 'default_shipping' => ($objAddress->isDefaultShipping ? true : false), + 'default_billing' => $objAddress->isDefaultBilling ? true : false, + 'default_shipping' => $objAddress->isDefaultShipping ? true : false, )); } } - if (empty($arrAddresses)) { + if (0 === count($arrAddresses)) { $this->Template->mtype = 'empty'; $this->Template->message = $GLOBALS['TL_LANG']['ERR']['noAddressBookEntries']; } @@ -183,26 +175,31 @@ protected function edit($intAddressId = 0) $table = Address::getTable(); \System::loadLanguageFile(\MemberModel::getTable()); - $this->Template = new \Isotope\Template($this->memberTpl); + $this->Template = new Template($this->memberTpl); $this->Template->hasError = false; $this->Template->slabel = specialchars($GLOBALS['TL_LANG']['MSC']['saveData']); if ($intAddressId === 0) { - $objAddress = Address::createForMember(\FrontendUser::getInstance()->id); + $objAddress = Address::createForMember(\FrontendUser::getInstance()->id, ['country']); } else { $objAddress = Address::findOneForMember($intAddressId, \FrontendUser::getInstance()->id); } if (null === $objAddress) { - /** @type \PageModel $objPage */ + /** @var \PageModel $objPage */ global $objPage; \Controller::redirect(\Controller::generateFrontendUrl($objPage->row())); } - $objForm = new Form($table . '_' . $this->id, 'POST', function(Form $objForm) { - return \Input::post('FORM_SUBMIT') === $objForm->getFormId(); - }, (boolean) $this->tableless); + $objForm = new Form( + $table . '_' . $this->id, + 'POST', + function(Form $objForm) { + return \Input::post('FORM_SUBMIT') === $objForm->getFormId(); + }, + isset($this->tableless) ? (bool) $this->tableless : true + ); $objForm->bindModel($objAddress); @@ -210,17 +207,17 @@ protected function edit($intAddressId = 0) $arrFields = $this->arrFields; $objForm->addFieldsFromDca($table, function ($strName, &$arrDca) use ($arrFields) { - if (!in_array($strName, $arrFields) || !$arrDca['eval']['feEditable']) { + if (!in_array($strName, $arrFields, true) || !$arrDca['eval']['feEditable']) { return false; } // Map checkboxWizard to regular checkbox widget - if ($arrDca['inputType'] == 'checkboxWizard') { + if ('checkboxWizard' === $arrDca['inputType']) { $arrDca['inputType'] = 'checkbox'; } // Special field "country" - if ($strName == 'country') { + if ('country' === $strName) { $arrCountries = array_merge(Isotope::getConfig()->getBillingCountries(), Isotope::getConfig()->getShippingCountries()); $arrDca['reference'] = $arrDca['options']; $arrDca['options'] = array_values(array_intersect(array_keys($arrDca['options']), $arrCountries)); @@ -243,10 +240,20 @@ protected function edit($intAddressId = 0) } } + // HOOK: address data has been updated + if (isset($GLOBALS['ISO_HOOKS']['updateAddressData']) + && is_array($GLOBALS['ISO_HOOKS']['updateAddressData']) + ) { + foreach ($GLOBALS['ISO_HOOKS']['updateAddressData'] as $callback) { + $objCallback = \System::importStatic($callback[0]); + $objCallback->{$callback[1]}($objAddress, $arrOldAddress, $this); + } + } + // Send notifications $this->triggerNotificationCenter($objAddress, $arrOldAddress, \FrontendUser::getInstance(), Isotope::getConfig()); - /** @type \PageModel $objPage */ + /** @var \PageModel $objPage */ global $objPage; \Controller::redirect(\Controller::generateFrontendUrl($objPage->row())); @@ -277,7 +284,7 @@ protected function edit($intAddressId = 0) foreach ($arrGroups as $k => $v) { $this->Template->$k = $v; // backwards compatibility - $key = $k . (($k == 'personal') ? 'Data' : 'Details'); + $key = $k . (('personal' === $k) ? 'Data' : 'Details'); $categories[$GLOBALS['TL_LANG']['tl_member'][$key]] = $v; } @@ -302,7 +309,7 @@ protected function triggerNotificationCenter(Address $objAddress, array $arrOldA return; } - /** @type Notification $objNotification */ + /** @var Notification $objNotification */ $objNotification = Notification::findByPk($this->nc_notification); if (null === $objNotification) { @@ -345,7 +352,7 @@ protected function delete($intAddressId) $objAddress->delete(); } - /** @type \PageModel $objPage */ + /** @var \PageModel $objPage */ global $objPage; \Controller::redirect(\Controller::generateFrontendUrl($objPage->row())); diff --git a/system/modules/isotope/library/Isotope/Module/Cart.php b/system/modules/isotope/library/Isotope/Module/Cart.php index 64b29d3278..f48c02a5ef 100755 --- a/system/modules/isotope/library/Isotope/Module/Cart.php +++ b/system/modules/isotope/library/Isotope/Module/Cart.php @@ -3,28 +3,28 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; +use Haste\Util\Url; +use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; - +use Isotope\Model\ProductCollectionItem; /** - * Class Cart - * - * Front end module Isotope "cart". - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss - * @author Christian de la Haye + * @property bool $iso_continueShopping + * @property int $iso_cart_jumpTo + * @property int $iso_checkout_jumpTo + * @property int $iso_gallery + * @property string $iso_collectionTpl + * @property string $iso_orderCollectionBy */ -class Cart extends Module +class Cart extends AbstractProductCollection { /** @@ -34,197 +34,129 @@ class Cart extends Module protected $strTemplate = 'mod_iso_cart'; /** - * Disable caching of the frontend page if this module is in use. - * @var boolean - */ - protected $blnDisableCache = true; - - /** - * FORM_SUBMIT value for this module + * Override parent variable for BC reasons * @var string */ protected $strFormId = 'iso_cart_update_'; - /** - * Display a wildcard in the back end - * @return string + * @inheritdoc */ - public function generate() + protected function compile() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); + parent::compile(); - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: CART ###'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; + $strCustom = ''; - return $objTemplate->parse(); + if (isset($GLOBALS['ISO_HOOKS']['compileCart']) && is_array($GLOBALS['ISO_HOOKS']['compileCart'])) { + foreach ($GLOBALS['ISO_HOOKS']['compileCart'] as $callback) { + $objCallback = \System::importStatic($callback[0]); + $strCustom .= $objCallback->{$callback[1]}($this); + } } - // Add current module ID to FORM_SUBMIT - $this->strFormId .= $this->id; - - return parent::generate(); + $this->Template->custom = $strCustom; } - /** - * Generate module + * @return IsotopeProductCollection */ - protected function compile() + protected function getCollection() { - if (Isotope::getCart()->isEmpty()) { - $this->Template->empty = true; - $this->Template->type = 'empty'; - $this->Template->message = $this->iso_emptyMessage ? $this->iso_noProducts : $GLOBALS['TL_LANG']['MSC']['noItemsInCart']; - - return; - } - - // Remove from cart - if (\Input::get('remove') > 0 && Isotope::getCart()->deleteItemById((int) \Input::get('remove'))) { - \Controller::redirect(preg_replace('/([?&])remove=[^&]*(&|$)/', '$1', \Environment::get('request'))); - } - - $objTemplate = new \Isotope\Template($this->iso_collectionTpl); - - Isotope::getCart()->addToTemplate( - $objTemplate, - array( - 'gallery' => $this->iso_gallery, - 'sorting' => Isotope::getCart()->getItemsSortingCallable($this->iso_orderCollectionBy), - ) - ); - - $blnReload = false; - $arrQuantity = \Input::post('quantity'); - $arrItems = $objTemplate->items; - - foreach ($arrItems as $k => $arrItem) { - - // Update cart data if form has been submitted - if (\Input::post('FORM_SUBMIT') == $this->strFormId && is_array($arrQuantity) && isset($arrQuantity[$arrItem['id']])) { - $blnReload = true; - Isotope::getCart()->updateItemById($arrItem['id'], array('quantity' => $arrQuantity[$arrItem['id']])); - continue; // no need to generate $arrProductData, we reload anyway - } - - - $arrItem['remove_href'] = \Haste\Util\Url::addQueryString('remove=' . $arrItem['id']); - $arrItem['remove_title'] = specialchars(sprintf($GLOBALS['TL_LANG']['MSC']['removeProductLinkTitle'], $arrItem['name'])); - $arrItem['remove_link'] = $GLOBALS['TL_LANG']['MSC']['removeProductLinkText']; - - $arrItems[$k] = $arrItem; - } - - $arrButtons = $this->generateButtons(); - - // Reload the page if no button has handled it - if ($blnReload) { - - // Unset payment and shipping method because they could get invalid due to the change - // @todo change this to check availability, but that's an API/BC break - if (($objShipping = Isotope::getCart()->getShippingMethod()) !== null && !$objShipping->isAvailable()) { - Isotope::getCart()->setShippingMethod(null); - } + return Isotope::getCart(); + } - if (($objPayment = Isotope::getCart()->getPaymentMethod()) !== null && !$objPayment->isAvailable()) { - Isotope::getCart()->setPaymentMethod(null); - } + /** + * @return string + */ + protected function getEmptyMessage() + { + return $GLOBALS['TL_LANG']['MSC']['noItemsInCart']; + } - \Controller::reload(); - } + /** + * @return bool + */ + protected function canEditQuantity() + { + return true; + } - $objTemplate->items = $arrItems; - $objTemplate->isEditable = true; - $objTemplate->linkProducts = true; - $objTemplate->formId = $this->strFormId; - $objTemplate->formSubmit = $this->strFormId; - $objTemplate->action = \Environment::get('request'); - $objTemplate->buttons = $arrButtons; + /** + * @return bool + */ + protected function canRemoveProducts() + { + return true; + } - // HOOK: order status has been updated - $strCustom = ''; - if (isset($GLOBALS['ISO_HOOKS']['compileCart']) && is_array($GLOBALS['ISO_HOOKS']['compileCart'])) { - foreach ($GLOBALS['ISO_HOOKS']['compileCart'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $strCustom .= $objCallback->{$callback[1]}($this); - } + /** + * @param IsotopeProductCollection $collection + * @param array $data + * @param array $quantity + * @param bool $hasChanges + * + * @return array + */ + protected function updateItemTemplate( + IsotopeProductCollection $collection, + ProductCollectionItem $item, + array $data, + array $quantity, + &$hasChanges + ) { + $data = parent::updateItemTemplate($collection, $item, $data, $quantity, $hasChanges); + + if (isset($data['configuration'])) { + list($baseUrl,) = explode('?', $data['href'], 2); + $data['edit_href'] = Url::addQueryString('collection_item=' . $item->id, $baseUrl); + $data['edit_title'] = specialchars(sprintf($GLOBALS['TL_LANG']['MSC']['editProductLinkTitle'], $data['name'])); + $data['edit_link'] = $GLOBALS['TL_LANG']['MSC']['editProductLinkText']; } - $this->Template->empty = false; - $this->Template->collection = Isotope::getCart(); - $this->Template->products = $objTemplate->parse(); - $this->Template->custom = $strCustom; + return $data; } /** - * Generate buttons for cart template - * @return array + * @inheritdoc */ - protected function generateButtons() + protected function generateButtons(array $buttons = []) { - $arrButtons = array(); - // Add "update cart" button - $arrButtons['update'] = array( - 'type' => 'submit', - 'name' => 'button_update', - 'label' => $GLOBALS['TL_LANG']['MSC']['updateCartBT'], - ); + $this->addButton($buttons, 'update', $GLOBALS['TL_LANG']['MSC']['updateCartBT']); // Add button to cart button (usually if not on the cart page) - if ($this->iso_cart_jumpTo > 0) { - $objJumpToCart = \PageModel::findByPk($this->iso_cart_jumpTo); - - if (null !== $objJumpToCart) { - $arrButtons['cart'] = array( - 'type' => 'submit', - 'name' => 'button_cart', - 'label' => $GLOBALS['TL_LANG']['MSC']['cartBT'], - 'href' => \Controller::generateFrontendUrl($objJumpToCart->row()), - ); - - if (\Input::post('FORM_SUBMIT') == $this->strFormId && \Input::post('button_cart') != '') { - $this->jumpToOrReload($this->iso_cart_jumpTo); - } - } + if ($this->iso_cart_jumpTo > 0 && ($jumpToCart = \PageModel::findByPk($this->iso_cart_jumpTo)) !== null) { + $this->addButton( + $buttons, + 'cart', + $GLOBALS['TL_LANG']['MSC']['cartBT'], + $jumpToCart->getFrontendUrl() + ); } // Add button to checkout page - if ($this->iso_checkout_jumpTo > 0 && !Isotope::getCart()->hasErrors()) { - $objJumpToCheckout = \PageModel::findByPk($this->iso_checkout_jumpTo); - - if (null !== $objJumpToCheckout) { - $arrButtons['checkout'] = array( - 'type' => 'submit', - 'name' => 'button_checkout', - 'label' => $GLOBALS['TL_LANG']['MSC']['checkoutBT'], - 'href' => \Controller::generateFrontendUrl($objJumpToCheckout->row()), - ); - - if (\Input::post('FORM_SUBMIT') == $this->strFormId && \Input::post('button_checkout') != '') { - $this->jumpToOrReload($this->iso_checkout_jumpTo); - } - } + if ($this->iso_checkout_jumpTo > 0 + && !Isotope::getCart()->hasErrors() + && ($jumpToCheckout = \PageModel::findByPk($this->iso_checkout_jumpTo)) !== null + ) { + $this->addButton( + $buttons, + 'checkout', + $GLOBALS['TL_LANG']['MSC']['checkoutBT'], + $jumpToCheckout->getFrontendUrl() + ); } - if ($this->iso_continueShopping && $this->Input->get('continue') != '') { - $arrButtons['continue'] = array( - 'type' => 'submit', - 'name' => 'button_continue', - 'label' => $GLOBALS['TL_LANG']['MSC']['continueShoppingBT'], - 'href' => ampersand(base64_decode($this->Input->get('continue', true))), + if ($this->iso_continueShopping && \Input::get('continue') != '') { + $this->addButton( + $buttons, + 'continue', + $GLOBALS['TL_LANG']['MSC']['continueShoppingBT'], + ampersand(base64_decode(\Input::get('continue', true))) ); - - if (\Input::post('FORM_SUBMIT') == $this->strFormId && \Input::post('button_continue') != '') { - \Controller::redirect($arrButtons['continue']['href']); - } } - return $arrButtons; + return $buttons; } } diff --git a/system/modules/isotope/library/Isotope/Module/CartAddress.php b/system/modules/isotope/library/Isotope/Module/CartAddress.php index f661058ed6..9bc0bf5611 100644 --- a/system/modules/isotope/library/Isotope/Module/CartAddress.php +++ b/system/modules/isotope/library/Isotope/Module/CartAddress.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -16,7 +15,9 @@ use Isotope\Isotope; use Isotope\Model\Address; - +/** + * CartAddress frontend modules allows to set the billing and shipping address for current cart. + */ class CartAddress extends Module { @@ -27,28 +28,29 @@ class CartAddress extends Module protected $strTemplate = 'member_default'; /** - * Display a wildcard in the back end - * @return string + * @inheritDoc */ - public function generate() + protected function getSerializedProperties() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); + $props = parent::getSerializedProperties(); - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: CART ADDRESS ###'; + $props[] = 'iso_address'; + $props[] = 'iso_addressFields'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; + return $props; + } - return $objTemplate->parse(); + /** + * Display a wildcard in the back end + * @return string + */ + public function generate() + { + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } - $this->iso_address = deserialize($this->iso_address, true); - $this->iso_addressFields = deserialize($this->iso_addressFields, true); - - if (empty($this->iso_address) || empty($this->iso_addressFields)) { + if (0 === count($this->iso_address) || 0 === count($this->iso_addressFields)) { return ''; } @@ -83,20 +85,24 @@ protected function compile() } $arrFields = $this->iso_addressFields; - $useBilling = in_array('billing', $this->iso_address); + $useBilling = in_array('billing', $this->iso_address, true); $objAddress = $this->getDefaultAddress($useBilling); - $objForm = new Form('iso_cart_address_' . $this->id, 'POST', function($objHaste) { - /** @type Form $objHaste */ - return \Input::post('FORM_SUBMIT') === $objHaste->getFormId(); - }, (boolean) $this->tableless); + $objForm = new Form( + 'iso_cart_address_' . $this->id, + 'POST', + function(Form $objHaste) { + return \Input::post('FORM_SUBMIT') === $objHaste->getFormId(); + }, + isset($this->tableless) ? (bool) $this->tableless : true + ); $objForm->bindModel($objAddress); // Add form fields $objForm->addFieldsFromDca($table, function ($strName, &$arrDca) use ($arrFields, $useBilling) { - if (!in_array($strName, $arrFields) + if (!in_array($strName, $arrFields, true) || !$arrDca['eval']['feEditable'] || ($arrDca['eval']['membersOnly'] && FE_USER_LOGGED_IN !== true) ) { @@ -104,7 +110,7 @@ protected function compile() } // Special field "country" - if ($strName == 'country') { + if ('country' === $strName) { if ($useBilling) { $arrCountries = Isotope::getConfig()->getBillingCountries(); $arrDca['default'] = Isotope::getConfig()->billing_country; @@ -147,7 +153,7 @@ protected function compile() } // Set the shipping address - if (in_array('shipping', $this->iso_address)) { + if (in_array('shipping', $this->iso_address, true)) { $objCart->setShippingAddress($objAddress); } @@ -175,7 +181,7 @@ protected function compile() foreach ($arrGroups as $k => $v) { $this->Template->$k = $v; // backwards compatibility - $key = $k . (($k == 'personal') ? 'Data' : 'Details'); + $key = $k . (('personal' === $k) ? 'Data' : 'Details'); $categories[$GLOBALS['TL_LANG']['tl_member'][$key]] = $v; } diff --git a/system/modules/isotope/library/Isotope/Module/Checkout.php b/system/modules/isotope/library/Isotope/Module/Checkout.php index 090825ec33..1a5e182598 100755 --- a/system/modules/isotope/library/Isotope/Module/Checkout.php +++ b/system/modules/isotope/library/Isotope/Module/Checkout.php @@ -3,28 +3,42 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; use Haste\Generator\RowClass; +use Haste\Input\Input; +use Haste\Util\Url; use Isotope\Interfaces\IsotopeCheckoutStep; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Isotope; use Isotope\Model\ProductCollection\Order; +use Isotope\Template; /** * Class ModuleIsotopeCheckout * Front end module Isotope "checkout". + * + * @property array $iso_payment_modules + * @property array $iso_shipping_modules + * @property bool $iso_forward_review + * @property array $iso_checkout_skippable */ class Checkout extends Module { + const STEP_ADDRESS = 'address'; + const STEP_SHIPPING = 'shipping'; + const STEP_PAYMENT = 'payment'; + const STEP_REVIEW = 'review'; + const STEP_PROCESS = 'process'; + const STEP_COMPLETE = 'complete'; + const STEP_FAILED = 'failed'; /** * Template @@ -50,12 +64,30 @@ class Checkout extends Module */ protected $strCurrentStep; + /** + * Checkout steps that can be skipped + * @var array + */ + protected $skippableSteps = array(); + /** * Form ID * @var string */ protected $strFormId = 'iso_mod_checkout'; + /** + * @inheritDoc + */ + protected function getSerializedProperties() + { + $props = parent::getSerializedProperties(); + + $props[] = 'iso_checkout_skippable'; + + return $props; + } + /** * Display a wildcard in the back end @@ -64,19 +96,11 @@ class Checkout extends Module */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE CHECKOUT ###'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } - $this->strCurrentStep = \Haste\Input\Input::getAutoItem('step'); + $this->strCurrentStep = Input::getAutoItem('step'); if ($this->strCurrentStep == '') { $this->redirectToNextStep(); @@ -103,7 +127,7 @@ protected function compile() $arrBuffer = array(); // Default template settings. Must be set at beginning so they can be overwritten later (eg. trough callback) - $this->Template->action = ampersand(\Environment::get('request'), ENCODE_AMPERSANDS); + $this->Template->action = ampersand(\Environment::get('request')); $this->Template->formId = $this->strFormId; $this->Template->formSubmit = $this->strFormId; $this->Template->enctype = 'application/x-www-form-urlencoded'; @@ -120,22 +144,22 @@ protected function compile() // Complete order after successful payment // At this stage, we do no longer use the client's cart but the order through UID in URL - case 'complete': + case self::STEP_COMPLETE: /** @var Order $objOrder */ if (($objOrder = Order::findOneBy('uniqid', (string) \Input::get('uid'))) === null) { if (Isotope::getCart()->isEmpty()) { - /** @type \PageError404 $objHandler */ + /** @var \PageError404 $objHandler */ $objHandler = new $GLOBALS['TL_PTY']['error_404'](); $objHandler->generate((int) $GLOBALS['objPage']->id); exit; } else { - static::redirectToStep('failed'); + static::redirectToStep(self::STEP_FAILED); } } // Order already completed (see #1441) if ($objOrder->checkout_complete) { - \Controller::redirect(\Haste\Util\Url::addQueryString('uid=' . $objOrder->uniqid, $this->orderCompleteJumpTo)); + \Controller::redirect(Url::addQueryString('uid=' . $objOrder->uniqid, $this->orderCompleteJumpTo)); } $strBuffer = $objOrder->hasPayment() ? $objOrder->getPaymentMethod()->processPayment($objOrder, $this) : true; @@ -144,16 +168,18 @@ protected function compile() if ($strBuffer === true) { // If checkout is successful, complete order and redirect to confirmation page if ($objOrder->checkout() && $objOrder->complete()) { - \Controller::redirect(\Haste\Util\Url::addQueryString('uid=' . $objOrder->uniqid, $this->orderCompleteJumpTo)); + \Controller::redirect( + Url::addQueryString('uid=' . $objOrder->uniqid, $this->orderCompleteJumpTo) + ); } // Checkout failed, show error message - static::redirectToStep('failed'); + static::redirectToStep(self::STEP_FAILED); } // False means payment has failed elseif ($strBuffer === false) { - static::redirectToStep('failed'); + static::redirectToStep(self::STEP_FAILED); } // Otherwise we assume a string that shows a message to customer @@ -165,7 +191,7 @@ protected function compile() break; // Process order and initiate payment method if necessary - case 'process': + case self::STEP_PROCESS: // canCheckout will override the template and show a message if (!$this->canCheckout()) { @@ -176,7 +202,7 @@ protected function compile() // Make sure all steps have passed successfully foreach ($arrSteps as $step => $arrModules) { - /** @type IsotopeCheckoutStep $objModule */ + /** @var IsotopeCheckoutStep $objModule */ foreach ($arrModules as $objModule) { $objModule->generate(); @@ -200,7 +226,7 @@ protected function compile() if ($objCallback->{$callback[1]}($objOrder, $this) === false) { \System::log('Callback ' . $callback[0] . '::' . $callback[1] . '() cancelled checkout for Order ID ' . $this->id, __METHOD__, TL_ERROR); - static::redirectToStep('failed'); + static::redirectToStep(self::STEP_FAILED); } } } @@ -209,8 +235,8 @@ protected function compile() $strBuffer = $objOrder->hasPayment() ? $objOrder->getPaymentMethod()->checkoutForm($objOrder, $this) : false; - if ($strBuffer === false) { - static::redirectToStep('complete', $objOrder); + if (false === $strBuffer) { + static::redirectToStep(self::STEP_COMPLETE, $objOrder); } $this->Template->showForm = false; @@ -220,7 +246,7 @@ protected function compile() // Checkout/payment has failed, show the review page again with an error message /** @noinspection PhpMissingBreakStatementInspection */ - case 'failed': + case self::STEP_FAILED: $this->Template->mtype = 'error'; $this->Template->message = strlen(\Input::get('reason')) ? \Input::get('reason') : $GLOBALS['TL_LANG']['ERR']['orderFailed']; $this->strCurrentStep = 'review'; @@ -259,28 +285,37 @@ protected function generateSteps(array $arrSteps) $this->redirectToNextStep(); } + $arrStepKeys = array_keys($arrSteps); + $this->skippableSteps = array(); + /** * Run trough all steps until we find the current one or one reports failure - * @type string $step - * @type IsotopeCheckoutStep[] $arrModules + * @var string $step + * @var IsotopeCheckoutStep[] $arrModules */ foreach ($arrSteps as $step => $arrModules) { $this->strFormId = 'iso_mod_checkout_' . $step; $this->Template->formId = $this->strFormId; $this->Template->formSubmit = $this->strFormId; - $intCurrentStep += 1; - $arrBuffer = array(); + ++$intCurrentStep; - foreach ($arrModules as $objModule) { + $arrBuffer = array(); + $this->skippableSteps[$step] = true; + foreach ($arrModules as $objModule) { $arrBuffer[] = array( 'class' => standardize($step) . ' ' . $objModule->getStepClass(), 'html' => $objModule->generate() ); + if (!$objModule->isSkippable()) { + $this->skippableSteps[$step] = false; + } + if ($objModule->hasError()) { $this->doNotSubmit = true; + $this->skippableSteps[$step] = false; } // the user wanted to proceed but the current step is not completed yet @@ -289,14 +324,22 @@ protected function generateSteps(array $arrSteps) } } + if ($this->skippableSteps[$step]) { + unset($arrStepKeys[array_search($step, $arrStepKeys)]); + } + if ($step == $this->strCurrentStep) { + if ($this->skippableSteps[$step]) { + $this->redirectToNextStep(); + } + global $objPage; $objPage->pageTitle = sprintf($GLOBALS['TL_LANG']['MSC']['checkoutStep'], $intCurrentStep, $intTotalSteps, ($GLOBALS['TL_LANG']['MSC']['checkout_' . $step] ?: $step)) . ($objPage->pageTitle ?: $objPage->title); break; } } - $arrStepKeys = array_keys($arrSteps); + $arrStepKeys = array_values($arrStepKeys); $this->Template->steps = $this->generateStepNavigation($arrStepKeys); $this->Template->activeStep = $GLOBALS['TL_LANG']['MSC']['activeStep']; @@ -337,10 +380,17 @@ protected function redirectToNextStep() $intKey = -1; } // redirect to step "process" if the next step is the last one elseif (($intKey + 1) == count($arrSteps)) { - static::redirectToStep('process'); + static::redirectToStep(self::STEP_PROCESS); + } + + $step = $arrSteps[$intKey + 1]; + + if ($this->skippableSteps[$step]) { + $this->strCurrentStep = $step; + $this->redirectToNextStep(); } - static::redirectToStep($arrSteps[$intKey + 1]); + static::redirectToStep($step); } /** @@ -355,7 +405,14 @@ protected function redirectToPreviousStep() $intKey = 1; } - static::redirectToStep($arrSteps[($intKey - 1)]); + $step = $arrSteps[$intKey - 1]; + + if ($this->skippableSteps[$step]) { + $this->strCurrentStep = $step; + $this->redirectToPreviousStep(); + } + + static::redirectToStep($step); } /** @@ -374,13 +431,14 @@ public function getCheckoutInfo(array $arrSteps = null) $arrCheckoutInfo = array(); // Run trough all steps to collect checkout information - /** @type IsotopeCheckoutStep[] $arrModules */ + /** @var IsotopeCheckoutStep[] $arrModules */ foreach ($arrSteps as $arrModules) { foreach ($arrModules as $objModule) { $arrInfo = $objModule->review(); if (!empty($arrInfo) && is_array($arrInfo)) { + /** @noinspection AdditionOperationOnArraysInspection */ $arrCheckoutInfo += $arrInfo; } } @@ -406,7 +464,7 @@ protected function getNotificationTokensFromSteps(array $arrSteps, IsotopeProduc // Run trough all steps to collect checkout information foreach ($arrSteps as $arrModules) { - /** @type IsotopeCheckoutStep $objModule */ + /** @var IsotopeCheckoutStep $objModule */ foreach ($arrModules as $objModule) { $arrTokens = array_merge($arrTokens, $objModule->getNotificationTokens($objOrder)); } @@ -423,13 +481,13 @@ protected function getNotificationTokensFromSteps(array $arrSteps, IsotopeProduc protected function canCheckout() { // Redirect to login page if not logged in - if ($this->iso_checkout_method == 'member' && FE_USER_LOGGED_IN !== true) { + if ('member' === $this->iso_checkout_method && true !== FE_USER_LOGGED_IN) { - /** @type \PageModel $objJump */ + /** @var \PageModel $objJump */ $objJump = \PageModel::findPublishedById($this->iso_login_jumpTo); if (null === $objJump) { - $this->Template = new \Isotope\Template('mod_message'); + $this->Template = new Template('mod_message'); $this->Template->type = 'error'; $this->Template->message = $GLOBALS['TL_LANG']['ERR']['isoLoginRequired']; @@ -439,8 +497,8 @@ protected function canCheckout() $objJump->loadDetails(); \Controller::redirect($objJump->getFrontendUrl(null, $objJump->language)); - } elseif ($this->iso_checkout_method == 'guest' && FE_USER_LOGGED_IN === true) { - $this->Template = new \Isotope\Template('mod_message'); + } elseif ('guest' === $this->iso_checkout_method && true === FE_USER_LOGGED_IN) { + $this->Template = new Template('mod_message'); $this->Template->type = 'error'; $this->Template->message = $GLOBALS['TL_LANG']['ERR']['checkoutNotAllowed']; @@ -449,7 +507,7 @@ protected function canCheckout() // Return error message if cart is empty if (Isotope::getCart()->isEmpty()) { - $this->Template = new \Isotope\Template('mod_message'); + $this->Template = new Template('mod_message'); $this->Template->type = 'empty'; $this->Template->message = $GLOBALS['TL_LANG']['MSC']['noItemsInCart']; @@ -460,7 +518,7 @@ protected function canCheckout() if (Isotope::getCart()->hasErrors()) { if ($this->iso_cart_jumpTo > 0) { - /** @type \PageModel $objJump */ + /** @var \PageModel $objJump */ $objJump = \PageModel::findPublishedById($this->iso_cart_jumpTo); if (null !== $objJump) { @@ -469,7 +527,7 @@ protected function canCheckout() } } - $this->Template = new \Isotope\Template('mod_message'); + $this->Template = new Template('mod_message'); $this->Template->type = 'error'; $this->Template->message = implode("

\n

", Isotope::getCart()->getErrors()); @@ -479,6 +537,18 @@ protected function canCheckout() return true; } + /** + * Returns whether the checkout step by given name can be skipped. + * + * @param string $step + * + * @return bool + */ + public function canSkipStep($step) + { + return in_array($step, $this->iso_checkout_skippable, true); + } + /** * Return array of instantiated checkout step modules * @@ -494,7 +564,7 @@ protected function getSteps() $objModule = new $strClass($this); if (!$objModule instanceof IsotopeCheckoutStep) { - throw new \RuntimeException("$strClass has to implement Isotope\Interfaces\IsotopeCheckoutStep"); + throw new \RuntimeException("$strClass has to implement Isotope\\Interfaces\\IsotopeCheckoutStep"); } if ($objModule->isAvailable()) { @@ -537,7 +607,7 @@ protected function generateStepNavigation(array $arrStepKeys) ( 'isActive' => $blnActive, 'class' => $class, - 'link' => ($GLOBALS['TL_LANG']['MSC']['checkout_' . $step] ? : $step), + 'link' => $GLOBALS['TL_LANG']['MSC']['checkout_' . $step] ? : $step, 'href' => $href, 'title' => specialchars(sprintf($GLOBALS['TL_LANG']['MSC']['checkboutStepBack'], ($GLOBALS['TL_LANG']['MSC']['checkout_' . $step] ? : $step))), ); @@ -576,14 +646,14 @@ public static function generateUrlForStep($strStep, IsotopeProductCollection $ob $objTarget = $objPage; } - if (!$GLOBALS['TL_CONFIG']['useAutoItem'] || !in_array('step', $GLOBALS['TL_AUTO_ITEM'])) { + if (!$GLOBALS['TL_CONFIG']['useAutoItem'] || !in_array('step', $GLOBALS['TL_AUTO_ITEM'], true)) { $strStep = 'step/' . $strStep; } $strUrl = \Controller::generateFrontendUrl($objTarget->row(), '/' . $strStep, $objTarget->language); if (null !== $objCollection) { - $strUrl = \Haste\Util\Url::addQueryString('uid=' . $objCollection->uniqid, $strUrl); + $strUrl = Url::addQueryString('uid=' . $objCollection->getUniqueId(), $strUrl); } return $strUrl; diff --git a/system/modules/isotope/library/Isotope/Module/ConfigSwitcher.php b/system/modules/isotope/library/Isotope/Module/ConfigSwitcher.php index 883e08a2dc..2da3b9bba9 100644 --- a/system/modules/isotope/library/Isotope/Module/ConfigSwitcher.php +++ b/system/modules/isotope/library/Isotope/Module/ConfigSwitcher.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -18,12 +17,7 @@ /** - * Class ModuleIsotopeConfigSwitcher - * - * Front end module Isotope "config switcher". - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss + * @property array $iso_config_ids */ class ConfigSwitcher extends Module { @@ -34,6 +28,17 @@ class ConfigSwitcher extends Module */ protected $strTemplate = 'mod_iso_configswitcher'; + /** + * @inheritDoc + */ + protected function getSerializedProperties() + { + $props = parent::getSerializedProperties(); + + $props[] = 'iso_config_ids'; + + return $props; + } /** * Display a wildcard in the back end @@ -41,22 +46,11 @@ class ConfigSwitcher extends Module */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: STORE CONFIG SWICHER ###'; - - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } - $this->iso_config_ids = deserialize($this->iso_config_ids); - - if (!is_array($this->iso_config_ids) || !count($this->iso_config_ids)) { // Can't use empty() because its an object property (using __get) + if (0 === count($this->iso_config_ids)) { return ''; } @@ -66,7 +60,13 @@ public function generate() Isotope::getCart()->save(); } - \Controller::redirect(preg_replace(('@[?|&]config=' . \Input::get('config') . '@'), '', \Environment::get('request'))); + \Controller::redirect( + preg_replace( + '@[?|&]config=' . \Input::get('config') . '@', + '', + \Environment::get('request') + ) + ); } return parent::generate(); @@ -81,23 +81,22 @@ protected function compile() { $arrConfigs = array(); - /** @type Config[] $objConfigs */ + /** @var Config[] $objConfigs */ $objConfigs = Config::findMultipleByIds($this->iso_config_ids); if (null !== $objConfigs) { foreach ($objConfigs as $objConfig) { - $arrConfigs[] = array ( 'config' => $objConfig, 'label' => $objConfig->getLabel(), - 'active' => (Isotope::getConfig()->id == $objConfig->id ? true : false), - 'href' => (\Environment::get('request') . ((strpos(\Environment::get('request'), '?') === false) ? '?' : '&') . 'config=' . $objConfig->id), + 'active' => Isotope::getConfig()->id == $objConfig->id ? true : false, + 'href' => \Environment::get('request') . ((strpos(\Environment::get('request'), '?') === false) ? '?' : '&') . 'config=' . $objConfig->id, ); } } RowClass::withKey('class')->addFirstLast()->applyTo($arrConfigs); - $this->Template->configs = $arrConfigs; + $this->Template->configs = $arrConfigs; } } diff --git a/system/modules/isotope/library/Isotope/Module/CumulativeFilter.php b/system/modules/isotope/library/Isotope/Module/CumulativeFilter.php index 8deccefe00..c708f5a129 100644 --- a/system/modules/isotope/library/Isotope/Module/CumulativeFilter.php +++ b/system/modules/isotope/library/Isotope/Module/CumulativeFilter.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -97,17 +96,8 @@ public function __construct($objModule, $strColumn = 'main') */ public function generate() { - if (TL_MODE == 'BE') { - /** @var \BackendTemplate|object $objTemplate */ - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: CUMULATIVE FILTER ###'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } // Hide product list in reader mode if the respective setting is enabled @@ -289,9 +279,15 @@ protected function generateOptions($attribute, array $options, $queryType, $coun protected function generateOptionItem($attribute, $label, $value, $matchCount, $isActive) { $value = base64_encode($this->id . ';' . ($isActive ? 'del' : 'add') . ';' . $attribute . ';' . $value); - $href = Url::addQueryString('cumulativefilter=' . $value); $link = $label; + $href = Url::addQueryString( + 'cumulativefilter=' . $value, + Url::removeQueryStringCallback(function ($value, $key) { + return strpos($key, 'page_iso') !== 0; + }) + ); + if (false !== $matchCount) { $link = sprintf('%s (%d)', $label, $matchCount); } @@ -384,11 +380,7 @@ private function getExistingFiltersForQueryType($attribute, $queryType) $filters = array_filter( $filters, function ($filter) use ($attribute) { - if ($filter['attribute'] == $attribute) { - return false; - } - - return true; + return $filter['attribute'] != $attribute; } ); } diff --git a/system/modules/isotope/library/Isotope/Module/Favorites.php b/system/modules/isotope/library/Isotope/Module/Favorites.php new file mode 100644 index 0000000000..4fc5ac754c --- /dev/null +++ b/system/modules/isotope/library/Isotope/Module/Favorites.php @@ -0,0 +1,139 @@ +isEditable = true; + + return $template; + } + + /** + * @inheritdoc + */ + protected function updateItemTemplate( + IsotopeProductCollection $collection, + ProductCollectionItem $item, + array $data, + array $quantity, + &$hasChanges + ) { + $data = parent::updateItemTemplate($collection, $item, $data, $quantity, $hasChanges); + + $data['cart_href'] = Url::addQueryString('add_to_cart=' . $item->id); + + // Add single item to cart + if ((int) \Input::get('add_to_cart') === $item->id && $item->hasProduct()) { + Isotope::getCart()->addProduct( + $item->getProduct(), + $item->quantity, + ['jumpTo' => $item->getRelated('jumpTo')] + ); + + \Controller::redirect(Url::removeQueryString(['add_to_cart'])); + } + + // Add all items to cart based on quantity field and global button + if (\Input::post('FORM_SUBMIT') === $this->strFormId + && '' !== (string) \Input::post('button_add_to_cart') + && (0 === count($quantity) || $quantity[$item->id] > 0) + ) { + Isotope::getCart()->addProduct( + $item->getProduct(), + $quantity[$item->id] > 0 ? $quantity[$item->id] : 1, + ['jumpTo' => $item->getRelated('jumpTo')] + ); + + $hasChanges = true; + } + + return $data; + } + + /** + * @inheritdoc + */ + protected function generateButtons(array $buttons = []) + { + $this->addButton( + $buttons, + 'add_to_cart', + $GLOBALS['TL_LANG']['MSC']['buttonLabel']['add_all_to_cart'] + ); + + return $buttons; + } +} diff --git a/system/modules/isotope/library/Isotope/Module/Messages.php b/system/modules/isotope/library/Isotope/Module/Messages.php index 7a1d0a1bb2..555b5fd821 100644 --- a/system/modules/isotope/library/Isotope/Module/Messages.php +++ b/system/modules/isotope/library/Isotope/Module/Messages.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -35,15 +34,8 @@ class Messages extends Module */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: MESSAGES ###'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } // Never prepend messages diff --git a/system/modules/isotope/library/Isotope/Module/Module.php b/system/modules/isotope/library/Isotope/Module/Module.php index aaa4d3dade..79f3707e6c 100755 --- a/system/modules/isotope/library/Isotope/Module/Module.php +++ b/system/modules/isotope/library/Isotope/Module/Module.php @@ -3,16 +3,15 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; -use Haste\Haste; +use Haste\Frontend\AbstractFrontendModule; use Haste\Input\Input; use Haste\Util\Debug; use Haste\Util\RepositoryVersion; @@ -20,7 +19,6 @@ use Isotope\Isotope; use Isotope\Message; use Isotope\Model\Product; -use Module as Contao_Module; use PageModel; @@ -42,7 +40,7 @@ * @property bool $defineRoot * @property int $rootPage */ -abstract class Module extends Contao_Module +abstract class Module extends AbstractFrontendModule { /** @@ -70,19 +68,13 @@ public function __construct($objModule, $strColumn = 'main') parent::__construct($objModule, $strColumn); if ($this->iso_list_where != '') { - $this->iso_list_where = Haste::getInstance()->call('replaceInsertTags', $this->iso_list_where); - } - - $this->iso_buttons = deserialize($this->iso_buttons); - - if (!is_array($this->iso_buttons)) { - $this->iso_buttons = array(); + $this->iso_list_where = \Controller::replaceInsertTags($this->iso_list_where); } Isotope::initialize(); // Load Isotope JavaScript and style sheet - if (TL_MODE == 'FE') { + if ('FE' === TL_MODE) { $version = RepositoryVersion::encode(Isotope::VERSION); $GLOBALS['TL_JAVASCRIPT'][] = Debug::uncompressedFile( @@ -101,6 +93,13 @@ public function __construct($objModule, $strColumn = 'main') } } + /** + * @inheritDoc + */ + protected function getSerializedProperties() + { + return ['iso_buttons']; + } /** * Include messages if enabled @@ -112,14 +111,13 @@ public function generate() $strBuffer = parent::generate(); // Prepend any messages to the module output - if ($this->iso_includeMessages) { + if ('BE' !== TL_MODE && $this->iso_includeMessages) { $strBuffer = Message::generate() . $strBuffer; } return $strBuffer; } - /** * The ids of all pages we take care of. This is what should later be used eg. for filter data. * @@ -147,7 +145,7 @@ protected function findCategories() switch ($this->iso_category_scope) { case 'global': - $arrCategories = array($objPage->rootId); + $arrCategories = [$objPage->rootId]; $arrCategories = \Database::getInstance()->getChildRecords($objPage->rootId, 'tl_page', false, $arrCategories, $strWhere); break; @@ -157,22 +155,21 @@ protected function findCategories() break; case 'current_and_all_children': - $arrCategories = array($objPage->id); + $arrCategories = [$objPage->id]; $arrCategories = \Database::getInstance()->getChildRecords($objPage->id, 'tl_page', false, $arrCategories, $strWhere); break; case 'parent': - $arrCategories = array($objPage->pid); + $arrCategories = [$objPage->pid]; break; case 'product': /** @var \Isotope\Model\Product\Standard $objProduct */ $objProduct = Product::findAvailableByIdOrAlias(Input::getAutoItem('product')); + $arrCategories = [0]; if ($objProduct !== null) { $arrCategories = $objProduct->getCategories(true); - } else { - $arrCategories = array(0); } break; @@ -182,7 +179,7 @@ protected function findCategories() case '': case 'current_category': - $arrCategories = array($objPage->id); + $arrCategories = [$objPage->id]; break; default: @@ -205,7 +202,6 @@ protected function findCategories() return $this->arrCategories; } - /** * Find jumpTo page for current category scope * @@ -261,7 +257,6 @@ protected function findJumpToPage($objProduct) return $objIsotopeListPage ? : $objPage; } - /** * Generate the URL from existing $_GET parameters. * Use \Input::setGet('var', null) to remove a parameter from the final URL. @@ -316,7 +311,7 @@ protected function generateRequestUrl() } } - /** @type PageModel $objPage */ + /** @var PageModel $objPage */ global $objPage; return \Controller::generateFrontendUrl($objPage->row(), $strParams) . (!empty($arrGet) ? ('?' . implode('&', $arrGet)) : ''); diff --git a/system/modules/isotope/library/Isotope/Module/OrderDetails.php b/system/modules/isotope/library/Isotope/Module/OrderDetails.php index 2a0450acc8..8639c69c18 100644 --- a/system/modules/isotope/library/Isotope/Module/OrderDetails.php +++ b/system/modules/isotope/library/Isotope/Module/OrderDetails.php @@ -3,29 +3,29 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; +use Contao\PageError403; use Haste\Util\Format; +use Haste\Util\Url; use Isotope\Isotope; +use Isotope\Message; use Isotope\Model\ProductCollection\Order; - +use Isotope\Template; /** - * Class OrderDetails - * - * Front end module Isotope "order details". - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss + * @property int $iso_cart_jumpTo + * @property int $iso_gallery + * @property string $iso_collectionTpl + * @property string $iso_orderCollectionBy */ -class OrderDetails extends Module +class OrderDetails extends AbstractProductCollection { /** @@ -34,85 +34,137 @@ class OrderDetails extends Module */ protected $strTemplate = 'mod_iso_orderdetails'; - /** - * Disable caching of the frontend page if this module is in use - * @var boolean - */ - protected $blnDisableCache = true; - - /** * Display a wildcard in the back end + * + * @param bool $blnBackend + * * @return string */ public function generate($blnBackend = false) { - if (TL_MODE == 'BE' && !$blnBackend) { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: ORDER DETAILS ###'; - - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); - } - if ($blnBackend) { $this->backend = true; $this->jumpTo = 0; + $this->setWildcard(false); } return parent::generate(); } - /** * Generate the module */ protected function compile() { + $order = $this->getCollection(); + + if (null === $order) { + return; + } + + parent::compile(); + + $this->Template->info = deserialize($order->checkout_info, true); + $this->Template->date = Format::date($order->locked); + $this->Template->time = Format::time($order->locked); + $this->Template->datim = Format::datim($order->locked); + $this->Template->orderDetailsHeadline = sprintf($GLOBALS['TL_LANG']['MSC']['orderDetailsHeadline'], $order->getDocumentNumber(), $this->Template->datim); + $this->Template->orderStatus = sprintf($GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'], $order->getStatusLabel()); + $this->Template->orderStatusKey = $order->getStatusAlias(); + } + + /** + * @inheritdoc + */ + protected function getCollection() + { + static $order = false; + + if (false !== $order) { + return $order; + } + + $order = Order::findOneBy('uniqid', (string) \Input::get('uid')); + // Also check owner (see #126) - if (($objOrder = Order::findOneBy('uniqid', (string) \Input::get('uid'))) === null || (FE_USER_LOGGED_IN === true && $objOrder->member > 0 && \FrontendUser::getInstance()->id != $objOrder->member)) { - $this->Template = new \Isotope\Template('mod_message'); + if (null === $order + || (FE_USER_LOGGED_IN === true + && $order->member > 0 + && \FrontendUser::getInstance()->id != $order->member + ) + ) { + $this->Template = new Template('mod_message'); $this->Template->type = 'error'; $this->Template->message = $GLOBALS['TL_LANG']['ERR']['orderNotFound']; - return; + return null; } // Order belongs to a member but not logged in - if (TL_MODE == 'FE' && $this->iso_loginRequired && $objOrder->member > 0 && FE_USER_LOGGED_IN !== true) { + if ('FE' === TL_MODE && $this->iso_loginRequired && $order->member > 0 && FE_USER_LOGGED_IN !== true) { + /** @var \PageModel $objPage */ global $objPage; + /** @var PageError403 $objHandler */ $objHandler = new $GLOBALS['TL_PTY']['error_403'](); $objHandler->generate($objPage->id); exit; } - Isotope::setConfig($objOrder->getRelated('config_id')); + return $order; + } - $objTemplate = new \Isotope\Template($this->iso_collectionTpl); - $objTemplate->linkProducts = true; + /** + * @inheritdoc + */ + protected function getEmptyMessage() + { + // An order can never be empty + return ''; + } - $objOrder->addToTemplate( - $objTemplate, - array( - 'gallery' => $this->iso_gallery, - 'sorting' => $objOrder->getItemsSortingCallable($this->iso_orderCollectionBy), - ) - ); - - $this->Template->collection = $objOrder; - $this->Template->products = $objTemplate->parse(); - $this->Template->info = deserialize($objOrder->checkout_info, true); - $this->Template->date = Format::date($objOrder->locked); - $this->Template->time = Format::time($objOrder->locked); - $this->Template->datim = Format::datim($objOrder->locked); - $this->Template->orderDetailsHeadline = sprintf($GLOBALS['TL_LANG']['MSC']['orderDetailsHeadline'], $objOrder->document_number, $this->Template->datim); - $this->Template->orderStatus = sprintf($GLOBALS['TL_LANG']['MSC']['orderStatusHeadline'], $objOrder->getStatusLabel()); - $this->Template->orderStatusKey = $objOrder->getStatusAlias(); + /** + * @inheritdoc + */ + protected function canEditQuantity() + { + return false; + } + + /** + * @inheritdoc + */ + protected function canRemoveProducts() + { + return false; + } + + /** + * @inheritdoc + */ + protected function generateButtons(array $buttons = []) + { + if ($this->iso_cart_jumpTo > 0) { + $this->addButton( + $buttons, + 'reorder', + $GLOBALS['TL_LANG']['MSC']['reorderLabel'], + function () { + Isotope::getCart()->copyItemsFrom($this->getCollection()); + + Message::addConfirmation($GLOBALS['TL_LANG']['MSC']['reorderConfirmation']); + + \Controller::redirect( + Url::addQueryString( + 'continue=' . base64_encode(\System::getReferer()), + $this->iso_cart_jumpTo + ) + ); + } + ); + } + + return $buttons; } } diff --git a/system/modules/isotope/library/Isotope/Module/OrderHistory.php b/system/modules/isotope/library/Isotope/Module/OrderHistory.php index d5855e067f..2a102042cc 100644 --- a/system/modules/isotope/library/Isotope/Module/OrderHistory.php +++ b/system/modules/isotope/library/Isotope/Module/OrderHistory.php @@ -3,28 +3,25 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; use Haste\Generator\RowClass; use Haste\Util\Format; +use Haste\Util\Url; use Isotope\Isotope; +use Isotope\Message; use Isotope\Model\ProductCollection\Order; +use Isotope\Template; /** - * Class OrderHistory - * - * Front end module Isotope "order history". - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss + * @property int $iso_cart_jumpTo */ class OrderHistory extends Module { @@ -41,30 +38,30 @@ class OrderHistory extends Module */ protected $blnDisableCache = true; + /** + * @inheritDoc + */ + protected function getSerializedProperties() + { + $props = parent::getSerializedProperties(); + + $props[] = 'iso_config_ids'; + + return $props; + } /** * Display a wildcard in the back end + * * @return string */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: ORDER HISTORY ###'; - - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } - $this->iso_config_ids = deserialize($this->iso_config_ids); - - if (FE_USER_LOGGED_IN !== true || !is_array($this->iso_config_ids) || !count($this->iso_config_ids)) // Can't use empty() because its an object property (using __get) - { + if (FE_USER_LOGGED_IN !== true || 0 === count($this->iso_config_ids)) { return ''; } @@ -78,31 +75,36 @@ public function generate() */ protected function compile() { - $arrOrders = array(); + $arrOrders = []; $objOrders = Order::findBy( - array( + [ 'order_status>0', 'member=?', - 'config_id IN (' . implode(',', array_map('intval', $this->iso_config_ids)) . ')'), - array(\FrontendUser::getInstance()->id), - array('order' => 'locked DESC') + 'config_id IN (' . implode(',', array_map('intval', $this->iso_config_ids)) . ')' + ], + [\FrontendUser::getInstance()->id], + ['order' => 'locked DESC'] ); // No orders found, just display an "empty" message if (null === $objOrders) { - $this->Template = new \Isotope\Template('mod_message'); + $this->Template = new Template('mod_message'); $this->Template->type = 'empty'; $this->Template->message = $GLOBALS['TL_LANG']['ERR']['emptyOrderHistory']; return; } - /** @type Order $objOrder */ + $reorder = (int) \Input::get('reorder'); + foreach ($objOrders as $objOrder) { - Isotope::setConfig($objOrder->getRelated('config_id')); + if ($this->iso_cart_jumpTo && $reorder === (int) $objOrder->id) { + $this->reorder($objOrder); + } + + Isotope::setConfig($objOrder->getConfig()); - $arrOrders[] = array - ( + $arrOrders[] = [ 'collection' => $objOrder, 'raw' => $objOrder->row(), 'date' => Format::date($objOrder->locked), @@ -110,13 +112,28 @@ protected function compile() 'datime' => Format::datim($objOrder->locked), 'grandTotal' => Isotope::formatPriceWithCurrency($objOrder->getTotal()), 'status' => $objOrder->getStatusLabel(), - 'link' => ($this->jumpTo ? (\Haste\Util\Url::addQueryString('uid=' . $objOrder->uniqid, $this->jumpTo)) : ''), + 'link' => $this->jumpTo ? (Url::addQueryString('uid=' . $objOrder->uniqid, $this->jumpTo)) : '', + 'reorder' => $this->iso_cart_jumpTo ? (Url::addQueryString('reorder=' . $objOrder->id)) : '', 'class' => $objOrder->getStatusAlias(), - ); + ]; } RowClass::withKey('class')->addFirstLast()->addEvenOdd()->applyTo($arrOrders); $this->Template->orders = $arrOrders; } + + private function reorder(Order $order) + { + Isotope::getCart()->copyItemsFrom($order); + + Message::addConfirmation($GLOBALS['TL_LANG']['MSC']['reorderConfirmation']); + + \Controller::redirect( + Url::addQueryString( + 'continue=' . base64_encode(\System::getReferer()), + $this->iso_cart_jumpTo + ) + ); + } } diff --git a/system/modules/isotope/library/Isotope/Module/ProductFilter.php b/system/modules/isotope/library/Isotope/Module/ProductFilter.php index bee34e3711..c3b0cb557c 100755 --- a/system/modules/isotope/library/Isotope/Module/ProductFilter.php +++ b/system/modules/isotope/library/Isotope/Module/ProductFilter.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -26,6 +25,9 @@ use Isotope\RequestCache\Limit; use Isotope\RequestCache\Sort; +/** + * ProductFilter allows to filter a product list by attributes. + */ class ProductFilter extends AbstractProductFilter implements IsotopeFilterModule { @@ -50,16 +52,7 @@ class ProductFilter extends AbstractProductFilter implements IsotopeFilterModule public function generate() { if ('BE' === TL_MODE) { - /** @var \BackendTemplate|object $objTemplate */ - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: PRODUCT FILTERS ###'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + return $this->generateWildcard(); } $this->generateAjax(); @@ -102,10 +95,10 @@ public function generateAjax() } if ($this->iso_searchAutocomplete && \Input::get('iso_autocomplete') == $this->id) { - $objProducts = Product::findPublishedByCategories($this->findCategories(), array('order' => 'c.sorting')); + $objProducts = Product::findPublishedByCategories($this->findCategories(), ['order' => 'c.sorting']); if (null === $objProducts) { - $objResponse = new JsonResponse(array()); + $objResponse = new JsonResponse([]); $objResponse->send(); } @@ -187,7 +180,7 @@ protected function generateSearch() if (!$this->blnUpdateCache && null !== $this->objModel->getRelated('jumpTo') ) { - /** @type \PageModel $objJumpTo */ + /** @var \PageModel $objJumpTo */ $objJumpTo = $this->objModel->getRelated('jumpTo'); $strUrl = $objJumpTo->getFrontendUrl() . '?' . $_SERVER['QUERY_STRING']; @@ -226,7 +219,7 @@ protected function generateFilters() $this->Template->hasFilters = false; if (0 !== count($this->iso_filterFields)) { - $arrFilters = array(); + $arrFilters = []; $arrInput = \Input::post('filter'); $arrCategories = $this->findCategories(); @@ -336,13 +329,13 @@ protected function generateSorting() $this->Template->hasSorting = false; if (0 !== count($this->iso_sortingFields)) { - $arrOptions = array(); + $arrOptions = []; // Cache new request value // @todo should support multiple sorting fields list($sortingField, $sortingDirection) = explode(':', \Input::post('sorting')); - if ($this->blnUpdateCache && in_array($sortingField, $this->iso_sortingFields)) { + if ($this->blnUpdateCache && in_array($sortingField, $this->iso_sortingFields, true)) { Isotope::getRequestCache()->setSortingForModule( $sortingField, ('DESC' === $sortingDirection ? Sort::descending() : Sort::ascending()), @@ -351,7 +344,7 @@ protected function generateSorting() } elseif (array_diff( array_keys( - Isotope::getRequestCache()->getSortingsForModules(array($this->id)) + Isotope::getRequestCache()->getSortingsForModules([$this->id]) ), $this->iso_sortingFields )) { @@ -367,21 +360,28 @@ protected function generateSorting() $first = Isotope::getRequestCache()->getFirstSortingFieldForModule($this->id); + if ('' === $first) { + $first = $this->iso_listingSortField; + $objSorting = 'DESC' === $this->iso_listingSortDirection ? Sort::descending() : Sort::ascending(); + } else { + $objSorting = Isotope::getRequestCache()->getSortingForModule($first, $this->id); + } + foreach ($this->iso_sortingFields as $field) { list($asc, $desc) = $this->getSortingLabels($field); - $objSorting = $first == $field ? Isotope::getRequestCache()->getSortingForModule($field, $this->id) : null; + $isDefault = $first === $field && null !== $objSorting; - $arrOptions[] = array( + $arrOptions[] = [ 'label' => Format::dcaLabel('tl_iso_product', $field) . ', ' . $asc, 'value' => $field . ':ASC', - 'default' => (null !== $objSorting && $objSorting->isAscending()) ? '1' : '', - ); + 'default' => ($isDefault && $objSorting->isAscending()) ? '1' : '', + ]; - $arrOptions[] = array( + $arrOptions[] = [ 'label' => Format::dcaLabel('tl_iso_product', $field) . ', ' . $desc, 'value' => $field . ':DESC', - 'default' => (null !== $objSorting && $objSorting->isDescending()) ? '1' : '', - ); + 'default' => ($isDefault && $objSorting->isDescending()) ? '1' : '', + ]; } } @@ -399,9 +399,9 @@ protected function generateLimit() $this->Template->hasLimit = false; if ($this->iso_enableLimit) { - $arrOptions = array(); + $arrOptions = []; $arrLimit = array_map('intval', trimsplit(',', $this->iso_perPage)); - $objLimit = Isotope::getRequestCache()->getFirstLimitForModules(array($this->id)); + $objLimit = Isotope::getRequestCache()->getFirstLimitForModules([$this->id]); $arrLimit = array_unique($arrLimit); sort($arrLimit); @@ -422,11 +422,11 @@ protected function generateLimit() // No need to generate options if we reload anyway foreach ($arrLimit as $limit) { - $arrOptions[] = array( + $arrOptions[] = [ 'label' => $limit, 'value' => $limit, 'default' => $objLimit->equals($limit) ? '1' : '', - ); + ]; } $this->Template->hasLimit = true; diff --git a/system/modules/isotope/library/Isotope/Module/ProductList.php b/system/modules/isotope/library/Isotope/Module/ProductList.php index 835bf583de..2c153ca2d1 100755 --- a/system/modules/isotope/library/Isotope/Module/ProductList.php +++ b/system/modules/isotope/library/Isotope/Module/ProductList.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -22,6 +21,7 @@ use Isotope\Model\ProductType; use Isotope\RequestCache\FilterQueryBuilder; use Isotope\RequestCache\Sort; +use Isotope\Template; /** * @property string $iso_list_layout @@ -52,22 +52,16 @@ class ProductList extends Module protected $blnCacheProducts = true; /** - * @inheritdoc + * @inheritDoc */ - public function __construct($objModule, $strColumn = 'main') + protected function getSerializedProperties() { - parent::__construct($objModule, $strColumn); + $props = parent::getSerializedProperties(); - $this->iso_filterModules = deserialize($this->iso_filterModules); - $this->iso_productcache = deserialize($this->iso_productcache); + $props[] = 'iso_filterModules'; + $props[] = 'iso_productcache'; - if (!is_array($this->iso_filterModules)) { - $this->iso_filterModules = array(); - } - - if (!is_array($this->iso_productcache)) { - $this->iso_productcache = array(); - } + return $props; } /** @@ -77,17 +71,7 @@ public function __construct($objModule, $strColumn = 'main') public function generate() { if ('BE' === TL_MODE) { - /** @var \BackendTemplate|object $objTemplate */ - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: PRODUCT LIST ###'; - - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + return $this->generateWildcard(); } // Hide product list in reader mode if the respective setting is enabled @@ -95,8 +79,6 @@ public function generate() return ''; } - $this->iso_productcache = deserialize($this->iso_productcache, true); - // Disable the cache in frontend preview or debug mode if (BE_USER_LOGGED_IN === true || $GLOBALS['TL_CONFIG']['debugMode']) { $this->blnCacheProducts = false; @@ -129,9 +111,9 @@ protected function compile() } global $objPage; - $cacheKey = $this->getCacheKey(); - $arrProducts = null; - $arrCacheIds = null; + $cacheKey = $this->getCacheKey(); + $arrProducts = null; + $arrCacheIds = null; // Try to load the products from cache if ($this->blnCacheProducts && ($objCache = ProductCache::findByUniqid($cacheKey)) !== null) { @@ -165,7 +147,7 @@ protected function compile() $objPage->noSearch = 1; $objPage->cache = 0; - $this->Template = new \Isotope\Template('mod_iso_productlist_caching'); + $this->Template = new Template('mod_iso_productlist_caching'); $this->Template->message = $GLOBALS['TL_LANG']['MSC']['productcacheLoading']; return; @@ -186,7 +168,7 @@ protected function compile() $arrCacheMessage[$cacheKey] = $this->blnCacheProducts; \Database::getInstance() - ->prepare("UPDATE tl_module SET iso_productcache=? WHERE id=?") + ->prepare('UPDATE tl_module SET iso_productcache=? WHERE id=?') ->execute(serialize($arrCacheMessage), $this->id) ; } @@ -238,8 +220,8 @@ protected function compile() $arrConfig = array( 'module' => $this, - 'template' => ($this->iso_list_layout ?: $type->list_template), - 'gallery' => ($this->iso_gallery ?: $type->list_gallery), + 'template' => $this->iso_list_layout ?: $type->list_template, + 'gallery' => $this->iso_gallery ?: $type->list_gallery, 'buttons' => $this->iso_buttons, 'useQuantity' => $this->iso_use_quantity, 'jumpTo' => $this->findJumpToPage($objProduct), @@ -388,7 +370,9 @@ protected function generatePagination($arrItems) $limit = $this->numberOfItems; } - $total = count($arrItems); + $pagination = ''; + $page = 1; + $total = count($arrItems); // Split the results if ($this->perPage > 0 && (!isset($limit) || $limit > $this->perPage)) { @@ -399,7 +383,7 @@ protected function generatePagination($arrItems) // Get the current page $id = 'page_iso' . $this->id; - $page = \Input::get($id) ? : 1; + $page = \Input::get($id) ?: 1; // Do not index or cache the page if the page number is outside the range if ($page < 1 || $page > max(ceil($total / $this->perPage), 1)) { @@ -422,9 +406,16 @@ protected function generatePagination($arrItems) // Add the pagination menu $objPagination = new \Pagination($total, $this->perPage, $GLOBALS['TL_CONFIG']['maxPaginationLinks'], $id); - $this->Template->pagination = $objPagination->generate("\n "); + + $pagination = $objPagination->generate("\n "); } + $this->Template->pagination = $pagination; + $this->Template->total = count($arrItems); + $this->Template->page = $page; + $this->Template->offset = $offset; + $this->Template->limit = $limit; + if (isset($limit)) { $arrItems = array_slice($arrItems, $offset, $limit); } diff --git a/system/modules/isotope/library/Isotope/Module/ProductReader.php b/system/modules/isotope/library/Isotope/Module/ProductReader.php index 49f5d44ca3..d6465f9bdc 100755 --- a/system/modules/isotope/library/Isotope/Module/ProductReader.php +++ b/system/modules/isotope/library/Isotope/Module/ProductReader.php @@ -3,27 +3,27 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; use Haste\Http\Response\HtmlResponse; +use Haste\Input\Input; use Isotope\Interfaces\IsotopeProduct; use Isotope\Model\Product; - /** * Class ProductReader * - * Front end module Isotope "product reader". - * @copyright Isotope eCommerce Workgroup 2009-2012 - * @author Andreas Schempp - * @author Fred Bliss + * @property bool $iso_use_quantity + * @property bool $iso_display404Page + * @property bool $iso_addProductJumpTo + * @property string $iso_reader_layout + * @property int $iso_gallery */ class ProductReader extends Module { @@ -37,7 +37,7 @@ class ProductReader extends Module * Product * @var IsotopeProduct */ - protected $objProduct = null; + protected $objProduct; /** @@ -46,26 +46,14 @@ class ProductReader extends Module */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: PRODUCT READER ###'; - - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } // Return if no product has been specified - if (\Haste\Input\Input::getAutoItem('product', false, true) == '') { + if (Input::getAutoItem('product', false, true) == '') { if ($this->iso_display404Page) { - global $objPage; - $objHandler = new $GLOBALS['TL_PTY']['error_404'](); - $objHandler->generate($objPage->id); - exit; + $this->generate404(); } else { return ''; } @@ -84,50 +72,56 @@ protected function compile() global $objPage; global $objIsotopeListPage; - $objProduct = Product::findAvailableByIdOrAlias(\Haste\Input\Input::getAutoItem('product')); + $objProduct = Product::findAvailableByIdOrAlias(Input::getAutoItem('product')); if (null === $objProduct) { - $objHandler = new $GLOBALS['TL_PTY']['error_404'](); - $objHandler->generate($objPage->id); - exit; + $this->generate404(); } $arrConfig = array( 'module' => $this, - 'template' => ($this->iso_reader_layout ? : $objProduct->getRelated('type')->reader_template), - 'gallery' => ($this->iso_gallery ? : $objProduct->getRelated('type')->reader_gallery), + 'template' => $this->iso_reader_layout ? : $objProduct->getType()->reader_template, + 'gallery' => $this->iso_gallery ? : $objProduct->getType()->reader_gallery, 'buttons' => $this->iso_buttons, 'useQuantity' => $this->iso_use_quantity, - 'jumpTo' => ($objIsotopeListPage ? : $objPage), + 'jumpTo' => $objIsotopeListPage ? : $objPage, ); - if (\Environment::get('isAjaxRequest') && \Input::post('AJAX_MODULE') == $this->id && \Input::post('AJAX_PRODUCT') == $objProduct->getProductId()) { - $objResponse = new HtmlResponse($objProduct->generate($arrConfig)); - $objResponse->send(); + if (\Environment::get('isAjaxRequest') + && \Input::post('AJAX_MODULE') == $this->id + && \Input::post('AJAX_PRODUCT') == $objProduct->getProductId() + ) { + try { + $objResponse = new HtmlResponse($objProduct->generate($arrConfig)); + $objResponse->send(); + } catch (\InvalidArgumentException $e) { + return; + } } - $arrCSS = deserialize($objProduct->cssID, true); - $this->addMetaTags($objProduct); $this->addCanonicalProductUrls($objProduct); $this->Template->product = $objProduct->generate($arrConfig); - $this->Template->product_id = ($arrCSS[0] != '') ? ' id="' . $arrCSS[0] . '"' : ''; - $this->Template->product_class = trim('product ' . ($objProduct->isNew() ? 'new ' : '') . $arrCSS[1]); + $this->Template->product_id = $this->getCssId($objProduct); + $this->Template->product_class = $this->getCssClass($objProduct); $this->Template->referer = 'javascript:history.go(-1)'; $this->Template->back = $GLOBALS['TL_LANG']['MSC']['goBack']; } /** * Add meta header fields to the current page - * @param IsotopeProduct + * + * @param Product $objProduct */ - protected function addMetaTags(IsotopeProduct $objProduct) + protected function addMetaTags(Product $objProduct) { global $objPage; - $objPage->pageTitle = $this->prepareMetaDescription($objProduct->meta_title ? : $objProduct->name); - $objPage->description = $this->prepareMetaDescription($objProduct->meta_description ? : ($objProduct->teaser ? : $objProduct->description)); + $descriptionFallback = ($objProduct->teaser ?: $objProduct->description); + + $objPage->pageTitle = $this->prepareMetaDescription($objProduct->meta_title ?: $objProduct->getName()); + $objPage->description = $this->prepareMetaDescription($objProduct->meta_description ?: $descriptionFallback); if ($objProduct->meta_keywords) { $GLOBALS['TL_KEYWORDS'] .= ($GLOBALS['TL_KEYWORDS'] != '' ? ', ' : '') . $objProduct->meta_keywords; @@ -136,9 +130,10 @@ protected function addMetaTags(IsotopeProduct $objProduct) /** * Adds canonical product URLs to the document - * @param IsotopeProduct + * + * @param Product $objProduct */ - protected function addCanonicalProductUrls(IsotopeProduct $objProduct) + protected function addCanonicalProductUrls(Product $objProduct) { global $objPage; $arrPageIds = \Database::getInstance()->getChildRecords($objPage->rootId, \PageModel::getTable()); @@ -150,7 +145,7 @@ protected function addCanonicalProductUrls(IsotopeProduct $objProduct) foreach ($arrCategories as $intPage) { // Do not use the index page as canonical link - if ($objPage->alias == 'index' && count($arrCategories) > 1) { + if ('index' === $objPage->alias && count($arrCategories) > 1) { continue; } @@ -159,8 +154,9 @@ protected function addCanonicalProductUrls(IsotopeProduct $objProduct) break; } - if (($objJumpTo = \PageModel::findWithDetails($intPage)) !== null) { + if (($objJumpTo = \PageModel::findPublishedById($intPage)) !== null) { + $objJumpTo->loadDetails(); $strDomain = \Environment::get('base'); // Overwrite the domain @@ -168,10 +164,60 @@ protected function addCanonicalProductUrls(IsotopeProduct $objProduct) $strDomain = ($objJumpTo->useSSL ? 'https://' : 'http://') . $objJumpTo->dns . TL_PATH . '/'; } - $GLOBALS['TL_HEAD'][] = sprintf('', $strDomain . $objProduct->generateUrl($objJumpTo)); + $href = $strDomain . $objProduct->generateUrl($objJumpTo); + $GLOBALS['TL_HEAD'][] = ''; break; } } } + + /** + * Gets the CSS ID for this product + * + * @param Product $objProduct + * + * @return string|null + */ + protected function getCssId(Product $objProduct) + { + $css = deserialize($objProduct->cssID, true); + + return $css[0] ?: null; + } + + /** + * Gets the CSS classes for this product + * + * @param Product $objProduct + * + * @return string + */ + protected function getCssClass(Product $objProduct) + { + $classes = ['product']; + + if ($objProduct->isNew()) { + $classes[] = 'new'; + } + + $arrCSS = deserialize($objProduct->cssID, true); + if ('' !== (string) $arrCSS[1]) { + $classes[] = (string) $arrCSS[1]; + } + + return implode(' ', $classes); + } + + /** + * Generates a 404 page and stops page output. + */ + private function generate404() + { + global $objPage; + /** @var \PageError404 $objHandler */ + $objHandler = new $GLOBALS['TL_PTY']['error_404'](); + $objHandler->generate($objPage->id); + exit; + } } diff --git a/system/modules/isotope/library/Isotope/Module/ProductVariantList.php b/system/modules/isotope/library/Isotope/Module/ProductVariantList.php index 05d2765a5e..906fd676fb 100755 --- a/system/modules/isotope/library/Isotope/Module/ProductVariantList.php +++ b/system/modules/isotope/library/Isotope/Module/ProductVariantList.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -22,29 +21,6 @@ */ class ProductVariantList extends ProductList { - /** - * Display a wildcard in the back end - * @return string - */ - public function generate() - { - if (TL_MODE == 'BE') { - /** @var \BackendTemplate|object $objTemplate */ - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: PRODUCT VARIANT LIST ###'; - - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); - } - - return parent::generate(); - } - /** * Fill the object's arrProducts array * diff --git a/system/modules/isotope/library/Isotope/Module/RelatedProducts.php b/system/modules/isotope/library/Isotope/Module/RelatedProducts.php index a60eb26c7e..97b0b609c6 100644 --- a/system/modules/isotope/library/Isotope/Module/RelatedProducts.php +++ b/system/modules/isotope/library/Isotope/Module/RelatedProducts.php @@ -3,18 +3,19 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; use Haste\Input\Input; +use Isotope\Isotope; use Isotope\Model\Product; use Isotope\Model\RelatedProduct; +use Isotope\RequestCache\Sort; /** * Class ModuleIsotopeRelatedProducts @@ -23,6 +24,17 @@ */ class RelatedProducts extends ProductList { + /** + * @inheritDoc + */ + protected function getSerializedProperties() + { + $props = parent::getSerializedProperties(); + + $props[] = 'iso_related_categories'; + + return $props; + } /** * Generate the module @@ -30,25 +42,15 @@ class RelatedProducts extends ProductList */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: RELATED PRODUCTS ###'; - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } if (!Input::getAutoItem('product', false, true)) { return ''; } - $this->iso_related_categories = deserialize($this->iso_related_categories); - - if (!is_array($this->iso_related_categories) || empty($this->iso_related_categories)) { + if (0 === count($this->iso_related_categories)) { return ''; } @@ -66,31 +68,52 @@ public function generate() */ protected function findProducts($arrCacheIds = null) { - $arrIds = array(0); + $productIds = []; + $currentProduct = Product::findAvailableByIdOrAlias(Input::getAutoItem('product', false, true)); - $objProduct = Product::findAvailableByIdOrAlias(Input::getAutoItem('product')); - - if (null === $objProduct) { - return array(); + if (null === $currentProduct) { + return []; } - $objRelated = RelatedProduct::findByProductAndCategories($objProduct, $this->iso_related_categories); + /** @var RelatedProduct[] $relatedProducts */ + $relatedProducts = RelatedProduct::findByProductAndCategories($currentProduct, $this->iso_related_categories); - if (null !== $objRelated) { - while ($objRelated->next()) { - $ids = trimsplit(',', $objRelated->products); + if (null !== $relatedProducts) { + foreach ($relatedProducts as $category) { + $ids = trimsplit(',', $category->products); - if (!empty($ids) && is_array($ids)) { - $arrIds = array_unique(array_merge($arrIds, $ids)); + if (is_array($ids) && 0 !== count($ids)) { + $productIds = array_unique(array_merge($productIds, $ids)); } } } - $objProducts = Product::findAvailableByIds($arrIds, array( - 'order' => \Database::getInstance()->findInSet(Product::getTable().'.id', $arrIds) - )); + if (0 === count($productIds)) { + return []; + } - return (null === $objProducts) ? array() : $objProducts->getModels(); + $columns = [Product::getTable() . '.id IN (' . implode(',', array_map('intval', $productIds)) . ')']; + $options = ['order' => \Database::getInstance()->findInSet(Product::getTable() . '.id', $productIds)]; + + // Apply new/old product filter + if ('show_new' === $this->iso_newFilter) { + $columns[] = Product::getTable() . '.dateAdded>=' . Isotope::getConfig()->getNewProductLimit(); + } elseif ('show_old' === $this->iso_newFilter) { + $columns[] = Product::getTable() . '.dateAdded<' . Isotope::getConfig()->getNewProductLimit(); + } + + if ($this->iso_list_where != '') { + $columns[] = $this->iso_list_where; + } + + if ($this->iso_listingSortField != '') { + $direction = 'DESC' === $this->iso_listingSortDirection ? Sort::descending() : Sort::ascending(); + $options['sorting'] = [$this->iso_listingSortField => $direction]; + } + + $objProducts = Product::findAvailableBy($columns, [], $options); + + return (null === $objProducts) ? [] : $objProducts->getModels(); } /** @@ -101,6 +124,9 @@ protected function compileEmptyMessage($disableSearchIndex = true) parent::compileEmptyMessage(false); } + /** + * @inheritdoc + */ protected function getCacheKey() { return md5( diff --git a/system/modules/isotope/library/Isotope/Module/ShippingCalculator.php b/system/modules/isotope/library/Isotope/Module/ShippingCalculator.php index 04bdc1c1a5..ea6e27c232 100644 --- a/system/modules/isotope/library/Isotope/Module/ShippingCalculator.php +++ b/system/modules/isotope/library/Isotope/Module/ShippingCalculator.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Module; @@ -15,8 +14,13 @@ use Haste\Generator\RowClass; use Isotope\Isotope; use Isotope\Model\Shipping; +use Isotope\Template; - +/** + * ShippingCalculator frontend module calculates the shipping price for the current cart. + * + * @property mixed $iso_shipping_modules + */ class ShippingCalculator extends Module { @@ -27,83 +31,97 @@ class ShippingCalculator extends Module protected $strTemplate = 'mod_iso_shipping_calculator'; /** - * Shipping methods - * @var array + * @inheritDoc */ - protected $arrShippingMethods = array(); + protected function getSerializedProperties() + { + $props = parent::getSerializedProperties(); + + $props[] = 'iso_shipping_modules'; + + return $props; + } /** - * Display a wildcard in the back end - * @return string + * @inheritdoc */ public function generate() { - if (TL_MODE == 'BE') { - $objTemplate = new \BackendTemplate('be_wildcard'); - - $objTemplate->wildcard = '### ISOTOPE ECOMMERCE: SHIPPING CALCULATOR ###'; - - $objTemplate->title = $this->headline; - $objTemplate->id = $this->id; - $objTemplate->link = $this->name; - $objTemplate->href = 'contao/main.php?do=themes&table=tl_module&act=edit&id=' . $this->id; - - return $objTemplate->parse(); + if ('BE' === TL_MODE) { + return $this->generateWildcard(); } - $this->arrShippingMethods = deserialize($this->iso_shipping_modules, true); - - if (empty($this->arrShippingMethods)) { + if (0 === count($this->iso_shipping_modules) || (Isotope::getCart()->isEmpty() && !$this->iso_emptyMessage)) { return ''; } return parent::generate(); } - /** * Generate the module */ protected function compile() { $objCart = Isotope::getCart(); + + if ($objCart->isEmpty()) { + $this->Template = new Template('mod_message'); + $this->Template->message = $this->iso_noProducts; + $this->Template->type = 'empty'; + + return; + } + + $this->Template->showResults = true; + $this->Template->requiresShipping = true; + $this->Template->shippingMethods = []; + $objAddress = $objCart->getShippingAddress(); - $this->Template->showResults = false; - $this->Template->requiresShipping = false; // There is no address if (!$objAddress->id) { + $this->Template->showResults = false; return; } - $this->Template->showResults = true; - $arrMethods = array(); - // Get the shipping methods - if ($objAddress->id && $objCart->requiresShipping()) { - $this->Template->requiresShipping = true; - $objShippingMethods = Shipping::findMultipleByIds($this->arrShippingMethods); - - /* @var Shipping $objShipping */ - foreach ($objShippingMethods as $objShipping) { - if ($objShipping->isAvailable()) { - - $fltPrice = $objShipping->getPrice(); - - $arrMethods[] = array( - 'label' => $objShipping->getLabel(), - 'price' => $fltPrice, - 'formatted_price' => Isotope::formatPriceWithCurrency($fltPrice), - 'shipping' => $objShipping - ); - } + if (!$objCart->requiresShipping()) { + $this->Template->requiresShipping = false; + return; + } + + /* @var Shipping[] $objShippingMethods */ + $objShippingMethods = Shipping::findMultipleByIds($this->iso_shipping_modules); + + if (null === $objShippingMethods) { + return; + } + + $arrMethods = []; + + foreach ($objShippingMethods as $objShipping) { + if (!$objShipping->isAvailable()) { + continue; } - RowClass::withKey('rowClass')->addCount('row_')->addFirstLast('row_')->addEvenOdd('row_')->applyTo( - $arrMethods - ); + $fltPrice = $objShipping->getPrice(); + + $arrMethods[] = [ + 'label' => $objShipping->getLabel(), + 'price' => $fltPrice, + 'formatted_price' => Isotope::formatPriceWithCurrency($fltPrice), + 'shipping' => $objShipping + ]; } + RowClass::withKey('rowClass') + ->addCount('row_') + ->addFirstLast('row_') + ->addEvenOdd('row_') + ->applyTo($arrMethods) + ; + $this->Template->shippingMethods = $arrMethods; } } diff --git a/system/modules/isotope/library/Isotope/RequestCache/CsvFilter.php b/system/modules/isotope/library/Isotope/RequestCache/CsvFilter.php index 2a73a2561d..8690529083 100644 --- a/system/modules/isotope/library/Isotope/RequestCache/CsvFilter.php +++ b/system/modules/isotope/library/Isotope/RequestCache/CsvFilter.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\RequestCache; @@ -19,6 +18,13 @@ */ class CsvFilter extends Filter { + /** + * Adds a filter to validate if attribute contains given value. + * + * @param mixed $value + * + * @return $this + */ public function contains($value) { $this->filter('FIND_IN_SET', $value); @@ -26,16 +32,25 @@ public function contains($value) return $this; } + /** + * @inheritdoc + */ public function sqlWhere() { return 'FIND_IN_SET(?, ' . $this->getFieldForSQL() . ')'; } + /** + * @inheritdoc + */ public function getOperatorForSQL() { throw new \BadMethodCallException('The CsvFilter class cannot return an SQL operator.'); } + /** + * @inheritdoc + */ protected function filter($operator, $value) { if ($operator !== 'FIND_IN_SET') { diff --git a/system/modules/isotope/library/Isotope/RequestCache/Filter.php b/system/modules/isotope/library/Isotope/RequestCache/Filter.php index 62403ad2e7..cfa67d7f73 100644 --- a/system/modules/isotope/library/Isotope/RequestCache/Filter.php +++ b/system/modules/isotope/library/Isotope/RequestCache/Filter.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\RequestCache; @@ -23,6 +22,14 @@ */ class Filter implements \ArrayAccess { + const CONTAINS = 'like'; + const EQUAL = 'eq'; + const NOT_EQUAL = 'neq'; + const GREATER_THAN = 'gt'; + const GREATER_EQUAL = 'gte'; + const SMALLER_THAN = 'lt'; + const SMALLER_EQUAL = 'lte'; + /** * Filter config */ @@ -84,7 +91,7 @@ public function offsetGet($offset) */ public function valueNotIn(array $arrValues) { - return !in_array($this->arrConfig['value'], $arrValues); + return !in_array($this->arrConfig['value'], $arrValues, false); } /** @@ -109,42 +116,42 @@ public function contains($value) public function isEqualTo($value) { - $this->filter('eq', $value); + $this->filter(static::EQUAL, $value); return $this; } public function isNotEqualTo($value) { - $this->filter('neq', $value); + $this->filter(static::NOT_EQUAL, $value); return $this; } public function isSmallerThan($value) { - $this->filter('lt', $value); + $this->filter(static::SMALLER_THAN, $value); return $this; } public function isSmallerOrEqualTo($value) { - $this->filter('lte', $value); + $this->filter(static::SMALLER_EQUAL, $value); return $this; } public function isGreaterThan($value) { - $this->filter('gt', $value); + $this->filter(static::GREATER_THAN, $value); return $this; } public function isGreaterOrEqualTo($value) { - $this->filter('gte', $value); + $this->filter(static::GREATER_EQUAL, $value); return $this; } @@ -210,43 +217,43 @@ public function matches(IsotopeProduct $objProduct) foreach ($varValues as $varValue) { switch ($this->arrConfig['operator']) { - case 'like': + case static::CONTAINS: if (stripos($varValue, $this->arrConfig['value']) !== false) { return true; } break; - case 'gt': + case static::GREATER_THAN: if ($varValue > $this->arrConfig['value']) { return true; } break; - case 'lt': + case static::SMALLER_THAN: if ($varValue < $this->arrConfig['value']) { return true; } break; - case 'gte': + case static::GREATER_EQUAL: if ($varValue >= $this->arrConfig['value']) { return true; } break; - case 'lte': + case static::SMALLER_EQUAL: if ($varValue <= $this->arrConfig['value']) { return true; } break; - case 'neq': + case static::NOT_EQUAL: if ($varValue != $this->arrConfig['value']) { return true; } break; - case 'eq': + case static::EQUAL: if ($varValue == $this->arrConfig['value']) { return true; } @@ -269,7 +276,7 @@ public function matches(IsotopeProduct $objProduct) */ public function isDynamicAttribute() { - return in_array($this->arrConfig['attribute'], Attribute::getDynamicAttributeFields()); + return in_array($this->arrConfig['attribute'], Attribute::getDynamicAttributeFields(), true); } /** @@ -279,7 +286,7 @@ public function isDynamicAttribute() */ public function isMultilingualAttribute() { - return in_array($this->arrConfig['attribute'], Attribute::getMultilingualFields()); + return in_array($this->arrConfig['attribute'], Attribute::getMultilingualFields(), true); } /** @@ -299,11 +306,11 @@ public function sqlWhere() */ public function sqlValue() { - if ('like' === $this->arrConfig['operator']) { - return (('%' . $this->arrConfig['value'] . '%')); + if (static::CONTAINS === $this->arrConfig['operator']) { + return ('%' . $this->arrConfig['value'] . '%'); } - return ($this->arrConfig['value']); + return $this->arrConfig['value']; } /** @@ -313,30 +320,30 @@ public function sqlValue() */ public function getOperatorForSQL() { - if ($this->arrConfig['operator'] == '') { + if ('' === (string) $this->arrConfig['operator']) { throw new \BadMethodCallException('Filter operator is not yet configured'); } switch ($this->arrConfig['operator']) { - case 'like': + case static::CONTAINS: return 'LIKE'; - case 'gt': + case static::GREATER_THAN: return '>'; - case 'lt': + case static::SMALLER_THAN: return '<'; - case 'gte': + case static::GREATER_EQUAL: return '>='; - case 'lte': + case static::SMALLER_EQUAL: return '<='; - case 'neq': + case static::NOT_EQUAL: return '!='; - case 'eq': + case static::EQUAL: return '='; default: diff --git a/system/modules/isotope/library/Isotope/RequestCache/FilterQueryBuilder.php b/system/modules/isotope/library/Isotope/RequestCache/FilterQueryBuilder.php index 3a7176c615..5325e81443 100644 --- a/system/modules/isotope/library/Isotope/RequestCache/FilterQueryBuilder.php +++ b/system/modules/isotope/library/Isotope/RequestCache/FilterQueryBuilder.php @@ -1,4 +1,12 @@ tableExists($strTable)) { + return false; + } + if (!\Database::getInstance()->fieldExists($strField, $strTable)) { \Database::getInstance()->query(" ALTER TABLE $strTable @@ -49,6 +52,10 @@ protected function createDatabaseField($strField, $strTable) */ protected function renameDatabaseField($strOldField, $strNewField, $strTable) { + if (!\Database::getInstance()->tableExists($strTable)) { + return false; + } + if (\Database::getInstance()->fieldExists($strOldField, $strTable) && !\Database::getInstance()->fieldExists($strNewField, $strTable) ) { @@ -82,4 +89,4 @@ private function getSqlForField($strField, $strTable) return $strSql; } -} \ No newline at end of file +} diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020000000.php b/system/modules/isotope/library/Isotope/Upgrade/To0020000000.php index 6a2f5a4876..1a31aee80a 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020000000.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020000000.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020000009.php b/system/modules/isotope/library/Isotope/Upgrade/To0020000009.php index 5958783dd8..053e7ec16f 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020000009.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020000009.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020000019.php b/system/modules/isotope/library/Isotope/Upgrade/To0020000019.php index 392e05906e..0e9d170134 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020000019.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020000019.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020000029.php b/system/modules/isotope/library/Isotope/Upgrade/To0020000029.php index 5e88524cc7..ecef7a0678 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020000029.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020000029.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020010000.php b/system/modules/isotope/library/Isotope/Upgrade/To0020010000.php index 7671192dc8..4813354d81 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020010000.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020010000.php @@ -3,19 +3,21 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; +use Isotope\Model\Gallery; class To0020010000 extends Assistant { - + /** + * @var Gallery[] + */ protected $objGaleries; public function run($blnInstalled) @@ -23,8 +25,8 @@ public function run($blnInstalled) if ($blnInstalled && \Database::getInstance()->tableExists('tl_iso_gallery')) { $this->createDatabaseField('lightbox_template', 'tl_iso_gallery'); - $t = \Isotope\Model\Gallery::getTable(); - $this->objGaleries = \Isotope\Model\Gallery::findBy( + $t = Gallery::getTable(); + $this->objGaleries = Gallery::findBy( array("$t.type='standard'", "$t.anchor='lightbox'", "lightbox_template IS NULL"), null ); @@ -59,7 +61,7 @@ public function compile() 'eval' => array('includeBlankOption'=>true, 'mandatory'=>true) ), 'gallery['.$objGallery->id.']')); - if (\Input::post('FORM_SUBMIT') == 'tl_iso_upgrade_20010000') { + if ('tl_iso_upgrade_20010000' === \Input::post('FORM_SUBMIT')) { $objSelect->validate(); if (!$objSelect->hasErrors()) { @@ -83,7 +85,7 @@ public function compile() $this->Template->fields = $strBuffer; $this->Template->matter = $GLOBALS['TL_LANG']['UPG']['20010000']; - if (\Input::post('FORM_SUBMIT') == 'tl_iso_upgrade_20010000') { + if ('tl_iso_upgrade_20010000' === \Input::post('FORM_SUBMIT')) { \Controller::reload(); } } diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020010004.php b/system/modules/isotope/library/Isotope/Upgrade/To0020010004.php index e751fe05e4..8863f5e64d 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020010004.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020010004.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; @@ -18,7 +17,10 @@ class To0020010004 extends \System public function run($blnInstalled) { - if ($blnInstalled) { + if ($blnInstalled + && \Database::getInstance()->fieldExists('tableless', 'tl_module') + && \Database::getInstance()->fieldExists('tableless', 'tl_form') + ) { $objModules = \Database::getInstance()->query(" SELECT iso_order_conditions, tableless FROM tl_module WHERE iso_order_conditions>0 diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020010064.php b/system/modules/isotope/library/Isotope/Upgrade/To0020010064.php index a4cf2f43bd..5b4cfa22e8 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020010064.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020010064.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020020000.php b/system/modules/isotope/library/Isotope/Upgrade/To0020020000.php index f7e823250e..c7619b2f59 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020020000.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020020000.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020020003.php b/system/modules/isotope/library/Isotope/Upgrade/To0020020003.php index c2067a07f6..a1f6f76117 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020020003.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020020003.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020030006.php b/system/modules/isotope/library/Isotope/Upgrade/To0020030006.php index 469db1cfe5..b88cffdf2c 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020030006.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020030006.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020030007.php b/system/modules/isotope/library/Isotope/Upgrade/To0020030007.php index f757640271..289f81e9c2 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020030007.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020030007.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020030009.php b/system/modules/isotope/library/Isotope/Upgrade/To0020030009.php index a785b650dd..920c5594a9 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020030009.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020030009.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020030029.php b/system/modules/isotope/library/Isotope/Upgrade/To0020030029.php index dfbdf6db1e..ff4c9cf098 100644 --- a/system/modules/isotope/library/Isotope/Upgrade/To0020030029.php +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020030029.php @@ -3,16 +3,14 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Upgrade; -use Isotope\Interfaces\IsotopeAttributeWithOptions; use Isotope\Model\Attribute; class To0020030029 extends Base diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020040000.php b/system/modules/isotope/library/Isotope/Upgrade/To0020040000.php new file mode 100644 index 0000000000..9a3f1e2cd9 --- /dev/null +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020040000.php @@ -0,0 +1,94 @@ +migrateUploadAttributes(); + $this->migrateCollectionDates(); + } + + private function migrateUploadAttributes() + { + $db = \Database::getInstance(); + $table = Attribute::getTable(); + + if ($this->createDatabaseField('checkoutTargetFolder', $table)) { + $db + ->prepare("UPDATE $table SET checkoutTargetFolder=?") + ->execute($GLOBALS['TL_DCA'][$table]['fields']['checkoutTargetFolder']['default']) + ; + } + + if ($this->createDatabaseField('checkoutTargetFile', $table)) { + $db + ->prepare("UPDATE $table SET checkoutTargetFile=?") + ->execute($GLOBALS['TL_DCA'][$table]['fields']['checkoutTargetFile']['default']) + ; + } + + $uploads = $db->execute("SELECT * FROM tl_iso_attribute WHERE type='upload' AND storeFile='1'"); + + while ($uploads->next()) { + $target = $GLOBALS['TL_DCA'][$table]['fields']['checkoutTargetFolder']['default']; + + if (($uploadFolder = FilesModel::findByPk($uploads->uploadFolder)) !== null) { + $target = $uploadFolder->path; + } + + if ($uploads->useHomeDir) { + $target = sprintf( + '{if has_member="1"}{if member_homeDir!=""}##member_homeDir##{else}%s{endif}{else}%s{endif}', + $target, + $target + ); + } + + $db + ->prepare("UPDATE tl_iso_attribute SET checkoutTargetFolder=?, storeFile='' WHERE id=?") + ->execute($target, $uploads->id) + ; + } + } + + private function migrateCollectionDates() + { + $db = \Database::getInstance(); + + $db->query(' + ALTER TABLE tl_iso_product_collection + CHANGE COLUMN `date_paid` `date_paid` VARCHAR(10) NULL, + CHANGE COLUMN `date_shipped` `date_shipped` VARCHAR(10) NULL, + CHANGE COLUMN `locked` `locked` VARCHAR(10) NULL + '); + + $db->query("UPDATE tl_iso_product_collection SET date_paid=NULL WHERE date_paid=''"); + $db->query("UPDATE tl_iso_product_collection SET date_shipped=NULL WHERE date_shipped=''"); + $db->query("UPDATE tl_iso_product_collection SET locked=NULL WHERE locked=''"); + + $db->query(' + ALTER TABLE tl_iso_product_collection + CHANGE COLUMN `date_paid` `date_paid` INT(10) NULL, + CHANGE COLUMN `date_shipped` `date_shipped` INT(10) NULL, + CHANGE COLUMN `locked` `locked` INT(10) NULL + '); + } +} diff --git a/system/modules/isotope/library/Isotope/Upgrade/To0020040003.php b/system/modules/isotope/library/Isotope/Upgrade/To0020040003.php new file mode 100644 index 0000000000..f0b5fc27eb --- /dev/null +++ b/system/modules/isotope/library/Isotope/Upgrade/To0020040003.php @@ -0,0 +1,29 @@ +createDatabaseField('rounding', 'tl_iso_rule')) { + \Database::getInstance()->query("UPDATE tl_iso_rule SET rounding='down'"); + } + } +} diff --git a/system/modules/isotope/library/Isotope/VatNoValidator/EuViesValidator.php b/system/modules/isotope/library/Isotope/VatNoValidator/EuViesValidator.php index ec350f425a..064c7f305b 100644 --- a/system/modules/isotope/library/Isotope/VatNoValidator/EuViesValidator.php +++ b/system/modules/isotope/library/Isotope/VatNoValidator/EuViesValidator.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\VatNoValidator; @@ -30,14 +29,14 @@ class EuViesValidator implements IsotopeVatNoValidator /** * WSDL VIES Url Service * - * @type string + * @var string */ private static $url_vies = 'http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl'; /** * Valid european countries ISO codes * - * @type array + * @var array */ private static $european_countries = array('AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'ES', 'FI', 'FR', 'GB', 'GR', 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'RO', 'SE', 'SI', 'SK'); diff --git a/system/modules/isotope/library/Isotope/Widget/InheritCheckBox.php b/system/modules/isotope/library/Isotope/Widget/InheritCheckBox.php index d7ed1e2ec8..6e5bb7777e 100644 --- a/system/modules/isotope/library/Isotope/Widget/InheritCheckBox.php +++ b/system/modules/isotope/library/Isotope/Widget/InheritCheckBox.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Widget; diff --git a/system/modules/isotope/library/Isotope/Widget/MediaManager.php b/system/modules/isotope/library/Isotope/Widget/MediaManager.php index 8c3909fac4..2695991965 100755 --- a/system/modules/isotope/library/Isotope/Widget/MediaManager.php +++ b/system/modules/isotope/library/Isotope/Widget/MediaManager.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Widget; @@ -87,12 +86,10 @@ public function __set($strKey, $varValue) */ public function ajaxUpload() { - $strFile = $this->validateUpload(); + $arrResponse = array('success' => true, 'file' => $this->validateUpload()); if ($this->hasErrors()) { $arrResponse = array('success' => false, 'error' => $this->getErrorAsString(), 'preventRetry' => true); - } else { - $arrResponse = array('success' => true, 'file' => $strFile); } // Can't use Haste\Response\JsonResponse, it triggers a json download in IE iframes @@ -183,7 +180,7 @@ public function validate() if (is_array($arrFallback)) { foreach ($arrFallback as $k => $arrImage) { - if ($arrImage['translate'] == 'all') { + if ('all' === $arrImage['translate']) { unset($arrFallback[$k]); } } @@ -248,7 +245,7 @@ public function validate() */ public function generate() { - if (\Input::post('action') == 'uploadMediaManager') { + if ('uploadMediaManager' === \Input::post('action')) { $this->ajaxUpload(); } @@ -383,8 +380,8 @@ public function generate() $strPreview = 'system/themes/' . \Backend::getTheme() . '/images/' . $objFile->icon; } - $strTranslateText = ($blnLanguage && $this->varValue[$i]['translate'] != 'all') ? ' disabled="disabled"' : ''; - $strTranslateNone = ($blnLanguage && $this->varValue[$i]['translate'] == 'none') ? ' disabled="disabled"' : ''; + $strTranslateText = ($blnLanguage && 'all' !== $this->varValue[$i]['translate']) ? ' disabled="disabled"' : ''; + $strTranslateNone = ($blnLanguage && 'none' === $this->varValue[$i]['translate']) ? ' disabled="disabled"' : ''; $return .= ' @@ -395,13 +392,13 @@ public function generate() '.($blnLanguage ? ('') : '').'

- optionChecked('none', $this->varValue[$i]['translate']).($blnLanguage ? ' disabled="disabled"' : '').'> + varValue[$i]['translate']).($blnLanguage ? ' disabled="disabled"' : '').'> - optionChecked('text', $this->varValue[$i]['translate']).($blnLanguage ? ' disabled="disabled"' : '').'> + varValue[$i]['translate']).($blnLanguage ? ' disabled="disabled"' : '').'> - optionChecked('all', $this->varValue[$i]['translate']).($blnLanguage ? ' disabled="disabled"' : '').'> + varValue[$i]['translate']).($blnLanguage ? ' disabled="disabled"' : '').'>
@@ -409,16 +406,16 @@ public function generate() // Add buttons foreach ($arrButtons as $button) { - if ($button == 'delete' && $blnLanguage && $this->varValue[$i]['translate'] != 'all') { + if ('delete' === $button && $blnLanguage && 'all' !== $this->varValue[$i]['translate']) { continue; } - $class = ($button == 'up' || $button == 'down') ? ' class="button-move"' : ''; + $class = ('up' === $button || 'down' === $button) ? ' class="button-move"' : ''; - if ($button == 'drag') { + if ('drag' === $button) { $return .= \Image::getHtml('drag.gif', '', 'class="drag-handle" title="' . sprintf($GLOBALS['TL_LANG']['MSC']['move']) . '"'); } else { - $return .= ''.\Image::getHtml($button.'.gif', $GLOBALS['TL_LANG'][$this->strTable]['wz_'.$button], 'class="tl_listwizard_img"').' '; + $return .= ''.\Image::getHtml($button.'.gif', $GLOBALS['TL_LANG'][$this->strTable]['wz_'.$button], 'class="tl_listwizard_img"').' '; } } diff --git a/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php b/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php index 1225131c43..a976351378 100644 --- a/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php +++ b/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php @@ -3,15 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Widget; +use Haste\Util\Debug; + /** * Class ProductGroupSelector @@ -70,7 +71,7 @@ public function __construct($arrAttributes = false) { parent::__construct($arrAttributes); - $this->loadDataContainer('tl_iso_group'); + \Controller::loadDataContainer('tl_iso_group'); \System::loadLanguageFile('tl_iso_group'); $this->import('Database'); @@ -110,14 +111,12 @@ protected function validator($varInput) } // Check if there is at least one value - if ($this->fieldType == 'text') { - if (is_array($varInput)) { - foreach ($varInput as $k => $option) { - if ($this->mandatory && $option != '') { - $this->mandatory = false; - } elseif ($option == '') { - unset($varInput[$k]); - } + if ('text' === $this->fieldType && is_array($varInput)) { + foreach ($varInput as $k => $option) { + if ($this->mandatory && $option != '') { + $this->mandatory = false; + } elseif ($option == '') { + unset($varInput[$k]); } } } @@ -132,7 +131,7 @@ protected function validator($varInput) */ public function generate() { - $GLOBALS['TL_JAVASCRIPT'][] = \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/js/backend.min.js'); + $GLOBALS['TL_JAVASCRIPT'][] = Debug::uncompressedFile('system/modules/isotope/assets/js/backend.min.js'); // Open the tree if there is an error if ($this->hasErrors()) { @@ -140,9 +139,9 @@ public function generate() } // Store the keyword - if (\Input::post('FORM_SUBMIT') == 'item_selector') { + if ('item_selector' === \Input::post('FORM_SUBMIT')) { $this->Session->set('product_group_selector_search', \Input::post('keyword')); - $this->reload(); + \Controller::reload(); } $tree = ''; @@ -153,7 +152,7 @@ public function generate() // Search for a specific group if ($for != '') { // The keyword must not start with a wildcard (see #4910) - if (strncmp($for, '*', 1) === 0) { + if (0 === strpos($for, '*')) { $for = substr($for, 1); } @@ -217,7 +216,7 @@ public function generate() } // Select all checkboxes - if ($GLOBALS['TL_DCA'][$this->strTable]['fields'][$this->strField]['eval']['fieldType'] == 'checkbox') { + if ('checkbox' === $GLOBALS['TL_DCA'][$this->strTable]['fields'][$this->strField]['eval']['fieldType']) { $strReset = "\n" . '
  •  
  • '; } // Reset radio button selection else { @@ -245,7 +244,7 @@ public function generateAjax($id, $strField, $level) } $this->strField = $strField; - $this->loadDataContainer($this->strTable); + \Controller::loadDataContainer($this->strTable); // Load current values switch ($GLOBALS['TL_DCA'][$this->strTable]['config']['dataContainer']) { @@ -373,7 +372,7 @@ protected function renderGrouptree($id, $intMargin, $blnNoRecursion = false) $return .= '
    • '; for ($k = 0, $c = count($childs); $k < $c; $k++) { - $return .= $this->renderGrouptree($childs[$k], ($intMargin + $intSpacing)); + $return .= $this->renderGrouptree($childs[$k], $intMargin + $intSpacing); } $return .= '
  • '; diff --git a/system/modules/isotope/postsale.php b/system/modules/isotope/postsale.php index 32065580b8..dbe7ccb0b1 100644 --- a/system/modules/isotope/postsale.php +++ b/system/modules/isotope/postsale.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; @@ -30,16 +29,7 @@ define('TL_MODE', 'FE'); define('BYPASS_TOKEN_CHECK', true); -// Include the Contao initialization script -if (file_exists('../../initialize.php')) { - // Regular way - /** @noinspection PhpIncludeInspection */ - require_once('../../initialize.php'); -} else { - // Try composer location (see #1136) - /** @noinspection PhpIncludeInspection */ - require_once('../../../../../../../system/initialize.php'); -} +require_once('initialize.php'); class PostSale extends \Frontend @@ -63,12 +53,7 @@ public function __construct() { parent::__construct(); - // Contao Hooks are not save to be run on the postsale script (e.g. parseFrontendTemplate) - unset($GLOBALS['TL_HOOKS']); - - // Need to load our own Hooks (e.g. loadDataContainer) - /** @noinspection PhpIncludeInspection */ - include(TL_ROOT . '/system/modules/isotope/config/hooks.php'); + $this->removeUnsupportedHooks(); // Default parameters $this->setModule((string) (\Input::post('mod') ?: \Input::get('mod'))); @@ -230,6 +215,21 @@ private function logRequest() 'isotope_postsale.log' ); } + + private function removeUnsupportedHooks() + { + $GLOBALS['TL_HOOKS'] = array_intersect_key( + $GLOBALS['TL_HOOKS'], + array_flip( + [ + 'addCustomRegexp', + 'getAttributesFromDca', + 'loadDataContainer', + 'replaceInsertTags', + ] + ) + ); + } } diff --git a/system/modules/isotope/templates/backend/be_iso_introduction.html5 b/system/modules/isotope/templates/backend/be_iso_introduction.html5 index 5c18f9472a..3a4383b727 100644 --- a/system/modules/isotope/templates/backend/be_iso_introduction.html5 +++ b/system/modules/isotope/templates/backend/be_iso_introduction.html5 @@ -2,7 +2,7 @@

    diff --git a/system/modules/isotope/templates/checkout/iso_checkout_address.html5 b/system/modules/isotope/templates/checkout/iso_checkout_address.html5 index 950b05a248..f4ec8de053 100644 --- a/system/modules/isotope/templates/checkout/iso_checkout_address.html5 +++ b/system/modules/isotope/templates/checkout/iso_checkout_address.html5 @@ -1,7 +1,8 @@

    headline; ?>

    -

    message; ?>

    +message): ?>

    message; ?>

    options; ?> +fields): ?>
    style): ?> style="style; ?>"> tableless): ?> fields; ?> @@ -10,4 +11,5 @@ fields; ?> -
    \ No newline at end of file +
    + \ No newline at end of file diff --git a/system/modules/isotope/templates/collection/iso_collection_default.html5 b/system/modules/isotope/templates/collection/iso_collection_default.html5 index 62bbac2f67..079190e16d 100644 --- a/system/modules/isotope/templates/collection/iso_collection_default.html5 +++ b/system/modules/isotope/templates/collection/iso_collection_default.html5 @@ -1,7 +1,7 @@ textOnly): ?> items as $item ): ?> - (: ): x = + ( $value): ?>attributeLabel($name); ?>: attributeValue($name, $value) ?>): x = -------------------- @@ -14,7 +14,7 @@ : total; ?> -isEditable): ?> +buttons)): ?>
    @@ -32,10 +32,10 @@ getGallery('images', $item['item'])->generateMainImage(); ?> linkProducts && $item['href']): ?> - +
      - -
    • :
    • + $value): ?> +
    • attributeLabel($name) ?>: attributeValue($name, $value, ['html'=>true, 'item'=>$item['item']]) ?>
    @@ -50,7 +50,10 @@ total_tax_ids > 1): ?> isEditable): ?> - + + + + hasErrors()): ?>

    ', $item['item']->getErrors()); ?>

    @@ -95,15 +98,13 @@ -isEditable): ?> -
    buttons)): ?> +
    buttons as $button): ?>
    - diff --git a/system/modules/isotope/templates/collection/iso_collection_favorites.html5 b/system/modules/isotope/templates/collection/iso_collection_favorites.html5 new file mode 100644 index 0000000000..bdb34febbd --- /dev/null +++ b/system/modules/isotope/templates/collection/iso_collection_favorites.html5 @@ -0,0 +1,53 @@ +buttons)): ?> +
    +
    + + + + +collection->hasErrors()): ?> +

    ', $this->collection->getErrors()); ?>

    + + + + +items as $item): $i=0; ?> + isNotification): ?> + + + isEditable): ?> + + + + hasErrors()): ?> + + + + + + +
    getGallery('images', $item['item'])->generateMainImage(); ?> + linkProducts && $item['href']): ?> + +
      + $value): ?> +
    • attributeLabel($name) ?>: attributeValue($name, $value, ['html'=>true, 'item'=>$item['item']]) ?>
    • + +
    + +
    + + + + +

    ', $item['item']->getErrors()); ?>

    + +buttons)): ?> +
    +
    +buttons as $button): ?> + + +
    +
    + diff --git a/system/modules/isotope/templates/collection/iso_collection_invoice.html5 b/system/modules/isotope/templates/collection/iso_collection_invoice.html5 index 13621bc549..213e6a520c 100644 --- a/system/modules/isotope/templates/collection/iso_collection_invoice.html5 +++ b/system/modules/isotope/templates/collection/iso_collection_invoice.html5 @@ -1,50 +1,50 @@
    - - - - total_tax_ids > 1): ?> + + + + total_tax_ids > 1): ?> items as $item):; ?> - - - - total_tax_ids > 1): ?> - + + + total_tax_ids > 1): ?> + - - total_tax_ids > 1): ?> + + total_tax_ids > 1): ?> surcharges as $surcharge): $i=0; ?> - - - - total_tax_ids > 1): ?> - + + + + total_tax_ids > 1): ?> + - - total_tax_ids > 1): ?> + + total_tax_ids > 1): ?>
    Bezeichnung 
     
     
    + - -
    : + $value): ?> +
    attributeLabel($name) ?>: attributeValue($name, $value, ['html'=>true, 'item'=>$item['item']]) ?>
     
     
     
    subtotal; ?>subtotal ?> 
     
     
    total; ?>total ?> 
    diff --git a/system/modules/isotope/templates/collection/iso_collection_mini.html5 b/system/modules/isotope/templates/collection/iso_collection_mini.html5 index f269ed2834..c175ccca99 100644 --- a/system/modules/isotope/templates/collection/iso_collection_mini.html5 +++ b/system/modules/isotope/templates/collection/iso_collection_mini.html5 @@ -6,8 +6,8 @@
      - -
    • :
    • + $value): ?> +
    • attributeLabel($name) ?>: attributeValue($name, $value, ['html'=>true, 'item'=>$item['item']]) ?>
    diff --git a/system/modules/isotope/templates/gallery/iso_gallery_elevatezoom.html5 b/system/modules/isotope/templates/gallery/iso_gallery_elevatezoom.html5 index cd9e581469..4ea0fcc88d 100644 --- a/system/modules/isotope/templates/gallery/iso_gallery_elevatezoom.html5 +++ b/system/modules/isotope/templates/gallery/iso_gallery_elevatezoom.html5 @@ -1,11 +1,11 @@ type == 'gallery'): ?> -
    -zoom): ?> data-zoom-image="zoom['zoom']; ?>" onclick="return Isotope.elevateZoom(this, 'guid; ?>');"> +
    +zoom): ?> data-zoom-image="zoom['zoom']; ?>" onclick="return Isotope.elevateZoom(this, 'gname; ?>');"> <?php echo $this->alt; ?>size; ?>class) echo ' class="'.$this->class.'"'; ?>>
    -
    zoom): ?> data-zoom-image="zoom['zoom']; ?>" itemprop="image" alt="alt; ?>">
    +
    zoom): ?> data-zoom-image="zoom['zoom']; ?>" itemprop="image" alt="alt; ?>">
    zoom): ?> @@ -98,5 +74,4 @@ window.addEvent('domready', function() {
     
    -
    - \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/isotope/iso_list_default.html5 b/system/modules/isotope/templates/isotope/iso_list_default.html5 index 7bd73c3998..b0cda701bc 100644 --- a/system/modules/isotope/templates/isotope/iso_list_default.html5 +++ b/system/modules/isotope/templates/isotope/iso_list_default.html5 @@ -30,7 +30,7 @@
    buttons as $name => $button ): ?> - +
    diff --git a/system/modules/isotope/templates/isotope/iso_list_variants.html5 b/system/modules/isotope/templates/isotope/iso_list_variants.html5 index 9afda204dd..047efe1bc9 100644 --- a/system/modules/isotope/templates/isotope/iso_list_variants.html5 +++ b/system/modules/isotope/templates/isotope/iso_list_variants.html5 @@ -33,7 +33,7 @@
    buttons as $name => $button ): ?> - + diff --git a/system/modules/isotope/templates/isotope/iso_reader_default.html5 b/system/modules/isotope/templates/isotope/iso_reader_default.html5 index 8b2c62d3e6..301767b66a 100644 --- a/system/modules/isotope/templates/isotope/iso_reader_default.html5 +++ b/system/modules/isotope/templates/isotope/iso_reader_default.html5 @@ -31,7 +31,7 @@ buttons as $name => $button ): ?> - + diff --git a/system/modules/isotope/templates/isotope/iso_scripts.html5 b/system/modules/isotope/templates/isotope/iso_scripts.html5 index 9a34b5a858..657a4db6dc 100644 --- a/system/modules/isotope/templates/isotope/iso_scripts.html5 +++ b/system/modules/isotope/templates/isotope/iso_scripts.html5 @@ -1,12 +1,10 @@ diff --git a/system/modules/isotope/templates/modules/mod_iso_addressbook.html5 b/system/modules/isotope/templates/modules/mod_iso_addressbook.html5 index 25c9f0d3b0..ebcef7378d 100644 --- a/system/modules/isotope/templates/modules/mod_iso_addressbook.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_addressbook.html5 @@ -1,10 +1,7 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> +block('content'); ?> -<hl; ?>>headline; ?>hl; ?>> - message)): ?>

    message; ?>

    @@ -25,5 +22,4 @@
    - - +endblock(); ?> \ No newline at end of file diff --git a/system/modules/isotope/templates/modules/mod_iso_cart.html5 b/system/modules/isotope/templates/modules/mod_iso_cart.html5 index 82eee3ea92..489d897d6f 100644 --- a/system/modules/isotope/templates/modules/mod_iso_cart.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_cart.html5 @@ -1,10 +1,7 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> +block('content'); ?> -<hl; ?>>headline; ?>hl; ?>> - message): ?>

    message; ?>

    @@ -13,5 +10,4 @@ products; ?> custom; ?> -
    - +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_checkout.html5 b/system/modules/isotope/templates/modules/mod_iso_checkout.html5 index aa3974e463..1c4b01303a 100644 --- a/system/modules/isotope/templates/modules/mod_iso_checkout.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_checkout.html5 @@ -1,10 +1,6 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> - -<hl; ?>>headline; ?>hl; ?>> - +block('content'); ?> steps) && count($this->steps)): ?>
    @@ -42,20 +38,15 @@
    showPrevious || $this->showNext): ?>
    - showPrevious): ?>showNext): ?> - + showPrevious): ?> + showNext): ?>
    -
    - \ No newline at end of file + +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_configswitcher.html5 b/system/modules/isotope/templates/modules/mod_iso_configswitcher.html5 index 93fca82eb3..67568bcb77 100644 --- a/system/modules/isotope/templates/modules/mod_iso_configswitcher.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_configswitcher.html5 @@ -1,10 +1,6 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> - -<hl; ?>>headline; ?>hl; ?>> - +block('content'); ?>
      configs as $config ): if ($config['active']): ?> @@ -14,5 +10,4 @@
    -
    - \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_favorites.html5 b/system/modules/isotope/templates/modules/mod_iso_favorites.html5 new file mode 100644 index 0000000000..5df32866c3 --- /dev/null +++ b/system/modules/isotope/templates/modules/mod_iso_favorites.html5 @@ -0,0 +1,12 @@ +extend('block_unsearchable') ?> + +block('content') ?> + +message): ?> +

    message; ?>

    + + +products; ?> + +endblock() ?> + diff --git a/system/modules/isotope/templates/modules/mod_iso_messages.html5 b/system/modules/isotope/templates/modules/mod_iso_messages.html5 index ff6d41d866..5d20622590 100644 --- a/system/modules/isotope/templates/modules/mod_iso_messages.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_messages.html5 @@ -1,12 +1,7 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> - -<hl; ?>>headline; ?>hl; ?>> - +block('content'); ?> messages; ?> -
    - \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_orderdetails.html5 b/system/modules/isotope/templates/modules/mod_iso_orderdetails.html5 index 4c5898a999..504d661051 100644 --- a/system/modules/isotope/templates/modules/mod_iso_orderdetails.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_orderdetails.html5 @@ -1,12 +1,9 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> +block('content'); ?> -<hl; ?>>headline; ?>hl; ?>> - -

    orderStatus; ?>

    orderDetailsHeadline; ?>

    +
    orderStatus; ?>
    info as $type => $data): ?>
    @@ -18,5 +15,4 @@ products; ?> -
    - \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_orderhistory.html5 b/system/modules/isotope/templates/modules/mod_iso_orderhistory.html5 index a624492583..31f85e3059 100644 --- a/system/modules/isotope/templates/modules/mod_iso_orderhistory.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_orderhistory.html5 @@ -1,10 +1,6 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> - -<hl; ?>>headline; ?>hl; ?>> - +block('content'); ?> @@ -23,11 +19,13 @@ - +
    -
    - \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_productlist.html5 b/system/modules/isotope/templates/modules/mod_iso_productlist.html5 index cfd35df476..d8dd591b3e 100644 --- a/system/modules/isotope/templates/modules/mod_iso_productlist.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_productlist.html5 @@ -1,8 +1,7 @@ -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> +extend('block_searchable'); ?> + +block('content'); ?> -<hl; ?>>headline; ?>hl; ?>> - message): ?>

    message; ?>

    @@ -20,4 +19,4 @@ pagination; ?> -
    \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_productlist_caching.html5 b/system/modules/isotope/templates/modules/mod_iso_productlist_caching.html5 index 0d36560d3e..1c6e54a5aa 100644 --- a/system/modules/isotope/templates/modules/mod_iso_productlist_caching.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_productlist_caching.html5 @@ -1,10 +1,6 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> - -<hl; ?>>headline; ?>hl; ?>> - +block('content'); ?>

    message; ?>

    @@ -12,20 +8,26 @@

    noscript; ?>

    -
    - \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_productreader.html5 b/system/modules/isotope/templates/modules/mod_iso_productreader.html5 index c0559f7a16..a93441581b 100644 --- a/system/modules/isotope/templates/modules/mod_iso_productreader.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_productreader.html5 @@ -1,8 +1,6 @@ -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> +extend('block_searchable'); ?> -<hl; ?>>headline; ?>hl; ?>> - +block('content'); ?> product_id; ?> class="product_class; ?>"> product; ?> @@ -12,4 +10,4 @@

    back; ?>

    -
    \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/modules/mod_iso_shipping_calculator.html5 b/system/modules/isotope/templates/modules/mod_iso_shipping_calculator.html5 index 5f0a3fbdeb..01dbd3637e 100644 --- a/system/modules/isotope/templates/modules/mod_iso_shipping_calculator.html5 +++ b/system/modules/isotope/templates/modules/mod_iso_shipping_calculator.html5 @@ -1,10 +1,6 @@ +extend('block_unsearchable'); ?> - -
    cssID; ?>style): ?> style="style; ?>"> -headline): ?> - -<hl; ?>>headline; ?>hl; ?>> - +block('content'); ?> showResults): ?> @@ -34,5 +30,4 @@ -
    - \ No newline at end of file +endblock(); ?> diff --git a/system/modules/isotope/templates/payment/iso_payment_datatrans.html5 b/system/modules/isotope/templates/payment/iso_payment_datatrans.html5 index d6a045fdfe..a61219b183 100644 --- a/system/modules/isotope/templates/payment/iso_payment_datatrans.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_datatrans.html5 @@ -1,14 +1,14 @@ -

    headline; ?>

    -

    message; ?>

    -
    +

    headline ?>

    +

    message ?>

    + params as $k => $v ): ?> - +
    \ No newline at end of file diff --git a/system/modules/isotope/templates/payment/iso_payment_innopay.html5 b/system/modules/isotope/templates/payment/iso_payment_innopay.html5 index 58bc79a25d..9417c99f7c 100644 --- a/system/modules/isotope/templates/payment/iso_payment_innopay.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_innopay.html5 @@ -1,14 +1,14 @@ -

    headline; ?>

    -

    message; ?>

    -
    -params as $k => $v ): ?> - +

    headline ?>

    +

    message ?>

    + +params as $k => $v): ?> +
    \ No newline at end of file diff --git a/system/modules/isotope/templates/payment/iso_payment_opp.html5 b/system/modules/isotope/templates/payment/iso_payment_opp.html5 new file mode 100644 index 0000000000..809b12668a --- /dev/null +++ b/system/modules/isotope/templates/payment/iso_payment_opp.html5 @@ -0,0 +1,7 @@ + + +
    diff --git a/system/modules/isotope/templates/payment/iso_payment_paybyway.html5 b/system/modules/isotope/templates/payment/iso_payment_paybyway.html5 index 213d4ebe1e..fafbfce0cf 100644 --- a/system/modules/isotope/templates/payment/iso_payment_paybyway.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_paybyway.html5 @@ -16,7 +16,5 @@ \ No newline at end of file +document.getElementById('paybywayid; ?>').submit(); + diff --git a/system/modules/isotope/templates/payment/iso_payment_payone.html5 b/system/modules/isotope/templates/payment/iso_payment_payone.html5 index 6d9585f5be..3892ee5d71 100644 --- a/system/modules/isotope/templates/payment/iso_payment_payone.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_payone.html5 @@ -1,25 +1,25 @@ -

    headline; ?>

    -

    message; ?>

    -
    +

    headline ?>

    +

    message ?>

    + data as $k => $v): ?> - + - - - - - - - - - - - + + + + + + + + + + +
    \ No newline at end of file diff --git a/system/modules/isotope/templates/payment/iso_payment_paypal.html5 b/system/modules/isotope/templates/payment/iso_payment_paypal.html5 index caf701bd6a..5799ab9216 100644 --- a/system/modules/isotope/templates/payment/iso_payment_paypal.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_paypal.html5 @@ -1,45 +1,45 @@ -

    headline; ?>

    -

    message; ?>

    -
    +

    headline ?>

    +

    message ?>

    + - - + + data as $k => $v): ?> - - + + discount > 0): ?> - + - + - - + + - + - - - - - - - - - - + + + + + + + + + + - +
    \ No newline at end of file diff --git a/system/modules/isotope/templates/payment/iso_payment_postfinance.html5 b/system/modules/isotope/templates/payment/iso_payment_postfinance.html5 index a6b19dc9cc..fb1ceddb26 100644 --- a/system/modules/isotope/templates/payment/iso_payment_postfinance.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_postfinance.html5 @@ -1,14 +1,14 @@ -

    headline; ?>

    -

    message; ?>

    -
    +

    headline ?>

    +

    message ?>

    + params as $k => $v ): ?> - +
    \ No newline at end of file diff --git a/system/modules/isotope/templates/payment/iso_payment_sparkasse.html5 b/system/modules/isotope/templates/payment/iso_payment_sparkasse.html5 index dc619bc087..6e622b5b09 100644 --- a/system/modules/isotope/templates/payment/iso_payment_sparkasse.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_sparkasse.html5 @@ -29,4 +29,4 @@ $strUrl .= http_build_query($arrQuery, null, '&');

    headline; ?>

    message; ?>

    link; ?> - \ No newline at end of file + diff --git a/system/modules/isotope/templates/payment/iso_payment_worldpay.html5 b/system/modules/isotope/templates/payment/iso_payment_worldpay.html5 index 225a90d5fc..fece088df5 100644 --- a/system/modules/isotope/templates/payment/iso_payment_worldpay.html5 +++ b/system/modules/isotope/templates/payment/iso_payment_worldpay.html5 @@ -1,32 +1,32 @@ -

    headline; ?>

    -

    message; ?>

    -
    - - - - - +

    headline ?>

    +

    message ?>

    + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + +
    \ No newline at end of file diff --git a/system/modules/isotope/test/.gitignore b/system/modules/isotope/test/.gitignore new file mode 100644 index 0000000000..57be4e313b --- /dev/null +++ b/system/modules/isotope/test/.gitignore @@ -0,0 +1 @@ +phpunit.xml \ No newline at end of file diff --git a/system/modules/isotope/test/bootstrap.php b/system/modules/isotope/test/bootstrap.php index 91b74a0ef4..5b9e1996a0 100644 --- a/system/modules/isotope/test/bootstrap.php +++ b/system/modules/isotope/test/bootstrap.php @@ -9,10 +9,15 @@ * @link http://isotopeecommerce.org * @license http://opensource.org/licenses/lgpl-3.0.html */ + define('TL_MODE', 'ISO_TEST'); -require __DIR__.'/../../../initialize.php'; +define('TL_SCRIPT', 'system/modules/isotope/test/bootstrap.php'); + +require_once(__DIR__ . '/../initialize.php'); -NamespaceClassLoader::add('Isotope\Test', 'system/modules/isotope/tests'); +if (class_exists('NamespaceClassLoader')) { + NamespaceClassLoader::add('Isotope\Test', 'system/modules/isotope/test/tests'); +} $GLOBALS['TL_LANGUAGE'] = 'en'; $GLOBALS['TL_CONFIG']['displayErrors'] = true; diff --git a/system/modules/isotope/test/phpunit.xml b/system/modules/isotope/test/phpunit.xml deleted file mode 100644 index fd5b03d8bc..0000000000 --- a/system/modules/isotope/test/phpunit.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - ./tests/ - - - diff --git a/system/modules/isotope/test/phpunit.xml.dist b/system/modules/isotope/test/phpunit.xml.dist new file mode 100644 index 0000000000..d9fea763e2 --- /dev/null +++ b/system/modules/isotope/test/phpunit.xml.dist @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + ./tests/ + + + diff --git a/system/modules/isotope_reports/assets/reports.min.css b/system/modules/isotope_reports/assets/reports.min.css index d96ecf8dfe..f0c00068d8 100644 --- a/system/modules/isotope_reports/assets/reports.min.css +++ b/system/modules/isotope_reports/assets/reports.min.css @@ -1 +1 @@ -table.iso_report{width:100%;border-collapse:separate}.mod_iso_reports.sales_product{overflow:auto}.mod_iso_reports.sales_product th,.mod_iso_reports.sales_product td{white-space:nowrap;text-align:right}.mod_iso_reports.sales_product th:first-child,.mod_iso_reports.sales_product td:first-child{text-align:left}table.iso_report .tl_file_list{line-height:1.5;vertical-align:top}table.iso_report .tl_file_list .variant{font-size:10px;color:#999}.iso_report tfoot td{border-top:1px solid #bbb}.iso_report tfoot .variant{font-size:10px;color:#999;font-weight:normal}.tl_subpanel input.tl_text.datepicker{width:100px}.tl_subpanel.tl_columns input.tl_text{width:50px}.iso_report .tl_help,.iso_report .tl_help a{font-size:11px;color:#666966}.mod_iso_reports .currencies{margin-top:10px;margin-bottom:30px}.mod_iso_reports .currencies li{display:inline-block;margin-right:10px}.mod_iso_reports .currencies label{color:#fff;padding:2px 5px}.mod_iso_reports .currencies .color0 label{background:#3880aa}.mod_iso_reports .currencies .color1 label{background:#4da944}.mod_iso_reports .currencies .color2 label{background:#f26522}.mod_iso_reports .currencies .color3 label{background:#c6080d}.mod_iso_reports .currencies .color4 label{background:#672d8b}.mod_iso_reports .currencies .color5 label{background:#ce1797}.mod_iso_reports .currencies .color6 label{background:#d9ce00}.mod_iso_reports .currencies .color7 label{background:#754c24}.mod_iso_reports .currencies .color8 label{background:#2eb9b4}.mod_iso_reports .currencies .color9 label{background:#0e2e42} \ No newline at end of file +table.iso_report{width:100%;border-collapse:separate}.mod_iso_reports.sales_product{overflow:auto}.mod_iso_reports.sales_product td,.mod_iso_reports.sales_product th{white-space:nowrap;text-align:right}.mod_iso_reports.sales_product td:first-child,.mod_iso_reports.sales_product th:first-child{text-align:left}table.iso_report .tl_file_list{line-height:1.5;vertical-align:top}table.iso_report .tl_file_list .variant{font-size:10px;color:#999}.iso_report tfoot td{border-top:1px solid #bbb}.iso_report tfoot .variant{font-size:10px;color:#999;font-weight:400}.tl_subpanel input.tl_text.datepicker{width:100px}.tl_subpanel.tl_columns input.tl_text{width:50px}.iso_report .tl_help,.iso_report .tl_help a{font-size:11px;color:#666966}.mod_iso_reports .currencies{margin-top:10px;margin-bottom:30px}.mod_iso_reports .currencies li{display:inline-block;margin-right:10px}.mod_iso_reports .currencies label{color:#fff;padding:2px 5px}.mod_iso_reports .currencies .color0 label{background:#3880aa}.mod_iso_reports .currencies .color1 label{background:#4da944}.mod_iso_reports .currencies .color2 label{background:#f26522}.mod_iso_reports .currencies .color3 label{background:#c6080d}.mod_iso_reports .currencies .color4 label{background:#672d8b}.mod_iso_reports .currencies .color5 label{background:#ce1797}.mod_iso_reports .currencies .color6 label{background:#d9ce00}.mod_iso_reports .currencies .color7 label{background:#754c24}.mod_iso_reports .currencies .color8 label{background:#2eb9b4}.mod_iso_reports .currencies .color9 label{background:#0e2e42} \ No newline at end of file diff --git a/system/modules/isotope_reports/config/autoload.php b/system/modules/isotope_reports/config/autoload.php index eb5f343193..27582ad658 100644 --- a/system/modules/isotope_reports/config/autoload.php +++ b/system/modules/isotope_reports/config/autoload.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -26,4 +25,6 @@ 'be_iso_reports' => 'system/modules/isotope_reports/templates', 'iso_report_default' => 'system/modules/isotope_reports/templates', 'iso_report_sales_total' => 'system/modules/isotope_reports/templates', + 'iso_report_members_guests' => 'system/modules/isotope_reports/templates', + 'iso_block_panel' => 'system/modules/isotope_reports/templates', )); diff --git a/system/modules/isotope_reports/config/config.php b/system/modules/isotope_reports/config/config.php index f599904363..9da87c3716 100644 --- a/system/modules/isotope_reports/config/config.php +++ b/system/modules/isotope_reports/config/config.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ @@ -33,7 +32,7 @@ 'panels' => array ( array('getSelectStopPanel', 'getSelectStartPanel', 'getSelectPeriodPanel'), - array('getSortingPanel', 'getFilterByConfigPanel', 'getStatusPanel') + array('getSortingPanel', 'getFilterByConfigPanel', 'getStatusPanel', 'getDateFieldPanel') ) ), 'sales_product' => array @@ -44,7 +43,7 @@ 'panels' => array ( array('getSelectFromPanel', 'getSelectColumnsPanel', 'getSelectPeriodPanel', 'getSelectVariantsPanel'), - array('getSortingPanel', 'getStatusPanel') + array('getSortingPanel', 'getStatusPanel', 'getDateFieldPanel') ) ), ), @@ -69,7 +68,11 @@ 'callback' => 'Isotope\Report\MembersGuests', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['members_guests'], 'icon' => 'system/modules/isotope_reports/assets/members_guests.png', - 'class' => 'disabled', + 'panels' => array + ( + array('getSelectStopPanel', 'getSelectStartPanel', 'getSelectPeriodPanel'), + array('getSortingPanel', 'getFilterByConfigPanel', 'getStatusPanel', 'getDateFieldPanel') + ) ), ), 'rules' => array diff --git a/system/modules/isotope_reports/dca/tl_user.php b/system/modules/isotope_reports/dca/tl_user.php index 47fb6c91ad..c8cc27fe5a 100644 --- a/system/modules/isotope_reports/dca/tl_user.php +++ b/system/modules/isotope_reports/dca/tl_user.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ $this->loadLanguageFile(\Isotope\Model\Group::getTable()); diff --git a/system/modules/isotope_reports/dca/tl_user_group.php b/system/modules/isotope_reports/dca/tl_user_group.php index 3a55bec410..c7e6f66138 100644 --- a/system/modules/isotope_reports/dca/tl_user_group.php +++ b/system/modules/isotope_reports/dca/tl_user_group.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ $this->loadLanguageFile(\Isotope\Model\Group::getTable()); diff --git a/system/modules/isotope_reports/languages/ar/default.php b/system/modules/isotope_reports/languages/ar/default.php deleted file mode 100644 index e21862bfc1..0000000000 --- a/system/modules/isotope_reports/languages/ar/default.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Celkem + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Celkem + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + + + Currency + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Stav + + + Report + + + Order date + Objednací datum + + + Payment date + + + Shiping date + + + Total sales + + + Product name + + + Columns + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/cs/modules.php b/system/modules/isotope_reports/languages/cs/modules.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope_reports/languages/cs/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/cs/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/cs/tl_iso_orderstatus.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope_reports/languages/cs/tl_iso_orderstatus.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/cs/tl_user.php b/system/modules/isotope_reports/languages/cs/tl_user.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope_reports/languages/cs/tl_user.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope Reports + + + Select what reports should be visible to the user. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/da/default.php b/system/modules/isotope_reports/languages/da/default.php deleted file mode 100644 index 5f362fdf72..0000000000 --- a/system/modules/isotope_reports/languages/da/default.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Total + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Total + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + Butiksindstilling + + + Currency + Valuta + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + Alle + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Status + + + Report + + + Order date + Ordre dato + + + Payment date + Betalt den + + + Shiping date + + + Total sales + + + Product name + + + Columns + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/da/modules.php b/system/modules/isotope_reports/languages/da/modules.php deleted file mode 100644 index 8f78941916..0000000000 --- a/system/modules/isotope_reports/languages/da/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + Isotope eCommerce: Rapporter og statistikker + + + Reports &amp; Statistics + Rapporter og statistikker + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/da/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/da/tl_iso_orderstatus.php deleted file mode 100644 index 3e8df55777..0000000000 --- a/system/modules/isotope_reports/languages/da/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + Rapporter og statistikker + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/da/tl_user.php b/system/modules/isotope_reports/languages/da/tl_user.php deleted file mode 100644 index be855788f5..0000000000 --- a/system/modules/isotope_reports/languages/da/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope Reports + Isotope rapporter + + + Select what reports should be visible to the user. + Vælg hvilke rapporter der skal være tilgængelig for brugeren. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/de/default.php b/system/modules/isotope_reports/languages/de/default.php deleted file mode 100644 index 9a19c1230c..0000000000 --- a/system/modules/isotope_reports/languages/de/default.php +++ /dev/null @@ -1,60 +0,0 @@ - + + + + Sales Statistics + Verkaufs-Statistiken + + + Member Statistics + Mitglieder-Statistiken + + + Rules Statistics + Regel-Statistiken + + + Custom Reports + Eigene Berichte + + + Total + Gesamt + + + Total sales of all products + Gesamtverkäufe aller Produkte + + + Per product + Pro Produkt + + + Sales per product + Verkäufe pro Produkt + + + Total + Gesamt + + + Sales statistics by member + Verkaufs-Statistiken nach Mitglied + + + %s - Members + %s - Mitglieder + + + %s - Guests + %s - Gäste + + + Sales to Members + Verkäufe an Mitglieder + + + Sales to Guests + Verkäufe an Gäste + + + Registrations + Registrierungen + + + Statistics about member registrations + Statistiken zu Mitglieder-Registrierungen + + + vs. Guest + gegen Gast + + + Sales comparison between members and guests + Vergleich der Verkäufe zwischen Gästen und Mitgliedern + + + Rules Usage + Regel-Nutzung + + + Statistics about rules usage + Statistiken zur Regel-Nutzung + + + Coupons + Geschenkgutscheine + + + Statistics about coupon usage + Statistiken zur Gutschein-Nutzung + + + Sales in the last 24 hours + Verkäufe in den letzten 24 Stunden + + + No orders have been placed in the last 24 hours. + In den vergangenen 24 Stunden gab es keine Bestellungen. + + + Shop configuration + Shop-Konfiguration + + + Currency + Währung + + + Number of orders + Anzahl Bestellungen + + + Number of products + Anzahl von Produkten + + + Number of items + Anzahl der Einträge + + + Sales Total + Verkäufe gesamt + + + Shop-Config + Shop-Konfiguration + + + All + Alle + + + Sums + Summen + + + Show + Zeigen + + + Search + Suchen + + + Sort + Sortieren + + + Period + Zeitraum + + + Day + Tag + + + Week + Woche + + + Month + Monat + + + Year + Jahr + + + From + Von + + + To + An + + + Status + Status + + + Report + Auswertungen + + + Order date + Bestelldatum + + + Payment date + Bezahldatum + + + Shiping date + Versanddatum + + + Total sales + Verkäufe gesamt + + + Product name + Produktname + + + Columns + Spalten + + + Variants + Varianten + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/de/modules.php b/system/modules/isotope_reports/languages/de/modules.php deleted file mode 100644 index b740092f27..0000000000 --- a/system/modules/isotope_reports/languages/de/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + Isotope eCommerce: Auswertungen &amp; Statistik + + + Reports &amp; Statistics + Auswertungen &amp; Statistik + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/de/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/de/tl_iso_orderstatus.php deleted file mode 100644 index 68ac369662..0000000000 --- a/system/modules/isotope_reports/languages/de/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + Auswertungen &amp; Statistik + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/de/tl_user.php b/system/modules/isotope_reports/languages/de/tl_user.php deleted file mode 100644 index 665df33c28..0000000000 --- a/system/modules/isotope_reports/languages/de/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope Reports + Isotope Auswertungen + + + Select what reports should be visible to the user. + Wählen Sie welche Auswertungen für den Benutzer sichtbar sind. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/en/default.php b/system/modules/isotope_reports/languages/en/default.php deleted file mode 100644 index 26598e3918..0000000000 --- a/system/modules/isotope_reports/languages/en/default.php +++ /dev/null @@ -1,55 +0,0 @@ - + + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + + + Currency + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + + + Report + + + Order date + + + Payment date + + + Shiping date + + + Total sales + + + Product name + + + Columns + + + Variants + + + + diff --git a/system/modules/isotope_reports/languages/en/modules.php b/system/modules/isotope_reports/languages/en/modules.php deleted file mode 100644 index 40cd1829b8..0000000000 --- a/system/modules/isotope_reports/languages/en/modules.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + + + + diff --git a/system/modules/isotope_reports/languages/en/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/en/tl_iso_orderstatus.php deleted file mode 100644 index 2765ac9815..0000000000 --- a/system/modules/isotope_reports/languages/en/tl_iso_orderstatus.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + + Reports &amp; Statistics + + + + diff --git a/system/modules/isotope_reports/languages/en/tl_user.php b/system/modules/isotope_reports/languages/en/tl_user.php deleted file mode 100644 index 6d18f67f34..0000000000 --- a/system/modules/isotope_reports/languages/en/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + + Isotope Reports + + + Select what reports should be visible to the user. + + + + diff --git a/system/modules/isotope_reports/languages/es/default.php b/system/modules/isotope_reports/languages/es/default.php deleted file mode 100644 index 401cbc89d3..0000000000 --- a/system/modules/isotope_reports/languages/es/default.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + Configuración de la tienda + + + Currency + Divisa + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + Todos + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Estado + + + Report + + + Order date + Fecha del pedido + + + Payment date + Fecha de pago + + + Shiping date + + + Total sales + + + Product name + + + Columns + Columnas + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/es/modules.php b/system/modules/isotope_reports/languages/es/modules.php deleted file mode 100644 index ba8485348e..0000000000 --- a/system/modules/isotope_reports/languages/es/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/es/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/es/tl_iso_orderstatus.php deleted file mode 100644 index ba8485348e..0000000000 --- a/system/modules/isotope_reports/languages/es/tl_iso_orderstatus.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/es/tl_user.php b/system/modules/isotope_reports/languages/es/tl_user.php deleted file mode 100644 index ba8485348e..0000000000 --- a/system/modules/isotope_reports/languages/es/tl_user.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope Reports + + + Select what reports should be visible to the user. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fa/default.php b/system/modules/isotope_reports/languages/fa/default.php deleted file mode 100644 index 9aadb9b475..0000000000 --- a/system/modules/isotope_reports/languages/fa/default.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Sales Statistics + آمار فروش + + + Member Statistics + آمار اعضاء + + + Rules Statistics + + + Custom Reports + + + Total + کل + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + کل + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + + + Currency + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + جستجو + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + وضعیت + + + Report + + + Order date + تاریخ سفارش + + + Payment date + + + Shiping date + + + Total sales + + + Product name + + + Columns + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fa/modules.php b/system/modules/isotope_reports/languages/fa/modules.php deleted file mode 100644 index d49007bb1d..0000000000 --- a/system/modules/isotope_reports/languages/fa/modules.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + گزارش‌ها و آمار + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fa/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/fa/tl_iso_orderstatus.php deleted file mode 100644 index 8700ff1f72..0000000000 --- a/system/modules/isotope_reports/languages/fa/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + گزارش‌ها و آمار + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fa/tl_user.php b/system/modules/isotope_reports/languages/fa/tl_user.php deleted file mode 100644 index efa400445c..0000000000 --- a/system/modules/isotope_reports/languages/fa/tl_user.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope Reports + گزارش‌های ایزوتوپ + + + Select what reports should be visible to the user. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fi/default.php b/system/modules/isotope_reports/languages/fi/default.php deleted file mode 100644 index 7796a0460f..0000000000 --- a/system/modules/isotope_reports/languages/fi/default.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Yhteensä + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Yhteensä + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + + + Currency + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Tila + + + Report + + + Order date + Tilauspäivä + + + Payment date + + + Shiping date + + + Total sales + + + Product name + + + Columns + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fi/modules.php b/system/modules/isotope_reports/languages/fi/modules.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope_reports/languages/fi/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fi/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/fi/tl_iso_orderstatus.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope_reports/languages/fi/tl_iso_orderstatus.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fi/tl_user.php b/system/modules/isotope_reports/languages/fi/tl_user.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope_reports/languages/fi/tl_user.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope Reports + + + Select what reports should be visible to the user. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fr/default.php b/system/modules/isotope_reports/languages/fr/default.php deleted file mode 100644 index e45ed664d6..0000000000 --- a/system/modules/isotope_reports/languages/fr/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Total général + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Total général + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + Configuration de boutique + + + Currency + Monnaie + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + Exclure + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + État + + + Report + + + Order date + Date de la commande + + + Payment date + Date de paiement + + + Shiping date + + + Total sales + + + Product name + + + Columns + Colonnes + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fr/modules.php b/system/modules/isotope_reports/languages/fr/modules.php deleted file mode 100644 index f02a46d659..0000000000 --- a/system/modules/isotope_reports/languages/fr/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + Isotope eCommerce : Rapports &amp; Statistiques + + + Reports &amp; Statistics + Rapports &amp; Statistiques + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fr/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/fr/tl_iso_orderstatus.php deleted file mode 100644 index 74b9628945..0000000000 --- a/system/modules/isotope_reports/languages/fr/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + Rapports &amp; Statistiques + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/fr/tl_user.php b/system/modules/isotope_reports/languages/fr/tl_user.php deleted file mode 100644 index 5cd2166255..0000000000 --- a/system/modules/isotope_reports/languages/fr/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope Reports + Rapports Isotope + + + Select what reports should be visible to the user. + Sélectionnez quels rapports doivent être visibles pour l'utilisateur. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/it/default.php b/system/modules/isotope_reports/languages/it/default.php deleted file mode 100644 index bd67e923fa..0000000000 --- a/system/modules/isotope_reports/languages/it/default.php +++ /dev/null @@ -1,22 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Totale + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Totale + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + Configurazione negozio + + + Currency + Valuta + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Stato + + + Report + + + Order date + Data dell'ordine + + + Payment date + Data pagamento + + + Shiping date + + + Total sales + + + Product name + + + Columns + Colonne + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/it/modules.php b/system/modules/isotope_reports/languages/it/modules.php deleted file mode 100644 index 3f7e91df61..0000000000 --- a/system/modules/isotope_reports/languages/it/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + eCommerce Isotope: Rapporti &amp; Statistiche + + + Reports &amp; Statistics + Rapporti &amp; Statistiche + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/it/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/it/tl_iso_orderstatus.php deleted file mode 100644 index c697a7415c..0000000000 --- a/system/modules/isotope_reports/languages/it/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + Rapporti &amp; Statistiche + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/it/tl_user.php b/system/modules/isotope_reports/languages/it/tl_user.php deleted file mode 100644 index 112d122f28..0000000000 --- a/system/modules/isotope_reports/languages/it/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope Reports + Rapporti Isotope + + + Select what reports should be visible to the user. + Seleziona quale Rapporto dovrebbe essere visibile per l'utente + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/nl/default.php b/system/modules/isotope_reports/languages/nl/default.php deleted file mode 100644 index 52f2272973..0000000000 --- a/system/modules/isotope_reports/languages/nl/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Totaal + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Totaal + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + Winkelconfiguratie + + + Currency + Valuta + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + Alle + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Status + + + Report + + + Order date + Bestel datum + + + Payment date + Betaal-datum + + + Shiping date + + + Total sales + + + Product name + + + Columns + Kolommen + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/nl/modules.php b/system/modules/isotope_reports/languages/nl/modules.php deleted file mode 100644 index 3c75621153..0000000000 --- a/system/modules/isotope_reports/languages/nl/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + Iotope eCommerce: Rapporten en statistieken + + + Reports &amp; Statistics + Rapporten en statistieken + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/nl/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/nl/tl_iso_orderstatus.php deleted file mode 100644 index 866491d073..0000000000 --- a/system/modules/isotope_reports/languages/nl/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + Rapporten en statistieken + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/nl/tl_user.php b/system/modules/isotope_reports/languages/nl/tl_user.php deleted file mode 100644 index 114cc56918..0000000000 --- a/system/modules/isotope_reports/languages/nl/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope Reports + Isotope rapporten + + + Select what reports should be visible to the user. + Kies welke rapporten zichtbaar zijn voor de gebruiker. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pl/default.php b/system/modules/isotope_reports/languages/pl/default.php deleted file mode 100644 index 16313b8c53..0000000000 --- a/system/modules/isotope_reports/languages/pl/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Suma + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Suma + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + Konfiguracja sklepu + + + Currency + Waluta + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + Wszystko + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Status + + + Report + + + Order date + Data zamówienia + + + Payment date + Data płatności + + + Shiping date + + + Total sales + + + Product name + + + Columns + Kolumny + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pl/modules.php b/system/modules/isotope_reports/languages/pl/modules.php deleted file mode 100644 index 317b66ed82..0000000000 --- a/system/modules/isotope_reports/languages/pl/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + Sklep Isotope: Reporty i statystyki + + + Reports &amp; Statistics + Raporty i statystyki + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pl/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/pl/tl_iso_orderstatus.php deleted file mode 100644 index 89a99313e7..0000000000 --- a/system/modules/isotope_reports/languages/pl/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + Raporty i statystyki + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pl/tl_user.php b/system/modules/isotope_reports/languages/pl/tl_user.php deleted file mode 100644 index b2e7c1a72e..0000000000 --- a/system/modules/isotope_reports/languages/pl/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope Reports + Raporty Isotope + + + Select what reports should be visible to the user. + Wybierz jakie raporty mają być widocznę dla użytkownika. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pt_BR/default.php b/system/modules/isotope_reports/languages/pt_BR/default.php deleted file mode 100644 index 6fd998c5dd..0000000000 --- a/system/modules/isotope_reports/languages/pt_BR/default.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Total + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Total + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + + + Currency + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Status + + + Report + + + Order date + Data do Pedido + + + Payment date + + + Shiping date + + + Total sales + + + Product name + + + Columns + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pt_BR/modules.php b/system/modules/isotope_reports/languages/pt_BR/modules.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope_reports/languages/pt_BR/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pt_BR/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/pt_BR/tl_iso_orderstatus.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope_reports/languages/pt_BR/tl_iso_orderstatus.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/pt_BR/tl_user.php b/system/modules/isotope_reports/languages/pt_BR/tl_user.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope_reports/languages/pt_BR/tl_user.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope Reports + + + Select what reports should be visible to the user. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/ru/default.php b/system/modules/isotope_reports/languages/ru/default.php deleted file mode 100644 index 4c2006a5e1..0000000000 --- a/system/modules/isotope_reports/languages/ru/default.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + + + Currency + Валюта + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Состояние + + + Report + + + Order date + Дата заказа + + + Payment date + + + Shiping date + + + Total sales + + + Product name + + + Columns + Колонки + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/ru/modules.php b/system/modules/isotope_reports/languages/ru/modules.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope_reports/languages/ru/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/ru/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/ru/tl_iso_orderstatus.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope_reports/languages/ru/tl_iso_orderstatus.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Reports &amp; Statistics + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/ru/tl_user.php b/system/modules/isotope_reports/languages/ru/tl_user.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope_reports/languages/ru/tl_user.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope Reports + + + Select what reports should be visible to the user. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/sl/default.php b/system/modules/isotope_reports/languages/sl/default.php deleted file mode 100644 index 17669e3b23..0000000000 --- a/system/modules/isotope_reports/languages/sl/default.php +++ /dev/null @@ -1,21 +0,0 @@ - + + + + Sales Statistics + + + Member Statistics + + + Rules Statistics + + + Custom Reports + + + Total + Skupaj + + + Total sales of all products + + + Per product + + + Sales per product + + + Total + Skupaj + + + Sales statistics by member + + + %s - Members + + + %s - Guests + + + Sales to Members + + + Sales to Guests + + + Registrations + + + Statistics about member registrations + + + vs. Guest + + + Sales comparison between members and guests + + + Rules Usage + + + Statistics about rules usage + + + Coupons + + + Statistics about coupon usage + + + Sales in the last 24 hours + + + No orders have been placed in the last 24 hours. + + + Shop configuration + + + Currency + Valuta + + + Number of orders + + + Number of products + + + Number of items + + + Sales Total + + + Shop-Config + + + All + + + Sums + + + Show + + + Search + + + Sort + + + Period + + + Day + + + Week + + + Month + + + Year + + + From + + + To + + + Status + Status + + + Report + + + Order date + Datum naročila + + + Payment date + + + Shiping date + + + Total sales + + + Product name + + + Columns + Stolpci + + + Variants + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/sl/modules.php b/system/modules/isotope_reports/languages/sl/modules.php deleted file mode 100644 index 40fdc4728e..0000000000 --- a/system/modules/isotope_reports/languages/sl/modules.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce: Reports &amp; Statistics + + + Reports &amp; Statistics + Poročila &amp; Statistika + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/sl/tl_iso_orderstatus.php b/system/modules/isotope_reports/languages/sl/tl_iso_orderstatus.php deleted file mode 100644 index 6d3be6b03c..0000000000 --- a/system/modules/isotope_reports/languages/sl/tl_iso_orderstatus.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Reports &amp; Statistics + Poročila &amp; Statistika + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/sl/tl_user.php b/system/modules/isotope_reports/languages/sl/tl_user.php deleted file mode 100644 index 92828dde0e..0000000000 --- a/system/modules/isotope_reports/languages/sl/tl_user.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope Reports + Isotope poročila + + + Select what reports should be visible to the user. + Izberite, katera poročila naj bodo na voljo uporabnikom. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/library/Isotope/BackendModule/Reports.php b/system/modules/isotope_reports/library/Isotope/BackendModule/Reports.php index 19e21eea2c..a727f884dc 100644 --- a/system/modules/isotope_reports/library/Isotope/BackendModule/Reports.php +++ b/system/modules/isotope_reports/library/Isotope/BackendModule/Reports.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\BackendModule; diff --git a/system/modules/isotope_reports/library/Isotope/Report/MembersGuests.php b/system/modules/isotope_reports/library/Isotope/Report/MembersGuests.php index 4588f2744f..6977d6fb57 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/MembersGuests.php +++ b/system/modules/isotope_reports/library/Isotope/Report/MembersGuests.php @@ -3,26 +3,321 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; +use Isotope\Isotope; +use Isotope\Model\Config; +use Haste\Generator\RowClass; +use Isotope\Model\ProductCollection; +use Isotope\Report\Period\PeriodFactory; +use Isotope\Report\Period\PeriodInterface; -class MembersGuests extends Report +class MembersGuests extends Sales { - public function generate() + /** + * Template + * + * @var string + */ + protected $strTemplate = 'iso_report_members_guests'; + + protected function compile() { - return '

    This report is not implemented yet. It will show your sales comparison between members and guests.

    '; + $arrSession = \Session::getInstance()->get('iso_reports'); + + $intConfig = (int) $arrSession[$this->name]['iso_config']; + $strPeriod = (string) $arrSession[$this->name]['period']; + $intStart = (int) $arrSession[$this->name]['start']; + $intStop = (int) $arrSession[$this->name]['stop']; + $intStatus = (int) $arrSession[$this->name]['iso_status']; + + $period = PeriodFactory::create($strPeriod); + $intStart = $period->getPeriodStart($intStart); + $intStop = $period->getPeriodEnd($intStop); + $dateFrom = $period->getKey($intStart); + $dateTo = $period->getKey($intStop); + + if ('locked' === $this->strDateField) { + $this->strDateField = $arrSession[$this->name]['date_field']; + } + + $dateGroup = $period->getSqlField('o.' . $this->strDateField); + + $objData = \Database::getInstance()->query(" + SELECT + c.id AS config_id, + c.currency, + o.locked AS date, + me.firstname AS member_firstname, + me.lastname AS member_lastname, + me.id AS member_number, + COUNT(DISTINCT o.id) AS total_orders, + COUNT(DISTINCT i.id) AS total_products, + SUM(i.quantity) AS total_items, + SUM(i.tax_free_price * i.quantity) AS total_sales, + $dateGroup AS dateGroup + FROM tl_iso_product_collection o + LEFT JOIN tl_iso_product_collection_item i ON o.id=i.pid + LEFT JOIN tl_iso_orderstatus os ON os.id=o.order_status + LEFT OUTER JOIN tl_iso_config c ON o.config_id=c.id + LEFT OUTER JOIN tl_member me ON o.member=me.id + WHERE o.type='order' AND o.order_status>0 AND o.{$this->strDateField} IS NOT NULL + " . ($intStatus > 0 ? " AND o.order_status=".$intStatus : '') . " + " . static::getProductProcedure('i', 'product_id') . " + " . ($intConfig > 0 ? " AND c.id=".$intConfig : '') . " + " . static::getConfigProcedure('c') . " + GROUP BY config_id, dateGroup, member_number + HAVING dateGroup>=$dateFrom AND dateGroup<=$dateTo + "); + + $arrCurrencies = array(); + $arrDataMember = $this->initializeData($period, $intStart, $intStop); + $arrDataGuests = $this->initializeData($period, $intStart, $intStop); + + $arrChart = $this->initializeChart($period, $intStart, $intStop); + + while ($objData->next()) { + $arrCurrencies[$objData->currency] = $objData->config_id; + + if ($objData->member_number > 0) { + $arrDataMember = $this->fillData($arrDataMember, $objData); + // Generate chart data + $arrChart[$objData->currency . '_Members']['data'][$objData->dateGroup]['y'] = ((float) $arrChart[$objData->currency . '_Members']['data'][$objData->dateGroup]['y'] + $objData->total_sales); + } else { + $arrDataGuests = $this->fillData($arrDataGuests, $objData); + // Generate chart data + $arrChart[$objData->currency . '_Guests']['data'][$objData->dateGroup]['y'] = ((float) $arrChart[$objData->currency . '_Guests']['data'][$objData->dateGroup]['y'] + $objData->total_sales); + } + } + + // Apply formatting + $arrDataMember = $this->formatValues($arrDataMember, $arrCurrencies); + $arrDataGuests = $this->formatValues($arrDataGuests, $arrCurrencies); + + $this->Template->dataMember = $arrDataMember; + $this->Template->dataGuests = $arrDataGuests; + $this->Template->chart = $arrChart; + $this->Template->periodFormat = $period->getJavascriptClosure(); } - protected function compile() + /** + * @param array $arrData + * @param object $objData + * + * @return array + */ + private function fillData($arrData, $objData) { + $arrData['rows'][$objData->dateGroup]['columns'][1]['value'] += $objData->total_orders; + $arrData['rows'][$objData->dateGroup]['columns'][2]['value'] += $objData->total_products; + $arrData['rows'][$objData->dateGroup]['columns'][3]['value'] += $objData->total_items; + + if (!is_array($arrData['rows'][$objData->dateGroup]['columns'][4]['value'])) { + $arrData['rows'][$objData->dateGroup]['columns'][4]['value'] = array(); + } + + $arrData['rows'][$objData->dateGroup]['columns'][4]['value'][$objData->currency] = $arrData['rows'][$objData->dateGroup]['columns'][4]['value'][$objData->currency] + $objData->total_sales; + + // Summary in the footer + $arrData['footer'][1]['value'] += $objData->total_orders; + $arrData['footer'][2]['value'] += $objData->total_products; + $arrData['footer'][3]['value'] += $objData->total_items; + $arrData['footer'][4]['value'][$objData->currency] = ((float) $arrData['footer'][4]['value'][$objData->currency] + $objData->total_sales); + + return $arrData; } -} + protected function initializeData(PeriodInterface $period, $intStart, $intStop) + { + $arrData = array('rows' => array()); + + $arrData['header'] = [ + [ + 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['period'], + 'header' => true, + ], + [ + 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['orders#'], + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['products#'], + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['items#'], + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['sales#'], + 'attributes' => ' style="text-align:right"', + ], + ]; + + $arrData['footer'] = [ + [ + 'value' => $GLOBALS['TL_LANG']['ISO_REPORT']['sums'], + ], + [ + 'value' => 0, + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => 0, + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => 0, + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => [], + 'attributes' => ' style="text-align:right"', + ], + ]; + + while ($intStart <= $intStop) { + $arrData['rows'][$period->getKey($intStart)] = [ + 'columns' => [ + [ + 'value' => $period->format($intStart), + ], + [ + 'value' => 0, + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => 0, + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => 0, + 'attributes' => ' style="text-align:right"', + ], + [ + 'value' => 0, + 'attributes' => ' style="text-align:right"', + ], + ], + ]; + + $intStart = $period->getNext($intStart); + } + + RowClass::withKey('class')->addEvenOdd()->applyTo($arrData['rows']); + + return $arrData; + } + + protected function initializeChart(PeriodInterface $period, $intStart, $intStop) + { + $arrSession = \Session::getInstance()->get('iso_reports'); + $intConfig = (int) $arrSession[$this->name]['iso_config']; + $intStart = strtotime('first day of this month', $intStart); + + $arrData = array(); + $arrCurrencies = \Database::getInstance()->execute(" + SELECT DISTINCT currency FROM tl_iso_config WHERE currency!='' + " . static::getConfigProcedure() . " + " . ($intConfig > 0 ? ' AND id=' . $intConfig : '') . " + ")->fetchEach('currency'); + + foreach ($arrCurrencies as $currency) { + $arrData[$currency . '_Members']['label'] = sprintf($GLOBALS['TL_LANG']['ISO_REPORT']['members_currency'], $currency); + $arrData[$currency . '_Members']['className'] = '.' . strtolower($currency) . '_M'; + $arrData[$currency . '_Guests']['label'] = sprintf($GLOBALS['TL_LANG']['ISO_REPORT']['guests_currency'], $currency); + $arrData[$currency . '_Guests']['className'] = '.' . strtolower($currency) . '_G'; + } + + while ($intStart <= $intStop) { + foreach ($arrCurrencies as $currency) { + $arrData[$currency . '_Members']['data'][$period->getKey($intStart)]['x'] = $intStart; + $arrData[$currency . '_Members']['data'][$period->getKey($intStart)]['y'] = 0; + $arrData[$currency . '_Guests']['data'][$period->getKey($intStart)]['x'] = $intStart; + $arrData[$currency . '_Guests']['data'][$period->getKey($intStart)]['y'] = 0; + } + + $intStart = $period->getNext($intStart); + } + + return $arrData; + } + + protected function formatValues($arrData, $arrCurrencies) + { + // Format row totals + foreach ($arrData['rows'] as $dateGroup => $arrRow) { + if (is_array($arrRow['columns'][4]['value'])) { + foreach ($arrRow['columns'][4]['value'] as $currency => $varValue) { + /** @type Config $objConfig */ + $objConfig = Config::findByPk($arrCurrencies[$currency]); + Isotope::setConfig($objConfig); + + $arrData['rows'][$dateGroup]['columns'][4]['value'][$currency] = Isotope::formatPriceWithCurrency($varValue); + } + } + } + + // Format footer totals + foreach ($arrData['footer'][4]['value'] as $currency => $varValue) { + /** @type Config $objConfig */ + $objConfig = Config::findByPk($arrCurrencies[$currency]); + Isotope::setConfig($objConfig); + + $arrData['footer'][4]['value'][$currency] = Isotope::formatPriceWithCurrency($varValue); + } + + if (empty($arrData['footer'][4]['value'])) { + $arrData['footer'][4]['value'] = 0; + } + + return $arrData; + } + + protected function initializeDefaultValues() + { + // Set default session data + $arrSession = \Session::getInstance()->get('iso_reports'); + + if ($arrSession[$this->name]['period'] == '') { + $arrSession[$this->name]['period'] = 'month'; + } + + if ($arrSession[$this->name]['stop'] == '') { + $arrSession[$this->name]['stop'] = time(); + } elseif (!is_numeric($arrSession[$this->name]['stop'])) { + // Convert date formats into timestamps + try { + $objDate = new \Date($arrSession[$this->name]['stop'], $GLOBALS['TL_CONFIG']['dateFormat']); + $arrSession[$this->name]['stop'] = $objDate->tstamp; + } catch (\OutOfBoundsException $e) { + \Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['date'], $GLOBALS['TL_CONFIG']['dateFormat'])); + $arrSession[$this->name]['stop'] = time(); + } + } + + if ($arrSession[$this->name]['start'] == '') { + $arrSession[$this->name]['start'] = strtotime('-6 months'); + } elseif (!is_numeric($arrSession[$this->name]['start'])) { + // Convert date formats into timestamps + try { + $objDate = new \Date($arrSession[$this->name]['start'], $GLOBALS['TL_CONFIG']['dateFormat']); + $arrSession[$this->name]['start'] = $objDate->tstamp; + } catch (\OutOfBoundsException $e) { + \Message::addError(sprintf($GLOBALS['TL_LANG']['ERR']['date'], $GLOBALS['TL_CONFIG']['dateFormat'])); + $arrSession[$this->name]['start'] = strtotime('-6 months'); + } + } + + \Session::getInstance()->set('iso_reports', $arrSession); + + parent::initializeDefaultValues(); + } +} diff --git a/system/modules/isotope_reports/library/Isotope/Report/MembersRegistration.php b/system/modules/isotope_reports/library/Isotope/Report/MembersRegistration.php index 3918d2b5e8..82cba6186f 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/MembersRegistration.php +++ b/system/modules/isotope_reports/library/Isotope/Report/MembersRegistration.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; diff --git a/system/modules/isotope_reports/library/Isotope/Report/MembersTotal.php b/system/modules/isotope_reports/library/Isotope/Report/MembersTotal.php index e6234c827a..53dfcbc47b 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/MembersTotal.php +++ b/system/modules/isotope_reports/library/Isotope/Report/MembersTotal.php @@ -3,19 +3,16 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; - class MembersTotal extends Report { - public function generate() { return '

    This report is not implemented yet. It will show your sales information by members.

    '; @@ -25,4 +22,3 @@ protected function compile() { } } - diff --git a/system/modules/isotope_reports/library/Isotope/Report/Period/Day.php b/system/modules/isotope_reports/library/Isotope/Report/Period/Day.php index 9028ddc97c..93400463be 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/Period/Day.php +++ b/system/modules/isotope_reports/library/Isotope/Report/Period/Day.php @@ -1,4 +1,12 @@ arrObjects[$strKey])) - { + if (isset($this->arrObjects[$strKey])) { return $this->arrObjects[$strKey]; } return $this->arrData[$strKey]; } - public function __set($strKey, $varValue) { $this->arrData[$strKey] = $varValue; } + public function __isset($strKey) + { + return isset($this->arrData[$strKey]); + } public function generate() { - if (\Input::post('FORM_SUBMIT') == 'tl_filters') - { + if ('tl_filters' === \Input::post('FORM_SUBMIT')) { $session = \Session::getInstance()->getData(); - foreach (array_keys($_POST) as $strKey) - { - $session['iso_reports'][$this->name][$strKey] = \Input::post($strKey); + if (\Input::post('filter_reset')) { + $session['iso_reports'][$this->name] = []; + } else { + foreach ($_POST as $strKey => $v) { + $session['iso_reports'][$this->name][$strKey] = \Input::post($strKey); + } } \Session::getInstance()->setData($session); - - $this->reload(); + \Controller::reload(); } $this->Template = new \BackendTemplate($this->strTemplate); @@ -119,29 +120,22 @@ abstract protected function compile(); protected function getPanels() { - if (!is_array($this->arrData['panels'])) - { + if (!is_array($this->arrData['panels'])) { return array(); } $return = array(); - foreach ($this->arrData['panels'] as $group=>$callbacks) - { - foreach ($callbacks as $callback) - { - if (is_array($callback)) - { + foreach ($this->arrData['panels'] as $group=>$callbacks) { + foreach ($callbacks as $callback) { + if (is_array($callback)) { $objCallback = \System::importStatic($callback[0]); $buffer = $objCallback->{$callback[1]}(); - } - else - { + } else { $buffer = $this->$callback(); } - if ($buffer !== null) - { + if ($buffer !== null) { $return[$group][] = $buffer; } } @@ -159,15 +153,13 @@ protected function getButtons() protected function getLimitPanel() { - if (empty($this->arrLimitOptions)) - { + if (empty($this->arrLimitOptions)) { return null; } $arrSession = \Session::getInstance()->get('iso_reports'); - return array - ( + return [ 'name' => 'tl_limit', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['show'], 'class' => 'tl_limit', @@ -175,51 +167,47 @@ protected function getLimitPanel() 'value' => $arrSession[$this->name]['tl_limit'], 'options' => $this->arrLimitOptions, 'attributes' => ' onchange="this.form.submit()"', - ); + ]; } protected function getSearchPanel() { - if (empty($this->arrSearchOptions)) - { + if (empty($this->arrSearchOptions)) { return null; } $arrSession = \Session::getInstance()->get('iso_reports'); $varValue = array('tl_field'=>(string) $arrSession[$this->name]['tl_field'], 'tl_value'=>(string) $arrSession[$this->name]['tl_value']); - return array - ( + return [ 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['search'], 'class' => 'tl_search', 'type' => 'search', 'value' => $varValue, 'active' => ($varValue['tl_field'] != '' && $varValue['tl_value'] != ''), 'options' => $this->arrSearchOptions, - ); + ]; } protected function getSortingPanel() { - if (empty($this->arrSortingOptions)) - { + if (empty($this->arrSortingOptions)) { return null; } $arrSession = \Session::getInstance()->get('iso_reports'); $varValue = (string) $arrSession[$this->name]['tl_sort']; - return array - ( + return [ 'name' => 'tl_sort', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['sort'], 'type' => 'filter', 'value' => $varValue, 'class' => 'tl_sorting', 'options' => $this->arrSortingOptions, - ); + ]; } @@ -237,8 +225,7 @@ protected function getFilterByConfigPanel() $arrSession = \Session::getInstance()->get('iso_reports'); $varValue = (string) $arrSession[$this->name]['iso_config']; - return array - ( + return [ 'name' => 'iso_config', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['shop_config'], 'type' => 'filter', @@ -246,7 +233,7 @@ protected function getFilterByConfigPanel() 'active' => ($varValue != ''), 'class' => 'iso_config', 'options' => $arrConfigs, - ); + ]; } @@ -254,21 +241,20 @@ protected function getSelectPeriodPanel() { $arrSession = \Session::getInstance()->get('iso_reports'); - return array - ( + return [ 'name' => 'period', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['period'], 'type' => 'filter', 'value' => (string) $arrSession[$this->name]['period'], 'class' => 'tl_period', - 'options' => array - ( + 'options' => + [ 'day' => &$GLOBALS['TL_LANG']['ISO_REPORT']['day'], 'week' => &$GLOBALS['TL_LANG']['ISO_REPORT']['week'], 'month' => &$GLOBALS['TL_LANG']['ISO_REPORT']['month'], 'year' => &$GLOBALS['TL_LANG']['ISO_REPORT']['year'] - ) - ); + ] + ]; } @@ -276,15 +262,14 @@ protected function getSelectStartPanel() { $arrSession = \Session::getInstance()->get('iso_reports'); - return array - ( + return [ 'name' => 'start', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['from'], 'type' => 'date', 'format' => $GLOBALS['TL_CONFIG']['dateFormat'], 'value' => \Date::parse($GLOBALS['TL_CONFIG']['dateFormat'], (int) $arrSession[$this->name]['start']), 'class' => 'tl_start', - ); + ]; } @@ -292,15 +277,14 @@ protected function getSelectStopPanel() { $arrSession = \Session::getInstance()->get('iso_reports'); - return array - ( + return [ 'name' => 'stop', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['to'], 'type' => 'date', 'format' => $GLOBALS['TL_CONFIG']['dateFormat'], 'value' => \Date::parse($GLOBALS['TL_CONFIG']['dateFormat'], (int) $arrSession[$this->name]['stop']), 'class' => 'tl_stop', - ); + ]; } /** @@ -351,4 +335,3 @@ public static function getConfigProcedure($strTable = 'tl_iso_config', $strField return $strPrefix . $strTable . '.' . $strField . ' IN (' . implode(',', $arrConfig) . ')'; } } - diff --git a/system/modules/isotope_reports/library/Isotope/Report/RulesCoupons.php b/system/modules/isotope_reports/library/Isotope/Report/RulesCoupons.php index 251e79f04e..a778fbc38d 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/RulesCoupons.php +++ b/system/modules/isotope_reports/library/Isotope/Report/RulesCoupons.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; diff --git a/system/modules/isotope_reports/library/Isotope/Report/RulesUsage.php b/system/modules/isotope_reports/library/Isotope/Report/RulesUsage.php index 8f73bdde66..1b92d7e84b 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/RulesUsage.php +++ b/system/modules/isotope_reports/library/Isotope/Report/RulesUsage.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; diff --git a/system/modules/isotope_reports/library/Isotope/Report/Sales.php b/system/modules/isotope_reports/library/Isotope/Report/Sales.php index e0e076173b..3a1536e0fe 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/Sales.php +++ b/system/modules/isotope_reports/library/Isotope/Report/Sales.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; @@ -17,7 +16,7 @@ abstract class Sales extends Report { - // Allow extensions to use date_paid or date_shipped + // @deprecated protected $strDateField = 'locked'; @@ -28,28 +27,26 @@ public function generate() return parent::generate(); } - protected function initializeDefaultValues() { // Set default session data $arrSession = \Session::getInstance()->get('iso_reports'); - if ($arrSession[$this->name]['period'] == '') - { + if ($arrSession[$this->name]['period'] == '') { $arrSession[$this->name]['period'] = 'month'; } - if ($arrSession[$this->name]['columns'] == '') - { + if ($arrSession[$this->name]['columns'] == '') { $arrSession[$this->name]['columns'] = '6'; } - if ($arrSession[$this->name]['from'] == '') - { - $arrSession[$this->name]['from'] = ''; + if (!in_array($arrSession[$this->name]['date_field'], ['locked', 'date_paid', 'date_shipped'], true)) { + $arrSession[$this->name]['date_field'] = 'locked'; } - elseif (!is_numeric($arrSession[$this->name]['from'])) - { + + if ($arrSession[$this->name]['from'] == '') { + $arrSession[$this->name]['from'] = ''; + } elseif (!is_numeric($arrSession[$this->name]['from'])) { // Convert date formats into timestamps try { $objDate = new \Date($arrSession[$this->name]['from'], $GLOBALS['TL_CONFIG']['dateFormat']); @@ -60,13 +57,6 @@ protected function initializeDefaultValues() } } - if (!isset($arrSession[$this->name]['iso_status'])) - { - $orderStatusTable = OrderStatus::getTable(); - $objStatus = \Database::getInstance()->query("SELECT id FROM $orderStatusTable WHERE paid=1 ORDER BY sorting"); - $arrSession[$this->name]['iso_status'] = $objStatus->id; - } - \Session::getInstance()->set('iso_reports', $arrSession); } @@ -75,15 +65,14 @@ protected function getSelectFromPanel() { $arrSession = \Session::getInstance()->get('iso_reports'); - return array - ( + return [ 'name' => 'from', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['from'], 'type' => 'date', 'format' => $GLOBALS['TL_CONFIG']['dateFormat'], 'value' => ($arrSession[$this->name]['from'] ? \Date::parse($GLOBALS['TL_CONFIG']['dateFormat'], (int) $arrSession[$this->name]['from']) : ''), 'class' => 'tl_from', - ); + ]; } @@ -91,21 +80,19 @@ protected function getSelectColumnsPanel() { $arrSession = \Session::getInstance()->get('iso_reports'); - return array - ( + return [ 'name' => 'columns', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['columns'], 'type' => 'text', 'value' => (int) $arrSession[$this->name]['columns'], 'class' => 'tl_columns', - ); + ]; } protected function getPeriodConfiguration($strPeriod) { - switch ($strPeriod) - { + switch ($strPeriod) { case 'day': $publicDate = 'd.m.y'; $privateDate = 'Ymd'; @@ -158,8 +145,7 @@ protected function getStatusPanel() $arrSession = \Session::getInstance()->get('iso_reports'); $varValue = (int) $arrSession[$this->name]['iso_status']; - return array - ( + return [ 'name' => 'iso_status', 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['status'], 'type' => 'filter', @@ -167,7 +153,26 @@ protected function getStatusPanel() 'active' => ($varValue != ''), 'class' => 'iso_status', 'options' => $arrStatus, - ); + ]; } -} + + protected function getDateFieldPanel() + { + $arrSession = \Session::getInstance()->get('iso_reports'); + $varValue = $arrSession[$this->name]['date_field']; + + return [ + 'name' => 'date_field', + 'label' => &$GLOBALS['TL_LANG']['ISO_REPORT']['date_field'], + 'type' => 'filter', + 'value' => $varValue, + 'class' => 'iso_date_field', + 'options' => [ + 'locked' => $GLOBALS['TL_LANG']['ISO_REPORT']['locked'], + 'date_paid' => $GLOBALS['TL_LANG']['ISO_REPORT']['date_paid'], + 'date_shipped' => $GLOBALS['TL_LANG']['ISO_REPORT']['date_shipped'], + ], + ]; + } +} diff --git a/system/modules/isotope_reports/library/Isotope/Report/SalesProduct.php b/system/modules/isotope_reports/library/Isotope/Report/SalesProduct.php index c5a3dd8b9e..b6a766fe86 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/SalesProduct.php +++ b/system/modules/isotope_reports/library/Isotope/Report/SalesProduct.php @@ -3,20 +3,17 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; use Isotope\Isotope; -use Isotope\Model\OrderStatus; use Isotope\Model\Product; use Isotope\Model\ProductCollection; -use Isotope\Model\ProductCollectionItem; use Isotope\Model\ProductType; use Isotope\Report\Period\PeriodFactory; use Isotope\Report\Period\PeriodInterface; @@ -29,8 +26,8 @@ public function generate() { $this->initializeDefaultValues(); - $this->loadLanguageFile('tl_iso_product'); - $this->loadDataContainer('tl_iso_product'); + static::loadLanguageFile('tl_iso_product'); + static::loadDataContainer('tl_iso_product'); return parent::generate(); } @@ -38,7 +35,6 @@ public function generate() protected function compile() { - $periodFactory = new PeriodFactory(); $arrSession = \Session::getInstance()->get('iso_reports'); $strPeriod = (string) $arrSession[$this->name]['period']; @@ -52,15 +48,20 @@ protected function compile() $intStart = (int) $arrSession[$this->name]['from']; } - $period = $periodFactory->create($strPeriod); + $period = PeriodFactory::create($strPeriod); $intStart = $period->getPeriodStart($intStart); $dateFrom = $period->getKey($intStart); $dateTo = $period->getKey(strtotime('+ ' . ($intColumns-1) . ' ' . $strPeriod, $intStart)); + if ('locked' === $this->strDateField) { + $this->strDateField = $arrSession[$this->name]['date_field']; + } + $arrData = array('rows'=>array()); $arrData['header'] = $this->getHeader($period, $intStart, $intColumns); $groupVariants = $blnVariants ? 'p1.id' : 'IF(p1.pid=0, p1.id, p1.pid)'; + $dateGroup = $period->getSqlField('o.' . $this->strDateField); $objProducts = \Database::getInstance()->query(" SELECT @@ -73,16 +74,16 @@ protected function compile() i.configuration AS product_configuration, SUM(i.quantity) AS quantity, SUM(i.tax_free_price * i.quantity) AS total, - " . $period->getSqlField($this->strDateField) . " AS dateGroup - FROM " . ProductCollectionItem::getTable() . " i - LEFT JOIN " . ProductCollection::getTable() . " o ON i.pid=o.id - LEFT JOIN " . OrderStatus::getTable() . " os ON os.id=o.order_status - LEFT OUTER JOIN " . Product::getTable() . " p1 ON i.product_id=p1.id - LEFT OUTER JOIN " . Product::getTable() . " p2 ON p1.pid=p2.id - WHERE o.type='order' AND o.order_status>0 AND o.locked!='' + $dateGroup AS dateGroup + FROM tl_iso_product_collection_item i + LEFT JOIN tl_iso_product_collection o ON i.pid=o.id + LEFT JOIN tl_iso_orderstatus os ON os.id=o.order_status + LEFT OUTER JOIN tl_iso_product p1 ON i.product_id=p1.id + LEFT OUTER JOIN tl_iso_product p2 ON p1.pid=p2.id + WHERE o.type='order' AND o.order_status>0 AND o.{$this->strDateField} IS NOT NULL " . ($intStatus > 0 ? " AND o.order_status=".$intStatus : '') . " - " . $this->getProductProcedure('p1') . " - " . $this->getConfigProcedure('o', 'config_id') . " + " . static::getProductProcedure('p1') . " + " . static::getConfigProcedure('o', 'config_id') . " GROUP BY dateGroup, product_id HAVING dateGroup>=$dateFrom AND dateGroup<=$dateTo "); @@ -105,22 +106,23 @@ protected function compile() $arrAttributes = $objType->getAttributes(); $arrVariantAttributes = $objType->getVariantAttributes(); $blnHasVariants = $objType->hasVariants(); + $product_type_name = $objType->name; } $arrOptions = array('name'=>$objProducts->variant_name); // Use product title if name is not a variant attribute - if ($blnHasVariants && !in_array('name', $arrVariantAttributes)) { + if ($blnHasVariants && !in_array('name', $arrVariantAttributes, true)) { $arrOptions['name'] = $objProducts->product_name; } $strSku = ($blnHasVariants ? $objProducts->variant_sku : $objProducts->product_sku); - if (in_array('sku', $arrAttributes) && $strSku != '') { + if (in_array('sku', $arrAttributes, true) && $strSku != '') { $arrOptions['name'] = sprintf('%s [%s]', $arrOptions['name'], $strSku); } if ($blnVariants && $blnHasVariants) { - if (in_array('sku', $arrVariantAttributes) && $objProducts->product_sku != '') { + if (in_array('sku', $arrVariantAttributes, true) && $objProducts->product_sku != '') { $arrOptions['name'] = sprintf('%s [%s]', $arrOptions['name'], $objProducts->product_sku); } @@ -137,6 +139,7 @@ protected function compile() $arrOptions['name'] = '' . $arrOptions['name'] . ''; $arrRaw[$objProducts->product_id]['name'] = implode('
    ', $arrOptions); + $arrRaw[$objProducts->product_id]['product_type_name'] = $product_type_name; $arrRaw[$objProducts->product_id][$objProducts->dateGroup] = (float) $arrRaw[$objProducts->product_id][$objProducts->dateGroup] + (float) $objProducts->total; $arrRaw[$objProducts->product_id][$objProducts->dateGroup.'_quantity'] = (int) $arrRaw[$objProducts->product_id][$objProducts->dateGroup.'_quantity'] + (int) $objProducts->quantity; $arrRaw[$objProducts->product_id]['total'] = (float) $arrRaw[$objProducts->product_id]['total'] + (float) $objProducts->total; @@ -153,7 +156,7 @@ protected function compile() $arrFooter = array(); // Sort the data - if ($arrSession[$this->name]['tl_sort'] == 'product_name') { + if ('product_name' === $arrSession[$this->name]['tl_sort']) { usort($arrRaw, function ($a, $b) { return strcasecmp($a['name'], $b['name']); }); @@ -167,7 +170,7 @@ protected function compile() // Generate data foreach ($arrRaw as $arrProduct) { $arrRow = array(array( - 'value' => $arrProduct['name'], + 'value' => array($arrProduct['name'], sprintf('[%s]',$arrProduct['product_type_name'])), )); $arrFooter[0] = array( @@ -181,7 +184,7 @@ protected function compile() $arrFooter[$i+1] = array( 'total' => $arrFooter[$i+1]['total'] + $arrProduct[$column], - 'quantity' => $arrFooter[$i+1]['quantity'] + $arrProduct[$column.'_quantity'], + 'quantity' => $arrFooter[$i+1]['quantity'] + $arrProduct[$column.'_quantity'], ); } @@ -191,7 +194,7 @@ protected function compile() $arrFooter[$i+2] = array( 'total' => $arrFooter[$i+2]['total'] + $arrProduct['total'], - 'quantity' => $arrFooter[$i+2]['quantity'] + $arrProduct['quantity'], + 'quantity' => $arrFooter[$i+2]['quantity'] + $arrProduct['quantity'], ); $arrData['rows'][] = array( @@ -200,8 +203,8 @@ protected function compile() } for ($i=1; $i' . Isotope::formatItemsString($arrFooter[$i]['quantity']) . ''; - unset($arrFooter[$i]['total'], $arrFooter[$i]['quantity']); + $arrFooter[$i]['value'] = Isotope::formatPriceWithCurrency($arrFooter[$i]['total']). '
    ' . Isotope::formatItemsString($arrFooter[$i]['quantity']) . ''; + unset($arrFooter[$i]['total']); } $arrData['footer'] = $arrFooter; diff --git a/system/modules/isotope_reports/library/Isotope/Report/SalesTotal.php b/system/modules/isotope_reports/library/Isotope/Report/SalesTotal.php index 4b0f2662a1..81729cdd30 100644 --- a/system/modules/isotope_reports/library/Isotope/Report/SalesTotal.php +++ b/system/modules/isotope_reports/library/Isotope/Report/SalesTotal.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Report; @@ -15,9 +14,7 @@ use Isotope\Isotope; use Isotope\Model\Config; use Haste\Generator\RowClass; -use Isotope\Model\OrderStatus; use Isotope\Model\ProductCollection; -use Isotope\Model\ProductCollectionItem; use Isotope\Report\Period\PeriodFactory; use Isotope\Report\Period\PeriodInterface; @@ -34,7 +31,6 @@ class SalesTotal extends Sales protected function compile() { - $periodFactory = new PeriodFactory(); $arrSession = \Session::getInstance()->get('iso_reports'); $intConfig = (int) $arrSession[$this->name]['iso_config']; @@ -43,12 +39,18 @@ protected function compile() $intStop = (int) $arrSession[$this->name]['stop']; $intStatus = (int) $arrSession[$this->name]['iso_status']; - $period = $periodFactory->create($strPeriod); + $period = PeriodFactory::create($strPeriod); $intStart = $period->getPeriodStart($intStart); $intStop = $period->getPeriodEnd($intStop); $dateFrom = $period->getKey($intStart); $dateTo = $period->getKey($intStop); + if ('locked' === $this->strDateField) { + $this->strDateField = $arrSession[$this->name]['date_field']; + } + + $dateGroup = $period->getSqlField('o.' . $this->strDateField); + $objData = \Database::getInstance()->query(" SELECT c.id AS config_id, @@ -60,16 +62,16 @@ protected function compile() COUNT(DISTINCT i.id) AS total_products, SUM(i.quantity) AS total_items, SUM(i.tax_free_price * i.quantity) AS total_sales, - " . $period->getSqlField('o.'.$this->strDateField) . " AS dateGroup - FROM " . ProductCollection::getTable() . " o - LEFT JOIN " . ProductCollectionItem::getTable() . " i ON o.id=i.pid - LEFT JOIN " . OrderStatus::getTable() . " os ON os.id=o.order_status - LEFT OUTER JOIN " . Config::getTable() . " c ON o.config_id=c.id - WHERE o.type='order' AND o.order_status>0 AND o.locked!='' + $dateGroup AS dateGroup + FROM tl_iso_product_collection o + LEFT JOIN tl_iso_product_collection_item i ON o.id=i.pid + LEFT JOIN tl_iso_orderstatus os ON os.id=o.order_status + LEFT OUTER JOIN tl_iso_config c ON o.config_id=c.id + WHERE o.type='order' AND o.order_status>0 AND o.{$this->strDateField} IS NOT NULL " . ($intStatus > 0 ? " AND o.order_status=".$intStatus : '') . " - " . $this->getProductProcedure('i', 'product_id') . " + " . static::getProductProcedure('i', 'product_id') . " " . ($intConfig > 0 ? " AND c.id=".$intConfig : '') . " - " . $this->getConfigProcedure('c') . " + " . static::getConfigProcedure('c') . " GROUP BY config_id, dateGroup HAVING dateGroup>=$dateFrom AND dateGroup<=$dateTo "); @@ -112,97 +114,77 @@ protected function compile() protected function initializeData(PeriodInterface $period, $intStart, $intStop) { - $arrData = array('rows'=>array()); + $arrData = ['rows' => []]; - $arrData['header'] = array - ( - array - ( + $arrData['header'] = [ + [ 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['period'], 'header' => true, - ), - array - ( + ], + [ 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['orders#'], 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['products#'], 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['items#'], 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => &$GLOBALS['TL_LANG']['ISO_REPORT']['sales#'], 'attributes' => ' style="text-align:right"', - ), - ); + ], + ]; - $arrData['footer'] = array - ( - array - ( + $arrData['footer'] = [ + [ 'value' => $GLOBALS['TL_LANG']['ISO_REPORT']['sums'], - ), - array - ( + ], + [ 'value' => 0, 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => 0, 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => 0, 'attributes' => ' style="text-align:right"', - ), - array - ( - 'value' => array(), + ], + [ + 'value' => [], 'attributes' => ' style="text-align:right"', - ), - ); - - while ($intStart <= $intStop) - { - $arrData['rows'][$period->getKey($intStart)] = array - ( - 'columns' => array - ( - array - ( + ], + ]; + + while ($intStart <= $intStop) { + $arrData['rows'][$period->getKey($intStart)] = [ + 'columns' => [ + [ 'value' => $period->format($intStart), - ), - array - ( + ], + [ 'value' => 0, 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => 0, 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => 0, 'attributes' => ' style="text-align:right"', - ), - array - ( + ], + [ 'value' => 0, 'attributes' => ' style="text-align:right"', - ), - ), - ); + ], + ], + ]; $intStart = $period->getNext($intStart); } @@ -222,20 +204,17 @@ protected function initializeChart(PeriodInterface $period, $intStart, $intStop) $arrData = array(); $arrCurrencies = \Database::getInstance()->execute(" SELECT DISTINCT currency FROM tl_iso_config WHERE currency!='' - " . $this->getConfigProcedure() . " + " . static::getConfigProcedure() . " " . ($intConfig > 0 ? ' AND id='.$intConfig : '') . " ")->fetchEach('currency'); - foreach ($arrCurrencies as $currency) - { + foreach ($arrCurrencies as $currency) { $arrData[$currency]['label'] = $currency; $arrData[$currency]['className'] = '.'.strtolower($currency); } - while ($intStart <= $intStop) - { - foreach ($arrCurrencies as $currency) - { + while ($intStart <= $intStop) { + foreach ($arrCurrencies as $currency) { $arrData[$currency]['data'][$period->getKey($intStart)]['x'] = $intStart; $arrData[$currency]['data'][$period->getKey($intStart)]['y'] = 0; } @@ -250,12 +229,9 @@ protected function initializeChart(PeriodInterface $period, $intStart, $intStop) protected function formatValues($arrData, $arrCurrencies) { // Format row totals - foreach ($arrData['rows'] as $dateGroup => $arrRow) - { - if (is_array($arrRow['columns'][4]['value'])) - { - foreach ($arrRow['columns'][4]['value'] as $currency => $varValue) - { + foreach ($arrData['rows'] as $dateGroup => $arrRow) { + if (is_array($arrRow['columns'][4]['value'])) { + foreach ($arrRow['columns'][4]['value'] as $currency => $varValue) { /** @type Config $objConfig */ $objConfig = Config::findByPk($arrCurrencies[$currency]); Isotope::setConfig($objConfig); @@ -266,8 +242,7 @@ protected function formatValues($arrData, $arrCurrencies) } // Format footer totals - foreach ($arrData['footer'][4]['value'] as $currency => $varValue) - { + foreach ($arrData['footer'][4]['value'] as $currency => $varValue) { /** @type Config $objConfig */ $objConfig = Config::findByPk($arrCurrencies[$currency]); Isotope::setConfig($objConfig); @@ -275,8 +250,7 @@ protected function formatValues($arrData, $arrCurrencies) $arrData['footer'][4]['value'][$currency] = Isotope::formatPriceWithCurrency($varValue); } - if (empty($arrData['footer'][4]['value'])) - { + if (empty($arrData['footer'][4]['value'])) { $arrData['footer'][4]['value'] = 0; } @@ -289,17 +263,13 @@ protected function initializeDefaultValues() // Set default session data $arrSession = \Session::getInstance()->get('iso_reports'); - if ($arrSession[$this->name]['period'] == '') - { + if ($arrSession[$this->name]['period'] == '') { $arrSession[$this->name]['period'] = 'month'; } - if ($arrSession[$this->name]['stop'] == '') - { + if ($arrSession[$this->name]['stop'] == '') { $arrSession[$this->name]['stop'] = time(); - } - elseif (!is_numeric($arrSession[$this->name]['stop'])) - { + } elseif (!is_numeric($arrSession[$this->name]['stop'])) { // Convert date formats into timestamps try { $objDate = new \Date($arrSession[$this->name]['stop'], $GLOBALS['TL_CONFIG']['dateFormat']); @@ -310,12 +280,9 @@ protected function initializeDefaultValues() } } - if ($arrSession[$this->name]['start'] == '') - { + if ($arrSession[$this->name]['start'] == '') { $arrSession[$this->name]['start'] = strtotime('-6 months'); - } - elseif (!is_numeric($arrSession[$this->name]['start'])) - { + } elseif (!is_numeric($arrSession[$this->name]['start'])) { // Convert date formats into timestamps try { $objDate = new \Date($arrSession[$this->name]['start'], $GLOBALS['TL_CONFIG']['dateFormat']); @@ -331,4 +298,3 @@ protected function initializeDefaultValues() parent::initializeDefaultValues(); } } - diff --git a/system/modules/isotope_reports/templates/iso_block_panel.html5 b/system/modules/isotope_reports/templates/iso_block_panel.html5 new file mode 100644 index 0000000000..28ea4a7380 --- /dev/null +++ b/system/modules/isotope_reports/templates/iso_block_panel.html5 @@ -0,0 +1,75 @@ +panels)): ?> +
    +
    + + + + panels)-1; ?> + panels as $p => $panel): ?> +
    + + +
    + + + + + + +
    + + + + +
    + : + + + +
    + $label): ?> + value="" checked> + +
    + + + = + + + + + + + + +
    + + +
    + +
    + +
    +
    + \ No newline at end of file diff --git a/system/modules/isotope_reports/templates/iso_report_default.html5 b/system/modules/isotope_reports/templates/iso_report_default.html5 index 38f25e8f0c..02d770ffd9 100644 --- a/system/modules/isotope_reports/templates/iso_report_default.html5 +++ b/system/modules/isotope_reports/templates/iso_report_default.html5 @@ -1,73 +1,4 @@ -panels)): ?> -
    -
    - - - -panels)-1; ?> -panels as $p => $panel): ?> -
    - - -
    - -
    - - - - -
    -: - - - -
    - $label): ?> - value="" checked> - -
    - - - = - - - - - - - - -
    - - -
    - -
    - -
    -
    - +insert('iso_block_panel', $this->arrData); ?>
    buttons); ?> @@ -83,29 +14,29 @@ window.addEvent("domready", function() { data['header']): ?> - + data['header'] as $col): ?> - colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> + colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> - + data['footer']): ?> - + data['footer'] as $col): ?> - colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> + colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> - + data['rows'] as $row): ?> - rowspan="" class="" onmouseover="Theme.hoverRow(this,1)" onmouseout="Theme.hoverRow(this,0)"> - - < colspan="" class="tl_file_list ">', $col['value']) : $col['value']; ?>> - - + rowspan="" class="" onmouseover="Theme.hoverRow(this,1)" onmouseout="Theme.hoverRow(this,0)"> + + < colspan="" class="tl_file_list ">', $col['value']) : $col['value']; ?>> + +
    diff --git a/system/modules/isotope_reports/templates/iso_report_members_guests.html5 b/system/modules/isotope_reports/templates/iso_report_members_guests.html5 new file mode 100644 index 0000000000..c9f27e1994 --- /dev/null +++ b/system/modules/isotope_reports/templates/iso_report_members_guests.html5 @@ -0,0 +1,100 @@ +insert('iso_block_panel', $this->arrData); ?> + +
    +buttons); ?> +
    + +

    headline; ?>

    + + + +
    + + + +
    + + + +
      +chart as $currency => $data): ?> +
    • + +
    + + +
    +

    + +dataMember['header']): ?> + + +dataMember['header'] as $col): ?> + colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> + + + + +dataMember['footer']): ?> + + +dataMember['footer'] as $col): ?> + colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> + + + + + +dataMember['rows'] as $row): ?> + class="" onmouseover="Theme.hoverRow(this,1)" onmouseout="Theme.hoverRow(this,0)"> + + < colspan="" class="tl_file_list ">', $col['value']) : $col['value']; ?>> + + + + +
    +
    +
    +

    + +dataGuests['header']): ?> + + +dataGuests['header'] as $col): ?> + colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> + + + + +dataGuests['footer']): ?> + + +dataGuests['footer'] as $col): ?> + colspan="" class="tl_folder_tlist ">', $col['value']) : $col['value']; ?> + + + + + +dataGuests['rows'] as $row): ?> + class="" onmouseover="Theme.hoverRow(this,1)" onmouseout="Theme.hoverRow(this,0)"> + + < colspan="" class="tl_file_list ">', $col['value']) : $col['value']; ?>> + + + + +
    +
    +
    diff --git a/system/modules/isotope_reports/templates/iso_report_sales_total.html5 b/system/modules/isotope_reports/templates/iso_report_sales_total.html5 index 5b06821ce1..cde1ebaa85 100644 --- a/system/modules/isotope_reports/templates/iso_report_sales_total.html5 +++ b/system/modules/isotope_reports/templates/iso_report_sales_total.html5 @@ -1,73 +1,4 @@ -panels)): ?> -
    -
    - - - -panels)-1; ?> -panels as $p => $panel): ?> -
    - - -
    - -
    - - - - -
    -: - - - -
    - $label): ?> - value="" checked> - -
    - - - = - - - - - - - - -
    - - -
    - -
    - -
    -
    - +insert('iso_block_panel', $this->arrData); ?>
    buttons); ?> diff --git a/system/modules/isotope_rules/config/autoload.php b/system/modules/isotope_rules/config/autoload.php index e48578c8b2..e272114dbb 100644 --- a/system/modules/isotope_rules/config/autoload.php +++ b/system/modules/isotope_rules/config/autoload.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope_rules/config/config.php b/system/modules/isotope_rules/config/config.php index 1ad9d864c7..10cc827d8b 100644 --- a/system/modules/isotope_rules/config/config.php +++ b/system/modules/isotope_rules/config/config.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope_rules/dca/tl_iso_product_collection.php b/system/modules/isotope_rules/dca/tl_iso_product_collection.php index 33be88f52a..3fb8dc466f 100644 --- a/system/modules/isotope_rules/dca/tl_iso_product_collection.php +++ b/system/modules/isotope_rules/dca/tl_iso_product_collection.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope_rules/dca/tl_iso_rule.php b/system/modules/isotope_rules/dca/tl_iso_rule.php index f9f79f3039..1a62bff43f 100644 --- a/system/modules/isotope_rules/dca/tl_iso_rule.php +++ b/system/modules/isotope_rules/dca/tl_iso_rule.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ /** @@ -106,9 +105,9 @@ ( '__selector__' => array('type', 'applyTo', 'enableCode', 'configRestrictions', 'memberRestrictions', 'productRestrictions'), 'default' => '{basic_legend},type', - 'product' => '{basic_legend},type,name,discount;{limit_legend:hide},limitPerMember,limitPerConfig,minItemQuantity,maxItemQuantity,quantityMode;{datim_legend:hide},startDate,endDate,startTime,endTime;{advanced_legend:hide},configRestrictions,memberRestrictions,productRestrictions;{enabled_legend},enabled', - 'cart' => '{basic_legend},type,applyTo,name,label,discount;{coupon_legend:hide},enableCode;{limit_legend:hide},limitPerMember,limitPerConfig,minSubtotal,maxSubtotal,minItemQuantity,maxItemQuantity,quantityMode;{datim_legend:hide},startDate,endDate,startTime,endTime;{advanced_legend:hide},configRestrictions,memberRestrictions,productRestrictions;{enabled_legend},enabled', - 'cartsubtotal' => '{basic_legend},type,applyTo,name,label,discount,tax_class;{coupon_legend:hide},enableCode;{limit_legend:hide},limitPerMember,limitPerConfig,minSubtotal,maxSubtotal,minItemQuantity,maxItemQuantity,quantityMode;{datim_legend:hide},startDate,endDate,startTime,endTime;{advanced_legend:hide},configRestrictions,memberRestrictions,productRestrictions;{enabled_legend},enabled', + 'product' => '{basic_legend},type,name,discount,rounding;{limit_legend:hide},limitPerMember,limitPerConfig,minItemQuantity,maxItemQuantity,quantityMode;{datim_legend:hide},startDate,endDate,startTime,endTime;{advanced_legend:hide},configRestrictions,memberRestrictions,productRestrictions;{enabled_legend},enabled', + 'cart' => '{basic_legend},type,applyTo,name,label,discount,rounding;{coupon_legend:hide},enableCode;{limit_legend:hide},limitPerMember,limitPerConfig,minSubtotal,maxSubtotal,minWeight,maxWeight,minItemQuantity,maxItemQuantity,quantityMode;{datim_legend:hide},startDate,endDate,startTime,endTime;{advanced_legend:hide},configRestrictions,memberRestrictions,productRestrictions;{enabled_legend},enabled', + 'cartsubtotal' => '{basic_legend},type,applyTo,name,label,discount,tax_class,rounding;{coupon_legend:hide},enableCode;{limit_legend:hide},limitPerMember,limitPerConfig,minSubtotal,maxSubtotal,minWeight,maxWeight,minItemQuantity,maxItemQuantity,quantityMode;{datim_legend:hide},startDate,endDate,startTime,endTime;{advanced_legend:hide},configRestrictions,memberRestrictions,productRestrictions;{enabled_legend},enabled', ), // Subpalettes @@ -199,6 +198,16 @@ 'eval' => array('mandatory'=>true, 'submitOnChange'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(8) NOT NULL default ''", ), + 'rounding' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_rule']['rounding'], + 'exclude' => true, + 'inputType' => 'radio', + 'options' => array('normal', 'down', 'up'), + 'reference' => &$GLOBALS['TL_LANG']['tl_iso_rule']['rounding'], + 'eval' => array('mandatory'=>true, 'tl_class'=>'clr'), + 'sql' => "varchar(8) NOT NULL default ''", + ), 'enableCode' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_rule']['enableCode'], @@ -259,6 +268,28 @@ function ($varValue) { 'eval' => array('maxlength'=>10, 'rgxp'=>'digit', 'tl_class'=>'w50'), 'sql' => "int(10) unsigned NOT NULL default '0'", ), + 'minWeight' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_rule']['minWeight'], + 'exclude' => true, + 'default' => array('unit'=>'kg'), + 'inputType' => 'timePeriod', + 'options' => array('mg', 'g', 'kg', 't', 'ct', 'oz', 'lb', 'st', 'grain'), + 'reference' => &$GLOBALS['TL_LANG']['WGT'], + 'eval' => array('rgxp'=>'digit', 'tl_class'=>'w50'), + 'sql' => "varchar(255) NOT NULL default ''", + ), + 'maxWeight' => array + ( + 'label' => &$GLOBALS['TL_LANG']['tl_iso_rule']['maxWeight'], + 'exclude' => true, + 'default' => array('unit'=>'kg'), + 'inputType' => 'timePeriod', + 'options' => array('mg', 'g', 'kg', 't', 'ct', 'oz', 'lb', 'st', 'grain'), + 'reference' => &$GLOBALS['TL_LANG']['WGT'], + 'eval' => array('rgxp'=>'digit', 'tl_class'=>'w50'), + 'sql' => "varchar(255) NOT NULL default ''", + ), 'minItemQuantity' => array ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_rule']['minItemQuantity'], diff --git a/system/modules/isotope_rules/dca/tl_iso_rule_restriction.php b/system/modules/isotope_rules/dca/tl_iso_rule_restriction.php index 09d4e51c4a..40cb5ba354 100644 --- a/system/modules/isotope_rules/dca/tl_iso_rule_restriction.php +++ b/system/modules/isotope_rules/dca/tl_iso_rule_restriction.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope_rules/dca/tl_iso_rule_usage.php b/system/modules/isotope_rules/dca/tl_iso_rule_usage.php index 62bcd5c3af..892fad58ea 100644 --- a/system/modules/isotope_rules/dca/tl_iso_rule_usage.php +++ b/system/modules/isotope_rules/dca/tl_iso_rule_usage.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ diff --git a/system/modules/isotope_rules/languages/ar/default.php b/system/modules/isotope_rules/languages/ar/default.php deleted file mode 100644 index e21862bfc1..0000000000 --- a/system/modules/isotope_rules/languages/ar/default.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + + + Apply Promotional Codes + + + Promotional code + + + Apply + + + Your coupon %s is not valid. + + + Your coupon %s has been applied. + + + Your coupon %s has already been applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/cs/modules.php b/system/modules/isotope_rules/languages/cs/modules.php deleted file mode 100644 index f13d8d402e..0000000000 --- a/system/modules/isotope_rules/languages/cs/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + + + Rules &amp; Coupons + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/cs/tl_iso_rule.php b/system/modules/isotope_rules/languages/cs/tl_iso_rule.php deleted file mode 100644 index e08f8d7f6d..0000000000 --- a/system/modules/isotope_rules/languages/cs/tl_iso_rule.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Type + + + Please choose the type of rule. + + + Product + + + Cart + + + Name + Jméno + + + Please enter a name for this rule. + + + Label + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + + + Total quantity in cart + + + Start date + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + Skupiny + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + + + Categories + + + Products + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/da/default.php b/system/modules/isotope_rules/languages/da/default.php deleted file mode 100644 index 6913f2a2d2..0000000000 --- a/system/modules/isotope_rules/languages/da/default.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + + + Apply Promotional Codes + + + Promotional code + + + Apply + + + Your coupon %s is not valid. + + + Your coupon %s has been applied. + + + Your coupon %s has already been applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/da/modules.php b/system/modules/isotope_rules/languages/da/modules.php deleted file mode 100644 index fc4aaa4c57..0000000000 --- a/system/modules/isotope_rules/languages/da/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Regler og rabatkoder + + + Rules &amp; Coupons + Regler og rabatkoder + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/da/tl_iso_rule.php b/system/modules/isotope_rules/languages/da/tl_iso_rule.php deleted file mode 100644 index 3a9be39b29..0000000000 --- a/system/modules/isotope_rules/languages/da/tl_iso_rule.php +++ /dev/null @@ -1,26 +0,0 @@ - + + + + Type + + + Please choose the type of rule. + + + Product + + + Cart + + + Name + Navn + + + Please enter a name for this rule. + + + Label + Mærkat + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + Moms klasse + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + + + Total quantity in cart + + + Start date + Start dato + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + Grupper + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + Produkttyper + + + Categories + Kategorier + + + Products + Produkter + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + Produkter + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + Kategorier + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/de/default.php b/system/modules/isotope_rules/languages/de/default.php deleted file mode 100644 index ecc28f2ec4..0000000000 --- a/system/modules/isotope_rules/languages/de/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + Ihr Gutscheincode "%s" konnte nicht verwendet werden. Bitte kontrollieren Sie Ihre Bestellung nochmals. + + + Apply Promotional Codes + Gutscheincode hinzufügen + + + Promotional code + Gutscheincode + + + Apply + Hinzufügen + + + Your coupon %s is not valid. + Ihr Gutschein %s ist ungültig. + + + Your coupon %s has been applied. + Ihr Gutschein %s wurde hinzugefügt. + + + Your coupon %s has already been applied. + Ihr Gutschein %s wurde bereits hinzugefügt. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/de/modules.php b/system/modules/isotope_rules/languages/de/modules.php deleted file mode 100644 index bb4c414143..0000000000 --- a/system/modules/isotope_rules/languages/de/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Regeln & Gutscheine + + + Rules &amp; Coupons + Regeln & Gutscheine + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/de/tl_iso_rule.php b/system/modules/isotope_rules/languages/de/tl_iso_rule.php deleted file mode 100644 index 9d4393d09d..0000000000 --- a/system/modules/isotope_rules/languages/de/tl_iso_rule.php +++ /dev/null @@ -1,135 +0,0 @@ - + + + + Type + Typ + + + Please choose the type of rule. + Bitte wählen Sie den Regeltyp. + + + Product + Produkt + + + Cart + Warenkorb + + + Name + Name + + + Please enter a name for this rule. + Bitte geben Sie einen Namen für diese Regel ein. + + + Label + Bezeichnung + + + The label will be show in cart. If you do not enter a label, the name will be used. + Diese Bezeichnung wird im Warenkorb angezeigt. Wenn Sie keine Bezeichnung angeben, wird stattdessen der Name genutzt. + + + Discount + Ermäßigung + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + Gültige Werte sind Dezimalzahlen oder ganze Zahlen, Minus einem numerischen Wert oder Minus einer Prozentangabe + + + Tax Class + Steuerklasse + + + Apply discount to + Ermäßigung hinzufügen zu + + + Select how the discount is applied. + Wählen Sie aus wie die Ermäßigung hinzugefügt werden soll. + + + to each product + für jedes Produkt + + + to each unit of a product + für jede Einheit eines Produktes + + + to the cart subtotal + für den Warenkorb-Gesamtwert + + + Discount rounding + Rabatt-Rundung + + + Define how percentual discounts should be rounded. + Definieren Sie wie Rabatte gerundet werden sollen. + + + Commercial rounding + kaufmännisch + + + Always round down (in favor of shop owner) + Immer nach unten (zum Vorteil des Shopbetreibers) + + + Always round up (in favor of shop visitor) + Immer nach oben (zum Vorteil des Besuchers) + + + Enable coupon code + Gutscheincode freischalten + + + Require a code to be entered to invoke this rule, as a coupon. + Festlegen, dass ein Code eingegeben werden muss um diese Regeln als Gutschein zu aktivieren. + + + Rule (coupon) code + Regel (Gutschein) Code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + Bitte geben Sie einen Code ein, mit dem ein Kunde diese Regel als Gutschein aktivieren kann. + + + Uses per member + Benutzungen pro Kunde + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + Dies wird genutzt um zu sehen ob die Regel bereits eingelöst wurde. Wenn es auf 0 eingestellt wird, kann sie von jedem Kunden beliebig oft eingesetzt werden, + + + Uses per store config + Benutzungen pro Shop-Konfiguration + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + Dies wird genutzt um zu sehen ob die Regel bereits eingelöst wurde. Wenn es auf 0 eingestellt wird, kann sie in jeder Shop-Konfiguration beliebig oft eingesetzt werden, + + + Minimum subtotal + Mindestbetrag Zwischensumme + + + Please specify a minimum subtotal this rule applies to. + Bitte geben Sie einen Mindestbestellwert ein, ab welchem diese Regel angewendet werden soll. + + + Maximum subtotal + Höchstbetrag Zwischensumme + + + Please specify a maximum subtotal this rule applies to. + Bitte geben Sie einen Höchstbestellwert ein, bis zu welchem diese Regel angewendet werden soll. + + + Minimum weight + Mindestgewicht + + + Enter a minimum weight to control availability based on the products in cart. + Geben Sie ein Mindestgewicht für die Verfügbarkeit dieser Versandart ein. + + + Maximum weight + Höchstgewicht + + + Enter a maximum weight to control availability based on the products in cart. + Geben Sie ein Maximalgewicht für die Verfügbarkeit dieser Versandart ein. + + + Minimum item quantity + Geringste Produktanzahl + + + Please specify a minimum quantity of an item this rule applies to. + Bitte legen Sie fest, wie oft das Produkt mindestens gewählt sein muss, damit diese Regel angewendet werden soll. + + + Maximum item quantity + Höchste Produktanzahl + + + Please specify a maximum quantity of a single item this rule applies to. + Bitte legen Sie fest, wie oft das Produkt höchstens gewählt sein darf, damit diese Regel angewendet werden soll. + + + Quantity calculation mode + Mengen-Berechnungsmodus + + + Select a calculation mode for min/max quantity. + Wählen Sie einen Berechnungsmodus für die minimale/maximale Menge. + + + Quantity of product in cart + Menge der Produkte im Warenkorb + + + Total products in cart + Menge der verschiedenen Produkte im Warenkorb + + + Total quantity in cart + Gesamtmenge im Warenkorb + + + Start date + Startdatum + + + If desired, please specify the date this rule will become eligible on. + Falls gewollt, geben Sie hier an ab welchem Datum diese Regel zur Verfügung steht. + + + End date + Enddatum + + + If desired, please specify the date this rule will no longer be eligible on. + Falls gewollt, geben Sie hier ab welchem Datum diese Regel nicht mehr zur Verfügung steht. + + + Start time + Startzeit + + + If desired, please specify the time this rule will become eligible at. + Falls gewollt, geben Sie hier an ab welcher Uhrzeit diese Regel zur Verfügung steht. + + + End time + Endzeit + + + If desired, please specify the time this rule will not longer be eligible at. + Falls gewollt, geben Sie hier ein ab welcher Uhrzeit diese Regel nicht mehr zur Verfügung steht. + + + Store config restrictions + Einschränkungen der Shop-Konfiguration + + + Restrict a rule to certain store configs. + Schränken Sie diese Regel auf bestimmte Shop-Konfigurationen ein. + + + Store config condition + Bedingung der Shop-Konfiguration + + + Define if the selection should match or not. + Definieren Sie ob die Auswahl passen soll oder nicht. + + + Store configs + Shop-Konfigurationen + + + Select configs this rule is restricted to. + Wählen Sie auf welche Konfigurationen diese Regel beschränkt ist. + + + Member restrictions + Mitglieder-Einschränkungen + + + Restrict a rule to certain groups or members. + Schränken Sie diese Regel auf bestimmte Gruppen oder Mitglieder ein. + + + No restrictions + Keine Einschränkungen + + + Guests + Nur für Gäste + + + Specific groups + Bestimmte Gruppen + + + Specific members + Bestimmte Mitglieder + + + Member condition + Bedingung für Mitglieder + + + Define if the selection should match or not. + Definieren Sie ob die Auswahl passen soll oder nicht. + + + Members + Mitglieder + + + Select members this rule is restricted to. + Wählen Sie auf welche Mitglieder diese Regel beschränkt ist. + + + Groups + Gruppen + + + Select groups this rule is restricted to. + Wählen Sie auf welche Gruppen diese Regel beschränkt ist. + + + Product restrictions + Produkt-Einschränkungen + + + Restrict this rule to certain product types, categories, or to individual products. + Schränken Sie diese Regel auf bestimmte Produkttypen, Kategorien oder individuelle Produkte ein. + + + No restrictions + Keine Einschränkungen + + + Product types + Produkttypen + + + Categories + Kategorien + + + Products + Produkte + + + Products &amp; Variants + Produkte &amp; Varianten + + + Product attribute + Produktattribute + + + Product condition + Produktbedingungen + + + Define if the selection should match or not. + Definieren Sie ob die Auswahl passen soll oder nicht. + + + Product Types + Produkttypen + + + Select the product types this rule is restricted to. If none, all are eligible. + Wählen Sie auf welche Produkttypen diese Regel beschränkt ist. Falls Sie keine wählen, gilt sie für alle. + + + Products + Produkte + + + Select products this rule is restricted to. If none, all are eligible. + Wählen Sie auf welche Produkte diese Regel beschränkt ist. Falls Sie keine wählen, gilt sie für alle. + + + Products & Variants + Produkte & Varianten + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + Geben Sie eine komma-separierte Liste von Produkt- oder Varianten-ID's ein, auf welche diese Regel angewendet werden soll. + + + Attribute name + Namen des Attributes + + + Select the product attribute you want to restrict. + Wählen Sie das Produktattribut, welches eingeschränkt werden soll. + + + Attribute condition + Attributbedingungen + + + Select the product attribute you want to restrict. + Wählen Sie das Produktattribut, welches eingeschränkt werden soll. + + + equals + ist gleich + + + not equal + ist nicht gleich + + + less than + weniger als + + + greater than + größer als + + + less than or equal to + weniger als oder ist gleich + + + greater than or equal to + größer als oder ist gleich + + + starts with + Beginnt mit + + + ends with + Endet mit + + + contains + beinhaltet + + + Categories + Kategorien + + + Select categories this rule is restricted to. If none, all are eligible. + Wählen Sie auf welche Kategorien diese Regel beschränkt ist. Falls Sie keine wählen, gilt sie für alle. + + + Enabled + Aktiv + + + Please select whether this rule is currently enabled or not. + Bitte wählen Sie ob diese Regel derzeit aktiv ist oder nicht. + + + Basic rule setup + Basis-Regeleinstellungen + + + Coupon Code + Geschenkgutschein + + + Limit Uses + Nutzungen einschränken + + + Date &amp; Time Restrictions + Datum & Zeit Einschränkungen + + + Advanced Restrictions + Erweiterte Einschränkungen + + + Availability + Verfügbarkeit + + + Exclude all other rules + Alle anderen Regeln ausschließen + + + No rule exclusions + Keine Regeln ausschließen + + + Exclude certain rules + Bestimmte Regeln ausschließen + + + true + Wahr + + + false + Falsch + + + Add rule + Regel hinzufügen + + + Create a new rule + Neue Regeln erstellen + + + Edit rule + Regel bearbeiten + + + Edit rule ID %s + Bearbeite die Regel mit der ID %s + + + Duplicate rule + Regel duplizieren + + + Duplicate rule ID %s + Dupliziere die Regel mit der ID %s + + + Delete rule + Regel löschen + + + Delete rule ID %s + Lösche die Regel mit der ID %s + + + Publish/unpublish rule + Regel veröffentlichen/unveröffentlichen + + + Publish/unpublish rule ID %s + Regel mit ID %s veröffentlichen/unveröffentlichen + + + Rule details + Regeldetails + + + Show the details of rule ID %s + Zeige die Details der Regel mit der ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/en/default.php b/system/modules/isotope_rules/languages/en/default.php deleted file mode 100644 index f72375d43f..0000000000 --- a/system/modules/isotope_rules/languages/en/default.php +++ /dev/null @@ -1,28 +0,0 @@ - + + + + + Your coupon code "%s" could not be applied. Please review your order again. + + + Apply Promotional Codes + + + Promotional code + + + Apply + + + Your coupon %s is not valid. + + + Your coupon %s has been applied. + + + Your coupon %s has already been applied. + + + + diff --git a/system/modules/isotope_rules/languages/en/modules.php b/system/modules/isotope_rules/languages/en/modules.php deleted file mode 100644 index 2f1d83e802..0000000000 --- a/system/modules/isotope_rules/languages/en/modules.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + + Isotope eCommerce: Rules &amp; Coupons + + + Rules &amp; Coupons + + + + diff --git a/system/modules/isotope_rules/languages/en/tl_iso_rule.php b/system/modules/isotope_rules/languages/en/tl_iso_rule.php deleted file mode 100644 index a0f7e83f58..0000000000 --- a/system/modules/isotope_rules/languages/en/tl_iso_rule.php +++ /dev/null @@ -1,110 +0,0 @@ - + + + + + Type + + + Please choose the type of rule. + + + Product + + + Cart + + + Name + + + Please enter a name for this rule. + + + Label + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + + + Total quantity in cart + + + Start date + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + + + Categories + + + Products + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + diff --git a/system/modules/isotope_rules/languages/es/default.php b/system/modules/isotope_rules/languages/es/default.php deleted file mode 100644 index a40c0b9d2f..0000000000 --- a/system/modules/isotope_rules/languages/es/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + No se puede aplicar el código de cupón "%s". Por favor revise su pedido de nuevo. + + + Apply Promotional Codes + Aplicar un código de promoción + + + Promotional code + Código + + + Apply + Aplicar + + + Your coupon %s is not valid. + Su cupón %s no es válido. + + + Your coupon %s has been applied. + Su cupón %s ha sido aplicado. + + + Your coupon %s has already been applied. + Su cupón %s ya se ha aplicado. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/es/modules.php b/system/modules/isotope_rules/languages/es/modules.php deleted file mode 100644 index 572c5bdd91..0000000000 --- a/system/modules/isotope_rules/languages/es/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Reglas y Coupones + + + Rules &amp; Coupons + Reglas y Coupones + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/es/tl_iso_rule.php b/system/modules/isotope_rules/languages/es/tl_iso_rule.php deleted file mode 100644 index a7f9fa1abd..0000000000 --- a/system/modules/isotope_rules/languages/es/tl_iso_rule.php +++ /dev/null @@ -1,134 +0,0 @@ - + + + + Type + Tipo + + + Please choose the type of rule. + Por favor, elija el tipo de regla. + + + Product + Producto + + + Cart + Cesta + + + Name + Nombre + + + Please enter a name for this rule. + Por favor, introduzca un nombre para esta regla. + + + Label + Etiqueta + + + The label will be show in cart. If you do not enter a label, the name will be used. + La etiqueta aparecerá en el carrito. Si no se introduce una etiqueta, se utilizará el nombre. + + + Discount + Descuento + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + Los valores válidos son números decimales o enteros, menos un valor numérico o menos un porcentaje. + + + Tax Class + Clase de Impuesto + + + Apply discount to + Aplicar descuento a + + + Select how the discount is applied. + Seleccione la forma en que se aplica el descuento. + + + to each product + a cada producto + + + to each unit of a product + a cada unidad de un producto + + + to the cart subtotal + al subtotal de la cesta + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + Habilitar código de descuento + + + Require a code to be entered to invoke this rule, as a coupon. + Requiere un código a introducir para invocar esa regla, como un cupón. + + + Rule (coupon) code + Código de Regla (cupón) + + + Please enter a code by which a customer will invoke this rule, as a coupon. + Introduce un código mediante el cual un cliente va a invocar esta regla, como un cupón. + + + Uses per member + Usos por miembro + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + Esto se utiliza para ver si la regla ya ha sido redimido. Si se establece en 0, se puede utilizar un número ilimitado de veces para cada cliente. + + + Uses per store config + Usos por configuración de tienda + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + Esto se utiliza para ver si la regla ya ha sido redimido. Si se establece en 0, se puede utilizar un número ilimitado de veces para cada configuración de tienda. + + + Minimum subtotal + Subtotal mínimo + + + Please specify a minimum subtotal this rule applies to. + Por favor, especifique un subtotal mínimo para que se aplique esta regla. + + + Maximum subtotal + Subtotal máximo + + + Please specify a maximum subtotal this rule applies to. + Por favor, especifique un subtotal máximo para que se aplique esta regla. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + Cantidad mínima de artículos + + + Please specify a minimum quantity of an item this rule applies to. + Por favor, especifique la cantidad mínima de un único artículo para que se aplique esta regla. + + + Maximum item quantity + Cantidad máxima de artículos + + + Please specify a maximum quantity of a single item this rule applies to. + Por favor, especifique la cantidad máxima de un único artículo para que se aplique esta regla. + + + Quantity calculation mode + Modo de cálculo de la cantidad' + + + Select a calculation mode for min/max quantity. + Seleccione el modo de cálculo de cantidad min/max. + + + Quantity of product in cart + Cantidad de producto en la cesta + + + Total products in cart + Total de productos en la cesta + + + Total quantity in cart + Cantidad total en la cesta + + + Start date + Fecha de inicio + + + If desired, please specify the date this rule will become eligible on. + Si lo desea, especifique la fecha en la cual esta regla será elegible. + + + End date + Fecha de fin + + + If desired, please specify the date this rule will no longer be eligible on. + Si lo desea, indique la fecha en la cual esta regla ya no será elegible. + + + Start time + Hora de inicio + + + If desired, please specify the time this rule will become eligible at. + Si lo desea, especifique la hora en el que esta regla será elegible. + + + End time + Hora de fin + + + If desired, please specify the time this rule will not longer be eligible at. + Si lo desea, especifique la hora en el que esta regla no será ya elegible. + + + Store config restrictions + Restricciones de configuración de tienda + + + Restrict a rule to certain store configs. + Restringir una regla para ciertas configuración de tienda. + + + Store config condition + Condiciones de configuración de tienda + + + Define if the selection should match or not. + Definir si la selección debe coincidir o no. + + + Store configs + Configuración de tienda + + + Select configs this rule is restricted to. + Seleccionar las configuracion de tienda a la cual se limita esta regla. + + + Member restrictions + Restricciones a miembros + + + Restrict a rule to certain groups or members. + Restringir una regla para ciertos grupos o miembros. + + + No restrictions + Sin restricciones + + + Guests + Invitados + + + Specific groups + Grupos específicos + + + Specific members + Miembros específicos + + + Member condition + Condición membro + + + Define if the selection should match or not. + Definir si la selección debe coincidir o no. + + + Members + Miembros + + + Select members this rule is restricted to. + Selección de los miembros para los cuales se limita esta regla. + + + Groups + Groupos + + + Select groups this rule is restricted to. + Selección de los grupos para los cuales se limita esta regla. + + + Product restrictions + Restricciones de productos + + + Restrict this rule to certain product types, categories, or to individual products. + Restringir esta regla para ciertos tipos de productos, categorías, o para productos individuales. + + + No restrictions + Sin restricciones + + + Product types + Tipos de productos + + + Categories + Categorías + + + Products + Productos + + + Products &amp; Variants + Productos & Variantes + + + Product attribute + Atributo del producto + + + Product condition + Condición del producto + + + Define if the selection should match or not. + Definir si la selección debe coincidir o no. + + + Product Types + Tipos de productos + + + Select the product types this rule is restricted to. If none, all are eligible. + Seleccione los tipos de productos para los cuales esta regla se limita. Si no, todos son elegibles. + + + Products + Productos + + + Select products this rule is restricted to. If none, all are eligible. + Seleccione los productos para los cuales esta regla se limita. Si no, todos son elegibles. + + + Products & Variants + Productos & Variantes + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + Nombre del atributo + + + Select the product attribute you want to restrict. + Seleccione el atributo del producto que desea restringir. + + + Attribute condition + Condición del atributo + + + Select the product attribute you want to restrict. + Seleccione el atributo del producto que desea restringir. + + + equals + iguales + + + not equal + no es igual + + + less than + menos de + + + greater than + más de + + + less than or equal to + menos de o igual a + + + greater than or equal to + mayor que o igual a + + + starts with + comienza con + + + ends with + termina con + + + contains + contiene + + + Categories + Categorías + + + Select categories this rule is restricted to. If none, all are eligible. + Seleccione las categorías para las cuales esta regla se limita. Si no, todos son elegibles. + + + Enabled + Activado + + + Please select whether this rule is currently enabled or not. + Seleccione si esta regla está habilitada o no. + + + Basic rule setup + Configuración de regla básica + + + Coupon Code + Código cupón + + + Limit Uses + Limitar los usos + + + Date &amp; Time Restrictions + Restricciones de Fecha y hora + + + Advanced Restrictions + Restricción avanzadas + + + Availability + Disponibilidad + + + Exclude all other rules + Excluir todas las otras reglas + + + No rule exclusions + No excluir reglas + + + Exclude certain rules + Excluir ciertas reglas + + + true + verdad + + + false + falso + + + Add rule + Añadir regla + + + Create a new rule + Crear una nueva regla + + + Edit rule + Editar regla + + + Edit rule ID %s + Editar regla ID %s + + + Duplicate rule + Duplicar regla + + + Duplicate rule ID %s + Duplicar regla ID %s + + + Delete rule + Borrar regla + + + Delete rule ID %s + Borrar regla ID %s + + + Publish/unpublish rule + Publicar/anular la publicación de la regla + + + Publish/unpublish rule ID %s + Publicar/anular la publicación de la regla ID %s + + + Rule details + Detalles de las reglas + + + Show the details of rule ID %s + Mostrar los detalles de la regla ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fa/default.php b/system/modules/isotope_rules/languages/fa/default.php deleted file mode 100644 index fbc88fb3d5..0000000000 --- a/system/modules/isotope_rules/languages/fa/default.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + + + Apply Promotional Codes + + + Promotional code + + + Apply + + + Your coupon %s is not valid. + + + Your coupon %s has been applied. + + + Your coupon %s has already been applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fa/modules.php b/system/modules/isotope_rules/languages/fa/modules.php deleted file mode 100644 index 44a0e3753c..0000000000 --- a/system/modules/isotope_rules/languages/fa/modules.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + + + Rules &amp; Coupons + قوانین و کوپن‌ها + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fa/tl_iso_rule.php b/system/modules/isotope_rules/languages/fa/tl_iso_rule.php deleted file mode 100644 index 07925486ce..0000000000 --- a/system/modules/isotope_rules/languages/fa/tl_iso_rule.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Type + نوع + + + Please choose the type of rule. + لطفا نوع نقش را انتخاب کنید. + + + Product + + + Cart + + + Name + نام + + + Please enter a name for this rule. + + + Label + برچسب + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + + + Total quantity in cart + + + Start date + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + گروه‌ها + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + + + Categories + دسته‌بندی‌ها + + + Products + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + دسته‌بندی‌ها + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fi/default.php b/system/modules/isotope_rules/languages/fi/default.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope_rules/languages/fi/default.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + + + Apply Promotional Codes + + + Promotional code + + + Apply + + + Your coupon %s is not valid. + + + Your coupon %s has been applied. + + + Your coupon %s has already been applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fi/modules.php b/system/modules/isotope_rules/languages/fi/modules.php deleted file mode 100644 index 6ae4844b43..0000000000 --- a/system/modules/isotope_rules/languages/fi/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + + + Rules &amp; Coupons + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fi/tl_iso_rule.php b/system/modules/isotope_rules/languages/fi/tl_iso_rule.php deleted file mode 100644 index 346b906dff..0000000000 --- a/system/modules/isotope_rules/languages/fi/tl_iso_rule.php +++ /dev/null @@ -1,19 +0,0 @@ - + + + + Type + + + Please choose the type of rule. + + + Product + + + Cart + + + Name + + + Please enter a name for this rule. + + + Label + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + + + Total quantity in cart + + + Start date + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + Ryhmät + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + + + Categories + + + Products + Tuotteet + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + Tuotteet + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fr/default.php b/system/modules/isotope_rules/languages/fr/default.php deleted file mode 100644 index 724b67abd6..0000000000 --- a/system/modules/isotope_rules/languages/fr/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + Votre code coupon "%s" ne pouvait pas être appliqué. Veuillez vérifier à nouveau votre commande. + + + Apply Promotional Codes + Ajouter des codes promotionnels + + + Promotional code + Code promotionnel + + + Apply + Appliquer + + + Your coupon %s is not valid. + Votre coupon %s n'est pas valide. + + + Your coupon %s has been applied. + Votre coupon %s a été ajouté. + + + Your coupon %s has already been applied. + Votre coupon %s a déjà été ajouté. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fr/modules.php b/system/modules/isotope_rules/languages/fr/modules.php deleted file mode 100644 index ab9f92d352..0000000000 --- a/system/modules/isotope_rules/languages/fr/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Règles &amp; coupons + + + Rules &amp; Coupons + Règles &amp; coupons + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/fr/tl_iso_rule.php b/system/modules/isotope_rules/languages/fr/tl_iso_rule.php deleted file mode 100644 index 0f33987687..0000000000 --- a/system/modules/isotope_rules/languages/fr/tl_iso_rule.php +++ /dev/null @@ -1,135 +0,0 @@ - + + + + Type + Type + + + Please choose the type of rule. + Veuillez, s'il vous plaît, choisir le type de règle. + + + Product + Produit + + + Cart + Panier + + + Name + Nom + + + Please enter a name for this rule. + Veuillez, s'il vous plaît, insérer un nom pour cette règle. + + + Label + Libellé + + + The label will be show in cart. If you do not enter a label, the name will be used. + Le label sera affiché dans le panier. Si vous n'entrez pas un label, le nom sera utilisé. + + + Discount + Remise + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + Taxe + + + Apply discount to + Appliquer la réduction à + + + Select how the discount is applied. + Sélectionnez la façon dont la réduction est appliquée. + + + to each product + à chaque produit + + + to each unit of a product + à chaque unité d'un produit + + + to the cart subtotal + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + Sous-total minimum + + + Please specify a minimum subtotal this rule applies to. + Indiquer un sous total minimum auquel s'applique cette règle. + + + Maximum subtotal + Sous-total maximum + + + Please specify a maximum subtotal this rule applies to. + Indiquer un sous total maximum auquel s'applique cette règle. + + + Minimum weight + Poids minimum + + + Enter a minimum weight to control availability based on the products in cart. + Entrez un poids minimum pour contrôler la disponibilité basée sur les produits dans le panier. + + + Maximum weight + Poids maximum + + + Enter a maximum weight to control availability based on the products in cart. + Entrez un poids maximum pour contrôler la disponibilité basée sur les produits dans le panier. + + + Minimum item quantity + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + Quantité de produit dans le panier + + + Total products in cart + Total des produits dans le panier + + + Total quantity in cart + Quantité totale dans le panier + + + Start date + Afficher à partir du + + + If desired, please specify the date this rule will become eligible on. + If desired, please specify the date this rule will become eligible on. + + + End date + End date + + + If desired, please specify the date this rule will no longer be eligible on. + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + Start time + + + If desired, please specify the time this rule will become eligible at. + If desired, please specify the time this rule will become eligible at. + + + End time + End time + + + If desired, please specify the time this rule will not longer be eligible at. + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + Store config restrictions + + + Restrict a rule to certain store configs. + Restrict a rule to certain store configs. + + + Store config condition + Store config condition + + + Define if the selection should match or not. + Define if the selection should match or not. + + + Store configs + Store configs + + + Select configs this rule is restricted to. + Select configs this rule is restricted to. + + + Member restrictions + Member restrictions + + + Restrict a rule to certain groups or members. + Restrict a rule to certain groups or members. + + + No restrictions + Aucune restriction + + + Guests + Invités + + + Specific groups + Groupes spécifiques + + + Specific members + Membres spécifiques + + + Member condition + Member condition + + + Define if the selection should match or not. + Define if the selection should match or not. + + + Members + Members + + + Select members this rule is restricted to. + Select members this rule is restricted to. + + + Groups + Groupes + + + Select groups this rule is restricted to. + Select groups this rule is restricted to. + + + Product restrictions + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + Aucune restriction + + + Product types + Types de produits + + + Categories + Categories + + + Products + Produits + + + Products &amp; Variants + Produits &amp; Variantes + + + Product attribute + Product attribute + + + Product condition + Product condition + + + Define if the selection should match or not. + Define if the selection should match or not. + + + Product Types + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + Produits + + + Select products this rule is restricted to. If none, all are eligible. + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + Saisir une liste séparée par des virgules des ID de produits ou variantes limitant cette règle. + + + Attribute name + Attribute name + + + Select the product attribute you want to restrict. + Select the product attribute you want to restrict. + + + Attribute condition + Attribute condition + + + Select the product attribute you want to restrict. + Select the product attribute you want to restrict. + + + equals + est égal à + + + not equal + n'est pas égal à + + + less than + inférieur à + + + greater than + supérieur à + + + less than or equal to + inférieur ou égal à + + + greater than or equal to + supérieur ou égal à + + + starts with + débute par + + + ends with + se termine par + + + contains + contient + + + Categories + Categories + + + Select categories this rule is restricted to. If none, all are eligible. + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + Activé + + + Please select whether this rule is currently enabled or not. + Please select whether this rule is currently enabled or not. + + + Basic rule setup + Basic rule setup + + + Coupon Code + Coupon Code + + + Limit Uses + Limit Uses + + + Date &amp; Time Restrictions + Date &amp; Time Restrictions + + + Advanced Restrictions + Restrictions avancées + + + Availability + Disponibilité + + + Exclude all other rules + Exclure toutes les autres règles + + + No rule exclusions + Aucune exclusion de règles + + + Exclude certain rules + Exclure certaines règles + + + true + vrai + + + false + faux + + + Add rule + Créer une règle + + + Create a new rule + Créer une nouvelle règle + + + Edit rule + Éditer une règle + + + Edit rule ID %s + Éditer la règle ID %s + + + Duplicate rule + Dupliquer une règle + + + Duplicate rule ID %s + Dupliquer la règle ID %s + + + Delete rule + Supprimer une règle + + + Delete rule ID %s + Supprimer la règle ID %s + + + Publish/unpublish rule + Publier/dé-publier une règle + + + Publish/unpublish rule ID %s + Publier/dé-publier la règle ID %s + + + Rule details + Détails de la règle + + + Show the details of rule ID %s + Afficher les détails de la règle ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/it/default.php b/system/modules/isotope_rules/languages/it/default.php deleted file mode 100644 index 4c57500efa..0000000000 --- a/system/modules/isotope_rules/languages/it/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + Il tuo codice coupon "%s" non può essere applicato. Prego controlla di nuovo il tuo ordine + + + Apply Promotional Codes + Applica Codici Promozionali + + + Promotional code + Codice promozionale + + + Apply + Applica + + + Your coupon %s is not valid. + Il tuo coupon %s non è valido. + + + Your coupon %s has been applied. + Il tuo coupon %s è stato applicato. + + + Your coupon %s has already been applied. + Il tuo coupon %s è stato già applicato. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/it/modules.php b/system/modules/isotope_rules/languages/it/modules.php deleted file mode 100644 index 3c8cafa762..0000000000 --- a/system/modules/isotope_rules/languages/it/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Regole &amp; Buoni spesa + + + Rules &amp; Coupons + Regole &amp; Buoni spesa + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/it/tl_iso_rule.php b/system/modules/isotope_rules/languages/it/tl_iso_rule.php deleted file mode 100644 index 4e91727db7..0000000000 --- a/system/modules/isotope_rules/languages/it/tl_iso_rule.php +++ /dev/null @@ -1,69 +0,0 @@ - + + + + Type + Tipo + + + Please choose the type of rule. + Prego scegliere il tipo di regola. + + + Product + Prodotto + + + Cart + Carrello + + + Name + Nome + + + Please enter a name for this rule. + Prego inserire un nome per questa regola. + + + Label + Etichetta + + + The label will be show in cart. If you do not enter a label, the name will be used. + L'etichetta sarà mostrata nel carrello. Se non inserisci un'etichetta, verrà usato il nome. + + + Discount + Sconto + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + I valori validi sono numeri decimali o interi, meno un valore numerico o meno una percentuale. + + + Tax Class + Classe aliquota + + + Apply discount to + Applica sconto a + + + Select how the discount is applied. + Seleziona come lo sconto è applicato. + + + to each product + per ogni prodotto + + + to each unit of a product + per ogni unità di un prodotto + + + to the cart subtotal + per il subtotale del carrello + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + Attiva codice coupon + + + Require a code to be entered to invoke this rule, as a coupon. + Richiedi un codice da immettere per invocare questa regola, come un coupon. + + + Rule (coupon) code + Regola (coupon) codice + + + Please enter a code by which a customer will invoke this rule, as a coupon. + Prego inserire un codice tale che un cliente possa invocare questa regola, come un coupon. + + + Uses per member + Utilizza per membro + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + Questo sarà utilizzato per verificare se la regola è stata già riscattata. Se è fissato a 0, può essere usato illimitatamente per ogni cliente. + + + Uses per store config + Utilizza per configurazione negozio + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + Questo sarà utilizzato per verificare se la regola è stata già riscattata. Se è fissato a 0, può essere usato illimitatamente per ogni cliente. + + + Minimum subtotal + Subtotale minimo + + + Please specify a minimum subtotal this rule applies to. + Prego specificare un subtotale minimo a cui questa regola è applicata. + + + Maximum subtotal + Subtotale massimo + + + Please specify a maximum subtotal this rule applies to. + Prego specificare un subtotale massimo a cui questa regola è applicata. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + Quantità articolo minima + + + Please specify a minimum quantity of an item this rule applies to. + Prego specificare una quantità minima di un articolo a cui questa regola è applicata. + + + Maximum item quantity + Quantità articolo massima + + + Please specify a maximum quantity of a single item this rule applies to. + Prego specificare una quantità massima di un articolo a cui questa regola è applicata. + + + Quantity calculation mode + Modalità quantità calcolo + + + Select a calculation mode for min/max quantity. + Selezionare una modalità calcolo per una quantità minima/massima. + + + Quantity of product in cart + Quantità di prodotti nel carrello + + + Total products in cart + Prodotti totali nel carrello + + + Total quantity in cart + Quantità totale nel carrello + + + Start date + Data inizio + + + If desired, please specify the date this rule will become eligible on. + Se lo si desidera, prego specificare la data in cui questa regola diventerà ammissibile. + + + End date + Data di fine + + + If desired, please specify the date this rule will no longer be eligible on. + Se lo si desidera, specificare la data in cui questa regola non sarà più ammissibile. + + + Start time + Ora di inizio + + + If desired, please specify the time this rule will become eligible at. + Se lo si desidera, specificare il tempo in cui questa regola diventerà ammissibile a. + + + End time + Fine tempo + + + If desired, please specify the time this rule will not longer be eligible at. + Se lo si desidera, prego specificare il tempo in cui questa regola non sarà più ammissibile a. + + + Store config restrictions + Restrizioni configurazione negozio + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + Gruppi + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + Tipi prodotto + + + Categories + Categorie + + + Products + Prodotti + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + Prodotti + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + Categorie + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + Attivato + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/nl/default.php b/system/modules/isotope_rules/languages/nl/default.php deleted file mode 100644 index ab8c9e37df..0000000000 --- a/system/modules/isotope_rules/languages/nl/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + Uw kortinscode "%s" kon niet toegepast worden. Bekijk alstublieft nogmaals uw bestelling. + + + Apply Promotional Codes + Actiecodes toepassen + + + Promotional code + Actiecode + + + Apply + Toepassen + + + Your coupon %s is not valid. + Uw kortingscode %s is niet geldig. + + + Your coupon %s has been applied. + Uw kortingscode %s is toegepast. + + + Your coupon %s has already been applied. + Uw kortingscode %s is al eerder toegepast. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/nl/modules.php b/system/modules/isotope_rules/languages/nl/modules.php deleted file mode 100644 index 1a2f387933..0000000000 --- a/system/modules/isotope_rules/languages/nl/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Regels en kortingsbonnen + + + Rules &amp; Coupons + Regels en kortingsbonnen + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/nl/tl_iso_rule.php b/system/modules/isotope_rules/languages/nl/tl_iso_rule.php deleted file mode 100644 index 6005a78862..0000000000 --- a/system/modules/isotope_rules/languages/nl/tl_iso_rule.php +++ /dev/null @@ -1,74 +0,0 @@ - + + + + Type + Soort + + + Please choose the type of rule. + Kies het type van de regel + + + Product + Product + + + Cart + Winkelwagen + + + Name + Naam + + + Please enter a name for this rule. + Vul een naam in voor deze regel. + + + Label + Label + + + The label will be show in cart. If you do not enter a label, the name will be used. + Dit label zal worden getoond in de winkelwagen van de bezoekers. Als u geen label invoert zal de regelnaam worden gebruikt. + + + Discount + Korting + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + Geldige waarden zijn decimalen of gehele getallen, minus een numerieke waarde of min een percentage. + + + Tax Class + Belastingklasse + + + Apply discount to + Korting toepassen bij + + + Select how the discount is applied. + Selecteer hoe de korting wordt toegepast + + + to each product + Aan elk product + + + to each unit of a product + Aan elke eenheid van het product + + + to the cart subtotal + Aan het subtotaal van de winkelwagen + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + Kortingscode instellen + + + Require a code to be entered to invoke this rule, as a coupon. + Vereis dat een code ingevuld moet worden om van deze regel gebruik te kunnen maken als kortingsbon. + + + Rule (coupon) code + Code (kortingsbon) + + + Please enter a code by which a customer will invoke this rule, as a coupon. + Voer alstublieft een code in waarmee een klant deze regel in kan schakelen als kortingsbon. + + + Uses per member + Aantal keer per klant + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + Aantal keer per winkelconfiguratie + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + Minimum subtotaal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + Maximum subtotaal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + Minimum gewicht + + + Enter a minimum weight to control availability based on the products in cart. + Vul een minimum gewicht in om beschikbaarheid te bepalen, gebaseerd op de producten in de winkelwagen. + + + Maximum weight + Maximaal gewicht + + + Enter a maximum weight to control availability based on the products in cart. + Vul een maximum gewicht in om beschikbaarheid te bepalen, gebaseerd op de producten in de winkelwagen. + + + Minimum item quantity + Minimale hoeveelheid per item + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + Maximale hoeveelheid per item + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + Methode hoeveelheidsberekening + + + Select a calculation mode for min/max quantity. + Kies een berekeningswijze voor min/max hoeveelheid. + + + Quantity of product in cart + Hoeveelheid van product in winkelwagen + + + Total products in cart + Totaal aantal producten in winkelwagen + + + Total quantity in cart + Totale hoeveelheid in winkelwagen + + + Start date + Startdatum + + + If desired, please specify the date this rule will become eligible on. + + + End date + Einddatum + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + Starttijd + + + If desired, please specify the time this rule will become eligible at. + + + End time + Eindtijd + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + Groepen + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + Beperk deze regel tot bepaalde productsoorten, categoriën, of individuele producten. + + + No restrictions + + + Product types + Productsoorten + + + Categories + Categoriën + + + Products + Producten + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + Productsoorten + + + Select the product types this rule is restricted to. If none, all are eligible. + Kies de productsoorten waarop deze regel van toepassing is. Kies er geen voor "alle". + + + Products + Producten + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + Categoriën + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + Ingeschakeld + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + Kortingscode + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + Voeg regel toe + + + Create a new rule + Maak een nieuwe regel aan + + + Edit rule + Bewerk regel + + + Edit rule ID %s + Bewerk regel ID %s + + + Duplicate rule + Dupliceer regel + + + Duplicate rule ID %s + Dupliceer regel ID %s + + + Delete rule + Verwijder regel + + + Delete rule ID %s + Verwijder regel ID %s + + + Publish/unpublish rule + Publiceer/verberg regel + + + Publish/unpublish rule ID %s + Publiceer/verberg regel ID %s + + + Rule details + Details regel + + + Show the details of rule ID %s + Toon details van regel ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/pl/default.php b/system/modules/isotope_rules/languages/pl/default.php deleted file mode 100644 index 72c88e14fb..0000000000 --- a/system/modules/isotope_rules/languages/pl/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + Twój kupon "%s" nie mógł zostać użyty. Sprawdź swoje zamówienie. + + + Apply Promotional Codes + Użyj kodów promocyjnych + + + Promotional code + Kod promocyjny + + + Apply + Zastosuj + + + Your coupon %s is not valid. + Twój kupon %s jest niepoprawny. + + + Your coupon %s has been applied. + Twój kupon %s został użyty. + + + Your coupon %s has already been applied. + Twój kupon %s został już wcześniej użyty. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/pl/modules.php b/system/modules/isotope_rules/languages/pl/modules.php deleted file mode 100644 index a302d7fdc3..0000000000 --- a/system/modules/isotope_rules/languages/pl/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Sklep Isotope: Reguły i kupony + + + Rules &amp; Coupons + Reguły i kupony + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/pl/tl_iso_rule.php b/system/modules/isotope_rules/languages/pl/tl_iso_rule.php deleted file mode 100644 index b94c4aa6f3..0000000000 --- a/system/modules/isotope_rules/languages/pl/tl_iso_rule.php +++ /dev/null @@ -1,135 +0,0 @@ - + + + + Type + Typ + + + Please choose the type of rule. + Wybierz typ reguły. + + + Product + Produkt + + + Cart + Koszyk + + + Name + Nazwa + + + Please enter a name for this rule. + Wprowadź nazwę tej reguły. + + + Label + Etykieta + + + The label will be show in cart. If you do not enter a label, the name will be used. + Etykieta będzie pokazana w koszyku. Jeśli nie dodasz etykiety, zostanie użyta nazwa. + + + Discount + Zniżka + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + Prawidłowe wartości to liczby dziesiętne lub całkowite, ujemna wartość numeryczna lub ujemny procent. + + + Tax Class + Klasa podatku + + + Apply discount to + Zastosuj zniżkę do + + + Select how the discount is applied. + Proszę wybrać w jaki sposób zastosowana jest zniżka. + + + to each product + do każdego produktu + + + to each unit of a product + do każdej jednostki produktu + + + to the cart subtotal + do podsumy koszyka + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + Włącz kod kuponu + + + Require a code to be entered to invoke this rule, as a coupon. + Wymagaj kodu dla zastosowania tej zasady, jako kupon. + + + Rule (coupon) code + Kod zasady (kuponu) + + + Please enter a code by which a customer will invoke this rule, as a coupon. + Proszę wprowadzić kod, który zastosuje tą zasadę, jako kupon. + + + Uses per member + Użycia na użytkownika + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + To zostanie użyte do określenia, czy zasada została już wykupiona. Jeśli zostanie ustawione na 0, będzie to mogło być użyte niezliczoną ilość razy przez każdego klienta. + + + Uses per store config + Użycia na konfigurację sklepu + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + To zostanie użyte do określenia, czy zasada została już wykupiona. Jeśli zostanie ustawione na 0, będzie to mogło być użyte niezliczoną ilość razy na każdą konfigurację sklepu. + + + Minimum subtotal + Minimalna suma częściowa + + + Please specify a minimum subtotal this rule applies to. + Proszę określić minimalną sumę częściową, do której stosowana jest ta zasada. + + + Maximum subtotal + Maksymalna suma częściowa + + + Please specify a maximum subtotal this rule applies to. + Proszę określić maksymalną sumę częściową, do której stosowana jest ta zasada. + + + Minimum weight + Minimalna waga + + + Enter a minimum weight to control availability based on the products in cart. + Proszę wprowadzić minimalną wagę do kontroli dostępności opartej na produktach w koszyku. + + + Maximum weight + Maksymalna waga + + + Enter a maximum weight to control availability based on the products in cart. + Proszę wprowadzić maksymalną wagę do kontroli dostępności opartej na produktach w koszyku. + + + Minimum item quantity + Minimalna ilość przedmiotu + + + Please specify a minimum quantity of an item this rule applies to. + Proszę określić minimalną ilość przedmiotu, do której stosowana jest ta zasada. + + + Maximum item quantity + Maksymalna ilość przedmiotu + + + Please specify a maximum quantity of a single item this rule applies to. + Proszę określić maksymalną ilość przedmiotu, do której stosowana jest ta zasada. + + + Quantity calculation mode + Tryb obliczeń ilościowych + + + Select a calculation mode for min/max quantity. + Proszę wybrać tryb obliczeń dla minimalnej/maksymalnej ilości. + + + Quantity of product in cart + Ilość produktów w koszyku + + + Total products in cart + Wszystkie produkty w koszyku + + + Total quantity in cart + Całkowita ilość w koszyku + + + Start date + Data początkowa + + + If desired, please specify the date this rule will become eligible on. + Tutaj możesz wprowadzić datę, od której zasada będzie ważna. + + + End date + Data zakończenia + + + If desired, please specify the date this rule will no longer be eligible on. + Tutaj możesz wprowadzić datę, do której zasada będzie ważna. + + + Start time + Czas rozpoczęcia + + + If desired, please specify the time this rule will become eligible at. + Tutaj możesz wprowadzić czas, od którego zasada będzie ważna. + + + End time + Czas zakończenia + + + If desired, please specify the time this rule will not longer be eligible at. + Tutaj możesz wprowadzić czas, do którego zasada będzie ważna. + + + Store config restrictions + Ograniczenia konfiguracji sklepu + + + Restrict a rule to certain store configs. + Ogranicz zasadę do określonych konfiguracji sklepu. + + + Store config condition + Warunek konfiguracji sklepu + + + Define if the selection should match or not. + Proszę określić, czy wybór będzie pasować czy nie. + + + Store configs + Konfiguracje sklepów + + + Select configs this rule is restricted to. + Proszę wybrać konfiguracje, do których ograniczona jest ta zasada. + + + Member restrictions + Ograniczenia użytkowników + + + Restrict a rule to certain groups or members. + Ogranicz zasadę do określonych grup lub użytkowników. + + + No restrictions + Brak ograniczeń + + + Guests + Goście + + + Specific groups + Określone grupy + + + Specific members + Określeni użytkownicy + + + Member condition + Warunek użytkownika + + + Define if the selection should match or not. + Proszę określić, czy wybór będzie pasować czy nie. + + + Members + Użytkownicy + + + Select members this rule is restricted to. + Proszę wybrać użytkowników do których ograniczona jest ta zasada. + + + Groups + Grupy + + + Select groups this rule is restricted to. + Proszę wybrać grupy, do których ograniczona jest ta zasada. + + + Product restrictions + Ograniczenia produktów + + + Restrict this rule to certain product types, categories, or to individual products. + Ogranicz zasadę do określonych typów produktów, kategorii lub indywidualnych produktów. + + + No restrictions + Brak ograniczeń + + + Product types + Typy produktów + + + Categories + Kategorie + + + Products + Produkty + + + Products &amp; Variants + Produkty i warianty + + + Product attribute + Atrybut produktu + + + Product condition + Warunek produktu + + + Define if the selection should match or not. + Proszę określić, czy wybór będzie pasować czy nie. + + + Product Types + Typy produtków + + + Select the product types this rule is restricted to. If none, all are eligible. + Proszę wybrać typy produktów, do których ograniczona jest ta zasada. Jeśli nie zostanie wybrane nic, wtedy ta zasada obejmie wszystko. + + + Products + Produkty + + + Select products this rule is restricted to. If none, all are eligible. + Proszę wybrać produkty, do których ograniczona jest ta zasada. Jeśli nie zostanie wybrane nic, wtedy ta zasada obejmie wszystko. + + + Products & Variants + Produkty i warianty + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + Wprowadź listę produktów po przecinku lub ID wariantów, do których ograniczona jest ta zasada. + + + Attribute name + Nazwa atrybutu + + + Select the product attribute you want to restrict. + Proszę wybrać atrybut produktu, który chcesz ograniczyć. + + + Attribute condition + Warunek atrybutu + + + Select the product attribute you want to restrict. + Proszę wybrać atrybut produktu, który chcesz ograniczyć. + + + equals + równa się + + + not equal + nie równa się + + + less than + mniej niż + + + greater than + więcej niż + + + less than or equal to + mniej lub równe + + + greater than or equal to + więcej niż lub równe + + + starts with + zaczyna się na + + + ends with + kończy się na + + + contains + zawiera + + + Categories + Kategorie + + + Select categories this rule is restricted to. If none, all are eligible. + Proszę wybrać kategorie, do których ograniczona jest ta zasada. Jeśli nie zostanie wybrane nic, wtedy ta zasada obejmie wszystko. + + + Enabled + Aktywna + + + Please select whether this rule is currently enabled or not. + Proszę wybrać, jeśli zasada ma być aktywna lub nie. + + + Basic rule setup + Podstawowe ustawienia + + + Coupon Code + Kod kuponu + + + Limit Uses + Limity użycia + + + Date &amp; Time Restrictions + Ograniczenia daty i czasu + + + Advanced Restrictions + Zaawansowane ograniczenia + + + Availability + Dostępność + + + Exclude all other rules + Wyklucz wszystkie inne zasady + + + No rule exclusions + Brak wykluczeń + + + Exclude certain rules + Wyklucz wybrane zasady + + + true + prawda + + + false + fałsz + + + Add rule + Dodaj zasadę + + + Create a new rule + Dodaj nową zasadę + + + Edit rule + Edytuj zasadę + + + Edit rule ID %s + Edytuj zasadę ID %s + + + Duplicate rule + Duplikuj zasadę + + + Duplicate rule ID %s + Duplikuj zasadę ID %s + + + Delete rule + Usuń zasadę + + + Delete rule ID %s + Usuń zasadę ID %s + + + Publish/unpublish rule + Włącz/wyłącz zasadę + + + Publish/unpublish rule ID %s + Włącz/wyłącz zasadę ID %s + + + Rule details + Szczegóły zasady + + + Show the details of rule ID %s + Pokaż szczegóły zasady ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/pt_BR/default.php b/system/modules/isotope_rules/languages/pt_BR/default.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope_rules/languages/pt_BR/default.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + + + Apply Promotional Codes + + + Promotional code + + + Apply + + + Your coupon %s is not valid. + + + Your coupon %s has been applied. + + + Your coupon %s has already been applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/pt_BR/modules.php b/system/modules/isotope_rules/languages/pt_BR/modules.php deleted file mode 100644 index b0b807e198..0000000000 --- a/system/modules/isotope_rules/languages/pt_BR/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + + + Rules &amp; Coupons + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/pt_BR/tl_iso_rule.php b/system/modules/isotope_rules/languages/pt_BR/tl_iso_rule.php deleted file mode 100644 index 30af216d36..0000000000 --- a/system/modules/isotope_rules/languages/pt_BR/tl_iso_rule.php +++ /dev/null @@ -1,17 +0,0 @@ - + + + + Type + + + Please choose the type of rule. + + + Product + + + Cart + + + Name + + + Please enter a name for this rule. + + + Label + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + + + Total quantity in cart + + + Start date + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + Grupos + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + + + Categories + + + Products + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/ru/default.php b/system/modules/isotope_rules/languages/ru/default.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope_rules/languages/ru/default.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + + + Apply Promotional Codes + + + Promotional code + + + Apply + + + Your coupon %s is not valid. + + + Your coupon %s has been applied. + + + Your coupon %s has already been applied. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/ru/modules.php b/system/modules/isotope_rules/languages/ru/modules.php deleted file mode 100644 index 6076f40b2a..0000000000 --- a/system/modules/isotope_rules/languages/ru/modules.php +++ /dev/null @@ -1,16 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + + + Rules &amp; Coupons + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/ru/tl_iso_rule.php b/system/modules/isotope_rules/languages/ru/tl_iso_rule.php deleted file mode 100644 index 466c6248bb..0000000000 --- a/system/modules/isotope_rules/languages/ru/tl_iso_rule.php +++ /dev/null @@ -1,25 +0,0 @@ - + + + + Type + Тип + + + Please choose the type of rule. + + + Product + + + Cart + + + Name + Название + + + Please enter a name for this rule. + + + Label + Метка + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + Скидка + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + + + Total quantity in cart + + + Start date + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + Типы товаров + + + Categories + Категории + + + Products + Товары + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + Товары + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + Категории + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/sl/default.php b/system/modules/isotope_rules/languages/sl/default.php deleted file mode 100644 index 18721bc3cb..0000000000 --- a/system/modules/isotope_rules/languages/sl/default.php +++ /dev/null @@ -1,23 +0,0 @@ - + + + + Your coupon code "%s" could not be applied. Please review your order again. + Vašega kupona %s nismo mogli uveljaviti. Prosimo, še enkrat preverite vaše naročilo. + + + Apply Promotional Codes + Uveljavi promocijske kode + + + Promotional code + Promocijska koda + + + Apply + Uveljavi + + + Your coupon %s is not valid. + Vaš kupon %s ni veljaven. + + + Your coupon %s has been applied. + Vaš kupon %s je bil upoštevan. + + + Your coupon %s has already been applied. + Vaš kupon %s je bil že upoštevan. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/sl/modules.php b/system/modules/isotope_rules/languages/sl/modules.php deleted file mode 100644 index 43a93cc3b1..0000000000 --- a/system/modules/isotope_rules/languages/sl/modules.php +++ /dev/null @@ -1,18 +0,0 @@ - + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Pravila &amp; Kuponi + + + Rules &amp; Coupons + Pravila &amp; Kuponi + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/sl/tl_iso_rule.php b/system/modules/isotope_rules/languages/sl/tl_iso_rule.php deleted file mode 100644 index 505ea8aacf..0000000000 --- a/system/modules/isotope_rules/languages/sl/tl_iso_rule.php +++ /dev/null @@ -1,26 +0,0 @@ - + + + + Type + Tip + + + Please choose the type of rule. + + + Product + Izdelek + + + Cart + Nakupovalna košarica + + + Name + Naziv + + + Please enter a name for this rule. + + + Label + Oznaka + + + The label will be show in cart. If you do not enter a label, the name will be used. + + + Discount + Popust + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + + + Tax Class + + + Apply discount to + + + Select how the discount is applied. + + + to each product + + + to each unit of a product + + + to the cart subtotal + + + Discount rounding + + + Define how percentual discounts should be rounded. + + + Commercial rounding + + + Always round down (in favor of shop owner) + + + Always round up (in favor of shop visitor) + + + Enable coupon code + + + Require a code to be entered to invoke this rule, as a coupon. + + + Rule (coupon) code + + + Please enter a code by which a customer will invoke this rule, as a coupon. + + + Uses per member + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each customer. + + + Uses per store config + + + This will be used to see if the rule has already been redeemed. If this is set to 0, it can be used unlimited times for each store config. + + + Minimum subtotal + + + Please specify a minimum subtotal this rule applies to. + + + Maximum subtotal + + + Please specify a maximum subtotal this rule applies to. + + + Minimum weight + + + Enter a minimum weight to control availability based on the products in cart. + + + Maximum weight + + + Enter a maximum weight to control availability based on the products in cart. + + + Minimum item quantity + + + Please specify a minimum quantity of an item this rule applies to. + + + Maximum item quantity + + + Please specify a maximum quantity of a single item this rule applies to. + + + Quantity calculation mode + + + Select a calculation mode for min/max quantity. + + + Quantity of product in cart + + + Total products in cart + Skupno število izdelkov v košarici + + + Total quantity in cart + + + Start date + + + If desired, please specify the date this rule will become eligible on. + + + End date + + + If desired, please specify the date this rule will no longer be eligible on. + + + Start time + + + If desired, please specify the time this rule will become eligible at. + + + End time + + + If desired, please specify the time this rule will not longer be eligible at. + + + Store config restrictions + + + Restrict a rule to certain store configs. + + + Store config condition + + + Define if the selection should match or not. + + + Store configs + + + Select configs this rule is restricted to. + + + Member restrictions + + + Restrict a rule to certain groups or members. + + + No restrictions + + + Guests + + + Specific groups + + + Specific members + + + Member condition + + + Define if the selection should match or not. + + + Members + + + Select members this rule is restricted to. + + + Groups + Skupine + + + Select groups this rule is restricted to. + + + Product restrictions + + + Restrict this rule to certain product types, categories, or to individual products. + + + No restrictions + + + Product types + Vrste izdelkov + + + Categories + Kategorije + + + Products + Izdelki + + + Products &amp; Variants + + + Product attribute + + + Product condition + + + Define if the selection should match or not. + + + Product Types + + + Select the product types this rule is restricted to. If none, all are eligible. + + + Products + Izdelki + + + Select products this rule is restricted to. If none, all are eligible. + + + Products & Variants + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + + + Attribute name + + + Select the product attribute you want to restrict. + + + Attribute condition + + + Select the product attribute you want to restrict. + + + equals + + + not equal + + + less than + + + greater than + + + less than or equal to + + + greater than or equal to + + + starts with + + + ends with + + + contains + + + Categories + Kategorije + + + Select categories this rule is restricted to. If none, all are eligible. + + + Enabled + Omogočeno + + + Please select whether this rule is currently enabled or not. + + + Basic rule setup + + + Coupon Code + + + Limit Uses + + + Date &amp; Time Restrictions + + + Advanced Restrictions + + + Availability + + + Exclude all other rules + + + No rule exclusions + + + Exclude certain rules + + + true + + + false + + + Add rule + + + Create a new rule + + + Edit rule + + + Edit rule ID %s + + + Duplicate rule + + + Duplicate rule ID %s + + + Delete rule + + + Delete rule ID %s + + + Publish/unpublish rule + + + Publish/unpublish rule ID %s + + + Rule details + + + Show the details of rule ID %s + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/library/Isotope/Backend/Rule/Callback.php b/system/modules/isotope_rules/library/Isotope/Backend/Rule/Callback.php index 07f8340b0a..f8afabd7df 100644 --- a/system/modules/isotope_rules/library/Isotope/Backend/Rule/Callback.php +++ b/system/modules/isotope_rules/library/Isotope/Backend/Rule/Callback.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Backend\Rule; diff --git a/system/modules/isotope_rules/library/Isotope/Model/ProductCollectionSurcharge/Rule.php b/system/modules/isotope_rules/library/Isotope/Model/ProductCollectionSurcharge/Rule.php index e5de6d96bf..8629d20d5c 100644 --- a/system/modules/isotope_rules/library/Isotope/Model/ProductCollectionSurcharge/Rule.php +++ b/system/modules/isotope_rules/library/Isotope/Model/ProductCollectionSurcharge/Rule.php @@ -3,17 +3,18 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model\ProductCollectionSurcharge; +use Haste\Units\Mass\Weight; use Isotope\Interfaces\IsotopeProductCollection; use Isotope\Interfaces\IsotopeProductCollectionSurcharge; +use Isotope\Isotope; use Isotope\Model\ProductCollectionSurcharge; use Isotope\Model\Rule as RuleModel; @@ -34,6 +35,21 @@ public static function createForRuleInCollection(RuleModel $objRule, IsotopeProd return null; } + // Cart weight + $objScale = Isotope::getCart()->addToScale(); + + if (($minWeight = Weight::createFromTimePeriod($objRule->minWeight)) !== null + && $objScale->isLessThan($minWeight) + ) { + return null; + } + + if (($maxWeight = Weight::createFromTimePeriod($objRule->maxWeight)) !== null + && $objScale->isMoreThan($maxWeight) + ) { + return null; + } + $arrCollectionItems = $objCollection->getItems(); $blnMatch = false; diff --git a/system/modules/isotope_rules/library/Isotope/Model/Rule.php b/system/modules/isotope_rules/library/Isotope/Model/Rule.php index 233e924d40..86002b40dc 100644 --- a/system/modules/isotope_rules/library/Isotope/Model/Rule.php +++ b/system/modules/isotope_rules/library/Isotope/Model/Rule.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope\Model; @@ -17,44 +16,46 @@ use Isotope\Translation; /** - * Class Payment - * - * Implements payment surcharge in product collection - * - * @property int id - * @property int tstamp - * @property string type - * @property string name - * @property string label - * @property string discount - * @property int tax_class - * @property string applyTo - * @property bool enableCode - * @property string code - * @property int limitPerMember - * @property int limitPerConfig - * @property int minSubtotal - * @property int maxSubtotal - * @property int minItemQuantity - * @property int maxItemQuantity - * @property string quantityMode - * @property int startDate - * @property int endDate - * @property int startTime - * @property int endTime - * @property string configRestrictions - * @property bool configCondition - * @property string memberRestrictions - * @property bool memberCondition - * @property string productRestrictions - * @property bool productCondition - * @property string attributeName - * @property string attributeCondition - * @property string attributeValue - * @property bool enabled + * @property int $id + * @property int $tstamp + * @property string $type + * @property string $name + * @property string $label + * @property string $discount + * @property int $tax_class + * @property string $applyTo + * @property string $rounding + * @property bool $enableCode + * @property string $code + * @property int $limitPerMember + * @property int $limitPerConfig + * @property int $minSubtotal + * @property int $maxSubtotal + * @property string $minWeight + * @property string $maxWeight + * @property int $minItemQuantity + * @property int $maxItemQuantity + * @property string $quantityMode + * @property int $startDate + * @property int $endDate + * @property int $startTime + * @property int $endTime + * @property string $configRestrictions + * @property bool $configCondition + * @property string $memberRestrictions + * @property bool $memberCondition + * @property string $productRestrictions + * @property bool $productCondition + * @property string $attributeName + * @property string $attributeCondition + * @property string $attributeValue + * @property bool $enabled */ class Rule extends \Model { + const ROUND_NORMAL = 'normal'; + const ROUND_UP = 'up'; + const ROUND_DOWN = 'down'; /** * Name of the current table @@ -202,10 +203,10 @@ protected static function findByConditions($arrProcedures, $arrValues = array(), } if (!empty($arrProducts)) { - $arrProductIds = array(0); - $arrVariantIds = array(0); - $arrAttributes = array(0); - $arrTypes = array(0); + $arrProductIds = [0]; + $arrVariantIds = [0]; + $arrAttributes = [0]; + $arrTypes = [0]; // Prepare product attribute condition $objAttributeRules = \Database::getInstance()->execute("SELECT * FROM " . static::$strTable . " WHERE enabled='1' AND productRestrictions='attribute' AND attributeName!='' GROUP BY attributeName, attributeCondition"); @@ -214,7 +215,7 @@ protected static function findByConditions($arrProcedures, $arrValues = array(), ( 'attribute' => $objAttributeRules->attributeName, 'condition' => $objAttributeRules->attributeCondition, - 'values' => array(), + 'values' => [], ); } diff --git a/system/modules/isotope_rules/library/Isotope/Rules.php b/system/modules/isotope_rules/library/Isotope/Rules.php index 3599293349..65979eabfc 100644 --- a/system/modules/isotope_rules/library/Isotope/Rules.php +++ b/system/modules/isotope_rules/library/Isotope/Rules.php @@ -3,11 +3,10 @@ /** * Isotope eCommerce for Contao Open Source CMS * - * Copyright (C) 2009-2014 terminal42 gmbh & Isotope eCommerce Workgroup + * Copyright (C) 2009-2016 terminal42 gmbh & Isotope eCommerce Workgroup * - * @package Isotope - * @link http://isotopeecommerce.org - * @license http://opensource.org/licenses/lgpl-3.0.html + * @link https://isotopeecommerce.org + * @license https://opensource.org/licenses/lgpl-3.0.html */ namespace Isotope; @@ -81,7 +80,7 @@ public static function getInstance() */ public function calculatePrice($fltPrice, $objSource, $strField, $intTaxClass) { - if ($objSource instanceof IsotopePrice && ($strField == 'price' || $strField == 'low_price' || $strField == 'net_price' || $strField == 'gross_price')) { + if ($objSource instanceof IsotopePrice && ('price' === $strField || 'low_price' === $strField || 'net_price' === $strField || 'gross_price' === $strField)) { // @todo try not to use getRelated() because it loads variants $objRules = Rule::findByProduct($objSource->getRelated('pid'), $strField, $fltPrice); @@ -90,9 +89,9 @@ public function calculatePrice($fltPrice, $objSource, $strField, $intTaxClass) while ($objRules->next()) { // Check cart quantity if ($objRules->minItemQuantity > 0 || $objRules->maxItemQuantity > 0) { - if ($objRules->quantityMode == 'cart_products') { + if ('cart_products' === $objRules->quantityMode) { $intTotal = Isotope::getCart()->countItems(); - } elseif ($objRules->quantityMode == 'cart_items') { + } elseif ('cart_items' === $objRules->quantityMode) { $intTotal = Isotope::getCart()->sumItemsQuantity(); } else { $objItem = Isotope::getCart()->getItemForProduct($objSource->getRelated('pid')); @@ -105,14 +104,33 @@ public function calculatePrice($fltPrice, $objSource, $strField, $intTaxClass) } // We're unable to apply variant price rules to low_price (see #3189) - if ($strField == 'low_price' && $objRules->productRestrictions == 'variants') { + if ('low_price' === $strField && 'variants' === $objRules->productRestrictions) { continue; } if ($objRules->current()->isPercentage()) { $fltDiscount = 100 + $objRules->current()->getPercentage(); $fltDiscount = round($fltPrice - ($fltPrice / 100 * $fltDiscount), 10); - $fltDiscount = $fltDiscount > 0 ? (floor($fltDiscount * 100) / 100) : (ceil($fltDiscount * 100) / 100); + + $precision = Isotope::getConfig()->priceRoundPrecision; + $factor = pow(10, 2); + $up = $fltDiscount > 0 ? 'ceil' : 'floor'; + $down = $fltDiscount > 0 ? 'floor' : 'ceil'; + + switch ($objRules->rounding) { + case Rule::ROUND_NORMAL: + $fltDiscount = round($fltDiscount, $precision); + break; + + case Rule::ROUND_UP: + $fltDiscount = $up($fltDiscount * $factor) / $factor; + break; + + case Rule::ROUND_DOWN: + default: + $fltDiscount = $down($fltDiscount * $factor) / $factor; + break; + } $fltPrice = $fltPrice - $fltDiscount; } else { @@ -214,7 +232,7 @@ public function getCouponForm($objModule) $_SESSION['COUPON_FAILED'][$objModule->id] = sprintf($GLOBALS['TL_LANG']['MSC']['couponInvalid'], $strCoupon); } else { - if (in_array(strtolower($strCoupon), array_map('strtolower', $arrCoupons))) { + if (in_array(strtolower($strCoupon), array_map('strtolower', $arrCoupons), true)) { $_SESSION['COUPON_FAILED'][$objModule->id] = sprintf($GLOBALS['TL_LANG']['MSC']['couponDuplicate'], $strCoupon); } else { $arrCoupons[] = $objRule->code;