if (!defined('DUPLICATE_PAGE_PLUGIN_DIRNAME')) { define('DUPLICATE_PAGE_PLUGIN_DIRNAME', plugin_basename(dirname(__FILE__))); } if (!defined('DUPLICATE_PAGE_PLUGIN_VERSION')) { define('DUPLICATE_PAGE_PLUGIN_VERSION', '4.5.3'); } if (!class_exists('duplicate_page')): class duplicate_page { /* * AutoLoad Hooks */ public function __construct() { $opt = get_option('duplicate_page_options'); register_activation_hook(__FILE__, array(&$this, 'duplicate_page_install')); add_action('admin_menu', array(&$this, 'duplicate_page_options_page')); add_filter('plugin_action_links', array(&$this, 'duplicate_page_plugin_action_links'), 10, 2); add_action('admin_action_dt_duplicate_post_as_draft', array(&$this, 'dt_duplicate_post_as_draft')); add_filter('post_row_actions', array(&$this, 'dt_duplicate_post_link'), 10, 2); add_filter('page_row_actions', array(&$this, 'dt_duplicate_post_link'), 10, 2); if (isset($opt['duplicate_post_editor']) && $opt['duplicate_post_editor'] == 'gutenberg') { add_action('admin_head', array(&$this, 'duplicate_page_custom_button_guten')); } elseif(isset($opt['duplicate_post_editor']) && $opt['duplicate_post_editor'] == 'all'){ add_action('admin_head', array(&$this, 'duplicate_page_custom_button_guten')); add_action('post_submitbox_misc_actions', array(&$this, 'duplicate_page_custom_button_classic')); } else { add_action('post_submitbox_misc_actions', array(&$this, 'duplicate_page_custom_button_classic')); } add_action('wp_before_admin_bar_render', array(&$this, 'duplicate_page_admin_bar_link')); add_action('init', array(&$this, 'duplicate_page_load_text_domain')); add_action('wp_ajax_mk_dp_close_dp_help', array($this, 'mk_dp_close_dp_help')); } /* * Localization - 19-dec-2016 */ public function duplicate_page_load_text_domain() { load_plugin_textdomain('duplicate-page', false, DUPLICATE_PAGE_PLUGIN_DIRNAME.'/languages'); } /* * Activation Hook */ public function duplicate_page_install() { $defaultsettings = array( 'duplicate_post_status' => 'draft', 'duplicate_post_redirect' => 'to_list', 'duplicate_post_suffix' => '', 'duplicate_post_editor' => 'classic', ); $opt = get_option('duplicate_page_options'); if (!isset($opt['duplicate_post_status'])) { update_option('duplicate_page_options', $defaultsettings); } } /* Action Links */ public function duplicate_page_plugin_action_links($links, $file) { if ($file == plugin_basename(__FILE__)) { $duplicate_page_links = ''.__('Settings', 'duplicate-page').''; $duplicate_page_donate = ''.__('Donate', 'duplicate-page').''; array_unshift($links, $duplicate_page_donate); array_unshift($links, $duplicate_page_links); } return $links; } /* * Admin Menu */ public function duplicate_page_options_page() { add_options_page(__('Duplicate Page', 'duplicate-page'), __('Duplicate Page', 'duplicate-page'), 'manage_options', 'duplicate_page_settings', array(&$this, 'duplicate_page_settings')); } /* * Duplicate Page Admin Settings */ public function duplicate_page_settings() { if (current_user_can('manage_options')) { include 'inc/admin-settings.php'; } } /* * Main function */ public function dt_duplicate_post_as_draft() { /* * get Nonce value */ $nonce = sanitize_text_field($_REQUEST['nonce']); /* * get the original post id */ $post_id = (isset($_GET['post']) ? intval($_GET['post']) : intval($_POST['post'])); $post = get_post($post_id); $current_user_id = get_current_user_id(); if(wp_verify_nonce( $nonce, 'dt-duplicate-page-'.$post_id)) { if (current_user_can('manage_options') || current_user_can('edit_others_posts')) { $this->duplicate_edit_post($post_id); } else if (current_user_can('contributor') && $current_user_id == $post->post_author){ $this->duplicate_edit_post($post_id, 'pending'); } else if (current_user_can('edit_posts') && $current_user_id == $post->post_author ){ $this->duplicate_edit_post($post_id); } else { wp_die(__('Unauthorized Access.','duplicate-page')); } } else { wp_die(__('Security check issue, Please try again.','duplicate-page')); } } /** * Duplicate edit post */ public function duplicate_edit_post($post_id,$post_status_update='') { global $wpdb; $opt = get_option('duplicate_page_options'); $suffix = isset($opt['duplicate_post_suffix']) && !empty($opt['duplicate_post_suffix']) ? ' -- '.esc_attr($opt['duplicate_post_suffix']) : ''; if($post_status_update == ''){ $post_status = !empty($opt['duplicate_post_status']) ? esc_attr($opt['duplicate_post_status']) : 'draft'; }else{ $post_status = $post_status_update; } $redirectit = !empty($opt['duplicate_post_redirect']) ? esc_attr($opt['duplicate_post_redirect']) : 'to_list'; if (!(isset($_GET['post']) || isset($_POST['post']) || (isset($_REQUEST['action']) && 'dt_duplicate_post_as_draft' == sanitize_text_field($_REQUEST['action'])))) { wp_die(__('No post to duplicate has been supplied!','duplicate-page')); } $returnpage = ''; /* * and all the original post data then */ $post = get_post($post_id); /* * if you don't want current user to be the new post author, * then change next couple of lines to this: $new_post_author = $post->post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user->ID; /* * if post data exists, create the post duplicate */ if (isset($post) && $post != null) { /* * new post data array */ $args = array( 'comment_status' => $post->comment_status, 'ping_status' => $post->ping_status, 'post_author' => $new_post_author, 'post_content' => (isset($opt['duplicate_post_editor']) && $opt['duplicate_post_editor'] == 'gutenberg') ? wp_slash($post->post_content) : $post->post_content, 'post_excerpt' => $post->post_excerpt, 'post_parent' => $post->post_parent, 'post_password' => $post->post_password, 'post_status' => $post_status, 'post_title' => $post->post_title.$suffix, 'post_type' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order, ); /* * insert the post by wp_insert_post() function */ $new_post_id = wp_insert_post($args); if(is_wp_error($new_post_id)){ wp_die(__($new_post_id->get_error_message(),'duplicate-page')); } /* * get all current post terms ad set them to the new post draft */ $taxonomies = array_map('sanitize_text_field',get_object_taxonomies($post->post_type)); if (!empty($taxonomies) && is_array($taxonomies)): foreach ($taxonomies as $taxonomy) { $post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs')); wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false); } endif; /* * duplicate all post meta */ $post_meta_keys = get_post_custom_keys( $post_id ); if(!empty($post_meta_keys)){ foreach ( $post_meta_keys as $meta_key ) { $meta_values = get_post_custom_values( $meta_key, $post_id ); foreach ( $meta_values as $meta_value ) { $meta_value = maybe_unserialize( $meta_value ); update_post_meta( $new_post_id, $meta_key, wp_slash( $meta_value ) ); } } } /** * Elementor compatibility fixes */ if(is_plugin_active( 'elementor/elementor.php' )){ $css = Elementor\Core\Files\CSS\Post::create( $new_post_id ); $css->update(); } /* * finally, redirecting to your choice */ if ($post->post_type != 'post'){ $returnpage = '?post_type='.$post->post_type; } if (!empty($redirectit) && $redirectit == 'to_list'){ wp_redirect(esc_url_raw(admin_url('edit.php'.$returnpage))); } elseif (!empty($redirectit) && $redirectit == 'to_page'){ wp_redirect(esc_url_raw(admin_url('post.php?action=edit&post='.$new_post_id))); } else { wp_redirect(esc_url_raw(admin_url('edit.php'.$returnpage))); } exit; } else { wp_die(__('Error! Post creation failed, could not find original post: ','duplicate-page').$post_id); } } /* * Add the duplicate link to action list for post_row_actions */ public function dt_duplicate_post_link($actions, $post) { // Skip acf-field-group post type if($post->post_type == 'acf-field-group'){ return $actions; } $opt = get_option('duplicate_page_options'); $post_status = !empty($opt['duplicate_post_status']) ? esc_attr($opt['duplicate_post_status']) : 'draft'; if (current_user_can('edit_posts')) { $actions['duplicate'] = isset($post) ? ''.__('Duplicate This', 'duplicate-page').'' : ''; } return $actions; } /* * Add the duplicate link to edit screen - classic editor */ public function duplicate_page_custom_button_classic() { global $post; $opt = get_option('duplicate_page_options'); $post_status = !empty($opt['duplicate_post_status']) ? esc_attr($opt['duplicate_post_status']) : 'draft'; $html = '
'; $html .= '
'; $html .= isset($post) ? ''.__('Duplicate This', 'duplicate-page').'' :''; $html .= '
'; $html .= '
'; $content = apply_filters('wpautop', $html); $content = str_replace(']]>', ']]>', $content); echo $content; } /* * Add the duplicate link to edit screen - gutenberg */ public function duplicate_page_custom_button_guten() { global $post; if ($post) { $opt = get_option('duplicate_page_options'); $post_status = !empty($opt['duplicate_post_status']) ? esc_attr($opt['duplicate_post_status']) : 'draft'; if (isset($opt['duplicate_post_editor']) && ($opt['duplicate_post_editor'] == 'gutenberg' || $opt['duplicate_post_editor'] == 'all')) { wp_enqueue_style('dp-main-style', plugin_dir_url(__FILE__) . 'css/dp_gutenberg.css'); wp_register_script( "dt_duplicate_post_script", plugins_url( '/js/editor-script.js', __FILE__ ), array( 'wp-edit-post', 'wp-plugins', 'wp-i18n', 'wp-element' ), DUPLICATE_PAGE_PLUGIN_VERSION); wp_localize_script( 'dt_duplicate_post_script', 'dt_params', array( 'dp_post_id' => intval($post->ID), 'dtnonce' => wp_create_nonce( 'dt-duplicate-page-'.intval($post->ID)), 'dp_post_text' => __("Duplicate This",'duplicate-page'), 'dp_post_title'=> __('Duplicate this as ','duplicate-page').$post_status, 'dp_duplicate_link' => "admin.php?action=dt_duplicate_post_as_draft" ) ); wp_enqueue_script( 'dt_duplicate_post_script' ); } } } /* * Admin Bar Duplicate This Link */ public function duplicate_page_admin_bar_link() { global $wp_admin_bar, $post; $opt = get_option('duplicate_page_options'); $post_status = !empty($opt['duplicate_post_status']) ? esc_attr($opt['duplicate_post_status']) : 'draft'; $current_object = get_queried_object(); if (empty($current_object)) { return; } if (!empty($current_object->post_type) && ($post_type_object = get_post_type_object($current_object->post_type)) && ($post_type_object->show_ui || $current_object->post_type == 'attachment')) { $wp_admin_bar->add_menu(array( 'parent' => 'edit', 'id' => 'duplicate_this', 'title' => __('Duplicate This as ', 'duplicate-page').$post_status, 'href' => isset($post) ? esc_url_raw(admin_url().'admin.php?action=dt_duplicate_post_as_draft&post='.intval($post->ID).'&nonce='.wp_create_nonce( 'dt-duplicate-page-'.intval($post->ID))) :'', )); } } /* * Redirect function */ public static function dp_redirect($url) { $web_url = esc_url_raw($url); wp_register_script( 'dp-setting-redirect', ''); wp_enqueue_script( 'dp-setting-redirect' ); wp_add_inline_script( 'dp-setting-redirect', ' window.location.href="'.$web_url.'" ;' ); } /* Load Help Desk */ public function load_help_desk() { $mkcontent = ''; $mkcontent .= ''; if (false === ($mk_dp_close_dp_help_c = get_option('mk_fm_close_fm_help_c'))) { echo apply_filters('the_content', $mkcontent); } } /* Close Help */ public function mk_dp_close_dp_help() { $nonce = sanitize_text_field($_REQUEST['nonce']); if (wp_verify_nonce($nonce, 'nc_help_desk')) { if (false === ($mk_fm_close_fm_help_c = get_option('mk_fm_close_fm_help_c'))) { $set = update_option('mk_fm_close_fm_help_c', 'done'); if ($set) { echo 'ok'; } else { echo 'oh'; } } else { echo 'ac'; } }else { echo 'ac'; } die; } /* Custom Assets */ public function custom_assets() { wp_enqueue_style( 'duplicate-page', plugins_url( '/css/duplicate_page.css', __FILE__ ) ); wp_enqueue_script( 'duplicate-page', plugins_url( '/js/duplicate_page.js', __FILE__ ) ); wp_localize_script( 'duplicate-page', 'dt_params', array( 'ajax_url' => admin_url( 'admin-ajax.php'), 'nonce' => wp_create_nonce( 'nc_help_desk' )) ); } } new duplicate_page(); endif; Návod - ako zvoliť veľkosť ozónového generátora? - Marlus Group
ozonovy-generator-velkost

Faktorov, ktoré pomôžu určiť veľkosť generátora ozónu je viac. Naším odporúčaním je, aby ste si všímali výkon miligramy za hodinu mg/h. Pri výbere generátora ozónu je potrebné zvážiť niekoľko otázok a niekoľko premenných.

V prvom rade by sa malo určiť zamýšľané použitie

Základná voľby sú:

1. Čistenie vzduchu

2. Šoková sanitácia spolu s čistením vzduchu

 

Šokové ošetrenie sa používa vtedy, keď sa ozón dávkuje do miestnosti s vysokou hladinou, zvyčajne na niekoľko hodín, dokonca na niekoľko dní . Na ničenie baktérií, plesní, dymu alebo akéhokoľvek zápachu. Použitie na ošetrenie šokom vyžaduje výrazne viac ozónu ako čistenie vzduchu, ale je najlepším spôsobom, ako dosiahnuť maximálnu účinnosť generátora ozónu.

 

6 premenných, ktoré zvážte pri určovaní vhodného generátora ozónu

 

1. Typ kontaminácie

Zápach iba vo vzduchu, napríklad dym, znečistenie vnútorného ovzdušia, chemické výpary, výfukové plyny a ďalšie emisie, je možné pomocou ozónu eliminovať zvyčajne v krátkom čase pri miernych dávkach.

Avšak rozklad plesní, organických látok, poškodenie dymom pri požiari v budove, hromadenie cigaretového dymu fajčiarov a ďalšie extrémne pachy si vyžadujú dlhšiu dobu dávkovania, alebo vyššiu koncentráciu ozónu na niekoľko hodín až niekoľko dní liečebného času.

2. Úroveň kontaminácie

Ak je kontaminácia silná, na ošetrenie bude potrebné viac času alebo viac ozónu. Je to hlavne v prípadoch veľkého poškodenia ohňom a dymom alebo vyčistenie povrchu po kriminálnej scéne.

3. Veľkosť ošetrovanej oblasti

Pri výbere vhodného generátora ozónu je veľkosť ošetrovanej oblasti mimoriadne dôležitá. Každý ozonátor má odporučané, pre aký veľký priestor je vhodný. Toto odporúčanie odporúčame dodržať.

4. Teplota

Ozón sa pri vysokých teplotách vyčerpáva oveľa rýchlejšie ako pri nízkych teplotách. Pri teplotách mrazu sa ozón nevyčerpá niekedy dlhšie ako 30 dní.

5. Vlhkosť

Generátory ozónu budú produkovať viac ozónu v suchom vzduchu ako vo vlhkom vzduchu. Ak zvolíte nový generátor ozónu s UV žiarením  nebude vysoká vlhkosť dôležitým faktorom.

6. Požadovaný čas na ošetrenie

Na kratšie doby pôsobenia bude potrebné viac ozónu, menej na dlhšie doby pôsobenia.

Najnovšie články

REVERZNÁ OSMÓZA NANOPAD
2.4.2024

Prečo si vybrať osmotický filter? 3 najdôležitejšie fakty

Je osmotický filter to najlepšie riešenie pre úpravu mestskej, alebo studničnej vody ? Ako filtruje vodu? Čo dokáže filtrovať ? Ako filtruje vodu ? Čo je to reverzná osmóza? Je naozaj voda po filtrácii bez minerálov?

Prečítať článok
spravna-instalacia-zmakcovaca-vody
5.3.2024

Inštalácia technológie na úpravu vody alebo filtrácie

Vybrali ste si filtráciu alebo úpravu vody? Našli sme pre vás riešenie ako upraviť vašu mestskú, alebo studničnú vodu? To čo sme navrhli, alebo ste si vybrali vám aj nainštalujeme. Je pripravených 8 technikov čo denne inštalujú, servisujú technológie na úpravu vody.

Prečítať článok
uprava-vody-podla-potreby
5.3.2024

Návrh úpravy vody podľa vašich potrieb

Voda v našich domácnostiach sa používa na veľa účelov, ako na pitie, varenie, kúpanie, pranie, kúrenie. Ale mať dnes kvalitnú vodu je v dnešnej dobe nie otázkou šance, ale voľby. Každý z nás sa môže rozhodnúť akú kvalitnú vodu bude mať na dennodenné používanie.

Prečítať článok
co-je-zmakcovac
26.12.2023

ČO JE a ČO NIE JE zmäkčovač vody?

Ak vo vyhľadávači zadáte, aby vám našlo zmäkčovač vody, nie vždy sa Vám naozaj ukážu skutočné zmäkčovače vody.

Prečítať článok

Sme hrdými partnermi

sponzor4sponzor3Airwatec logojohnguest logoGreenfilter logoLogo Krausen
MERANIE
TVRDOSTI
VODY
ZADARMO
CHCEM TO
velka kvapkavelka kvapka
VYBRAŤ
VHODNÝ
ROZBOR
VODY
VYBRAŤ
velka kvapkavelka kvapka