diff --git a/autoload/admin/controls/class.Articles.php b/autoload/admin/controls/class.Articles.php index b5d8380..376df2d 100644 --- a/autoload/admin/controls/class.Articles.php +++ b/autoload/admin/controls/class.Articles.php @@ -27,17 +27,7 @@ class Articles public static function article_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania artykułu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\Articles::article_save( $values['id'], $values['title'], $values['main_image'], $values['entry'], $values['text'], $values['table_of_contents'], $values['status'], $values['show_title'], $values['show_table_of_contents'], $values['show_date_add'], $values['date_add'], $values['show_date_modify'], $values['date_modify'], $values['seo_link'], $values['meta_title'], diff --git a/autoload/admin/controls/class.Banners.php b/autoload/admin/controls/class.Banners.php index 54ec06d..4914355 100644 --- a/autoload/admin/controls/class.Banners.php +++ b/autoload/admin/controls/class.Banners.php @@ -15,17 +15,7 @@ class Banners public static function banner_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania baneru wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $banner_id = \admin\factory\Banners::banner_save( $values['id'], $values['name'], $values['status'], $values['date_start'], $values['date_end'], $values['home_page'], $values['src'], $values['url'], $values['html'], $values['text'] ) ) diff --git a/autoload/admin/controls/class.Dictionaries.php b/autoload/admin/controls/class.Dictionaries.php index 7f47ae9..365795f 100644 --- a/autoload/admin/controls/class.Dictionaries.php +++ b/autoload/admin/controls/class.Dictionaries.php @@ -18,17 +18,7 @@ class Dictionaries { static public function unit_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania jednostki miary wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\Dictionaries::unit_save( $values['id'], $values['text']) ) $response = [ 'status' => 'ok', 'msg' => 'Jednostka miary została zapisana.', 'id' => $id ]; diff --git a/autoload/admin/controls/class.Languages.php b/autoload/admin/controls/class.Languages.php index ef3c8e3..e282212 100644 --- a/autoload/admin/controls/class.Languages.php +++ b/autoload/admin/controls/class.Languages.php @@ -14,17 +14,7 @@ class Languages public static function language_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania języka wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( \admin\factory\Languages::language_save( $values['id'], $values['name'], $values['status'], @@ -60,17 +50,7 @@ class Languages public static function translation_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania tłumaczenia wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); $languages_list = \admin\factory\Languages::languages_list(); if ( is_array( $languages_list ) and !empty( $languages_list ) ) foreach ( $languages_list as $language ) diff --git a/autoload/admin/controls/class.Layouts.php b/autoload/admin/controls/class.Layouts.php index a8ed88a..9325906 100644 --- a/autoload/admin/controls/class.Layouts.php +++ b/autoload/admin/controls/class.Layouts.php @@ -14,17 +14,7 @@ class Layouts public static function layout_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania szablonu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\Layouts::layout_save( $values['id'], $values['name'], $values['status'], $values['pages'], $values['html'], $values['css'], $values['js'], $values['m_html'], $values['m_css'], $values['m_js'], $values['categories'], $values['categories_default'] ) diff --git a/autoload/admin/controls/class.Newsletter.php b/autoload/admin/controls/class.Newsletter.php index 242a80c..17ebe58 100644 --- a/autoload/admin/controls/class.Newsletter.php +++ b/autoload/admin/controls/class.Newsletter.php @@ -27,17 +27,7 @@ class Newsletter public static function settings_save() { $settings = \admin\factory\Settings::settings_details(); - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); \admin\factory\Settings::settings_update( 'newsletter_footer', $values['newsletter_footer'] ); \admin\factory\Settings::settings_update( 'newsletter_header', $values['newsletter_header'] ); @@ -91,17 +81,7 @@ class Newsletter public static function template_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\Newsletter::template_save( $values['id'], $values['name'], $values['text'] ) ) $response = [ 'status' => 'ok', 'msg' => 'Zmiany zostały zapisane.', 'id' => $id ]; diff --git a/autoload/admin/controls/class.Pages.php b/autoload/admin/controls/class.Pages.php index 9ed6105..4ec7b89 100644 --- a/autoload/admin/controls/class.Pages.php +++ b/autoload/admin/controls/class.Pages.php @@ -46,17 +46,7 @@ class Pages public static function page_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania strony wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\Pages::page_save( $values['id'], $values['title'], $values['seo_link'], $values['meta_title'], $values['meta_description'], $values['meta_keywords'], $values['menu_id'], $values['parent_id'], $values['page_type'], @@ -84,17 +74,7 @@ class Pages public static function menu_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania menu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( \admin\factory\Pages::menu_save( $values['id'], $values['name'], $values['status'] ) ) $response = [ 'status' => 'ok', 'msg' => 'Menu zostało zapisane.' ]; diff --git a/autoload/admin/controls/class.Scontainers.php b/autoload/admin/controls/class.Scontainers.php index 7163f53..3fa2279 100644 --- a/autoload/admin/controls/class.Scontainers.php +++ b/autoload/admin/controls/class.Scontainers.php @@ -14,17 +14,7 @@ class Scontainers public static function container_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania kontenera wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\Scontainers::container_save( $values['id'], $values['title'], $values['text'], $values['status'], $values['show_title'] ) ) $response = [ 'status' => 'ok', 'msg' => 'Kontener został zapisany.', 'id' => $id ]; diff --git a/autoload/admin/controls/class.Settings.php b/autoload/admin/controls/class.Settings.php index 4e35bd0..23fbdbc 100644 --- a/autoload/admin/controls/class.Settings.php +++ b/autoload/admin/controls/class.Settings.php @@ -5,17 +5,7 @@ class Settings { public static function settings_save() { - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); $settings = \admin\factory\Settings::settings_details( true ); diff --git a/autoload/admin/controls/class.ShopAttribute.php b/autoload/admin/controls/class.ShopAttribute.php index db14345..ec7e043 100644 --- a/autoload/admin/controls/class.ShopAttribute.php +++ b/autoload/admin/controls/class.ShopAttribute.php @@ -17,18 +17,8 @@ class ShopAttribute static public function values_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania wartości atrybutu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); + $values = json_decode( \S::get( 'values' ), true ); - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } -; if ( $id = \admin\factory\ShopAttribute::values_save( (int) \S::get( 'attribute_id' ), $values['name'], $values['value'], $values['ids'], $values['default_value'], $values['impact_on_the_price'] ) ) $response = [ 'status' => 'ok', 'msg' => 'Wartości atrybutu zostały zapisane.', 'id' => $id ]; @@ -57,17 +47,7 @@ class ShopAttribute public static function attribute_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania atrybutu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\ShopAttribute::attribute_save( (int) $values['id'], $values['name'], $values['status'] == 'on' ? 1 : 0, (int) $values['type'], (int) $values['o'] ) ) $response = [ 'status' => 'ok', 'msg' => 'Atrybut został zapisany.', 'id' => $id ]; diff --git a/autoload/admin/controls/class.ShopCategory.php b/autoload/admin/controls/class.ShopCategory.php index 61c0fcf..f3dd42f 100644 --- a/autoload/admin/controls/class.ShopCategory.php +++ b/autoload/admin/controls/class.ShopCategory.php @@ -32,17 +32,7 @@ class ShopCategory static public function save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania kategorii wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\ShopCategory::save( $values['id'], $values['title'], $values['text'], $values['text_hidden'], $values['seo_link'], $values['meta_title'], $values['meta_description'], $values['meta_keywords'], $values['parent_id'], $values['status'], diff --git a/autoload/admin/controls/class.ShopCoupon.php b/autoload/admin/controls/class.ShopCoupon.php index 19f8cc5..2ce1ea2 100644 --- a/autoload/admin/controls/class.ShopCoupon.php +++ b/autoload/admin/controls/class.ShopCoupon.php @@ -15,17 +15,7 @@ class ShopCoupon public static function coupon_save() { $response = ['status' => 'error', 'msg' => 'Podczas zapisywania kuponu wystąpił błąd. Proszę spróbować ponownie.']; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $values['categories'] != null ) $categories = is_array( $values['categories'] ) ? json_encode( $values['categories'] ) : json_encode( [ $values['categories'] ] ); diff --git a/autoload/admin/controls/class.ShopProducer.php b/autoload/admin/controls/class.ShopProducer.php index 31182ce..932cbc1 100644 --- a/autoload/admin/controls/class.ShopProducer.php +++ b/autoload/admin/controls/class.ShopProducer.php @@ -13,17 +13,7 @@ class ShopProducer static public function save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania producenta wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $producer_id = \admin\factory\ShopProducer::save( $values['id'], $values['name'], $values['status'] == 'on' ? 1 : 0, $values['img'], $values['description'], $values['meta_title'] ) ) $response = [ 'status' => 'ok', 'msg' => 'Producent został zapisany.', 'id' => $producer_id ]; diff --git a/autoload/admin/controls/class.ShopProduct.php b/autoload/admin/controls/class.ShopProduct.php index 7373090..71e2ba4 100644 --- a/autoload/admin/controls/class.ShopProduct.php +++ b/autoload/admin/controls/class.ShopProduct.php @@ -180,17 +180,7 @@ class ShopProduct public static function save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania produktu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\ShopProduct::save( $values['id'], $values['name'], $values['short_description'], $values['description'], $values['status'], $values['meta_description'], $values['meta_keywords'], $values['seo_link'], diff --git a/autoload/admin/controls/class.ShopProductSets.php b/autoload/admin/controls/class.ShopProductSets.php index 4514bc4..757a2d5 100644 --- a/autoload/admin/controls/class.ShopProductSets.php +++ b/autoload/admin/controls/class.ShopProductSets.php @@ -16,17 +16,7 @@ class ShopProductSets static public function save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania kompletu produktów wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\ShopProductSet::save( (int)$values['id'], $values['name'], (string) $values['status'], $values['set_products_id'] diff --git a/autoload/admin/controls/class.ShopPromotion.php b/autoload/admin/controls/class.ShopPromotion.php index 3ce3e67..ae27a20 100644 --- a/autoload/admin/controls/class.ShopPromotion.php +++ b/autoload/admin/controls/class.ShopPromotion.php @@ -17,17 +17,7 @@ class ShopPromotion static public function save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania promocji wystąpił błąd. Proszę spróbować ponownie' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\ShopPromotion::save( $values['id'], diff --git a/autoload/admin/controls/class.ShopStatuses.php b/autoload/admin/controls/class.ShopStatuses.php index 23331b4..fa14645 100644 --- a/autoload/admin/controls/class.ShopStatuses.php +++ b/autoload/admin/controls/class.ShopStatuses.php @@ -7,17 +7,7 @@ class ShopStatuses { public static function status_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania statusu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\ShopStatuses::status_save( $values['id'], $values['color'], $values['apilo_status_id'], $values['sellasist_status_id'], $values['baselinker_status_id'] ) ) $response = [ 'status' => 'ok', 'msg' => 'Status został zapisany.', 'id' => $id ]; diff --git a/autoload/admin/controls/class.ShopTransport.php b/autoload/admin/controls/class.ShopTransport.php index 443dcf5..cbe05fb 100644 --- a/autoload/admin/controls/class.ShopTransport.php +++ b/autoload/admin/controls/class.ShopTransport.php @@ -5,17 +5,7 @@ class ShopTransport public static function transport_save() { $response = [ 'status' => 'error', 'msg' => 'Podczas zapisywania rodzaju transportu wystąpił błąd. Proszę spróbować ponownie.' ]; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); if ( $id = \admin\factory\ShopTransport::transport_save( $values['id'], $values['name'], $values['name_visible'], $values['description'], $values['status'], $values['cost'], $values['payment_methods'], $values['max_wp'], $values['default'], $values['apilo_carrier_account_id'], $values['sellasist_shipment_method_id'], $values['delivery_free'] diff --git a/autoload/admin/controls/class.Users.php b/autoload/admin/controls/class.Users.php index 25a1af0..45e6994 100644 --- a/autoload/admin/controls/class.Users.php +++ b/autoload/admin/controls/class.Users.php @@ -13,17 +13,7 @@ class Users public static function user_save() { - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); $response = \admin\factory\Users::user_save( $values['id'], $values['login'], $values['status'], $values['password'], $values['password_re'], $values['admin'] ); echo json_encode( $response ); diff --git a/autoload/admin/factory/class.ShopProduct.php b/autoload/admin/factory/class.ShopProduct.php index c372c3f..0c57f4a 100644 --- a/autoload/admin/factory/class.ShopProduct.php +++ b/autoload/admin/factory/class.ShopProduct.php @@ -1108,11 +1108,12 @@ class ShopProduct { $order = self::max_order() + 1; - $mdb -> insert('pp_shop_products_categories', [ - 'product_id' => (int) $product_id, - 'category_id' => (int) $category, - 'o' => (int) $order, - ]); + if ( $product_id and $category ) + $mdb -> insert( 'pp_shop_products_categories', [ + 'product_id' => (int)$product_id, + 'category_id' => (int)$category, + 'o' => (int) $order, + ] ); } } diff --git a/autoload/front/controls/class.ShopProduct.php b/autoload/front/controls/class.ShopProduct.php index ffe7e2a..26e55bb 100644 --- a/autoload/front/controls/class.ShopProduct.php +++ b/autoload/front/controls/class.ShopProduct.php @@ -26,17 +26,7 @@ class ShopProduct { global $lang_id; - $values_tmp = json_decode( \S::get( 'values' ), true ); - - $values = []; - - foreach ( $values_tmp as $item ) - { - $name = $item['name']; - $value = $item['value']; - $keys = \S::parse_name( $name ); - \S::set_array_value( $values, $keys, $value ); - } + $values = json_decode( \S::get( 'values' ), true ); foreach( $values as $key => $val ) { diff --git a/libraries/grid/js/grid.js b/libraries/grid/js/grid.js index 997153a..81a98f2 100644 --- a/libraries/grid/js/grid.js +++ b/libraries/grid/js/grid.js @@ -1,7 +1,7 @@ -function g_validate_form( id ) +function g_validate_form( id ) { var submit = true; - jQuery( '#fg-' + id ).find( "input[type=text], input[type=password], select, textarea" ).each( function() + jQuery( '#fg-' + id ).find( "input[type=text], input[type=password], select, textarea" ).each( function() { var min = parseInt( jQuery( this ).attr( 'min' ) ); var equal = jQuery( this ).attr( 'equal' ); @@ -34,7 +34,7 @@ function g_validate_form( id ) else if ( fun !== undefined ) { var response = window[fun](); - + if ( response['status'] === 'error' ) { submit = false; @@ -56,7 +56,7 @@ function g_validate_form( id ) return submit; } -function number_format( number, decimals, dec_point, thousands_sep ) +function number_format( number, decimals, dec_point, thousands_sep ) { number = ( number + '' ).replace( /[^0-9+\-Ee.]/g, '' ); var n = !isFinite(+number) ? 0 : +number, @@ -102,7 +102,7 @@ function hide_error() { }, 3000 ); } -function create_message( text ) +function create_message( text ) { hide_message(); jQuery( '#content' ).prepend( '
' + @@ -134,15 +134,15 @@ jQuery( 'body' ).on( 'click', '#g-message, #g-alert', function() { jQuery( 'body' ).on( 'change', '.g-double', function() { var value = jQuery( this ).val(); value = parseFloat( value.replace( ',', '.' ) * 1 ); - + if ( isNaN( value ) ) value = 0; - + if ( jQuery( this ).hasClass( 'g-plus' ) ) value = Math.abs( value ); - + value = number_format( value , 2 , '.' , '' ); - + jQuery( this ).val( value ); }); @@ -176,13 +176,13 @@ jQuery.datepicker.regional['pl'] = { jQuery.datepicker.setDefaults( jQuery.datepicker.regional[ 'pl' ] ); jQuery( 'body' ).on( 'focus', '.g-date', function() { - jQuery( this ).datepicker( { + jQuery( this ).datepicker( { dateFormat: 'yy-mm-dd', changeMonth: true, changeYear: true } ); }); - + jQuery( 'body' ).on( 'click', 'a.g-expand', function() { jQuery( this ).parents( '.g-form-edit' ).children( '.g-content' ).slideDown( 'fast' ); jQuery( this ).children( 'i' ).removeClass( 'fa-chevron-down' ).addClass( 'fa-chevron-up' ); @@ -195,34 +195,34 @@ jQuery( 'body' ).on( 'click', '.g-collapse', function() { jQuery( this ).removeClass( 'g-collapse' ).addClass( 'g-expand' ); }); -jQuery( 'body' ).on( 'click', '#g-columns-list-close', function() +jQuery( 'body' ).on( 'click', '#g-columns-list-close', function() { - jQuery( '#g-select-columns' ).show(); + jQuery( '#g-select-columns' ).show(); jQuery( "#g-columns-list-close" ).hide(); return false; }); -jQuery( 'body' ).on( 'click', '#g-select-columns', function() +jQuery( 'body' ).on( 'click', '#g-select-columns', function() { - jQuery( '#g-select-columns' ).hide(); + jQuery( '#g-select-columns' ).hide(); jQuery( "#g-columns-list-close" ).show(); jQuery( '#g-columns-list' ).show(); return false; }); jQuery( '.g-column-toggle' ).on( 'ifToggled', function() -{ +{ var data = jQuery( this ).parents( '#g-columns-list' ).attr( 'data' ); data = data.split( ";" ); - for ( index = 0; index < data.length; ++index ) + for ( index = 0; index < data.length; ++index ) { var vars = data[ index ].split( ':') ; if ( vars[0] === 'table' ) var gtable = vars[1]; } - + var i = jQuery( this ).parents( 'li' ).attr( 'i' ); jQuery.ajax( @@ -236,27 +236,27 @@ jQuery( '.g-column-toggle' ).on( 'ifToggled', function() hidden: !jQuery( this ).prop( 'checked' ), a: 'gdraw' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, - success: function( data ) + success: function( data ) { - response = jQuery.parseJSON( data ); + response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); if ( response.status === 'ok' ) { if ( response.msg !== null ) create_message( response.msg ); - + jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -264,7 +264,7 @@ jQuery( '.g-column-toggle' ).on( 'ifToggled', function() }); }); -jQuery( 'body' ).on( 'click', '#g-columns-list span', function() { +jQuery( 'body' ).on( 'click', '#g-columns-list span', function() { var input = jQuery( this ).attr( 'input' ); jQuery( '#' + input ).iCheck( 'toggle' ); }); @@ -295,33 +295,33 @@ jQuery( 'body' ).on( 'click', '.g-print', function() { window.open( dir + '/print.php?gtable=' + gtable, 'Drukowanie', "height=400,width=600" ); }); -jQuery( 'body' ).on( 'click', '#g-multidelete', function() -{ +jQuery( 'body' ).on( 'click', '#g-multidelete', function() +{ var url = jQuery( this ).attr( 'url' ); if ( typeof url === 'undefined' ) url = ''; - + var data = jQuery( this ).parents( '.g-container' ).attr( 'data' ); data = data.split( ";" ); - for ( index = 0; index < data.length; ++index ) + for ( index = 0; index < data.length; ++index ) { var vars = data[ index ].split( ':') ; if ( vars[0] === 'table' ) var gtable = vars[1]; } - - jQuery.prompt( 'Na pewno chcesz usunąć wybrane elementy?', - { + + jQuery.prompt( 'Na pewno chcesz usunąć wybrane elementy?', + { title: 'Potwierdź?', - submit: function(e,v,m,f) - { + submit: function(e,v,m,f) + { if ( v === true ) { var checkedVals = getCheckedIds( gtable ); - + if ( url !== '' ) { jQuery.ajax( @@ -329,62 +329,62 @@ jQuery( 'body' ).on( 'click', '#g-multidelete', function() type: 'POST', cache: false, url: url, - data: + data: { gdelete_multi: checkedVals }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, - success: function( data ) + success: function( data ) { - response = jQuery.parseJSON( data ); + response = jQuery.parseJSON( data ); if ( response.status === 'ok' ) { if ( response.msg !== null ) create_message( response.msg ); - + jQuery.ajax( { type: 'POST', cache: false, url: dir + '/ajax.php', - data: + data: { gtable: gtable, a: 'gdraw' }, - success: function( data ) + success: function( data ) { - response = jQuery.parseJSON( data ); + response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); if ( response.status === 'ok' ) { if ( response.msg !== null ) create_message( response.msg ); - + jQuery( '#g-multidelete' ).hide(); jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } } }); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -398,19 +398,19 @@ jQuery( 'body' ).on( 'click', '#g-multidelete', function() type: 'POST', cache: false, url: dir + '/ajax.php', - data: + data: { gtable: gtable, gdelete_multi: checkedVals, a: 'gdraw' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, - success: function( data ) + success: function( data ) { - response = jQuery.parseJSON( data ); + response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); if ( response.status === 'ok' ) @@ -419,12 +419,12 @@ jQuery( 'body' ).on( 'click', '#g-multidelete', function() create_message( response.msg ); jQuery( '#g-multidelete' ).hide(); jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -432,18 +432,18 @@ jQuery( 'body' ).on( 'click', '#g-multidelete', function() }); } } - }, - buttons: { - 'tak': true, - 'nie': false - }, - focus: 1 + }, + buttons: { + 'tak': true, + 'nie': false + }, + focus: 1 }); - return false; + return false; }); jQuery( 'body' ).on( 'click', '#g-cancel', function() { - + var data = jQuery( this ).parents( '.g-container' ).attr( 'data' ); data = data.split( ";" ); @@ -467,17 +467,17 @@ jQuery( 'body' ).on( 'click', '#g-cancel', function() { }, success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { jQuery( '#g-add, #g-search, .g-button, #g-select-columns' ).show(); jQuery( '#g-cancel, #g-save' ).hide(); jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -485,46 +485,63 @@ jQuery( 'body' ).on( 'click', '#g-cancel', function() { }); }); -jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() -{ +jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() +{ var back_url = jQuery( this ).attr( 'back_url' ); var persist_edit = jQuery( this ).attr( 'persist_edit' ); var id_param = jQuery( this ).attr( 'id_param' ); if ( typeof back_url === 'undefined' ) back_url = ''; - + var data = jQuery( this ).parents( '.g-container' ).attr( 'data' ); data = data.split( ";" ); - for ( index = 0; index < data.length; ++index ) + for ( index = 0; index < data.length; ++index ) { var vars = data[ index ].split( ':') ; if ( vars[0] === 'table' ) var gtable = vars[1]; } - - if ( g_validate_form( gtable ) === true ) - { + + if ( g_validate_form( gtable ) === true ) + { var values = jQuery( '#fg-' + gtable ).serializeArray(); - + var formattedValues = {}; + + jQuery.each(values, function(i, field) { + var fieldName = field.name.replace(/\[(\w*)\]$/, ''); // usuwa [] na końcu nazwy + var isArrayField = /\[\]$/.test(field.name); // sprawdza, czy pole jest tablicą + + if (isArrayField) { + // jeśli pole jest tablicą, upewnij się, że mamy tablicę w obiekcie docelowym + if (!Array.isArray(formattedValues[fieldName])) { + formattedValues[fieldName] = []; + } + formattedValues[fieldName].push(field.value); // dodaj wartość do tablicy + } else { + // dla zwykłych pól + formattedValues[fieldName] = field.value; + } + }); + var url = jQuery( this ).attr( 'url' ); - - if ( url !== '' ) + + if ( url !== '' ) { jQuery.ajax( { type: 'POST', cache: false, url: url, - data: + data: { gtable: gtable, - values: JSON.stringify( values ), + values: JSON.stringify(formattedValues), a: 'gsave' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); jQuery( '#overlay' ).show(); @@ -533,7 +550,7 @@ jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() { jQuery( '#overlay' ).hide(); response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { if ( back_url !== '' && persist_edit == 0 ) document.location.href = back_url; @@ -547,16 +564,16 @@ jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() type: 'POST', cache: false, url: dir + '/ajax.php', - data: + data: { gtable: gtable, a: 'gdraw' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, - success: function( data ) + success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); if ( response.status === 'ok' ) @@ -564,12 +581,12 @@ jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() jQuery( '#g-add, #g-search, .g-button' ).show(); jQuery( '#g-cancel, #g-save' ).hide(); jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -580,49 +597,49 @@ jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() { if ( response.msg !== null ) create_message( response.msg ); - + if ( id_param != '' ) jQuery( '#' + id_param ).val( response.id ); } - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } } }); - } - else - { + } + else + { jQuery.ajax( { type: 'POST', cache: false, url: dir + '/ajax.php', - data: + data: { gtable: gtable, values: JSON.stringify( values ), a: 'gsave' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, - success: function( data ) + success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { - - if ( back_url !== '' ) + + if ( back_url !== '' ) { document.location.href=back_url; - } + } else { if ( response.msg !== null ) @@ -632,12 +649,12 @@ jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() jQuery( '#g-cancel, #g-save' ).hide(); jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); } - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -646,9 +663,9 @@ jQuery( 'body' ).on( 'click', '#g-save, #g-edit-save', function() } }; }); - + jQuery( 'body' ).on( 'click', '#g-add, .g-edit', function() { - + var data = jQuery( this ).parents( '.g-container' ).attr( 'data' ); data = data.split( ";" ); @@ -658,9 +675,9 @@ jQuery( 'body' ).on( 'click', '#g-add, .g-edit', function() { if ( vars[0] === 'table' ) var gtable = vars[1]; } - + var gedit = jQuery( this ).attr( 'element-id' ); - + jQuery.ajax({ type: 'POST', cache: false, @@ -675,17 +692,17 @@ jQuery( 'body' ).on( 'click', '#g-add, .g-edit', function() { }, success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { jQuery( '#g-add, #g-search, .g-button, #g-select-columns' ).hide(); jQuery( '#g-cancel, #g-save' ).css( 'display', 'inline-block' ); jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -693,7 +710,7 @@ jQuery( 'body' ).on( 'click', '#g-add, .g-edit', function() { }); }); -jQuery( 'body' ).on( 'click', '.g-delete', function() +jQuery( 'body' ).on( 'click', '.g-delete', function() { jQuery( this ).blur(); @@ -711,35 +728,35 @@ jQuery( 'body' ).on( 'click', '.g-delete', function() var back_url = jQuery( this ).attr( 'back-url' ); var url = jQuery( this ).attr( 'url' ).replace( '[ID]', gdelete ); - jQuery.prompt( 'Na pewno chcesz usunąć wybrany element?', - { + jQuery.prompt( 'Na pewno chcesz usunąć wybrany element?', + { title: 'Potwierdź?', - submit: function(e,v,m,f) - { - if ( v === true ) + submit: function(e,v,m,f) + { + if ( v === true ) { - if ( url !== '' ) + if ( url !== '' ) { jQuery.ajax( { type: 'POST', cache: false, url: url, - data: + data: { gdelete: gdelete, a: 'gdelete' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, - success: function( data ) + success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { - if ( back_url !== '' ) + if ( back_url !== '' ) { document.location.href=back_url; } @@ -762,71 +779,71 @@ jQuery( 'body' ).on( 'click', '.g-delete', function() }, success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } } }); } - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } } }); - } - else + } + else { jQuery.ajax( { type: 'POST', cache: false, url: dir + '/ajax.php', - data: + data: { gtable: gtable, gdelete: gdelete, a: 'gdraw' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, - success: function( data ) + success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { - if ( back_url !== '' ) + if ( back_url !== '' ) { document.location.href=back_url; - } + } else { jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); if ( response.msg !== null ) create_message( response.msg ); } - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -834,22 +851,22 @@ jQuery( 'body' ).on( 'click', '.g-delete', function() }); } } - }, - buttons: - { - 'tak': true, - 'nie': false + }, + buttons: + { + 'tak': true, + 'nie': false } }); return false; }); -jQuery( 'body' ).on( 'change', '.g-search-input, .g-search-select', function() +jQuery( 'body' ).on( 'change', '.g-search-input, .g-search-select', function() { var data = jQuery( this ).attr( 'data' ); data = data.split( ";" ); - for ( index = 0; index < data.length; ++index ) + for ( index = 0; index < data.length; ++index ) { var vars = data[ index ].split( ':') ; @@ -863,7 +880,7 @@ jQuery( 'body' ).on( 'change', '.g-search-input, .g-search-select', function() var data = jQuery( this ).parents( '.g-container' ).attr( 'data' ); data = data.split( ";" ); - for ( index = 0; index < data.length; ++index ) + for ( index = 0; index < data.length; ++index ) { var vars = data[ index ].split( ':') ; @@ -877,7 +894,7 @@ jQuery( 'body' ).on( 'change', '.g-search-input, .g-search-select', function() type: 'POST', cache: false, url: dir + '/ajax.php', - data: + data: { gtable: gtable, gsearch_column: gsearch_column, @@ -885,22 +902,22 @@ jQuery( 'body' ).on( 'change', '.g-search-input, .g-search-select', function() gsearch_type: gsearch_type, a: 'gdraw' }, - beforeSend: function() + beforeSend: function() { jQuery( '#g-' + gtable ).find( '#g-loader' ).show(); }, success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); jQuery( 'input[name="' + gsearch_column + '"]' ).focus().val( jQuery( 'input[name="' + gsearch_column + '"]' ).val() ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -948,15 +965,15 @@ jQuery( 'body' ).on( 'click', '.g-sort', function() { }, success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -991,15 +1008,15 @@ jQuery( 'body' ).on( 'change', '#g-row-limit', function() { }, success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); } @@ -1012,7 +1029,7 @@ jQuery( 'body' ).on( 'click', '.date-range-icon', function() $( this ).parents( '.input-group' ).children( 'input' ).trigger( 'click' ); }); -jQuery( 'body' ).on( 'click', '.g-next, .g-last, .g-first, .g-previous, .g-page', function(e) +jQuery( 'body' ).on( 'click', '.g-next, .g-last, .g-first, .g-previous, .g-page', function(e) { e.preventDefault(); @@ -1042,15 +1059,15 @@ jQuery( 'body' ).on( 'click', '.g-next, .g-last, .g-first, .g-previous, .g-page' }, success: function( data ) { response = jQuery.parseJSON( data ); jQuery( '#g-' + gtable ).find( '#g-loader' ).hide(); - if ( response.status === 'ok' ) + if ( response.status === 'ok' ) { jQuery( '#g-' + gtable ).find( '#g-results' ).empty().html( response.output ); - } - else + } + else { - if ( response.msg ) - var msg = response.msg; - else + if ( response.msg ) + var msg = response.msg; + else var msg = "Przepraszamy. Podczas wczytywania danych wystąpił błąd. Prosimy spróbować ponownie."; create_error( msg ); }