From 9da3978c951bf021cb9d03ab14eca5b65229e663 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Tue, 7 Mar 2017 19:00:09 +0100 Subject: [PATCH 01/27] Starting 2.4.2 hotfix branch --- system/modules/isotope/docs/CHANGELOG-2.4.md | 6 ++++++ system/modules/isotope/library/Isotope/Isotope.php | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 189e180866..917e2995e2 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -1,6 +1,12 @@ Isotope eCommerce Changelog =========================== +Version 2.4.2 (2017-??-??) +-------------------------- + + + + Version 2.4.1 (2017-03-07) -------------------------- diff --git a/system/modules/isotope/library/Isotope/Isotope.php b/system/modules/isotope/library/Isotope/Isotope.php index 6ed4150241..cb146e71c5 100644 --- a/system/modules/isotope/library/Isotope/Isotope.php +++ b/system/modules/isotope/library/Isotope/Isotope.php @@ -41,7 +41,7 @@ class Isotope extends \Controller /** * Isotope version */ - const VERSION = '2.4.1'; + const VERSION = '2.4.2'; /** * True if the system has been initialized From 37a599967b162c82bd0d18485f7e8773b8db4feb Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Tue, 7 Mar 2017 19:00:18 +0100 Subject: [PATCH 02/27] Removed line break on version panel in product edit mode --- system/modules/isotope/assets/css/backend.css | 4 ---- system/modules/isotope/assets/css/backend.min.css | 2 +- system/modules/isotope/docs/CHANGELOG-2.4.md | 2 ++ 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/system/modules/isotope/assets/css/backend.css b/system/modules/isotope/assets/css/backend.css index 822f5841e2..d89d4d3e5f 100644 --- a/system/modules/isotope/assets/css/backend.css +++ b/system/modules/isotope/assets/css/backend.css @@ -425,7 +425,3 @@ body.iso_be_overview .tip-wrap{ float:left; margin-left:20px; } - -.tl_version_panel.tl_iso_products_panel #tl_version { - float: right; -} diff --git a/system/modules/isotope/assets/css/backend.min.css b/system/modules/isotope/assets/css/backend.min.css index 6c367be6ff..61bfb7f4b5 100644 --- a/system/modules/isotope/assets/css/backend.min.css +++ b/system/modules/isotope/assets/css/backend.min.css @@ -1 +1 @@ -#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{width:700px;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;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;margin-left:2%}.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 0;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 0}body.iso_be_overview .tip-wrap{margin-left:30px!important;margin-top:70px}.be_iso_overview .tl_info{margin-top:10px}.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;line-height:1.2;margin-top:5px}.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:2%}.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 +#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{width:700px;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;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;margin-left:2%}.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 0;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 0}body.iso_be_overview .tip-wrap{margin-left:30px!important;margin-top:70px}.be_iso_overview .tl_info{margin-top:10px}.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;line-height:1.2;margin-top:5px}.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:2%}.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} \ No newline at end of file diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 917e2995e2..06fd20bda0 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -4,7 +4,9 @@ Isotope eCommerce Changelog Version 2.4.2 (2017-??-??) -------------------------- +### Fixed +- Removed line break on version panel in product edit mode Version 2.4.1 (2017-03-07) From e9ce27f816ec817eecaac2cfbc6b4f5273678ec7 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 6 Apr 2017 11:51:48 +0200 Subject: [PATCH 03/27] Removed outdated labels --- .../isotope/languages/cs/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/da/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/de/tl_iso_payment.xlf | 41 +------------------ .../isotope/languages/en/tl_iso_payment.xlf | 30 -------------- .../isotope/languages/es/tl_iso_payment.xlf | 41 +------------------ .../isotope/languages/fa/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/fi/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/fr/tl_iso_payment.xlf | 41 +------------------ .../isotope/languages/it/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/nl/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/pl/tl_iso_payment.xlf | 41 +------------------ .../languages/pt_BR/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/ru/tl_iso_payment.xlf | 32 +-------------- .../isotope/languages/sl/tl_iso_payment.xlf | 32 +-------------- 14 files changed, 13 insertions(+), 469 deletions(-) diff --git a/system/modules/isotope/languages/cs/tl_iso_payment.xlf b/system/modules/isotope/languages/cs/tl_iso_payment.xlf index ce49ba87d6..e7dffdd091 100644 --- a/system/modules/isotope/languages/cs/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/cs/tl_iso_payment.xlf @@ -134,36 +134,6 @@ 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 @@ -663,4 +633,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/da/tl_iso_payment.xlf b/system/modules/isotope/languages/da/tl_iso_payment.xlf index c9fdeaa216..be012d0a04 100644 --- a/system/modules/isotope/languages/da/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/da/tl_iso_payment.xlf @@ -138,36 +138,6 @@ 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 @@ -672,4 +642,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/de/tl_iso_payment.xlf b/system/modules/isotope/languages/de/tl_iso_payment.xlf index 71e438b319..9c15fc493d 100644 --- a/system/modules/isotope/languages/de/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/de/tl_iso_payment.xlf @@ -177,45 +177,6 @@ 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 @@ -878,4 +839,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/en/tl_iso_payment.xlf b/system/modules/isotope/languages/en/tl_iso_payment.xlf index ff47b17d51..d856fb59ee 100644 --- a/system/modules/isotope/languages/en/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/en/tl_iso_payment.xlf @@ -134,36 +134,6 @@ 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 diff --git a/system/modules/isotope/languages/es/tl_iso_payment.xlf b/system/modules/isotope/languages/es/tl_iso_payment.xlf index b1ffdf465f..caad5e29a4 100644 --- a/system/modules/isotope/languages/es/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/es/tl_iso_payment.xlf @@ -162,45 +162,6 @@ 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 @@ -776,4 +737,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/fa/tl_iso_payment.xlf b/system/modules/isotope/languages/fa/tl_iso_payment.xlf index a411451012..315690dd12 100644 --- a/system/modules/isotope/languages/fa/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/fa/tl_iso_payment.xlf @@ -134,36 +134,6 @@ 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 @@ -662,4 +632,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/fi/tl_iso_payment.xlf b/system/modules/isotope/languages/fi/tl_iso_payment.xlf index d60522a9c3..48273f0851 100644 --- a/system/modules/isotope/languages/fi/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/fi/tl_iso_payment.xlf @@ -133,36 +133,6 @@ 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 @@ -661,4 +631,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/fr/tl_iso_payment.xlf b/system/modules/isotope/languages/fr/tl_iso_payment.xlf index 0245a0a0f2..052368fd38 100644 --- a/system/modules/isotope/languages/fr/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/fr/tl_iso_payment.xlf @@ -166,45 +166,6 @@ 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 @@ -791,4 +752,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/it/tl_iso_payment.xlf b/system/modules/isotope/languages/it/tl_iso_payment.xlf index d035909925..adb766617a 100644 --- a/system/modules/isotope/languages/it/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/it/tl_iso_payment.xlf @@ -164,36 +164,6 @@ 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 @@ -735,4 +705,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/nl/tl_iso_payment.xlf b/system/modules/isotope/languages/nl/tl_iso_payment.xlf index 534960bf11..ffea7472c9 100644 --- a/system/modules/isotope/languages/nl/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/nl/tl_iso_payment.xlf @@ -165,36 +165,6 @@ 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 @@ -727,4 +697,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/pl/tl_iso_payment.xlf b/system/modules/isotope/languages/pl/tl_iso_payment.xlf index 5f1e12fcf9..f0d96a0950 100644 --- a/system/modules/isotope/languages/pl/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/pl/tl_iso_payment.xlf @@ -166,45 +166,6 @@ 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 @@ -827,4 +788,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/pt_BR/tl_iso_payment.xlf b/system/modules/isotope/languages/pt_BR/tl_iso_payment.xlf index e4d5e8c03b..9e3c07a41d 100644 --- a/system/modules/isotope/languages/pt_BR/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/pt_BR/tl_iso_payment.xlf @@ -133,36 +133,6 @@ 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 @@ -661,4 +631,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/ru/tl_iso_payment.xlf b/system/modules/isotope/languages/ru/tl_iso_payment.xlf index 80eff18f1c..41449b44e1 100644 --- a/system/modules/isotope/languages/ru/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/ru/tl_iso_payment.xlf @@ -137,36 +137,6 @@ 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 @@ -669,4 +639,4 @@ - \ No newline at end of file + diff --git a/system/modules/isotope/languages/sl/tl_iso_payment.xlf b/system/modules/isotope/languages/sl/tl_iso_payment.xlf index d76f0f3664..db195b9dcf 100644 --- a/system/modules/isotope/languages/sl/tl_iso_payment.xlf +++ b/system/modules/isotope/languages/sl/tl_iso_payment.xlf @@ -140,36 +140,6 @@ 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 @@ -688,4 +658,4 @@ - \ No newline at end of file + From 747fa19cfd2e5e7f428f3deb894c1e25e1e26b35 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Mon, 26 Jun 2017 15:25:00 +0200 Subject: [PATCH 04/27] Updated navigation icon for Contao 4.4 backend (#1808) --- system/modules/isotope/assets/css/backend.css | 5 +++++ system/modules/isotope/assets/images/module44.svg | 12 ++++++++++++ 2 files changed, 17 insertions(+) create mode 100644 system/modules/isotope/assets/images/module44.svg diff --git a/system/modules/isotope/assets/css/backend.css b/system/modules/isotope/assets/css/backend.css index d89d4d3e5f..d3b7cad612 100644 --- a/system/modules/isotope/assets/css/backend.css +++ b/system/modules/isotope/assets/css/backend.css @@ -4,6 +4,11 @@ background-size: 16px 16px; } +body[class*="version_4-4"] #tl_navigation .tl_level_1_group .group-isotope { + background: url(../images/module44.svg) 5px 1px no-repeat; + background-size: 14px 14px; +} + .header_import_assets { padding:2px 0 3px 20px; diff --git a/system/modules/isotope/assets/images/module44.svg b/system/modules/isotope/assets/images/module44.svg new file mode 100644 index 0000000000..a85cf88468 --- /dev/null +++ b/system/modules/isotope/assets/images/module44.svg @@ -0,0 +1,12 @@ + + + + + + + + + From f8b9891c853c81a5d854b7e6d7c8e5a3ba75128d Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 10:16:40 +0200 Subject: [PATCH 05/27] Always store the country in order addresses (#1811) --- .../isotope/library/Isotope/Model/ProductCollection.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection.php b/system/modules/isotope/library/Isotope/Model/ProductCollection.php index eb517ea5f7..d50cf7b7b1 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection.php @@ -1846,7 +1846,8 @@ protected function createPrivateAddresses() ) { $arrData = array_intersect_key( $objBillingAddress->row(), - array_flip($billingFields) + array_flip($billingFields), + ['country' => ''] ); $objNew = new Address(); @@ -1873,7 +1874,8 @@ protected function createPrivateAddresses() ) { $arrData = array_intersect_key( $objShippingAddress->row(), - array_flip($shippingFields) + array_flip($shippingFields), + ['country' => ''] ); $objNew = new Address(); From b2bcaa79b6d071092e0c798010c6697ab58a3d0d Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 10:31:30 +0200 Subject: [PATCH 06/27] Fixed PHP7 compatibility for backend overview callback (#1795) --- .../isotope/library/Isotope/Automator.php | 3 +- .../Backend/AttributeOption/Callback.php | 3 +- .../Isotope/Backend/Download/Callback.php | 3 +- .../Isotope/Backend/Module/Callback.php | 3 +- .../Isotope/Backend/Payment/Callback.php | 3 +- .../Isotope/Backend/Product/AssetImport.php | 3 +- .../Isotope/Backend/Product/Button.php | 4 +- .../library/Isotope/Backend/Product/Panel.php | 3 +- .../Isotope/Backend/Product/Permission.php | 3 +- .../Backend/ProductCollection/Callback.php | 3 +- .../Isotope/Backend/Shipping/Callback.php | 3 +- .../Isotope/BackendModule/BackendOverview.php | 2 +- .../library/Isotope/CheckoutStep/Address.php | 3 +- .../Isotope/CheckoutStep/OrderConditions.php | 8 ++- .../isotope/library/Isotope/Isotope.php | 9 +++- .../Isotope/Model/Product/AbstractProduct.php | 3 +- .../Isotope/Model/Product/Standard.php | 12 ++--- .../Isotope/Model/ProductCollection.php | 52 ++++++------------- .../Isotope/Model/ProductCollection/Cart.php | 3 +- .../Isotope/Model/ProductCollection/Order.php | 13 ++--- .../Model/ProductCollectionDownload.php | 8 ++- .../Isotope/Model/ProductCollectionItem.php | 3 +- .../Model/ProductCollectionSurcharge.php | 4 +- .../isotope/library/Isotope/Model/TaxRate.php | 3 +- .../library/Isotope/Module/AddressBook.php | 9 ++-- .../isotope/library/Isotope/Module/Cart.php | 3 +- .../library/Isotope/Module/CartAddress.php | 6 +-- .../library/Isotope/Module/Checkout.php | 3 +- .../isotope/library/Isotope/Module/Module.php | 6 +-- .../library/Isotope/Module/ProductFilter.php | 4 +- .../library/Isotope/Module/ProductList.php | 3 +- .../Isotope/Widget/ProductGroupSelector.php | 2 +- 32 files changed, 75 insertions(+), 118 deletions(-) diff --git a/system/modules/isotope/library/Isotope/Automator.php b/system/modules/isotope/library/Isotope/Automator.php index 1128b905e2..57ddf957bf 100644 --- a/system/modules/isotope/library/Isotope/Automator.php +++ b/system/modules/isotope/library/Isotope/Automator.php @@ -167,8 +167,7 @@ public function convertCurrencies($intId = 0) && is_array($GLOBALS['ISO_HOOKS']['convertCurrency']) ) { foreach ($GLOBALS['ISO_HOOKS']['convertCurrency'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($config); + \System::importStatic($callback[0])->{$callback[1]}($config); } } } diff --git a/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php b/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php index 79863ec991..f85a4e6fd9 100755 --- a/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/AttributeOption/Callback.php @@ -188,8 +188,7 @@ public function toggleVisibility($intId, $blnVisible) if (is_array($GLOBALS['TL_DCA']['tl_iso_attribute_option']['fields']['published']['save_callback'])) { foreach ($GLOBALS['TL_DCA']['tl_iso_attribute_option']['fields']['published']['save_callback'] as $callback) { if (is_array($callback)) { - $this->import($callback[0]); - $blnVisible = $this->{$callback[0]}->{$callback[1]}($blnVisible, $this); + $blnVisible = \System::importStatic($callback[0])->{$callback[1]}($blnVisible, $this); } elseif (is_callable($callback)) { $blnVisible = $callback($blnVisible, $this); } diff --git a/system/modules/isotope/library/Isotope/Backend/Download/Callback.php b/system/modules/isotope/library/Isotope/Backend/Download/Callback.php index 1730adf823..b3866a8c4c 100644 --- a/system/modules/isotope/library/Isotope/Backend/Download/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Download/Callback.php @@ -186,8 +186,7 @@ public function toggleVisibility($intId, $blnVisible) // Trigger the save_callback if (is_array($GLOBALS['TL_DCA']['tl_iso_download']['fields']['published']['save_callback'])) { foreach ($GLOBALS['TL_DCA']['tl_iso_download']['fields']['published']['save_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $blnVisible = $objCallback->{$callback[1]}($blnVisible, $this); + $blnVisible = \System::importStatic($callback[0])->{$callback[1]}($blnVisible, $this); } } diff --git a/system/modules/isotope/library/Isotope/Backend/Module/Callback.php b/system/modules/isotope/library/Isotope/Backend/Module/Callback.php index 23a2299957..5904c95983 100755 --- a/system/modules/isotope/library/Isotope/Backend/Module/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Module/Callback.php @@ -165,8 +165,7 @@ public function getButtons() // !HOOK: add product buttons if (isset($GLOBALS['ISO_HOOKS']['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 = \System::importStatic($callback[0])->{$callback[1]}($arrButtons); } } diff --git a/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php b/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php index 7e649117f7..c6ce5a9ca5 100644 --- a/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Payment/Callback.php @@ -247,8 +247,7 @@ public function toggleVisibility($intId, $blnVisible) // Trigger the save_callback if (is_array($GLOBALS['TL_DCA']['tl_iso_payment']['fields']['enabled']['save_callback'])) { foreach ($GLOBALS['TL_DCA']['tl_iso_payment']['fields']['enabled']['save_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $blnVisible = $objCallback->{$callback[1]}($blnVisible, $this); + $blnVisible = \System::importStatic($callback[0])->{$callback[1]}($blnVisible, $this); } } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php b/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php index 527b3d2023..bcc601837e 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php @@ -109,8 +109,7 @@ protected function importFromPath($strPath) // !HOOK: add custom import regex patterns if (isset($GLOBALS['ISO_HOOKS']['addAssetImportRegexp']) && is_array($GLOBALS['ISO_HOOKS']['addAssetImportRegexp'])) { foreach ($GLOBALS['ISO_HOOKS']['addAssetImportRegexp'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrPattern = $objCallback->{$callback[1]}($arrPattern, $objProducts); + $arrPattern = \System::importStatic($callback[0])->{$callback[1]}($arrPattern, $objProducts); } } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Button.php b/system/modules/isotope/library/Isotope/Backend/Product/Button.php index 069fb6d7e5..596ff867fe 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/Button.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Button.php @@ -11,7 +11,6 @@ namespace Isotope\Backend\Product; -use Isotope\Model\Download; use Isotope\Model\Group; use Isotope\Model\ProductType; @@ -336,8 +335,7 @@ protected function toggleVisibility($intId, $blnVisible) // Trigger the save_callback if (is_array($GLOBALS['TL_DCA']['tl_iso_product']['fields']['published']['save_callback'])) { foreach ($GLOBALS['TL_DCA']['tl_iso_product']['fields']['published']['save_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $blnVisible = $objCallback->{$callback[1]}($blnVisible, $this); + $blnVisible = \System::importStatic($callback[0])->{$callback[1]}($blnVisible, $this); } } diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Panel.php b/system/modules/isotope/library/Isotope/Backend/Product/Panel.php index ace1111d72..65e0d95e79 100644 --- a/system/modules/isotope/library/Isotope/Backend/Product/Panel.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Panel.php @@ -228,8 +228,7 @@ public function applyAdvancedFilters() // !HOOK: add custom advanced filters if (isset($GLOBALS['ISO_HOOKS']['applyAdvancedFilters']) && is_array($GLOBALS['ISO_HOOKS']['applyAdvancedFilters'])) { foreach ($GLOBALS['ISO_HOOKS']['applyAdvancedFilters'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrReturn = $objCallback->{$callback[1]}($k); + $arrReturn = \System::importStatic($callback[0])->{$callback[1]}($k); if (is_array($arrReturn)) { $arrProducts = is_array($arrProducts) ? array_intersect($arrProducts, $arrReturn) : $arrReturn; diff --git a/system/modules/isotope/library/Isotope/Backend/Product/Permission.php b/system/modules/isotope/library/Isotope/Backend/Product/Permission.php index a3110cb72a..61c2607dc0 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/Permission.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/Permission.php @@ -181,8 +181,7 @@ public static function getAllowedIds() // HOOK: allow extensions to define allowed products if (isset($GLOBALS['ISO_HOOKS']['getAllowedProductIds']) && is_array($GLOBALS['ISO_HOOKS']['getAllowedProductIds'])) { foreach ($GLOBALS['ISO_HOOKS']['getAllowedProductIds'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrAllowed = $objCallback->{$callback[1]}(); + $arrAllowed = \System::importStatic($callback[0])->{$callback[1]}(); if ($arrAllowed === false) { return false; diff --git a/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php b/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php index 9df0b15834..ed8ef5f1c8 100755 --- a/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php @@ -473,8 +473,7 @@ public function executeSaveHook($dc) // !HOOK: add additional functionality when saving collection if (isset($GLOBALS['ISO_HOOKS']['saveCollection']) && is_array($GLOBALS['ISO_HOOKS']['saveCollection'])) { foreach ($GLOBALS['ISO_HOOKS']['saveCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objOrder); + \System::importStatic($callback[0])->{$callback[1]}($objOrder); } } } diff --git a/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php b/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php index 4e88974725..207d9d7667 100755 --- a/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Shipping/Callback.php @@ -194,8 +194,7 @@ public function toggleVisibility($intId, $blnVisible) // Trigger the save_callback if (is_array($GLOBALS['TL_DCA']['tl_iso_shipping']['fields']['enabled']['save_callback'])) { foreach ($GLOBALS['TL_DCA']['tl_iso_shipping']['fields']['enabled']['save_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $blnVisible = $objCallback->{$callback[1]}($blnVisible, $this); + $blnVisible = \System::importStatic($callback[0])->{$callback[1]}($blnVisible, $this); } } diff --git a/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php b/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php index ee5cfb1a6e..489b2b74f6 100644 --- a/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php +++ b/system/modules/isotope/library/Isotope/BackendModule/BackendOverview.php @@ -185,7 +185,7 @@ protected function getModule($module) elseif (\Input::get('key') && isset($arrModule[\Input::get('key')])) { $objCallback = new $arrModule[\Input::get('key')][0](); - return $objCallback->$arrModule[\Input::get('key')][1]($dc, $strTable, $arrModule); + return $objCallback->{$arrModule[\Input::get('key')][1]}($dc, $strTable, $arrModule); } // Default action elseif (is_object($dc)) { $act = (string) \Input::get('act'); diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/Address.php b/system/modules/isotope/library/Isotope/CheckoutStep/Address.php index eb459e17fa..f747f90488 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/Address.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/Address.php @@ -234,8 +234,7 @@ protected function getWidgets() && 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()); + $arrFields = \System::importStatic($callback[0])->{$callback[1]}($arrFields, $objAddress, $this->getStepClass()); } } diff --git a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php index 85c9f21794..81cee15b43 100644 --- a/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php +++ b/system/modules/isotope/library/Isotope/CheckoutStep/OrderConditions.php @@ -154,8 +154,12 @@ public function getNotificationTokens(IsotopeProductCollection $objCollection) && is_array($GLOBALS['ISO_HOOKS']['getOrderConditionsValue']) ) { foreach ($GLOBALS['ISO_HOOKS']['getOrderConditionsValue'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $varValue = $objCallback->{$callback[1]}($strField, $varValue, $arrConfig, $this->objForm); + $varValue = \System::importStatic($callback[0])->{$callback[1]}( + $strField, + $varValue, + $arrConfig, + $this->objForm + ); } } diff --git a/system/modules/isotope/library/Isotope/Isotope.php b/system/modules/isotope/library/Isotope/Isotope.php index cb146e71c5..3928cb763b 100644 --- a/system/modules/isotope/library/Isotope/Isotope.php +++ b/system/modules/isotope/library/Isotope/Isotope.php @@ -229,8 +229,13 @@ public static function calculatePrice( // !HOOK: calculate price if (isset($GLOBALS['ISO_HOOKS']['calculatePrice']) && is_array($GLOBALS['ISO_HOOKS']['calculatePrice'])) { foreach ($GLOBALS['ISO_HOOKS']['calculatePrice'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $fltPrice = $objCallback->{$callback[1]}($fltPrice, $objSource, $strField, $intTaxClass, $arrOptions); + $fltPrice = \System::importStatic($callback[0])->{$callback[1]}( + $fltPrice, + $objSource, + $strField, + $intTaxClass, + $arrOptions + ); } } diff --git a/system/modules/isotope/library/Isotope/Model/Product/AbstractProduct.php b/system/modules/isotope/library/Isotope/Model/Product/AbstractProduct.php index f0846b74bf..ba086461b8 100644 --- a/system/modules/isotope/library/Isotope/Model/Product/AbstractProduct.php +++ b/system/modules/isotope/library/Isotope/Model/Product/AbstractProduct.php @@ -106,8 +106,7 @@ public function isAvailableForCollection(IsotopeProductCollection $objCollection && is_array($GLOBALS['ISO_HOOKS']['productIsAvailable']) ) { foreach ($GLOBALS['ISO_HOOKS']['productIsAvailable'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $available = $objCallback->{$callback[1]}($this, $objCollection); + $available = \System::importStatic($callback[0])->{$callback[1]}($this, $objCollection); // If return value is boolean then we accept it as result if (true === $available || false === $available) { diff --git a/system/modules/isotope/library/Isotope/Model/Product/Standard.php b/system/modules/isotope/library/Isotope/Model/Product/Standard.php index 5d3d758dcf..02521d5153 100644 --- a/system/modules/isotope/library/Isotope/Model/Product/Standard.php +++ b/system/modules/isotope/library/Isotope/Model/Product/Standard.php @@ -500,8 +500,7 @@ public function generate(array $arrConfig) && is_array($GLOBALS['ISO_HOOKS']['buttons']) ) { foreach ($GLOBALS['ISO_HOOKS']['buttons'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrButtons = $objCallback->{$callback[1]}($arrButtons, $this); + $arrButtons = \System::importStatic($callback[0])->{$callback[1]}($arrButtons, $this); } $arrButtons = array_intersect_key($arrButtons, array_flip($arrConfig['buttons'])); @@ -543,8 +542,7 @@ public function generate(array $arrConfig) // !HOOK: alter product data before output if (isset($GLOBALS['ISO_HOOKS']['generateProduct']) && is_array($GLOBALS['ISO_HOOKS']['generateProduct'])) { foreach ($GLOBALS['ISO_HOOKS']['generateProduct'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objTemplate, $this); + \System::importStatic($callback[0])->{$callback[1]}($objTemplate, $this); } } @@ -695,8 +693,7 @@ protected function generateProductOptionWidget($strField, &$arrVariantOptions, & foreach ($arrData['save_callback'] as $callback) { try { if (is_array($callback)) { - $objCallback = \System::importStatic($callback[0]); - $varValue = $objCallback->{$callback[1]}($varValue, $this, $objWidget); + $varValue = \System::importStatic($callback[0])->{$callback[1]}($varValue, $this, $objWidget); } else { $varValue = $objAttribute->{$callback}($varValue, $this, $objWidget); } @@ -765,8 +762,7 @@ protected function generateProductOptionWidget($strField, &$arrVariantOptions, & // Add a custom wizard if (is_array($arrData['wizard'])) { foreach ($arrData['wizard'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $wizard .= $objCallback->{$callback[1]}($this); + $wizard .= \System::importStatic($callback[0])->{$callback[1]}($this); } } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection.php b/system/modules/isotope/library/Isotope/Model/ProductCollection.php index d50cf7b7b1..4bb2c38923 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection.php @@ -498,8 +498,7 @@ public function getEmailRecipient() && is_array($GLOBALS['ISO_HOOKS']['emailRecipientForCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['emailRecipientForCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $strEmail = $objCallback->{$callback[1]}($strEmail, $this); + $strEmail = \System::importStatic($callback[0])->{$callback[1]}($strEmail, $this); } } @@ -566,8 +565,7 @@ public function save() // !HOOK: additional functionality when saving a collection if (isset($GLOBALS['ISO_HOOKS']['saveCollection']) && is_array($GLOBALS['ISO_HOOKS']['saveCollection'])) { foreach ($GLOBALS['ISO_HOOKS']['saveCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($this); + \System::importStatic($callback[0])->{$callback[1]}($this); } } @@ -603,8 +601,7 @@ public function delete($blnForce = false) && is_array($GLOBALS['ISO_HOOKS']['deleteCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['deleteCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $blnRemove = $objCallback->{$callback[1]}($this); + $blnRemove = \System::importStatic($callback[0])->{$callback[1]}($this); if ($blnRemove === false) { return 0; @@ -641,8 +638,7 @@ public function delete($blnForce = false) && is_array($GLOBALS['ISO_HOOKS']['postDeleteCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['postDeleteCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($this, $intPid); + \System::importStatic($callback[0])->{$callback[1]}($this, $intPid); } } @@ -1009,8 +1005,7 @@ public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrC && is_array($GLOBALS['ISO_HOOKS']['addProductToCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['addProductToCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $intQuantity = $objCallback->{$callback[1]}($objProduct, $intQuantity, $this); + $intQuantity = \System::importStatic($callback[0])->{$callback[1]}($objProduct, $intQuantity, $this); } } @@ -1069,8 +1064,7 @@ public function addProduct(IsotopeProduct $objProduct, $intQuantity, array $arrC && is_array($GLOBALS['ISO_HOOKS']['postAddProductToCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['postAddProductToCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objItem, $intQuantity, $this); + \System::importStatic($callback[0])->{$callback[1]}($objItem, $intQuantity, $this); } } @@ -1096,8 +1090,7 @@ public function updateProduct(IsotopeProduct $objProduct, ProductCollectionItem && 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)) { + if (false === \System::importStatic($callback[0])->{$callback[1]}($objProduct, $objItem, $this)) { return false; } } @@ -1111,8 +1104,7 @@ public function updateProduct(IsotopeProduct $objProduct, ProductCollectionItem && is_array($GLOBALS['ISO_HOOKS']['postUpdateProductInCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['postUpdateProductInCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objProduct, $objItem, $this); + \System::importStatic($callback[0])->{$callback[1]}($objProduct, $objItem, $this); } } @@ -1158,8 +1150,7 @@ public function updateItemById($intId, $arrSet) && is_array($GLOBALS['ISO_HOOKS']['updateItemInCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['updateItemInCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrSet = $objCallback->{$callback[1]}($objItem, $arrSet, $this); + $arrSet = \System::importStatic($callback[0])->{$callback[1]}($objItem, $arrSet, $this); if (!is_array($arrSet) || 0 === count($arrSet)) { return false; @@ -1202,8 +1193,7 @@ public function updateItemById($intId, $arrSet) && is_array($GLOBALS['ISO_HOOKS']['postUpdateItemInCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['postUpdateItemInCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objItem, $arrSet['quantity'], $this); + \System::importStatic($callback[0])->{$callback[1]}($objItem, $arrSet['quantity'], $this); } } @@ -1248,8 +1238,7 @@ public function deleteItemById($intId) && is_array($GLOBALS['ISO_HOOKS']['deleteItemFromCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['deleteItemFromCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $blnRemove = $objCallback->{$callback[1]}($objItem, $this); + $blnRemove = \System::importStatic($callback[0])->{$callback[1]}($objItem, $this); if ($blnRemove === false) { return false; @@ -1268,8 +1257,7 @@ public function deleteItemById($intId) && is_array($GLOBALS['ISO_HOOKS']['postDeleteItemFromCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['postDeleteItemFromCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objItem, $this); + \System::importStatic($callback[0])->{$callback[1]}($objItem, $this); } } @@ -1327,9 +1315,7 @@ public function copyItemsFrom(IsotopeProductCollection $objSource) && is_array($GLOBALS['ISO_HOOKS']['copyCollectionItem']) ) { foreach ($GLOBALS['ISO_HOOKS']['copyCollectionItem'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - - if ($objCallback->{$callback[1]}($objOldItem, $objSource, $this) === false) { + if (\System::importStatic($callback[0])->{$callback[1]}($objOldItem, $objSource, $this) === false) { continue; } } @@ -1360,8 +1346,7 @@ public function copyItemsFrom(IsotopeProductCollection $objSource) && is_array($GLOBALS['ISO_HOOKS']['copiedCollectionItems']) ) { foreach ($GLOBALS['ISO_HOOKS']['copiedCollectionItems'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objSource, $this, $arrIds); + \System::importStatic($callback[0])->{$callback[1]}($objSource, $this, $arrIds); } } @@ -1548,8 +1533,7 @@ public function addToTemplate(\Template $objTemplate, array $arrConfig = []) && is_array($GLOBALS['ISO_HOOKS']['addCollectionToTemplate']) ) { foreach ($GLOBALS['ISO_HOOKS']['addCollectionToTemplate'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objTemplate, $arrItems, $this); + \System::importStatic($callback[0])->{$callback[1]}($objTemplate, $arrItems, $this); } } } @@ -1704,8 +1688,7 @@ protected function generateDocumentNumber($strPrefix, $intDigits) && is_array($GLOBALS['ISO_HOOKS']['generateDocumentNumber']) ) { foreach ($GLOBALS['ISO_HOOKS']['generateDocumentNumber'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $strOrderId = $objCallback->{$callback[1]}($this, $strPrefix, $intDigits); + $strOrderId = \System::importStatic($callback[0])->{$callback[1]}($this, $strPrefix, $intDigits); if ($strOrderId !== false) { $this->arrData['document_number'] = $strOrderId; @@ -1972,8 +1955,7 @@ public static function createFromCollection(IsotopeProductCollection $objSource) && is_array($GLOBALS['ISO_HOOKS']['createFromProductCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['createFromProductCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objCollection, $objSource, $arrItemIds); + \System::importStatic($callback[0])->{$callback[1]}($objCollection, $objSource, $arrItemIds); } } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php b/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php index daeef19dec..ff76eba34f 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php @@ -177,8 +177,7 @@ public function getDraftOrder() && is_array($GLOBALS['ISO_HOOKS']['updateDraftOrder']) ) { foreach ($GLOBALS['ISO_HOOKS']['updateDraftOrder'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objOrder, $this, $arrItemIds); + \System::importStatic($callback[0])->{$callback[1]}($objOrder, $this, $arrItemIds); } } } catch (\Exception $e) { diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php b/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php index ccbc64cbc2..0c7bfd696a 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection/Order.php @@ -220,8 +220,7 @@ public function checkout() // !HOOK: post-process checkout if (isset($GLOBALS['ISO_HOOKS']['postCheckout']) && is_array($GLOBALS['ISO_HOOKS']['postCheckout'])) { foreach ($GLOBALS['ISO_HOOKS']['postCheckout'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($this, $arrTokens); + \System::importStatic($callback[0])->{$callback[1]}($this, $arrTokens); } } @@ -275,9 +274,7 @@ public function updateOrderStatus($intNewStatus) && is_array($GLOBALS['ISO_HOOKS']['preOrderStatusUpdate']) ) { foreach ($GLOBALS['ISO_HOOKS']['preOrderStatusUpdate'] as $callback) { - - $objCallback = \System::importStatic($callback[0]); - $blnCancel = $objCallback->{$callback[1]}($this, $objNewStatus); + $blnCancel = \System::importStatic($callback[0])->{$callback[1]}($this, $objNewStatus); if ($blnCancel === true) { return false; @@ -343,8 +340,7 @@ public function updateOrderStatus($intNewStatus) && is_array($GLOBALS['ISO_HOOKS']['postOrderStatusUpdate']) ) { foreach ($GLOBALS['ISO_HOOKS']['postOrderStatusUpdate'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($this, $intOldStatus, $objNewStatus); + \System::importStatic($callback[0])->{$callback[1]}($this, $intOldStatus, $objNewStatus); } } @@ -487,8 +483,7 @@ public function getNotificationTokens($intNotification) && is_array($GLOBALS['ISO_HOOKS']['getOrderNotificationTokens']) ) { foreach ($GLOBALS['ISO_HOOKS']['getOrderNotificationTokens'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrTokens = $objCallback->{$callback[1]}($this, $arrTokens); + $arrTokens = \System::importStatic($callback[0])->{$callback[1]}($this, $arrTokens); } } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php index dde8488ec9..168e9321b4 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionDownload.php @@ -102,8 +102,12 @@ public function getForTemplate($blnOrderPaid = false) && is_array($GLOBALS['ISO_HOOKS']['downloadFromProductCollection']) ) { foreach ($GLOBALS['ISO_HOOKS']['downloadFromProductCollection'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $path = $objCallback->{$callback[1]}($path, $objFileModel, $objDownload, $this); + $path = \System::importStatic($callback[0])->{$callback[1]}( + $path, + $objFileModel, + $objDownload, + $this + ); } } diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php index 7d1c598985..b26a15318d 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php @@ -81,8 +81,7 @@ public function isAvailable() if (isset($GLOBALS['ISO_HOOKS']['itemIsAvailable']) && is_array($GLOBALS['ISO_HOOKS']['itemIsAvailable'])) { foreach ($GLOBALS['ISO_HOOKS']['itemIsAvailable'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $available = $objCallback->{$callback[1]}($this); + $available = \System::importStatic($callback[0])->{$callback[1]}($this); // If return value is boolean then we accept it as result if (true === $available || false === $available) { diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php index f45e754c60..fec46cb01f 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionSurcharge.php @@ -256,9 +256,7 @@ public static function findForCollection(IsotopeProductCollection $objCollection // !HOOK: get collection surcharges if (isset($GLOBALS['ISO_HOOKS']['findSurchargesForCollection']) && is_array($GLOBALS['ISO_HOOKS']['findSurchargesForCollection'])) { foreach ($GLOBALS['ISO_HOOKS']['findSurchargesForCollection'] as $callback) { - - $objCallback = \System::importStatic($callback[0]); - $arrResult = $objCallback->{$callback[1]}($objCollection); + $arrResult = \System::importStatic($callback[0])->{$callback[1]}($objCollection); foreach ($arrResult as $objSurcharge) { if (!($objSurcharge instanceof IsotopeProductCollectionSurcharge) || $objSurcharge instanceof Tax) { diff --git a/system/modules/isotope/library/Isotope/Model/TaxRate.php b/system/modules/isotope/library/Isotope/Model/TaxRate.php index 44ec477efe..c716df2aa6 100644 --- a/system/modules/isotope/library/Isotope/Model/TaxRate.php +++ b/system/modules/isotope/library/Isotope/Model/TaxRate.php @@ -84,8 +84,7 @@ public function isApplicable($fltPrice, $arrAddresses) // !HOOK: use tax rate if (isset($GLOBALS['ISO_HOOKS']['useTaxRate']) && is_array($GLOBALS['ISO_HOOKS']['useTaxRate'])) { foreach ($GLOBALS['ISO_HOOKS']['useTaxRate'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $varValue = $objCallback->{$callback[1]}($this, $fltPrice, $arrAddresses); + $varValue = \System::importStatic($callback[0])->{$callback[1]}($this, $fltPrice, $arrAddresses); if ($varValue !== true) { return false; diff --git a/system/modules/isotope/library/Isotope/Module/AddressBook.php b/system/modules/isotope/library/Isotope/Module/AddressBook.php index dd1f62eb11..76c8e3f756 100755 --- a/system/modules/isotope/library/Isotope/Module/AddressBook.php +++ b/system/modules/isotope/library/Isotope/Module/AddressBook.php @@ -88,8 +88,7 @@ protected function compile() // Call onload_callback (e.g. to check permissions) if (is_array($GLOBALS['TL_DCA'][$table]['config']['onload_callback'])) { foreach ($GLOBALS['TL_DCA'][$table]['config']['onload_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}(); + \System::importStatic($callback[0])->{$callback[1]}(); } } @@ -235,8 +234,7 @@ function(Form $objForm) { // Call onsubmit_callback if (is_array($GLOBALS['TL_DCA'][$table]['config']['onsubmit_callback'])) { foreach ($GLOBALS['TL_DCA'][$table]['config']['onsubmit_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objAddress); + \System::importStatic($callback[0])->{$callback[1]}($objAddress); } } @@ -245,8 +243,7 @@ function(Form $objForm) { && is_array($GLOBALS['ISO_HOOKS']['updateAddressData']) ) { foreach ($GLOBALS['ISO_HOOKS']['updateAddressData'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objAddress, $arrOldAddress, $this); + \System::importStatic($callback[0])->{$callback[1]}($objAddress, $arrOldAddress, $this); } } diff --git a/system/modules/isotope/library/Isotope/Module/Cart.php b/system/modules/isotope/library/Isotope/Module/Cart.php index f48c02a5ef..3a442c1f2f 100755 --- a/system/modules/isotope/library/Isotope/Module/Cart.php +++ b/system/modules/isotope/library/Isotope/Module/Cart.php @@ -50,8 +50,7 @@ protected function compile() 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); + $strCustom .= \System::importStatic($callback[0])->{$callback[1]}($this); } } diff --git a/system/modules/isotope/library/Isotope/Module/CartAddress.php b/system/modules/isotope/library/Isotope/Module/CartAddress.php index 9bc0bf5611..1b91f9e993 100644 --- a/system/modules/isotope/library/Isotope/Module/CartAddress.php +++ b/system/modules/isotope/library/Isotope/Module/CartAddress.php @@ -79,8 +79,7 @@ protected function compile() // Call onload_callback (e.g. to check permissions) if (is_array($GLOBALS['TL_DCA'][$table]['config']['onload_callback'])) { foreach ($GLOBALS['TL_DCA'][$table]['config']['onload_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}(); + \System::importStatic($callback[0])->{$callback[1]}(); } } @@ -142,8 +141,7 @@ function(Form $objHaste) { // Call onsubmit_callback if (is_array($GLOBALS['TL_DCA'][$table]['config']['onsubmit_callback'])) { foreach ($GLOBALS['TL_DCA'][$table]['config']['onsubmit_callback'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $objCallback->{$callback[1]}($objAddress); + \System::importStatic($callback[0])->{$callback[1]}($objAddress); } } diff --git a/system/modules/isotope/library/Isotope/Module/Checkout.php b/system/modules/isotope/library/Isotope/Module/Checkout.php index 1a5e182598..5125da6a3f 100755 --- a/system/modules/isotope/library/Isotope/Module/Checkout.php +++ b/system/modules/isotope/library/Isotope/Module/Checkout.php @@ -221,9 +221,8 @@ protected function compile() // !HOOK: pre-process checkout if (isset($GLOBALS['ISO_HOOKS']['preCheckout']) && is_array($GLOBALS['ISO_HOOKS']['preCheckout'])) { foreach ($GLOBALS['ISO_HOOKS']['preCheckout'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - if ($objCallback->{$callback[1]}($objOrder, $this) === false) { + if (\System::importStatic($callback[0])->{$callback[1]}($objOrder, $this) === false) { \System::log('Callback ' . $callback[0] . '::' . $callback[1] . '() cancelled checkout for Order ID ' . $this->id, __METHOD__, TL_ERROR); static::redirectToStep(self::STEP_FAILED); diff --git a/system/modules/isotope/library/Isotope/Module/Module.php b/system/modules/isotope/library/Isotope/Module/Module.php index 79f3707e6c..c48106441b 100755 --- a/system/modules/isotope/library/Isotope/Module/Module.php +++ b/system/modules/isotope/library/Isotope/Module/Module.php @@ -185,8 +185,7 @@ protected function findCategories() default: if (isset($GLOBALS['ISO_HOOKS']['findCategories']) && is_array($GLOBALS['ISO_HOOKS']['findCategories'])) { foreach ($GLOBALS['ISO_HOOKS']['findCategories'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrCategories = $objCallback->{$callback[1]}($this); + $arrCategories = \System::importStatic($callback[0])->{$callback[1]}($this); if ($arrCategories !== false) { break; @@ -282,8 +281,7 @@ protected function generateRequestUrl() // HOOK: add custom logic if (isset($GLOBALS['TL_HOOKS']['getPageIdFromUrl']) && is_array($GLOBALS['TL_HOOKS']['getPageIdFromUrl'])) { foreach ($GLOBALS['TL_HOOKS']['getPageIdFromUrl'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrFragments = $objCallback->{$callback[1]}($arrFragments); + $arrFragments = \System::importStatic($callback[0])->{$callback[1]}($arrFragments); } } diff --git a/system/modules/isotope/library/Isotope/Module/ProductFilter.php b/system/modules/isotope/library/Isotope/Module/ProductFilter.php index c3b0cb557c..8d3eda9393 100755 --- a/system/modules/isotope/library/Isotope/Module/ProductFilter.php +++ b/system/modules/isotope/library/Isotope/Module/ProductFilter.php @@ -100,6 +100,7 @@ public function generateAjax() if (null === $objProducts) { $objResponse = new JsonResponse([]); $objResponse->send(); + exit; } $objResponse = new JsonResponse(array_values($objProducts->fetchEach($this->iso_searchAutocomplete))); @@ -309,8 +310,7 @@ protected function generateFilters() // !HOOK: alter the filters if (isset($GLOBALS['ISO_HOOKS']['generateFilters']) && is_array($GLOBALS['ISO_HOOKS']['generateFilters'])) { foreach ($GLOBALS['ISO_HOOKS']['generateFilters'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrFilters = $objCallback->{$callback[1]}($arrFilters); + $arrFilters = \System::importStatic($callback[0])->{$callback[1]}($arrFilters); } } diff --git a/system/modules/isotope/library/Isotope/Module/ProductList.php b/system/modules/isotope/library/Isotope/Module/ProductList.php index 2c153ca2d1..3650efe2c1 100755 --- a/system/modules/isotope/library/Isotope/Module/ProductList.php +++ b/system/modules/isotope/library/Isotope/Module/ProductList.php @@ -257,8 +257,7 @@ protected function compile() && is_array($GLOBALS['ISO_HOOKS']['generateProductList']) ) { foreach ($GLOBALS['ISO_HOOKS']['generateProductList'] as $callback) { - $objCallback = \System::importStatic($callback[0]); - $arrBuffer = $objCallback->{$callback[1]}($arrBuffer, $arrProducts, $this->Template, $this); + $arrBuffer = \System::importStatic($callback[0])->{$callback[1]}($arrBuffer, $arrProducts, $this->Template, $this); } } diff --git a/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php b/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php index a976351378..d82304f791 100644 --- a/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php +++ b/system/modules/isotope/library/Isotope/Widget/ProductGroupSelector.php @@ -348,7 +348,7 @@ protected function renderGrouptree($id, $intMargin, $blnNoRecursion = false) // Load the label_callback if (is_array($callback) && !empty($callback)) { - $return .= static::importStatic($callback[0])->{$callback[1]}($objGroup->row(), $objGroup->name, null, $folderAttribute); + $return .= \System::importStatic($callback[0])->{$callback[1]}($objGroup->row(), $objGroup->name, null, $folderAttribute); } $return .= '
'; From 65f4ce1130e3db5b4949248570a35d242ab71d4c Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 10:43:34 +0200 Subject: [PATCH 07/27] Remove usage of mysql_real_escape_string (#1786) --- .../library/Isotope/Model/Rule.php | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/system/modules/isotope_rules/library/Isotope/Model/Rule.php b/system/modules/isotope_rules/library/Isotope/Model/Rule.php index 86002b40dc..7ed2886509 100644 --- a/system/modules/isotope_rules/library/Isotope/Model/Rule.php +++ b/system/modules/isotope_rules/library/Isotope/Model/Rule.php @@ -280,7 +280,12 @@ protected static function findByConditions($arrProcedures, $arrValues = array(), switch ($restriction['condition']) { case 'eq': case 'neq': - $strRestriction .= "attributeValue" . ($restriction['condition'] == 'neq' ? " NOT" : '') . " IN ('" . implode("','", array_map('mysql_real_escape_string', $restriction['values'])) . "')"; + $strRestriction .= sprintf( + "attributeValue %s IN (%s)", + ('neq' === $restriction['condition'] ? 'NOT' : ''), + implode(', ', array_fill(0, count($restriction['values']), '?')) + ); + $arrValues = array_merge($arrValues, $restriction['values']); break; case 'lt': @@ -289,7 +294,11 @@ protected static function findByConditions($arrProcedures, $arrValues = array(), case 'egt': $arrOR = array(); foreach ($restriction['values'] as $value) { - $arrOR[] = "attributeValue" . (($restriction['condition'] == 'lt' || $restriction['condition'] == 'elt') ? '>' : '<') . (($restriction['condition'] == 'elt' || $restriction['condition'] == 'egt') ? '=' : '') . '?'; + $arrOR[] = sprintf( + 'attributeValue %s%s ?', + (('lt' === $restriction['condition'] || 'elt' === $restriction['condition']) ? '>' : '<'), + (('elt' === $restriction['condition'] || 'egt' === $restriction['condition']) ? '=' : '') + ); $arrValues[] = $value; } $strRestriction .= '(' . implode(' OR ', $arrOR) . ')'; @@ -300,14 +309,20 @@ protected static function findByConditions($arrProcedures, $arrValues = array(), case 'contains': $arrOR = array(); foreach ($restriction['values'] as $value) { - $arrOR[] = "? LIKE CONCAT(" . (($restriction['condition'] == 'ends' || $restriction['condition'] == 'contains') ? "'%', " : '') . "attributeValue" . (($restriction['condition'] == 'starts' || $restriction['condition'] == 'contains') ? ", '%'" : '') . ")"; + $arrOR[] = sprintf( + "? LIKE CONCAT(%sattributeValue%s)", + (('ends' === $restriction['condition'] || 'contains' === $restriction['condition']) ? "'%', " : ''), + (('starts' === $restriction['condition'] || 'contains' === $restriction['condition']) ? ", '%'" : '') + ); $arrValues[] = $value; } $strRestriction .= '(' . implode(' OR ', $arrOR) . ')'; break; default: - throw new \InvalidArgumentException('Unknown rule condition "' . $restriction['condition'] . '"'); + throw new \InvalidArgumentException( + sprintf('Unknown rule condition "%s"', $restriction['condition']) + ); } $arrRestrictions[] = $strRestriction . ')'; @@ -316,7 +331,10 @@ protected static function findByConditions($arrProcedures, $arrValues = array(), $arrProcedures[] = '(' . implode(' OR ', $arrRestrictions) . ')'; } - $objResult = \Database::getInstance()->prepare("SELECT * FROM " . static::$strTable . " r WHERE " . implode(' AND ', $arrProcedures))->execute($arrValues); + $objResult = \Database::getInstance() + ->prepare('SELECT * FROM tl_iso_rule r WHERE ' . implode(' AND ', $arrProcedures)) + ->execute($arrValues) + ; if ($objResult->numRows) { return \Model\Collection::createFromDbResult($objResult, static::$strTable); From e835925091283cd4a27506b1937ba5dda5402dac Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 11:14:27 +0200 Subject: [PATCH 08/27] Integrity Check could not disable rules module in Contao 4 (#1764) --- .../Isotope/IntegrityCheck/UnusedRules.php | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php b/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php index 6ae6c1ddef..e8b0bacab5 100644 --- a/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php +++ b/system/modules/isotope/library/Isotope/IntegrityCheck/UnusedRules.php @@ -11,7 +11,9 @@ namespace Isotope\IntegrityCheck; +use Contao\System; use Isotope\Model\Rule; +use Symfony\Component\Filesystem\Filesystem; class UnusedRules extends AbstractIntegrityCheck { @@ -55,6 +57,25 @@ public function repair() return; } - \System::disableModule('isotope_rules'); + if (version_compare(VERSION, '4.0', '<')) { + \System::disableModule('isotope_rules'); + return; + } + + $objFile = new \File('system/modules/isotope_rules/.skip', true); + + if (!$objFile->exists()) { + $objFile->write('Remove this file to enable the module'); + $objFile->close(); + } + + try { + System::getContainer() + ->get('filesystem') + ->remove(System::getContainer()->get('kernel')->getCacheDir()) + ; + } catch (\Exception $e) { + // Ignore cache removal errors + } } } From 247c94419e18e359d24a193c32d36ce7a9805336 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 11:16:23 +0200 Subject: [PATCH 09/27] Updated changelog --- system/modules/isotope/docs/CHANGELOG-2.4.md | 10 ++++++++++ .../isotope_rules/library/Isotope/Model/Rule.php | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 06fd20bda0..3e4e56cd27 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -4,9 +4,18 @@ Isotope eCommerce Changelog Version 2.4.2 (2017-??-??) -------------------------- +### Improved + +- Updated navigation icon for Contao 4.4 backend (#1808) + + ### Fixed - Removed line break on version panel in product edit mode +- Integrity Check could not disable rules module in Contao 4 (#1764) +- Removed usage of mysql_real_escape_string (#1786) +- Fixed PHP7 compatibility for backend overview callback (#1795) +- Always store the country in order addresses (#1811) Version 2.4.1 (2017-03-07) @@ -31,6 +40,7 @@ Version 2.4.1 (2017-03-07) ### Improved + - Added itemscope attributes to product list (#1751) diff --git a/system/modules/isotope_rules/library/Isotope/Model/Rule.php b/system/modules/isotope_rules/library/Isotope/Model/Rule.php index 7ed2886509..663e257a73 100644 --- a/system/modules/isotope_rules/library/Isotope/Model/Rule.php +++ b/system/modules/isotope_rules/library/Isotope/Model/Rule.php @@ -272,8 +272,9 @@ protected static function findByConditions($arrProcedures, $arrValues = array(), $arrRestrictions[] = "(productRestrictions='pages' AND productCondition='0' AND (SELECT COUNT(*) FROM tl_iso_rule_restriction WHERE pid=r.id AND type='pages' AND object_id IN (SELECT page_id FROM " . \Isotope\Model\ProductCategory::getTable() . " WHERE pid IN (" . implode(',', $arrProductIds) . ")))=0)"; foreach ($arrAttributes as $restriction) { - if (empty($restriction['values'])) + if (empty($restriction['values'])) { continue; + } $strRestriction = "(productRestrictions='attribute' AND attributeName='" . $restriction['attribute'] . "' AND attributeCondition='" . $restriction['condition'] . "' AND "; From f7ded781c658477d10585c87a5864928412d04e7 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 11:39:18 +0200 Subject: [PATCH 10/27] Member country restrictions were not applicable in Contao 4 (#1803) --- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + .../Isotope/Backend/Member/Callback.php | 56 +++++++++++++------ 2 files changed, 41 insertions(+), 16 deletions(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 3e4e56cd27..84dfea24d0 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -16,6 +16,7 @@ Version 2.4.2 (2017-??-??) - Removed usage of mysql_real_escape_string (#1786) - Fixed PHP7 compatibility for backend overview callback (#1795) - Always store the country in order addresses (#1811) +- Member country restrictions were not applicable in Contao 4 (#1803) Version 2.4.1 (2017-03-07) diff --git a/system/modules/isotope/library/Isotope/Backend/Member/Callback.php b/system/modules/isotope/library/Isotope/Backend/Member/Callback.php index 49ceb5e009..a7bf02ce35 100644 --- a/system/modules/isotope/library/Isotope/Backend/Member/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Member/Callback.php @@ -24,28 +24,52 @@ class Callback extends \Backend */ public function limitCountries($strTable) { - if ($strTable != 'tl_member' || !Isotope::getConfig()->limitMemberCountries) { + if ('tl_member' !== $strTable || !Isotope::getConfig()->limitMemberCountries) { return; } - $arrCountries = array_unique( - array_merge( - Isotope::getConfig()->getBillingCountries(), - Isotope::getConfig()->getShippingCountries() - ) - ); + $originalField = $GLOBALS['TL_DCA']['tl_member']['fields']['country']; - $arrCountries = array_intersect_key( - $GLOBALS['TL_DCA']['tl_member']['fields']['country']['options'], - array_flip($arrCountries) - ); + unset($GLOBALS['TL_DCA']['tl_member']['fields']['country']['options']); - $GLOBALS['TL_DCA']['tl_member']['fields']['country']['options'] = $arrCountries; + $GLOBALS['TL_DCA']['tl_member']['fields']['country']['options_callback'] = function () use ($originalField) { + if (isset($originalField['options_callback'])) { + if (is_array($originalField['options_callback'])) { + $callable = [ + \System::importStatic($originalField['options_callback'][0]), + $originalField['options_callback'][1], + ]; + } else { + $callable = $originalField['options_callback']; + } - if (count($arrCountries) == 1) { - $arrCountryCodes = array_keys($arrCountries); - $GLOBALS['TL_DCA']['tl_member']['fields']['country']['default'] = $arrCountryCodes[0]; - } + $options = call_user_func_array( + $callable, + func_get_args() + ); + } else { + $options = (array) $originalField['options']; + } + + $countries = array_unique( + array_merge( + Isotope::getConfig()->getBillingCountries(), + Isotope::getConfig()->getShippingCountries() + ) + ); + + $countries = array_intersect_key( + $options, + array_flip($countries) + ); + + if (1 === count($countries)) { + $countryCodes = array_keys($countries); + $GLOBALS['TL_DCA']['tl_member']['fields']['country']['default'] = $countryCodes[0]; + } + + return $countries; + }; } /** From 848bdca492896a40b77daf2488d72292bac9ae50 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 15:28:12 +0200 Subject: [PATCH 11/27] ImageSize widget is no longer usable for custom options (#1761) --- system/modules/isotope/dca/tl_iso_gallery.php | 55 ++++++++++++------- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/system/modules/isotope/dca/tl_iso_gallery.php b/system/modules/isotope/dca/tl_iso_gallery.php index 53429d8a4d..e5f23ca441 100644 --- a/system/modules/isotope/dca/tl_iso_gallery.php +++ b/system/modules/isotope/dca/tl_iso_gallery.php @@ -242,29 +242,42 @@ ( 'label' => &$GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position'], 'exclude' => true, - 'inputType' => 'imageSize', - 'options' => array( - 'pos1' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos1'], - 'pos2' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos2'], - 'pos3' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos3'], - 'pos4' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos4'], - 'pos5' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos5'], - 'pos6' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos6'], - 'pos7' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos7'], - 'pos8' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos8'], - 'pos9' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos9'], - 'pos10' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos10'], - 'pos11' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos11'], - 'pos12' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos12'], - 'pos13' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos13'], - 'pos14' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos14'], - 'pos15' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos15'], - 'pos16' => $GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position']['pos16'], + 'inputType' => 'multiColumnWizard', + 'eval' => array( + 'rgxp' => 'digit', + 'helpwizard' => true, + 'tl_class' => 'w50', + 'disableSorting' => true, + 'minCount' => 1, + 'maxCount' => 1, + 'hideButtons' => true, + 'columnFields' => array( + 2 => array( + 'inputType' => 'select', + 'options' => array('pos1', 'pos2', 'pos3', 'pos4', 'pos5', 'pos6', 'pos7', 'pos8', 'pos9', 'pos10', 'pos11', 'pos12', 'pos13', 'pos14', 'pos15', 'pos16',), + 'reference' => &$GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position'], + 'eval' => array('hideHead' => true, 'class' => 'tl_select_interval'), + ), + 0 => array( + 'inputType' => 'text', + 'eval' => array('hideHead' => true, 'rgxp' => 'digit'), + ), + 1 => array( + 'inputType' => 'text', + 'eval' => array('hideHead' => true, 'rgxp' => 'digit'), + ), + ), ), - 'reference' => &$GLOBALS['TL_LANG']['tl_iso_gallery']['zoom_position'], - 'eval' => array('rgxp'=>'digit', 'nospace'=>true, 'helpwizard'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''", 'explanation' => 'elevatezoom_position', + 'load_callback' => [function ($value) { + $value = deserialize($value); + return is_array($value) && !is_array($value[0]) ? [$value] : []; + }], + 'save_callback' => [function ($value) { + $value = deserialize($value); + return is_array($value) ? serialize($value[0]) : ''; + }], ), 'zoom_windowFade' => array ( @@ -272,7 +285,7 @@ 'exclude' => true, 'inputType' => 'text', 'eval' => array('multiple'=>true, 'size'=>2, 'rgxp'=>'digit', 'nospace'=>true, 'tl_class'=>'w50'), - 'sql' => "varchar(64) NOT NULL default ''" + 'sql' => "varchar(64) NOT NULL default ''", ), 'zoom_border' => array ( diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 84dfea24d0..18994f6477 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -17,6 +17,7 @@ Version 2.4.2 (2017-??-??) - Fixed PHP7 compatibility for backend overview callback (#1795) - Always store the country in order addresses (#1811) - Member country restrictions were not applicable in Contao 4 (#1803) +- ImageSize widget is no longer usable for custom options (#1761) Version 2.4.1 (2017-03-07) From 059472a23297983e56fdede2997fe4adea7bb587 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 15:38:50 +0200 Subject: [PATCH 12/27] Shimane was missing in the japanese subdivisions list (#1810) --- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + .../isotope/languages/en/subdivisions.php | 79 ++++++++++--------- 2 files changed, 41 insertions(+), 39 deletions(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 18994f6477..8cfa11a5b3 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -18,6 +18,7 @@ Version 2.4.2 (2017-??-??) - Always store the country in order addresses (#1811) - Member country restrictions were not applicable in Contao 4 (#1803) - ImageSize widget is no longer usable for custom options (#1761) +- Shimane was missing in the japanese subdivisions list (#1810) Version 2.4.1 (2017-03-07) diff --git a/system/modules/isotope/languages/en/subdivisions.php b/system/modules/isotope/languages/en/subdivisions.php index 0f8c29d750..aead94433c 100644 --- a/system/modules/isotope/languages/en/subdivisions.php +++ b/system/modules/isotope/languages/en/subdivisions.php @@ -2048,52 +2048,53 @@ $GLOBALS['TL_LANG']['DIV']['jm']['JM-07'] = 'Trelawny'; $GLOBALS['TL_LANG']['DIV']['jm']['JM-10'] = 'Westmoreland'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-23'] = 'Aiti [Aichi]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-05'] = 'Akita'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-01'] = 'Hokkaido'; $GLOBALS['TL_LANG']['DIV']['jp']['JP-02'] = 'Aomori'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-38'] = 'Ehime'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-21'] = 'Gihu [Gifu]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-10'] = 'Gunma'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-34'] = 'Hirosima [Hiroshima]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-01'] = 'Hokkaidô [Hokkaido]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-18'] = 'Hukui [Fukui]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-40'] = 'Hukuoka [Fukuoka]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-07'] = 'Hukusima [Fukushima]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-28'] = 'Hyôgo [Hyogo]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-08'] = 'Ibaraki'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-17'] = 'Isikawa [Ishikawa]'; $GLOBALS['TL_LANG']['DIV']['jp']['JP-03'] = 'Iwate'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-37'] = 'Kagawa'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-46'] = 'Kagosima [Kagoshima]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-14'] = 'Kanagawa'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-39'] = 'Kôti [Kochi]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-43'] = 'Kumamoto'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-26'] = 'Kyôto [Kyoto]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-24'] = 'Mie'; $GLOBALS['TL_LANG']['DIV']['jp']['JP-04'] = 'Miyagi'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-45'] = 'Miyazaki'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-05'] = 'Akita'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-06'] = 'Yamagata'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-07'] = 'Fukushima'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-08'] = 'Ibaraki'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-09'] = 'Tochigi'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-10'] = 'Gunma'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-11'] = 'Saitama'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-12'] = 'Chiba'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-13'] = 'Tokyo'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-14'] = 'Kanagawa'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-15'] = 'Niigata'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-16'] = 'Toyama'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-17'] = 'Ishikawa'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-18'] = 'Fukui'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-19'] = 'Yamanashi'; $GLOBALS['TL_LANG']['DIV']['jp']['JP-20'] = 'Nagano'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-42'] = 'Nagasaki'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-21'] = 'Gifu'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-22'] = 'Shizuoka'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-23'] = 'Aichi'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-24'] = 'Mie'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-25'] = 'Shiga'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-26'] = 'Kyoto'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-27'] = 'Osaka'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-28'] = 'Hyogo'; $GLOBALS['TL_LANG']['DIV']['jp']['JP-29'] = 'Nara'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-15'] = 'Niigata'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-44'] = 'Ôita [Oita]'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-30'] = 'Wakayama'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-31'] = 'Tottori'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-32'] = 'Shimane'; $GLOBALS['TL_LANG']['DIV']['jp']['JP-33'] = 'Okayama'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-47'] = 'Okinawa'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-27'] = 'Ôsaka [Osaka]'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-34'] = 'Hiroshima'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-35'] = 'Yamaguchi'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-36'] = 'Tokushima'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-37'] = 'Kagawa'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-38'] = 'Ehime'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-39'] = 'Kochi'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-40'] = 'Fukuoka'; $GLOBALS['TL_LANG']['DIV']['jp']['JP-41'] = 'Saga'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-11'] = 'Saitama'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-25'] = 'Siga [Shiga]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-22'] = 'Sizuoka [Shizuoka]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-12'] = 'Tiba [Chiba]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-09'] = 'Totigi [Tochigi]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-36'] = 'Tokusima [Tokushima]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-13'] = 'Tôkyô [Tokyo]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-31'] = 'Tottori'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-16'] = 'Toyama'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-30'] = 'Wakayama'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-06'] = 'Yamagata'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-35'] = 'Yamaguti [Yamaguchi]'; -$GLOBALS['TL_LANG']['DIV']['jp']['JP-19'] = 'Yamanasi [Yamanashi]'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-42'] = 'Nagasaki'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-43'] = 'Kumamoto'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-44'] = 'Oita'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-45'] = 'Miyazaki'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-46'] = 'Kagoshima'; +$GLOBALS['TL_LANG']['DIV']['jp']['JP-47'] = 'Okinawa'; $GLOBALS['TL_LANG']['DIV']['jo']['JO-AJ'] = 'Ajlūn'; $GLOBALS['TL_LANG']['DIV']['jo']['JO-AQ'] = 'Al \'Aqaba'; From fad8a5a540b64339dbb20d2aa82530e9901d115a Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 15:43:23 +0200 Subject: [PATCH 13/27] Custom template is not supported for related products module (#1809) --- system/modules/isotope/dca/tl_module.php | 2 +- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/system/modules/isotope/dca/tl_module.php b/system/modules/isotope/dca/tl_module.php index d3a84583fe..045e8d4d6f 100755 --- a/system/modules/isotope/dca/tl_module.php +++ b/system/modules/isotope/dca/tl_module.php @@ -32,7 +32,7 @@ $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,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_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},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,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'; diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 8cfa11a5b3..d1685705a1 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -19,6 +19,7 @@ Version 2.4.2 (2017-??-??) - Member country restrictions were not applicable in Contao 4 (#1803) - ImageSize widget is no longer usable for custom options (#1761) - Shimane was missing in the japanese subdivisions list (#1810) +- Custom template is not supported for related products module (#1809) Version 2.4.1 (2017-03-07) From 69fad9ace52d18bc791a5873ad63034acf3e147b Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 16:10:34 +0200 Subject: [PATCH 14/27] Contao Manager plugin is no longer needed for contao-module packages --- .../library/Isotope/ContaoManager/Plugin.php | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 system/modules/isotope/library/Isotope/ContaoManager/Plugin.php diff --git a/system/modules/isotope/library/Isotope/ContaoManager/Plugin.php b/system/modules/isotope/library/Isotope/ContaoManager/Plugin.php deleted file mode 100644 index 3cf553f115..0000000000 --- a/system/modules/isotope/library/Isotope/ContaoManager/Plugin.php +++ /dev/null @@ -1,26 +0,0 @@ - - */ -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') - ); - } -} From 4038768d1806c53a67752667e48ded37b7d3ad2c Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 16:48:59 +0200 Subject: [PATCH 15/27] DC clipboard is stored in non-persistent session in Contao 4 (#1806) --- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + .../isotope/drivers/DC_ProductData.php | 94 +++++++++++++------ .../isotope/drivers/DC_TablePageId.php | 62 ++++++++++-- 3 files changed, 120 insertions(+), 37 deletions(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index d1685705a1..b7a4f0c30c 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -20,6 +20,7 @@ Version 2.4.2 (2017-??-??) - ImageSize widget is no longer usable for custom options (#1761) - Shimane was missing in the japanese subdivisions list (#1810) - Custom template is not supported for related products module (#1809) +- DC clipboard is stored in non-persistent session in Contao 4 (#1806) Version 2.4.1 (2017-03-07) diff --git a/system/modules/isotope/drivers/DC_ProductData.php b/system/modules/isotope/drivers/DC_ProductData.php index 906cec7a42..5f460bdb3a 100644 --- a/system/modules/isotope/drivers/DC_ProductData.php +++ b/system/modules/isotope/drivers/DC_ProductData.php @@ -51,9 +51,7 @@ class DC_ProductData extends \DC_Table */ public function __construct($strTable) { - $this->import('Session'); - - $this->intGroupId = (int)\Session::getInstance()->get('iso_products_gid'); + $this->intGroupId = (int) \Session::getInstance()->get('iso_products_gid'); // Check if the group exists if ($this->intGroupId > 0) { @@ -82,7 +80,7 @@ public function __construct($strTable) } } - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); // Cut all records if ($arrClipboard[$strTable]['mode'] == 'cutAll' && \Input::get('act') != 'cutAll') { @@ -135,7 +133,7 @@ public function showAll() // Add to clipboard if (\Input::get('act') == 'paste') { - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); $arrClipboard[$this->strTable] = array ( @@ -144,7 +142,7 @@ public function showAll() 'mode' => \Input::get('mode') ); - $this->Session->set('CLIPBOARD', $arrClipboard); + $this->getSession()->set('CLIPBOARD', $arrClipboard); // Perform a redirect (this is the CURRENT_ID fix) \Controller::redirect('contao/main.php?do=' . \Input::get('do') . (\Input::get('pid') ? '&id=' . \Input::get('pid') : '') . '&rt=' . \Input::get('rt') . '&ref=' . \Input::get('ref')); @@ -194,9 +192,9 @@ public function showAll() } // Store the current IDs - $session = $this->Session->getData(); + $session = $this->getSessionData(); $session['CURRENT']['IDS'] = $this->current; - $this->Session->setData($session); + $this->setSessionData($session); return $return; } @@ -212,9 +210,9 @@ public function cut($blnDoNotRedirect = false) $time = time(); // Empty clipboard - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); $arrClipboard[$this->strTable] = array(); - $this->Session->set('CLIPBOARD', $arrClipboard); + $this->getSession()->set('CLIPBOARD', $arrClipboard); $objRecord = $this->Database->prepare("SELECT pid FROM {$this->strTable} WHERE id=?") ->limit(1) @@ -374,7 +372,7 @@ protected function copyChilds($table, $insertID, $id, $parentId) */ public function copyAll() { - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); if (isset($arrClipboard[$this->strTable]) && is_array($arrClipboard[$this->strTable]['id'])) { $arrIds = array(); @@ -450,7 +448,7 @@ public function edit($intID = false, $ajaxId = false) if (!empty($this->arrTranslations)) { $blnLanguageUpdated = false; - $session = $this->Session->getData(); + $session = \Session::getInstance()->getData(); if (\Input::post('FORM_SUBMIT') == 'tl_language') { if (in_array(\Input::post('language'), $this->arrTranslations)) { @@ -467,7 +465,7 @@ public function edit($intID = false, $ajaxId = false) } if ($blnLanguageUpdated) { - $this->Session->setData($session); + \Session::getInstance()->setData($session); $_SESSION['TL_INFO'] = ''; \Controller::reload(); } @@ -521,7 +519,7 @@ public function edit($intID = false, $ajaxId = false) } $class = 'tl_tbox'; - $fs = $this->Session->get('fieldset_states'); + $fs = $this->getSession()->get('fieldset_states'); $blnIsFirst = true; // Render boxes @@ -852,14 +850,14 @@ public function overrideAll() $this->import('BackendUser', 'User'); // Get current IDs from session - $session = $this->Session->getData(); + $session = $this->getSessionData(); $ids = $session['CURRENT']['IDS']; // Save field selection in session if (\Input::post('FORM_SUBMIT') == $this->strTable.'_all' && \Input::get('fields')) { $session['CURRENT'][$this->strTable] = \Input::post('all_fields'); - $this->Session->setData($session); + $this->setSessionData($session); } // Add fields @@ -1244,7 +1242,7 @@ protected function listView() $objRow = $objRowStmt->execute($this->values); $this->bid = ($return != '') ? $this->bid : 'tl_buttons'; $blnClipboard = false; - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); // Check the clipboard if (!empty($arrClipboard[$this->strTable])) { @@ -1482,7 +1480,7 @@ protected function listView() protected function parentView() { $blnClipboard = false; - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); $blnHasSorting = false; $blnMultiboard = false; @@ -1959,7 +1957,7 @@ protected function sortMenu() } $this->bid = 'tl_buttons_a'; - $session = $this->Session->getData(); + $session = \Session::getInstance()->getData(); $sessionKey = \Input::get('id') ? $this->strTable . '_' . CURRENT_ID : $this->strTable; $orderBy = $GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['fields']; $firstOrderBy = preg_replace('/\s+.*$/', '', $orderBy[0]); @@ -1979,7 +1977,7 @@ protected function sortMenu() if (in_array($strSort, $sortingFields)) { $session['sorting'][$sessionKey] = in_array($GLOBALS['TL_DCA'][$this->strTable]['fields'][$strSort]['flag'], array(2, 4, 6, 8, 10, 12)) ? "$strSort DESC" : $strSort; - $this->Session->setData($session); + \Session::getInstance()->setData($session); } } @@ -2032,7 +2030,7 @@ protected function sortMenu() protected function searchMenu() { $searchFields = array(); - $session = $this->Session->getData(); + $session = \Session::getInstance()->getData(); $sessionKey = \Input::get('id') ? $this->strTable . '_' . CURRENT_ID : $this->strTable; // Get search fields @@ -2070,7 +2068,7 @@ protected function searchMenu() catch (\Exception $e) {} } - $this->Session->setData($session); + \Session::getInstance()->setData($session); } // Set the search value from the session @@ -2120,7 +2118,7 @@ protected function searchMenu() */ protected function limitMenu($blnOptional = false) { - $session = $this->Session->getData(); + $session = \Session::getInstance()->getData(); $filter = \Input::get('id') ? $this->strTable . '_' . CURRENT_ID : $this->strTable; $fields = ''; @@ -2137,7 +2135,7 @@ protected function limitMenu($blnOptional = false) } } - $this->Session->setData($session); + \Session::getInstance()->setData($session); if (\Input::post('FORM_SUBMIT') == 'tl_filters_limit') { \Controller::reload(); @@ -2240,7 +2238,7 @@ protected function filterMenu($intFilterPanel) $fields = ''; $this->bid = 'tl_buttons_a'; $sortingFields = array(); - $session = $this->Session->getData(); + $session = \Session::getInstance()->getData(); $filter = \Input::get('id') ? $this->strTable . '_' . CURRENT_ID : $this->strTable; // Get the sorting fields @@ -2273,7 +2271,7 @@ protected function filterMenu($intFilterPanel) } } - $this->Session->setData($session); + \Session::getInstance()->setData($session); } // Set filter from table configuration @@ -2637,7 +2635,7 @@ protected function filterMenu($intFilterPanel) */ public function copyFallback() { - $session = $this->Session->getData(); + $session = $this->getSessionData(); $strLanguage = $session['language'][$this->strTable][$this->intId]; $this->strPalette = trimsplit('[;,]', $this->getPalette()); $arrDuplicate = array(); @@ -2662,4 +2660,46 @@ public function copyFallback() \Controller::redirect(\Backend::addToUrl('act=edit')); } + + /** + * Gets session instance depending on Contao 3 or Contao 4. + * + * @return Session|\Symfony\Component\HttpFoundation\Session\SessionInterface + */ + private function getSession() + { + if (method_exists('Contao\System', 'getContainer')) { + return \System::getContainer()->get('session'); + } + + return \Session::getInstance(); + } + + /** + * Gets session data depending on Contao 3 or Contao 4. + * + * @return array + */ + private function getSessionData() + { + if (method_exists('Contao\System', 'getContainer')) { + return $this->getSession()->all(); + } + + return $this->getSession()->getData(); + } + + /** + * Sets session data depending on Contao 3 or Contao 4. + * + * @param array $data + */ + private function setSessionData(array $data) + { + if (method_exists('Contao\System', 'getContainer')) { + return $this->getSession()->replace($data); + } + + return $this->getSession()->setData($data); + } } diff --git a/system/modules/isotope/drivers/DC_TablePageId.php b/system/modules/isotope/drivers/DC_TablePageId.php index c9c8d3da6f..685bd06bbb 100644 --- a/system/modules/isotope/drivers/DC_TablePageId.php +++ b/system/modules/isotope/drivers/DC_TablePageId.php @@ -47,7 +47,7 @@ public function showAll() // Add to clipboard if (\Input::get('act') == 'paste') { - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); $arrClipboard[$this->strTable] = array ( @@ -56,7 +56,7 @@ public function showAll() 'mode' => \Input::get('mode') ); - $this->Session->set('CLIPBOARD', $arrClipboard); + $this->getSession()->set('CLIPBOARD', $arrClipboard); } // Custom filter @@ -94,9 +94,9 @@ public function showAll() } // Store the current IDs - $session = $this->Session->getData(); + $session = $this->getSessionData(); $session['CURRENT']['IDS'] = $this->current; - $this->Session->setData($session); + $this->setSessionData($session); return $return; } @@ -134,9 +134,9 @@ public function cut($blnDoNotRedirect=false) } // Empty clipboard - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); $arrClipboard[$this->strTable] = array(); - $this->Session->set('CLIPBOARD', $arrClipboard); + $this->getSession()->set('CLIPBOARD', $arrClipboard); // Update the record if (in_array($this->set['page_id'], $cr)) @@ -150,7 +150,7 @@ public function cut($blnDoNotRedirect=false) // HOOK: style sheet category if ($this->strTable == 'tl_style') { - $filter = $this->Session->get('filter'); + $filter = \Session::getInstance()->get('filter'); $category = $filter['tl_style_' . CURRENT_ID]['category']; if ($category != '') @@ -210,7 +210,7 @@ public function cutAll() $this->redirect($this->getReferer()); } - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); if (isset($arrClipboard[$this->strTable]) && is_array($arrClipboard[$this->strTable]['id'])) { @@ -459,7 +459,7 @@ protected function reviseTable() $ptable = $GLOBALS['TL_DCA'][$this->strTable]['config']['ptable']; $ctable = $GLOBALS['TL_DCA'][$this->strTable]['config']['ctable']; - $new_records = $this->Session->get('new_records'); + $new_records = \Session::getInstance()->get('new_records'); // HOOK: add custom logic if (isset($GLOBALS['TL_HOOKS']['reviseTable']) && is_array($GLOBALS['TL_HOOKS']['reviseTable'])) @@ -559,7 +559,7 @@ protected function reviseTable() protected function parentView() { $blnClipboard = false; - $arrClipboard = $this->Session->get('CLIPBOARD'); + $arrClipboard = $this->getSession()->get('CLIPBOARD'); $table = ($GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['mode'] == 6) ? $this->ptable : $this->strTable; $blnHasSorting = $GLOBALS['TL_DCA'][$this->strTable]['list']['sorting']['fields'][0] == 'sorting'; $blnMultiboard = false; @@ -1541,4 +1541,46 @@ protected function generateButtons($arrRow, $strTable, $arrRootIds=array(), $bln return trim($return); } + + /** + * Gets session instance depending on Contao 3 or Contao 4. + * + * @return Session|\Symfony\Component\HttpFoundation\Session\SessionInterface + */ + private function getSession() + { + if (method_exists('Contao\System', 'getContainer')) { + return \System::getContainer()->get('session'); + } + + return \Session::getInstance(); + } + + /** + * Gets session data depending on Contao 3 or Contao 4. + * + * @return array + */ + private function getSessionData() + { + if (method_exists('Contao\System', 'getContainer')) { + return $this->getSession()->all(); + } + + return $this->getSession()->getData(); + } + + /** + * Sets session data depending on Contao 3 or Contao 4. + * + * @param array $data + */ + private function setSessionData(array $data) + { + if (method_exists('Contao\System', 'getContainer')) { + return $this->getSession()->replace($data); + } + + return $this->getSession()->setData($data); + } } From a0d2ba24080af3878c098d0515a2849bf7177ae0 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Thu, 29 Jun 2017 22:28:42 +0200 Subject: [PATCH 16/27] Group and page selection in products backend did not reload (#1801) --- .../isotope/assets/css/backend.min.css | 2 +- system/modules/isotope/assets/js/backend.js | 28 +++++++++++-------- .../modules/isotope/assets/js/backend.min.js | 2 +- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/system/modules/isotope/assets/css/backend.min.css b/system/modules/isotope/assets/css/backend.min.css index 61bfb7f4b5..e45ef04b60 100644 --- a/system/modules/isotope/assets/css/backend.min.css +++ b/system/modules/isotope/assets/css/backend.min.css @@ -1 +1 @@ -#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{width:700px;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;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;margin-left:2%}.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 0;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 0}body.iso_be_overview .tip-wrap{margin-left:30px!important;margin-top:70px}.be_iso_overview .tl_info{margin-top:10px}.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;line-height:1.2;margin-top:5px}.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:2%}.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} \ No newline at end of file +#tl_navigation .tl_level_1_group .group-isotope{background:url(../images/module.svg) 8px center no-repeat;background-size:16px 16px}body[class*=version_4-4] #tl_navigation .tl_level_1_group .group-isotope{background:url(../images/module44.svg) 5px 1px no-repeat;background-size:14px 14px}.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{width:700px;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;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;margin-left:2%}.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 0;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 0}body.iso_be_overview .tip-wrap{margin-left:30px!important;margin-top:70px}.be_iso_overview .tl_info{margin-top:10px}.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;line-height:1.2;margin-top:5px}.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:2%}.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} \ 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 e0ace97214..295015bba7 100644 --- a/system/modules/isotope/assets/js/backend.js +++ b/system/modules/isotope/assets/js/backend.js @@ -99,21 +99,22 @@ var Isotope = {}; if (!inp[i].checked || inp[i].id.match(/^check_all_/)) continue; if (!inp[i].id.match(/^reset_/)) val.push(inp[i].get('value')); } - new Request.Contao( - { + new Request.Contao({ evalScripts: false, onRequest: AjaxRequest.displayBox(Contao.lang.loading + ' …'), - onSuccess: function(txt, json) - { - if (txt != '') - { + onSuccess: function(txt, json) { + if (txt != '') { window.location.href = txt; } + }, + onFailure: function(xhr) { + if (xhr.status === 302 && xhr.responseText != '') { + window.location.href = xhr.responseText; + } } }).post({'action':opt.action, 'value':val[0], 'redirect':opt.redirect, 'REQUEST_TOKEN':Contao.request_token}); this.hide(); - if (opt.trigger) - { + if (opt.trigger) { opt.trigger.fireEvent('closeModal'); } }); @@ -181,12 +182,15 @@ var Isotope = {}; { evalScripts: false, onRequest: AjaxRequest.displayBox(Contao.lang.loading + ' …'), - onSuccess: function(txt, json) - { - if (txt != '') - { + onSuccess: function(txt, json) { + if (txt != '') { window.location.href = txt; } + }, + onFailure: function(xhr) { + if (xhr.status === 302 && xhr.responseText != '') { + window.location.href = xhr.responseText; + } } }).post({'action':opt.action, 'value':val, 'redirect':opt.redirect, 'REQUEST_TOKEN':Contao.request_token}); this.hide(); diff --git a/system/modules/isotope/assets/js/backend.min.js b/system/modules/isotope/assets/js/backend.min.js index 13199ea84f..dd337430b9 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(e,t){var n=document.id(e).className,a=document.id(e).checked?"checked":"";"tl_checkbox"==n?$$("#"+t+" .tl_checkbox").each(function(e){e.disabled||(e.checked=a)}):"tl_tree_checkbox"==n&&$$("#"+t+" .parent .tl_tree_checkbox").each(function(e){e.disabled||(e.checked=a)}),Backend.getScrollOffset()},Isotope.openModalGroupSelector=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=[],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;on)&&(t.height=n);var o=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 o.addButton(Contao.lang.close,"btn",function(){this.hide()}),o.addButton(Contao.lang.apply,"btn primary",function(){for(var e=[],n=null,o=window.frames,a=0;a',model:"modal"}),o},Isotope.openModalPageSelector=function(e){var t=e||{},n=(window.getSize().y-180).toInt();(!t.height||t.height>n)&&(t.height=n);var o=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 o.addButton(Contao.lang.close,"btn",function(){this.hide()}),o.addButton(Contao.lang.apply,"btn primary",function(){for(var e=0,n=null,o=window.frames,a=0;a',model:"modal"}),o},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,o){var a=document.id("ctrl_"+e);if(a){a.removeProperty("required");var i=a.getParent("div").getFirst("h3");if(!i&&a.match(".tl_checkbox_single_container")&&(i=a),!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){}}}),a.match(".tl_checkbox_single_container"))a.getFirst("input[type=checkbox]").disabled=l.checked;else{a.setStyle("display",l.checked?"none":null);try{a.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,o=t.getParent("table").id;e[o]=e[o]||[],e[o].push(t),t.grab(new Element("option",{text:"Add …",value:"extendSelect"})).addEvent("change",function(a){if("extendSelect"==t.value){var i=prompt("Please enter the new group name.");""!=i?(o&&e[o]?e[o].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,o,a=e.getFirst("div");a&&(a.hasClass("wrapper_start")?((t=e.getPrevious("li"))&&(o=t.getFirst("div"))&&o.removeClass("indent"),(n=e.getNext("li"))&&(o=n.getFirst("div"))&&o.addClass("indent")):a.hasClass("wrapper_stop")?((t=e.getPrevious("li"))&&(o=t.getFirst("div"))&&o.addClass("indent"),(n=e.getNext("li"))&&(o=n.getFirst("div"))&&o.removeClass("indent")):a.hasClass("indent")?(t=e.getPrevious("li"))&&(o=t.getFirst("div"))&&o.hasClass("wrapper_stop")?a.removeClass("indent"):(n=e.getNext("li"))&&(o=n.getFirst("div"))&&o.hasClass("wrapper_start")&&a.removeClass("indent"):(t=e.getPrevious("li"))&&(o=t.getFirst("div"))&&o.hasClass("wrapper_start")?a.addClass("indent"):(n=e.getNext("li"))&&(o=n.getFirst("div"))&&o.hasClass("wrapper_stop")&&a.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,o,a,i;e.getPrevious("li")?(t=e.get("id").replace(/li_/,""),o=e.getPrevious("li").get("id").replace(/li_/,""),a=window.location.search.replace(/id=[0-9]*/,"id="+t)+"&act=cut&mode=1&page_id="+o,i=window.location.href.replace(/\?.*$/,""),new Request.Contao({url:i+a,followRedirects:!1}).get()):e.getParent("ul")&&(t=e.get("id").replace(/li_/,""),o=e.getParent("ul").get("id").replace(/ul_/,""),a=window.location.search.replace(/id=[0-9]*/,"id="+t)+"&act=cut&mode=2&page_id="+o,i=window.location.href.replace(/\?.*$/,""),new Request.Contao({url:i+a,followRedirects:!1}).get())}})}}(),Isotope.MediaManager={},function(){"use strict";Isotope.MediaManager.init=function(e,t,n){var o,a,i,l,r,d,s=$("ctrl_"+t),c=[],u={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,u){if(!u.success)return void AjaxRequest.hideBox();if(u.file&&c.push(u.file),!(this.getInProgress()>0)){for(d={},l=s.getElements('[name^="'+t+'"]'),a=0;a Date: Fri, 30 Jun 2017 10:18:37 +0200 Subject: [PATCH 17/27] Simplified SQL query and fixed missing GROUP BY exception --- .../library/Isotope/Backend/ProductType/Callback.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php b/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php index d9e90ebc24..1c7649cab5 100755 --- a/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductType/Callback.php @@ -139,7 +139,14 @@ public function copyProductType($row, $href, $label, $title, $icon, $attributes) */ public function deleteProductType($row, $href, $label, $title, $icon, $attributes) { - if (Product::countBy('type', $row['id']) > 0) { + // Do not use Product::countBy() as it uses a way too complex query with joined subtables for no reason + $count = \Database::getInstance() + ->prepare("SELECT COUNT(*) AS count FROM tl_iso_product WHERE pid=0 AND language='' AND type=?") + ->execute($row['id']) + ->count + ; + + if ($count > 0) { return \Image::getHtml(preg_replace('/\.gif$/i', '_.gif', $icon)) . ' '; } From 7d80cf3ab373be62ad65a603181e24610573f62a Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Fri, 14 Jul 2017 15:40:13 +0200 Subject: [PATCH 18/27] Fixed endless redirect issue with header-replace-bundle (#1817) --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index a92b824563..c1323dd563 100644 --- a/composer.json +++ b/composer.json @@ -38,7 +38,8 @@ "terminal42/contao-fineuploader": "For file uploads in frontend using FineUploader" }, "conflict": { - "terminal42/contao-fineuploader": "< 2.0 || >= 3.0" + "terminal42/contao-fineuploader": "< 2.0 || >= 3.0", + "terminal42/header-replay-bundle": "<1.0.2" }, "autoload": { "psr-0": { From e0eebcfb0b231cadedb3f7dbcfc3e8166935dd87 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Mon, 17 Jul 2017 16:09:47 +0200 Subject: [PATCH 19/27] Only create guest cookie if something was added to cart (#1817) --- composer.json | 2 +- .../Isotope/Model/ProductCollection.php | 1 - .../Isotope/Model/ProductCollection/Cart.php | 28 +++++++++++++------ 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/composer.json b/composer.json index c1323dd563..abf9825959 100644 --- a/composer.json +++ b/composer.json @@ -39,7 +39,7 @@ }, "conflict": { "terminal42/contao-fineuploader": "< 2.0 || >= 3.0", - "terminal42/header-replay-bundle": "<1.0.2" + "contao/core-bundle": "4.0.0 || 4.0.1" }, "autoload": { "psr-0": { diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection.php b/system/modules/isotope/library/Isotope/Model/ProductCollection.php index 4bb2c38923..732c60f39a 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection.php @@ -152,7 +152,6 @@ public function updateDatabase($blnCreate = true) && !$this->isLocked() && (Registry::getInstance()->isRegistered($this) || $blnCreate) ) { - foreach ($this->getItems() as $objItem) { if (!$objItem->hasProduct()) { continue; diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php b/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php index ff76eba34f..6a0c1943c2 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollection/Cart.php @@ -228,6 +228,25 @@ public function getErrors() return $arrErrors; } + /** + * {@inheritdoc} + */ + public function save() + { + parent::save(); + + if (!$this->member) { + \System::setCookie( + static::$strCookie, + $this->uniqid, + $this->tstamp + $GLOBALS['TL_CONFIG']['iso_cartTimeout'], + $GLOBALS['TL_CONFIG']['websitePath'] + ); + } + + return $this; + } + /** * Get a collection-specific error message for items with errors * @@ -310,15 +329,6 @@ public static function findForCurrentStore() $objCart->tstamp = $time; } - if (true !== FE_USER_LOGGED_IN) { - \System::setCookie( - static::$strCookie, - $cookieHash, - $time + $GLOBALS['TL_CONFIG']['iso_cartTimeout'], - $GLOBALS['TL_CONFIG']['websitePath'] - ); - } - return $objCart; } } From e19afc087dac2fe094f077e8e32f5cec6aae3b44 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 08:46:22 +0200 Subject: [PATCH 20/27] Fixed help wizard for payment, shipping, gallery and producttype (#1821) --- system/modules/isotope/dca/tl_iso_attribute.php | 2 +- system/modules/isotope/dca/tl_iso_config.php | 4 ++-- system/modules/isotope/dca/tl_iso_gallery.php | 1 + system/modules/isotope/dca/tl_iso_payment.php | 1 + system/modules/isotope/dca/tl_iso_producttype.php | 5 +++-- system/modules/isotope/dca/tl_iso_shipping.php | 1 + system/modules/isotope/dca/tl_user.php | 2 +- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + 8 files changed, 11 insertions(+), 6 deletions(-) diff --git a/system/modules/isotope/dca/tl_iso_attribute.php b/system/modules/isotope/dca/tl_iso_attribute.php index 9c3044232c..54b2a8cdee 100755 --- a/system/modules/isotope/dca/tl_iso_attribute.php +++ b/system/modules/isotope/dca/tl_iso_attribute.php @@ -193,8 +193,8 @@ 'options_callback' => function() { return \Isotope\Model\Attribute::getModelTypeOptions(); }, - 'eval' => array('mandatory'=>true, 'includeBlankOption'=>true, 'submitOnChange'=>true, 'helpwizard'=>true, 'tl_class'=>'w50', 'chosen'=>true), 'reference' => &$GLOBALS['TL_LANG']['ATTR'], + 'eval' => array('mandatory'=>true, 'includeBlankOption'=>true, 'submitOnChange'=>true, 'helpwizard'=>true, 'tl_class'=>'w50', 'chosen'=>true), 'sql' => "varchar(64) NOT NULL default ''", ), 'legend' => array diff --git a/system/modules/isotope/dca/tl_iso_config.php b/system/modules/isotope/dca/tl_iso_config.php index 858ba650d7..ed7357a22a 100755 --- a/system/modules/isotope/dca/tl_iso_config.php +++ b/system/modules/isotope/dca/tl_iso_config.php @@ -519,7 +519,7 @@ 'label' => &$GLOBALS['TL_LANG']['tl_iso_config']['currencyAutomator'], 'exclude' => true, 'inputType' => 'checkbox', - 'eval' => array('submitOnChange'=>true, 'tl_class'=>'clr', 'helpwizard'=>true), + 'eval' => array('submitOnChange'=>true, 'tl_class'=>'clr w50'), 'save_callback' => array( array('Isotope\Backend\Config\Callback', 'checkNeedToConvertCurrencies') ), @@ -531,7 +531,7 @@ 'exclude' => true, 'inputType' => 'select', 'options' => &$GLOBALS['TL_LANG']['CUR'], - 'eval' => array('includeBlankOption'=>true, 'mandatory'=>true, 'tl_class'=>'w50'), + 'eval' => array('includeBlankOption'=>true, 'mandatory'=>true, 'tl_class'=>'clr w50'), 'save_callback' => array( array('Isotope\Backend\Config\Callback', 'checkNeedToConvertCurrencies') ), diff --git a/system/modules/isotope/dca/tl_iso_gallery.php b/system/modules/isotope/dca/tl_iso_gallery.php index e5f23ca441..4768c27ebd 100644 --- a/system/modules/isotope/dca/tl_iso_gallery.php +++ b/system/modules/isotope/dca/tl_iso_gallery.php @@ -146,6 +146,7 @@ 'options_callback' => function() { return \Isotope\Model\Gallery::getModelTypeOptions(); }, + 'reference' => &$GLOBALS['TL_LANG']['MODEL']['tl_iso_gallery'], 'eval' => array('helpwizard'=>true, 'submitOnChange'=>true, 'chosen'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''", ), diff --git a/system/modules/isotope/dca/tl_iso_payment.php b/system/modules/isotope/dca/tl_iso_payment.php index d2d32c45f7..629ea5465e 100644 --- a/system/modules/isotope/dca/tl_iso_payment.php +++ b/system/modules/isotope/dca/tl_iso_payment.php @@ -183,6 +183,7 @@ 'options_callback' => function() { return \Isotope\Model\Payment::getModelTypeOptions(); }, + 'reference' => &$GLOBALS['TL_LANG']['MODEL']['tl_iso_payment'], 'eval' => array('includeBlankOption'=>true, 'helpwizard'=>true, 'submitOnChange'=>true, 'chosen'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''", ), diff --git a/system/modules/isotope/dca/tl_iso_producttype.php b/system/modules/isotope/dca/tl_iso_producttype.php index 70718deaed..388f9b9111 100755 --- a/system/modules/isotope/dca/tl_iso_producttype.php +++ b/system/modules/isotope/dca/tl_iso_producttype.php @@ -154,6 +154,7 @@ 'options_callback' => function() { return \Isotope\Model\Product::getModelTypeOptions(); }, + 'reference' => &$GLOBALS['TL_LANG']['MODEL']['tl_iso_product'], 'eval' => array('mandatory'=>true, 'submitOnChange'=>true, 'helpwizard'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''" ), @@ -196,7 +197,7 @@ 'exclude' => true, 'inputType' => 'select', 'default' => 'iso_list_default', - 'options_callback' => function(\DataContainer $dc) { + 'options_callback' => function() { return \Isotope\Backend::getTemplates('iso_list_'); }, 'eval' => array('mandatory'=>true, 'tl_class'=>'w50', 'chosen'=>true), @@ -208,7 +209,7 @@ 'exclude' => true, 'inputType' => 'select', 'default' => 'iso_reader_default', - 'options_callback' => function(\DataContainer $dc) { + 'options_callback' => function() { return \Isotope\Backend::getTemplates('iso_reader_'); }, 'eval' => array('mandatory'=>true, 'tl_class'=>'w50', 'chosen'=>true), diff --git a/system/modules/isotope/dca/tl_iso_shipping.php b/system/modules/isotope/dca/tl_iso_shipping.php index f3cbb16fa0..c924e00435 100755 --- a/system/modules/isotope/dca/tl_iso_shipping.php +++ b/system/modules/isotope/dca/tl_iso_shipping.php @@ -174,6 +174,7 @@ 'options_callback' => function() { return \Isotope\Model\Shipping::getModelTypeOptions(); }, + 'reference' => &$GLOBALS['TL_LANG']['MODEL']['tl_iso_shipping'], 'eval' => array('helpwizard'=>true, 'submitOnChange'=>true, 'chosen'=>true, 'tl_class'=>'w50'), 'sql' => "varchar(64) NOT NULL default ''", ), diff --git a/system/modules/isotope/dca/tl_user.php b/system/modules/isotope/dca/tl_user.php index e86f7146f5..fbba9de8e7 100644 --- a/system/modules/isotope/dca/tl_user.php +++ b/system/modules/isotope/dca/tl_user.php @@ -39,7 +39,7 @@ 'exclude' => true, 'inputType' => 'checkbox', 'foreignKey' => \Isotope\Model\ProductType::getTable().'.name', - 'eval' => array('multiple'=>true, 'helpwizard'=>true, 'tl_class'=>'clr w50 w50h'), + 'eval' => array('multiple'=>true, 'tl_class'=>'clr w50 w50h'), 'sql' => 'blob NULL', ); diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 2dd7c3028a..5a37eab8b9 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -22,6 +22,7 @@ Version 2.4.2 (2017-??-??) - Custom template is not supported for related products module (#1809) - DC clipboard is stored in non-persistent session in Contao 4 (#1806) - Group and page selection in products backend did not reload (#1801) +- Help wizard was empty for payment, shipping, gallery and producttype (#1821) Version 2.4.1 (2017-03-07) From a936fdb1cec21766505c6b29596e79890189020c Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 09:02:30 +0200 Subject: [PATCH 21/27] TinyMCE options were missing in textarea attribute (#1815) --- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + .../Isotope/Backend/Attribute/Callback.php | 16 +++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 5a37eab8b9..c4e12ae307 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -23,6 +23,7 @@ Version 2.4.2 (2017-??-??) - DC clipboard is stored in non-persistent session in Contao 4 (#1806) - Group and page selection in products backend did not reload (#1801) - Help wizard was empty for payment, shipping, gallery and producttype (#1821) +- TinyMCE options were missing in textarea attribute (#1815) Version 2.4.1 (2017-03-07) diff --git a/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php b/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php index 4bbce730b5..69e12ff8e6 100755 --- a/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/Attribute/Callback.php @@ -134,15 +134,21 @@ public function getConditionFields($dc) */ public function getRTE() { - $arrOptions = array(); + $options = array(); - foreach (scan(TL_ROOT . '/system/config') as $file) { - if (is_file(TL_ROOT . '/system/config/' . $file) && strpos($file, 'tiny') === 0) { - $arrOptions[] = basename($file, '.php'); + if (version_compare(VERSION, '4.0', '<')) { + foreach (scan(TL_ROOT . '/system/config') as $file) { + if (is_file(TL_ROOT . '/system/config/' . $file) && strpos($file, 'tiny') === 0) { + $options[] = basename($file, '.php'); + } + } + } else { + foreach (preg_grep('/^be_tiny/', array_keys(\TemplateLoader::getFiles())) as $template) { + $options[] = substr($template, 3); } } - return $arrOptions; + return $options; } /** From ea6f4100bd01bf3e37ff5c75869b5dd52f150ba5 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 09:16:49 +0200 Subject: [PATCH 22/27] Fixed back button in Contao 4.4 picker (#1813) --- .../isotope/assets/css/backend-svg.min.css | 1 - system/modules/isotope/assets/css/backend.css | 2 +- system/modules/isotope/assets/css/backend.min.css | 1 - system/modules/isotope/assets/css/print.min.css | 1 - system/modules/isotope/config/config.php | 15 ++++++--------- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + .../Backend/ProductCollection/Callback.php | 3 +-- 7 files changed, 9 insertions(+), 15 deletions(-) delete mode 100644 system/modules/isotope/assets/css/backend-svg.min.css delete mode 100644 system/modules/isotope/assets/css/backend.min.css delete mode 100644 system/modules/isotope/assets/css/print.min.css diff --git a/system/modules/isotope/assets/css/backend-svg.min.css b/system/modules/isotope/assets/css/backend-svg.min.css deleted file mode 100644 index d5f459efee..0000000000 --- a/system/modules/isotope/assets/css/backend-svg.min.css +++ /dev/null @@ -1 +0,0 @@ -.header_iso_copy{background-image:url(../../../../themes/flexible/icons/back.svg)}.mod_iso_orderdetails{margin:2%}.iso_be_overview #main h1:first-child{display:none}.be_iso_overview .daily_summary{padding:0 2%}.iso_be_overview .item:nth-child(2) a{margin-left:2%}.tl_iso_category_sorting{padding:10px 0 0 8px}.be_iso_introduction{margin:2% 2% 0}.be_iso_introduction h2{margin:1em 0}.iso_operations{width:114px}.iso_panels .tl_subpanel{margin-left:3%}.iso_panels .tl_subpanel.tl_submit_panel{margin-left:0}.iso_filter .tl_select,.iso_panels .tl_select{width:auto;margin-left:3px}.iso_panels .tl_text{margin-left:3px;margin-right:3px}.iso_panels .radio_container{margin-top:8px}.iso_panels .tl_radio{margin-left:8px;margin-right:4px}.iso_filter .tl_submit.active{background:#ffd} \ 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 d3b7cad612..bf223b4378 100644 --- a/system/modules/isotope/assets/css/backend.css +++ b/system/modules/isotope/assets/css/backend.css @@ -45,7 +45,7 @@ body[class*="version_4-4"] #tl_navigation .tl_level_1_group .group-isotope { padding:3px 0 0 8px; } -body.popup .header_back { +body.popup a[href*="table=tl_iso_attribute_option"].header_back { display: none; } diff --git a/system/modules/isotope/assets/css/backend.min.css b/system/modules/isotope/assets/css/backend.min.css deleted file mode 100644 index e45ef04b60..0000000000 --- a/system/modules/isotope/assets/css/backend.min.css +++ /dev/null @@ -1 +0,0 @@ -#tl_navigation .tl_level_1_group .group-isotope{background:url(../images/module.svg) 8px center no-repeat;background-size:16px 16px}body[class*=version_4-4] #tl_navigation .tl_level_1_group .group-isotope{background:url(../images/module44.svg) 5px 1px no-repeat;background-size:14px 14px}.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{width:700px;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;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;margin-left:2%}.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 0;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 0}body.iso_be_overview .tip-wrap{margin-left:30px!important;margin-top:70px}.be_iso_overview .tl_info{margin-top:10px}.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;line-height:1.2;margin-top:5px}.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:2%}.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} \ 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 deleted file mode 100644 index bb0ef96243..0000000000 --- a/system/modules/isotope/assets/css/print.min.css +++ /dev/null @@ -1 +0,0 @@ -#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/config/config.php b/system/modules/isotope/config/config.php index 57c22059ad..b92709ad8a 100755 --- a/system/modules/isotope/config/config.php +++ b/system/modules/isotope/config/config.php @@ -24,7 +24,7 @@ ( 'tables' => array(\Isotope\Model\Product::getTable(), \Isotope\Model\Group::getTable(), \Isotope\Model\ProductCategory::getTable(), \Isotope\Model\Download::getTable(), \Isotope\Model\RelatedProduct::getTable(), \Isotope\Model\ProductPrice::getTable(), 'tl_iso_product_pricetier', \Isotope\Model\AttributeOption::getTable()), 'icon' => 'system/modules/isotope/assets/images/store-open.png', - 'javascript' => \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/js/backend.min.js'), + 'javascript' => 'system/modules/isotope/assets/js/backend.js', 'generate' => array('Isotope\Backend\Product\VariantGenerator', 'generate'), 'import' => array('Isotope\Backend\Product\AssetImport', 'generate'), 'fallback' => array('Isotope\Backend\Product\Fallback', 'setFromUrl'), @@ -33,7 +33,7 @@ ( 'tables' => array(\Isotope\Model\ProductCollection::getTable(), \Isotope\Model\ProductCollectionItem::getTable(), \Isotope\Model\ProductCollectionSurcharge::getTable(), \Isotope\Model\ProductCollectionDownload::getTable(), \Isotope\Model\Address::getTable()), 'icon' => 'system/modules/isotope/assets/images/shopping-basket.png', - 'javascript' => \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/js/backend.min.js'), + 'javascript' => 'system/modules/isotope/assets/js/backend.js', 'print_document' => array('Isotope\Backend\ProductCollection\Callback', 'printDocument'), 'payment' => array('Isotope\Backend\ProductCollection\Callback', 'paymentInterface'), 'shipping' => array('Isotope\Backend\ProductCollection\Callback', 'shippingInterface'), @@ -43,20 +43,17 @@ 'callback' => 'Isotope\BackendModule\Setup', 'tables' => array(), 'icon' => 'system/modules/isotope/assets/images/application-monitor.png', - 'javascript' => \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/js/backend.min.js'), + 'javascript' => 'system/modules/isotope/assets/js/backend.js', ), )); $GLOBALS['BE_MOD']['accounts']['member']['tables'][] = \Isotope\Model\Address::getTable(); -if ('BE' === TL_MODE) -{ - $GLOBALS['TL_CSS'][] = \Haste\Util\Debug::uncompressedFile('system/modules/isotope/assets/css/backend.min.css|static'); +if ('BE' === TL_MODE) { + $GLOBALS['TL_CSS'][] = 'system/modules/isotope/assets/css/backend.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' - ); + $GLOBALS['TL_CSS'][] = 'system/modules/isotope/assets/css/backend-svg.css|static'; } } diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index c4e12ae307..5a4a618b53 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -24,6 +24,7 @@ Version 2.4.2 (2017-??-??) - Group and page selection in products backend did not reload (#1801) - Help wizard was empty for payment, shipping, gallery and producttype (#1821) - TinyMCE options were missing in textarea attribute (#1815) +- Back button was not visible in Contao 4.4 picker (#1813) Version 2.4.1 (2017-03-07) diff --git a/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php b/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php index ed8ef5f1c8..3247ab7356 100755 --- a/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php +++ b/system/modules/isotope/library/Isotope/Backend/ProductCollection/Callback.php @@ -11,7 +11,6 @@ namespace Isotope\Backend\ProductCollection; -use Haste\Util\Debug; use Haste\Util\Format; use Isotope\Frontend; use Isotope\Isotope; @@ -80,7 +79,7 @@ public function generateOrderDetails($dc) return ''; } - $GLOBALS['TL_CSS'][] = Debug::uncompressedFile('system/modules/isotope/assets/css/print.min.css|print'); + $GLOBALS['TL_CSS'][] = 'system/modules/isotope/assets/css/print.css|print'; // Try to find a order details module or create a dummy FE module model if (($config = $objOrder->getRelated('config_id')) === null From f8d5578e8f61698fad5e04646313c202a01704df Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 09:17:06 +0200 Subject: [PATCH 23/27] Do not ignore the .htaccess file in isotope folder --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 1ed8223277..ca2b160ce6 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ # Isotope ignoring rules !isotope/ isotope/* +!isotope/.htaccess !isotope/index.html !system/ system/* From d4f76d7345cf123c0dbab52e4b18482a064946b8 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 09:26:35 +0200 Subject: [PATCH 24/27] Pass DataContainer object when generating widgets (#1758) --- system/modules/isotope/docs/CHANGELOG-2.4.md | 1 + .../library/Isotope/Backend/Product/AssetImport.php | 12 +++++++----- .../Isotope/Backend/Product/VariantGenerator.php | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 5a4a618b53..77c9d4e958 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -7,6 +7,7 @@ Version 2.4.2 (2017-??-??) ### Improved - Updated navigation icon for Contao 4.4 backend (#1808) +- Pass DataContainer object when generating widgets (#1758) ### Fixed diff --git a/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php b/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php index bcc601837e..79b5bfe254 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/AssetImport.php @@ -20,9 +20,9 @@ class AssetImport extends \Backend * * @return string */ - public function generate() + public function generate($dc) { - $objTree = new \FileTree(\FileTree::getAttributesFromDca($GLOBALS['TL_DCA']['tl_iso_product']['fields']['source'], 'source', null, 'source', 'tl_iso_product')); + $objTree = new \FileTree(\FileTree::getAttributesFromDca($GLOBALS['TL_DCA']['tl_iso_product']['fields']['source'], 'source', null, 'source', 'tl_iso_product', $dc)); // Import assets if (\Input::post('FORM_SUBMIT') == 'tl_iso_product_import' && \Input::post('source') != '') { @@ -51,9 +51,11 @@ public function generate()
-

- ' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_iso_product']['source'][1]) ? ' -

' . $GLOBALS['TL_LANG']['tl_iso_product']['source'][1] . '

' : '') . ' +
+

+ ' . $objTree->generate() . (strlen($GLOBALS['TL_LANG']['tl_iso_product']['source'][1]) ? ' +

' . $GLOBALS['TL_LANG']['tl_iso_product']['source'][1] . '

' : '') . ' +
diff --git a/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php b/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php index a45b767e3e..a45207eb1d 100755 --- a/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php +++ b/system/modules/isotope/library/Isotope/Backend/Product/VariantGenerator.php @@ -38,7 +38,7 @@ public function generate($dc) $GLOBALS['TL_DCA'][$table]['fields'][$attribute]['eval']['mandatory'] = true; $GLOBALS['TL_DCA'][$table]['fields'][$attribute]['eval']['multiple'] = true; - $arrField = \CheckBox::getAttributesFromDca($GLOBALS['TL_DCA'][$table]['fields'][$attribute], $attribute, null, $attribute, $table); + $arrField = \CheckBox::getAttributesFromDca($GLOBALS['TL_DCA'][$table]['fields'][$attribute], $attribute, null, $attribute, $table, $dc); foreach ($arrField['options'] as $k => $option) { if ($option['value'] == '') { From 499f3e2d1f6aa300bd4b7c27807581d9adf88e4b Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 09:35:56 +0200 Subject: [PATCH 25/27] Transifex sync --- .../isotope/languages/de/tl_iso_tax_class.xlf | 2 +- .../modules/isotope/languages/tr/default.xlf | 1762 +++++++++++++++++ .../isotope/languages/tr/exception.xlf | 34 + .../modules/isotope/languages/tr/explain.xlf | 54 + .../isotope/languages/tr/iso_upgrade.xlf | 18 + .../modules/isotope/languages/tr/modules.xlf | 306 +++ .../isotope/languages/tr/tl_iso_address.xlf | 242 +++ .../isotope/languages/tr/tl_iso_attribute.xlf | 726 +++++++ .../languages/tr/tl_iso_attribute_option.xlf | 110 + .../isotope/languages/tr/tl_iso_baseprice.xlf | 74 + .../isotope/languages/tr/tl_iso_config.xlf | 583 ++++++ .../isotope/languages/tr/tl_iso_document.xlf | 130 ++ .../isotope/languages/tr/tl_iso_download.xlf | 130 ++ .../isotope/languages/tr/tl_iso_gallery.xlf | 326 +++ .../isotope/languages/tr/tl_iso_group.xlf | 106 + .../isotope/languages/tr/tl_iso_integrity.xlf | 78 + .../isotope/languages/tr/tl_iso_label.xlf | 74 + .../languages/tr/tl_iso_orderstatus.xlf | 138 ++ .../isotope/languages/tr/tl_iso_payment.xlf | 842 ++++++++ .../isotope/languages/tr/tl_iso_product.xlf | 499 +++++ .../languages/tr/tl_iso_product_category.xlf | 26 + .../tr/tl_iso_product_collection.xlf | 219 ++ .../languages/tr/tl_iso_product_price.xlf | 110 + .../languages/tr/tl_iso_producttype.xlf | 246 +++ .../languages/tr/tl_iso_related_category.xlf | 58 + .../languages/tr/tl_iso_related_product.xlf | 86 + .../isotope/languages/tr/tl_iso_shipping.xlf | 338 ++++ .../isotope/languages/tr/tl_iso_tax_class.xlf | 110 + .../isotope/languages/tr/tl_iso_tax_rate.xlf | 186 ++ .../isotope/languages/tr/tl_maintenance.xlf | 22 + .../isotope/languages/tr/tl_member.xlf | 14 + .../isotope/languages/tr/tl_module.xlf | 574 ++++++ .../languages/tr/tl_nc_notification.xlf | 58 + .../modules/isotope/languages/tr/tl_page.xlf | 42 + .../isotope/languages/tr/tl_settings.xlf | 22 + .../modules/isotope/languages/tr/tl_user.xlf | 134 ++ .../isotope/languages/tr/tl_user_group.xlf | 10 + .../modules/isotope/languages/tr/tokens.xlf | 122 ++ .../isotope_reports/languages/tr/default.xlf | 214 ++ .../isotope_reports/languages/tr/modules.xlf | 14 + .../languages/tr/tl_iso_orderstatus.xlf | 10 + .../isotope_reports/languages/tr/tl_user.xlf | 14 + .../isotope_rules/languages/tr/default.xlf | 34 + .../isotope_rules/languages/tr/modules.xlf | 14 + .../languages/tr/tl_iso_rule.xlf | 518 +++++ 45 files changed, 9428 insertions(+), 1 deletion(-) create mode 100644 system/modules/isotope/languages/tr/default.xlf create mode 100644 system/modules/isotope/languages/tr/exception.xlf create mode 100644 system/modules/isotope/languages/tr/explain.xlf create mode 100644 system/modules/isotope/languages/tr/iso_upgrade.xlf create mode 100644 system/modules/isotope/languages/tr/modules.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_address.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_attribute.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_attribute_option.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_baseprice.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_config.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_document.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_download.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_gallery.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_group.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_integrity.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_label.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_orderstatus.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_payment.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_product.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_product_category.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_product_collection.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_product_price.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_producttype.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_related_category.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_related_product.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_shipping.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_tax_class.xlf create mode 100644 system/modules/isotope/languages/tr/tl_iso_tax_rate.xlf create mode 100644 system/modules/isotope/languages/tr/tl_maintenance.xlf create mode 100644 system/modules/isotope/languages/tr/tl_member.xlf create mode 100644 system/modules/isotope/languages/tr/tl_module.xlf create mode 100644 system/modules/isotope/languages/tr/tl_nc_notification.xlf create mode 100644 system/modules/isotope/languages/tr/tl_page.xlf create mode 100644 system/modules/isotope/languages/tr/tl_settings.xlf create mode 100644 system/modules/isotope/languages/tr/tl_user.xlf create mode 100644 system/modules/isotope/languages/tr/tl_user_group.xlf create mode 100644 system/modules/isotope/languages/tr/tokens.xlf create mode 100644 system/modules/isotope_reports/languages/tr/default.xlf create mode 100644 system/modules/isotope_reports/languages/tr/modules.xlf create mode 100644 system/modules/isotope_reports/languages/tr/tl_iso_orderstatus.xlf create mode 100644 system/modules/isotope_reports/languages/tr/tl_user.xlf create mode 100644 system/modules/isotope_rules/languages/tr/default.xlf create mode 100644 system/modules/isotope_rules/languages/tr/modules.xlf create mode 100644 system/modules/isotope_rules/languages/tr/tl_iso_rule.xlf diff --git a/system/modules/isotope/languages/de/tl_iso_tax_class.xlf b/system/modules/isotope/languages/de/tl_iso_tax_class.xlf index 5fade3c11b..f2a8e726bd 100644 --- a/system/modules/isotope/languages/de/tl_iso_tax_class.xlf +++ b/system/modules/isotope/languages/de/tl_iso_tax_class.xlf @@ -19,7 +19,7 @@ Tax rate included with product price - Steuerklasse im Produktpreis enthalten + Steuersatz 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. diff --git a/system/modules/isotope/languages/tr/default.xlf b/system/modules/isotope/languages/tr/default.xlf new file mode 100644 index 0000000000..d91ae6fa26 --- /dev/null +++ b/system/modules/isotope/languages/tr/default.xlf @@ -0,0 +1,1762 @@ + + + + + Name "%s" is reserved for system use. Please choose a different name. + "%s" ismi sistem kullanımı için ayrılmıştır. Lütfen farklı bir ad seçin. + + + No store configuration available + Mağaza yapılandırması yok + + + Please create a default store configuration. + Lütfen bir varsayılan mağaza yapılandırması oluşturun. + + + You have not yet placed any orders. + Henüz bir sipariş vermedin. + + + The requested order was not found. + İstenen sipariş bulunamadı. + + + You must be logged in to checkout. + Ödeme yapmak için giriş yapmalısınız. + + + A variant with this attributes is already available. Please select another combination. + Bu özelliklere sahip bir çeşit zaten mevcuttur. Lütfen başka bir kombinasyon seçin. + + + Please enter whole numbers or decimals signed with + or - and optionally with a percentage. + Lütfen + veya - ve isteğe bağlı olarak yüzde ile imzalanmış tam sayıları veya ondalık sayıları girin. + + + Please enter whole numbers or decimals optionally with a percentage. + Lütfen tam sayıları veya ondalık sayıları isteğe bağlı olarak yüzde cinsinden girin. + + + Checkout failed. Please try again or choose another payment method. + Ödeme başarısız oldu. Lütfen tekrar deneyin veya başka bir ödeme yöntemi seçin. + + + You have no address book entries. + Adres defteri girişiniz yok. + + + The minimum order amount is %s. Please add more products before checkout. + Asgari sipariş miktarı %s. Ödemeden önce lütfen daha fazla ürün ekleyin. + + + The minimum quantity for "%s" is %s items. Please check your shopping cart. + "%s" ürünü için minimum sipariş adedi %s olmalıdır. Lütfen alışveriş sepetinizi kontrol edin. + + + This image has already been assigned to the fallback language. + Bu resim, geri dönüşüm diline zaten atandı. + + + Select an appropriate field validation (date, time, date and time) to enable the date picker. + Tarih seçiciyi etkinleştirmek için uygun bir alan doğrulama (tarih, saat, tarih ve saat) seçin. + + + The selected folder is empty. + Seçilen klasör boş. + + + User checkout not allowed + Kullanıcının ödemesine izin verilmiyor + + + This product is no longer available. + Bu ürün artık mevcut değil. + + + There are errors in your products. + Ürünlerinizde hatalar var. + + + Please resolve the errors in your cart before checking out. + Lütfen kontrol etmeden önce sepetinizdeki hataları çözün. + + + You cannot configure the same attribute multiple times. + Aynı özniteliği birden fazla düzenleyemezsiniz. + + + The uploaded file is no longer available. + Yüklenen dosya artık mevcut değil. + + + Only show this group + Bu grubu yalnızca göster + + + Groups + Gruplar + + + Pages + Sayfalar + + + Back to the group picker + Grup seçicisine geri dön + + + Show all groups + Tüm grupları göster + + + There are no variants for this product. + Bu ürün için herhangi bir çeşit bulunmamaktadır. + + + Duplicate Fallback + Yedek Çoğalt + + + Order no %s / %s + Sipariş no %s / %s + + + Your payment is being processed. Please be patient... + Ödemeniz işleniyor. Lütfen sabırlı olun... + + + No files uploaded. + Hiçbir dosya yüklenmedi. + + + The file could not be uploaded for unknown reason. Please check the system log. + Dosya bilinmeyen bir nedenle yüklenemedi. Lütfen sistem günlüğünü kontrol edin. + + + Drop files here to upload + Yüklemek istediğiniz dosyaları buraya sürükleyin + + + Upload files + Dosyaları yükle + + + Processing dropped files... + Sürüklenen dosyalar işleniyor... + + + Some records could not be deleted. + Bazı kayıtlar silinemedi. + + + Some records could not be deleted and have been unpublished instead. + Bazı kayıtlar silinemedi ve bunun yerine yayınlanmamış durumda. + + + Quantity + Adet + + + Tax-free + Vergisiz + + + search products + ürünleri ara + + + Your downloadable products + İndirilebilir ürünleriniz + + + <span class="from">From</span> %s + <span class="from">Kimden</span> %s + + + View Details + Detayları Gör + + + Reorder + Yeniden sipariş ver + + + Products Per Page + Sayfa başına ürün + + + Keywords + Anahtar kelimeler + + + Submit + Gönder + + + Clear Filters + Filtreleri Sıfırla + + + Update + Güncelle + + + Add To Cart + Sepete ekle + + + Add All To Cart + Hepsini sepete ekle + + + Update Cart + Sepeti Güncelle + + + Add To Favorites + Favorilere Ekle + + + Remove From Favorites + Favorilerden Kaldır + + + Order By: + Sıralama türü: + + + No products have been found. + Hiçbir ürün bulunamadı. + + + Back + Geri + + + Continue + Devam et + + + Order + Sipariş + + + No categories are associated with this product. + Bu üründe kategori bulunmamaktadır. + + + Submit + Gönder + + + There are no items in your favorites list. + Favoriler listenizde hiçbir öğe yok. + + + There are no items in your cart. + Sepetinizde hiç ürün yok. + + + The selected product has been added to your favorites. + Seçilen ürün favorilerinize eklendi. + + + The selected product has been removed to your favorites. + Seçilen ürün favorilerinize kaldırılmıştır. + + + The selected product has been added to your shopping cart. + Seçilen ürün alışveriş sepetinize eklendi. + + + The products from your last visit have been readded. Please review your shopping cart items. + Son ziyaretinizdeki ürünler yeniden eklendi. Lütfen alışveriş sepeti öğelerinizi inceleyin. + + + The products of the selected order have been added to your shopping cart. + Seçilen siparişin ürünleri alışveriş sepetinize eklendi. + + + Edit %s + Düzenle %s + + + Edit + Düzenle + + + Remove + Sil + + + Remove %s from your cart + %s ürününü sepetten sil + + + Order Subtotal: + Sipariş Ara Tutarı: + + + Shipping (%s) + Nakliye (%s) + + + Payment (%s) + Ödeme (%s) + + + Order Total: + Sipariş Toplamı: + + + No payment options are currently available + Şu anda ödeme seçeneği mevcut değil + + + No shipping options are currently available. + Şu anda hiçbir nakliye seçeneği mevcut değildir. + + + No orders emails found. + Hiçbir sipariş e-postası bulunamadı. + + + No orders found. + Sipariş bulunamadı. + + + <br />%s downloads remaining + <br />kalan indirme %s + + + Shopping Cart + Alışveriş Sepeti + + + Proceed to Checkout + Ödemeye Git + + + Continue shopping + Alışverişe devam et + + + Update Cart + Sepeti Güncelle + + + Order Status: %s + Sipariş Durumu : %s + + + Go back to step "%s" + "%s" adımına dön + + + Create New Address + Yeni Adres Oluştur + + + Use billing address + Fatura adresini kullan + + + Use customer address + Müşteri adresini kullan + + + Different shipping address + Farklı gönderim adresi + + + Edit + Düzenle + + + Delete + Sil + + + Do you really want to delete this address? This cannot be undone. + Bu adresi gerçekten silmek istiyor musun? Bu geri alınamaz. + + + Invoice + Fatura + + + Status + Durum + + + Order date + Sipariş tarihi + + + Order number + Sipariş tarihi + + + Description + Açıklama + + + Quantity + Adet + + + Price + Fiyat + + + Total + Toplam + + + lo to hi + düşükten yükseğe + + + hi to lo + yüksekten düşüğe + + + A to Z + A'dan Z'ye + + + Z to A + Z'den A'ya + + + earlier to later + yeniden eskiye + + + later to earlier + eskiden yeniye + + + Processing payment + Ödeme İşlemi + + + You will be redirected to the payment gateway website. + Ödeme ağ geçidi web sitesine yönlendirileceksiniz. + + + Pay now + Şimdi öde + + + Please click on the "Pay now" button to continue. + Devam etmek için "Şimdi öde" tuşuna basın + + + Click here to view this PayPal transaction online + Bu PayPal işlemini çevrimiçi görüntülemek için tıklayın + + + 1 Product + 1 Ürün + + + %s Products + %s Ürün + + + Enter your shipping information or select an existing address. + Gönderim bilgilerinizi girin veya var olan bir adresi seçin. + + + Enter your billing information or select an existing address. + Fatura bilgilerinizi girin veya varolan bir adresi seçin. + + + Enter your billing information + Fatura bilgilerinizi girin + + + Enter your customer information or select an existing address. + Müşteri bilgilerinizi girin veya mevcut bir adresi seçin. + + + Enter your customer information + Müşteri bilgilerinizi girin + + + Select a shipping method. + Bir nakliye şekli seçin + + + Please select a shipping method. + Lütfen bir nakliye şekli seçin + + + Enter your payment information. + Ödeme bilgilerinizi girin. + + + Please select a payment method. + Lütfen bir ödeme şekli seçin. + + + Review and confirm your order details. + Sipariş ayrıntılarınızı gözden geçirin ve onaylayın. + + + Address + Adres + + + Shipping + Nakliye + + + Payment + Ödeme + + + Review + Gözden Geçirme + + + Billing Address + Fatura Adresi + + + Shipping Address + Nakliye Adresi + + + Billing & Shipping Address + Fatura Adresi ve Nakliye Adresi + + + Customer Address + Müşteri Adresi + + + Shipping Method + Nakliye Şekli + + + Payment Method + Ödeme Şekli + + + Order Review + Siparişi Gözden Geçirme + + + Change + Değiştir + + + Credit card number + Kredi Kartı Numarası + + + Credit card type + Kredi Kartı tipi + + + CCV number (3 or 4 digit code) + CCV - güvenlik numarası (3 ya da 4 rakam olur) + + + Expiration month + Son kullanma ayı + + + Expiration year + Son kullanma yılı + + + Payment module not found! + Ödeme modülü bulunamadı! + + + Shipping module not found! + Nakliye modülü bulunamadı! + + + This payment module does not provide additional information. + Bu ödeme modülü ek bilgi sağlamıyor. + + + This shipping module does not provide additional information. + Bu nakliye modülü ek bilgi sağlamıyor. + + + Use default value + Varsayılan değeri kullan + + + active step: + geçerli adım: + + + Loading products... + Ürünler yükleniyor... + + + Your browser does not support JavaScript. Please <a href="%s">click here</a> to load the product list. + Tarayıcınız JavaScript'i desteklemiyor. Ürün listesini yüklemek için <a href="%s"> burayı tıklayın </a>. + + + No files in this folder + Bu klasörde dosya yok + + + Imported file %s for product "%s" + "%s" ürünü için içe aktarılan %s dosyası + + + The folder did not contain any files to be imported. + Klasör, içe aktarılacak herhangi bir dosya içermiyordu. + + + Loading product data … + Ürün bilgisi yükleniyor... + + + Store Config "%s" + Mağaza Yapılandırması "%s" + + + Splitted + Bölünmüş + + + You have %s order(s) with status "%s" + "%s" durumunda %s sipariş(ler)iniz var + + + Step %s of %s (%s) - + %s adımdan %s (%s) - + + + Minutes + Dakika + + + Hours + Saat + + + Days + Gün + + + Weeks + Hafta + + + Months + Ay + + + Years + Yıl + + + Introduction + Giriş + + + Welcome to Isotope eCommerce + Isotope eCommerce'e Hoş geldiniz + + + Isotope is the premier open source eCommerce solution for Contao. + Isotope, Contao için önde gelen açık kaynaklı bir e-ticaret çözümüdür. + + + 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> + Bu, yapılandırmanın çoğunun gerçekleşeceği sayfadır. <strong>Bu sayfanın altından başlayıp sağdan sola doğru ve yukarı ilerlemelisiniz.</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! + Son haberler,yapılandırma kılavuzları ve profesyonel destek için resmi <a href="http://isotopeecommerce.org" target="_blank">Isotope eCommerce website</a> web sayfasını ziyaret edin. Bir şeyler geri vermeyi düşündüğünüz için çok teşekkürler! + + + The Isotope eCommerce Team + Isotope eCommerce Takımı + + + 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, %s'in <a href="http://isotopeecommerce.org/de/team.html" target="_blank">the Isotope eCommerce Takımı</a> ile ilişkili bir üründür. + + + by date added (ascending) + tarihe göre eklendi (artan) + + + by date added (descending) + tarihe göre eklendi (azalan) + + + by date updated (ascending) + tarihe göre güncellendi (artan) + + + by date updated (descending) + tarihe göre güncellendi (azalan) + + + by product name (ascending) + ürün adına göre (artan) + + + by product name (descending) + ürün adına göre (azalan) + + + by price (ascending) + fiyata göre (artan) + + + by price (descending) + fiyata göre (azalan) + + + Please fill in the shipping address. + Lütfen nakliye adresini doldurun. + + + None of the products in your shopping cart require shipping! + Sepetinizdeki hiçbir ürün nakliye gerektirmiyor! + + + The following shipping methods are available for your current shopping cart and the shipping address details you provided: + Aşağıdaki nakliye yöntemleri mevcut alışveriş sepetiniz ve verdiğiniz gönderim adresi ayrıntıları için kullanılabilir: + + + Save address + Adresi kaydet + + + 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 + Düz fiyatlı gönderim + + + This is the default shipping method for regular shipping. + Bu, normal nakliye için varsayılan gönderim yöntemidir. + + + Shipping group + Nakliye grubu + + + With this method, you can group multiple shipping methods into one and calculate the price based on them. + Bu yöntemle, birden fazla nakliye yöntemini gruplayabilir ve fiyat esas alınarak fiyatını hesaplayabilirsiniz. + + + Cash + Nakit + + + Use this for all offline processed payment. + Tüm çevrimdışı işlenmiş ödemeler için bunu kullanın. + + + Paybyway + Paybyway + + + Implements payment provider <a href="https://www.paybyway.com/en/" target="_blank">Paybyway</a>. + Ödeme sağlayıcısını <a href="https://www.paybyway.com/en/" target="_blank"> Paybyway </a> uygular. + + + PayPal Standard Checkout + PayPal Standart Ödeme + + + This PayPal module supports IPN (Instant Payment Notifications). + Bu PayPal modülü, IPN'yi (Anında Ödeme Bildirimleri) destekler. + + + PostFinance + PostFinance + + + Payment gateway for the swiss post payment system that supports various card types. The store will be instantly notified about successfull transactions. + Çeşitli kart türlerini destekleyen İsviçre ödeme sistemi için ödeme ağ geçidi. Mağaza, başarılı işlemler hakkında anında bilgilendirilecek. + + + VIVEUM + VIVEUM + + + Payment gateway for VIVEUM Zahlungssysteme GmbH. + VIVEUM Zahlungssysteme GmbH şirketinin ürün yelpazesi arasında. + + + Datatrans + Datatrans + + + A payment module for the swiss payment gateway "Datatrans". + İsviçre ödeme ağ geçidi "Datatrans" için bir ödeme modülü. + + + Innopay + Innopay + + + A payment module for the swiss payment gateway "Innocard". + İsviçre ödeme ağ geçidi "Innocard" için bir ödeme modülü. + + + Sparkasse + Sparkasse + + + Saferpay + Saferpay + + + BillPay (using Saferpay) + BillPay (Saferpay kullanır) + + + sofortüberweisung.de + sofortüberweisung.de + + + ExperCash + ExperCash + + + ePay + ePay + + + Implements payment provider <a href="http://www.epay.eu" target="_blank">ePay</a>. + Ödeme sağlayıcısını <a href="http://www.epay.eu" target="_blank"> ePay </a> sağlar. + + + 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>). + Çeşitli ödeme sağlayıcıları için bir ödeme ağ geçidi (ör. <a href="http://www.payunity.com" target="_blank"> PayUnity.PAY </a>). + + + Standard + Standart + + + Default gallery + Varsayılan galeri + + + <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>Tam boyutlu resimler için lightbox / mediabox'u kullanır. Sayfa düzen yapılandırmanızda uygun "moo_" şablonunu seçtiğinizden emin olun.</p><p>Bağlantı hedefine bir boru kullanarak bir "rel" özelliği sunabilirsiniz (örn. "tl_files/video.mov | lightbox [ 400 300] "). "Rel" özelliği sağlanmazsa, bağlantı yeni bir pencerede açılacaktır.</p> + + + Inline gallery + Satır içi galeri + + + Clicking on a gallery image will replace the main image. + Bir galeri resmini tıklamak onu ana resmin yerine koyacak. + + + Elevate Zoom gallery + Elevate Zoom galeri + + + 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. + Fareyle üzerine gelerek görüntüyü büyüten bir galeri. Buradan <a href="http://www.elevateweb.co.uk/image-zoom" target="_blank">script websitesi</a> daha fazla bilgi alabilirsiniz. + + + Standard product + Standart ürün + + + A default product. Select this if nothing else matches. + Varsayılan bir ürün. Başka bir şey eşleşmiyorsa bunu seçin. + + + European VAT Number (<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + Avrupa KDV Numarası(<a href="http://ec.europa.eu/taxation_customs/vies/vieshome.do" target="_blank">VIES</a>) + + + MasterCard + MasterCard + + + Visa + Visa + + + American Express + American Express + + + Discover + Keşfet + + + 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 + Kodlanmış Hesap Numarası + + + Universal Air Travel Program + Universal Air Travel Program + + + Maestro International + Maestro International + + + GE Money UK + GE Money UK + + + Text field + Metin alanı + + + A single-line input field for a short or medium text. + Kısa veya orta uzunlukta metin için tek satırlık bir giriş alanı. + + + Textarea + Büyük metin alanı + + + A multi-line input field for a medium or long text. + Orta veya uzun bir metin için çok satırlı bir giriş alanı. + + + Select menu + Menü seçin + + + A single- or multi-line drop-down menu.<br /><i>This field type is suitable for product variants.</i> + Tek veya çok satırlı bir açılır menü.<br /><i>Bu alan tipi, ürün çeşitleri için uygundur.</i> + + + Radio button menu + Radyo düğmesi menüsü + + + A list of multiple options from which one can be selected.<br /><i>This field type is suitable for product variants.</i> + Birinin birden çok seçenek seçebileceği bir liste.<br /><i>Bu alan tipi, ürün çeşitleri için uygundur.</i> + + + Checkbox menu + Onay kutusu menüsü + + + A list of multiple options from which any can be selected. + Seçilebilecek birden çok seçenek içeren bir liste. + + + Media Manager + Medya Yöneticisi + + + Upload images and other files to the Isotope eCommerce file system. Output is processed trough an IsotopeGallery class. + Görüntüleri ve diğer dosyaları sotope eCommerce dosya sistemine yükleyin. Çıktı, bir IsotopeGallery sınıfıyla işlenir. + + + Conditional Select-Menu + Şartlı Seçme Menüsü + + + show select-options based on another select menu. + Seçenekleri, başka bir seçme menüsüne dayalı olarak gösterin. + + + File tree + Dosya Ağacı + + + A file tree for single or multiple files and folders. + Tek veya birden fazla dosya ve klasör için bir dosya ağacı. + + + Downloads + İndirmeler + + + Download files from the product, e.g. manuals, data sheets etc. + Dosyaları üründen indirin, ör. kullanım klavzuları, veri tabloları vs. + + + File upload + Dosya yükleme + + + A single-line input field to upload a local file to the server. + Sunucuya yerel bir dosya yüklemek için tek satırlık bir giriş alanı. + + + Video/Audio + Video / Ses + + + Generates a video or audio player. + Bir video oynatıcı veya müzik çalar oluşturur. + + + Fine Uploader + Dosya Yükleyici + + + A javascript file uploader to upload a local file to the server. + Sunucuya yerel bir dosya yüklemek için bir javascript dosyası yükleyicisi. + + + 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 - Türk Lirası + + + 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 - Amerikan Doları + + + 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/tr/exception.xlf b/system/modules/isotope/languages/tr/exception.xlf new file mode 100644 index 0000000000..6d65de3ab9 --- /dev/null +++ b/system/modules/isotope/languages/tr/exception.xlf @@ -0,0 +1,34 @@ + + + + + Isotope eCommerce - data loss protection + Isotope eCommerce - veri kaybı koruması + + + 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. + Yüklemeniz de eski bir Isotope eCommerce sürümü algılandı. Veritabanını şimdi güncellerseniz, mevcut müşteri verileriniz ve yapılandırmanız kaybolabilir. Bunu önlemek için, veritabanı güncelleme araçları otomatik olarak kilitlendi. + + + There are multiple options to get your installation back: + Yüklemenizi geri almak için birden fazla seçenek vardır: + + + 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. + Bir yedek oluşturun, ardından tamamen Isotope'u kaldırın, tüm veritabanı tablolarını ve ilgili uzantılarını kaldırın. Daha sonra tekrar Isotope eCommerce 2.0 kurabilirsiniz. + + + 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>. + Şu anda, bir güncelleme aracı geliştirmek için bağış toplamaya çalışıyoruz. Ne kadar çok kişi yardım ederse, eski yüklemelerini o kadar erken güncelleyebiliriz. <a href="http://isotopeecommerce.com/en/" target="_blank"> Lütfen katılmayı bir düşünün </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>. + Verilerinizi manuel olarak taşımak için deneyimli bir Contao geliştiricisinden yardım alın. <a href="http://contao.org/en/" target="_blank"> Contao'nun iş ortağı listesine </a> göz atmanızı öneririz. + + + <a href="http://isotopeecommerce.org/" target="_blank">Visit our website</a> for more information about Isotope eCommerce. + Isotope eCommerce hakkında daha fazla bilgi için <a href="http://isotopeecommerce.org/" target="_blank"> web sitemizi ziyaret edin </a>. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/explain.xlf b/system/modules/isotope/languages/tr/explain.xlf new file mode 100644 index 0000000000..9ca9b281cc --- /dev/null +++ b/system/modules/isotope/languages/tr/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"> + Diğer Contao modüllerinin aksine, bir ürün ayrıntılarını görüntülerken bir kullanıcı okuyucu sayfasına yönlendirilmez. Güzel takma adlar sorununu çözmek ve bir ürünün detay sayfasını öğrenmek için yeni bir çözüm getirdik.<br> + <br> + Okuyucu sayfası (takma ad) ürün için bir kategori olarak seçtiğinizle daima aynı sayfadır. Bir ürünün ayrıntılarını görüntülemek için iki seçenek vardır:<br> + <br> + <strong>Seçenek 1:</strong><br> + Site yapısında bir okuyucu sayfası ayarlamayın. Listeyi ve okuyucu modülünü aynı sayfaya yerleştirin. Bir ürün takma adı bulunup bulunmadığını gizlemek için liste modülüne bildirin (modül ayarlarında bir onay kutusu bulunur). Okuyucu bulunmazsa, okuyucu otomatik olarak görünmez olur.<br> + <u>Avantajı:</u> Kurmak oldukça basit<br> + <u>Dezavantajı:</u> Okuyucu ve listenin düzeni aynı olacak ve iki durum için farklı makale içeriğine sahip olamazsınız..<br> + <br> + <strong>Seçenek 2:</strong><br> +Site yapısındaki her liste sayfası için bir okuyucu sayfası ayarlayın (ürün kategorisi). <I> Okuyucu ayarının miras alınmadığına dikkat edin! </ I> Okuyucu modülünü her zamanki gibi bu sayfaya ekleyin. <br> +     URL'de bir ürün takma adı bulunursa, izotop şimdi bu sayfayı siteyi oluşturmak için kullanacaktır. Diğer ad hala olsa liste sayfasından biridir..<br> + <u>Avantajı:</u> Okuyucu sayfası ve daha sonra liste sayfası için farklı sayfa içeriğine ve düzenine (ör. Farklı sütunlar) sahip olabilirsiniz.<br> + <u>Dezavantajı:</u>Sahip olduğunuz her liste (kategori) sayfası için bir okuyucu sayfası oluşturmanız gerekir ZORUNLU. Ayarı KESİNLİKLE DEĞİLDİR. +</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">Yeni bir resim yüklemek için dosyayı seçin ve ürünü kaydedin. Başarılı bir şekilde yüklendikten sonra, resmin bir ön izlemesi görüntülenir ve yanından, alternatif metin ve açıklama girebilirsiniz. Birden çok resim için sağdaki okları tıklayabilir ve sipariş özelliklerini değiştirebilir, en iyi resim her bir ürünün ana görüntüsü olarak kullanabilirsiniz.</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. + Isotope eCommerce ile ürün çeşitlerini kullanmak için öncelikle özellikleri yapılandırmanız gerekir. <br> Lütfen daha fazla bilgi için <a href="http://isotopeecommerce.org/en/manual.html" target="_blank" style="text-decoration:underline"> öznitelik ayarlarına kılavuzuna </a> bakın. + + + 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=""> + Pencerenin konumlandırılması, bir varsayılan konum ayarlayarak ve daha sonra ayarlamak için x ve y kaydırıcısını kullanarak yapılabilir. Ayrıca pencereyi bir konteynere yerleştirebilirsiniz - Daha fazla bilgi için bkz:<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/tr/iso_upgrade.xlf b/system/modules/isotope/languages/tr/iso_upgrade.xlf new file mode 100644 index 0000000000..2eca2d0c8f --- /dev/null +++ b/system/modules/isotope/languages/tr/iso_upgrade.xlf @@ -0,0 +1,18 @@ + + + + + Migration Assistant (Version: %s) + Taşıma Yardımcısı (Sürüm: %s) + + + Update + Güncelle + + + 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 , bir galeri için lightbox oluşturulması için hangi JavaScript şablonunun sorumlu olduğunu bilmelidir. Lütfen web sitenizde MooTools veya jQuery kullanıp kullanmadığınıza bağlı olarak, her galeri için uygun şablonu seçin (genellikle <i>moo_mediabox</ i> veya <i>j_colorbox</ i>). Bunu daha sonra galeri ayarlarında değiştirebilirsiniz. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/modules.xlf b/system/modules/isotope/languages/tr/modules.xlf new file mode 100644 index 0000000000..a1090385d9 --- /dev/null +++ b/system/modules/isotope/languages/tr/modules.xlf @@ -0,0 +1,306 @@ + + + + + Isotope eCommerce + Isotope eCommerce + + + Product management + Ürün yönetimi + + + Manage products for your Isotope eCommerce shop + Isotope eCommerce için ürünlerinizi yönetin + + + Orders + Siparişler + + + See and manage orders for your shop + Mağazanızdaki ürünleri görün ve yönetin + + + Store configuration + Mağaza yapılandırması + + + Setup and configure Isotope eCommerce to your needs + Isotope eCommerce'i ihtiyaçlarınıza göre ayarlayın ve yapılandırın + + + Isotope eCommerce + Isotope eCommerce + + + Product Filter + Ürün Filtresi + + + Define individual filters for Isotope such as category trees and product attribute filters. + Isotope için kategori ağaçlarını ve ürün nitelik filtrelerini tanımlayın. + + + Cumulative Filter + Toplu Filtre + + + Provides a cumulative filter so visitors can cut down the product choice by clicking on multiple conditions. + Ziyaretçilerin birden çok şartı seçerek ürün seçimini azaltabilmesi için toplu bir filtre sağlar. + + + Product List + Ürün Listesi + + + 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. + Genel Liste modülü. Nitelikleri veya değerleri listelemek için kullanılabilir. Daha fazla detaylandırma özelliği sağlamak için diğer modüller (ör. Filtre Modülü) ile kombine edilebilir. + + + Product Variant List + Ürün Çeşit Listesi + + + Lists each variant of a product. Make sure you use the iso_list_variants template. + Bir ürünün her çeşidini listeler. iso_list_variants şablonunu kullandığınızdan emin olun. + + + Product Reader + Ürün Okuyucu + + + Product reader module. This is used to display product details. + Ürün okuyucu modülü. Bu, ürün ayrıntılarını görüntülemek için kullanılır + + + Favorites + Favoriler + + + Renders the list of products on the favorites list. + Sık kullanılanlar listesinde ürünlerin listesini oluşturur. + + + Shopping Cart + Alışveriş Sepeti + + + A fully-featured shopping cart module. Box or Full Display can be set by template selection. + Tam özellikli bir alışveriş sepeti modülü. Kutu veya Tam Ekran, nasıl olacağı şablon seçimi ile ayarlanabilir. + + + Checkout + Ödeme + + + Allow store customers to complete their transactions. + Mağaza müşterilerinin işlemlerini tamamlamalarına izin verin. + + + Address Book + Adres Defteri + + + Allow customers to manage their address book. + Müşterilerin adres defterini yönetmesine izin verin. + + + Order History + Sipariş Geçmişi + + + Order lister that allows customers to view their order history + Müşterilerin sipariş geçmişlerini görmelerini sağlayan özellik + + + Order Details + Sipariş Detayları + + + Order reader that allows customers to view order history details + Müşterilerin sipariş geçmişi detaylarını görüntüleyebilmelerini sağlayan sipariş okuyucusu + + + Store Config Switcher + Mağaza Yapılandırma Değiştirici + + + Switch between store configuration to change currency and other settings. + Para birimini ve diğer ayarları değiştirmek için mağaza yapılandırmaları arasında geçiş yapın. + + + Related products + İlgili ürünler + + + List products related to the current one. + Geçerli ürünle ilgili ürünleri listeleyin. + + + Messages + Mesajlar + + + Displays all Isotope messages if they have not been displayed elsewhere. + Başka bir yerde gösterilmediyse, tüm Isotope mesajlarını görüntüler. + + + Shipping cost calculator + Nakliye maliyeti hesaplayıcı + + + Displays a module to calculate the shipping costs before going to the checkout page. + Ödeme sayfasına gitmeden önce nakliye maliyetlerini hesaplamak için bir modül görüntüler. + + + Cart address + Sepet adresi + + + Displays a form to enter the cart address data that will be used to calculate prices. + Fiyatları hesaplamak için kullanılacak alışveriş sepeti adres verilerini girmek için bir form görüntüler. + + + Isotope eCommerce configuration (Version: %s) + Isotope eCommerce yapılandırması (Sürüm: %s) + + + Products + Ürünler + + + Attributes + Özellikler + + + Manage and create product attributes such as size, color, etc. + Boyut, renk vb. gibi ürün özelliklerini yönetin ve oluşturun. + + + Product types + Ürün tipleri + + + Manage and create product types from sets of attributes. + Özellik gruplarından ürün türlerini yönetin ve oluşturun. + + + Related categories + İlgili kategoriler + + + Define categories for product relations. + Ürün ilişkileri için kategorileri tanımlayın. + + + Galleries + Galeriler + + + Define how you want the images in your product to be rendered. + Ürününüzdeki görüntülerin nasıl oluşturulmasını istediğinizi tanımlayın. + + + Base prices + Taban fiyatlar + + + Define base price. + Taban fiyatı tanımlayın. + + + Checkout Flow + Ödeme Akışı + + + Shipping methods + Nakliye yöntemleri + + + Set up shipping methods. + Nakliye yöntemleri ayarların. + + + Payment methods + Ödeme yöntemleri + + + Set up payment methods. + Ödeme yöntemleri ayarlayın. + + + Tax classes + Vergi sınıfları + + + Set up Tax classes, which contain sets of Tax rates. + Vergi oranları içeren vergi sınıfları oluşturun. + + + Tax rates + Vergi oranları + + + Set up tax rates based on things like shipping/billing location and order total. + Nakliye / faturalandırma ve sipariş toplamı gibi şeyleri temel alan vergi oranlarını ayarlayın. + + + General settings + Genel ayarlar + + + Store configurations + Mağaza yapılandırmaları + + + Configure general settings for this store. + Bu mağazanın genel ayarlarını yapılandırın + + + Order status + Sipariş durumu + + + Define order status. + Sipariş durumu tanımlayın. + + + Notifications + Bildirimler + + + Use the Notification Center to manage emails etc. for Isotope eCommerce. + Isotope eCommerce'de e-postaları yönetmek için Bildirim Merkezi'ni kullanın. + + + Documents + Belgeler + + + Define documents. + Belgeleri tanımlayın. + + + Miscellaneous + Muhtelif + + + Translations + Çeviriler + + + Replace given labels for certain languages. + Belirli diller için verilen etiketleri değiştirin. + + + Integrity Check + Bütünlük Denetimi + + + Validate your shop configuration against common errors. + Mağazanızın yapılandırmasını genel hatalara karşı doğrulayın. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_address.xlf b/system/modules/isotope/languages/tr/tl_iso_address.xlf new file mode 100644 index 0000000000..bc285f395d --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_address.xlf @@ -0,0 +1,242 @@ + + + + + Store ID + Mağaza 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. + Farklı mağaza kimlikleri, birden fazla kök sitesinde bir mağaza grubu oluşturur. Üyelerin alışveriş sepeti ve adresleri, aynı mağaza kimliklerinde paylaşılacak. + + + Label + Etiket + + + Please enter a custom label for this address. + Lütfen bu adres için özel bir etiket girin. + + + Gender + Cinsiyet + + + Please choose the gender. + Lütfen cinsiyeti seçin. + + + Salutation + Selamlama + + + Please enter the salutation (Mr, Mrs, Dr., Prof.). + Lütfen selam vermeyi giriniz (Sayın, Dr., Prof.). + + + First name + Adınız + + + Please enter the first name. + Lütfen adınızı girin + + + Last name + Soyadınız + + + Please enter the last name. + Lütfen soyadınızı girin + + + Date of birth + Doğum tarihi + + + Please enter the date of birth. + Lütfen doğum tarihinizi girin + + + Company + Şirket + + + You can enter a company name here. + Lütfen şirketinizin adını girin + + + VAT No. + Vergi No. + + + Please enter a VAT number. + Lütfen vergi numaranızı girin + + + Street + Cadde + + + Please enter the street name and the street number. + Lütfen caddenizi ve cadde numaranızı girin + + + Street 2 + Sokak 2 + + + Enter a second street info if there's any. + Lütfen sokağınızı girin + + + Street 3 + Sokak 3 + + + Enter a third street info if there's any. + Diğer adres bilgileri + + + Postal code + Posta kodu + + + Please enter the postal code. + Lütfen posta kodunuzu girin + + + City + Şehir + + + Please enter the name of the city. + Lütfen bir şehir ismi girin + + + State + Eyalet/Bölge + + + Please enter the name of the state. + Lütfen bir eyalet/bölge ismi girin + + + Country + Ülke + + + Please select a country. + Bir ülke seçin + + + Phone number + Telefon numarası + + + Please enter the phone number. + Lütfen telefon numaranızı girin + + + E-mail address + E-posta adresi + + + Please enter a valid e-mail address. + Lütfen geçerli bir e-posta adresi girin + + + Default billing address + Varsayılan fatura adresi + + + Is this your default billing address? + Bu sizin varsayılan fatura adresiniz mi? + + + Default shipping address + Varsayılan teslimat adresi + + + Is this your default shipping address? + Bu sizin varsayılan teslimat adresiniz mi? + + + Store + Mağaza + + + Personal data + Kişisel bilgi + + + Address details + Adres detayları + + + Contact details + Kişi detayları + + + Default address + Varsayılan adres + + + Personal data + Kişisel bilgi + + + Address details + Adres detayları + + + Contact details + Kişi detayları + + + Default address + Varsayılan adres + + + New address + Yeni adres + + + Create a new address + Yeni Adres Oluştur + + + Edit address + Adresi düzenle + + + Edit address ID %s + %s ID'li adresi düzenle + + + Duplicate address + Adresi kopyala + + + Duplicate address ID %s + %s ID'li adresi kopyala + + + Delete address + Adresi sil + + + Delete address ID %s + %s ID'li adresi sil + + + Address details + Adres detayları + + + Show details of address ID %s + %s ID'li adresin detaylarını gör + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_attribute.xlf b/system/modules/isotope/languages/tr/tl_iso_attribute.xlf new file mode 100644 index 0000000000..5a5168559c --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_attribute.xlf @@ -0,0 +1,726 @@ + + + + + Name + Ad + + + Please enter a name for this attribute. + Lütfen bu nitelik için bir ad girin + + + Internal name + Dahili adı + + + Internal name is the database field name and must be unique. + Dahili ad veritabanı alanının adıdır ve benzersiz olmalıdır + + + Type + Tip + + + Please select a type for this attribute. + Lütfen bu nitelik için bir tip seçin. + + + Field Group + Alan Grubu + + + Select a field group that this attribute relates to (used to organize related fields into collapsible fieldset groups when editing products. + Ürünleri düzenlerken ilişkili alanları (daraltılmış alan kümesi gruplarını organize etmek için kullanılan bu nitelikle ilişkili bir alan grubu seçin. + + + Add to product variants wizard + Ürün çeşitleri sihirbazına ekle + + + If selected, this attribute will be added to the product variants wizard for use as a product variant option. + Bu seçilirse, bir ürün çeşidi seçeneği olarak kullanılmak üzere ürün seçenekleri sihirbazına eklenir. + + + Defined by customer + Müşteri tarafından tanımlanmıştır + + + Please select if this value defined by the customer (frontend). + Lütfen bu değeri müşteri tarafından (sitede) tanımlandığında seçin. + + + Description + Açıklama + + + The description is shown as a hint to the backend user. + Açıklama, arka plan ç kullanıcısına bir ipucu olarak gösterilir. + + + Options source + Kaynak seçenekleri + + + Choose where the options for this field should be loaded from. + Bu alana ilişkin seçeneklerin nereden yükleneceğini seçin. + + + Attribute Name (Single Option) + Nitelik Adı (Tek Seçenek) + + + Options Manager + Seçenek Yöneticisi + + + Product + Ürün + + + Custom database table (foreignKey) + Özel veritabanı tablosu (foreignKey) + + + Options Wizard (deprecated) + Seçenekler Sihirbazı (kullanımdan kaldırıldı) + + + Options + Seçenekler + + + 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! + Lütfen bir veya daha fazla seçenek girin. Bir seçeneği eklemek, taşımak veya silmek için düğmeleri kullanın. JavaScript yardımı olmadan çalışıyorsanız, siparişinizi değiştirmeden önce değişiklikleri kaydetmelisiniz! + + + Value + Değer + + + Label + Etiket + + + Default + Varsayılan + + + Group + Grup + + + Options + Seçenekler + + + Use the options manager to add your options to the field. + Alana seçeneklerinizi eklemek için seçenekler yöneticisini kullanın. + + + Include blank option + Boş seçeneği ekle + + + Check here to include a blank option in the select menu. + Seçim menüsüne boş bir seçenek eklemek için burayı kontrol edin. + + + Label for blank option + Boş seçenek etiketi + + + You can optionally enter a label for the blank option. If you do not enter anything, a dash (-) will be used. + Boş seçenek için isteğe bağlı olarak bir etiket girebilirsiniz. Hiçbir şey girmezseniz, çizgi (-) kullanılacaktır. + + + Mandatory field + Zorunlu alan + + + The field must be filled when editing a product. + Bir ürün düzenlenirken bu alan doldurulmalıdır. + + + Multiple selection + Çok seçim + + + Allow visitors to select more than one option. + Ziyaretçilerin birden fazla seçeneği seçmesine izin ver. + + + Size/Amount + Boyut / Miktar + + + Here you can set a limit, e.g. size of the select box or number of file uploads. + Burada bir sınır belirleyebilirsiniz, ör. Seçme kutusunun boyutu veya dosya yüklenmesinin sayısı. + + + Allowed file types + İzin verilen dosya tipleri + + + A comma separated list of valid file extensions. + Geçerli dosya uzantılarının virgülle ayrılmış bir listesi. + + + Use HTML editor + HTML editörü kullan + + + Select a tinyMCE configuration file to enable the rich text editor. + Zengin metin düzenleyicisini etkinleştirmek için bir tinyMCE yapılandırma dosyası seçin. + + + Multilingual + Çoklu dil + + + Check here if this field should be translated. + Bu alanın tercüme edilmesi gerekip gerekmediğini kontrol edin. + + + Input validation + Giriş doğrulama + + + Validate the input against a regular expression. + Girişi normal ifadeye göre doğrulayın. + + + Placeholder + Placeholder öğesi + + + Show this text as long as the field is empty (requires HTML5). + Alan boşken bu metni gösterin (HTML5 gerektirir). + + + Minimum length + Minimum uzunluk + + + Require the field value to be a certain number of characters (text) or bytes (file uploads). + Alan değerinin belirli sayıda karakter (metin) veya bayt olmasını (dosya yüklemeleri) gerektirir. + + + Maximum length + Maksimum uzunluk + + + Limit the field length to a certain number of characters (text) or bytes (file uploads). + Alan uzunluğunu belirli sayıda karakter (metin) veya bayt (dosya yüklemeleri) ile sınırlayın. + + + Foreign table & field + Yabancı tablo ve alan + + + 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) + Seçenekler eklemek yerine veritabanından seçim yapmak için bir tablo.field kombinasyonu girebilirsiniz. Çok dilli yabancı anahtarları kullanmak için, her satıra bir tane girin ve dili belirtin (örneğin: en = tl_table.field) + + + Parent field + Ana alan + + + 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. + Lütfen "Select-Menu" türünde olması gereken üst alanı seçin. Ebeveyn-çocuk ilişkisinin çalışması için, bu üst alanın her seçeneğini koşullu seçim menüsü grubu olarak tanımlayın. + + + Show files + Dosyaları göster + + + Show both files and folders. + Hem dosyaları hem de klasörleri gösterin. + + + Files only + Sadece dosyalar + + + Remove the radio buttons or checkboxes next to folders. + Klasörlerin yanındaki radyo düğmelerini veya onay kutularını kaldırın. + + + Mark as gallery + Galeri olarak işaretle + + + Mark the attribute as image gallery which allows for better display in the backend. + Arka plandaki görüntüyü daha iyi gösterebilmek için bu özelliği resim galerisi olarak işaretleyin. + + + Field type + Alan tipi + + + Display radio buttons or checkboxes next to folders. + Klasörlerin yanındaki radyo düğmelerini veya onay kutularını görüntüleyin. + + + Order by + Sıralama türü + + + Please choose the sort order. + Lütfen sıralama düzenini seçin. + + + Root directory + Kök dizin + + + You can limit the file tree by defining a root directory here. + Burada bir kök dizini tanımlayarak dosya ağacını sınırlayabilirsiniz. + + + Store uploaded files + Yüklenen dosyaları sakla + + + Move the uploaded files to a folder on the server. + Yüklenen dosyaları sunucu üzerindeki bir klasöre taşıyın. + + + Target folder + Hedef Klasör + + + Please select the target folder from the files directory. + Lütfen dosyalar dizininden hedef klasörü seçin. + + + Use home directory + Ana dizini kullan + + + Store the file in the home directory if there is an authenticated user. + Kimliği doğrulanmış bir kullanıcı varsa, dosyayı ana dizinde saklayın. + + + Preserve existing files + Varolan dosyaları koru + + + Add a numeric suffix to the new file if the file name already exists. + Dosya adı zaten mevcutsa, yeni dosyaya sayısal bir son ek ekleyin. + + + Move file(s) after checkout + Dosya(lar)ı ödemeden sonra taşıma + + + Re-organize files after an order has been completed. + Bir sipariş tamamlandıktan sonra dosyaları yeniden organize edin. + + + Target folder + Hedef Klasör + + + Enter the target path relative to Contao root. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + Contao köküne göre hedef yolunu girin. Dinamik bir ad oluşturmak için basit simgeleri kullanın ve etiketleri ekleyin (yardım sihirbazına bakın). + + + Target file name + Hedef dosya adı + + + Enter the target file name. Use simple tokens and insert tags to generate a dynamic name (see help wizard). + Hedef dosya adını girin. Dinamik bir ad oluşturmak için basit simgeleri kullanın ve etiketleri ekleyin (yardım sihirbazına bakın). + + + Add to "Order By" option list + "Sıralama türü" seçeneği listesine ekle + + + This field will be sortable in the listing module provided the attribute is visible to customers. + Bu alan, müşterilere görünürse, liste modülünde sıralanabilir olacaktır. + + + Backend filterable + Arka plan da filtrelenebilir + + + Can this attribute be used in a backend filter? + Bu özellik bir arka plan filtresi içinde kullanılabilir mi? + + + Backend searchable + Arka plan da aranabilir + + + Should the field be available in the backend search? + Bu alan, arka plan aramasında kullanılabilir mi? + + + Frontend filterable + Ön taraf ta filtrelenebilir + + + Can this attribute be used in a frontend filter? + Bu özellik bir ön taraf filtresinde kullanılabilir mi? + + + Frontend searchable + Ön taraf ta aranabilir + + + Should the search engine look in this field for search terms? + Arama motoru bu alanda arama terimleri arar mı? + + + Date picker + Tarih seçici + + + Show a date picker for this field. + Bu alan için bir tarih seçici gösterin. + + + Enable chunking + Parçalamayı etkinleştir + + + Enable the file chunking. It is useful to upload big files. + Dosya parçalamayı etkinleştir. Büyük dosyalar yüklenirken faydalı olacaktır. + + + Chunk size in bytes + Bayt olarak parçalama boyutu + + + Please enter the chunk size in bytes (1MB = 1000000 bytes). + Lütfen yığın boyutunu bayt cinsinden girin (1MB = 1000000 bytes). + + + Edit options + Seçenekleri düzenle + + + Checkbox + Onay kutusu + + + Radio + Radyo + + + Numeric characters + Sayısal karakterler + + + Allows numeric characters, minus (-), full stop (.) and space ( ). + Sayısal karakterler eksi (-), nokta (.) ve boşluk () sağlar. + + + Alphabetic characters + Alfabetik karakterler + + + Allows alphabetic characters, minus (-), full stop (.) and space ( ). + Alfabetik karakterler eksi (-), nokta (.) ve boşluk () sağlar. + + + Alphanumeric characters + Alfanümerik karakterler + + + Allows alphabetic and numeric characters, minus (-), full stop (.), underscore (_) and space ( ). + Alfabetik ve sayısal karakterler eksi (-), nokta (.) , alt çizgi (_)ve boşluk () sağlar. + + + Extended alphanumeric characters + Genişletilmiş alfanumerik karakterler + + + Allows everything except special characters which are usually encoded for security reasons (#/()<=>). + Genellikle güvenlik nedeniyle kodlanmış olan özel karakterler haricindeki her şeyi sağlar(#/()<=>). + + + Date + Tarih + + + Checks whether the input matches the global date format. + Girişin genel tarih biçimiyle eşleşip eşleşmediğini denetler. + + + Time + Zaman + + + Checks whether the input matches the global time format. + Girişin genel saat biçimiyle eşleşip eşleşmediğini denetler. + + + Date and time + Tarih ve zaman + + + Checks whether the input matches the global date and time format. + Girişin genel tarih ve saat biçimiyle eşleşip eşleşmediğini denetler. + + + Phone number + Telefon numarası + + + Allows numeric characters, plus (+), minus (-), slash (/), parentheses () and space ( ). + Sayısal karakterlere, artı (+), eksi (-), eğik çizgi (/), parantez () ve boşluk () eklemenize izin verir. + + + E-mail address + E-posta adresi + + + Checks whether the input is a valid e-mail address. + Girilen bir e-posta adresi olup olmadığını kontrol eder. + + + URL format + URL formatı + + + Checks whether the input is a valid URL. + Girilen URL'nin geçerli olup olmadığını kontrol eder. + + + Price + Ücret + + + Checks whether the input is a valid price. + Girilen fiyatın geçerli olup olmadığını kontrol eder. + + + Discount + İndirim + + + Checks whether the input is a valid discount.<br />Example: -10%, -10, +10, +10% + Girişin geçerli bir indirim olup olmadığını kontrol eder. <br />Örneğin: -10%, -10, +10, +10% + + + Surcharge + Ek ücret + + + Checks whether the input is a valid surcharge.<br />Example: 10.00, 10% + Girişin geçerli bir ek ücret olup olmadığını kontrol eder.<br />Örneğin: 10.00, 10% + + + Custom order + Özel sipariş + + + File name (ascending) + Dosya adı (artan) + + + File name (descending) + Dosya adı (azalan) + + + Date (ascending) + Tarih (artan) + + + Date (descending) + Tarih (azalan) + + + Random order + Rasgele sipariş + + + Use these simple tokens to generate a dynamic folder name. + Dinamik bir klasör adı oluşturmak için bu basit işaretleri kullanın. + + + ##document_number## + ##document_number## + + + Generated document number for the order. + Sipariş için üretilen doküman numarası. + + + ##order_id## + ##order_id## + + + Database ID of the order record. + Sipariş kaydının veritabanı ID'si. + + + ##order_date## + ##order_date## + + + Date of the order as timestamp. Use insert tags <i>{{formatted_datetime::*}}</i> to convert timestamp to formatted date. + Zaman damgası olarak siparişin tarihi, . Zaman damgasını biçimlendirilmiş tarihe dönüştürmek için <i>{{formatted_datetime::*}}</i> insert etiketleri kullanın. + + + ##product_id## + ##product_id## + + + Database ID of the product. + Ürünün veritabanı ID'si. + + + ##product_sku## + ##product_sku## + + + SKU of the product. + Ürünün SKU'su-stok tutma birimi. + + + ##product_name## + ##product_name## + + + Name of the product. + Ürünün adı + + + ##product_position## + ##product_position## + + + Position of the product on the order document, starting from 1. + Ürünün sipariş belgesindeki konumu, 1'den başlayarak. + + + ##attribute_field## + ##attribute_field## + + + Database field name of the attribute. + Niteliğin veritabanı alan adı. + + + ##attribute_name## + ##attribute_name## + + + Name of the attribute. + Niteliğin adı + + + ##file_name## + ##file_name## + + + Full file name and extension as uploaded by the user. + Kullanıcı tarafından yüklenen tam dosya adı ve uzantısı. + + + ##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> + Tam dosya adı ve uzantısı kullanıcı tarafından yüklenen ancak "Varolan dosyaları koru" etkinse yeniden adlandırılır ve aynı ada sahip bir dosya hedef klasörde bulunur. <br><strong>Yalnızca dosya adı için kullanılabilir, klasör için değil!</strong> + + + ##file_extension## + ##file_extension## + + + The original file extension. + Orijinal dosya uzantısı. + + + ##has_member## + ##has_member## + + + 1 if a member is signed in to the frontend, 0 if not. + Bir üye ön tarafta oturum açtıysa 1, yoksa 0 olur. + + + ##member_*## + ##member_*## + + + If a user is logged in, all member fields are available as tokens. + Bir kullanıcı oturum açtıysa, tüm üye alanlar jeton olarak kullanılabilir. + + + New attribute + Yeni özellik + + + Create a new attribute. + Yeni özellik oluştur + + + Edit attribute + Özelliği düzenle + + + Edit attribute ID %s. + %s ID'li özellği düzenle + + + Copy attribute + Özelliği kopyala + + + Copy attribute ID %s. + %s ID'li özellği kopyala + + + Delete attribute + Özelliği sil + + + 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. + %s ID'Li özelliği sil. Veritabanı sütunu silinmez, yükleme aracını veya depo yöneticisini kullanarak veritabanını manuel olarak güncellemeniz gerekir. + + + Attribute details + Özellik detayları + + + Show details for attribute ID %s. + %s ID'li özellğin detaylarını gör + + + 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. + %s ID'Li özelliği gerçekten silmek istiyor musunuz? Veritabanı sütunu silinmez, yükleme aracını veya depo yöneticisini kullanarak veritabanını manuel olarak güncellemeniz gerekir. + + + Attribute name & type + Özellik adı & tipi + + + Description + Açıklama + + + Options + Seçenekler + + + Attribute configuration + Özellik yapılandırma + + + Search & Filtering Settings + Arama & Filtreleme Ayarları + + + Store file + Dosyayı sakla + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_attribute_option.xlf b/system/modules/isotope/languages/tr/tl_iso_attribute_option.xlf new file mode 100644 index 0000000000..5bab097ae8 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_attribute_option.xlf @@ -0,0 +1,110 @@ + + + + + Type + Tip + + + Select a type for this label. + Bu etiket için bir tip seçin + + + Option + Seçenek + + + Group + Grup + + + Default + Varsayılan + + + Check here if this should be the default option. + Varsayılan seçenek olup olmadığını, buradan kontrol edin. + + + Label + Etiket + + + Enter the label for this option. + Bu seçenek için etiketi girin. + + + Price surcharge or deduction + Fiyat ek ücreti veya kesinti + + + You can enter a positive or negative amount to alter the product price if this option is selected. + Bu seçenek seçilirse, ürün fiyatını değiştirmek için pozitif veya negatif bir değer girebilirsiniz. + + + Price + Ücret + + + Published + Yayınlandı + + + Make this option available in the product. + Bu seçeneği ürüne ekleyin. + + + New option + Yeni seçenek + + + Create a new option. + Yeni seçenek oluştur + + + Edit option + Seçeneği düzenle + + + Edit option ID %s. + %s ID'li seçeneği düzenle + + + Copy option + Seçeneği kopyala + + + Copy option ID %s. + %s ID'li seçeneği kopyala + + + Delete option + Seçeneği sil + + + Delete option ID %s. + %s ID'li seçeneği sil + + + Option details + Seçenek detayları + + + Show details for option ID %s. + %s ID'li seçeneğin detaylarını gör + + + Type &amp; Label + Tip &amp; Etiket + + + Price change + Fiyat değişimi + + + Publishing + Yayınlama + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_baseprice.xlf b/system/modules/isotope/languages/tr/tl_iso_baseprice.xlf new file mode 100644 index 0000000000..376626331c --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_baseprice.xlf @@ -0,0 +1,74 @@ + + + + + Name + Ad + + + Enter a name for this base price. + Bu taban fiyat için bir ad girin. + + + Base amount + Taban miktarı + + + Enter the base amount (e.g. "100"). + Taban fiyatı girin (örn. "100"). + + + Label + Etiket + + + Enter a label for this base price (e.g. "%s per 100g".) + Bu taban fiyat için bir etiket girin (örn. "her 100g da %s ".) + + + New base price + Yeni taban fiyat + + + Create a new base price + Yeni taban fiyat oluşturun + + + Edit base price + Taban fiyatı düzenle + + + Edit base price ID %s + %s ID'li taban fiyatı düzenle + + + Duplicate base price + Taban fiyatı kopyala + + + Duplicate base price ID %s + %s ID'li taban fiyatı kopyala + + + Delete base price + Taban fiyatı sil + + + Delete base price ID %s + %s ID'li taban fiyatı sil + + + Base price details + Taban fiyat detayları + + + Show details of base price ID %s + %s ID'li taban fiyatın detaylarını göster + + + Base price + Taban fiyat + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_config.xlf b/system/modules/isotope/languages/tr/tl_iso_config.xlf new file mode 100644 index 0000000000..ae50c632ec --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_config.xlf @@ -0,0 +1,583 @@ + + + + + Configuration Name + Yapılandırma Adı + + + Please enter a name for your configuration. This is only used for back end reference. + Bu yapılandırma için bir ad girin. Bu sadece geri planda kullanılacaktır. + + + Label + Etiket + + + The label is used in frontend, e.g. for config switcher. + Etiket, ön tarafta kullanılır, ör. Yapılandırma değiştiricisi için. + + + Set as default store + Varsayılan mağaza olarak ayarla + + + Set this as the default store for back-end currency formatting and other locale-specific information. + Bu mağazayı, arka plan para birimi biçimlendirmesi ve diğer yerel ayara özgü bilgiler için varsayılan mağaza olarak ayarlayın. + + + First name + Adınız + + + Please enter the first name (if applicable). + Lütfen adınızı girin (uygunsa). + + + Last name + Soyadınız + + + Please enter the last name (if applicable). + Lütfen soy adınızı girin (uygunsa). + + + Company + Şirket + + + You can enter a company name here (if applicable). + Lütfen bir şirket adı girin (uygunsa). + + + VAT No. + Vergi No. + + + Please enter a VAT number. + Lütfen vergi numaranızı girin + + + Street + Sokak + + + Please enter the street name and the street number. + Lütfen caddenizi ve cadde numaranızı girin + + + Street 2 + Cadde 2 + + + Enter a second street info if there's any. + Lütfen sokağınızı girin + + + Street 3 + Sokak 3 + + + Enter a third street info if there's any. + Diğer adres bilgileri + + + Postal code + Posta kodu + + + Please enter the postal code. + Lütfen posta kodunuzu girin + + + City + Şehir + + + Please enter the name of the city. + Lütfen bir şehir ismi girin + + + State + Eyalet + + + Please enter the name of the state. + Lütfen bir eyalet ismi girin + + + Country + Ülke + + + Please select a country. This is also the default for custom shipping/billing addresses. + Lütfen bir ülke seçin. Bu ayrıca, özel gönderim / faturalandırma adresleri için varsayılandır. + + + Phone number + Telefon numarası + + + Please enter the phone number. + Lütfen telefon numaranızı girin + + + Shipping email address + Naklye e-posta adresi + + + Please enter a valid e-mail address. + Lütfen geçerli bir e-posta adresi girin + + + Address fields + Adres alanı + + + Select the fields for a billing and shipping address when checking out. + Ödeme yaparken bir faturalandırma ve nakliye adresi için alanları seçin. + + + Address field + Adres alanı + + + For billing address + Fatura Adresi için + + + For shipping address + Nakliye Adresi için + + + Disabled + Devre dışı + + + Enabled (not mandatory) + Etkin (zorunlu değil) + + + Enabled (mandatory) + Etkin (zorunlu) + + + Default billing country + Varsayılan fatura ülkesi + + + Select a default country for new billing addresses. + Yeni fatura adresleri için varsayılan bir ülke seçin. + + + Default shipping country + Varsayılan teslimat ülkesi + + + Select a default country for new shipping addresses. + Yeni nakliye adresi için varsayılan ülke seçin. + + + Available billing countries + Kullanılabilir fatura ülkeleri + + + Select the countries you want to allow for checkout billing address. Select none to allow all countries. + Ödeme faturalandırma adresi için izin vermek istediğiniz ülkeleri seçin. Tüm ülkelere izin vermek için hiçbirini seçin. + + + Available shipping countries + Kullanılabilir nakliye ülkeleri + + + Select the countries you want to allow for checkout shipping address. Select none to allow all countries. + Ödeme nakliye adresi için izin vermek istediğiniz ülkeleri seçin. Tüm ülkelere izin vermek için hiçbirini seçin. + + + Limit member countries + Üye ülkelerini sınırla + + + Limit member countries (Registration, Personal Data) to the combined list of billing and shipping countries. + Üye ülkelerini (Kayıt, Kişisel Veriler) faturalandırma ve gönderim yapan ülkelerin birleşik listesinde sınırlayın. + + + VAT No. validation + KDV No. doğrulama + + + If you enable one or multiple services, the VAT No. address field will be validated. + Bir veya birden fazla hizmeti etkinleştirirseniz, KDV No. Adresi alanı doğrulanır. + + + Price display + Fiyat göstergesi + + + Select if you want to display net or gross prices in your shop. See the help wizard for more information. + Mağazada net veya brüt fiyatlar görüntülemek istiyorsanız seçin. Daha fazla bilgi için yardım sihirbazına bakın. + + + Price formatting + Fiyat biçimi + + + Choose a formatting for prices. + Fiyatlar için bir biçimlendirme seçin. + + + Rounding precision + Yuvarlama hassaslığı + + + 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(). + Ne kadar ondalık hassaslığa sahip olunur? Tüm ödeme ağ geçitlerinin doğru şekilde çalışması için 0 ile 2 arasında bir şey ayarlamanız gerekir. round() için PHP el kitabına bakın. + + + Rounding increment + Yuvarlama artışı + + + Some currencies (e.g. swiss francs) do not support 0.01 precision. + Bazı para birimleri (ör. İsviçre Frangı), 0.01 hassaslığı desteklemez. + + + Currency + Para birimi + + + + Please select a currency for this store. + Lütfen bu mağaza için bir para birimi seçin. + + + Position of currency code/symbol + Para birimi kodunun / sembolün konumu + + + Select if you want to show currency on the left or right side of the price. + Fiyatın solunda veya sağında para birimini göstermek isteyip istemediğinizi seçin. + + + Use currency symbol + Para birimi sembolünü kullan + + + Use a currency symbol ($, €) if available. + Varsa bir para birimi sembolü ($, €) kullanın. + + + Include blank space + Boş alan ekle + + + Add space between price and currency symbol. + Fiyat ve para birimi simgesi arasında boşluk ekleyin. + + + Price factor + Fiyat faktörü + + + Defaults should be 1. You can use this to convert between multiple currencies. + Varsayılan değerler 1 olmalıdır. Bunu birden fazla para birimi arasında dönüştürmek için kullanabilirsiniz. + + + Calculation mode + Hesaplama modu + + + Divide or multiply using this factor. + Bu faktörü kullanarak bölün veya çarpın. + + + Automatic currency conversion + Otomatik para birimi dönüştürme + + + Enable automatic update of price calcuation factors by using an online currency conversion provider. + Çevrimiçi para birimi dönüştürme sağlayıcısı kullanarak fiyat hesaplama faktörlerinin otomatik güncellemesini etkinleştirin. + + + Currency origin + Para birimi menşei + + + Please select the source currency for calculation. + Lütfen hesaplamak için kaynak para birimini seçin. + + + Currency Data Provider + Para Birimi Veri Sağlayıcısı + + + Select an available online provider of currency calculation data. + Para birimi hesaplama verileri için kullanılabilir bir online sağlayıcı seçin. + + + Order number prefix + Sipariş numarası öneki + + + You can add a prefix (e.g. fiscal year) to the auto-incrementing order number. + Otomatik artan sipariş numarasına bir ön ek (ör. Mali yıl) ekleyebilirsiniz. + + + Order number length + Sipariş numarası uzunluğu + + + Select the minimum length of the order number (not including order prefix). + Sipariş numarasının minimum uzunluğunu seçin (sipariş ön ekini içermez). + + + Status for new orders + Yeni siparişlerin durumu + + + Choose a matching status for new orders. A payment module can override this. + Yeni siparişler için eşleşen bir durum seçin. Bir ödeme modülü bunu geçersiz kılabilir. + + + Order status on error + Hata durumunda sipariş durumu + + + Select an order status if something goes wrong (e.g. payment). + Bir sorun oluşursa sipariş durumunun ne olacağını seçin (ör. Ödeme). + + + Module for backend view + Arka plan görünümü modülü + + + Select a order details module that is used to show the order in the backend. + Siparişi arka planda göstermek için kullanılan bir sipariş ayrıntıları modülü seçin. + + + Invoice Logo + Fatura Logosu + + + Select a logo to show up on the invoices for this store. + Bu mağaza için faturalarda görünmesi için bir logo seçin. + + + Templates folder + Şablonlar klasörü + + + Here you can select a templates folder to search before every other template folder. + Burada, diğer tüm şablon klasörlerinden önce aranacak bir şablon klasörü seçebilirsiniz. + + + Minimum subtotal + Minimum ara toplam + + + The minimum cart subtotal required to order. Enter 0 to disable. + Sipariş vermek için gereken sepetinin minimum ara toplamı. Devre dışı bırakmak için 0 girin. + + + Duration to mark a product as "new" + Bir ürünün "yeni" olarak işaretleme süresi + + + 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. + Yeni ürünleri vurgulamak isterseniz, bunun burada bir süre girebilirsiniz. Istop eCommerce'in her yerinde her ürüne otomatik olarak bir "yeni" CSS sınıfı ekleyecek. + + + Enable Google Analytics + Google Analytics'i etkinleştir + + + Enable e-commerce tracking with Google Analytics. + Google Analytics ile e-ticaret izlemeyi etkinleştirin. + + + Account + Hesap + + + Please provde the account key (UA-XXXXXXX-X). + Lütfen hesap anahtarını sağlayın (UA-XXXXXXX-X). + + + Track member + Üye izleme + + + Enter simple tokens to track a member (e.g. ##firstname## ##lastname##). ATTENTION: make sure you're allowed to do this! + Bir üyeyi izlemek için basit simgeleri girin (örn. ##firstname## ##lastname##). DİKKAT: Bunu yapmanıza izin verildiğinden emin olun! + + + To the left of price + Fiyatın soluna + + + To the right of price + Fiyatın sağına + + + Divide + Böl + + + Multiply + Çarp + + + Name + Ad + + + Width + Genişlik + + + Height + Yükseklik + + + Mode + Mod + + + Watermark image + Filigran resmi + + + Position + Konum + + + European Central Bank + Avrupa Merkez Bankası + + + Swiss Federal Department of Finance + İsviçre Federal Maliye Bakanlığı + + + Net + Net + + + Show net prices to all customers. Taxes included in the product price (tax rate configuration) will be deducted. + Net fiyatları tüm müşterilere gösterin. Ürün fiyatına dahil edilen vergiler (vergi oranı yapılandırması) düşülecektir. + + + Gross (recommended) + Brüt (önerilen) + + + Show gross prices to all customers. Applicable taxes will be added to the product price display. + Brüt fiyatları tüm müşterilere gösterin. Uygulanabilir vergiler, ürün fiyat ekranına eklenecektir. + + + Fixed + Sabit + + + 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. + Ürün fiyatı daima ürün ayarında gösterilecektir. Vergiler her zaman "dahil" olarak hesaplanır. Bu, mağaza sahibinin karının, geçerli vergilere bağlı olarak değiştiği anlamına gelir. + + + Legacy + Eski + + + 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. + Fiyat göstergesi, İzotop <2.3'deki gibi. Bir vergi dahil edilip uygulanabilirse fiyatlar brüt fiyatlarla gösterilir. Ek vergiler sadece ek ücret olarak gösterilir. + + + New configuration + Yeni yapılandırma + + + Create a new store configuration. + Yeni mağaza yapılandırması oluştur + + + Edit configuration + Yapılandırmayı düzenle + + + Edit store configuration ID %s. + %s ID'li mağaza yapılandırmasını düzenle + + + Copy configuration + Yapılandırmayı kopyala + + + Copy store configuration ID %s. + %s ID'li mağaza yapılandırmasını kopyala + + + Delete configuration + Yapılandırmayı sil + + + Delete store configuration ID %s. + %s ID'li mağaza yapılandırmasını sil + + + Show configuration details + Yapılandırma detaylarını göster + + + Show details for store configuration ID %s. + %s ID'li mağaza yapılandırmasının detaylarını gör + + + Name + Ad + + + Address configuration + Adres yapılandırması + + + Configuration + Yapılandırma + + + Checkout + Ödeme + + + Pricing + Fiyatlandırma + + + Currency formatting + Para birimi biçimlendirme + + + Currency conversion + Para birimi dönüştürme + + + Orders + Siparişler + + + Images + Resimler + + + URL settings + URL ayarları + + + Products + Ürünler + + + Analytics + Analytics + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_document.xlf b/system/modules/isotope/languages/tr/tl_iso_document.xlf new file mode 100644 index 0000000000..d7a5b507dd --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_document.xlf @@ -0,0 +1,130 @@ + + + + + Document name + Belge adı + + + Enter a name for this document. This will only be used in the backend. + Bu belge için bir ad girin. Bu sadece geri planda kullanılacaktır. + + + Type of document + Belge türü + + + Select a particular document rendering class. + Belirli bir belge işleme sınıfı seçin. + + + Logo + Logo + + + Select a logo. + Bir logo seçin + + + Document title + Belgeni başlığı + + + 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##"). + Dosya başlığınızı oluşturmak için basit simgeleri ("collection_ *", buna karşın * koleksiyonun veritabanı sütununa eşittir) kullanabilirsiniz (ör. "Fatura başlığı ## collection_document_number ##"). + + + File title + Dosya başlığı + + + 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##"). + Dosya başlığınızı oluşturmak için basit simgeleri ("collection_ *", buna karşın * koleksiyonun veritabanı sütununa eşittir) kullanabilirsiniz (ör. "Fatura başlığı ## collection_document_number ##"). + + + Document template + Belge şablonu + + + Choose a template you want to render this document with. + Bu belgeyle birlikte oluşturmak istediğiniz bir şablon seçin. + + + Gallery + Galeri + + + Select a gallery to render images. + Görüntüleri oluşturmak için bir galeri seçin. + + + Collection template + Koleksiyon şablonu + + + Choose a collection template you want to render the products with. + Ürünleri sunmak istediğiniz bir koleksiyon şablonu seçin. + + + Sorting + Sıralama + + + Define in what order the collection items should be listed. + Koleksiyon öğelerinin hangi sırayla listeleneceğini tanımlayın + + + New document + Yeni belge + + + Create a new document + Yeni belge oluştur + + + Edit document + Belgeyi düzenle + + + Edit document ID %s + %s ID'li Belgeyi Düzenle + + + Copy document + Belgeyi kopyala + + + Copy document ID %s + %s ID'li Belgeyi kopyala + + + Delete document + Belgeyi sil + + + Delete document ID %s + %s ID'li Belgeyi sil + + + Document details + Belge detayları + + + Show details of document ID %s + %s ID'li belgenin detaylarını gör + + + Name & type + İsim ve tip + + + General configuration + Genel düzenlemeler + + + Template + Şablon + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_download.xlf b/system/modules/isotope/languages/tr/tl_iso_download.xlf new file mode 100644 index 0000000000..aa07805562 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_download.xlf @@ -0,0 +1,130 @@ + + + + + Attachement + Ek + + + Select the file or folder content you want to sell. + Satmak istediğiniz dosya veya klasör içeriğini seçin. + + + Downloads allowed + İzin verilen indirmeler + + + The number of times these file(s) can be downloaded per order (multiplied by the quantity sold). Enter 0 for unlimited downloads. + Sipariş başına bu dosya(lar)ın indirilme sayısı (satılan miktar ile çarpılır). Sınırsız indirmeler için 0 girin. + + + Expiration + Sona Erme + + + Define if the download(s) expires after a certain time period. + Belirli bir süre sonra indirme işlem(ler)inin bitip bitmeyeceğini belirleyin. + + + Download available + İndirilebilir + + + Click here to include this download in new orders. + Bu indirmeyi yeni siparişlere eklemek için buraya tıklayın. + + + Add download + İndirme ekle + + + Add a new download to this product + Bu ürüne yeni bir dosya ekle + + + Edit download + İndirmeyi düzenle + + + Edit download ID %s + %s ID'li İndirmeyi düzenle + + + Duplicate download + İndirmeyi kopyala + + + Duplicate download ID %s + %s ID'li İndirmeyi kopyala + + + Move download + İndirmeyi taşı + + + Move download ID %s + %s ID'li İndirmeyi taşı + + + Delete download + İndirmeyi sil + + + Delete download ID %s + %s ID'li İndirmeyi sil + + + Publish/unpublish download + İndirmeyi yayınla/yayından kaldır + + + Publish/unpublish download ID %s + %s ID'li indirmeyi yayınla/yayından kaldır + + + Download details + İndirme detayları + + + Show details of download ID %s + %s ID'li indirmenin detaylarını gör + + + Edit product + Ürün düzenle + + + Edit this product + Bu ürünü düzenle + + + Paste at the top + Tepeye yapıştır + + + Paste after download ID %s + %s ID'li indirmeden sonra yapıştır + + + Add new at the top + En üste yeni ekle + + + Add new after download ID %s + %s ID'li indirmeden sonra yeni ekle + + + Attachement + Ek + + + Limits + Limitler + + + Publishing + Yayınlama + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_gallery.xlf b/system/modules/isotope/languages/tr/tl_iso_gallery.xlf new file mode 100644 index 0000000000..742899df20 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_gallery.xlf @@ -0,0 +1,326 @@ + + + + + Name + Ad + + + Enter a name for this gallery. + Bu galeri için bir ad girin + + + Type + Tip + + + Please select a gallery type. + Bir galeri tipi seçin + + + Image anchor + Resim dayanağı + + + Select what anchor type should be generated on the image. + Görüntüye hangi dayanak türünün oluşturulması gerektiğini seçin. + + + Placeholder image + Yer tutucu - placeholder resim + + + This image will be used if an image file cannot be found or none are associated with a product. + Bu resim, bir resim dosyası bulunamazsa veya hiç bir ürünle ilişkilendirilmemişse kullanılacaktır. + + + Main image size + Ana resim boyutu + + + Please enter a width and height for the main product image. + Lütfen ana ürün resmi için bir genişlik ve yükseklik girin. + + + Gallery image size + Galeri resim boyutu + + + Please enter a width and height for the additional images. + Lütfen ek resimler için bir genişlik ve yükseklik girin. + + + Lightbox template + Lightbox teması + + + Please select the lightbox template from your page-layout to reload the image gallery after an AJAX request. + Lütfen bir AJAX isteğinden sonra resim galerisini yeniden yüklemek için sayfa düzeninizden lightbox şablonunu seçin. + + + Lightbox image size + Lightbox resim boyutu + + + Please enter a width and height for lightbox images. + Lütfen lightbox resimleri için bir genişlik ve yükseklik girin. + + + Zoom image size + Yakınlaştırılmış görüntü boyutu + + + Please enter a width and height for zoom images. + Yakınlaştırılmış görüntüler için lütfen bir genişlik ve yükseklik girin. + + + Zoom window size + Yakınlaştırma penceresi boyutu + + + Optionally enter a width and height for the zoom window (defaults to 400x400). + İsteğe bağlı olarak yakınlaştırma penceresi için bir genişlik ve yükseklik girin (varsayılan değer 400x400). + + + Zoom window position + Yakınlaştırma penceresi konumu + + + Optionally enter a horizontal and vertical offset and a position for the zoom window. + İsteğe bağlı olarak yatay ve dikey kaydırmayı ve yakınlaştırma penceresi için bir konum girin. + + + Right Top (Pos. #1) + Sağ üst (Pos. #1) + + + Right Center (Pos. #2) + Sağ orta (Pos. #2) + + + Right Bottom (Pos. #3) + Sağ alt(Pos. #3) + + + Right Bottom Corner (Pos. #4) + Sağ alt köşe (Pos. #4) + + + Bottom Right (Pos. #5) + Alt sağ (Pos. #5) + + + Bottom Center (Pos. #6) + Alt orta (Pos. #6) + + + Bottom Left (Pos. #7) + Alt sol (Pos. #7) + + + Left Bottom Corner (Pos. #8) + Sol alt orta (Pos. #8) + + + Left Bottom (Pos. #9) + Sol Alt (Pos. #9) + + + Left Center (Pos. #10) + Sol orta (Pos. #10) + + + Left Top (Pos. #11) + Sol üst (Pos. #11) + + + Left Top Corner (Pos. #12) + Sol üst köşe (Pos. #12) + + + Top Left (Pos. #13) + Üst sol (Pos. #13) + + + Top Center (Pos. #14) + Üst orta (Pos. #14) + + + Top Right (Pos. #15) + Üst sağ (Pos. #15) + + + Top Right Corner (Pos. #16) + Üst sağ köşe (Pos. #16) + + + Zoom window fade effect + Yakınlaştırma penceresi açılış efekti + + + Optionally enter miliseconds to fade in and fade out the zoom window. + İsteğe bağlı olarak yakınlaştırma penceresini açılıp kapanacağı milisaniyeleri girin. + + + Zoom window border + Yakınlaştırma penceresi kenarlığı + + + Optionally enter a hex color and size in pixels for the zoom window. + İsteğe bağlı olarak, yakınlaştırma penceresi için altı renk ve piksel cinsinden piksel girin. + + + Main watermark image + Ana filigran görüntüsü + + + Select an image if you want to add a watermark to the main product image. + Ana ürün resmine filigran eklemek istiyorsanız bir resim seçin. + + + Main watermark position + Ana filigran konumu + + + Select the position where to apply the watermark to. + Filigranı uygulamak istediğiniz konumu seçin. + + + Gallery watermark image + Galeri filigran resmi + + + Select an image if you want to add a watermark to the gallery images. + Galeri görüntülerine filigran eklemek istiyorsanız bir resim seçin. + + + Gallery watermark position + Galeri filigrası konumu + + + Select the position where to apply the watermark to. + Filigranı uygulamak istediğiniz konumu seçin. + + + Lightbox watermark image + Lightbox filigran görüntüsü + + + Select an image if you want to add a watermark to the lightbox images. + Lightbox görüntülerine filigran eklemek istiyorsanız bir resim seçin. + + + Lightbox watermark position + Lightbox filigran konumu + + + Select the position where to apply the watermark to. + Filigranı uygulamak istediğiniz konumu seçin. + + + Zoom watermark image + Yakınlaştırma filigran görüntüsü + + + Select an image if you want to add a watermark to the zoom images. + Yakınlaştırma görüntülerine filigran eklemek istiyorsanız bir resim seçin. + + + Zoom watermark position + Yakınlaştırma filigran konumu + + + Select the position where to apply the watermark to. + Filigranı uygulamak istediğiniz konumu seçin. + + + Custom gallery template + Özel galeri şablonu + + + Here you can overwrite the default gallery template. + Burada varsayılan galeri şablonunun üzerine yazabilirsiniz. + + + New gallery + Yeni galeri + + + Create a new gallery + Yeni bir kategori oluştur + + + Edit gallery + Galeriyi düzenle + + + Edit gallery ID %s + %s ID'li galeriyi düzenle + + + Duplicate gallery + Galeriyi kopyala + + + Duplicate gallery ID %s + %s ID'Li galeriyi kopyala + + + Delete gallery + Galeriyi sil + + + Delete gallery ID %s + %s ID'Li galeriyi sil + + + Gallery details + Galeri detayları + + + Show details of gallery ID %s + %s ID'li galeriinin detaylarını göster + + + Name &amp; Type + İsim &amp; tip + + + Image sizes + Resim boyutları + + + Configuration + Yapılandırma + + + Watermark + Filigran + + + Lightbox/Mediabox + Lightbox/Mediabox + + + Template settings + Şablon ayarları + + + No link action + Link eylemi yok + + + Link to the product reader + Ürün okuyucusuna bağla + + + Open lightbox/mediabox + Lightbox/mediabox aç + + + Make sure to include jQuery in your page layout for this gallery to work correctly. + Bu galerinin düzgün çalışması için sayfa düzeninize jQuery eklediğinizden emin olun. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_group.xlf b/system/modules/isotope/languages/tr/tl_iso_group.xlf new file mode 100644 index 0000000000..243d317f3e --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_group.xlf @@ -0,0 +1,106 @@ + + + + + Group name + Grup adı + + + Please enter a name for this group. + Bu grup için bir ad girin + + + Default product type + Varsayılan ürün tipi + + + Here you can specify a default product type for this product group. + Burada, bu ürün grubu için varsayılan ürün tipini belirleyebilirsiniz. + + + New group + Yeni grup + + + Create a new group + Yeni grup oluştur + + + Edit group + Grubu düzenle + + + Edit group ID %s + %s ID'li grubu düzenle + + + Duplicate group + Grubu kopyala + + + Duplicate group ID %s + %s ID'li grubu kopyala + + + Duplicate with subgroups + Grubu alt gruplarla birlikte kopyala + + + Duplicate group ID %s with subgroups + %s ID'li grubu alt gruplarla birlikte kopyala + + + Move group + Grubu taşı + + + Move group ID %s + %s ID'li grubu taşı + + + Delete group + Grubu sil + + + Delete group ID %s + %s ID'li grubu sil + + + Group details + Grup detayları + + + Show details of group ID %s + %s ID'li grubun detaylarını gör + + + Paste after + Şundan sonra yapıştır + + + Paste after group ID %s + %s ID'li gruptan sonra yapıştır + + + Paste into + Şunun içine yapıştır + + + Paste into group ID %s + %s ID'li grubun içine yapıştır + + + Product group settings + Ürün grup ayarları + + + Product Groups + Ürün Grupları + + + Manage product groups + Ürün gruplarını yönet + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_integrity.xlf b/system/modules/isotope/languages/tr/tl_iso_integrity.xlf new file mode 100644 index 0000000000..6491afcdef --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_integrity.xlf @@ -0,0 +1,78 @@ + + + + + Integrity Check + Bütünlük Denetimi + + + Problem + Sorun + + + Result of the check + Kontrol sonuçları + + + Please choose the errors to be fixed. + Lütfen düzeltilecek hataları seçin. + + + Resolve problems + Sorunları çöz + + + Only admin can perform integrity check. + Yalnızca yönetici bütünlük kontrolü yapabilir. + + + Advanced prices + Gelişmiş fiyatlar + + + %s invalid andvanced prices were found.<br>PIDs: %s. + %s geçersiz gelişmiş fiyatlar bulundu. <br>PIDs: %s. + + + There are no invalid prices in your database. + Veritabanınız da geçerli fiyat yok. + + + Invalid product variants + Geçersiz ürün çeşitleri + + + You have %s variants that belong to products without active variant support.<br>IDs: %s + Aktif çeşit desteği bulunmayan ürünlere ait %s çeşidiniz var.<br>IDs: %s + + + There are no invalid variants in your database. + Veritabanınız da geçerli bir çeşit yok. + + + Invalid attribute options + Geçersiz nitelik seçenekleri + + + You have %s attribute options that belong to non-existant variants or products or have a wrong optionsSource set.<br>IDs: %s + Var olmayan çeşitlere veya ürünlerdeki %s nitelik seçeneklerine sahipsiniz veya kaynak kümesi seçenekleri yanlış. <br> ID ler: %s + + + There are no invalid attribute options in your database. + Veritabanınız da geçerli nitelik seçenekleri yok. + + + Rules module + Kurallar modülü + + + The rules module should be disabled if you do not use it. + Kurallar modülü kullanmamanız durumunda devre dışı bırakılmalıdır. + + + The rules module is disabled or in use. + Kurallar modülü devre dışı veya kullanımda. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_label.xlf b/system/modules/isotope/languages/tr/tl_iso_label.xlf new file mode 100644 index 0000000000..36229d6e3e --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_label.xlf @@ -0,0 +1,74 @@ + + + + + Language + Dil + + + Please select a language. + Bir dil seçin + + + Label + Etiket + + + Enter the source label. + Kaynak etiketini girin. + + + Replacement + Değiştirme + + + Enter the replacement in the specified language. + Değiştirmeyi belirtilen dilde girin. + + + New label + Yeni etiket + + + Create a new label + Yeni etiket oluştur + + + Edit label + Etiketi düzenle + + + Edit label ID %s + %s ID'li etiketi düzenle + + + Duplicate label + Etiketi kopyala + + + Duplicate label ID %s + %s ID'li etiketi kopyala + + + Delete label + Etiketi sil + + + Delete label ID %s + %s ID'li etiketi sil + + + Label details + Etiket detayları + + + Show details of label ID %s + %s ID'li etiketin detaylarını gör + + + Label translation + Etiket çevirisi + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_orderstatus.xlf b/system/modules/isotope/languages/tr/tl_iso_orderstatus.xlf new file mode 100644 index 0000000000..19dbc1adaa --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_orderstatus.xlf @@ -0,0 +1,138 @@ + + + + + Name + Ad + + + Please enter a name for this status. + Bu durum için bir ad girin + + + Color + Renk + + + Here you can set a custom color for this status. The color will appear on the order list in back end. + Burada bu durum için özel bir renk ayarlayabilirsiniz. Renk, arka plandaki sipariş listesinde görünecektir. + + + Order is paid + Sipariş ödendi + + + Assume the order is paid when it has this status. This will for example allow files to be downloaded. + Siparişin bu statüye sahip olduğu durumda ödenmesini varsayalım. Bu durum , örneğin dosyaların indirilmesine izin verir. + + + Show on welcome screen + Karşılama ekranında göster + + + Show number of orders with this status on the backend welcome screen. + Bu durumdaki sipariş sayısını arka planda karşılama ekranında göster. + + + Notification + Bildirim + + + Please select a notification. + Bir bildirim seçin + + + Saferpay transaction + Saferpay işlemi + + + 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. + Ödeme ağ geçidini otomatik olarak güncellemek istiyorsanız lütfen bir seçenek belirleyin. Bu yalnızca, müşteri "Saferpay" veya "Saferpay için Billpay" ödeme yöntemi kullanıyorsa geçerlidir. + + + Capture payment + Ödemeyi yakala + + + Suggest manual payment cancellation + Manuel ödeme iptali öner + + + New order status + Yeni sipariş durumu + + + Create a new order status + Yeni sipariş durumu oluştur + + + Edit order status + Sipariş durumunu düzenle + + + Edit order status ID %s + %s ID'li sipariş durumunu düzenle + + + Duplicate order status + Sipariş durumunu kopyala + + + Duplicate order status ID %s + %s ID'li sipariş durumunu kopyala + + + Move order status + Sipariş durumunu taşı + + + Move order status ID %s + %s ID'li sipariş durumunu taşı + + + Delete order status + Sipariş durumu sil + + + Delete order status ID %s + %s ID'li sipariş durumunu sil + + + Order status details + Sipariş durumu detayları + + + Show details of order status ID %s + %s ID'li sipariş durumunun detaylarını gör + + + Paste after + Şundan sonra yapıştır + + + Paste after order status ID %s + %s ID'li sipariş durumundan sonra yapıştır + + + Paste into + Şunun içine yapıştır + + + Paste into order status ID %s + %s ID'li sipariş durumunun içine yapıştır + + + Name + Ad + + + E-Mail Notification + E-posta Bildirimi + + + Payment Gateways + Ödeme Ağ Geçitleri + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_payment.xlf b/system/modules/isotope/languages/tr/tl_iso_payment.xlf new file mode 100644 index 0000000000..538915159a --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_payment.xlf @@ -0,0 +1,842 @@ + + + + + Payment Method Name + Ödeme Şekli Adı + + + Enter a name for this payment method. This will only be used in the backend. + Bu ödeme yöntemi için bir ad girin. Bu sadece arka planda kullanılacaktır. + + + Payment Method Label + Ödeme Şekli Etiketi + + + The label will be shown to customers on checkout. + Etiket, ödeme sırasında müşterilere gösterilecektir. + + + Type of Payment Gateway + Ödeme Tipi Ağ Geçidi + + + Select a particular payment gateway + Belirli bir ödeme ağ geçidi seçin + + + Payment Note + Ödeme Notu + + + This note can be sent in confirmation mails (##payment_note##). + Bu not onay postalarında gönderilebilir (##payment_note##). + + + Status for new orders + Yeni siparişlerin durumu + + + Choose a matching status for new orders. + Yeni siparişler için eşleşen bir durum seçin. + + + Minimum total + Minimum toplam + + + Enter a number greater zero to exclude this payment method for lower priced orders. + Düşük fiyatlı siparişler için bu ödeme yöntemini hariç tutmak için bir sayı daha büyük sıfır girin. + + + Maximum total + Maksimum toplam + + + Enter a number greater zero to exclude this payment method for higher priced orders. + Daha yüksek fiyatlı siparişler için bu ödeme yöntemini hariç tutmak için daha büyük bir sayı girin. + + + Minimum quantity + Minimum adet + + + Enter a number greater zero to exclude this payment method for orders with lower quantity. + Daha düşük miktarlı siparişler için bu ödeme yöntemini hariç tutmak için daha büyük bir sayı girin. + + + Maximum quantity + Maximum adet + + + Enter a number greater zero to exclude this payment method for orders with higher quantity. + Daha yüksek miktarda siparişler için bu ödeme yöntemini hariç tutmak için bir sayı daha büyük sıfır girin. + + + Quantity calculation mode + Adet hesaplama modu + + + Select a calculation mode for min/max quantity. + Min / maks adetiçin bir hesaplama modu seçin. + + + Total quantity in cart + Sepetteki toplam adet + + + Total products in cart + Sepetteki Toplam Ürün + + + Available countries + Kullanılabilir ülkeler + + + Select the countries where this payment method may be used (customer's billing address). + Bu ödeme yönteminin kullanılabileceği ülkeleri (müşterinin fatura adresi) seçin. + + + Shipping methods + Nakliye yöntemleri + + + You can restrict this payment method to certain shipping methods (e.g. Cash only when picking up). + Bu ödeme yöntemini belirli gönderim yöntemleriyle (örn. kapıda ödeme nakit) kısıtlayabilirsiniz. + + + Product types + Ürün tipleri + + + 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. + Bu ödeme yöntemini belirli ürün türlerine göre kısıtlayabilirsiniz. Sepet, seçmediğiniz bir ürün türünü içeriyorsa, ödeme yöntemi kullanılamaz. + + + Product type condition + Ürün tipi koşulu + + + Select how the product type filter should be applied. + Ürün tipi filtresinin nasıl uygulanacağını seçin. + + + Store configurations + Mağaza yapılandırmaları + + + You can restrict this payment method to certain shop configurations. + Bu ödeme yöntemini belirli mağaza yapılandırmalarıyla sınırlandırabilirsiniz. + + + Price + Ücret + + + Enter a price or percent value (e.g. "10" or "10%"). + Bir fiyat veya yüzde değeri girin (ör. "10" veya "%10"). + + + Tax Class + Vergi Sınıfları + + + Please select a tax class for the price. + Lütfen fiyat için bir vergi sınıfı seçin. + + + Transaction type + İşlem tipi + + + Select if you want to instantly capture the money or authorize (and hold) for a later transaction (e.g. when shipping). + Parayı anında yakalamak isteyip istemediğinizi veya daha sonraki bir işlem için (örneğin, gönderim sırasında) yetkilendirip (veya beklemeye) seçim yapın. + + + Merchant ID + Tüccar ID + + + Please enter your Paybyway merchant ID. The sub-merchant ID is listed in the sub-merchants page in the merchant UI. + Lütfen Paybyway tüccar kimliğinizi girin. Alt tüccar kimliği, satıcı arayüzündeki alt tüccarlar sayfasında listelenir. + + + Private Key + Özel Anahtar + + + Please enter your Paybyway private key. + Lütfen Paybyway özel anahtarınızı girin. + + + PayPal Account + PayPal Hesabı + + + Enter the default email address from your PayPal-Account. Note: Check the correct spelling, and case-sensitive. + PayPal Hesabınızdan varsayılan e-posta adresini girin. Not: Doğru harf yazımını kontrol edin ve büyük / küçük harf duyarlıdır. + + + PSPID + PSPID + + + The PSPID is your unique identification for the payment method. + PSPID, ödeme yöntemi için benzersiz tanımlamanızdır. + + + HTTP method + HTTP methodu + + + Type of HTTP data transfer from and to the servers. + Sunuculardan HTTP veri aktarımı türü. + + + Hash method + Hash yöntemi + + + Hashing algorithm for data transfer from and to the servers. + Sunuculardan veri aktarımı için algoritmayı yakalama. + + + SHA-1 + SHA-1 + + + SHA-256 + SHA-256 + + + SHA-512 + SHA-512 + + + SHA-IN signature + SHA-IN imza + + + This will be used to validate the server to server communication. + Bu, iki sunucu arasındaki iletişimi doğrulamak için kullanılacaktır. + + + SHA-OUT signature + SHA-OUT imza + + + This will be used to validate the server to server communication. + Bu, iki sunucu arasındaki iletişimi doğrulamak için kullanılacaktır. + + + Dynamic template URL + Dinamik şablon URL'si + + + Enter a valid <strong>absolute</strong> URL to a dynamic template here. + Burada dinamik bir şablon için geçerli bir <strong> mutlak </ strong> URL girin. + + + Payment method + Ödeme Şekli + + + 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! + Burada bir ödeme yöntemi seçebilirsiniz. PSP sözleşmenizin de bu ödeme yöntemini de içerdiğinden emin olun! Burada hiç bir şey seçmezseniz, müşterinin PSP arayüzünde tercih edilen ödeme yöntemini seçmesi gerekir! + + + Require Card Code Verification (CCV) Number + Kart Kodu Doğrulama (CCV) Numarasını Gerektir + + + Choose this option if you would like to increase transaction security by requiring the card code verification number. + Kart şifresi doğrulama numarasını girerek işlem güvenliğini artırmak istiyorsanız bu seçeneği belirleyin. + + + Allowed Credit Card Types + İzin Verilen Kredi Kartı Türleri + + + Select which credit cards the payment method accepts. + Ödeme yönteminin hangi kredi kartlarını kabul ettiğini seçin. + + + Merchant-ID + Tüccar-ID + + + Please enter your merchant ID. + Lütfen satıcı kimliğinizi girin. + + + HMAC Key + HMAC Anahtarı + + + Please enter your HMAC key from the Datatrans control panel. + Datatrans kontrol panelinden sağlanan HMAC anahtarınızı girin. + + + Hash method + Hash yöntemi + + + Please select the hashing method configured in your Datatrans control panel. + Lütfen Datatrans kontrol panelinizde yapılandırılmış karma yöntemini seçin. + + + MD5 (outdated) + MD5 (outdated) + + + SHA-256 + SHA-256 + + + Convert hash to binary + Karmayı ikiliğe dönüştür + + + Check here if the hash key needs to be converted to binary. + Karma anahtarın ikili olarak dönüştürülmesi gerekip gerekmediğini kontrol edin. + + + Site Identifier + Site Tanımlayıcısı + + + Please enter your payment site identifier. + Lütfen ödeme sitesi tanımlayıcınızı girin. + + + Certificate + Sertifika + + + Please enter your TEST or PRODUCTION certificate. + Lütfen TEST veya ÜRETİM sertifikanızı giriniz. + + + Payment method + Ödeme Şekli + + + Please select a payment method for this method. + Lütfen bu yöntem için bir ödeme yöntemi seçin. + + + Credit card + Kredi kartı + + + Debig card + Debit/Banka kartı + + + Direct debit + Otomatik ödeme + + + Seller ID + Satıcı Kimliği + + + Please enter your seller ID (Händlerkennung). + Lütfen satıcı kimliğinizi girin (Händlerkennung). + + + Password + Parola + + + Please enter your SSL-Password. + Lütfen SSL-Parolanızı giriniz. + + + Reference + Referans + + + A reference that will be shown on the seller details page instead of the cart ID. + Satıcı kimliği sayfası yerine satıcı ayrıntıları sayfasında gösterilecek bir referans. + + + Customer ID + Müşteri ID + + + Your customer ID for sofortüberweisung.de + sofortüberweisung.de için Müşteri ID'niz + + + Project ID + Proje ID + + + Your project ID for sofortüberweisung.de + sofortüberweisung.de için Proje ID'niz + + + Projekt password + Proje parola + + + Your project password for sofortüberweisung.de + sofortüberweisung.de için Proje parolanız + + + Saferpay Account-ID + Saferpay Hesap-ID + + + Please enter your unique Saferpay account id. + Benzersiz Saferpay hesap ID'nizi girin. + + + Checkout description + Ödeme açıklaması + + + The customer will see this description on the Saferpay checkout page. + Müşteri, bu açıklamayı Saferpay ödeme sayfasında görecektir. + + + Payment page configuration (VTCONFIG) + Ödeme sayfası yapılandırması (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. + Farklı Ödeme Sayfası yapılandırmaları oluşturabilirsiniz. Belirli bir tanesini kullanmak istiyorsanız, "Talep için parametre" değerini buraya girin. + + + Payment methods + Ödeme yöntemleri + + + You can limit the available payment methods (e.g. only MasterCard). If you do not select anything, all payment methods will be allowed. + Kullanılabilir ödeme yöntemlerini sınırlayabilirsiniz (ör. Yalnızca MasterCard). Hiçbir şey seçmezseniz, tüm ödeme yöntemlerine izin verilir. + + + 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 Profili + + + Geben Sie die dreistellige Profilnummer ein. + Geben Sie die dreistellige Profilnummer ein. + + + ExperCash Popup-Key + ExperCash Popup-Anahtarı + + + 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 + Tüccar numarası + + + The unique merchant number created in ePay. This merchant number is to be found in your contract with PBS. + EPay'de yaratılmış benzersiz satıcı numarası. Bu satıcı numarası PBS ile olan sözleşmenizde bulunacaktır. + + + Integration type + Entegrasyon türü + + + Select on of the available integration options. Please note that when using the integrated payment form, you can only accept payment cards. + Kullanılabilir entegrasyon seçeneklerinden birini seçin. Entegre ödeme formunu kullanırken yalnızca ödeme kartlarını kabul edebileceğinizi lütfen unutmayın. + + + Secret key + Gizli anahtar + + + The secret key set up in your ePay configuration. + EPay yapılandırmanıza göre ayarlanmış gizli anahtar. + + + Clearing type + Clearing type + + + Please choose a clearing type. + Lütfen takas tipi seçin. + + + PAYONE subaccount ID (aid) + PAYONE subaccount ID (aid) + + + Please enter your unique PAYONE subaccount ID (aid). + Benzersiz PAYONE subaccount ID (aid)'nizi girin. + + + PAYONE Portal ID + PAYONE Portal ID + + + Please enter your unique PAYONE portal ID. + Benzersiz PAYONE portal ID'nizi girin. + + + Secret key + Gizli anahtar + + + Enter the secret key you specified for this portal. + Bu portal için belirttiğiniz gizli anahtarı girin. + + + Installation ID + Kurulum kimliği + + + Please enter your WorldPay Installation ID + Lütfen WorldPay Kurulum Kimliğinizi girin + + + Transaction Password + İşlem Parolası + + + Enter the same transaction password as in your WorldPay configuration. + WorldPay yapılandırmasında olduğu gibi aynı işlem parolasını girin. + + + SignatureFields + SignatureFields + + + Enter the same SignatureField value as in your WorldPay configuration. + WorldPay yapılandırmanızda olduğu gibi aynı SignatureField değerini girin. + + + MD5 Secret + MD5 Sır + + + Enter the same MD5 secret value as in your WorldPay configuration. + WorldPay yapılandırmanızda olduğu gibi aynı MD5 gizli değerini girin. + + + Description + Açıklama + + + Enter a description for your store. It will be shown to the customer on the worldpay checkout process. + Mağazanız için bir açıklama girin. Worldpay ödeme işleminde müşteriye gösterilecektir. + + + Merchant ID + Tüccar ID + + + Please enter your merchant ID. + Lütfen satıcı kimliğinizi girin. + + + Agreement ID + Sözleşme Kimliği + + + Please enter your agreement ID. + Sözleşme Kimliğinizi girin. + + + API key + API anahtarı + + + Please enter your API key. + API anahtarınızı girin. + + + Private key + Özel Anahtar + + + Please enter your private key. + Özel anahtarınızı girin. + + + Payment methods + Ödeme yöntemleri + + + Enter a configuration string to limit the payment methods. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">More Information</a>. + Ödeme yöntemlerini sınırlandırmak için bir yapılandırma dizesi girin. <a href="http://tech.quickpay.net/appendixes/payment-methods/" target="_blank">Daha fazla bilgi</a>. + + + User ID + Kullanıcı ID + + + Please enter your user ID. + Lütfen kullanıcı ID'nizi girin. + + + Password + Parola + + + Please enter your user password. + Lütfen kullanıcı parolanızı girin. + + + Entity/Channel ID + Varlık / Kanal Kimliği + + + Please enter your entity or channel ID + Lütfen varlık veya kanal kimliğinizi girin + + + Member groups + Üye grupları + + + Restrict this payment method to certain member groups. + Bu ödeme yöntemini belirli üye gruplarla sınırla. + + + Protect payment method + Ödeme yöntemini koruyun + + + Show the payment method to certain member groups only. + Ödeme yöntemini yalnızca belirli üye gruplarına gösterin. + + + Show to guests only + Sadece misafirlere gösterin + + + Hide the payment method if a member is logged in. + Bir üye oturum açtıysa, ödeme yöntemini gizleyin. + + + Debug mode + Hata ayıklama modu + + + For testing without actually capturing for payment. + Ödeme için yakalama yapmadan test etmek için. + + + Enabled + v + + + Check here if the payment method should be enabled in the store. + Mağazada ödeme yönteminin etkinleştirilmesi gerekip gerekmediğini kontrol edin. + + + New payment method + Yeni Ödeme Methodu + + + Create a new payment method + Yeni Ödeme Methodu oluştur + + + Edit payment method + Ödeme yöntemini düzenle + + + Edit payment method ID %s + %s ID'li ödeme yöntemini düzenle + + + Copy payment method + Ödeme yöntemini kopyala + + + Copy payment method ID %s + %s ID'li ödeme yöntemini kopyala + + + Delete payment method + Ödeme yöntemini sil + + + Delete payment method ID %s + %s ID'li ödeme yöntemini sil + + + Enable/disable payment method + Ödeme yöntemini etkinleştir/devre dışı bırak + + + Enable/disable payment method ID %s + %s ID'li ödeme yöntemini etkinleştir/devre dışı bırak + + + Payment method details + Ödeme yöntemi detayları + + + Show details of payment method ID %s + %s ID'li ödeme yöntemi detaylarını gör + + + Authorize and Capture + Yetkilendir ve Yakala + + + Transactions of this type will be sent for authorization. The transaction will be automatically picked up for settlement if approved. + Bu türden işlemler izin için gönderilecek. İşlem, tahsilat için onay verimesi halinde otomatik olarak tahsil edilecektir. + + + Authorize Only + Sadece Yetkilendirin + + + 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. + Tüccar, satılan malların miktarı için kredi kartını onaylamak isterse, bu türden işlemler yapılır. Satıcı, malları stokta yoksa veya malları göndermeden önce siparişleri incelemek isterse, bu işlem türü gönderilmelidir. + + + Orders without shipping + Nakliye gerekmeyen siparişler + + + Enable if only these product types are in cart + Yalnızca bu ürün tipleri sepette olduğunda etkinleştir + + + Enable if all these product types are in cart + Tüm ürün tipleri sepette olduğunda etkinleştir + + + Enable if one of these product types is in cart + Bu ürün tiplerinden birisi alışveriş sepetinde bulunuyorsa etkinleştir + + + Debit withdrawal + Banka çekimi + + + Credit card + Kredi kartı + + + Debit card + Debit card + + + Prepayment + Ön ödeme + + + Invoice + Fatura + + + Online bank transfer (SOFORT/Giropay/PostFinance/iDEAL) + Online banka havalesi (SOFORT/Giropay/PostFinance/iDEAL) + + + e-Wallet (PayPal) + e-Wallet (PayPal) + + + Financing (BillSAFE Invoice) + Finansman(BillSAFE Invoice) + + + Full screen + Tam ekran + + + Integrated payment form + Entegre ödeme formu + + + Name &amp; Type + İsim &amp; tip + + + Additional notes + Ek Notlar + + + General configuration + Genel düzenlemeler + + + Payment gateway configuration + Ödeme Ağ Geçidi yapılandırması + + + Price + Ücret + + + Template + Şablon + + + Expert settings + Uzman ayarları + + + Approval + Onay + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_product.xlf b/system/modules/isotope/languages/tr/tl_iso_product.xlf new file mode 100644 index 0000000000..f0f0e5940a --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_product.xlf @@ -0,0 +1,499 @@ + + + + + Product ID + Ürün ID + + + Categories + Kategoriler + + + Select a category (page-based categories take advantage of Contao pages features such as navigation automation, protection, templates, and full integration with content elements. + ir kategori seçin (sayfa tabanlı kategoriler, navigasyon otomasyonu, koruma, şablonlar ve içerik öğeleriyle tam entegrasyon gibi Contao sayfalarının özelliklerinden yararlanır. + + + Product type + Ürün tipi + + + Select your product type. Product types are defined in the store configuration. + Ürün tipini seçin. Ürün türleri mağaza yapılandırmasında tanımlanır. + + + Default variant + Varsayılan çeşit + + + Click here if this variant should be pre-selected by default. + Çeşidin varsayılan olarak önceden seçilmiş olması gerekiyorsa buraya tıklayın. + + + Alias + Takma ad + + + You can enter a unique alias for this product. It will be automatically generated from the name if empty. + Bu ürün için benzersiz bir takma ad girebilirsiniz. Boş ise, adından otomatik olarak oluşturulacaktır. + + + Name + Ad + + + Please enter the name of this product. + Lütfen bu ürünün adını girin. + + + SKU + SKU + + + Please enter a unique stock keeping unit for this product. + Lütfen bu ürün için benzersiz bir stok birimi girin. + + + Shipping weight + Kargo ağırlığı + + + Please enter the shipping weight for this product. This can be used to calculate shipping cost. + Lütfen ürünün nakliye ağırlığını girin. Bu, gönderim bedelini hesaplamak için kullanılabilir. + + + Teaser + Teaser + + + Please enter the teaser. + Lütfen teaser'ı girin. + + + Description + Açıklama + + + Please enter the product description. + Lütfen ürün açıklamasını giriniz. + + + Meta title + Meta başlığı + + + Meta title is used as page title in the product detail view. If you leave it empty, the product name will be used. + Meta başlığı, ürün ayrıntısında sayfa başlığı olarak kullanılır. Boş bırakırsanız, ürün adı kullanılacaktır. + + + Meta description + Meta Açıklaması + + + Meta description will be placed in the header on product detail page, for search engine optimization. + Meta açıklaması, arama motoru optimizasyonu için ürün ayrıntı sayfasındaki başlıkta yer alır. + + + Meta keywords + Anahtar Kelimeler + + + Meta keywords will be placed in the header on product detail page, for search engine optimization. + Arama motoru optimizasyonu için, meta anahtar kelimeleri ürün detay sayfasında yer alır. + + + Price &amp; tax class + Fiyat &amp; vergi sınıfı + + + Please enter the price(s) for this product and select the tax class. + Lütfen bu ürüne ait fiyat(lar)ı girin ve vergi sınıfını seçin. + + + Exempt from shipping + Nakliyeden muaf + + + Check if item is not a shipped item (such as downloadable products). + Ürünün sevk edilebilen bir öğe olup olmadığını kontrol edin (indirilebilir ürünler gibi). + + + Base price amount + Taban fiyat miktarı + + + Enter the amount to calculate the base price (e.g. "1500" if your product is 1500 grams). + Temel fiyatı hesaplamak için gereken miktarı girin (ör. Ürününüz 1500 gram ise "1500"). + + + Images + Resimler + + + Upload images to this product. Please save the product after selecting a file. + Bu ürüne resim yükleyin. Lütfen bir dosya seçtikten sonra ürünü kaydedin. + + + Protect product + Ürünü koruyun + + + Restrict product access to certain member groups. + Ürün erişimini belirli üye gruplarla sınırlandırın. + + + Allowed member groups + İzin verilen üye gruplar + + + These groups will be able to access the product. + Bu gruplar ürüne erişebilecek. + + + Show to guests only + Sadece misafirlere gösterin + + + Hide the product if there is an authenticated user. + Kimliği doğrulanmış bir kullanıcı varsa ürünü gizleyin. + + + CSS ID/class + CSS ID/sınıf + + + Here you can set an ID and one or more classes. + Burada bir kimlik ve bir veya daha fazla sınıf ayarlayabilirsiniz. + + + Publish product + Ürünü yayınla + + + Click here to show this product on your website. + Bu ürünü web sitenizde göstermek için tıklayınız. + + + Start date + Başlangıç tarihi + + + Do not show this product before the date specified. + Belirtilen tarihten önce bu ürünü göstermeyin. + + + Stop date + Yayınlamayı durdurma tarihi + + + Do not show this product after the date specified. + Belirtilen tarihten sonra bu ürünü göstermeyin. + + + Inherited attributes + Devralınan özellikler + + + Check the fields you want to inherit from base product. + Temel üründen devralmak istediğiniz alanları kontrol edin. + + + Source folder + Kaynak klasör + + + Please choose the folder where product assets are located. + Lütfen ürün varlıklarının bulunduğu klasörü seçin. + + + Preview + Önizleme + + + Alternate text + Alternatif metin + + + Link target + Link hedefi + + + Description + Açıklama + + + Translate + Çeviri + + + None + Yok + + + Do not translate this image. + Bu resmi tercüme etmeyin. + + + Text + Metin + + + Translate alt text and description for this image. + Bu resim için alt metni ve açıklamayı çevirin. + + + All + Tümü + + + Do not include this image in translated version. + Bu görüntüyü tercüme edilmiş sürüme dahil etmeyin. + + + Variant + Çeşit + + + Show product variants + Ürün çeşitlerini göster + + + New product + Yeni ürün + + + Create new product + Yeni ürün oluştur + + + Add variant + Çeşit ekle + + + Add new variant to a given product + Belirli bir ürüne yeni çeşit ekle + + + Edit product + Ürünü düzenle + + + Edit product ID %s + %s ID'li ürünü düzenle + + + Copy product + Ürün kopyala + + + Copy product ID %s + %s ID'li ürünü kopyala + + + Move product + Ürün taşı + + + Move product ID %s + %s ID'li ürünü taşı + + + Delete product + Ürünü sil + + + Delete product ID %s + %s ID'li ürünü sil + + + Publish/unpublish product + Ürünü yayınla/yayından kaldır + + + Publish/unpublish product ID %s + %s ID'li ürünü yayınla/yayından kaldır + + + Product details + Ürün detayları + + + Show details of product ID %s + %s ID'li ürünün detaylarını göster + + + Advanced filter: + Gelişmiş filtreler: + + + Without images + Resimsiz + + + Unassigned products + Atanmamış ürünler + + + New products + Yeni ürünler + + + Added today + Bugün eklenen + + + Added this week + Bu hafta eklenen + + + Added this month + Bu ay eklenen + + + Manually sort products in a page + Ürünleri bir sayfada manuel olarak sırala + + + Product groups + Ürün grupları + + + Manage product groups + Ürün gruplarını yönet + + + Import assets + Varlıkları içe aktarma + + + Import images and other media from a folder + Görüntüleri ve diğer ortamları bir klasörden içe aktarın + + + Manage prices + Fiyatları yönet + + + Click the button to manage advanced prices for this product. + Bu ürün için gelişmiş fiyatları yönetmek için düğmeyi tıklayın. + + + Apply and close + Uygula ve kapat + + + Product variants + Ürün çeşitleri + + + Show variants for product ID %s + %s ID'li ürünün çeşitlerini göster + + + Generate variants + Çeşitler oluştur + + + Generate variants for product ID %s + %s ID'li ürün için çeşitler oluştur + + + Related products + İlgili ürünler + + + Manage related products for product ID %s + %s ID'li ürün ile ilgili ürünleri yönetin + + + Downloads + İndirmeler + + + Edit downloads for product ID %s + %s ID'liürün için indirmeleri düzenle + + + Currently: %s downloads. + Geçerli : %s indirme. + + + Move to group + Gruba taşı + + + Move product ID %s to a group + %s ID'li ürünü bir gruba taşı + + + Group + Grup + + + General Settings + Genel Ayarlar + + + Meta data + Meta veri + + + Pricing Settings + Fiyatlandırma Ayarları + + + Inventory Settings + Envanter Ayarları + + + Shipping Settings + Nakliye/Teslimat Ayarları + + + Product Options Settings + Ürün Seçenekleri Ayarları + + + Media Management + Medya Yönetimi + + + Expert settings + Uzman ayarları + + + Publishing + Yayınlama + + + Quantity + Adet + + + from %s pcs. + %s adetten . + + + Price + Ücret + + + <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>Bu özellikte kullanılabilecek iki farklı yol vardır:</p> +<ol> + <li>Seçtiğiniz kaynak klasörü, ürünün SKU'sunu veya adını eşleyen dosyaları içerir. Isotope eCommerce , tüm dosyalarınızı tüm ürünlerinizle eşleştirip ilgili ürünün assets klasörüne içe aktaracaktır.</li> + <li>Seçtiğiniz kaynak klasörü, ürünün SKU'sunu veya adını eşleşen alt klasörler içerir. Isotope eCommerce, tüm alt klasörleri tüm ürünlerinizle eşleştirecek ve bir alt klasördeki her şeyi ilgili ürünün varlık klasörüne içe aktaracaktır.</li> +</ol> +<p>İpucu: Herhangi bir geliştirici, yalnızca ürünün SKU'su veya adından farklı eşleştirme kuralları sağlayabilir. +</p> + + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_product_category.xlf b/system/modules/isotope/languages/tr/tl_iso_product_category.xlf new file mode 100644 index 0000000000..1cf98a150a --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_product_category.xlf @@ -0,0 +1,26 @@ + + + + + Move product + Ürün taşı + + + Move product ID %s + %s ID'li ürünü taşı + + + Paste at the top + En üste yapıştır + + + Paste after product ID %s + %s ID'li üründen sonra yapıştır + + + The frontend module must not have a sorting field configured for the manual sorting to be applied. + Ön uç modülünün, uygulanacak manuel sıralama için yapılandırılmış bir sıralama alanı bulunmamalıdır. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_product_collection.xlf b/system/modules/isotope/languages/tr/tl_iso_product_collection.xlf new file mode 100644 index 0000000000..fb62a94f73 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_product_collection.xlf @@ -0,0 +1,219 @@ + + + + + Order ID + Sipariş ID + + + Member (empty for guests) + Üye (misafirler için boş) + + + Unique ID + Benzersiz ID + + + Order status + Sipariş durumu + + + Select the status of this order. + Bu siparişin durumunu seçin. + + + Placed + Yerleştirilen + + + Source (Cart ID) + Kaynak (Sepet ID) + + + Payment date + Ödeme tarihi + + + Enter a date when this order has been paid. + Bu sipariş ödendiğinde bir tarih girin. + + + Shipped date + Nakllye tarihi + + + Enter a date when this order has been shipped. + Bu sipariş gönderildiğinde bir tarih girin. + + + Shop configuration + Mağaza yapılandırması + + + Payment method + Ödeme Şekli + + + Shipping method + Nakliye Şekli + + + Billing address + Fatura Adresi + + + Shipping address + Nakliye Adresi + + + Subtotal + Ara toplam + + + Subtotal without tax + Vergisiz ara toplam + + + Total + Toplam + + + Total without tax + Vergisiz toplam + + + Currency + Para birimi + + + + Language + Dil + + + Order notes + Sipariş notları + + + If you would like to convey information to other backend users, please do so here. + Diğer arka plan kullanıcılarına bilgi aktarmak isterseniz, lütfen bunu buradan yapın. + + + Edit order + Siparişi düzenle + + + Edit order ID %s + %s ID'li siparişi düzenle + + + Copy order + Siparişi kopyala + + + Copy order ID %s + %s ID'li siparişi kopyala + + + Delete order + Siparişi sil + + + Delete order ID %s + %s ID'li siparişi sil + + + Order details + Sipariş Detayları + + + Show details of order ID %s + %s ID'li siparişin detaylarını göster + + + Payment details + Ödeme detayları + + + Show payment details of order ID %s + %s ID'li siparişin ödeme detaylarını göster + + + Shipping details + Nakliye detayları + + + Show shipping details of order ID %s + %s ID'li siparişin nakliye detaylarını göster + + + Print a document + Bir belge yazdır + + + Print order ID %s with a document of your choice + Seçeceğiniz bir belge ile birlikte %s ID'li siparişi yazdırın. + + + Document + Belge + + + Choose the document you would like to print the data with. + Veriyle beraber yazdırmak istediğiniz belgeyi seçin. + + + Print + Yazdır + + + The status of your order has been updated. + Siparişinizin durumu güncellendi. + + + Notifications (e.g. email to client) have been sent. + Bildirimler (ör. Müşteri e-postası) gönderildi. + + + Notifications (e.g. email to client) clould not be sent. Check the system log. + Bildirimler (ör. Müşteri e-postası) gönderilemedi. Sistem günlüğünü kontrol edin. + + + Saferpay payment was sucessfully captured. + Saferpay ödemesi başarıyla alındı. + + + Saferpay payment could not be captured! Please check <a href="https://www.saferpay.com/BO/Login/" target="_blank">the Saferpay web interface</a>. + Saferpay ödemesi yakalanamadı! Lütfen <a href="https://www.saferpay.com/BO/Login/" target="_blank"> Saferpay web arayüzünü </a> kontrol edin. + + + 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 ödemeleri otomatik olarak iptal edilemez. Geri ödeme yapmak için <a href="https://www.saferpay.com/BO/Login/" target="_blank"> Saferpay web arayüzünü </a> kullanın. + + + No additional email data available. + Ek e-posta verileri yok. + + + Order status + Sipariş durumu + + + Order details + Sipariş Detayları + + + Email data + E-posta verisi + + + Billing address data + Fatura Adresi verisi + + + Shipping address data + Nakliye Adresi verisi + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_product_price.xlf b/system/modules/isotope/languages/tr/tl_iso_product_price.xlf new file mode 100644 index 0000000000..e2fc17c687 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_product_price.xlf @@ -0,0 +1,110 @@ + + + + + Price Tiers + Fiyat Katları + + + Setup at least one price tier for "Quantity 1". You can enter discount prices if the user orders more than one product. + "1 adet" için en az bir fiyat katmanı ayarlayın. Kullanıcı birden fazla ürün sipariş ederse indirimli fiyat girebilirsiniz. + + + Tax Class + Vergi Sınıfları + + + Please select a tax class for this price. + Lütfen bu fiyat için bir vergi sınıfı seçin. + + + Store configuration + Mağaza yapılandırması + + + Select a store configuration for this price. + Bu fiyat için bir mağaza yapılandırması seçin. + + + Member group + Üye grubu + + + Select a member group for this price. + Bu fiyat için bir üye grubu seçin. + + + Use from + Bu tarihten itibaren kullan + + + Do not use the price on the website before this day. + Web sitesinde fiyatı bu günden önce kullanmayın. + + + Use until + Bu tarihe kadar kullan + + + Do not use the price on the website after this day. + Web sitesinde fiyatı bu günden sonra kullanmayın. + + + Add price + Fiyat ekle + + + Add a new price to this product + Bu ürüne yeni fiyat ekle + + + Edit price + Fiyatı düzenle + + + Edit price ID %s + %s ID'li fiyatı düzenle + + + Duplicate price + Fiyatı kopyala + + + Duplicate price ID %s + %s ID'li fiyatı kopyala + + + Delete price + Fiyatı sil + + + Delete price ID %s + %s ID'li fiyatı sil + + + Price details + Fiyat detayları + + + Show details of price ID %s + %s ID'li fiyatın detaylarını göster + + + Quantity (min) + Adet (en az) + + + Price + Ücret + + + Price + Ücret + + + Limitations + Sınırlamalar + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_producttype.xlf b/system/modules/isotope/languages/tr/tl_iso_producttype.xlf new file mode 100644 index 0000000000..e3500a4fa2 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_producttype.xlf @@ -0,0 +1,246 @@ + + + + + Name + Ad + + + Please enter a name for this product type. + Lütfen bu ürün tipi için bir ad girin. + + + Product Class + Ürün Sınıfı + + + Please select a product class. Different product classes will handle products differently. + Lütfen bir ürün sınıfı seçin. Farklı ürün sınıfları ürünleri farklı şekilde ele alacaktır. + + + Default + Varsayılan + + + Check here if this is the default product type. + Varsayılan ürün tipi ise buraya bakın. + + + Description + Açıklama + + + A hint to product managers what this product type is for. + Ürün yöneticilerine bu ürün türünün ne anlama geldiğine dair bir ipucu. + + + Advanced pricing + Gelişmiş fiyatlandırma + + + Allow to define multiple prices per product, e.g. for different store configs, member groups or dates. + Ürün başına birden fazla fiyat tanımlamaya izin ver, ör. farklı mağaza yapılandırmaları, üye grupları veya tarihler için farklı fiyatlar. + + + Show price tiers + Fiyat katmanlarını göste + + + Show highest tier as lowest product price. + En yüksek katmanı en düşük ürün fiyatı olarak gösterin. + + + List template + Liste şablonu + + + Select a template for product listing. + Ürün listeleme için bir şablon seçin. + + + Reader template + Okuyucu şablonu + + + Select a template for product details. + Ürün ayrıntıları için bir şablon seçin. + + + List gallery + Liste galerisi + + + Select a gallery for product listing. + Ürün listeleme için bir galeri seçin. + + + Reader gallery + Okuyucu galerisi + + + Select a gallery for product details. + Ürün ayrıntıları için bir galeri seçin. + + + CSS class + CSS sınıfı + + + The class(es) will be added to the product list and reader templates. + Sınıf(lar), ürün listesine ve okuyucu şablonlarına eklenecek. + + + Attributes + Özellikler + + + Select the collection of attributes that should be included for this product type. + Bu ürün türü için dahil edilmesi gereken niteliklerin koleksiyonunu seçin. + + + Grouping + Gruplama + + + Group fields by topic (legends) + Konuya göre gruplandırılmış alanlar (efsaneler) + + + Alignment + Hizalama + + + Enter a tl_class to override alignment for this attribute. + Bu özellikte hizalamayı geçersiz kılmak için bir tl_class yazın. + + + Mandatory + Zorunlu + + + You can override the default mandatory-ness here. + Burada varsayılan zorunluluğu geçersiz kılabilirsiniz. + + + Default + Varsayılan + + + Enable variants + Çeşitleri etkinleştir + + + Check here if this product type has variants. + Bu ürün tipinde çeşit olup olmadığını kontrol edin. + + + Variant attributes + Çeşit nitelikleri + + + 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. + Bu ürün tipi için dahil edilmesi gereken çeşit öznitelikleri koleksiyonunu seçin. Seçilmemiş olanlar ana üründen devralınacak. + + + Always show variant attributes + Çeşit niteliklerini daima göster + + + Show a variant attribute (select, radio) even if there is only one choice. + Tek bir seçenek olsa bile bir çeşit niteliğini (seçim, radyo) gösterin. + + + Exempt from shipping + Nakliyeden muaf + + + Check if items of this product type are not a shipped item (such as downloadable products). + Bu ürün tipinin ürünlerinin fiziki taşıma gerektiren bir öğe olup olmadığını kontrol edin (indirilebilir ürünler gibi). + + + Enable downloads + İndirmeleri etkinleştir + + + Check here if this product type has downloads. + Bu ürün tipinin indirilmiş olup olmadığını kontrol edin. + + + New product type + Yeni ürün tipi + + + Create new product type. + Yeni ürün tipi ekle + + + Edit product type + Ürün tipini düzenle + + + Edit product type ID %s + %s ID'li ürün tipini düzenle + + + Copy product type definiton + Ürün türünün tanımını kopyala + + + Copy definition of product type ID %s + %s ID'li ürün tipinin tanımını düzenle + + + Delete product type + Ürün tipini sil + + + Delete product type ID %s + %s ID'li ürün tipini sil + + + product type details + ürün tipi detayları + + + Show details of product type ID %s + %s ID'li ürün tipinin detaylarını göster + + + Product type settings + Ürün tipi ayarları + + + Description + Açıklama + + + Prices + Fiyatlar + + + Templates + Şablonlar + + + Product attributes + Ürün nitelikleri + + + Variant attributes + Çeşit nitelikleri + + + Expert settings + Uzman ayarları + + + You must select at least one variant option (one of those: %s). + En az bir çeşit seçeneği seçmelisiniz (bunlardan birini : %s). + + + Attribute(s) "%s" cannot be enabled for both attributes and variant attributes. + Nitelik(ler) "%s" , hem nitelikler hem de çeşit nitelikleri için etkinleştirilemiyor. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_related_category.xlf b/system/modules/isotope/languages/tr/tl_iso_related_category.xlf new file mode 100644 index 0000000000..d9080c1872 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_related_category.xlf @@ -0,0 +1,58 @@ + + + + + Category name + Kategori adı + + + Please enter a name for this category. + Lütfen bu kategori için bir ad girin. + + + New category + Yeni kategori + + + Create a new category + Yeni bir kategori oluştur + + + Edit category + Kategoriyi düzenle + + + Edit category ID %s + %s ID'li kategoriyi düzenle + + + Duplicate category + Kategoriyi kopyala + + + Duplicate category ID %s + %s ID'Li kategoriyi kopyala + + + Delete category + Kategoriyi sil + + + Delete category ID %s + %s ID'li kategoriyi sil + + + Category details + Kategori detayları + + + Show details of category ID %s + %s ID'li kategorinin detaylarını göster + + + Name + Ad + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_related_product.xlf b/system/modules/isotope/languages/tr/tl_iso_related_product.xlf new file mode 100644 index 0000000000..333553f3d0 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_related_product.xlf @@ -0,0 +1,86 @@ + + + + + Category + Kategori + + + Select a category. + Bir kategori seçin + + + Products + Ürünler + + + Enter a comma-separated list of product or variant IDs to show as related products. + Bu grupla ilgili olarak gösterilecek ürünleri virgülle ayrılmış ürün olarak veya çeşit kimlikleri listesi oalrak girin. + + + Add category + Kategori ekle + + + Add a new category with products + Bu ürüne yeni bir kategori ekle + + + Edit category + Kategoriyi düzenle + + + Edit category ID %s + %s ID'li kategoriyi düzenle + + + Duplicate category + Kategoriyi kopyala + + + Duplicate category ID %s + %s ID'Li kategoriyi kopyala + + + Move category + Kategoriyi taşı + + + Move category ID %s + %s ID'li kategoriyi taşı + + + Delete category + Kategoriyi sil + + + Delete category ID %s + %s ID'li kategoriyi sil + + + Category details + Kategori detayları + + + Show details of category ID %s + %s ID'li kategorinin detaylarını göster + + + Edit product + Ürünü düzenle + + + Edit this product + Bu ürünü düzenle + + + Category + Kategori + + + Related products + İlgili ürünler + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_shipping.xlf b/system/modules/isotope/languages/tr/tl_iso_shipping.xlf new file mode 100644 index 0000000000..2202e3da34 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_shipping.xlf @@ -0,0 +1,338 @@ + + + + + Shipping Method Name + Nakliye Şekli Adı + + + Please enter a name for this shipping method. + Lütfen bu nakliye yöntemi için bir ad girin. + + + Shipping Method Type + Nakliye Şekli Tipi + + + Please select the type of this shipping method + Lütfen bu nakliye yönteminin tipini seçin + + + Price + Ücret + + + Optionally enter a price for this shipping method. + İsteğe bağlı olarak, bu nakliye yöntemi için bir fiyat girin. + + + Shipping Method Notes + Nakliye Şekli Notları + + + These will be displayed on the front end in association with this shipping option. + Bu notlar, bu nakliye seçeneğiyle bağlantılı olarak müşteriye görüntülenir. + + + Tax Class + Vergi Sınıfları + + + Select a tax class that applies to the shipping price. + Nakliye fiyatı için geçerli bir vergi sınıfı seçin. + + + Label + Etiket + + + This is displayed on the front end in association with the shipping option. + Bu, nakliye seçeneğiyle bağlantılı olarak müşteriye görüntülenir. + + + Flat calculation + Düz hesaplama + + + Select the mode of price calculation. + Fiyat hesaplama modunu seçin. + + + Countries + Ülkeler + + + Select the countries this shipping method applies to. If you don't select anything, the shipping method will be applied to all countries. + Bu nakliye yönteminin uygulandığı ülkeleri seçin. Hiçbir şey seçmezseniz, nakliye yöntemi tüm ülkelere uygulanır. + + + State/Regions + Eyalet/Bölgeler + + + 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. + Bu nakliye yönteminin uygulandığı eyaletleri / bölgeleri seçin. Herhangi bir şey seçmezseniz, nakliye yöntemi tüm eyalet / bölgeler için uygulanır. + + + Postal codes + Posta kodları + + + Limit this shipping module to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + Bu sevkıyat modülünü posta kodlarıyla sınırlayın. Virgülle ayrılmış bir liste ve aralık girebilirsiniz (Örn. 1234,1235,1236-1239,1100-1200). + + + Minimum subtotal + Minimum ara toplam + + + Enter a minimum amount to control availability based on the cart subtotal. + Alışveriş sepeti ara toplamına dayalı olarak doluluk durumunu kontrol etmek için minimum bir tutar girin. + + + Maximum subtotal + Maksimum ara toplam + + + Enter a maximum amount to control availability based on the cart subtotal. + Uygunluğu kontrol etmek için sepet ara toplamına dayalı maksimum miktarı girin. + + + Minimum weight + Minimum ağırlık + + + Enter a minimum weight to control availability based on the products in cart. + Uygunluğu, alışveriş sepetindeki ürünler temel alınarak kontrol etmek için minimum bir ağırlık girin. + + + Maximum weight + Maksimum ağırlık + + + Enter a maximum weight to control availability based on the products in cart. + Uygunluğu, alışveriş sepetindeki ürünler temel alınarak kontrol etmek için maksimum bir ağırlık girin. + + + Quantity calculation mode + Adet hesaplama modu + + + Select a calculation mode for min/max quantity. + Min / maks adet için bir hesaplama modu seçin. + + + Total quantity in cart + Sepetteki toplam adet + + + Total products in cart + Sepetteki Toplam Ürün + + + Minimum quantity + Minimum adet + + + Enter a number greater zero to exclude this shipping method for orders with lower quantity. + Daha düşük adetli siparişlerde bu nakliye yöntemini hariç tutmak için daha büyük bir sayı girin. + + + Maximum quantity + Maximum adet + + + Enter a number greater zero to exclude this shipping method for orders with higher quantity. + Daha fazla miktarda adet için bu gönderim yöntemini hariç tutmak için sıfırdan büyük bir sayı girin. + + + Product types + Ürün tipleri + + + 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. + Bu nakliye yöntemini belirli ürün türlerine göre kısıtlayabilirsiniz. Alışveriş sepeti, seçmediğiniz bir ürün türünü içeriyorsa, gönderim modülü kullanılamaz. + + + Product type condition + Ürün tipi koşulu + + + Select how the product type filter should be applied. + Ürün tipi filtresinin nasıl uygulanacağını seçin. + + + Store configurations + Mağaza yapılandırmaları + + + You can restrict this shipping method to certain shop configurations. + Bu gönderim yöntemini belirli mağaza yapılandırmalarıyla sınırlandırabilirsiniz + + + Shipping methods + Nakliye yöntemleri + + + Select the shipping methods to group in this method. + Bu yöntemde gruplamak için nakliye yöntemlerini seçin. + + + Group calculation + Grup hesaplama + + + Select how the price of this shipping method should be calculated. + Bu nakliye yönteminin fiyatının nasıl hesaplanacağını seçin. + + + Member Groups + Üye Grupları + + + Restrict this shipping option to certain member groups. + Bu nakliye seçeneğini belirli üye gruplarla sınırlayın. + + + Protect module + Koruma modülü + + + Show the module to certain member groups only. + Modülü yalnızca belirli üye gruplara gösterin. + + + Show to guests only + Sadece misafirlere gösterin + + + Hide the module if a member is logged in. + Bir üye oturum açarsa modülü gizleyin. + + + Enabled + Etkinleştirildi + + + Is the module available for use in the store? + Modül mağazada kullanılabilir mi? + + + Title and type + Başlık ve tip + + + Shipping note + Nakliye notu + + + Configuration + Yapılandırma + + + Pricing threshold and tax class applicability + Fiyatlandırma eşiği ve vergi sınıfı uygulanabilirliği + + + Expert settings + Uzman ayarları + + + Approval + Onay + + + New shipping method + Yeni nakliye yöntemi + + + Create a New shipping method + Yeni nakliye yöntemi oluştur + + + Edit shipping method + Nakliye yöntemini düzenle + + + Edit shipping method ID %s + %s ID'li nakliye yöntemini düzenle + + + Copy shipping method + Nakliye yöntemini kopyala + + + Copy shipping method ID %s + %s ID'li nakliye yöntemini kopyala + + + Delete shipping method + Nakliye yöntemini sil + + + Delete shipping method ID %s + %s ID'li nakliye yöntemini sil + + + Enable/disable shipping method + Nakliye yöntemini etkinleştir/devre dışı bırak + + + Enable/disable shipping method ID %s + %s ID'li nakliye yöntemini etkinleştir/devre dışı bırak + + + Shipping method details + Nakliye yöntemi detaylarını gör + + + Show details of shipping method ID %s + %s ID'li nakliye yöntemi detaylarını gör + + + Flat + Düz + + + Per Product + Her Üründe + + + Per Item + Her öğede + + + Price of the first available method + İlk uygun yöntemin fiyatı + + + Lowest price of available methods + Kullanılabilir yöntemlerin en düşük fiyatı + + + Highest price of available methods + Kullanılabilir yöntemlerin en yüksek fiyatı + + + Summed price of available methods + Kullanılabilir yöntemlerin toplam fiyatı + + + Enable if only these product types are in cart + Yalnızca bu ürün tipleri sepette olduğunda etkinleştir + + + Enable if all these product types are in cart + Tüm ürün tipleri sepette olduğunda etkinleştir + + + Enable if one of these product types is in cart + Bu ürün tiplerinden birisi alışveriş sepetinde bulunuyorsa etkinleştir + + + Calculate price for these product types + Bu ürün tipleri için fiyatı hesapla + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_tax_class.xlf b/system/modules/isotope/languages/tr/tl_iso_tax_class.xlf new file mode 100644 index 0000000000..155f119a26 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_tax_class.xlf @@ -0,0 +1,110 @@ + + + + + Name + Ad + + + Give this tax class a name that explains what it is used for. + Bu vergi sınıfına, ne için kullanıldığını açıklayan bir isim verin. + + + Default + Varsayılan + + + Check here if this is the default tax class. + Varsayılan vergi sınıfıysa buraya tıklayın. + + + Tax rate included with product price + Ürün fiyatına dahil vergi oranı + + + 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. + Bu vergi sınıfına sahip ürünlerin fiyatları bir vergi oranı içeriyorsa seçin. Bu vergi oranı, eşleşmiyorsa, ürün fiyatından çıkarılır. + + + Include label + Etiket ekle + + + 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. + Çıkarılmış vergileri için sunmak için gereken emirler için bir etiket (eğer veriliyorsa vergi uyuşmuyor). Boş ise, varsayılan vergi oranı etiketi kullanılacaktır + + + Apply tax rates + Vergi oranlarını uygula + + + Add these tax rates to products with this tax class. + Bu vergi oranlarını, bu vergi sınıfına sahip ürünlere ekleyin. + + + Apply rounding increment + Yuvarlama artışını uygula + + + Check here if you want to apply the rounding increment of your shop config. + Mağaza yapılandırmanıza yuvarlama artışını uygulamak istiyorsanız burayı tıklayın. + + + Not negative + Negatif değil + + + Prevents negative value for this tax (negative amount will be adjusted to 0.00). + Bu vergi için negatif değeri önler (negatif tutar 0.00 olarak ayarlanır). + + + New tax class + Yeni vergi sınıfı + + + Create a new tax class + Yeni vergi sınıfı oluştur + + + Edit tax class + Vergi sınıfını düzenle + + + Edit tax class ID %s + %s ID'li vergi sınıfını düzenle + + + Copy tax class + Vergi sınıfını kopyala + + + Copy tax class ID %s + %s ID'li vergi sınıfını kopyala + + + Delete tax class + Vergi sınıfını sil + + + Delete tax class ID %s + %s ID'li vergi sınıfını sil + + + Tax class details + Vergi sınıfı detayları + + + Show details of tax class ID %s + %s ID'li vergi sınıfının detaylarını göster + + + Name + Ad + + + Tax rates + Vergi oranları + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_iso_tax_rate.xlf b/system/modules/isotope/languages/tr/tl_iso_tax_rate.xlf new file mode 100644 index 0000000000..71da62c816 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_iso_tax_rate.xlf @@ -0,0 +1,186 @@ + + + + + Name + Ad + + + Enter a name for this tax rate. + Bu vergi oranı için bir ad girin + + + Label + Etiket + + + This label will be used on the front end in the checkout process. + Bu etiket, ödeme sürecinde müşteriye gösterilecektir. + + + Address to use for calculation + Hesaplamada kullanılacak adres + + + 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. + Bu oranın hesaplamasını yapmak için hangi adresin kullanılması gerektiğini seçin. Gönderilemeyen ürünler için gönderim adresinin faturalandırma adresine eşit olacağını unutmayın. + + + Countries + Ülkeler + + + Select the countries this tax class applies to. + Bu vergi sınıfının geçerli olduğu ülkeleri seçin. + + + States/Regions + Eyaletler/Bölgeler + + + Select the states or regions this tax class applies to. + Bu vergi sınıfının uygulanacağı eyaletleri veya bölgeleri seçin. + + + Postal codes + Posta kodları + + + Limit the tax rate to postal codes. You can enter a comma separated list and ranges (e.g. 1234,1235,1236-1239,1100-1200). + ergi oranını posta kodlarıyla sınırlayın. Virgülle ayrılmış bir liste ve aralık girebilirsiniz (örn. 1234,1235,1236-1239,1100-1200). + + + Subtotal amount restriction + Arat toplam tutar kısıtlaması + + + Optional: Restrict this tax rate to specific subtotal amount (such as for a luxury tax.) + İsteğe bağlı: Bu vergi oranını belirli alt toplam tutara göre (ör. Lüks bir vergi için) sınırlayın. + + + Tax rate + Vergi oranı + + + A rate in percent this tax is set at. + Bu vergi oranı yüzde olarak belirlenmiştir. + + + Store configuration + Mağaza yapılandırması + + + Select the store configuration that the tax rate applies to. + Vergi oranının geçerli olduğu mağaza yapılandırmasını seçin. + + + Exempt on valid VAT number + Geçerli vergi numarasında muaf tut + + + Do not apply tax if the VAT number is valid. + Vergi numarası geçerli ise vergi uygulamayın. + + + Stop calculations on trigger? + Tetiklemeyle ilgili hesaplamaları durdurun? + + + Stop other calculations if this tax rate is triggered. + Bu vergi oranı tetiklenirse diğer hesaplamaları durdurun. + + + Member groups + Üye grupları + + + Restrict this tax rate to certain member groups. + Bu vergi oranını belirli üye gruplarııyla sınırlandırın. + + + Protect tax rate + Vergi oranını koru + + + Apply the tax rate to certain member groups only. + Vergi oranını yalnızca belirli üye gruplara uygulayın. + + + Apply to guests only + Sadece misafirlere uygula + + + Do not apply tax rate if a member is logged in. + Bir üye oturum açtıysa vergi oranını uygulama. + + + New tax rate + Yeni vergi oranı + + + Create a new tax rate + Yeni vergi oranı oluştur + + + Edit tax rate + Vergi oranını düzenle + + + Edit tax rate ID %s + %s ID'li vergi oranını düzenle + + + Copy tax rate + Vergi oranını kopyala + + + Copy tax rate ID %s + %s ID'li vergi oranını kopyala + + + Delete tax rate + Vergi oranını sil + + + Delete tax rate ID %s + %s ID'li vergi oranını sil + + + Tax rate details + Vergi oranı detayları + + + Show details of tax rate ID %s + %s ID'li vergi oranının detaylarını göster + + + Billing Address + Fatura Adresi + + + Shipping Address + Nakliye Adresi + + + Name + Ad + + + Rate + Oran + + + Location + Konum + + + Conditions + Koşullar + + + Configuration + Yapılandırma + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_maintenance.xlf b/system/modules/isotope/languages/tr/tl_maintenance.xlf new file mode 100644 index 0000000000..3ea866d0ee --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_maintenance.xlf @@ -0,0 +1,22 @@ + + + + + Purge Isotope product cache + Isotope ürün ön belleğini temizle + + + Truncates the <em>tl_iso_productcache</em> table which caches the products found for each product list on your page. + Sayfanızdaki her ürün listesinde bulunan ürünleri ön belleğe alan <em> tl_iso_productcache </ em> tablosunu boşaltır. + + + Purge Isotope request cache + Isotope istek ön belleğini temizle + + + Truncates the <em>tl_iso_requestcache</em> table which caches information from the filter module for short URLs. + Kısa URL'ler için filtreleme modülünden bilgileri önbelleğe alan <em> tl_iso_requestcache </ em> tablosunu boşaltır. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_member.xlf b/system/modules/isotope/languages/tr/tl_member.xlf new file mode 100644 index 0000000000..2f9b5ff11f --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_member.xlf @@ -0,0 +1,14 @@ + + + + + Address Book + Adres Defteri + + + Manage the address book for member ID %s. + %s üye ID'si için defterini yönetin. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_module.xlf b/system/modules/isotope/languages/tr/tl_module.xlf new file mode 100644 index 0000000000..8dab9409b0 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_module.xlf @@ -0,0 +1,574 @@ + + + + + Product list template + Ürün listesi şablonu + + + Please choose a list layout. List template files start with <em>iso_list_</em>. + Lütfen bir liste düzeni seçin. Liste şablonu <em>iso_list_</em> dosyaları ile başlar. + + + Product reader template + Ürün okuyucu şablonu + + + Please choose a reader template. Reader template files start with <em>iso_reader_</em>. + Lütfen bir okuyucu şablonu seçin. Okuyucu şablon <em>iso_reader_</em> dosyaları ile başlar. + + + Gallery + Galeri + + + Select a gallery to render images (overrides the product type config). + Resimleri oluşturmak için bir galeri seçin (ürün tipi yapılandırmasını geçersiz kılar). + + + Product collection template + Ürün koleksiyon şablonu + + + 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>. + Lütfen ürünleri üretmek için bir şablon seçin. <Em> şablonları </ em> klasörüne özel toplama şablonları ekleyebilirsiniz. Koleksiyon şablonu dosyaları <em> iso_collection _ </ em> ile başlar. + + + Filter template + Filtre şablonu + + + Please choose a filter template. Filter template files start with <em>iso_filter_</em>. + Lütfen bir filtre şablonu seçin. Filtre şablonu <em>iso_filter_</em> dosyaları başlamaktadır. + + + Redirect to first product + İlk ürüne yönlendirme + + + Check here if users are redirected to the first product of the list. + Kullanıcıların listenin ilk ürününe yönlendirilip yönlendirilmediğini kontrol edin. + + + Hide in reader mode + Okuyucu modunda gizle + + + Hide product list when a product alias is found in the URL. + URL'de bir ürün takma adı bulunursa ürün listesini gizleyin. + + + Enable quantity + Adedi etkinleştir + + + Allow users to specify 1 or more of a product to be purchased. + Kullanıcıların satın alınacak 1 veya daha fazla ürünü belirtmesine izin verin. + + + Display a 404 page + Bir 404 hata sayfası göster + + + 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. + URL'de ürün takma adı yoksa, 404 bulunamadı sayfasını görüntüleyin. Okuyucu modülünüz aksi halde mevcut olmamalı ayrı bir sayfada bulunuyorsa bunu kullanın. + + + Checkout method + Ödeme methodu + + + Choose your checkout method. + Ödeme yönteminizi seçin. + + + Require login + Oturum açma gerektirir + + + A member login is required to view this page (e.g. if the order belongs to a member). + Bu sayfayı görüntülemek için bir üye girişi gerekir (örneğin, sipariş bir üyeye aitse). + + + Login page + Giriş sayfası + + + Select the page where a member can login. + Bir üyenin oturum açabileceği sayfayı seçin. + + + Add product jump to page + Sayfaya ürün atlama ekle + + + This setting defines to which page a user will be redirected when adding a product to the cart, if other than the current page. + Bu ayar, geçerli sayfanın dışındaysa, sepete bir ürün eklerken bir kullanıcının hangi sayfaya yönleneceğini tanımlar. + + + Columns + Sütunlar + + + Enter a number of columns to display width-wise in the listing template. + Giriş şablonunda genişlik yönünde görüntülemek için bir dizi sütun girin. + + + Store configuration + Mağaza yapılandırması + + + Select the store configuration that this module will be used for. + Bu modülün kullanılacağı mağaza yapılandırmasını seçin. + + + Store configurations + Mağaza yapılandırmaları + + + Select the store configurations that this module will be used for. + Bu modülün kullanılacağı mağaza yapılandırmasını seçin. + + + Payment methods + Ödeme yöntemleri + + + Select one or more payment methods for this checkout module. + Bu ödeme modülü için bir veya daha fazla ödeme yöntemi seçin. + + + Shipping methods + Nakliye yöntemleri + + + Select one or more shipping methods for this checkout module. + Bu ödeme modülü için bir veya daha fazla gönderim yöntemi seçin. + + + Completed order jump to page + Sipariş tamamlandığında sayfaya atla + + + Select a page the customer will be referred to after their order is complete. + Müşterilerin siparişleri tamamlandıktan sonra yönlendirilecekleri bir sayfa seçin. + + + Forward to review page + İnceleme sayfasına ilet + + + Forward the user to the review page if no data is required on any step. + Herhangi bir adımda veri gerekmiyorsa, kullanıcıyı inceleme sayfasına iletin. + + + Skip checkout steps + Ödeme adımlarını atla + + + Enable individual options to skip certain checkout steps if possible + Mümkünse, belirli ödeme adımlarını atlamak için bireysel seçenekleri etkinleştirin + + + Use member address as billing address if user is logged in + Kullanıcı oturum açtıysa, üye adresini faturalandırma adresi olarak kullanın + + + Always use billing address as shipping address + Her zaman faturalandırma adresini gönderim adresi olarak kullanın + + + Skip shipping step if only one shippig method is available + Tek bir gönderim yöntemi varsa, nakliye adımını atla + + + Skip payment step if only one payment method is available + Yalnızca bir ödeme yöntemi varsa ödeme adımını atla + + + Order conditions form + Sipariş koşulları formu + + + Choose a custom form that is used to display your order terms and conditions (optional). + Sipariş şartlarınızı ve koşullarınızı görüntülemek için kullanılan özel bir form seçin (isteğe bağlı). + + + Position of order conditions form + Sipariş koşullarının konumu + + + Define if the order condition form should be shown before or after the products list. + Sipariş durumu formunun, ürün listesinden önce veya sonra gösterilip gösterilmeyeceğini tanımlayın. + + + On top (before address) + Yukarıda (adres öncesi) + + + Before products list + Ürünlerin listesinden önce + + + After products list + Ürünlerin listesinden sonra + + + Add to address book + Adres defterine ekle + + + Add new addresses to members address book (if logged in). + Üyelerin adres defterine yeni adresler ekleyin (eğer giriş yapmışsa). + + + Sorting + Sıralama + + + Define in what order the collection items should be listed. + Koleksiyon öğelerinin hangi sırayla listeleneceğini tanımlayın + + + Define empty message + Boş mesajı tanımla + + + Set a custom message when there is nothing to show (empty product list, empty cart, etc.). + Göstermek için hiçbir şey yoksa özel bir ileti ayarlayın (boş ürün listesi, boş sepet vb.). + + + Message when empty + Boş iken mesaj + + + Enter a custom message if there is nothing to show (empty product list, empty cart, etc.). + Göstermek için hiçbir şey yoksa özel bir ileti ayarlayın (boş ürün listesi, boş sepet vb.). + + + Define a message if no filter is set + Hiçbir filtre ayarlanmadıysa bir mesaj tanımlayın + + + Set a custom message when there is no filter set. + Filtre seti olmadığında özel mesaj ayarlayın. + + + Message when no filter is set + Hiçbir filtre ayarlanmadığında mesaj + + + Enter a custom message if there is no filter set. + Filtre seti yoksa, özel bir mesaj girin. + + + Category Scope + Kategori Kapsamı + + + Specify the scope of a product lister. + Bir ürün listesinin kapsamını belirtin. + + + Condition + Koşul + + + 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>)! + Burada ürünleri süzmek için bir SQL koşul girebilirsiniz. Alanlara "tl_iso_product" öneki gerekir. (Ör. <Em> tl_iso_product.featured = 1 </ em> veya <em> tl_iso_product.color! = 'Kırmızı' </ em>)! + + + Filter modules + Filtre modülleri + + + Select the filter modules you want to consider for this product list. + Bu ürün listesi için göz önüne getirmek istediğiniz filtre modüllerini seçin. + + + Enabled filters + Etkin filtreler + + + Please select filters to enable. + Lütfen etkinleştirilecek filtreleri seçin. + + + Filter configuration + Filtre yapılandırma + + + Please configure the cumulative filter fields. + Lütfen toplu filtre alanlarını yapılandırın. + + + Attribute + Özellik + + + Query Type + Sorgu Türü + + + AND + AND + + + OR + OR + + + Number of results + Sonuç sayısı + + + Do not show + Gösterme + + + Show total + Toplamı göster + + + Show difference + Farkı göster + + + Hide single options + Tek seçeneği gizle + + + Hide filter field if there is just one option. + Yalnızca bir seçenek varsa filtre alanını gizleyin. + + + Enabled search fields + Etkin arama alanları + + + Please select search fields to enable. + Lütfen etkinleştirilecek arama alanlarını seçin. + + + Autocomplete search field + Otomatik tamamlama arama alanı + + + If you select a field here, the search will be autocompleted by the values of that field. + Burada bir alan seçerseniz, arama o alanın değerlerine göre otomatik tamamlanır. + + + Enabled sorting fields + Etkin sıralama alanları + + + Please select orderable fields to enable. + Lütfen etkinleştirmek için sıralanabilir alanları seçin. + + + Filtering for new products + Yeni ürünler için filtreleme + + + 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. + Mağaza yapılandırmanızda ürünleri "yeni" olarak yapılandırdıysanız, eskilerini, yenilerini filtreleyebilir veya sadece tüm ürünleri görüntüleyebilirsiniz. + + + Show all products + Tüm ürünleri göster + + + Only show new products + Sadece yen ürünleri göster + + + Only show old products + Sadece eski ürünleri göster + + + Enable per-page limiting + Sayfa başına sınırlamayı etkinleştir + + + Allow the user to select the number of records to show per page. + Kullanıcının, sayfa başına gösterilecek kayıt sayısını seçmesine izin verin. + + + Per page options + Sayfa başı seçenekleri + + + 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. + Sınır açılır listesine virgülle ayrılmış bir liste girin. İlk seçenek varsayılan değer olarak kullanılacaktır. Değerler otomatik olarak numaraya göre sıralanır. + + + Shopping Cart Jump to page + Alışveriş Sepeti sayfaya atla + + + This setting defines to which page a user will be redirected when requesting a full shopping cart view. + Bu ayar, bir tam alışveriş sepeti görüntüsü istendiğinde bir kullanıcının hangi sayfaya yönleneceğini tanımlar. + + + Checkout Jump to page + Ödeme sayfaya atla + + + This setting defines to which page a user will be redirected when completing their transaction. + Bu ayar, bir kullanıcının işlemini tamamlarken hangi sayfaya yönlendirileceğini tanımlar. + + + Initial sorting field + İlk sıralama alanı + + + Select a sorting field to sort the listing by on first page load. + İlk sayfadaki yüklemede sıralamayı yapmak için bir sıralama alanı seçin. + + + Initial sorting direction + İlk sıralama yönü + + + Select a initial sorting direction. + Bir başlangıç sıralama yönü seçin. + + + Buttons + Düğmeler + + + Select the buttons you want to show. + Göstermek istediğiniz düğmeleri seçin. + + + Related categories + Önerilen kategoriler + + + Select the categories to show products of. + Ürünleri göstermek için kategorileri seçin. + + + Include messaging + Mesajlaşma ekle + + + This setting allows the module to include any errors, notifications, or confirmations the visitor should be aware of. + Bu ayar, modülün ziyaretçinin farkında olması gereken tüm hataları, bildirimleri veya onayları içermesine izin verir. + + + Enable "Continue shopping" button + "Alışverişe devam et" düğmesi etkin + + + Add a link to the currently added product to the cart. + Geçerli ürünün sepete eklenmesi için bir bağlantı ekleyin. + + + Address types + Adres türleri + + + Please choose the address types. + Lütfen adres türlerini seçin. + + + Billing address + Fatura Adresi + + + Shipping address + Nakliye Adresi + + + Available address fields + Kullanılabilir adres alanları ekleyin + + + Choose the available address fields you would like to display. + Görüntülemek istediğiniz adres alanlarını seçin. + + + Order conditions form + Sipariş koşulları formu + + + Login/Registration required + Oturum açma/Kayıt gerektirir + + + Guest checkout only + Yalnızca misafir ödemesi + + + Both allowed + Her ikisine de izin verilir + + + All Categories + Tüm Kategoriler + + + Show all products that are assigned to a page of the active page tree (based on the root page). + Aktif sayfa ağacının bir sayfasına atanan tüm ürünleri gösterin (kök sayfaya dayalı olarak). + + + Current Category and First Child Category + Geçerli Kategori ve İlk Yavru Kategori + + + Show all products that are assigned to the active page or child pages on the first sublevel. + Etkin sayfaya veya alt sayfalara atanan tüm ürünleri birinci alt seviyede gösterin. + + + Current Category and All Child Categories + Geçerli Kategori ve İlk Yavru Kategoriler + + + Show all products that are assigned to the active page or any child page of it. + Etkin sayfaya veya sayfanın alt sayfasına atanan tüm ürünleri gösterin. + + + Current Category + Geçerli Kategori + + + Show all products that are assigned to the active page (default). + Aktif sayfaya atanan tüm ürünleri göster (varsayılan). + + + Parent Category + Ana Kategori + + + Show all products that are assigned to the parent page of the active page. + Aktif sayfanın üst sayfasına atanan tüm ürünleri gösterin. + + + Current Product's Categories + Mevcut Ürünün Kategorileri + + + Show all products that are assigned to the same pages the currently active product is assigned to. + Geçerli olan ürünün atandığı aynı sayfalara atanan tüm ürünleri gösterin. + + + Category of article + Makale kategorisi + + + 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). + Modülü bir makaleye yerleştirirseniz, makaleyi başka bir sayfaya yerleştirirseniz (ör. Insert etiketi kullanarak) bile, makalenin ana sayfasına atanan ürünleri gösterecektir. + + + ASC + ASC + + + DESC + DESC + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_nc_notification.xlf b/system/modules/isotope/languages/tr/tl_nc_notification.xlf new file mode 100644 index 0000000000..aede710c4a --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_nc_notification.xlf @@ -0,0 +1,58 @@ + + + + + Product collection template + Ürün koleksiyon şablonu + + + Please choose a template to render the products for the notification content. + Lütfen bildirim içeriğinde ürünler sunmak için bir şablon seçin. + + + Sorting + Sıralama + + + Define in what order the collection items should be listed. + Koleksiyon öğelerinin hangi sırayla listeleneceğini tanımlayın. + + + Gallery + Galeri + + + Select a gallery to render images. + Görüntüleri oluşturmak için bir galeri seçin. + + + Document + Belge + + + If you would like to attach a document to the notification, choose one here and use the simple token in the notification center. + Bildirime bir belge eklemek isterseniz, buradan bir tane seçin ve bildirim merkezinde basit jetonu kullanın. + + + Isotope eCommerce + Isotope eCommerce + + + Order status change + Sipariş durumu değişikliği + + + This notification type can be sent when the order status changes. + Bu bildirim türü, sipariş durumu değiştiğinde gönderilebilir. + + + Addressbook change + Adres Defteri Değişikliği + + + This notification type can be sent when the customer makes changes in his addressbook. + Bu bildirim türü, müşteri adres defterinde değişiklik yaptığında gönderilebilir. + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_page.xlf b/system/modules/isotope/languages/tr/tl_page.xlf new file mode 100644 index 0000000000..ffc48c3b81 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_page.xlf @@ -0,0 +1,42 @@ + + + + + Store Configuration + Mağaza Yapılandırması + + + Select a store configuration for this page structure. + Bu sayfa yapısı için bir mağaza yapılandırması seçin. + + + Use reader page + Okuyucu sayfasını kullan + + + Overwrite the configuration of this page if product details are shown. See help wizard of the page selection for more information. + Ürün ayrıntıları gösteriliyorsa, bu sayfanın yapılandırmasının üzerine yazın. Daha fazla bilgi için sayfa seçiminin yardım sihirbazına bakın. + + + Reader page + Okuyucu sayfası + + + Select a page for your page reader. + Sayfa okuyucunuz için bir sayfa seçin. + + + Store ID + Mağaza 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. + Birden çok kök sitesinde bir mağaza gruplamak için farklı mağaza kimlikleri kullanın. Üyelerin alışveriş sepeti ve adresleri, aynı mağaza ID'lerinde paylaşılacak. + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_settings.xlf b/system/modules/isotope/languages/tr/tl_settings.xlf new file mode 100644 index 0000000000..823c2b8ca3 --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_settings.xlf @@ -0,0 +1,22 @@ + + + + + Guest cart timeout + Misafir alışveriş sepeti zaman aşımı + + + Enter the maximum lifetime of a guest cart in seconds (30 days = 2592000 seconds). + Misafir kullanıcılar için alışveriş sepetinin maksimum kullanım ömrünü saniye cinsinden girin (30 gün = 2592000 saniye). + + + Order timeout + Sipariş zaman aşımı + + + Enter how long an order will stay in the database if the checkout was not successful (7 days = 604800 seconds). + Ödemenin başarısız olması durumunda bir siparişin veritabanında kalacağı süreyi girin (7 gün = 604800 saniye). + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_user.xlf b/system/modules/isotope/languages/tr/tl_user.xlf new file mode 100644 index 0000000000..dd4bfbb80d --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_user.xlf @@ -0,0 +1,134 @@ + + + + + Isotope modules + Isotope modülleri + + + Select which store configuration modules user of this group can access. + Bu grubun kullanıcısının hangi mağaza yapılandırma modüllerine erişebileceğini seçin. + + + Allowed product types + İzin verilen ürün tipleri + + + Here you can grant access to one or more product types. + Burada bir veya daha fazla ürün tipine erişim izni verebilirsiniz. + + + Product type permissions + Ürün tipi izinleri + + + Here you can define the product type permissions. + Burada ürün tipinin izinlerini tanımlayabilirsiniz. + + + Allowed payment modules + İzin verilen ödeme modülleri + + + Here you can grant access to one or more payment modules. + Burada bir veya daha fazla ödeme modülüne erişim izni verebilirsiniz. + + + Payment module permissions + Ödeme modülü izinleri + + + Here you can define the payment module permissions. + Burada ödeme modülü izinlerini tanımlayabilirsiniz. + + + Allowed shipping modules + İzin verilen nakliye modülleri + + + Here you can grant access to one or more shipping modules. + Burada bir veya daha fazla nakliye modülüne erişim izni verebilirsiniz. + + + Shipping module permissions + Nakliye modülü izinleri + + + Here you can define the shipping module permissions. + Burada nakliye modülü izinlerini tanımlayabilirsiniz. + + + Allowed tax classes + İzin verilen vergi sınıfları + + + Here you can grant access to one or more tax classes. + Burada bir veya daha fazla vergi sınıfına erişim izni verebilirsiniz. + + + Tax class permissions + Vergi sınıfı izinleri + + + Here you can define the tax class permissions. + Burada vergi sınıfı izinlerini tanımlayabilirsiniz. + + + Allowed tax rates + İzin verilen vergi oranları + + + Here you can grant access to one or more tax rates. + Burada bir veya daha fazla vergi oranına erişim izni verebilirsiniz. + + + Tax rate permissions + Vergi oranı izinleri + + + Here you can define the tax rate permissions. + Burada vergi oranı izinlerini tanımlayabilirsiniz. + + + Allowed store configurations + İzin verilen mağaza yapılandırmaları + + + Here you can grant access to one or more store configurations. + Burada bir veya daha fazla mağaza yapılandırmasına erişim izni verebilirsiniz. + + + Store configuration permissions + Mağaza yapılandırma izinlerini + + + Her you can define the store configuration permissions. + Burada mağaza yapılandırma izinlerini tanımlayabilirsiniz. + + + Allowed product groups + İzin verilen ürün grupları + + + Limit access to product groups for this user group. Gets inherited. + Bu kullanıcı grubu için ürün gruplarına erişimi sınırlayın. Miras alır. + + + Product group permissions + Ürün grubu izinleri + + + Here you can define the product group permissions. + Burada, ürün grubu izinlerini tanımlayabilirsiniz. + + + Isotope eCommerce + Isotope eCommerce + + + Access to root node + Kök düğüme erişim + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tl_user_group.xlf b/system/modules/isotope/languages/tr/tl_user_group.xlf new file mode 100644 index 0000000000..27f04972ad --- /dev/null +++ b/system/modules/isotope/languages/tr/tl_user_group.xlf @@ -0,0 +1,10 @@ + + + + + Isotope eCommerce + Isotope eCommerce + + + + \ No newline at end of file diff --git a/system/modules/isotope/languages/tr/tokens.xlf b/system/modules/isotope/languages/tr/tokens.xlf new file mode 100644 index 0000000000..790c5d6ef7 --- /dev/null +++ b/system/modules/isotope/languages/tr/tokens.xlf @@ -0,0 +1,122 @@ + + + + + The order's unique ID. + Siparişin benzersiz ID'si. + + + The label of the order's current status. + Siparişin geçerli durumu etiketi. + + + The label of the order's previous status. Useful for things like "order status changed from x to y". + Siparişin önceki durumunun etiketi. "Sipariş durumu x'ten y'ye değiştirildi" gibi şeyler için kullanışlı. + + + The ID of the order's current status. + Sipariş güncel durumunun ID'si. + + + The ID of the order's previous status. + Siparişin önceki durumunun ID'si. + + + The email address of the recipient. + Alıcının e-posta adresi. + + + The ID of the order. + Siparişin ID'si. + + + The number of items (quantities summed up) in the order. + Siparişteki öğelerin sayısı (toplam miktarlar). + + + The number of individual products in the order. + Siparişteki ürünlerin tek tek sayıları. + + + The order's subtotal. + Siparişin ara toplamı. + + + The order's total. + Sipariş toplamı. + + + The order document number. + Sipariş belge numarası. + + + Order/Cart as text. + Metin şeklinde Sipariş/Sepet. + + + Order/Cart as HTML. + HTML olarak Sipariş/Sepet. + + + The document that should be attached (e.g. an invoice). + Eklenmesi gereken belge (ör. Fatura). + + + All the collection/order column fields as stored in the database + Veritabanın da saklandığı gibi tüm koleksiyon/sipariş sütunları + + + Formatted billing address. + Biçimlendirilmiş fatura adresi. + + + All the billing address model fields. + Tüm fatura adresi model alanları. + + + Formatted shipping address. + Biçimlendirilmiş nakliye adresi. + + + All the shipping address model fields. + Tüm nakliye adresi model alanları. + + + All the order condition form fields. + Tüm sipariş koşulları alanları. + + + Payment method ID. + Ödeme şekli ID'si. + + + Payment method label. + Ödeme şekli etiketi. + + + Payment method note. + Ödeme şekli notu. + + + Shipping method ID. + Nakliye şekli ID'si. + + + Shipping method label. + Nakliye şekli etiketi. + + + Shipping method note. + Nakliye şekli notu. + + + All the store configuration fields. + Tüm mağaza yapılandırma alanları. + + + All the member fields if it was a member checkout. + Üyelik işlemi olan tüm üye alanları. + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/tr/default.xlf b/system/modules/isotope_reports/languages/tr/default.xlf new file mode 100644 index 0000000000..336632c2d9 --- /dev/null +++ b/system/modules/isotope_reports/languages/tr/default.xlf @@ -0,0 +1,214 @@ + + + + + Sales Statistics + Satış İstatikleri + + + Member Statistics + Üye İstatikleri + + + Rules Statistics + Kural İstatistikleri + + + Custom Reports + Özel Raporlar + + + Total + Toplam + + + Total sales of all products + Tüm ürünlerin toplam satışı + + + Per product + ürün başına + + + Sales per product + Ürün başına satış + + + Total + Toplam + + + Sales statistics by member + Üyeler bazında satış istatistikleri + + + %s - Members + %s - Üye + + + %s - Guests + %s - Misafir + + + Sales to Members + Müşterilere yapılan satışlar + + + Sales to Guests + Misafirlere yapılan satışlar + + + Registrations + Kayıtlar + + + Statistics about member registrations + Üye kayıtları hakkında istatistik + + + vs. Guest + vs. Misafir + + + Sales comparison between members and guests + Üyelerle misafirler arasındaki satış karşılaştırması + + + Rules Usage + Kuralların Kullanımı + + + Statistics about rules usage + Kuralların kullanımı ile ilgili istatistikler + + + Coupons + Kuponlar + + + Statistics about coupon usage + Kuponların kullanımı ile ilgili istatistikler + + + Sales in the last 24 hours + Son 24 saat içindeki satışlar + + + No orders have been placed in the last 24 hours. + Son 24 saat içinde hiçbir sipariş verilmemiş. + + + Shop configuration + Mağaza yapılandırması + + + Currency + Para birimi + + + Number of orders + Sipariş sayısı + + + Number of products + Ürün sayısı + + + Number of items + Öğe sayısı + + + Sales Total + Satış Toplamı + + + Shop-Config + Mağaza-Yapılandırması + + + All + Tümü + + + Sums + Toplamlar + + + Show + Göster + + + Search + Ara + + + Sort + Sırala + + + Period + Dönem + + + Day + Gün + + + Week + Hafta + + + Month + Ay + + + Year + Yıl + + + From + Kimden + + + To + Kime + + + Status + Durum + + + Report + Rapor + + + Order date + Sipariş tarihi + + + Payment date + Ödeme tarihi + + + Shiping date + Nakliye tarihi + + + Total sales + Toplam satışlar + + + Product name + Ürün adı + + + Columns + Sütunlar + + + Variants + Çeşitler + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/tr/modules.xlf b/system/modules/isotope_reports/languages/tr/modules.xlf new file mode 100644 index 0000000000..f7b71c87f0 --- /dev/null +++ b/system/modules/isotope_reports/languages/tr/modules.xlf @@ -0,0 +1,14 @@ + + + + + Isotope eCommerce: Reports &amp; Statistics + Isotope eCommerce: Raporlar &amp; İstatistikler + + + Reports &amp; Statistics + Raporlar & İstatistikler + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/tr/tl_iso_orderstatus.xlf b/system/modules/isotope_reports/languages/tr/tl_iso_orderstatus.xlf new file mode 100644 index 0000000000..84d2620a66 --- /dev/null +++ b/system/modules/isotope_reports/languages/tr/tl_iso_orderstatus.xlf @@ -0,0 +1,10 @@ + + + + + Reports &amp; Statistics + Raporlar & İstatistikler + + + + \ No newline at end of file diff --git a/system/modules/isotope_reports/languages/tr/tl_user.xlf b/system/modules/isotope_reports/languages/tr/tl_user.xlf new file mode 100644 index 0000000000..3f744c0c7c --- /dev/null +++ b/system/modules/isotope_reports/languages/tr/tl_user.xlf @@ -0,0 +1,14 @@ + + + + + Isotope Reports + Isotope Raporları + + + Select what reports should be visible to the user. + Hangi raporların kullanıcı tarafından görüleceğini seçin. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/tr/default.xlf b/system/modules/isotope_rules/languages/tr/default.xlf new file mode 100644 index 0000000000..3c1d553381 --- /dev/null +++ b/system/modules/isotope_rules/languages/tr/default.xlf @@ -0,0 +1,34 @@ + + + + + Your coupon code "%s" could not be applied. Please review your order again. + "%s" kuponunuz uygulanamadı. Lütfen siparişinizi tekrar gözden geçirin. + + + Apply Promotional Codes + Promosyon Kodlarını Uygula + + + Promotional code + Promosyon kodu + + + Apply + Uygula + + + Your coupon %s is not valid. + %s kuponunuz geçerli değil. + + + Your coupon %s has been applied. + %s kuponunuz uygulandı. + + + Your coupon %s has already been applied. + %s kuponunuz zaten daha önce uygulandı. + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/tr/modules.xlf b/system/modules/isotope_rules/languages/tr/modules.xlf new file mode 100644 index 0000000000..4233e66567 --- /dev/null +++ b/system/modules/isotope_rules/languages/tr/modules.xlf @@ -0,0 +1,14 @@ + + + + + Isotope eCommerce: Rules &amp; Coupons + Isotope eCommerce: Kurallar &amp; Kuponlar + + + Rules &amp; Coupons + Kurallar &amp; Kuponlar + + + + \ No newline at end of file diff --git a/system/modules/isotope_rules/languages/tr/tl_iso_rule.xlf b/system/modules/isotope_rules/languages/tr/tl_iso_rule.xlf new file mode 100644 index 0000000000..ce2437cf11 --- /dev/null +++ b/system/modules/isotope_rules/languages/tr/tl_iso_rule.xlf @@ -0,0 +1,518 @@ + + + + + Type + Tip + + + Please choose the type of rule. + Lütfen kuralın tipini seçin + + + Product + Ürün + + + Cart + Sepet + + + Name + Ad + + + Please enter a name for this rule. + Lütfen bu kural için bir ad girin + + + Label + Etiket + + + The label will be show in cart. If you do not enter a label, the name will be used. + Etiket sepette gösterilecek. Bir etiket girmezseniz, ad kullanılacaktır. + + + Discount + İndirim + + + Valid values are decimals or whole numbers, minus a numerical value or minus a percentage. + Geçerli değerler, ondalık sayı veya tam sayı, eksi bir sayısal değer veya eksi bir yüzdeliktir. + + + Tax Class + Vergi Sınıfları + + + Apply discount to + İndirimi şuna uygula + + + Select how the discount is applied. + İndirimin nasıl uygulanacağını seçin. + + + to each product + her ürüne + + + to each unit of a product + bir ürünün her bir birimi için + + + to the cart subtotal + sepet ara toplamına + + + Discount rounding + İndirim yuvarlama + + + Define how percentual discounts should be rounded. + Yüzdelik indirimin nasıl yuvarlanacağını tanımlayın. + + + Commercial rounding + Ticari yuvarlanma + + + Always round down (in favor of shop owner) + Her zaman yuvarlak (dükkan sahibi lehine) + + + Always round up (in favor of shop visitor) + Her zaman yuvarlak (mağaza ziyaretçisi lehine) + + + Enable coupon code + Kupon kodunu etkinleştir + + + Require a code to be entered to invoke this rule, as a coupon. + Bu kuralı çağırmak için kupon olarak bir kod girilmesini isteyin. + + + Rule (coupon) code + Kural (kupon) kodu + + + Please enter a code by which a customer will invoke this rule, as a coupon. + Lütfen bir müşterinin bu kuralı bir kupon olarak kullanacağı bir kod girin. + + + Uses per member + Üye başına kullanır + + + 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. + Bu, kuralın daha önce kullanıldığını görmek için kullanılacaktır. Bu 0 olarak ayarlanırsa, her müşteri için sınırsız süre kullanılabilir. + + + Uses per store config + Mağaza yapılandırma başına kullanır + + + 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. + Bu, kuralın daha önce kullanıldığını görmek için kullanılacaktır. Bu 0 olarak ayarlanırsa, her bir mağaza yapılandırması için sınırsız süre kullanılabilir. + + + Minimum subtotal + Minimum ara toplam + + + Please specify a minimum subtotal this rule applies to. + Lütfen bu kuralın uygulandığı minimum bir alt toplam belirtin. + + + Maximum subtotal + Maksimum alt toplam + + + Please specify a maximum subtotal this rule applies to. + Lütfen bu kuralın geçerli olduğu maksimum bir alt toplam belirtin. + + + Minimum weight + Minimum ağırlık + + + Enter a minimum weight to control availability based on the products in cart. + Uygunluğu, alışveriş sepetindeki ürünler temel alınarak kontrol etmek için minimum bir ağırlık girin. + + + Maximum weight + Maksimum ağırlık + + + Enter a maximum weight to control availability based on the products in cart. + Uygunluğu, alışveriş sepetindeki ürünler temel alınarak kontrol etmek için maksimum bir ağırlık girin. + + + Minimum item quantity + Minimum öğe sayısı + + + Please specify a minimum quantity of an item this rule applies to. + Lütfen bu kuralın uygulanacağı minimum adedi belirtin. + + + Maximum item quantity + Maksimum öğe adedi + + + Please specify a maximum quantity of a single item this rule applies to. + Lütfen bu kuralın uygulandığı tek bir öğe için maksimum öğe adedi belirtin. + + + Quantity calculation mode + Adet hesaplama modu + + + Select a calculation mode for min/max quantity. + Min / maks adetiçin bir hesaplama modu seçin. + + + Quantity of product in cart + Sepetteki ürünün adedi + + + Total products in cart + Sepetteki Toplam Ürün + + + Total quantity in cart + Sepetteki toplam adet + + + Start date + Başlangıç tarihi + + + If desired, please specify the date this rule will become eligible on. + İsterseniz, lütfen bu kuralın uygun olacağı tarihi belirtin. + + + End date + Bitiş tarihi + + + If desired, please specify the date this rule will no longer be eligible on. + İsterseniz, lütfen bu kuralın artık uygun olmayacağı tarihi belirtin. + + + Start time + Başlangıç zamanı + + + If desired, please specify the time this rule will become eligible at. + İsterseniz, lütfen bu kuralın uygun olacağı süreyi belirtin. + + + End time + Bitiş zamanı + + + If desired, please specify the time this rule will not longer be eligible at. + İsterseniz, lütfen bu kuralın artık uygun olmayacağı zamanı belirtin. + + + Store config restrictions + Mağaza yapılandırması kısıtlamaları + + + Restrict a rule to certain store configs. + Bir kuralın belirli mağaza yapılandırmalarıyla sınırlandırılması. + + + Store config condition + Mağaza yapılandırma koşulu + + + Define if the selection should match or not. + Seçimin eşleşip eşleşemeyeceğini tanımlayın. + + + Store configs + Mağaza yapılandırmaları + + + Select configs this rule is restricted to. + Bu kural için sınırlandırılmış yapılandırmaları seçin. + + + Member restrictions + Üye kısıtlamaları + + + Restrict a rule to certain groups or members. + Bir kuralın belirli gruba veya üyelere sınırlandırılması. + + + No restrictions + Kısıtlama yok + + + Guests + Misafirler + + + Specific groups + Belirli gruplar + + + Specific members + Belirli üyeler + + + Member condition + Üye koşulu + + + Define if the selection should match or not. + Seçimin eşleşip eşleşemeyeceğini tanımlayın. + + + Members + Üyeler + + + Select members this rule is restricted to. + Bu kuralın sınırlandırıldığı üyeleri seçin + + + Groups + Gruplar + + + Select groups this rule is restricted to. + Bu kuralın sınırlandırıldığı grupları seçin. + + + Product restrictions + Ürün kısıtlamaları + + + Restrict this rule to certain product types, categories, or to individual products. + Bu kuralı belirli ürün türlerine, kategorilere veya tek tek ürünler için sınırlandırın. + + + No restrictions + Kısıtlama yok + + + Product types + Ürün tipleri + + + Categories + Kategoriler + + + Products + Ürünler + + + Products &amp; Variants + Ürübler &amp; Çeşitler + + + Product attribute + Ürün niteliği + + + Product condition + Ürün koşulu + + + Define if the selection should match or not. + Seçimin eşleşip eşleşemeyeceğini tanımlayın. + + + Product Types + Ürün Tipleri + + + Select the product types this rule is restricted to. If none, all are eligible. + Bu kuralın sınırlandırıldığı ürün türlerini seçin. Yoksa hepsi uygun olacak. + + + Products + Ürünler + + + Select products this rule is restricted to. If none, all are eligible. + Bu kuralın sınırlandırıldığı ürünleri seçin. Yoksa hepsi uygun olacak. + + + Products & Variants + Ürübler & Çeşitler + + + Enter a comma-separated list of product or variant IDs to limit this rule to. + Bu kuralı sınırlandırmak için virgülle ayrılmış ürün veya çeşit ID listesini girin. + + + Attribute name + Özellik adı + + + Select the product attribute you want to restrict. + Kısıtlamak istediğiniz ürün özelliklerini seçin. + + + Attribute condition + Özellik koşulu + + + Select the product attribute you want to restrict. + Kısıtlamak istediğiniz ürün özelliklerini seçin. + + + equals + eşittir + + + not equal + eşit değildir + + + less than + daha az + + + greater than + daha büyük + + + less than or equal to + daha az veya eşit + + + greater than or equal to + daha fazla veya eşit + + + starts with + bununla başlayanlar + + + ends with + bununla bitenler + + + contains + içeriyor + + + Categories + Kategoriler + + + Select categories this rule is restricted to. If none, all are eligible. + Bu kuralın sınırlandırıldığı kategorileri seçin. Yoksa hepsi uygun olacak. + + + Enabled + v + + + Please select whether this rule is currently enabled or not. + Lütfen bu kuralın şu anda etkin olup olmadığını seçin. + + + Basic rule setup + Temel kuralı ayarlama + + + Coupon Code + Kupo Kodu + + + Limit Uses + Limit Kullanımları + + + Date &amp; Time Restrictions + Tarih &amp; Zaman Kısıtlamaları + + + Advanced Restrictions + Gelişmiş Kısıtlamalar + + + Availability + Kullanılabilirlik + + + Exclude all other rules + Diğer tüm kuralları hariç tut + + + No rule exclusions + Hariç tutulan kural bulunmamaktadır + + + Exclude certain rules + Belirli kuralları hariç tut + + + true + doğru + + + false + yanlış + + + Add rule + Kural ekle + + + Create a new rule + Yeni kural oluştur + + + Edit rule + Kuralı düzenle + + + Edit rule ID %s + %s ID'li kuralı düzenle + + + Duplicate rule + Kuralı kopyala + + + Duplicate rule ID %s + %s ID'li kuralı kopyala + + + Delete rule + Kuralı sil + + + Delete rule ID %s + %s ID'li kuralı sil + + + Publish/unpublish rule + Kuralı yayınla/yayından kaldır + + + Publish/unpublish rule ID %s + %s ID'li kuralı yayınla/yayından kaldır + + + Rule details + Kural detayları + + + Show the details of rule ID %s + %s ID'li kuralın detaylarını gör + + + + \ No newline at end of file From 9aad20b63bb21fbcf15cce04a3df32ab793dde28 Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 09:43:15 +0200 Subject: [PATCH 26/27] CS --- .../Isotope/Model/ProductCollectionItem.php | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php b/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php index b26a15318d..dc786ec133 100644 --- a/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php +++ b/system/modules/isotope/library/Isotope/Model/ProductCollectionItem.php @@ -20,19 +20,19 @@ /** * ProductCollectionItem represents an item in a product collection. * - * @property int id - * @property int pid - * @property int tstamp - * @property int product_id - * @property string type - * @property string sku - * @property string name - * @property mixed configuration - * @property int quantity - * @property float price - * @property float tax_free_price - * @property string tax_id - * @property int jumpTo + * @property int $id + * @property int $pid + * @property int $tstamp + * @property int $product_id + * @property string $type + * @property string $sku + * @property string $name + * @property mixed $configuration + * @property int $quantity + * @property float $price + * @property float $tax_free_price + * @property string $tax_id + * @property int $jumpTo */ class ProductCollectionItem extends \Model { From 5cce7845670f3b1cd373cd107e4091bebaf7298d Mon Sep 17 00:00:00 2001 From: Andreas Schempp Date: Wed, 26 Jul 2017 09:44:04 +0200 Subject: [PATCH 27/27] Release 2.4.2 --- system/modules/isotope/docs/CHANGELOG-2.4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/modules/isotope/docs/CHANGELOG-2.4.md b/system/modules/isotope/docs/CHANGELOG-2.4.md index 77c9d4e958..5c164f1b2c 100644 --- a/system/modules/isotope/docs/CHANGELOG-2.4.md +++ b/system/modules/isotope/docs/CHANGELOG-2.4.md @@ -1,7 +1,7 @@ Isotope eCommerce Changelog =========================== -Version 2.4.2 (2017-??-??) +Version 2.4.2 (2017-07-26) -------------------------- ### Improved